@baseplate-dev/project-builder-lib 0.2.1 → 0.2.3

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.
Files changed (191) hide show
  1. package/dist/definition/feature/feature-utils.js +1 -1
  2. package/dist/definition/feature/feature-utils.js.map +1 -1
  3. package/dist/definition/project-definition-container.d.ts +3 -2
  4. package/dist/definition/project-definition-container.d.ts.map +1 -1
  5. package/dist/definition/project-definition-container.js +13 -7
  6. package/dist/definition/project-definition-container.js.map +1 -1
  7. package/dist/definition/project-definition-container.test-utils.d.ts.map +1 -1
  8. package/dist/definition/project-definition-container.test-utils.js +3 -7
  9. package/dist/definition/project-definition-container.test-utils.js.map +1 -1
  10. package/dist/migrations/index.d.ts.map +1 -1
  11. package/dist/migrations/index.js +2 -0
  12. package/dist/migrations/index.js.map +1 -1
  13. package/dist/migrations/migration-015-null-parent-refs.d.ts +17 -0
  14. package/dist/migrations/migration-015-null-parent-refs.d.ts.map +1 -0
  15. package/dist/migrations/migration-015-null-parent-refs.js +20 -0
  16. package/dist/migrations/migration-015-null-parent-refs.js.map +1 -0
  17. package/dist/parser/parser.d.ts +2 -2
  18. package/dist/parser/parser.d.ts.map +1 -1
  19. package/dist/parser/parser.js +11 -7
  20. package/dist/parser/parser.js.map +1 -1
  21. package/dist/plugins/metadata/types.d.ts +8 -0
  22. package/dist/plugins/metadata/types.d.ts.map +1 -1
  23. package/dist/plugins/metadata/types.js +6 -0
  24. package/dist/plugins/metadata/types.js.map +1 -1
  25. package/dist/plugins/migrations/run-migrations.js.map +1 -1
  26. package/dist/plugins/schema/index.d.ts +0 -2
  27. package/dist/plugins/schema/index.d.ts.map +1 -1
  28. package/dist/plugins/schema/index.js +0 -2
  29. package/dist/plugins/schema/index.js.map +1 -1
  30. package/dist/plugins/spec/config-spec.d.ts +3 -3
  31. package/dist/plugins/spec/config-spec.d.ts.map +1 -1
  32. package/dist/plugins/spec/config-spec.js +3 -3
  33. package/dist/plugins/spec/config-spec.js.map +1 -1
  34. package/dist/references/{ref-builder.d.ts → definition-ref-builder.d.ts} +13 -137
  35. package/dist/references/definition-ref-builder.d.ts.map +1 -0
  36. package/dist/references/definition-ref-builder.js +242 -0
  37. package/dist/references/definition-ref-builder.js.map +1 -0
  38. package/dist/references/deserialize-schema.d.ts +12 -1
  39. package/dist/references/deserialize-schema.d.ts.map +1 -1
  40. package/dist/references/deserialize-schema.js +24 -4
  41. package/dist/references/deserialize-schema.js.map +1 -1
  42. package/dist/references/extend-parser-context-with-refs.d.ts +16 -0
  43. package/dist/references/extend-parser-context-with-refs.d.ts.map +1 -0
  44. package/dist/references/extend-parser-context-with-refs.js +82 -0
  45. package/dist/references/extend-parser-context-with-refs.js.map +1 -0
  46. package/dist/references/extract-definition-refs.d.ts +19 -0
  47. package/dist/references/extract-definition-refs.d.ts.map +1 -0
  48. package/dist/references/extract-definition-refs.js +71 -0
  49. package/dist/references/extract-definition-refs.js.map +1 -0
  50. package/dist/references/fix-ref-deletions.d.ts +6 -6
  51. package/dist/references/fix-ref-deletions.d.ts.map +1 -1
  52. package/dist/references/fix-ref-deletions.js +13 -5
  53. package/dist/references/fix-ref-deletions.js.map +1 -1
  54. package/dist/references/index.d.ts +2 -1
  55. package/dist/references/index.d.ts.map +1 -1
  56. package/dist/references/index.js +2 -1
  57. package/dist/references/index.js.map +1 -1
  58. package/dist/references/markers.d.ts +22 -0
  59. package/dist/references/markers.d.ts.map +1 -0
  60. package/dist/references/markers.js +21 -0
  61. package/dist/references/markers.js.map +1 -0
  62. package/dist/references/parse-schema-with-references.d.ts +2 -2
  63. package/dist/references/parse-schema-with-references.d.ts.map +1 -1
  64. package/dist/references/parse-schema-with-references.js +13 -4
  65. package/dist/references/parse-schema-with-references.js.map +1 -1
  66. package/dist/references/resolve-zod-ref-payload-names.d.ts +1 -1
  67. package/dist/references/resolve-zod-ref-payload-names.d.ts.map +1 -1
  68. package/dist/references/serialize-schema.d.ts +2 -2
  69. package/dist/references/serialize-schema.d.ts.map +1 -1
  70. package/dist/references/serialize-schema.js +4 -3
  71. package/dist/references/serialize-schema.js.map +1 -1
  72. package/dist/references/strip-ref-markers.d.ts +7 -0
  73. package/dist/references/strip-ref-markers.d.ts.map +1 -0
  74. package/dist/references/strip-ref-markers.js +22 -0
  75. package/dist/references/strip-ref-markers.js.map +1 -0
  76. package/dist/references/types.d.ts +2 -2
  77. package/dist/references/types.d.ts.map +1 -1
  78. package/dist/schema/apps/admin/app.d.ts +958 -200
  79. package/dist/schema/apps/admin/app.d.ts.map +1 -1
  80. package/dist/schema/apps/admin/app.js +2 -3
  81. package/dist/schema/apps/admin/app.js.map +1 -1
  82. package/dist/schema/apps/admin/sections/base.d.ts +15 -3
  83. package/dist/schema/apps/admin/sections/base.d.ts.map +1 -1
  84. package/dist/schema/apps/admin/sections/base.js +4 -4
  85. package/dist/schema/apps/admin/sections/base.js.map +1 -1
  86. package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.d.ts +12 -6
  87. package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.d.ts.map +1 -1
  88. package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.js +9 -5
  89. package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.js.map +1 -1
  90. package/dist/schema/apps/admin/sections/crud-form/built-in-input.d.ts +19 -19
  91. package/dist/schema/apps/admin/sections/crud-form/built-in-input.d.ts.map +1 -1
  92. package/dist/schema/apps/admin/sections/crud-form/built-in-input.js +18 -19
  93. package/dist/schema/apps/admin/sections/crud-form/built-in-input.js.map +1 -1
  94. package/dist/schema/apps/admin/sections/crud-form/types.d.ts +1 -1
  95. package/dist/schema/apps/admin/sections/crud-form/types.d.ts.map +1 -1
  96. package/dist/schema/apps/admin/sections/crud.d.ts +468 -130
  97. package/dist/schema/apps/admin/sections/crud.d.ts.map +1 -1
  98. package/dist/schema/apps/admin/sections/crud.js +14 -14
  99. package/dist/schema/apps/admin/sections/crud.js.map +1 -1
  100. package/dist/schema/apps/backend/index.d.ts +1 -1
  101. package/dist/schema/apps/types.d.ts +1 -1
  102. package/dist/schema/apps/types.js +1 -1
  103. package/dist/schema/apps/web/index.d.ts +2 -2
  104. package/dist/schema/apps/web/index.d.ts.map +1 -1
  105. package/dist/schema/apps/web/index.js +2 -3
  106. package/dist/schema/apps/web/index.js.map +1 -1
  107. package/dist/schema/auth/index.d.ts +1 -1
  108. package/dist/schema/auth/index.js +1 -1
  109. package/dist/schema/creator/extend-parser-context-with-defaults.d.ts +13 -0
  110. package/dist/schema/creator/extend-parser-context-with-defaults.d.ts.map +1 -0
  111. package/dist/schema/creator/extend-parser-context-with-defaults.js +52 -0
  112. package/dist/schema/creator/extend-parser-context-with-defaults.js.map +1 -0
  113. package/dist/schema/creator/schema-creator.d.ts +3 -2
  114. package/dist/schema/creator/schema-creator.d.ts.map +1 -1
  115. package/dist/schema/creator/schema-creator.js +10 -1
  116. package/dist/schema/creator/schema-creator.js.map +1 -1
  117. package/dist/schema/creator/types.d.ts +57 -2
  118. package/dist/schema/creator/types.d.ts.map +1 -1
  119. package/dist/schema/features/feature.d.ts +29 -15
  120. package/dist/schema/features/feature.d.ts.map +1 -1
  121. package/dist/schema/features/feature.js +7 -4
  122. package/dist/schema/features/feature.js.map +1 -1
  123. package/dist/schema/features/theme.d.ts +12 -12
  124. package/dist/schema/models/enums.d.ts +62 -19
  125. package/dist/schema/models/enums.d.ts.map +1 -1
  126. package/dist/schema/models/enums.js +5 -4
  127. package/dist/schema/models/enums.js.map +1 -1
  128. package/dist/schema/models/graphql.d.ts +139 -55
  129. package/dist/schema/models/graphql.d.ts.map +1 -1
  130. package/dist/schema/models/graphql.js +36 -80
  131. package/dist/schema/models/graphql.js.map +1 -1
  132. package/dist/schema/models/index.d.ts +881 -299
  133. package/dist/schema/models/index.d.ts.map +1 -1
  134. package/dist/schema/models/index.js +24 -19
  135. package/dist/schema/models/index.js.map +1 -1
  136. package/dist/schema/models/transformers/built-in-transformers.d.ts +87 -23
  137. package/dist/schema/models/transformers/built-in-transformers.d.ts.map +1 -1
  138. package/dist/schema/models/transformers/built-in-transformers.js +10 -10
  139. package/dist/schema/models/transformers/built-in-transformers.js.map +1 -1
  140. package/dist/schema/models/transformers/transformers.d.ts +14 -8
  141. package/dist/schema/models/transformers/transformers.d.ts.map +1 -1
  142. package/dist/schema/models/transformers/transformers.js +9 -5
  143. package/dist/schema/models/transformers/transformers.js.map +1 -1
  144. package/dist/schema/models/transformers/types.d.ts +4 -3
  145. package/dist/schema/models/transformers/types.d.ts.map +1 -1
  146. package/dist/schema/models/transformers/types.js +2 -4
  147. package/dist/schema/models/transformers/types.js.map +1 -1
  148. package/dist/schema/plugins/definition.d.ts +64 -70
  149. package/dist/schema/plugins/definition.d.ts.map +1 -1
  150. package/dist/schema/plugins/definition.js +18 -16
  151. package/dist/schema/plugins/definition.js.map +1 -1
  152. package/dist/schema/project-definition.d.ts +2192 -682
  153. package/dist/schema/project-definition.d.ts.map +1 -1
  154. package/dist/schema/project-definition.js +1 -2
  155. package/dist/schema/project-definition.js.map +1 -1
  156. package/dist/schema/settings.d.ts +15 -15
  157. package/dist/schema/template-extractor/index.d.ts +1 -1
  158. package/dist/tools/model-merger/model-merger.d.ts +15 -14
  159. package/dist/tools/model-merger/model-merger.d.ts.map +1 -1
  160. package/dist/tools/model-merger/model-merger.js +8 -4
  161. package/dist/tools/model-merger/model-merger.js.map +1 -1
  162. package/dist/web/hooks/index.d.ts +1 -1
  163. package/dist/web/hooks/index.d.ts.map +1 -1
  164. package/dist/web/hooks/index.js +1 -1
  165. package/dist/web/hooks/index.js.map +1 -1
  166. package/dist/web/hooks/use-definition-schema.d.ts +3 -0
  167. package/dist/web/hooks/use-definition-schema.d.ts.map +1 -0
  168. package/dist/web/hooks/use-definition-schema.js +7 -0
  169. package/dist/web/hooks/use-definition-schema.js.map +1 -0
  170. package/dist/web/hooks/use-project-definition.d.ts +3 -3
  171. package/dist/web/hooks/use-project-definition.d.ts.map +1 -1
  172. package/package.json +6 -6
  173. package/dist/plugins/schema/common.d.ts +0 -6
  174. package/dist/plugins/schema/common.d.ts.map +0 -1
  175. package/dist/plugins/schema/common.js +0 -2
  176. package/dist/plugins/schema/common.js.map +0 -1
  177. package/dist/plugins/schema/parser.d.ts +0 -19
  178. package/dist/plugins/schema/parser.d.ts.map +0 -1
  179. package/dist/plugins/schema/parser.js +0 -41
  180. package/dist/plugins/schema/parser.js.map +0 -1
  181. package/dist/plugins/schema/zod-with-plugins.d.ts +0 -12
  182. package/dist/plugins/schema/zod-with-plugins.d.ts.map +0 -1
  183. package/dist/plugins/schema/zod-with-plugins.js +0 -26
  184. package/dist/plugins/schema/zod-with-plugins.js.map +0 -1
  185. package/dist/references/ref-builder.d.ts.map +0 -1
  186. package/dist/references/ref-builder.js +0 -492
  187. package/dist/references/ref-builder.js.map +0 -1
  188. package/dist/web/hooks/use-plugin-enhanced-schema.d.ts +0 -4
  189. package/dist/web/hooks/use-plugin-enhanced-schema.d.ts.map +0 -1
  190. package/dist/web/hooks/use-plugin-enhanced-schema.js +0 -8
  191. package/dist/web/hooks/use-plugin-enhanced-schema.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extend-parser-context-with-refs.js","sourceRoot":"","sources":["../../src/references/extend-parser-context-with-refs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { DefinitionEntityNameResolver, RefBuilderContext, ZodRefPayload } from './definition-ref-builder.js';
