All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

v0.18.1 (2026-09-01)

Bug Fixes:

  • only find embedded resources from entrypoints by @zachdaniel

  • support map fields w/ no declared subfields by @zachdaniel

v0.18.0 (2026-08-31)

Highlights:

Fuller context for the most significant changes in this release. The complete commit-level record follows below.

Breaking

  • typed-channel: broadcast payloads are now formatted with the output_field_formatter before reaching the client — use AshTypescript.TypedChannel intercepts the declared events and formats via handle_out/3, so the wire matches the generated payload types; the module must now also use Phoenix.Channel (compile warning otherwise) (#79)

  • rpc: top-level filter/sort/page parameters now return filter_not_supported/sort_not_supported/pagination_not_supported errors when the action cannot honor them (non-list reads, disabled via enable_filter?/enable_sort?, or no pagination configured) instead of being silently dropped

  • validation-schemas: the AshTypescript.Codegen.SchemaFormatter behaviour replaces the custom_type_fallback/0 callback with mapping_overrides/0. Only affects out-of-tree formatter implementations; the two in-tree formatters (Zod, Valibot) are updated

Features

  • rpc: nested relationship query options — paginate, filter, sort, and slice has_many/many_to_many loads inside field selection, with capability-gated TypeScript types and page-shaped results

  • manifest-json: JSON manifest version 1.1 — new top-level resources object exposing per-relationship query capabilities (additive)

  • codegen: mix ash_typescript.codegen --output PATH (alias -o) overrides the output_file config for a single run; a .ts path is used as the RPC file, anything else is treated as a directory (#65)

  • validation-schemas: new zod_mapping_overrides / valibot_mapping_overrides config for controlling the schema generated for hand-rolled custom Ash types — the counterpart to type_mapping_overrides, and the only way to emit raw library syntax such as a Zod brand (#84)

  • validation-schemas: new zod_import_into_generated / valibot_import_into_generated config injects user-authored imports into the generated schema files, so a mapping override can name a schema written in TypeScript (e.g. "CustomZodSchemas.objectId") instead of an inline expression. Scoped per library rather than reusing import_into_generated, which targets the types and RPC files (#84)

Bug Fixes

  • codegen: generated RPC action wrappers now type-check under exactOptionalPropertyTypes: true — the static ActionConfig/ValidationConfig/ActionChannelConfig/ValidationChannelConfig interfaces declare | undefined on their optional properties (#77)

  • validation-schemas: hand-rolled custom Ash types now derive their schema from Ash.Type.storage_type/1 instead of collapsing to a flat z.string()/v.string(). A custom type storing :integer previously generated a string schema that rejected its own valid values while the generated TypeScript type said number. Ash.Type.NewType was never affected — its constraints already flowed through (#84)

Breaking Changes:

  • rpc: nested query envelopes; strict top-level filter/sort/page by @Torkan

  • typed-controller: return route errors in the RPC error shape by @Torkan

  • errors: replace error code with type and keep placeholders client-resolvable by @Torkan

Features:

  • validation-schemas: add schema mapping overrides for custom Ash types by @Torkan

  • codegen: add --output flag to override output_file for a single run (closes #65) by @Torkan

  • manifest-json: expose relationship query capabilities (manifest 1.1) by @Torkan

  • codegen: capability-gated types for nested relationship query options by @Torkan

  • manifest: decorate many-relationships with query capabilities by @Torkan

  • typed-controller: support array route arguments by @Torkan

  • manifest: add a Valibot Schema column to the Markdown manifest by @Torkan

  • typed-controller: apply Ash argument semantics and generate Valibot route schemas (CVE-2026-82732) by @Torkan

  • manifest: reject unmappable types and invalid rpc_action options at compile time by @Torkan

  • typed-channel: add independently toggleable publication warnings by @Torkan

  • installer: scaffold AshTypescriptManifest module and manifest config by @Torkan

  • manifest: precompute action classification, input maps and bulk strategy under Custom by @Torkan

  • manifest: add O(1) entrypoint lookup maps for RPC actions and typed queries by @Torkan

  • manifest: precompute runtime source-of-truth data under Custom decoration by @Torkan

  • manifest: decorate manifest with ash_typescript metadata under custom namespace by @Torkan

  • ash_api_spec: raise on non-public attrs in entrypoint accept lists by @Torkan

  • ash_api_spec: add type_lookup with strict get_type! lookup by @Torkan

  • ash_api_spec: add visibility options to include private fields in spec generation by @Torkan

  • add SpecCache with persistent_term for zero-cost spec reads by @Torkan

  • AshApiSpec: add convenience functions to Type and top-level module by @Torkan

  • AshApiSpec: hydrate union members with tag info and resolved types by @Torkan

  • populate entrypoint config from RPC DSL and use it in codegen by @Torkan

  • AshApiSpec: move actions from resources to top-level entrypoints by @Torkan

  • resolve type_ref in codegen and RPC runtime consumers by @Torkan

  • AshApiSpec: add overrides option and type_ref references for named types by @Torkan

  • ash-api-spec: add accessible_relationships and accepted_fields convenience functions by @Torkan

  • ash-api-spec: expand convenience API and adopt throughout codebase by @Torkan

  • rpc: add TypeIndex for pre-computed runtime type lookups by @Torkan

  • ash-api-spec: add resource lookup API and action-scoped generation by @Torkan

  • codegen: add AshApiSpec fast-path to FilterTypes and enforce resource_lookup by @Torkan

  • codegen: add AshApiSpec fast-path to ResourceSchemas and enforce resource_lookup by @Torkan

  • codegen: add %AshApiSpec.Field{} dispatch to TypeMapper and fix ensure_codegen_instance_of by @Torkan

  • codegen: generate AshApiSpec at entry point and thread resource_lookup to submodules by @Torkan

  • rpc: add %AshApiSpec.Resource{} fast path to FieldSelector by @Torkan

  • rpc: thread resource_lookups through runtime pipeline by @Torkan

  • rpc: persist resource lookups and add %Type{} dispatch for runtime type resolution by @Torkan

  • codegen: add %AshApiSpec.Type{} dispatch to TypeMapper and ResourceSchemas by @Torkan

  • ash-api-spec: add missing primitive types and fix type resolver edge cases by @Torkan

  • ash-api-spec: add reachability analysis, generator pipeline, and JSON serializer by @Torkan

  • ash-api-spec: add type resolver and builders by @Torkan

  • ash-api-spec: add struct definitions for API specification IR by @Torkan

Bug Fixes:

  • typed-channel: format broadcast payloads with output_field_formatter (closes #79) by @Torkan

  • codegen: add | undefined to optional config props for exactOptionalPropertyTypes (closes #77) by @Torkan

  • typed-controller: gate unexpected handler return detail behind show_raised_errors (CVE-2026-82733) by @Torkan

  • typed-controller: reject colliding request params instead of silently merging by @Torkan

  • typed-controller: encode path params in generated route URLs (CVE-2026-82731) by @Torkan

  • rpc: redact ForbiddenField and NotLoaded in normalize_primitive (CVE-2026-82730) by @Torkan

  • rpc: reject non-scalar get_by values before trusted filter by @Torkan

  • rpc: reject non-scalar identity values before trusted filter by @Torkan

  • codegen: make restricted schemas restrict scalar loads by @Torkan

  • rpc: enforce load restrictions during field selection by @Torkan

  • rpc: stop minting atoms for typed struct field names (CVE-2026-77856) by @Torkan

  • rpc: stop unwrapping unknown structs into RPC error payloads by @Torkan

  • rpc: fail closed when a configured error handler crashes (CVE-2026-77950) by @Torkan

  • rpc: scope validate_action target lookup to the configured read_action by @Torkan

  • rpc: prevent atom-table exhaustion from client-supplied field names (CVE-2026-74837) by @Torkan

  • codegen: skip satisfies-widened undefined keys in InferResult by @Torkan

  • codegen: resolve leaf validation types by module before kind by @Torkan

  • rpc: serialize Ash.Type.Vector values as number arrays by @Torkan

  • codegen: add AshVector type alias for Ash.Type.Vector by @Torkan

  • typed-channel: emit grouped publication warnings to stderr by @Torkan

  • manifest: stop RPC config warnings failing --warnings-as-errors by @Torkan

  • mix: raise when npm install exits non-zero by @Torkan

  • installer: warn on a missing router and scaffold valibot config by @Torkan

  • codegen: support generation from an empty manifest by @Torkan

  • codegen: align pagination result types with runtime payloads by @Torkan

  • codegen: advertise the validation-channel function and centralize generated names by @Torkan

  • manifest: only advertise schema variants for actions that have one by @Torkan

  • typed-controller: export and advertise GET-route validation schemas by @Torkan

  • codegen: check and preview the manifests like any other artifact by @Torkan

  • codegen: attribute non-RPC resource references in the warning by @Torkan

  • rpc: resolve resources against scoped manifests during field processing by @Torkan

  • codegen: drive non-empty string schemas from allow_empty? constraints by @Torkan

  • codegen: correct type-level shapes for typed maps, keyset pages and channels by @Torkan

  • manifest: recompile the manifest module when its domains change by @Torkan

  • codegen: propagate array cardinality constraints by Rodolfo Torres

  • codegen: restore @ashActionDef JSDoc tag via concrete action lookup by @Torkan

  • codegen: map Money/Ltree/ULID third-party types instead of falling back to any by @Torkan

  • test: respect explicit false for deadline_factor calc option by @Torkan

  • resource: validate map field names through NewType and array constraints by @Torkan

  • rpc: preserve false values when extracting plain map fields by @Torkan

  • guard typescript_field_names checks with Code.ensure_loaded?/1 by @Torkan

  • preserve false values when extracting plain map fields (#80) by @vasspilka

  • reachability: traverse action returns and metadata types by @Torkan

  • resolve all dialyzer warnings in value_formatter and spec_cache by @Torkan

  • resolve rebase conflicts in codegen modules by @Torkan

  • handle type_ref in resource schema classification and action introspection by @Torkan

  • resolve dialyzer warning in generate_resource_lookup by @Torkan

  • remove dead code branch flagged by dialyzer in type_mapper by @Torkan

  • resolve dialyzer warnings by extracting array tuple clauses and removing dead fallbacks by @Torkan

  • rpc: use ActionIntrospection to determine input type for exports by @Torkan

Performance Improvements:

  • use pre-computed resource_lookup instead of regenerating AshApiSpec inline by @Torkan

v0.17.3 (2026-04-30)

Bug Fixes:

  • perf: use persisted resource field names by @Torkan

v0.17.2 (2026-04-29)

Bug Fixes:

  • codegen: distinguish nullable from optional in zod and valibot schemas by Mike Wilson (#70)

  • codegen: sort enum values alphabetically in generated types by @Torkan

Performance Improvements:

  • field_formatter: cache atom field name lookups per process by Mike Wilson (#68)

v0.17.1 (2026-04-15)

Bug Fixes:

  • generate correct validation schemas for AshMoney.Types.Money by @Torkan

  • preserve unconstrained map keys in action metadata by @Torkan

  • preserve unconstrained map keys in generic action output by @Torkan

  • camelize nested keys in read action typed map metadata by Mike Wilson (#63)

v0.17.0 (2026-03-29)

Features:

  • manifest: add valibot entries to JSON manifest by @Torkan

  • codegen: add typed sort fields with SortString utility type and array support by @Torkan

  • codegen: add isNil operator, expand aggregate filters, generate filter field arrays by @Torkan

  • valibot by @directormac

  • add valibot to resolver and orchestrator by @directormac

  • valibot generators by @directormac

Bug Fixes:

  • codegen: remove dead valibot import from generated RPC file by @Torkan

  • valibot: namespace export harcoded suffix by @directormac

  • valibot: piped constraints by @directormac

  • rpc: use load-through format for resource-returning calculations by @Torkan

  • codegen: distinguish resource from typed struct in return type classification by @Torkan

  • test: scope typed query const assertion to Typed Queries section by @Torkan

  • codegen: unwrap NewTypes before classifying return types for field selection by Mike Wilson

  • delete vite/inertia combo as SSR didnt really work by Victor Batarse

  • in prod if there was no manifest.json assets.deploy would crash with vite by Victor Batarse

  • add csrf headers in all layouts by Victor Batarse

  • colocated hooks on non react version by Victor Batarse

  • on non-jsx framework caused crash by Victor Batarse

  • esbuild versions CSS issues by Victor Batarse

v0.16.0 (2026-03-23)

Breaking Changes:

import_into_generated and typed_controller_import_into_generated file paths are now project-root-relative (e.g., "assets/js/hooks.ts") instead of JS-relative import paths (e.g., "./hooks")

Features:

  • codegen: exclude calculations with field?: false from generated types by @Torkan

  • typed-channel: auto-derive payload types from calculation transforms by @Torkan

  • rpc: verify actions and relationship read actions are public? by @Torkan

  • rpc: add machine-readable JSON manifest generation by @Torkan

  • typed-channel: detect payload type name conflicts across channels by @Torkan

  • typed-channel: add config accessors and orchestrator integration by @Torkan

  • typed-channel: add DSL, verifier, and codegen for typed channel event subscriptions by @Torkan

  • add typed_controller_base_path config for route URL prefixing by @Torkan

  • add HTTP verb shortcuts and positional method arg to typed controller DSL by @Torkan

  • add controller namespace support and simplify codegen orchestration by @Torkan

  • add multi-file codegen architecture and typed controller enhancements by @Torkan

Bug Fixes:

  • test: use domain: nil for inline test resource not registered in a domain by @Torkan

  • bump minimum ash dep to >= 3.21.1 for field? support by @Torkan

  • rpc: unwrap Reactor.Error.Invalid.RunStepError to inner error by @Torkan

  • test: replace length/1 comparisons with empty list checks by @Torkan

  • test: use CodegenTestHelper instead of removed Rpc.Codegen API by @Torkan

  • codegen: generate Array<Record<string, any>> for {:array, :map} return types by @barnabasJ (#56)

  • codegen: prefix unused actionName param with underscore when hooks disabled by @Torkan

  • test: add returns type to item_deleted publication to fix compile warning by @Torkan

  • codegen: resolve relative import paths correctly for parent directories by @Torkan

  • rpc: apply output formatter to channel field in channel functions by @Torkan

  • test: redirect typed_channels_output_file to tmp dir in codegen tests by @Torkan

  • typed-controller: default route method to nil instead of :get by @Torkan

  • use field formatter for channel handler fields by @Torkan

v0.15.3 (2026-02-21)

Bug Fixes:

  • sort RPC codegen output for deterministic TypeScript generation by @Torkan

v0.15.2 (2026-02-21)

Bug Fixes:

  • sort typed controller output for deterministic codegen by @Torkan

v0.15.1 (2026-02-21)

Bug Fixes:

  • restore method/module_name in spark formatter locals_without_parens by @Torkan

  • add typed_controller_path_params_style config option by @Torkan

  • codegen: check typescript_type_name before unwrapping NewTypes (#52) by @Torkan

v0.15.0 (2026-02-19)

Features:

  • add typed_controller_mode config for paths_only generation by @Torkan

  • generate query params and typed path helpers for TypedController routes by @Torkan

  • validate that path params have matching DSL arguments by @Torkan

  • typed-controller: validate route and argument names for TypeScript compatibility by @Torkan

  • add TypedController as standalone Spark DSL with argument extraction and type casting by @Torkan

  • controller-resource: normalize camelCase request params to snake_case by @Torkan

  • codegen: integrate controller resource route generation into mix task by @Torkan

  • add TypeScript route codegen with router introspection by @Torkan

  • add ControllerResource DSL extension with controller generation by @Torkan

Bug Fixes:

  • codegen: check typescript_type_name before unwrapping NewTypes (#52) by @Torkan

  • prevent policy breakdown leak in Forbidden.Policy error responses by @Torkan

v0.14.4 (2026-02-14)

Bug Fixes:

  • rpc: add JSON-safe error serialization for policy breakdowns by @Torkan

  • zod: topologically sort resource schemas to fix declaration order by @Torkan

v0.14.3 (2026-02-11)

Bug Fixes:

  • codegen: scope always_regenerate to only apply with --dev flag by @Torkan

v0.14.2 (2026-02-10)

Bug Fixes:

  • rpc: ensure error responses are JSON-serializable by @Torkan

  • codegen: only export Config type for actions with optional pagination by @Torkan

v0.14.1 (2026-02-07)

Bug Fixes:

  • codegen: skip file writes when generated content is unchanged by @Torkan

v0.14.0 (2026-02-06)

Features:

  • codegen: add always_regenerate config to skip diff check by @Torkan

Bug Fixes:

  • handle list input in ErrorBuilder.build_error_response/1 by Oliver Severin Mulelid-Tynes (#48)

v0.13.2 (2026-02-04)

Bug Fixes:

  • codegen: use field formatter more consistently by @Torkan

v0.13.1 (2026-02-04)

Bug Fixes:

  • codegen: use Mix.raise for clearer error output by @Torkan

  • verifiers: validate union member names for TypeScript compatibility by @Torkan

  • verifiers: skip field name validation when mapping exists by @Torkan

v0.13.0 (2026-02-01)

Features:

  • config: add developer experience configuration options by @Torkan

  • mix: handle multi-file output and manifest generation by @Torkan

  • codegen: add multi-file namespace output support by @Torkan

  • codegen: add markdown manifest generator by @Torkan

  • codegen: add JSDoc generator with configurable tags by @Torkan

  • codegen: add namespace resolution and domain grouping by @Torkan

  • dsl: add namespace, description, deprecated, and see options by @Torkan

Bug Fixes:

  • codegen: fix TypeScript inference for NewType-wrapped unions by @Torkan

  • codegen: unwrap NewTypes in type discovery to find union members by @Torkan

v0.12.1 (2026-01-26)

Bug Fixes:

  • typed-queries: use satisfies for type-safe field constants by @Torkan

  • rpc: make tenant optional for non-multitenancy resources by @Torkan

  • don't expose exception messages for unknown errors by @zachdaniel

v0.12.0 (2026-01-17)

Features:

  • rpc: generate restricted schemas for allowed_loads actions by @Torkan

  • rpc: support first aggregates returning embedded resources and unions by @Torkan

  • rpc: add allowed_loads and denied_loads options for rpc_action by @Torkan

  • rpc: add enable_filter? and enable_sort? options for rpc_action by @Torkan

v0.11.6 (2026-01-13)

Bug Fixes:

  • rpc: prioritize direct headers and fetchOptions over lifecycle hook config by @Torkan

v0.11.5 (2026-01-08)

Bug Fixes:

  • codegen: discover embedded resources used as direct action arguments by @Torkan

v0.11.4 (2025-12-19)

Bug Fixes:

  • install: use find_module to locate router for custom module names by @Torkan

v0.11.3 (2025-12-17)

Bug Fixes:

  • types: add Duration struct support with ISO 8601 serialization by @Torkan

v0.11.2 (2025-12-09)

Bug Fixes:

  • rpc: simplify field mapping module selection with ActionIntrospection by @Torkan

v0.11.1 (2025-12-09)

Bug Fixes:

  • rpc: preserve empty arrays in JSON serialization (fixes #32) by @Torkan

v0.11.0 (2025-12-09)

Breaking changes:

  • All field mapping dsls and callbacks now require strings instead of atoms.
  • Fields requested from calculations without arguments no longer need to be wrapped in {fields: [...]}

Features:

  • add VerifyActionTypes and VerifyUniqueInputFieldNames verifiers by @Torkan

  • add ResourceFields helper and extend Introspection by @Torkan

  • add FieldSelector for unified type-driven field selection by @Torkan

  • add ValueFormatter for unified type-aware value formatting by @Torkan

Bug Fixes:

  • remove underscore in Zod schema name generation by @Torkan

  • cast struct inputs fully using Ash.Type by @zachdaniel

  • handle private arguments in action_inputs lookup by @Torkan

  • don't include private arguments in typescript codegen by @zachdaniel

v0.10.2 (2025-12-05)

Bug Fixes:

  • codegen: use field formatters for generated TypeScript config interfaces & rename hardcoded primaryKey fields to identity @Torkan

v0.10.1 (2025-12-04)

Bug Fixes:

  • rpc: consolidate field formatting and format error field names for by @Torkan

  • rpc: flatten multiple error responses by removing nested wrapper by @Torkan

  • test: generate TypeScript inline instead of reading from file by @Torkan

v0.10.0 (2025-12-04)

Breaking Changes:

primaryKey input field for update & destroy rpc actions are now replaced by the more flexible identities-field

Features:

  • identities: add compile-time identity verification by @Torkan

  • identities: add identity-based record lookup for update/destroy actions by @Torkan

Bug Fixes:

  • codegen: raise error instead of System.halt on generation failure by @Torkan

v0.9.1 (2025-12-01)

Bug Fixes:

  • struct-args: support Ash resources as struct action arguments by @Torkan

v0.9.0 (2025-11-30)

Features:

  • codegen: generate TypeScript types for get? and get_by actions by @Torkan

  • rpc: add compile-time verification for get options by @Torkan

  • rpc: implement get? and get_by runtime execution by @Torkan

  • rpc: add get?, get_by, and not_found_error? DSL options by @Torkan

v0.9.0 (2025-11-30)

Features:

  • codegen: generate TypeScript types for get? and get_by actions by @Torkan

  • rpc: add compile-time verification for get options by @Torkan

  • rpc: implement get? and get_by runtime execution by @Torkan

  • rpc: add get?, get_by, and not_found_error? DSL options by @Torkan

v0.8.4 (2025-11-25)

Bug Fixes:

  • codegen: support calculation fields in aggregates across all modules by @Torkan

  • rpc: respect allow_nil_input and require_attributes for input type optionality by @Torkan

  • support sum aggregates over calculations and discover calculation argument types by Oliver Severin Mulelid-Tynes (#23)

v0.8.3 (2025-11-24)

Bug Fixes:

  • improved error message for missing AshTypescript.Resource extension or missing typescript dsl-block
  • add closing backticks on the code example for composite type field selection by Jacob Bahn (#21)

v0.8.2 (2025-11-20)

Bug Fixes:

  • codegen: export Infer*Result types from generated TypeScript by @Torkan

v0.8.1 (2025-11-20)

Bug Fixes:

  • test: remove URLs from argsWithFieldConstraints to fix parser issue by @Torkan

  • codegen: make nullable fields optional and fix spacing in input types by @Torkan

  • codegen: use get_ts_input_type for argument types in input schemas by @Torkan

  • Add default boolean values to config getters by zeadhani (#20)

v0.8.0 (2025-11-19)

Features:

  • add FieldExtractor module for unified tuple/keyword/map extraction by @Torkan

Bug Fixes:

  • exclude struct union members with instance_of from primitiveFields by @Torkan

  • require wrapped format for union inputs with proper validation by @Torkan

  • add is_primitive_struct? check in result_processor by @Torkan (#17)

Improvements:

  • preserve TypedStruct instance_of for field name mappings by @Torkan

  • standardize RPC error structure with vars, path, fields, details by @Torkan

  • use bulk actions for update/destroy by @zachdaniel (#17)

  • support read_action configuration by @zachdaniel (#17)

  • better error handling & struct field selection in RPC by @zachdaniel (#17)

v0.7.1 (2025-11-08)

Bug Fixes:

  • add missing resources to typescript_rpc in test setup to fix compile warnings by @Torkan

v0.7.0 (2025-11-08)

Features:

  • add configurable warnings for RPC resource discovery and references by @Torkan

  • add resource scanner for embedded resource discovery by @Torkan

v0.6.4 (2025-11-03)

Bug Fixes:

  • add reusable action/validation helpers, improve lifecycle hook types by @Torkan

v0.6.3 (2025-11-01)

Bug Fixes:

  • use type constraints in zod schema generation by @Torkan

v0.6.2 (2025-10-28)

Bug Fixes:

  • rpc: make fields parameter optional with proper type inference by @Torkan

  • rpc: improve type inference for optional fields parameter by @Torkan

  • rpc: generate optional fields parameter for create/update in TypeScript by @Torkan

  • rpc: make fields parameter optional for create and update actions by @Torkan

v0.6.1 (2025-10-27)

Bug Fixes:

  • codegen: deduplicate resources when exposed in multiple domains by @Torkan

  • codegen: fix mapped field names usage in typed queries by @Torkan

v0.6.0 (2025-10-21)

Features:

  • rpc: implement lifecycle hooks in TypeScript codegen by @Torkan

  • rpc: add lifecycle hooks configuration API by @Torkan

  • codegen: add configurable untyped map type by @Torkan

  • rpc: add custom error response handler support by @Torkan

  • rpc: add support for dynamic endpoint configuration via imported TypeScript functions by @Torkan

  • rpc: add typed query field verification at compile time by @Torkan

  • add type_mapping_overrides config setting by @Torkan

  • codegen: warn when resources have extension but missing from domain by @Torkan

Bug Fixes:

  • add support for generic actions returning typed struct(s) by @Torkan

v0.5.0 (2025-10-13)

Features:

  • add action metadata support with field name mapping by @Torkan

  • add precise pagination type constraints to prevent misuse by @Torkan

  • add VerifierChecker utility for Spark verifier validation by @Torkan

  • support typescript_field_names callback in codegen by @Torkan

  • add map field name validation for custom types by @Torkan

  • add field_names & argument_names for mapping invalid typescript names to valid ones by @Torkan

Bug Fixes:

  • apply field name mappings to Zod schemas for all field types by @Torkan

  • apply field name mappings in RPC request/result processing by @Torkan

  • apply field name mappings in TypeScript codegen by @Torkan

  • use mapped field names & argument names in codegen by @Torkan

v0.4.0 (2025-09-29)

Features:

  • Properly handle map without constraints, both as input and output. by @Torkan

Bug Fixes:

  • Add verifier that checks that resources with rpc actions use by @Torkan

  • reject loading of relationships for resources without AshTypescript.Resource extension. by @Torkan

  • use __array: true for union types on resource schema by @Torkan

  • generate correct types for array union attributes. by @Torkan

  • For generic actions that return an untyped map, remove fields-arg by @Torkan

Improvements:

  • add unique type_name verifier for AshTypescript.Resource by @Torkan

  • remove redundant path-tracking & cleanup of code in formatters. by @Torkan

  • remove redundant cast_input in color_palette.ex by @Torkan

v0.3.3 (2025-09-20)

Improvements:

  • run npm install automatically on installation by Zach Daniel

v0.3.2 (2025-09-20)

Bug Fixes:

  • change installer config: --react -> --framework react by Torkild Kjevik

v0.3.1 (2025-09-20)

Improvements:

  • add igniter install notices. by Torkild Kjevik

v0.3.0 (2025-09-20)

Features:

  • add igniter installer by Torkild Kjevik

Improvements:

  • add rpc routes & basic react setup in installer by Torkild Kjevik

  • use String.contains? for checking if rpc routes already exist by Torkild Kjevik

  • Set default config in config.exs by Torkild Kjevik

v0.2.0 (2025-09-17)

Features:

  • Add Phoenix Channel support & generation of channel functions. by Torkild Kjevik

Bug Fixes:

  • Only send relevant data to the backend. by Torkild Kjevik

Improvements:

  • prefix socket assigns with ash_ by Torkild Kjevik

  • Add timeout parameter to channel rpc actions. by Torkild Kjevik

v0.1.2 (2025-09-15)

Improvements:

  • Use correct casing in dsl docs filenames. by Torkild Kjevik

v0.1.1 (2025-09-15)

Bug Fixes:

  • Add codegen-callback for ash.codegen. by Torkild Kjevik

  • update typespec for run_typed_query/4 by Torkild Kjevik

  • Use correct name for entities in rpc verifier. by Torkild Kjevik

Improvements:

  • add support for AshPostgres.Ltree type. by Torkild Kjevik

  • add custom http client support. by Torkild Kjevik

  • build related issues, update ash by Zach Daniel

v0.1.0 (2025-09-13)

Features:

  • Initial feature set