From 81ed2211c8e0f2c59540bfe911f1dd221a420588 Mon Sep 17 00:00:00 2001 From: Gabriel Garcia Date: Wed, 16 Sep 2026 15:37:43 +0200 Subject: [PATCH 1/4] fix(v0): export type aliases used in json-schema-form.d.ts public API Fields, $TSFixMe, HeadlessFormOutput, FieldAttrs, JSONSchemaObjectType, and 7 other type aliases are used throughout v0's public function signatures but were never `export`ed themselves. rollup-plugin-dts (used by tsup consumers) tolerates this silently, but rolldown-plugin-dts (used by tsdown consumers) does not: it flags `Import 'Fields' will always be undefined` and drops the type entirely, which cascades into `possibly undefined` / implicit-any errors for any consumer re-exporting these names by value (e.g. @remoteoss/remote-json-schema-form-kit's `export type { Fields, FieldAttrs, JSONSchemaObjectType, HeadlessFormOutput } from '@remoteoss/json-schema-form-v0-deprecated'`). Purely additive (adds `export` to existing type aliases), no runtime or type-shape change for existing consumers. Verified against a real downstream consumer (remoteoss/remote-flows, mid-migration from tsup to tsdown for TypeScript 7 support): before this fix, tsdown's dts build emitted 15 IMPORT_IS_UNDEFINED warnings and the consuming example app failed `tsc -b` with 6 errors; after patching this file locally, both are clean (0 warnings, 0 errors). --- v0/json-schema-form.d.ts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/v0/json-schema-form.d.ts b/v0/json-schema-form.d.ts index 495764e2c..eba2808e8 100644 --- a/v0/json-schema-form.d.ts +++ b/v0/json-schema-form.d.ts @@ -2,7 +2,7 @@ * Shorthand to lookup for keys with `x-jsf-*` preffix. */ export function pickXKey(node: Object, key: 'presentation' | 'errorMessage'): Object | undefined; -type ValidationTypes = +export type ValidationTypes = | 'type' | 'minimum' | 'maximum' @@ -13,7 +13,7 @@ type ValidationTypes = | 'accept' | 'required'; -type JSFConfig = { +export type JSFConfig = { /** * Initial json values to prefill the form fields. * This influences the initial visibility of conditional fields. @@ -46,9 +46,9 @@ type JSFConfig = { errorMessage?: Partial>; }; }; -type Fields = Record[]; //TODO: Type the field based on the given JSON Schema properties. +export type Fields = Record[]; //TODO: Type the field based on the given JSON Schema properties. -type $TSFixMe = any; +export type $TSFixMe = any; /** * Returns the Yup schema structure of given fields. @@ -57,7 +57,7 @@ type $TSFixMe = any; */ export function buildCompleteYupSchema(fields: Fields, config: JSFConfig): $TSFixMe; //TODO: We need to update Yup to 1.0 which supports TS. -type HeadlessFormOutput = { +export type HeadlessFormOutput = { /** * List of Fields. Each Field corresponds to a form input from the json schema. * @example @@ -102,11 +102,11 @@ type HeadlessFormOutput = { error?: Error; }; -type JSONSchemaObjectType = Record; -type FieldName = string; -type FieldAttrs = Record; +export type JSONSchemaObjectType = Record; +export type FieldName = string; +export type FieldAttrs = Record; -type ModifyConfig = { +export type ModifyConfig = { /** * An object with the fields to be modified with the returned attributes. */ @@ -133,19 +133,19 @@ type ModifyConfig = { muteLogging?: boolean; }; -type WarningType = +export type WarningType = | 'FIELD_TO_CHANGE_NOT_FOUND' | 'ORDER_MISSING_FIELDS' | 'FIELD_TO_CREATE_EXISTS' | 'PICK_MISSED_FIELD'; -type Warning = { +export type Warning = { message: string; type: WarningType; meta?: Record; }; -type ModifyOutput = { +export type ModifyOutput = { schema: JSONSchemaObjectType; warnings: Warning[]; }; From f7b09528c5603538aca43f3b0e079850f45315d0 Mon Sep 17 00:00:00 2001 From: Gabriel Garcia Date: Wed, 16 Sep 2026 16:21:41 +0200 Subject: [PATCH 2/4] fix tools --- v0/.nvmrc | 2 +- v0/.tool-versions | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/v0/.nvmrc b/v0/.nvmrc index 49991d30c..9446372c7 100644 --- a/v0/.nvmrc +++ b/v0/.nvmrc @@ -1 +1 @@ -v18.14.0 +22.13.1 \ No newline at end of file diff --git a/v0/.tool-versions b/v0/.tool-versions index 2b97ae232..4266e7d9d 100644 --- a/v0/.tool-versions +++ b/v0/.tool-versions @@ -1,2 +1,2 @@ -nodejs 18.14.0 +nodejs 22.13.1 From 98c09791fd189d372dfa4a7e13b74b1dde2b26fc Mon Sep 17 00:00:00 2001 From: Gabriel Garcia Date: Wed, 16 Sep 2026 16:24:27 +0200 Subject: [PATCH 3/4] Release 0.12.5-dev.20260916142420 --- v0/package-lock.json | 4 ++-- v0/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/v0/package-lock.json b/v0/package-lock.json index c286991bc..7fc595fd9 100644 --- a/v0/package-lock.json +++ b/v0/package-lock.json @@ -1,12 +1,12 @@ { "name": "@remoteoss/json-schema-form", - "version": "0.12.4-beta.0", + "version": "0.12.5-dev.20260916142420", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@remoteoss/json-schema-form", - "version": "0.12.4-beta.0", + "version": "0.12.5-dev.20260916142420", "license": "MIT", "dependencies": { "json-logic-js": "^2.0.2", diff --git a/v0/package.json b/v0/package.json index b6258e806..dfa83764e 100644 --- a/v0/package.json +++ b/v0/package.json @@ -1,6 +1,6 @@ { "name": "@remoteoss/json-schema-form", - "version": "0.12.4-beta.0", + "version": "0.12.5-dev.20260916142420", "description": "Headless UI form powered by JSON Schemas", "author": "Remote.com (https://remote.com/)", "license": "MIT", From 7ec77eff8bf5e3ff4b9fa7e97438fecb9b282ead Mon Sep 17 00:00:00 2001 From: Gabriel Garcia Date: Wed, 16 Sep 2026 17:01:07 +0200 Subject: [PATCH 4/4] fix --- v0/package-lock.json | 4 ++-- v0/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/v0/package-lock.json b/v0/package-lock.json index 7fc595fd9..c286991bc 100644 --- a/v0/package-lock.json +++ b/v0/package-lock.json @@ -1,12 +1,12 @@ { "name": "@remoteoss/json-schema-form", - "version": "0.12.5-dev.20260916142420", + "version": "0.12.4-beta.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@remoteoss/json-schema-form", - "version": "0.12.5-dev.20260916142420", + "version": "0.12.4-beta.0", "license": "MIT", "dependencies": { "json-logic-js": "^2.0.2", diff --git a/v0/package.json b/v0/package.json index dfa83764e..b6258e806 100644 --- a/v0/package.json +++ b/v0/package.json @@ -1,6 +1,6 @@ { "name": "@remoteoss/json-schema-form", - "version": "0.12.5-dev.20260916142420", + "version": "0.12.4-beta.0", "description": "Headless UI form powered by JSON Schemas", "author": "Remote.com (https://remote.com/)", "license": "MIT",