2
+ import type { DefinitionEntity, DefinitionReference, ReferencePath } from './types.js';
3
+ /**
4
+ * Entity with a name resolver.
5
+ */
6
+ export interface DefinitionEntityWithNameResolver extends Omit<DefinitionEntity, 'name'> {
7
+ nameResolver: DefinitionEntityNameResolver;
8
+ }
9
+ /**
10
+ * Context for storing references, entities, and builder context.
11
+ */
12
+ export interface ZodRefContext {
13
+ context: RefBuilderContext;
14
+ references: DefinitionReference[];
15
+ entitiesWithNameResolver: DefinitionEntityWithNameResolver[];
16
+ }
17
+ export declare function extractDefinitionRefsRecursive(value: unknown, context: ZodRefContext, path: ReferencePath): unknown;
18
+ export declare function extractDefinitionRefs<T>(value: T): ZodRefPayload<T>;
19
+ //# sourceMappingURL=extract-definition-refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-definition-refs.d.ts","sourceRoot":"","sources":["../../src/references/extract-definition-refs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAE5B,iBAAiB,EACjB,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACd,MAAM,YAAY,CAAC;AAQpB;;GAEG;AACH,MAAM,WAAW,gCACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACtC,YAAY,EAAE,4BAA4B,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,wBAAwB,EAAE,gCAAgC,EAAE,CAAC;CAC9D;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,aAAa,GAClB,OAAO,CAyET;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAyBnE"}
@@ -0,0 +1,71 @@
1
+ import { DefinitionRefBuilder } from './definition-ref-builder.js';
2
+ import { DefinitionReferenceMarker, REF_ANNOTATIONS_MARKER_SYMBOL, } from './markers.js';
3
+ export function extractDefinitionRefsRecursive(value, context, path) {
4
+ const builder = new DefinitionRefBuilder(path, context.context, value);
5
+ if (value instanceof DefinitionReferenceMarker) {
6
+ builder.addReference(value.reference);
7
+ context.references.push(...builder.references);
8
+ context.entitiesWithNameResolver.push(...builder.entitiesWithNameResolver);
9
+ return value.value;
10
+ }
11
+ if (typeof value === 'object' &&
12
+ value !== null &&
13
+ REF_ANNOTATIONS_MARKER_SYMBOL in value) {
14
+ const annotations = value[REF_ANNOTATIONS_MARKER_SYMBOL];
15
+ for (const entity of annotations.entities) {
16
+ builder.addEntity(entity);
17
+ }
18
+ for (const reference of annotations.references) {
19
+ builder.addReference(reference);
20
+ }
21
+ for (const pathInfo of annotations.contextPaths) {
22
+ builder.addPathToContext(pathInfo.path, pathInfo.type, pathInfo.context);
23
+ }
24
+ context.references.push(...builder.references);
25
+ context.entitiesWithNameResolver.push(...builder.entitiesWithNameResolver);
26
+ // Remove the marker symbol and process the clean object
27
+ const { [REF_ANNOTATIONS_MARKER_SYMBOL]: _, ...cleanValue } = value;
28
+ // Process the clean object recursively
29
+ return Object.fromEntries(Object.entries(cleanValue).map(([key, childValue]) => [
30
+ key,
31
+ extractDefinitionRefsRecursive(childValue, context, [...path, key]),
32
+ ]));
33
+ }
34
+ // Run recursively for arrays first (arrays are also objects)
35
+ if (Array.isArray(value)) {
36
+ return value.map((element, i) => extractDefinitionRefsRecursive(element, context, [...path, i]));
37
+ }
38
+ // Run recursively for regular objects
39
+ if (typeof value === 'object' && value !== null) {
40
+ return Object.fromEntries(Object.entries(value).map(([key, childValue]) => [
41
+ key,
42
+ extractDefinitionRefsRecursive(childValue, context, [...path, key]),
43
+ ]));
44
+ }
45
+ // Return primitive values as-is
46
+ return value;
47
+ }
48
+ export function extractDefinitionRefs(value) {
49
+ const refContext = {
50
+ context: {
51
+ pathMap: new Map(),
52
+ },
53
+ references: [],
54
+ entitiesWithNameResolver: [],
55
+ };
56
+ const cleanData = extractDefinitionRefsRecursive(value, refContext, []);
57
+ // Simple sanity check to make sure we don't have duplicate IDs
58
+ const idSet = new Set();
59
+ for (const entity of refContext.entitiesWithNameResolver) {
60
+ if (idSet.has(entity.id)) {
61
+ throw new Error(`Duplicate ID found: ${entity.id}`);
62
+ }
63
+ idSet.add(entity.id);
64
+ }
65
+ return {
66
+ data: cleanData,
67
+ references: refContext.references,
68
+ entitiesWithNameResolver: refContext.entitiesWithNameResolver,
69
+ };
70
+ }
71
+ //# sourceMappingURL=extract-definition-refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-definition-refs.js","sourceRoot":"","sources":["../../src/references/extract-definition-refs.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import type { TypeOf, z } from 'zod';
1
+ import type { def, DefinitionSchemaCreator, DefinitionSchemaCreatorOptions } from '#src/schema/index.js';
2
2
  import type { DefinitionReference, ResolvedZodRefPayload } from './types.js';
