@palantir/pack.document-schema.type-gen 0.8.0 → 0.10.0
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/build/esm/commands/asset/__tests__/buildPrefixRewriteFetch.test.js +85 -0
- package/build/esm/commands/asset/__tests__/buildPrefixRewriteFetch.test.js.map +1 -0
- package/build/esm/commands/asset/assetDeployHandler.js +36 -1
- package/build/esm/commands/asset/assetDeployHandler.js.map +1 -1
- package/build/esm/commands/asset/registerAssetCommands.js +1 -1
- package/build/esm/commands/asset/registerAssetCommands.js.map +1 -1
- package/build/esm/commands/ir/irGenTypesHandler.js +49 -0
- package/build/esm/commands/ir/irGenTypesHandler.js.map +1 -0
- package/build/esm/commands/ir/registerIrCommands.js +2 -0
- package/build/esm/commands/ir/registerIrCommands.js.map +1 -1
- package/build/esm/commands/schema/registerSchemaCommands.js +2 -0
- package/build/esm/commands/schema/registerSchemaCommands.js.map +1 -1
- package/build/esm/commands/schema/schemaIrHandler.js +56 -0
- package/build/esm/commands/schema/schemaIrHandler.js.map +1 -0
- package/build/esm/index.js.map +1 -1
- package/build/esm/lib/pack-docschema-api/pack-docschema-ir/recordDef.js.map +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/custom-discriminant.js +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/custom-discriminant.js.map +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/external-refs.js +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/external-refs.js.map +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/simple-record.js +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/simple-record.js.map +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/union-types.js +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateModelsFromIr/union-types.js.map +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/array-and-map-types.js +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/array-and-map-types.js.map +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/boolean-fields.js +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/boolean-fields.js.map +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/custom-discriminant.js +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/custom-discriminant.js.map +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/datetime-fields.js +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/datetime-fields.js.map +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/simple-records.js +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/simple-records.js.map +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-before-records.js +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-before-records.js.map +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-types.js +1 -1
- package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-types.js.map +1 -1
- package/build/esm/utils/ir/__tests__/convertIrToWireSchema.test.js +27 -16
- package/build/esm/utils/ir/__tests__/convertIrToWireSchema.test.js.map +1 -1
- package/build/esm/utils/ir/__tests__/generateModelsFromIr.test.js +6 -24
- package/build/esm/utils/ir/__tests__/generateModelsFromIr.test.js.map +1 -1
- package/build/esm/utils/ir/__tests__/generateZodSchemasFromIr.test.js +10 -40
- package/build/esm/utils/ir/__tests__/generateZodSchemasFromIr.test.js.map +1 -1
- package/build/esm/utils/ir/convertIrToWireSchema.js +4 -2
- package/build/esm/utils/ir/convertIrToWireSchema.js.map +1 -1
- package/build/esm/utils/ir/generateZodSchemasFromIr.js +1 -1
- package/build/esm/utils/ir/generateZodSchemasFromIr.js.map +1 -1
- package/build/esm/utils/ir/irFieldHelpers.js +383 -0
- package/build/esm/utils/ir/irFieldHelpers.js.map +1 -0
- package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/single-version.js +2 -0
- package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/single-version.js.map +1 -0
- package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/three-version-chain.js +2 -0
- package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/three-version-chain.js.map +1 -0
- package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/two-version.js +2 -0
- package/build/esm/utils/schema/__tests__/__snapshots__/generateVersionsFromSchema/two-version.js.map +1 -0
- package/build/esm/utils/schema/__tests__/convertSchemaToSteps.test.js +13 -0
- package/build/esm/utils/schema/__tests__/convertSchemaToSteps.test.js.map +1 -1
- package/build/esm/utils/schema/__tests__/fixtures.js +278 -0
- package/build/esm/utils/schema/__tests__/fixtures.js.map +1 -0
- package/build/esm/utils/schema/__tests__/generateInternalFromSchema.test.js +53 -0
- package/build/esm/utils/schema/__tests__/generateInternalFromSchema.test.js.map +1 -0
- package/build/esm/utils/schema/__tests__/generateModelMetadataFromSchema.test.js +42 -0
- package/build/esm/utils/schema/__tests__/generateModelMetadataFromSchema.test.js.map +1 -0
- package/build/esm/utils/schema/__tests__/generateScopeFromSchema.test.js +38 -0
- package/build/esm/utils/schema/__tests__/generateScopeFromSchema.test.js.map +1 -0
- package/build/esm/utils/schema/__tests__/generateVersionedTypesFromSchema.test.js +64 -0
- package/build/esm/utils/schema/__tests__/generateVersionedTypesFromSchema.test.js.map +1 -0
- package/build/esm/utils/schema/__tests__/generateVersionedZodFromSchema.test.js +60 -0
- package/build/esm/utils/schema/__tests__/generateVersionedZodFromSchema.test.js.map +1 -0
- package/build/esm/utils/schema/__tests__/generateVersionsFromSchema.test.js +38 -0
- package/build/esm/utils/schema/__tests__/generateVersionsFromSchema.test.js.map +1 -0
- package/build/esm/utils/schema/__tests__/snapshotUtils.js +106 -0
- package/build/esm/utils/schema/__tests__/snapshotUtils.js.map +1 -0
- package/build/esm/utils/schema/convertSchemaToSteps.js +6 -0
- package/build/esm/utils/schema/convertSchemaToSteps.js.map +1 -1
- package/build/esm/utils/schema/generateIndexFromSchema.js +74 -0
- package/build/esm/utils/schema/generateIndexFromSchema.js.map +1 -0
- package/build/esm/utils/schema/generateInternalFromSchema.js +264 -0
- package/build/esm/utils/schema/generateInternalFromSchema.js.map +1 -0
- package/build/esm/utils/schema/generateModelMetadataFromSchema.js +172 -0
- package/build/esm/utils/schema/generateModelMetadataFromSchema.js.map +1 -0
- package/build/esm/utils/schema/generateScopeFromSchema.js +151 -0
- package/build/esm/utils/schema/generateScopeFromSchema.js.map +1 -0
- package/build/esm/utils/schema/generateTypesFromSchema.js +20 -26
- package/build/esm/utils/schema/generateTypesFromSchema.js.map +1 -1
- package/build/esm/utils/schema/generateVersionedTypesFromSchema.js +187 -0
- package/build/esm/utils/schema/generateVersionedTypesFromSchema.js.map +1 -0
- package/build/esm/utils/schema/generateVersionedZodFromSchema.js +153 -0
- package/build/esm/utils/schema/generateVersionedZodFromSchema.js.map +1 -0
- package/build/esm/utils/schema/generateVersionsFromSchema.js +52 -0
- package/build/esm/utils/schema/generateVersionsFromSchema.js.map +1 -0
- package/build/esm/utils/schema/loadSchemaModule.js +53 -0
- package/build/esm/utils/schema/loadSchemaModule.js.map +1 -0
- package/build/esm/utils/schema/resolveSchemaChain.js +104 -0
- package/build/esm/utils/schema/resolveSchemaChain.js.map +1 -0
- package/build/esm/utils/schema/runtimeSchema.js +69 -0
- package/build/esm/utils/schema/runtimeSchema.js.map +1 -0
- package/build/esm/utils/schema/writeAllSdkFiles.js +111 -0
- package/build/esm/utils/schema/writeAllSdkFiles.js.map +1 -0
- package/build/esm/utils/steps/__tests__/__snapshots__/types/arrayFields.js.map +1 -1
- package/build/esm/utils/steps/__tests__/__snapshots__/types/customDiscriminant.js +1 -1
- package/build/esm/utils/steps/__tests__/__snapshots__/types/customDiscriminant.js.map +1 -1
- package/build/esm/utils/steps/__tests__/__snapshots__/types/generateTypeScriptInterfaces.js +1 -1
- package/build/esm/utils/steps/__tests__/__snapshots__/types/generateTypeScriptInterfaces.js.map +1 -1
- package/build/esm/utils/steps/__tests__/__snapshots__/types/refTypes.js.map +1 -1
- package/build/esm/utils/steps/__tests__/__snapshots__/types/simpleRecord.js.map +1 -1
- package/build/esm/utils/steps/__tests__/__snapshots__/types/simpleSteps.js +1 -1
- package/build/esm/utils/steps/__tests__/__snapshots__/types/simpleSteps.js.map +1 -1
- package/build/esm/utils/steps/__tests__/convertStepsToIr.test.js +93 -1
- package/build/esm/utils/steps/__tests__/convertStepsToIr.test.js.map +1 -1
- package/build/esm/utils/steps/convertStepsToIr.js +45 -40
- package/build/esm/utils/steps/convertStepsToIr.js.map +1 -1
- package/build/types/commands/asset/__tests__/buildPrefixRewriteFetch.test.d.ts +2 -0
- package/build/types/commands/asset/__tests__/buildPrefixRewriteFetch.test.d.ts.map +1 -0
- package/build/types/commands/asset/assetDeployHandler.d.ts +15 -0
- package/build/types/commands/asset/assetDeployHandler.d.ts.map +1 -1
- package/build/types/commands/asset/registerAssetCommands.d.ts.map +1 -1
- package/build/types/commands/ir/irGenTypesHandler.d.ts +8 -0
- package/build/types/commands/ir/irGenTypesHandler.d.ts.map +1 -0
- package/build/types/commands/ir/registerIrCommands.d.ts.map +1 -1
- package/build/types/commands/schema/registerSchemaCommands.d.ts.map +1 -1
- package/build/types/commands/schema/schemaIrHandler.d.ts +19 -0
- package/build/types/commands/schema/schemaIrHandler.d.ts.map +1 -0
- package/build/types/index.d.ts +1 -0
- package/build/types/index.d.ts.map +1 -1
- package/build/types/lib/pack-docschema-api/pack-docschema-ir/recordDef.d.ts +0 -2
- package/build/types/lib/pack-docschema-api/pack-docschema-ir/recordDef.d.ts.map +1 -1
- package/build/types/utils/ir/irFieldHelpers.d.ts +36 -0
- package/build/types/utils/ir/irFieldHelpers.d.ts.map +1 -0
- package/build/types/utils/schema/__tests__/fixtures.d.ts +23 -0
- package/build/types/utils/schema/__tests__/fixtures.d.ts.map +1 -0
- package/build/types/utils/schema/__tests__/generateInternalFromSchema.test.d.ts +2 -0
- package/build/types/utils/schema/__tests__/generateInternalFromSchema.test.d.ts.map +1 -0
- package/build/types/utils/schema/__tests__/generateModelMetadataFromSchema.test.d.ts +2 -0
- package/build/types/utils/schema/__tests__/generateModelMetadataFromSchema.test.d.ts.map +1 -0
- package/build/types/utils/schema/__tests__/generateScopeFromSchema.test.d.ts +2 -0
- package/build/types/utils/schema/__tests__/generateScopeFromSchema.test.d.ts.map +1 -0
- package/build/types/utils/schema/__tests__/generateVersionedTypesFromSchema.test.d.ts +2 -0
- package/build/types/utils/schema/__tests__/generateVersionedTypesFromSchema.test.d.ts.map +1 -0
- package/build/types/utils/schema/__tests__/generateVersionedZodFromSchema.test.d.ts +2 -0
- package/build/types/utils/schema/__tests__/generateVersionedZodFromSchema.test.d.ts.map +1 -0
- package/build/types/utils/schema/__tests__/generateVersionsFromSchema.test.d.ts +2 -0
- package/build/types/utils/schema/__tests__/generateVersionsFromSchema.test.d.ts.map +1 -0
- package/build/types/utils/schema/__tests__/snapshotUtils.d.ts +47 -0
- package/build/types/utils/schema/__tests__/snapshotUtils.d.ts.map +1 -0
- package/build/types/utils/schema/convertSchemaToSteps.d.ts.map +1 -1
- package/build/types/utils/schema/generateIndexFromSchema.d.ts +14 -0
- package/build/types/utils/schema/generateIndexFromSchema.d.ts.map +1 -0
- package/build/types/utils/schema/generateInternalFromSchema.d.ts +15 -0
- package/build/types/utils/schema/generateInternalFromSchema.d.ts.map +1 -0
- package/build/types/utils/schema/generateModelMetadataFromSchema.d.ts +10 -0
- package/build/types/utils/schema/generateModelMetadataFromSchema.d.ts.map +1 -0
- package/build/types/utils/schema/generateScopeFromSchema.d.ts +13 -0
- package/build/types/utils/schema/generateScopeFromSchema.d.ts.map +1 -0
- package/build/types/utils/schema/generateTypesFromSchema.d.ts.map +1 -1
- package/build/types/utils/schema/generateVersionedTypesFromSchema.d.ts +15 -0
- package/build/types/utils/schema/generateVersionedTypesFromSchema.d.ts.map +1 -0
- package/build/types/utils/schema/generateVersionedZodFromSchema.d.ts +12 -0
- package/build/types/utils/schema/generateVersionedZodFromSchema.d.ts.map +1 -0
- package/build/types/utils/schema/generateVersionsFromSchema.d.ts +13 -0
- package/build/types/utils/schema/generateVersionsFromSchema.d.ts.map +1 -0
- package/build/types/utils/schema/loadSchemaModule.d.ts +14 -0
- package/build/types/utils/schema/loadSchemaModule.d.ts.map +1 -0
- package/build/types/utils/schema/resolveSchemaChain.d.ts +39 -0
- package/build/types/utils/schema/resolveSchemaChain.d.ts.map +1 -0
- package/build/types/utils/schema/runtimeSchema.d.ts +27 -0
- package/build/types/utils/schema/runtimeSchema.d.ts.map +1 -0
- package/build/types/utils/schema/writeAllSdkFiles.d.ts +8 -0
- package/build/types/utils/schema/writeAllSdkFiles.d.ts.map +1 -0
- package/build/types/utils/steps/convertStepsToIr.d.ts +3 -3
- package/build/types/utils/steps/convertStepsToIr.d.ts.map +1 -1
- package/package.json +3 -3
package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/datetime-fields.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime-fields.js","names":["z","EventSchema","object","timestamp","string","datetime"],"sources":["datetime-fields.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.
|
|
1
|
+
{"version":3,"file":"datetime-fields.js","names":["z","EventSchema","object","timestamp","string","datetime"],"sources":["datetime-fields.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.10.0 */\n\nimport { z } from 'zod';\n\nexport const EventSchema = z.object({\n timestamp: z.string().datetime(),\n});\n"],"mappings":"AAAA;;AAEA,SAASA,CAAC,QAAQ,KAAK;AAEvB,OAAO,MAAMC,WAAW,GAAGD,CAAC,CAACE,MAAM,CAAC;EAClCC,SAAS,EAAEH,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC;AACjC,CAAC,CAAC","ignoreList":[]}
|
package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/simple-records.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-records.js","names":["z","PersonSchema","object","name","string","min","max","age","number","int","email","optional"],"sources":["simple-records.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.
|
|
1
|
+
{"version":3,"file":"simple-records.js","names":["z","PersonSchema","object","name","string","min","max","age","number","int","email","optional"],"sources":["simple-records.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.10.0 */\n\nimport { z } from 'zod';\n\nexport const PersonSchema = z.object({\n name: z.string().min(2).max(50),\n age: z.number().int().min(0).max(150),\n email: z.string().optional(),\n});\n"],"mappings":"AAAA;;AAEA,SAASA,CAAC,QAAQ,KAAK;AAEvB,OAAO,MAAMC,YAAY,GAAGD,CAAC,CAACE,MAAM,CAAC;EACnCC,IAAI,EAAEH,CAAC,CAACI,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC,CAACC,GAAG,CAAC,EAAE,CAAC;EAC/BC,GAAG,EAAEP,CAAC,CAACQ,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC,CAACJ,GAAG,CAAC,CAAC,CAAC,CAACC,GAAG,CAAC,GAAG,CAAC;EACrCI,KAAK,EAAEV,CAAC,CAACI,MAAM,CAAC,CAAC,CAACO,QAAQ,CAAC;AAC7B,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union-before-records.js","names":["z","FooSchema","object","value","string","BarSchema","count","number","int","FooBarFooSchema","extend","type","literal","FooBarBarSchema","FooBarSchema","discriminatedUnion"],"sources":["union-before-records.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.
|
|
1
|
+
{"version":3,"file":"union-before-records.js","names":["z","FooSchema","object","value","string","BarSchema","count","number","int","FooBarFooSchema","extend","type","literal","FooBarBarSchema","FooBarSchema","discriminatedUnion"],"sources":["union-before-records.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.10.0 */\n\nimport { z } from 'zod';\n\nexport const FooSchema = z.object({\n value: z.string(),\n});\n\nexport const BarSchema = z.object({\n count: z.number().int(),\n});\n\nexport const FooBarFooSchema = FooSchema.extend({\n type: z.literal('foo'),\n});\n\nexport const FooBarBarSchema = BarSchema.extend({\n type: z.literal('bar'),\n});\n\nexport const FooBarSchema = z.discriminatedUnion('type', [\n FooBarFooSchema,\n FooBarBarSchema,\n]);\n"],"mappings":"AAAA;;AAEA,SAASA,CAAC,QAAQ,KAAK;AAEvB,OAAO,MAAMC,SAAS,GAAGD,CAAC,CAACE,MAAM,CAAC;EAChCC,KAAK,EAAEH,CAAC,CAACI,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,OAAO,MAAMC,SAAS,GAAGL,CAAC,CAACE,MAAM,CAAC;EAChCI,KAAK,EAAEN,CAAC,CAACO,MAAM,CAAC,CAAC,CAACC,GAAG,CAAC;AACxB,CAAC,CAAC;AAEF,OAAO,MAAMC,eAAe,GAAGR,SAAS,CAACS,MAAM,CAAC;EAC9CC,IAAI,EAAEX,CAAC,CAACY,OAAO,CAAC,KAAK;AACvB,CAAC,CAAC;AAEF,OAAO,MAAMC,eAAe,GAAGR,SAAS,CAACK,MAAM,CAAC;EAC9CC,IAAI,EAAEX,CAAC,CAACY,OAAO,CAAC,KAAK;AACvB,CAAC,CAAC;AAEF,OAAO,MAAME,YAAY,GAAGd,CAAC,CAACe,kBAAkB,CAAC,MAAM,EAAE,CACvDN,eAAe,EACfI,eAAe,CAChB,CAAC","ignoreList":[]}
|
package/build/esm/utils/ir/__tests__/__snapshots__/generateZodSchemasFromIr/union-types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union-types.js","names":["z","ObjectNodeSchema","object","x","number","y","label","string","optional","TextBoxSchema","text","NodeObjectSchema","extend","type","literal","NodeTextBoxSchema","NodeSchema","discriminatedUnion"],"sources":["union-types.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.
|
|
1
|
+
{"version":3,"file":"union-types.js","names":["z","ObjectNodeSchema","object","x","number","y","label","string","optional","TextBoxSchema","text","NodeObjectSchema","extend","type","literal","NodeTextBoxSchema","NodeSchema","discriminatedUnion"],"sources":["union-types.ts"],"sourcesContent":["/* Generated by @palantir/pack.document-schema.type-gen@0.10.0 */\n\nimport { z } from 'zod';\n\nexport const ObjectNodeSchema = z.object({\n x: z.number(),\n y: z.number(),\n label: z.string().optional(),\n});\n\nexport const TextBoxSchema = z.object({\n x: z.number(),\n y: z.number(),\n text: z.string(),\n});\n\nexport const NodeObjectSchema = ObjectNodeSchema.extend({\n type: z.literal('object'),\n});\n\nexport const NodeTextBoxSchema = TextBoxSchema.extend({\n type: z.literal('text-box'),\n});\n\nexport const NodeSchema = z.discriminatedUnion('type', [\n NodeObjectSchema,\n NodeTextBoxSchema,\n]);\n"],"mappings":"AAAA;;AAEA,SAASA,CAAC,QAAQ,KAAK;AAEvB,OAAO,MAAMC,gBAAgB,GAAGD,CAAC,CAACE,MAAM,CAAC;EACvCC,CAAC,EAAEH,CAAC,CAACI,MAAM,CAAC,CAAC;EACbC,CAAC,EAAEL,CAAC,CAACI,MAAM,CAAC,CAAC;EACbE,KAAK,EAAEN,CAAC,CAACO,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC;AAC7B,CAAC,CAAC;AAEF,OAAO,MAAMC,aAAa,GAAGT,CAAC,CAACE,MAAM,CAAC;EACpCC,CAAC,EAAEH,CAAC,CAACI,MAAM,CAAC,CAAC;EACbC,CAAC,EAAEL,CAAC,CAACI,MAAM,CAAC,CAAC;EACbM,IAAI,EAAEV,CAAC,CAACO,MAAM,CAAC;AACjB,CAAC,CAAC;AAEF,OAAO,MAAMI,gBAAgB,GAAGV,gBAAgB,CAACW,MAAM,CAAC;EACtDC,IAAI,EAAEb,CAAC,CAACc,OAAO,CAAC,QAAQ;AAC1B,CAAC,CAAC;AAEF,OAAO,MAAMC,iBAAiB,GAAGN,aAAa,CAACG,MAAM,CAAC;EACpDC,IAAI,EAAEb,CAAC,CAACc,OAAO,CAAC,UAAU;AAC5B,CAAC,CAAC;AAEF,OAAO,MAAME,UAAU,GAAGhB,CAAC,CAACiB,kBAAkB,CAAC,MAAM,EAAE,CACrDN,gBAAgB,EAChBI,iBAAiB,CAClB,CAAC","ignoreList":[]}
|
|
@@ -33,10 +33,7 @@ describe("convertIrToWireSchema", () => {
|
|
|
33
33
|
metadata: {
|
|
34
34
|
addedInVersion: 1
|
|
35
35
|
}
|
|
36
|
-
}]
|
|
37
|
-
metadata: {
|
|
38
|
-
addedInVersion: 1
|
|
39
|
-
}
|
|
36
|
+
}]
|
|
40
37
|
};
|
|
41
38
|
const wire = convertIrToWireSchema({
|
|
42
39
|
name: "Test",
|
|
@@ -124,10 +121,7 @@ describe("convertIrToWireSchema", () => {
|
|
|
124
121
|
metadata: {
|
|
125
122
|
addedInVersion: 1
|
|
126
123
|
}
|
|
127
|
-
}]
|
|
128
|
-
metadata: {
|
|
129
|
-
addedInVersion: 1
|
|
130
|
-
}
|
|
124
|
+
}]
|
|
131
125
|
};
|
|
132
126
|
const wire = convertIrToWireSchema({
|
|
133
127
|
name: "Test",
|
|
@@ -172,10 +166,7 @@ describe("convertIrToWireSchema", () => {
|
|
|
172
166
|
metadata: {
|
|
173
167
|
addedInVersion: 1
|
|
174
168
|
}
|
|
175
|
-
}]
|
|
176
|
-
metadata: {
|
|
177
|
-
addedInVersion: 1
|
|
178
|
-
}
|
|
169
|
+
}]
|
|
179
170
|
};
|
|
180
171
|
const wire = convertIrToWireSchema({
|
|
181
172
|
name: "Test",
|
|
@@ -285,10 +276,7 @@ describe("convertIrToWireSchema", () => {
|
|
|
285
276
|
metadata: {
|
|
286
277
|
addedInVersion: 1
|
|
287
278
|
}
|
|
288
|
-
}]
|
|
289
|
-
metadata: {
|
|
290
|
-
addedInVersion: 1
|
|
291
|
-
}
|
|
279
|
+
}]
|
|
292
280
|
};
|
|
293
281
|
const wire = convertIrToWireSchema({
|
|
294
282
|
name: "Test",
|
|
@@ -317,6 +305,29 @@ describe("convertIrToWireSchema", () => {
|
|
|
317
305
|
}
|
|
318
306
|
}
|
|
319
307
|
});
|
|
308
|
+
it("should preserve declared name (not export key) for aliased models on the wire", () => {
|
|
309
|
+
const wire = convertIrToWireSchema({
|
|
310
|
+
name: "Test",
|
|
311
|
+
description: "Test",
|
|
312
|
+
version: 1,
|
|
313
|
+
primaryModelKeys: ["FooAlias"],
|
|
314
|
+
models: {
|
|
315
|
+
FooAlias: {
|
|
316
|
+
type: "record",
|
|
317
|
+
record: {
|
|
318
|
+
key: "FooAlias",
|
|
319
|
+
name: "Foo",
|
|
320
|
+
description: "A foo",
|
|
321
|
+
fields: []
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
});
|
|
326
|
+
const model = wire.models["FooAlias"];
|
|
327
|
+
// Wire format uses name for on-the-wire identity — must be declared name, not alias
|
|
328
|
+
expect(model.name).toBe("Foo");
|
|
329
|
+
expect(model.key).toBe("FooAlias");
|
|
330
|
+
});
|
|
320
331
|
it("should strip name, description, version from output", () => {
|
|
321
332
|
const wire = convertIrToWireSchema({
|
|
322
333
|
name: "My Schema",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertIrToWireSchema.test.js","names":["describe","expect","it","IFieldValueUnion","convertIrToWireSchema","record","key","name","description","fields","fieldType","type","value","string","metadata","addedInVersion","wire","version","primaryModelKeys","models","Person","toEqual","toBeDefined","personModel","toBe","person","nameField","Shape","union","discriminant","variants","circle","square","shapeModel","shape","defaultValue","R","recordModel","field","valueType","array","allowNullValue","fn","boolean","payload","datetime","docRef","documentTypeRids","double","minValue","maxValue","integer","mediaRef","modelRef","modelTypes","object","interfaceTypeRids","objectTypeRids","maxLength","text","unmanagedJson","userRef","wireValue","toBeUndefined","val","Object","entries"],"sources":["convertIrToWireSchema.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { FieldValueType, RecordDef, UnionDef } from \"@osdk/foundry.pack\";\nimport { describe, expect, it } from \"vitest\";\nimport type {\n IModelDef,\n IRealTimeDocumentSchema,\n IRecordDef,\n IUnionDef,\n} from \"../../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport { IFieldValueUnion } from \"../../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport { convertIrToWireSchema } from \"../convertIrToWireSchema.js\";\n\ndescribe(\"convertIrToWireSchema\", () => {\n it(\"should flatten record model and rename fields correctly\", () => {\n const record: IRecordDef = {\n key: \"Person\",\n name: \"Person\",\n description: \"A person\",\n fields: [\n {\n key: \"name\",\n name: \"Name\",\n fieldType: {\n type: \"value\",\n value: IFieldValueUnion.string({}),\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n metadata: { addedInVersion: 1 },\n };\n\n const ir: IRealTimeDocumentSchema = {\n name: \"Test\",\n description: \"Test schema\",\n version: 1,\n primaryModelKeys: [\"Person\"],\n models: {\n Person: { type: \"record\", record } as IModelDef,\n },\n };\n\n const wire = convertIrToWireSchema(ir);\n\n // Top-level structure\n expect(wire.primaryModelKeys).toEqual([\"Person\"]);\n expect(wire.models).toBeDefined();\n\n // Model is flattened (no .record wrapper)\n const personModel = wire.models[\"Person\"];\n expect(personModel).toBeDefined();\n expect(personModel!.type).toBe(\"record\");\n const person = personModel as { type: \"record\" } & RecordDef;\n expect(person.key).toBe(\"Person\");\n expect(person.name).toBe(\"Person\");\n expect(\"record\" in person).toBe(false); // no conjure nesting\n\n // Field uses wire field names\n const nameField = person.fields[0]!;\n expect(nameField.key).toBe(\"name\");\n expect(nameField.fieldType).toBeDefined();\n expect(nameField.metadata).toEqual({ addedInVersion: 1 });\n });\n\n it(\"should flatten union model\", () => {\n const union: IUnionDef = {\n key: \"Shape\",\n discriminant: \"shapeType\",\n name: \"Shape\",\n variants: { circle: \"Circle\", square: \"Square\" },\n metadata: { addedInVersion: 1 },\n };\n\n const ir: IRealTimeDocumentSchema = {\n name: \"Test\",\n description: \"Test\",\n version: 1,\n primaryModelKeys: [\"Shape\"],\n models: {\n Shape: { type: \"union\", union } as IModelDef,\n },\n };\n\n const wire = convertIrToWireSchema(ir);\n const shapeModel = wire.models[\"Shape\"];\n expect(shapeModel).toBeDefined();\n expect(shapeModel!.type).toBe(\"union\");\n const shape = shapeModel as { type: \"union\" } & UnionDef;\n\n expect(shape.key).toBe(\"Shape\");\n expect(shape.discriminant).toBe(\"shapeType\");\n expect(shape.variants).toEqual({ circle: \"Circle\", square: \"Square\" });\n expect(\"union\" in shape).toBe(false); // no conjure nesting\n });\n\n it(\"should convert value field type with FieldValueType wrapper\", () => {\n const record: IRecordDef = {\n key: \"R\",\n name: \"R\",\n fields: [\n {\n key: \"f\",\n name: \"f\",\n fieldType: {\n type: \"value\",\n value: IFieldValueUnion.string({ defaultValue: \"abc\" }),\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n metadata: { addedInVersion: 1 },\n };\n\n const ir: IRealTimeDocumentSchema = {\n name: \"Test\",\n description: \"Test\",\n version: 1,\n primaryModelKeys: [\"R\"],\n models: { R: { type: \"record\", record } as IModelDef },\n };\n\n const wire = convertIrToWireSchema(ir);\n expect(wire.models[\"R\"]).toBeDefined();\n expect(wire.models[\"R\"]!.type).toBe(\"record\");\n const recordModel = wire.models[\"R\"] as { type: \"record\" } & RecordDef;\n const field = recordModel.fields[0]!;\n\n // Wire format wraps in { valueType: { type: \"string\", defaultValue: \"abc\" } }\n expect(field.fieldType).toEqual({\n type: \"value\",\n valueType: {\n type: \"string\",\n defaultValue: \"abc\",\n },\n });\n });\n\n it(\"should convert array field type with FieldValueType wrapper on elements\", () => {\n const record: IRecordDef = {\n key: \"R\",\n name: \"R\",\n fields: [\n {\n key: \"tags\",\n name: \"Tags\",\n fieldType: {\n type: \"array\",\n array: {\n allowNullValue: false,\n value: IFieldValueUnion.string({}),\n },\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n metadata: { addedInVersion: 1 },\n };\n\n const ir: IRealTimeDocumentSchema = {\n name: \"Test\",\n description: \"Test\",\n version: 1,\n primaryModelKeys: [\"R\"],\n models: { R: { type: \"record\", record } as IModelDef },\n };\n\n const wire = convertIrToWireSchema(ir);\n expect(wire.models[\"R\"]).toBeDefined();\n expect(wire.models[\"R\"]!.type).toBe(\"record\");\n const recordModel = wire.models[\"R\"] as { type: \"record\" } & RecordDef;\n const field = recordModel.fields[0]!;\n\n expect(field.fieldType).toEqual({\n type: \"array\",\n allowNullValue: false,\n value: {\n valueType: {\n type: \"string\",\n },\n },\n });\n });\n\n it(\"should flatten all field value union variants\", () => {\n const variants: Array<{\n fn: (payload: never) => IFieldValueUnion;\n type: string;\n payload: Record<string, unknown>;\n }> = [\n { fn: IFieldValueUnion.boolean, type: \"boolean\", payload: {} },\n { fn: IFieldValueUnion.datetime, type: \"datetime\", payload: {} },\n { fn: IFieldValueUnion.docRef, type: \"docRef\", payload: { documentTypeRids: [\"rid1\"] } },\n { fn: IFieldValueUnion.double, type: \"double\", payload: { minValue: 0, maxValue: 100 } },\n { fn: IFieldValueUnion.integer, type: \"integer\", payload: { defaultValue: 42 } },\n { fn: IFieldValueUnion.mediaRef, type: \"mediaRef\", payload: {} },\n { fn: IFieldValueUnion.modelRef, type: \"modelRef\", payload: { modelTypes: [\"Foo\"] } },\n {\n fn: IFieldValueUnion.object,\n type: \"object\",\n payload: { interfaceTypeRids: [], objectTypeRids: [\"rid2\"] },\n },\n { fn: IFieldValueUnion.string, type: \"string\", payload: { maxLength: 255 } },\n { fn: IFieldValueUnion.text, type: \"text\", payload: {} },\n { fn: IFieldValueUnion.unmanagedJson, type: \"unmanagedJson\", payload: {} },\n { fn: IFieldValueUnion.userRef, type: \"userRef\", payload: {} },\n ];\n\n for (const { fn, type, payload } of variants) {\n const record: IRecordDef = {\n key: \"R\",\n name: \"R\",\n fields: [\n {\n key: \"f\",\n name: \"f\",\n fieldType: {\n type: \"value\",\n value: fn(payload as never),\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n metadata: { addedInVersion: 1 },\n };\n\n const ir: IRealTimeDocumentSchema = {\n name: \"Test\",\n description: \"Test\",\n version: 1,\n primaryModelKeys: [\"R\"],\n models: { R: { type: \"record\", record } as IModelDef },\n };\n\n const wire = convertIrToWireSchema(ir);\n expect(wire.models[\"R\"]).toBeDefined();\n expect(wire.models[\"R\"]!.type).toBe(\"record\");\n const recordModel = wire.models[\"R\"] as { type: \"record\" } & RecordDef;\n const fieldType = recordModel.fields[0]!.fieldType;\n expect(fieldType.type).toBe(\"value\");\n const wireValue = (fieldType as { type: \"value\" } & FieldValueType).valueType;\n expect(wireValue.type).toBe(type);\n // no conjure nesting key\n expect((wireValue as unknown as Record<string, unknown>)[type]).toBeUndefined();\n // Payload fields should be at top level\n for (const [key, val] of Object.entries(payload)) {\n expect((wireValue as unknown as Record<string, unknown>)[key]).toEqual(val);\n }\n }\n });\n\n it(\"should strip name, description, version from output\", () => {\n const ir: IRealTimeDocumentSchema = {\n name: \"My Schema\",\n description: \"My description\",\n version: 5,\n primaryModelKeys: [],\n models: {},\n };\n\n const wire = convertIrToWireSchema(ir);\n\n expect(\"name\" in wire).toBe(false);\n expect(\"description\" in wire).toBe(false);\n expect(\"version\" in wire).toBe(false);\n expect(wire.primaryModelKeys).toEqual([]);\n expect(wire.models).toEqual({});\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"convertIrToWireSchema.test.js","names":["describe","expect","it","IFieldValueUnion","convertIrToWireSchema","record","key","name","description","fields","fieldType","type","value","string","metadata","addedInVersion","wire","version","primaryModelKeys","models","Person","toEqual","toBeDefined","personModel","toBe","person","nameField","Shape","union","discriminant","variants","circle","square","shapeModel","shape","defaultValue","R","recordModel","field","valueType","array","allowNullValue","fn","boolean","payload","datetime","docRef","documentTypeRids","double","minValue","maxValue","integer","mediaRef","modelRef","modelTypes","object","interfaceTypeRids","objectTypeRids","maxLength","text","unmanagedJson","userRef","wireValue","toBeUndefined","val","Object","entries","FooAlias","model"],"sources":["convertIrToWireSchema.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { FieldValueType, RecordDef, UnionDef } from \"@osdk/foundry.pack\";\nimport { describe, expect, it } from \"vitest\";\nimport type {\n IModelDef,\n IRealTimeDocumentSchema,\n IRecordDef,\n IUnionDef,\n} from \"../../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport { IFieldValueUnion } from \"../../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport { convertIrToWireSchema } from \"../convertIrToWireSchema.js\";\n\ndescribe(\"convertIrToWireSchema\", () => {\n it(\"should flatten record model and rename fields correctly\", () => {\n const record: IRecordDef = {\n key: \"Person\",\n name: \"Person\",\n description: \"A person\",\n fields: [\n {\n key: \"name\",\n name: \"Name\",\n fieldType: {\n type: \"value\",\n value: IFieldValueUnion.string({}),\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n };\n\n const ir: IRealTimeDocumentSchema = {\n name: \"Test\",\n description: \"Test schema\",\n version: 1,\n primaryModelKeys: [\"Person\"],\n models: {\n Person: { type: \"record\", record } as IModelDef,\n },\n };\n\n const wire = convertIrToWireSchema(ir);\n\n // Top-level structure\n expect(wire.primaryModelKeys).toEqual([\"Person\"]);\n expect(wire.models).toBeDefined();\n\n // Model is flattened (no .record wrapper)\n const personModel = wire.models[\"Person\"];\n expect(personModel).toBeDefined();\n expect(personModel!.type).toBe(\"record\");\n const person = personModel as { type: \"record\" } & RecordDef;\n expect(person.key).toBe(\"Person\");\n expect(person.name).toBe(\"Person\");\n expect(\"record\" in person).toBe(false); // no conjure nesting\n\n // Field uses wire field names\n const nameField = person.fields[0]!;\n expect(nameField.key).toBe(\"name\");\n expect(nameField.fieldType).toBeDefined();\n expect(nameField.metadata).toEqual({ addedInVersion: 1 });\n });\n\n it(\"should flatten union model\", () => {\n const union: IUnionDef = {\n key: \"Shape\",\n discriminant: \"shapeType\",\n name: \"Shape\",\n variants: { circle: \"Circle\", square: \"Square\" },\n metadata: { addedInVersion: 1 },\n };\n\n const ir: IRealTimeDocumentSchema = {\n name: \"Test\",\n description: \"Test\",\n version: 1,\n primaryModelKeys: [\"Shape\"],\n models: {\n Shape: { type: \"union\", union } as IModelDef,\n },\n };\n\n const wire = convertIrToWireSchema(ir);\n const shapeModel = wire.models[\"Shape\"];\n expect(shapeModel).toBeDefined();\n expect(shapeModel!.type).toBe(\"union\");\n const shape = shapeModel as { type: \"union\" } & UnionDef;\n\n expect(shape.key).toBe(\"Shape\");\n expect(shape.discriminant).toBe(\"shapeType\");\n expect(shape.variants).toEqual({ circle: \"Circle\", square: \"Square\" });\n expect(\"union\" in shape).toBe(false); // no conjure nesting\n });\n\n it(\"should convert value field type with FieldValueType wrapper\", () => {\n const record: IRecordDef = {\n key: \"R\",\n name: \"R\",\n fields: [\n {\n key: \"f\",\n name: \"f\",\n fieldType: {\n type: \"value\",\n value: IFieldValueUnion.string({ defaultValue: \"abc\" }),\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n };\n\n const ir: IRealTimeDocumentSchema = {\n name: \"Test\",\n description: \"Test\",\n version: 1,\n primaryModelKeys: [\"R\"],\n models: { R: { type: \"record\", record } as IModelDef },\n };\n\n const wire = convertIrToWireSchema(ir);\n expect(wire.models[\"R\"]).toBeDefined();\n expect(wire.models[\"R\"]!.type).toBe(\"record\");\n const recordModel = wire.models[\"R\"] as { type: \"record\" } & RecordDef;\n const field = recordModel.fields[0]!;\n\n // Wire format wraps in { valueType: { type: \"string\", defaultValue: \"abc\" } }\n expect(field.fieldType).toEqual({\n type: \"value\",\n valueType: {\n type: \"string\",\n defaultValue: \"abc\",\n },\n });\n });\n\n it(\"should convert array field type with FieldValueType wrapper on elements\", () => {\n const record: IRecordDef = {\n key: \"R\",\n name: \"R\",\n fields: [\n {\n key: \"tags\",\n name: \"Tags\",\n fieldType: {\n type: \"array\",\n array: {\n allowNullValue: false,\n value: IFieldValueUnion.string({}),\n },\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n };\n\n const ir: IRealTimeDocumentSchema = {\n name: \"Test\",\n description: \"Test\",\n version: 1,\n primaryModelKeys: [\"R\"],\n models: { R: { type: \"record\", record } as IModelDef },\n };\n\n const wire = convertIrToWireSchema(ir);\n expect(wire.models[\"R\"]).toBeDefined();\n expect(wire.models[\"R\"]!.type).toBe(\"record\");\n const recordModel = wire.models[\"R\"] as { type: \"record\" } & RecordDef;\n const field = recordModel.fields[0]!;\n\n expect(field.fieldType).toEqual({\n type: \"array\",\n allowNullValue: false,\n value: {\n valueType: {\n type: \"string\",\n },\n },\n });\n });\n\n it(\"should flatten all field value union variants\", () => {\n const variants: Array<{\n fn: (payload: never) => IFieldValueUnion;\n type: string;\n payload: Record<string, unknown>;\n }> = [\n { fn: IFieldValueUnion.boolean, type: \"boolean\", payload: {} },\n { fn: IFieldValueUnion.datetime, type: \"datetime\", payload: {} },\n { fn: IFieldValueUnion.docRef, type: \"docRef\", payload: { documentTypeRids: [\"rid1\"] } },\n { fn: IFieldValueUnion.double, type: \"double\", payload: { minValue: 0, maxValue: 100 } },\n { fn: IFieldValueUnion.integer, type: \"integer\", payload: { defaultValue: 42 } },\n { fn: IFieldValueUnion.mediaRef, type: \"mediaRef\", payload: {} },\n { fn: IFieldValueUnion.modelRef, type: \"modelRef\", payload: { modelTypes: [\"Foo\"] } },\n {\n fn: IFieldValueUnion.object,\n type: \"object\",\n payload: { interfaceTypeRids: [], objectTypeRids: [\"rid2\"] },\n },\n { fn: IFieldValueUnion.string, type: \"string\", payload: { maxLength: 255 } },\n { fn: IFieldValueUnion.text, type: \"text\", payload: {} },\n { fn: IFieldValueUnion.unmanagedJson, type: \"unmanagedJson\", payload: {} },\n { fn: IFieldValueUnion.userRef, type: \"userRef\", payload: {} },\n ];\n\n for (const { fn, type, payload } of variants) {\n const record: IRecordDef = {\n key: \"R\",\n name: \"R\",\n fields: [\n {\n key: \"f\",\n name: \"f\",\n fieldType: {\n type: \"value\",\n value: fn(payload as never),\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n };\n\n const ir: IRealTimeDocumentSchema = {\n name: \"Test\",\n description: \"Test\",\n version: 1,\n primaryModelKeys: [\"R\"],\n models: { R: { type: \"record\", record } as IModelDef },\n };\n\n const wire = convertIrToWireSchema(ir);\n expect(wire.models[\"R\"]).toBeDefined();\n expect(wire.models[\"R\"]!.type).toBe(\"record\");\n const recordModel = wire.models[\"R\"] as { type: \"record\" } & RecordDef;\n const fieldType = recordModel.fields[0]!.fieldType;\n expect(fieldType.type).toBe(\"value\");\n const wireValue = (fieldType as { type: \"value\" } & FieldValueType).valueType;\n expect(wireValue.type).toBe(type);\n // no conjure nesting key\n expect((wireValue as unknown as Record<string, unknown>)[type]).toBeUndefined();\n // Payload fields should be at top level\n for (const [key, val] of Object.entries(payload)) {\n expect((wireValue as unknown as Record<string, unknown>)[key]).toEqual(val);\n }\n }\n });\n\n it(\"should preserve declared name (not export key) for aliased models on the wire\", () => {\n const record: IRecordDef = {\n key: \"FooAlias\",\n name: \"Foo\",\n description: \"A foo\",\n fields: [],\n };\n\n const ir: IRealTimeDocumentSchema = {\n name: \"Test\",\n description: \"Test\",\n version: 1,\n primaryModelKeys: [\"FooAlias\"],\n models: {\n FooAlias: { type: \"record\", record } as IModelDef,\n },\n };\n\n const wire = convertIrToWireSchema(ir);\n const model = wire.models[\"FooAlias\"] as { type: \"record\"; name: string; key: string };\n // Wire format uses name for on-the-wire identity — must be declared name, not alias\n expect(model.name).toBe(\"Foo\");\n expect(model.key).toBe(\"FooAlias\");\n });\n\n it(\"should strip name, description, version from output\", () => {\n const ir: IRealTimeDocumentSchema = {\n name: \"My Schema\",\n description: \"My description\",\n version: 5,\n primaryModelKeys: [],\n models: {},\n };\n\n const wire = convertIrToWireSchema(ir);\n\n expect(\"name\" in wire).toBe(false);\n expect(\"description\" in wire).toBe(false);\n expect(\"version\" in wire).toBe(false);\n expect(wire.primaryModelKeys).toEqual([]);\n expect(wire.models).toEqual({});\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -67,10 +67,7 @@ describe("generateModelsFromIr", () => {
|
|
|
67
67
|
metadata: {
|
|
68
68
|
addedInVersion: 1
|
|
69
69
|
}
|
|
70
|
-
}]
|
|
71
|
-
metadata: {
|
|
72
|
-
addedInVersion: 1
|
|
73
|
-
}
|
|
70
|
+
}]
|
|
74
71
|
}
|
|
75
72
|
}
|
|
76
73
|
}
|
|
@@ -144,10 +141,7 @@ describe("generateModelsFromIr", () => {
|
|
|
144
141
|
metadata: {
|
|
145
142
|
addedInVersion: 1
|
|
146
143
|
}
|
|
147
|
-
}]
|
|
148
|
-
metadata: {
|
|
149
|
-
addedInVersion: 1
|
|
150
|
-
}
|
|
144
|
+
}]
|
|
151
145
|
}
|
|
152
146
|
}
|
|
153
147
|
}
|
|
@@ -207,10 +201,7 @@ describe("generateModelsFromIr", () => {
|
|
|
207
201
|
metadata: {
|
|
208
202
|
addedInVersion: 1
|
|
209
203
|
}
|
|
210
|
-
}]
|
|
211
|
-
metadata: {
|
|
212
|
-
addedInVersion: 1
|
|
213
|
-
}
|
|
204
|
+
}]
|
|
214
205
|
}
|
|
215
206
|
},
|
|
216
207
|
TextBox: {
|
|
@@ -247,10 +238,7 @@ describe("generateModelsFromIr", () => {
|
|
|
247
238
|
metadata: {
|
|
248
239
|
addedInVersion: 1
|
|
249
240
|
}
|
|
250
|
-
}]
|
|
251
|
-
metadata: {
|
|
252
|
-
addedInVersion: 1
|
|
253
|
-
}
|
|
241
|
+
}]
|
|
254
242
|
}
|
|
255
243
|
},
|
|
256
244
|
Node: {
|
|
@@ -316,10 +304,7 @@ describe("generateModelsFromIr", () => {
|
|
|
316
304
|
metadata: {
|
|
317
305
|
addedInVersion: 1
|
|
318
306
|
}
|
|
319
|
-
}]
|
|
320
|
-
metadata: {
|
|
321
|
-
addedInVersion: 1
|
|
322
|
-
}
|
|
307
|
+
}]
|
|
323
308
|
}
|
|
324
309
|
},
|
|
325
310
|
Dog: {
|
|
@@ -342,10 +327,7 @@ describe("generateModelsFromIr", () => {
|
|
|
342
327
|
metadata: {
|
|
343
328
|
addedInVersion: 1
|
|
344
329
|
}
|
|
345
|
-
}]
|
|
346
|
-
metadata: {
|
|
347
|
-
addedInVersion: 1
|
|
348
|
-
}
|
|
330
|
+
}]
|
|
349
331
|
}
|
|
350
332
|
},
|
|
351
333
|
Animal: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateModelsFromIr.test.js","names":["path","describe","expect","it","generateModelsFromIr","formatWithPrettier","snapshotDir","join","__dirname","result","name","description","version","primaryModelKeys","models","Person","type","record","key","fields","fieldType","value","string","minLength","maxLength","metadata","addedInVersion","integer","minValue","maxValue","formatted","lines","split","importLines","filter","line","startsWith","length","toBeGreaterThan","forEach","toMatch","toMatchFileSnapshot","Event","docRef","documentTypeRids","userRef","datetime","toContain","ObjectNode","double","TextBox","Node","union","discriminant","variants","object","Cat","Dog","Animal","cat","dog"],"sources":["generateModelsFromIr.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport path from \"path\";\nimport { describe, expect, it } from \"vitest\";\nimport type {\n IFieldDef,\n IModelDef,\n IRealTimeDocumentSchema,\n IRecordDef,\n IUnionDef,\n} from \"../../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport { generateModelsFromIr } from \"../generateModelsFromIr.js\";\nimport { formatWithPrettier } from \"./formatWithPrettier.js\";\n\ndescribe(\"generateModelsFromIr\", () => {\n const snapshotDir = path.join(__dirname, \"__snapshots__\", \"generateModelsFromIr\");\n\n it(\"should generate Model constants for simple record types\", async () => {\n const personField1: IFieldDef = {\n key: \"name\",\n name: \"Name\",\n description: \"Person name\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"string\",\n string: { minLength: 2, maxLength: 50 },\n },\n },\n metadata: { addedInVersion: 1 },\n };\n\n const personField2: IFieldDef = {\n key: \"age\",\n name: \"Age\",\n description: \"Person age\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"integer\",\n integer: { minValue: 0, maxValue: 150 },\n },\n },\n metadata: { addedInVersion: 1 },\n };\n\n const personRecord: IRecordDef = {\n key: \"Person\",\n name: \"Person\",\n description: \"A person record\",\n fields: [personField1, personField2],\n metadata: { addedInVersion: 1 },\n };\n\n const schema: IRealTimeDocumentSchema = {\n name: \"Test Schema\",\n description: \"A test schema\",\n version: 1,\n primaryModelKeys: [\"Person\"],\n models: {\n Person: {\n type: \"record\",\n record: personRecord,\n } as IModelDef,\n },\n };\n\n const result = await generateModelsFromIr(schema);\n const formatted = await formatWithPrettier(result);\n\n // Verify imports are properly formatted (no weird indentation)\n const lines = formatted.split(\"\\n\");\n const importLines = lines.filter(line => line.startsWith(\"import\"));\n expect(importLines.length).toBeGreaterThan(0);\n // All imports should start at column 0 (no leading whitespace)\n importLines.forEach(line => {\n expect(line).toMatch(/^import/);\n });\n\n await expect(formatted).toMatchFileSnapshot(path.join(snapshotDir, \"simple-record.ts\"));\n });\n\n it(\"should generate Model constants with external ref fields\", async () => {\n const eventField1: IFieldDef = {\n key: \"documentRef\",\n name: \"Document Reference\",\n description: \"Reference to a document\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"docRef\",\n docRef: {\n documentTypeRids: [],\n },\n },\n },\n metadata: { addedInVersion: 1 },\n };\n\n const eventField2: IFieldDef = {\n key: \"userRef\",\n name: \"User Reference\",\n description: \"Reference to a user\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"userRef\",\n userRef: {},\n },\n },\n metadata: { addedInVersion: 1 },\n };\n\n const eventField3: IFieldDef = {\n key: \"timestamp\",\n name: \"Timestamp\",\n description: \"Event timestamp\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"datetime\",\n datetime: {},\n },\n },\n metadata: { addedInVersion: 1 },\n };\n\n const eventRecord: IRecordDef = {\n key: \"Event\",\n name: \"Event\",\n description: \"An event record with external refs\",\n fields: [eventField1, eventField2, eventField3],\n metadata: { addedInVersion: 1 },\n };\n\n const schema: IRealTimeDocumentSchema = {\n name: \"Test Schema\",\n description: \"A test schema with external refs\",\n version: 1,\n primaryModelKeys: [\"Event\"],\n models: {\n Event: {\n type: \"record\",\n record: eventRecord,\n } as IModelDef,\n },\n };\n\n const result = await generateModelsFromIr(schema);\n const formatted = await formatWithPrettier(result);\n\n // Verify external ref fields are included in metadata\n expect(formatted).toContain(\"externalRefFieldTypes\");\n expect(formatted).toContain(\"documentRef: 'docRef'\");\n expect(formatted).toContain(\"userRef: 'userRef'\");\n\n await expect(formatted).toMatchFileSnapshot(path.join(snapshotDir, \"external-refs.ts\"));\n });\n\n it(\"should generate Model constants for union types\", async () => {\n // Define the ObjectNode record\n const objectNodeRecord: IRecordDef = {\n key: \"ObjectNode\",\n name: \"ObjectNode\",\n description: \"A node in the graph\",\n fields: [\n {\n key: \"x\",\n name: \"X\",\n description: \"X coordinate\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"double\",\n double: {},\n },\n },\n metadata: { addedInVersion: 1 },\n },\n {\n key: \"y\",\n name: \"Y\",\n description: \"Y coordinate\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"double\",\n double: {},\n },\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n metadata: { addedInVersion: 1 },\n };\n\n // Define the TextBox record\n const textBoxRecord: IRecordDef = {\n key: \"TextBox\",\n name: \"TextBox\",\n description: \"A text box in the graph\",\n fields: [\n {\n key: \"x\",\n name: \"X\",\n description: \"X coordinate\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"double\",\n double: {},\n },\n },\n metadata: { addedInVersion: 1 },\n },\n {\n key: \"text\",\n name: \"Text\",\n description: \"Text content\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"string\",\n string: {},\n },\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n metadata: { addedInVersion: 1 },\n };\n\n // Define the Node union\n const nodeUnion: IUnionDef = {\n key: \"Node\",\n discriminant: \"type\",\n name: \"Node\",\n description: \"A node in the graph\",\n variants: {\n object: \"ObjectNode\",\n \"text-box\": \"TextBox\",\n },\n metadata: { addedInVersion: 1 },\n };\n\n const schema: IRealTimeDocumentSchema = {\n name: \"Test Schema\",\n description: \"A test schema with unions\",\n version: 1,\n primaryModelKeys: [\"ObjectNode\", \"TextBox\", \"Node\"],\n models: {\n ObjectNode: {\n type: \"record\",\n record: objectNodeRecord,\n } as IModelDef,\n TextBox: {\n type: \"record\",\n record: textBoxRecord,\n } as IModelDef,\n Node: {\n type: \"union\",\n union: nodeUnion,\n } as IModelDef,\n },\n };\n\n const result = await generateModelsFromIr(schema);\n const formatted = await formatWithPrettier(result);\n\n // Verify all models are generated (primary models + union variants)\n expect(formatted).toContain(\"export const ObjectNodeModel\");\n expect(formatted).toContain(\"export const TextBoxModel\");\n expect(formatted).toContain(\"export const NodeModel\");\n expect(formatted).toContain(\"export const NodeObjectModel\");\n expect(formatted).toContain(\"export const NodeTextBoxModel\");\n\n // Verify DocumentSchema contains all models\n expect(formatted).toContain(\"export const DocumentModel\");\n expect(formatted).toContain(\"ObjectNode: ObjectNodeModel\");\n expect(formatted).toContain(\"TextBox: TextBoxModel\");\n expect(formatted).toContain(\"Node: NodeModel\");\n expect(formatted).toContain(\"NodeObject: NodeObjectModel\");\n expect(formatted).toContain(\"NodeTextBox: NodeTextBoxModel\");\n\n await expect(formatted).toMatchFileSnapshot(path.join(snapshotDir, \"union-types.ts\"));\n });\n\n it(\"should generate Model constants with custom discriminant\", async () => {\n const catRecord: IRecordDef = {\n key: \"Cat\",\n name: \"Cat\",\n description: \"A cat\",\n fields: [\n {\n key: \"meow\",\n name: \"Meow\",\n description: \"Cat sound\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"string\",\n string: {},\n },\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n metadata: { addedInVersion: 1 },\n };\n\n const dogRecord: IRecordDef = {\n key: \"Dog\",\n name: \"Dog\",\n description: \"A dog\",\n fields: [\n {\n key: \"bark\",\n name: \"Bark\",\n description: \"Dog sound\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"string\",\n string: {},\n },\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n metadata: { addedInVersion: 1 },\n };\n\n const animalUnion: IUnionDef = {\n key: \"Animal\",\n discriminant: \"kind\",\n name: \"Animal\",\n description: \"An animal union with custom discriminant\",\n variants: {\n cat: \"Cat\",\n dog: \"Dog\",\n },\n metadata: { addedInVersion: 1 },\n };\n\n const schema: IRealTimeDocumentSchema = {\n name: \"Test Schema\",\n description: \"A test schema with custom discriminant\",\n version: 1,\n primaryModelKeys: [\"Cat\", \"Dog\", \"Animal\"],\n models: {\n Cat: {\n type: \"record\",\n record: catRecord,\n } as IModelDef,\n Dog: {\n type: \"record\",\n record: dogRecord,\n } as IModelDef,\n Animal: {\n type: \"union\",\n union: animalUnion,\n } as IModelDef,\n },\n };\n\n const result = await generateModelsFromIr(schema);\n const formatted = await formatWithPrettier(result);\n\n expect(formatted).toContain(\"discriminant: 'kind'\");\n expect(formatted).toContain(\"export const AnimalModel\");\n expect(formatted).toContain(\"export const AnimalCatModel\");\n expect(formatted).toContain(\"export const AnimalDogModel\");\n\n await expect(formatted).toMatchFileSnapshot(\n path.join(snapshotDir, \"custom-discriminant.ts\"),\n );\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"generateModelsFromIr.test.js","names":["path","describe","expect","it","generateModelsFromIr","formatWithPrettier","snapshotDir","join","__dirname","result","name","description","version","primaryModelKeys","models","Person","type","record","key","fields","fieldType","value","string","minLength","maxLength","metadata","addedInVersion","integer","minValue","maxValue","formatted","lines","split","importLines","filter","line","startsWith","length","toBeGreaterThan","forEach","toMatch","toMatchFileSnapshot","Event","docRef","documentTypeRids","userRef","datetime","toContain","ObjectNode","double","TextBox","Node","union","discriminant","variants","object","Cat","Dog","Animal","cat","dog"],"sources":["generateModelsFromIr.test.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport path from \"path\";\nimport { describe, expect, it } from \"vitest\";\nimport type {\n IFieldDef,\n IModelDef,\n IRealTimeDocumentSchema,\n IRecordDef,\n IUnionDef,\n} from \"../../../lib/pack-docschema-api/pack-docschema-ir/index.js\";\nimport { generateModelsFromIr } from \"../generateModelsFromIr.js\";\nimport { formatWithPrettier } from \"./formatWithPrettier.js\";\n\ndescribe(\"generateModelsFromIr\", () => {\n const snapshotDir = path.join(__dirname, \"__snapshots__\", \"generateModelsFromIr\");\n\n it(\"should generate Model constants for simple record types\", async () => {\n const personField1: IFieldDef = {\n key: \"name\",\n name: \"Name\",\n description: \"Person name\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"string\",\n string: { minLength: 2, maxLength: 50 },\n },\n },\n metadata: { addedInVersion: 1 },\n };\n\n const personField2: IFieldDef = {\n key: \"age\",\n name: \"Age\",\n description: \"Person age\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"integer\",\n integer: { minValue: 0, maxValue: 150 },\n },\n },\n metadata: { addedInVersion: 1 },\n };\n\n const personRecord: IRecordDef = {\n key: \"Person\",\n name: \"Person\",\n description: \"A person record\",\n fields: [personField1, personField2],\n };\n\n const schema: IRealTimeDocumentSchema = {\n name: \"Test Schema\",\n description: \"A test schema\",\n version: 1,\n primaryModelKeys: [\"Person\"],\n models: {\n Person: {\n type: \"record\",\n record: personRecord,\n } as IModelDef,\n },\n };\n\n const result = await generateModelsFromIr(schema);\n const formatted = await formatWithPrettier(result);\n\n // Verify imports are properly formatted (no weird indentation)\n const lines = formatted.split(\"\\n\");\n const importLines = lines.filter(line => line.startsWith(\"import\"));\n expect(importLines.length).toBeGreaterThan(0);\n // All imports should start at column 0 (no leading whitespace)\n importLines.forEach(line => {\n expect(line).toMatch(/^import/);\n });\n\n await expect(formatted).toMatchFileSnapshot(path.join(snapshotDir, \"simple-record.ts\"));\n });\n\n it(\"should generate Model constants with external ref fields\", async () => {\n const eventField1: IFieldDef = {\n key: \"documentRef\",\n name: \"Document Reference\",\n description: \"Reference to a document\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"docRef\",\n docRef: {\n documentTypeRids: [],\n },\n },\n },\n metadata: { addedInVersion: 1 },\n };\n\n const eventField2: IFieldDef = {\n key: \"userRef\",\n name: \"User Reference\",\n description: \"Reference to a user\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"userRef\",\n userRef: {},\n },\n },\n metadata: { addedInVersion: 1 },\n };\n\n const eventField3: IFieldDef = {\n key: \"timestamp\",\n name: \"Timestamp\",\n description: \"Event timestamp\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"datetime\",\n datetime: {},\n },\n },\n metadata: { addedInVersion: 1 },\n };\n\n const eventRecord: IRecordDef = {\n key: \"Event\",\n name: \"Event\",\n description: \"An event record with external refs\",\n fields: [eventField1, eventField2, eventField3],\n };\n\n const schema: IRealTimeDocumentSchema = {\n name: \"Test Schema\",\n description: \"A test schema with external refs\",\n version: 1,\n primaryModelKeys: [\"Event\"],\n models: {\n Event: {\n type: \"record\",\n record: eventRecord,\n } as IModelDef,\n },\n };\n\n const result = await generateModelsFromIr(schema);\n const formatted = await formatWithPrettier(result);\n\n // Verify external ref fields are included in metadata\n expect(formatted).toContain(\"externalRefFieldTypes\");\n expect(formatted).toContain(\"documentRef: 'docRef'\");\n expect(formatted).toContain(\"userRef: 'userRef'\");\n\n await expect(formatted).toMatchFileSnapshot(path.join(snapshotDir, \"external-refs.ts\"));\n });\n\n it(\"should generate Model constants for union types\", async () => {\n // Define the ObjectNode record\n const objectNodeRecord: IRecordDef = {\n key: \"ObjectNode\",\n name: \"ObjectNode\",\n description: \"A node in the graph\",\n fields: [\n {\n key: \"x\",\n name: \"X\",\n description: \"X coordinate\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"double\",\n double: {},\n },\n },\n metadata: { addedInVersion: 1 },\n },\n {\n key: \"y\",\n name: \"Y\",\n description: \"Y coordinate\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"double\",\n double: {},\n },\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n };\n\n // Define the TextBox record\n const textBoxRecord: IRecordDef = {\n key: \"TextBox\",\n name: \"TextBox\",\n description: \"A text box in the graph\",\n fields: [\n {\n key: \"x\",\n name: \"X\",\n description: \"X coordinate\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"double\",\n double: {},\n },\n },\n metadata: { addedInVersion: 1 },\n },\n {\n key: \"text\",\n name: \"Text\",\n description: \"Text content\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"string\",\n string: {},\n },\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n };\n\n // Define the Node union\n const nodeUnion: IUnionDef = {\n key: \"Node\",\n discriminant: \"type\",\n name: \"Node\",\n description: \"A node in the graph\",\n variants: {\n object: \"ObjectNode\",\n \"text-box\": \"TextBox\",\n },\n metadata: { addedInVersion: 1 },\n };\n\n const schema: IRealTimeDocumentSchema = {\n name: \"Test Schema\",\n description: \"A test schema with unions\",\n version: 1,\n primaryModelKeys: [\"ObjectNode\", \"TextBox\", \"Node\"],\n models: {\n ObjectNode: {\n type: \"record\",\n record: objectNodeRecord,\n } as IModelDef,\n TextBox: {\n type: \"record\",\n record: textBoxRecord,\n } as IModelDef,\n Node: {\n type: \"union\",\n union: nodeUnion,\n } as IModelDef,\n },\n };\n\n const result = await generateModelsFromIr(schema);\n const formatted = await formatWithPrettier(result);\n\n // Verify all models are generated (primary models + union variants)\n expect(formatted).toContain(\"export const ObjectNodeModel\");\n expect(formatted).toContain(\"export const TextBoxModel\");\n expect(formatted).toContain(\"export const NodeModel\");\n expect(formatted).toContain(\"export const NodeObjectModel\");\n expect(formatted).toContain(\"export const NodeTextBoxModel\");\n\n // Verify DocumentSchema contains all models\n expect(formatted).toContain(\"export const DocumentModel\");\n expect(formatted).toContain(\"ObjectNode: ObjectNodeModel\");\n expect(formatted).toContain(\"TextBox: TextBoxModel\");\n expect(formatted).toContain(\"Node: NodeModel\");\n expect(formatted).toContain(\"NodeObject: NodeObjectModel\");\n expect(formatted).toContain(\"NodeTextBox: NodeTextBoxModel\");\n\n await expect(formatted).toMatchFileSnapshot(path.join(snapshotDir, \"union-types.ts\"));\n });\n\n it(\"should generate Model constants with custom discriminant\", async () => {\n const catRecord: IRecordDef = {\n key: \"Cat\",\n name: \"Cat\",\n description: \"A cat\",\n fields: [\n {\n key: \"meow\",\n name: \"Meow\",\n description: \"Cat sound\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"string\",\n string: {},\n },\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n };\n\n const dogRecord: IRecordDef = {\n key: \"Dog\",\n name: \"Dog\",\n description: \"A dog\",\n fields: [\n {\n key: \"bark\",\n name: \"Bark\",\n description: \"Dog sound\",\n fieldType: {\n type: \"value\",\n value: {\n type: \"string\",\n string: {},\n },\n },\n metadata: { addedInVersion: 1 },\n },\n ],\n };\n\n const animalUnion: IUnionDef = {\n key: \"Animal\",\n discriminant: \"kind\",\n name: \"Animal\",\n description: \"An animal union with custom discriminant\",\n variants: {\n cat: \"Cat\",\n dog: \"Dog\",\n },\n metadata: { addedInVersion: 1 },\n };\n\n const schema: IRealTimeDocumentSchema = {\n name: \"Test Schema\",\n description: \"A test schema with custom discriminant\",\n version: 1,\n primaryModelKeys: [\"Cat\", \"Dog\", \"Animal\"],\n models: {\n Cat: {\n type: \"record\",\n record: catRecord,\n } as IModelDef,\n Dog: {\n type: \"record\",\n record: dogRecord,\n } as IModelDef,\n Animal: {\n type: \"union\",\n union: animalUnion,\n } as IModelDef,\n },\n };\n\n const result = await generateModelsFromIr(schema);\n const formatted = await formatWithPrettier(result);\n\n expect(formatted).toContain(\"discriminant: 'kind'\");\n expect(formatted).toContain(\"export const AnimalModel\");\n expect(formatted).toContain(\"export const AnimalCatModel\");\n expect(formatted).toContain(\"export const AnimalDogModel\");\n\n await expect(formatted).toMatchFileSnapshot(\n path.join(snapshotDir, \"custom-discriminant.ts\"),\n );\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -82,10 +82,7 @@ describe("generateZodSchemasFromIr", () => {
|
|
|
82
82
|
metadata: {
|
|
83
83
|
addedInVersion: 1
|
|
84
84
|
}
|
|
85
|
-
}]
|
|
86
|
-
metadata: {
|
|
87
|
-
addedInVersion: 1
|
|
88
|
-
}
|
|
85
|
+
}]
|
|
89
86
|
}
|
|
90
87
|
}
|
|
91
88
|
}
|
|
@@ -144,10 +141,7 @@ describe("generateZodSchemasFromIr", () => {
|
|
|
144
141
|
metadata: {
|
|
145
142
|
addedInVersion: 1
|
|
146
143
|
}
|
|
147
|
-
}]
|
|
148
|
-
metadata: {
|
|
149
|
-
addedInVersion: 1
|
|
150
|
-
}
|
|
144
|
+
}]
|
|
151
145
|
}
|
|
152
146
|
}
|
|
153
147
|
}
|
|
@@ -182,10 +176,7 @@ describe("generateZodSchemasFromIr", () => {
|
|
|
182
176
|
metadata: {
|
|
183
177
|
addedInVersion: 1
|
|
184
178
|
}
|
|
185
|
-
}]
|
|
186
|
-
metadata: {
|
|
187
|
-
addedInVersion: 1
|
|
188
|
-
}
|
|
179
|
+
}]
|
|
189
180
|
}
|
|
190
181
|
}
|
|
191
182
|
}
|
|
@@ -252,10 +243,7 @@ describe("generateZodSchemasFromIr", () => {
|
|
|
252
243
|
metadata: {
|
|
253
244
|
addedInVersion: 1
|
|
254
245
|
}
|
|
255
|
-
}]
|
|
256
|
-
metadata: {
|
|
257
|
-
addedInVersion: 1
|
|
258
|
-
}
|
|
246
|
+
}]
|
|
259
247
|
}
|
|
260
248
|
}
|
|
261
249
|
}
|
|
@@ -325,10 +313,7 @@ describe("generateZodSchemasFromIr", () => {
|
|
|
325
313
|
metadata: {
|
|
326
314
|
addedInVersion: 1
|
|
327
315
|
}
|
|
328
|
-
}]
|
|
329
|
-
metadata: {
|
|
330
|
-
addedInVersion: 1
|
|
331
|
-
}
|
|
316
|
+
}]
|
|
332
317
|
}
|
|
333
318
|
},
|
|
334
319
|
TextBox: {
|
|
@@ -379,10 +364,7 @@ describe("generateZodSchemasFromIr", () => {
|
|
|
379
364
|
metadata: {
|
|
380
365
|
addedInVersion: 1
|
|
381
366
|
}
|
|
382
|
-
}]
|
|
383
|
-
metadata: {
|
|
384
|
-
addedInVersion: 1
|
|
385
|
-
}
|
|
367
|
+
}]
|
|
386
368
|
}
|
|
387
369
|
},
|
|
388
370
|
Node: {
|
|
@@ -440,10 +422,7 @@ describe("generateZodSchemasFromIr", () => {
|
|
|
440
422
|
metadata: {
|
|
441
423
|
addedInVersion: 1
|
|
442
424
|
}
|
|
443
|
-
}]
|
|
444
|
-
metadata: {
|
|
445
|
-
addedInVersion: 1
|
|
446
|
-
}
|
|
425
|
+
}]
|
|
447
426
|
}
|
|
448
427
|
},
|
|
449
428
|
Bar: {
|
|
@@ -466,10 +445,7 @@ describe("generateZodSchemasFromIr", () => {
|
|
|
466
445
|
metadata: {
|
|
467
446
|
addedInVersion: 1
|
|
468
447
|
}
|
|
469
|
-
}]
|
|
470
|
-
metadata: {
|
|
471
|
-
addedInVersion: 1
|
|
472
|
-
}
|
|
448
|
+
}]
|
|
473
449
|
}
|
|
474
450
|
},
|
|
475
451
|
FooBar: {
|
|
@@ -533,10 +509,7 @@ describe("generateZodSchemasFromIr", () => {
|
|
|
533
509
|
metadata: {
|
|
534
510
|
addedInVersion: 1
|
|
535
511
|
}
|
|
536
|
-
}]
|
|
537
|
-
metadata: {
|
|
538
|
-
addedInVersion: 1
|
|
539
|
-
}
|
|
512
|
+
}]
|
|
540
513
|
}
|
|
541
514
|
},
|
|
542
515
|
Dog: {
|
|
@@ -559,10 +532,7 @@ describe("generateZodSchemasFromIr", () => {
|
|
|
559
532
|
metadata: {
|
|
560
533
|
addedInVersion: 1
|
|
561
534
|
}
|
|
562
|
-
}]
|
|
563
|
-
metadata: {
|
|
564
|
-
addedInVersion: 1
|
|
565
|
-
}
|
|
535
|
+
}]
|
|
566
536
|
}
|
|
567
537
|
},
|
|
568
538
|
Animal: {
|