@formspec/build 0.1.0-alpha.55 → 0.1.0-alpha.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.cjs +26 -8
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.js +26 -8
- package/dist/browser.js.map +1 -1
- package/dist/build-alpha.d.ts +7 -6
- package/dist/build-beta.d.ts +7 -6
- package/dist/build-internal.d.ts +7 -6
- package/dist/build.d.ts +7 -6
- package/dist/cli.cjs +31 -11
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +31 -11
- package/dist/cli.js.map +1 -1
- package/dist/generators/class-schema.d.ts +2 -2
- package/dist/generators/class-schema.d.ts.map +1 -1
- package/dist/index.cjs +26 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +26 -8
- package/dist/index.js.map +1 -1
- package/dist/internals.cjs +26 -8
- package/dist/internals.cjs.map +1 -1
- package/dist/internals.js +26 -8
- package/dist/internals.js.map +1 -1
- package/dist/json-schema/generator.d.ts +1 -1
- package/dist/json-schema/generator.d.ts.map +1 -1
- package/dist/json-schema/ir-generator.d.ts +1 -1
- package/dist/json-schema/ir-generator.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -133,7 +133,7 @@ export interface StaticSchemaGenerationOptions {
|
|
|
133
133
|
* @defaultValue "enum"
|
|
134
134
|
* @deprecated Provide a `FormSpecConfig` via the `config` option instead.
|
|
135
135
|
*/
|
|
136
|
-
readonly enumSerialization?: "enum" | "oneOf";
|
|
136
|
+
readonly enumSerialization?: "enum" | "oneOf" | "smart-size";
|
|
137
137
|
/**
|
|
138
138
|
* Metadata resolution policy for static schema generation.
|
|
139
139
|
* @deprecated Provide a `FormSpecConfig` via the `config` option instead.
|
|
@@ -386,7 +386,7 @@ export declare function generateSchemasBatchFromProgram(options: GenerateSchemas
|
|
|
386
386
|
export declare function resolveStaticOptions(options: StaticSchemaGenerationOptions): {
|
|
387
387
|
extensionRegistry: ExtensionRegistry | undefined;
|
|
388
388
|
vendorPrefix: string | undefined;
|
|
389
|
-
enumSerialization: "enum" | "oneOf" | undefined;
|
|
389
|
+
enumSerialization: "enum" | "oneOf" | "smart-size" | undefined;
|
|
390
390
|
metadata: MetadataPolicyInput | undefined;
|
|
391
391
|
};
|
|
392
392
|
//# sourceMappingURL=class-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-schema.d.ts","sourceRoot":"","sources":["../../src/generators/class-schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AASvD,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,cAAc,EACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAc,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE7E,YAAY,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAEpF;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,UAAU,EAAE,cAAc,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACjD,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC1C;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA4B,SAAQ,6BAA6B;IAChF,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACrD;AAED;;;;GAIG;AACH,MAAM,WAAW,sCAAuC,SAAQ,6BAA6B;IAC3F,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACrD;AAED;;;;GAIG;AACH,MAAM,WAAW,oCAAqC,SAAQ,0BAA0B;IACtF,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,EACzB,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,+BAA+B,GAAG;IAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAA;CAAE,GACzF,YAAY,CAUd;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,eAAe,EACzB,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,+BAA+B,GAAG;IAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAA;CAAE,GACzF,0BAA0B,CAoC5B;AAmBD;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC3D;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"class-schema.d.ts","sourceRoot":"","sources":["../../src/generators/class-schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AASvD,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,cAAc,EACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAc,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE7E,YAAY,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAEpF;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,UAAU,EAAE,cAAc,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACjD,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC1C;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA4B,SAAQ,6BAA6B;IAChF,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACrD;AAED;;;;GAIG;AACH,MAAM,WAAW,sCAAuC,SAAQ,6BAA6B;IAC3F,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACrD;AAED;;;;GAIG;AACH,MAAM,WAAW,oCAAqC,SAAQ,0BAA0B;IACtF,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,EACzB,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,+BAA+B,GAAG;IAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAA;CAAE,GACzF,YAAY,CAUd;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,eAAe,EACzB,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,+BAA+B,GAAG;IAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAA;CAAE,GACzF,0BAA0B,CAoC5B;AAmBD;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC3D;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;IAC7D;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACpD,yDAAyD;IACzD,QAAQ,CAAC,aAAa,CAAC,EAAE,8BAA8B,GAAG,SAAS,CAAC;IACpE;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAyB,SAAQ,6BAA6B;IAC7E,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,yCAAyC;IACzC,UAAU,EAAE,cAAc,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,iCAAkC,SAAQ,6BAA6B;IACtF,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IAC7B,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,OAAO,GAAG,aAAa,CAAC;CAClD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,wBAAwB,GAChC,uBAAuB,CAiCzB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,6BAA6B;IAC3E,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,OAAO,GAAG,aAAa,CAAC;CAClD;AAeD;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,sBAAsB,GAAG;IAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;CAAE,GACrE,uBAAuB,CAAC;AAC3B;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,sBAAsB,GAAG;IAAE,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAA;CAAE,GAC3E,0BAA0B,CAAC;AAC9B;;;;;;;;GAQG;AAEH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,6BAA6B,GAAG;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GACA,uBAAuB,CAAC;AAmB3B;;;;;;GAMG;AACH;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,iCAAiC,GAAG;IAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;CAAE,GAChF,uBAAuB,CAAC;AAC3B;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,iCAAiC,GAAG;IAAE,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAA;CAAE,GACtF,0BAA0B,CAAC;AAC9B;;;;;;;;;GASG;AAEH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,6BAA6B,GAAG;IACvC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GACA,uBAAuB,CAAC;AAmB3B;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,6BAA6B,GAAG;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GACA,0BAA0B,CAK5B;AA0BD;;;;;;;GAOG;AACH,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,6BAA6B,GAAG;IACvC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GACA,0BAA0B,CAK5B;AAuBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,GACnC,SAAS,oCAAoC,EAAE,CA4DjD;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,SAAS,oCAAoC,EAAE,CAiBjD;AAMD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,6BAA6B,GAAG;IAC5E,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACjD,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,iBAAiB,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;IAC/D,QAAQ,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC3C,CAqBA"}
|
package/dist/index.cjs
CHANGED
|
@@ -1001,20 +1001,29 @@ function assertNoSerializedNameCollisions(ir) {
|
|
|
1001
1001
|
}
|
|
1002
1002
|
|
|
1003
1003
|
// src/json-schema/ir-generator.ts
|
|
1004
|
+
function parseEnumSerialization(value) {
|
|
1005
|
+
switch (value) {
|
|
1006
|
+
case void 0:
|
|
1007
|
+
case "enum":
|
|
1008
|
+
return "enum";
|
|
1009
|
+
case "oneOf":
|
|
1010
|
+
return "oneOf";
|
|
1011
|
+
case "smart-size":
|
|
1012
|
+
return "smart-size";
|
|
1013
|
+
default:
|
|
1014
|
+
throw new Error(
|
|
1015
|
+
`Invalid enumSerialization "${String(value)}". Expected "enum", "oneOf", or "smart-size".`
|
|
1016
|
+
);
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1004
1019
|
function makeContext(options) {
|
|
1005
1020
|
const vendorPrefix = options?.vendorPrefix ?? "x-formspec";
|
|
1006
|
-
const
|
|
1021
|
+
const enumSerialization = parseEnumSerialization(options?.enumSerialization);
|
|
1007
1022
|
if (!vendorPrefix.startsWith("x-")) {
|
|
1008
1023
|
throw new Error(
|
|
1009
1024
|
`Invalid vendorPrefix "${vendorPrefix}". Extension JSON Schema keywords must start with "x-".`
|
|
1010
1025
|
);
|
|
1011
1026
|
}
|
|
1012
|
-
if (rawEnumSerialization !== void 0 && rawEnumSerialization !== "enum" && rawEnumSerialization !== "oneOf") {
|
|
1013
|
-
throw new Error(
|
|
1014
|
-
`Invalid enumSerialization "${rawEnumSerialization}". Expected "enum" or "oneOf".`
|
|
1015
|
-
);
|
|
1016
|
-
}
|
|
1017
|
-
const enumSerialization = rawEnumSerialization ?? "enum";
|
|
1018
1027
|
return {
|
|
1019
1028
|
defs: {},
|
|
1020
1029
|
typeNameMap: {},
|
|
@@ -1222,7 +1231,7 @@ function generatePrimitiveType(type) {
|
|
|
1222
1231
|
};
|
|
1223
1232
|
}
|
|
1224
1233
|
function generateEnumType(type, ctx) {
|
|
1225
|
-
if (ctx.enumSerialization === "oneOf") {
|
|
1234
|
+
if (ctx.enumSerialization === "oneOf" || ctx.enumSerialization === "smart-size" && shouldSerializeEnumAsOneOf(type)) {
|
|
1226
1235
|
return {
|
|
1227
1236
|
oneOf: type.members.map((m) => {
|
|
1228
1237
|
const stringValue = String(m.value);
|
|
@@ -1232,12 +1241,21 @@ function generateEnumType(type, ctx) {
|
|
|
1232
1241
|
};
|
|
1233
1242
|
}
|
|
1234
1243
|
const schema = { enum: type.members.map((m) => m.value) };
|
|
1244
|
+
if (ctx.enumSerialization === "smart-size") {
|
|
1245
|
+
return schema;
|
|
1246
|
+
}
|
|
1235
1247
|
const displayNames = buildEnumDisplayNameExtension(type);
|
|
1236
1248
|
if (displayNames !== void 0) {
|
|
1237
1249
|
schema[`${ctx.vendorPrefix}-display-names`] = displayNames;
|
|
1238
1250
|
}
|
|
1239
1251
|
return schema;
|
|
1240
1252
|
}
|
|
1253
|
+
function shouldSerializeEnumAsOneOf(type) {
|
|
1254
|
+
return type.members.some((member) => {
|
|
1255
|
+
const title = member.displayName ?? String(member.value);
|
|
1256
|
+
return title !== String(member.value);
|
|
1257
|
+
});
|
|
1258
|
+
}
|
|
1241
1259
|
function buildEnumDisplayNameExtension(type) {
|
|
1242
1260
|
if (!type.members.some((member) => member.displayName !== void 0)) {
|
|
1243
1261
|
return void 0;
|