3
- interface FixRefDeletionSuccessResult<TSchema extends z.ZodType> {
3
+ interface FixRefDeletionSuccessResult<T extends DefinitionSchemaCreator> {
4
4
  type: 'success';
5
- value: TypeOf<TSchema>;
6
- refPayload: ResolvedZodRefPayload<TypeOf<TSchema>>;
5
+ value: def.InferOutput<T>;
6
+ refPayload: ResolvedZodRefPayload<def.InferOutput<T>>;
7
7
  }
8
8
  export interface FixRefDeletionError {
9
9
  ref: DefinitionReference;
@@ -13,10 +13,10 @@ interface FixRefDeletionFailureResult {
13
13
  type: 'failure';
14
14
  issues: FixRefDeletionError[];
15
15
  }
16
- export type FixRefDeletionResult<TSchema extends z.ZodType> = FixRefDeletionSuccessResult<TSchema> | FixRefDeletionFailureResult;
16
+ export type FixRefDeletionResult<T extends DefinitionSchemaCreator> = FixRefDeletionSuccessResult<T> | FixRefDeletionFailureResult;
17
17
  /**
18
18
  * Fixes any reference deletions by performing the appropriate action for the reference
19
19
  */
20
- export declare function fixRefDeletions<TSchema extends z.ZodType>(schema: TSchema, value: TypeOf<TSchema>): FixRefDeletionResult<TSchema>;
20
+ export declare function fixRefDeletions<T extends DefinitionSchemaCreator>(schemaCreator: T, value: unknown, schemaCreatorOptions: Omit<DefinitionSchemaCreatorOptions, 'transformReferences'>): FixRefDeletionResult<T>;
21
21
  export {};
22
22
  //# sourceMappingURL=fix-ref-deletions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fix-ref-deletions.d.ts","sourceRoot":"","sources":["../../src/references/fix-ref-deletions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKrC,OAAO,KAAK,EACV,mBAAmB,EAEnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAIpB,UAAU,2BAA2B,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO;IAC7D,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACvB,UAAU,EAAE,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,mBAAmB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,2BAA2B;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,IACtD,2BAA2B,CAAC,OAAO,CAAC,GACpC,2BAA2B,CAAC;AAKhC;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,EACvD,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GACrB,oBAAoB,CAAC,OAAO,CAAC,CAuG/B"}
1
+ {"version":3,"file":"fix-ref-deletions.d.ts","sourceRoot":"","sources":["../../src/references/fix-ref-deletions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,GAAG,EACH,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,mBAAmB,EAEnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAIpB,UAAU,2BAA2B,CAAC,CAAC,SAAS,uBAAuB;IACrE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1B,UAAU,EAAE,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,mBAAmB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,2BAA2B;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,uBAAuB,IAC9D,2BAA2B,CAAC,CAAC,CAAC,GAC9B,2BAA2B,CAAC;AAKhC;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,uBAAuB,EAC/D,aAAa,EAAE,CAAC,EAChB,KAAK,EAAE,OAAO,EACd,oBAAoB,EAAE,IAAI,CACxB,8BAA8B,EAC9B,qBAAqB,CACtB,GACA,oBAAoB,CAAC,CAAC,CAAC,CAsHzB"}
@@ -1,18 +1,18 @@
1
1
  import { sortBy } from 'es-toolkit';
2
2
  import { get, groupBy, set } from 'es-toolkit/compat';
3
- import { parseSchemaWithReferences } from './parse-schema-with-references.js';
3
+ import { parseSchemaWithTransformedReferences } from './parse-schema-with-references.js';
4
4
  // sentinel ID to signify the reference has been flagged for deletion
5
5
  const DELETED_SENTINEL_ID = 'deleted-sentinel-id';
6
6
  /**
7
7
  * Fixes any reference deletions by performing the appropriate action for the reference
8
8
  */
9
- export function fixRefDeletions(schema, value) {
9
+ export function fixRefDeletions(schemaCreator, value, schemaCreatorOptions) {
10
10
  const issues = [];
11
11
  // find all references that do not have a corresponding entity
12
12
  let iterations;
13
13
  let valueToEdit = value;
14
14
  for (iterations = 0; iterations < 100; iterations++) {
15
- const parseResult = parseSchemaWithReferences(schema, valueToEdit, {
15
+ const parseResult = parseSchemaWithTransformedReferences(schemaCreator, valueToEdit, schemaCreatorOptions, {
16
16
  allowInvalidReferences: true,
17
17
  });
18
18
  const { references, entities } = parseResult;
@@ -55,8 +55,16 @@ export function fixRefDeletions(schema, value) {
55
55
  for (const ref of referencesMissingEntity) {
56
56
  const id = get(valueToEdit, ref.path);
57
57
  switch (ref.onDelete) {
58
- case 'SET_NULL': {
59
- set(valueToEdit, ref.path, null);
58
+ case 'SET_UNDEFINED': {
59
+ // Check if reference is inside an array
60
+ if (ref.path.length > 0) {
61
+ const parentPath = ref.path.slice(0, -1);
62
+ const parent = get(valueToEdit, parentPath);
63
+ if (Array.isArray(parent)) {
64
+ throw new TypeError(`SET_UNDEFINED cannot be used for references inside arrays at path ${ref.path.join('.')}. Use DELETE instead to remove the array element.`);
65
+ }
66
+ }
67
+ set(valueToEdit, ref.path, undefined);
60
68
  break;
61
69
  }
62
70
  case 'RESTRICT': {
@@ -1 +1 @@
1
- {"version":3,"file":"fix-ref-deletions.js","sourceRoot":"","sources":["../../src/references/fix-ref-deletions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fix-ref-deletions.js","sourceRoot":"","sources":["../../src/references/fix-ref-deletions.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
+ export * from './definition-ref-builder.js';
1
2
  export * from './deserialize-schema.js';
3
+ export * from './extract-definition-refs.js';
2
4
  export * from './fix-ref-deletions.js';
3
- export * from './ref-builder.js';
4
5
  export * from './serialize-schema.js';
5
6
  export * from './types.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/references/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/references/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
@@ -1,6 +1,7 @@
1
+ export * from './definition-ref-builder.js';
1
2
  export * from './deserialize-schema.js';
3
+ export * from './extract-definition-refs.js';
2
4
  export * from './fix-ref-deletions.js';
3
- export * from './ref-builder.js';
4
5
  export * from './serialize-schema.js';
5
6
  export * from './types.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/references/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/references/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { DefinitionEntityInput, DefinitionReferenceInput } from './definition-ref-builder.js';
2
+ import type { DefinitionEntityType } from './types.js';
3
+ type AnyDefinitionReferenceInput = DefinitionReferenceInput<any, any>;
4
+ export type AnyDefinitionEntityInput = DefinitionEntityInput<any, any>;
5
+ export declare class DefinitionReferenceMarker {
6
+ value: string | undefined;
7
+ reference: AnyDefinitionReferenceInput;
8
+ constructor(value: string | undefined, reference: AnyDefinitionReferenceInput);
9
+ toString(): string;
10
+ }
11
+ export declare const REF_ANNOTATIONS_MARKER_SYMBOL: unique symbol;
12
+ export interface DefinitionRefAnnotations {
13
+ entities: AnyDefinitionEntityInput[];
14
+ references: AnyDefinitionReferenceInput[];
15
+ contextPaths: {
16
+ path: string;
17
+ type: DefinitionEntityType;
18
+ context: string;
19
+ }[];
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=markers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../src/references/markers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvD,KAAK,2BAA2B,GAAG,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAGtE,MAAM,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEvE,qBAAa,yBAAyB;IAE3B,KAAK,EAAE,MAAM,GAAG,SAAS;IACzB,SAAS,EAAE,2BAA2B;gBADtC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,SAAS,EAAE,2BAA2B;IAG/C,QAAQ,IAAI,MAAM;CAGnB;AAED,eAAO,MAAM,6BAA6B,eAAiC,CAAC;AAE5E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,wBAAwB,EAAE,CAAC;IACrC,UAAU,EAAE,2BAA2B,EAAE,CAAC;IAC1C,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,oBAAoB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/E"}
@@ -0,0 +1,21 @@
1
+ export class DefinitionReferenceMarker {
2
+ constructor(value, reference) {
3
+ Object.defineProperty(this, "value", {
4
+ enumerable: true,
5
+ configurable: true,
6
+ writable: true,
7
+ value: value
8
+ });
9
+ Object.defineProperty(this, "reference", {
10
+ enumerable: true,
11
+ configurable: true,
12
+ writable: true,
13
+ value: reference
14
+ });
15
+ }
16
+ toString() {
17
+ return this.value ?? '';
18
+ }
19
+ }
20
+ export const REF_ANNOTATIONS_MARKER_SYMBOL = Symbol('refAnnotationsMarker');
21
+ //# sourceMappingURL=markers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markers.js","sourceRoot":"","sources":["../../src/references/markers.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,yBAAyB;IACpC,YACS,KAAyB,EACzB,SAAsC;QAD7C;;;;mBAAO,KAAK;WAAoB;QAChC;;;;mBAAO,SAAS;WAA6B;IAC5C,CAAC;IAEJ,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { z } from 'zod';
1
+ import type { def, DefinitionSchemaCreator, DefinitionSchemaCreatorOptions } from '#src/schema/index.js';
2
2
  import type { ResolveZodRefPayloadNamesOptions } from './resolve-zod-ref-payload-names.js';
3
3
  import type { ResolvedZodRefPayload } from './types.js';
4
4
  /**
@@ -10,5 +10,5 @@ import type { ResolvedZodRefPayload } from './types.js';
10
10
  *
11
11
  * @returns The parsed data.
12
12
  */
13
- export declare function parseSchemaWithReferences<T extends z.ZodTypeAny>(schema: T, input: unknown, options?: ResolveZodRefPayloadNamesOptions): ResolvedZodRefPayload<z.output<T>>;
13
+ export declare function parseSchemaWithTransformedReferences<T extends DefinitionSchemaCreator>(schemaCreator: T, input: unknown, schemaCreatorOptions: Omit<DefinitionSchemaCreatorOptions, 'transformReferences'>, options?: ResolveZodRefPayloadNamesOptions): ResolvedZodRefPayload<def.InferOutput<T>>;
14
14
  //# sourceMappingURL=parse-schema-with-references.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-schema-with-references.d.ts","sourceRoot":"","sources":["../../src/references/parse-schema-with-references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAKxD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAC9D,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,gCAAgC,GACzC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAGpC"}
1
+ {"version":3,"file":"parse-schema-with-references.d.ts","sourceRoot":"","sources":["../../src/references/parse-schema-with-references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,GAAG,EACH,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAKxD;;;;;;;;GAQG;AACH,wBAAgB,oCAAoC,CAClD,CAAC,SAAS,uBAAuB,EAEjC,aAAa,EAAE,CAAC,EAChB,KAAK,EAAE,OAAO,EACd,oBAAoB,EAAE,IAAI,CACxB,8BAA8B,EAC9B,qBAAqB,CACtB,EACD,OAAO,CAAC,EAAE,gCAAgC,GACzC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAY3C"}
@@ -1,4 +1,5 @@
1
- import { ZodRefWrapper } from './ref-builder.js';
1
+ import { createDefinitionSchemaParserContext } from '#src/schema/creator/index.js';
2
+ import { extractDefinitionRefs } from './extract-definition-refs.js';
2
3
  import { resolveZodRefPayloadNames } from './resolve-zod-ref-payload-names.js';
3
4
  /**
4
5
  * Parses a schema with references.
@@ -9,8 +10,16 @@ import { resolveZodRefPayloadNames } from './resolve-zod-ref-payload-names.js';
9
10
  *
10
11
  * @returns The parsed data.
11
12
  */
12
- export function parseSchemaWithReferences(schema, input, options) {
13
- const wrapper = ZodRefWrapper.create(schema);
14
- return resolveZodRefPayloadNames(wrapper.parse(input), options);
13
+ export function parseSchemaWithTransformedReferences(schemaCreator, input, schemaCreatorOptions, options) {
14
+ const schemaContext = createDefinitionSchemaParserContext({
15
+ ...schemaCreatorOptions,
16
+ transformReferences: true,
17
+ });
18
+ const schema = schemaCreator(schemaContext);
19
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- using the type T which can be any zod schema
20
+ const value = schema.parse(input);
21
+ const refPayload = extractDefinitionRefs(value);
22
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- using the type T which can be any zod schema
23
+ return resolveZodRefPayloadNames(refPayload, options);
15
24
  }
16
25
  //# sourceMappingURL=parse-schema-with-references.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-schema-with-references.js","sourceRoot":"","sources":["../../src/references/parse-schema-with-references.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAS,EACT,KAAc,EACd,OAA0C;IAE1C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,yBAAyB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"parse-schema-with-references.js","sourceRoot":"","sources":["../../src/references/parse-schema-with-references.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mCAAmC,EAAE,MAAM,8BAA8B,CAAC;AAKnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E;;;;;;;;GAQG;AACH,MAAM,UAAU,oCAAoC,CAGlD,aAAgB,EAChB,KAAc,EACd,oBAGC,EACD,OAA0C;IAE1C,MAAM,aAAa,GAAG,mCAAmC,CAAC;QACxD,GAAG,oBAAoB;QACvB,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAC5C,mHAAmH;IACnH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAEhD,+GAA+G;IAC/G,OAAO,yBAAyB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ZodRefPayload } from './ref-builder.js';
1
+ import type { ZodRefPayload } from './definition-ref-builder.js';
2
2
  import type { ResolvedZodRefPayload } from './types.js';
3
3
  /**
4
4
  * Options for resolving entity names in a ZodRefPayload.
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-zod-ref-payload-names.d.ts","sourceRoot":"","sources":["../../src/references/resolve-zod-ref-payload-names.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAoB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EACzC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EACzB,EACE,2BAAmC,EACnC,sBAA8B,GAC/B,GAAE,gCAAqC,GACvC,qBAAqB,CAAC,CAAC,CAAC,CAgD1B"}
1
+ {"version":3,"file":"resolve-zod-ref-payload-names.d.ts","sourceRoot":"","sources":["../../src/references/resolve-zod-ref-payload-names.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAoB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EACzC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EACzB,EACE,2BAAmC,EACnC,sBAA8B,GAC/B,GAAE,gCAAqC,GACvC,qBAAqB,CAAC,CAAC,CAAC,CAgD1B"}
@@ -1,5 +1,5 @@
1
- import type { TypeOf, z } from 'zod';
1
+ import type { def, DefinitionSchemaCreator, DefinitionSchemaCreatorOptions } from '#src/schema/index.js';
2
2
  import type { ResolvedZodRefPayload } from './types.js';
3
3
  export declare function serializeSchemaFromRefPayload<TValue extends Record<string, unknown>>(payload: ResolvedZodRefPayload<TValue>): TValue;
4
- export declare function serializeSchema<TSchema extends z.ZodType>(schema: TSchema, value: TypeOf<TSchema>): TypeOf<TSchema>;
4
+ export declare function serializeSchema<T extends DefinitionSchemaCreator>(schemaCreator: T, value: unknown, schemaCreatorOptions: Omit<DefinitionSchemaCreatorOptions, 'transformReferences'>): def.InferOutput<T>;
5
5
  //# sourceMappingURL=serialize-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serialize-schema.d.ts","sourceRoot":"","sources":["../../src/references/serialize-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKrC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAIxD,wBAAgB,6BAA6B,CAC3C,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG,MAAM,CAmBhD;AAED,wBAAgB,eAAe,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,EACvD,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GACrB,MAAM,CAAC,OAAO,CAAC,CAIjB"}
1
+ {"version":3,"file":"serialize-schema.d.ts","sourceRoot":"","sources":["../../src/references/serialize-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,GAAG,EACH,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAIxD,wBAAgB,6BAA6B,CAC3C,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG,MAAM,CAmBhD;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,uBAAuB,EAC/D,aAAa,EAAE,CAAC,EAChB,KAAK,EAAE,OAAO,EACd,oBAAoB,EAAE,IAAI,CACxB,8BAA8B,EAC9B,qBAAqB,CACtB,GACA,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CASpB"}
@@ -1,6 +1,6 @@
1
1
  import { get, set } from 'es-toolkit/compat';
2
2
  import { produce } from 'immer';
3
- import { parseSchemaWithReferences } from './parse-schema-with-references.js';
3
+ import { parseSchemaWithTransformedReferences } from './parse-schema-with-references.js';
4
4
  export function serializeSchemaFromRefPayload(payload) {
5
5
  const { references, entities, data } = payload;
6
6
  const entitiesById = new Map(entities.map((e) => [e.id, e]));
@@ -15,8 +15,9 @@ export function serializeSchemaFromRefPayload(payload) {
15
15
  }
16
16
  })(data);
17
17
  }
18
- export function serializeSchema(schema, value) {
19
- const payload = parseSchemaWithReferences(schema, value);
18
+ export function serializeSchema(schemaCreator, value, schemaCreatorOptions) {
19
+ const payload = parseSchemaWithTransformedReferences(schemaCreator, value, schemaCreatorOptions);
20
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return -- typed as def.InferOutput<T>
20
21
  return serializeSchemaFromRefPayload(payload);
21
22
  }
22
23
  //# sourceMappingURL=serialize-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serialize-schema.js","sourceRoot":"","sources":["../../src/references/serialize-schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIhC,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,MAAM,UAAU,6BAA6B,CAE3C,OAAsC;IACtC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAE/C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7D,OAAO,OAAO,CAAC,CAAC,SAAkC,EAAE,EAAE;QACpD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAW,CAAC;YAC1D,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CACb,kCAAkC,QAAQ,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAClE,GAAG,CACJ,EAAE,CACJ,CAAC;YACJ,CAAC;YACD,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC,IAAI,CAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAAe,EACf,KAAsB;IAEtB,MAAM,OAAO,GAAG,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEzD,OAAO,6BAA6B,CAAC,OAAO,CAAY,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"serialize-schema.js","sourceRoot":"","sources":["../../src/references/serialize-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAUhC,OAAO,EAAE,oCAAoC,EAAE,MAAM,mCAAmC,CAAC;AAEzF,MAAM,UAAU,6BAA6B,CAE3C,OAAsC;IACtC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAE/C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7D,OAAO,OAAO,CAAC,CAAC,SAAkC,EAAE,EAAE;QACpD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAW,CAAC;YAC1D,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CACb,kCAAkC,QAAQ,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAClE,GAAG,CACJ,EAAE,CACJ,CAAC;YACJ,CAAC;YACD,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC,IAAI,CAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,aAAgB,EAChB,KAAc,EACd,oBAGC;IAED,MAAM,OAAO,GAAG,oCAAoC,CAClD,aAAa,EACb,KAAK,EACL,oBAAoB,CACrB,CAAC;IAEF,8FAA8F;IAC9F,OAAO,6BAA6B,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Strips the DefinitionReferenceMarker from the value recursively.
3
+ * @param value - The value to strip the DefinitionReferenceMarker from.
4
+ * @returns The value without the DefinitionReferenceMarker.
5
+ */
6
+ export declare function stripRefMarkers<TInput = unknown>(value: TInput): TInput;
7
+ //# sourceMappingURL=strip-ref-markers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip-ref-markers.d.ts","sourceRoot":"","sources":["../../src/references/strip-ref-markers.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBvE"}
@@ -0,0 +1,22 @@
1
+ import { DefinitionReferenceMarker } from './markers.js';
2
+ /**
3
+ * Strips the DefinitionReferenceMarker from the value recursively.
4
+ * @param value - The value to strip the DefinitionReferenceMarker from.
5
+ * @returns The value without the DefinitionReferenceMarker.
6
+ */
7
+ export function stripRefMarkers(value) {
8
+ if (value instanceof DefinitionReferenceMarker) {
9
+ return value.value;
10
+ }
11
+ if (Array.isArray(value)) {
12
+ return value.map(stripRefMarkers);
13
+ }
14
+ if (typeof value === 'object' && value !== null) {
15
+ return Object.fromEntries(Object.entries(value).map(([key, childValue]) => [
16
+ key,
17
+ stripRefMarkers(childValue),
18
+ ]));
19
+ }
20
+ return value;
21
+ }
22
+ //# sourceMappingURL=strip-ref-markers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip-ref-markers.js","sourceRoot":"","sources":["../../src/references/strip-ref-markers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAmB,KAAa;IAC7D,IAAI,KAAK,YAAY,yBAAyB,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC,KAAe,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,eAAe,CAAW,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;YAC/C,GAAG;YACH,eAAe,CAAC,UAAU,CAAC;SAC5B,CAAC,CACO,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -62,9 +62,9 @@ export interface DefinitionEntity {
62
62
  }
63
63
  type ReferenceOnDeleteAction =
64
64
  /**
65
- * Set the reference to null.
65
+ * Set the reference to undefined. Cannot be used for references inside arrays.
66
66
  */
67
- 'SET_NULL'
67
+ 'SET_UNDEFINED'
68
68
  /**
69
69
  * Delete the entity.
70
70
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/references/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;AAEhD;;GAEG;AACH,qBAAa,oBAAoB,CAAC,UAAU,SAAS,OAAO,GAAG,OAAO;aAWlD,IAAI,EAAE,MAAM;aAEZ,UAAU,CAAC,GAAE,UAAU,SAAS,IAAI,GAChD,oBAAoB,GACpB,SAAS;IAdf,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B;;;;;;OAMG;gBAEe,IAAI,EAAE,MAAM,EAC5B,MAAM,CAAC,EAAE,MAAM,EACC,UAAU,CAAC,GAAE,UAAU,SAAS,IAAI,GAChD,oBAAoB,GACpB,SAAS,aAAA;IAKf;;;;OAIG;IACH,aAAa,IAAI,MAAM;IAIvB;;;;;OAKG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAC9B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;IAQtD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAI7B,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAG1B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,oBAAoB,CAAC;IAC3B;;OAEG;IACH,IAAI,EAAE,aAAa,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED,KAAK,uBAAuB;AAC1B;;GAEG;AACD,UAAU;AACZ;;GAEG;GACD,QAAQ;AACV;;GAEG;GACD,eAAe;AACjB;;GAEG;GACD,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,oBAAoB,CAAC;IAC3B;;OAEG;IACH,IAAI,EAAE,aAAa,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B;;OAEG;IACH,QAAQ,EAAE,uBAAuB,CAAC;CACnC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAE5E,wBAAgB,gBAAgB,CAC9B,OAAO,SAAS,oBAAoB,GAAG,SAAS,GAAG,SAAS,EAE5D,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,oBAAoB,CAAC,OAAO,SAAS,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;AAgBlE;;;;GAIG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC;IACR;;OAEG;IACH,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B;;OAEG;IACH,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/references/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;AAEhD;;GAEG;AACH,qBAAa,oBAAoB,CAAC,UAAU,SAAS,OAAO,GAAG,OAAO;aAWlD,IAAI,EAAE,MAAM;aAEZ,UAAU,CAAC,GAAE,UAAU,SAAS,IAAI,GAChD,oBAAoB,GACpB,SAAS;IAdf,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B;;;;;;OAMG;gBAEe,IAAI,EAAE,MAAM,EAC5B,MAAM,CAAC,EAAE,MAAM,EACC,UAAU,CAAC,GAAE,UAAU,SAAS,IAAI,GAChD,oBAAoB,GACpB,SAAS,aAAA;IAKf;;;;OAIG;IACH,aAAa,IAAI,MAAM;IAIvB;;;;;OAKG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAC9B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;IAQtD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAI7B,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAG1B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,oBAAoB,CAAC;IAC3B;;OAEG;IACH,IAAI,EAAE,aAAa,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED,KAAK,uBAAuB;AAC1B;;GAEG;AACD,eAAe;AACjB;;GAEG;GACD,QAAQ;AACV;;GAEG;GACD,eAAe;AACjB;;GAEG;GACD,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,oBAAoB,CAAC;IAC3B;;OAEG;IACH,IAAI,EAAE,aAAa,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B;;OAEG;IACH,QAAQ,EAAE,uBAAuB,CAAC;CACnC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAE5E,wBAAgB,gBAAgB,CAC9B,OAAO,SAAS,oBAAoB,GAAG,SAAS,GAAG,SAAS,EAE5D,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,oBAAoB,CAAC,OAAO,SAAS,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;AAgBlE;;;;GAIG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC;IACR;;OAEG;IACH,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B;;OAEG;IACH,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC"}