@powerlines/schema 0.11.71 → 0.11.73

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 (86) hide show
  1. package/dist/index.cjs +2111 -97
  2. package/dist/index.d.cts +1841 -11
  3. package/dist/index.d.cts.map +1 -1
  4. package/dist/index.d.mts +1841 -13
  5. package/dist/index.d.mts.map +1 -1
  6. package/dist/index.mjs +1999 -15
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +14 -14
  9. package/dist/_virtual/_rolldown/runtime.cjs +0 -37
  10. package/dist/bundle.cjs +0 -55
  11. package/dist/bundle.d.cts +0 -21
  12. package/dist/bundle.d.cts.map +0 -1
  13. package/dist/bundle.d.mts +0 -23
  14. package/dist/bundle.d.mts.map +0 -1
  15. package/dist/bundle.mjs +0 -54
  16. package/dist/bundle.mjs.map +0 -1
  17. package/dist/codegen.cjs +0 -81
  18. package/dist/codegen.d.cts +0 -26
  19. package/dist/codegen.d.cts.map +0 -1
  20. package/dist/codegen.d.mts +0 -28
  21. package/dist/codegen.d.mts.map +0 -1
  22. package/dist/codegen.mjs +0 -77
  23. package/dist/codegen.mjs.map +0 -1
  24. package/dist/constants.cjs +0 -69
  25. package/dist/constants.d.cts +0 -17
  26. package/dist/constants.d.cts.map +0 -1
  27. package/dist/constants.d.mts +0 -19
  28. package/dist/constants.d.mts.map +0 -1
  29. package/dist/constants.mjs +0 -65
  30. package/dist/constants.mjs.map +0 -1
  31. package/dist/extract.cjs +0 -490
  32. package/dist/extract.d.cts +0 -125
  33. package/dist/extract.d.cts.map +0 -1
  34. package/dist/extract.d.mts +0 -127
  35. package/dist/extract.d.mts.map +0 -1
  36. package/dist/extract.mjs +0 -480
  37. package/dist/extract.mjs.map +0 -1
  38. package/dist/helpers.cjs +0 -171
  39. package/dist/helpers.d.cts +0 -111
  40. package/dist/helpers.d.cts.map +0 -1
  41. package/dist/helpers.d.mts +0 -113
  42. package/dist/helpers.d.mts.map +0 -1
  43. package/dist/helpers.mjs +0 -164
  44. package/dist/helpers.mjs.map +0 -1
  45. package/dist/metadata.cjs +0 -61
  46. package/dist/metadata.d.cts +0 -31
  47. package/dist/metadata.d.cts.map +0 -1
  48. package/dist/metadata.d.mts +0 -33
  49. package/dist/metadata.d.mts.map +0 -1
  50. package/dist/metadata.mjs +0 -60
  51. package/dist/metadata.mjs.map +0 -1
  52. package/dist/persistence.cjs +0 -82
  53. package/dist/persistence.d.cts +0 -47
  54. package/dist/persistence.d.cts.map +0 -1
  55. package/dist/persistence.d.mts +0 -49
  56. package/dist/persistence.d.mts.map +0 -1
  57. package/dist/persistence.mjs +0 -79
  58. package/dist/persistence.mjs.map +0 -1
  59. package/dist/reflection.cjs +0 -434
  60. package/dist/reflection.d.cts +0 -11
  61. package/dist/reflection.d.cts.map +0 -1
  62. package/dist/reflection.d.mts +0 -13
  63. package/dist/reflection.d.mts.map +0 -1
  64. package/dist/reflection.mjs +0 -433
  65. package/dist/reflection.mjs.map +0 -1
  66. package/dist/resolve.cjs +0 -113
  67. package/dist/resolve.d.cts +0 -36
  68. package/dist/resolve.d.cts.map +0 -1
  69. package/dist/resolve.d.mts +0 -38
  70. package/dist/resolve.d.mts.map +0 -1
  71. package/dist/resolve.mjs +0 -110
  72. package/dist/resolve.mjs.map +0 -1
  73. package/dist/type-checks.cjs +0 -642
  74. package/dist/type-checks.d.cts +0 -316
  75. package/dist/type-checks.d.cts.map +0 -1
  76. package/dist/type-checks.d.mts +0 -318
  77. package/dist/type-checks.d.mts.map +0 -1
  78. package/dist/type-checks.mjs +0 -603
  79. package/dist/type-checks.mjs.map +0 -1
  80. package/dist/types.d.cts +0 -1152
  81. package/dist/types.d.cts.map +0 -1
  82. package/dist/types.d.mts +0 -1154
  83. package/dist/types.d.mts.map +0 -1
  84. package/dist/validate.cjs +0 -35
  85. package/dist/validate.mjs +0 -33
  86. package/dist/validate.mjs.map +0 -1
@@ -1,434 +0,0 @@
1
-
2
-
3
- import __tsdown_shims_path from 'node:path'
4
- import __tsdown_shims_url from 'node:url'
5
-
6
- const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
7
- const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
8
-
9
- const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
10
- const require_type_checks = require('./type-checks.cjs');
11
- const require_codegen = require('./codegen.cjs');
12
- let defu = require("defu");
13
- defu = require_runtime.__toESM(defu, 1);
14
- let _stryke_type_checks = require("@stryke/type-checks");
15
- let _powerlines_deepkit_vendor_type = require("@powerlines/deepkit/vendor/type");
16
-
17
- //#region src/reflection.ts
18
- /**
19
- * Maps a Deepkit numeric `brand` to JSON Schema `type` and `format`.
20
- *
21
- * @remarks
22
- * This function takes a `TypeNumberBrand` (which represents specific numeric types in Deepkit, such as `integer`, `float`, `int8`, etc.) and returns a corresponding JSON Schema fragment that includes the appropriate `type`, `format`, and any relevant keywords (like `multipleOf` for integers). If the brand is not recognized, it defaults to a generic JSON Schema for numbers.
23
- *
24
- * @param brand - The Deepkit numeric brand to convert.
25
- * @return A JSON Schema fragment representing the numeric type corresponding to the provided brand.
26
- */
27
- function numberBrandToJsonSchema(brand) {
28
- switch (brand) {
29
- case _powerlines_deepkit_vendor_type.TypeNumberBrand.integer: return {
30
- type: "integer",
31
- format: "int32",
32
- multipleOf: 1
33
- };
34
- case _powerlines_deepkit_vendor_type.TypeNumberBrand.int8: return {
35
- type: "integer",
36
- format: "int8",
37
- multipleOf: 1
38
- };
39
- case _powerlines_deepkit_vendor_type.TypeNumberBrand.uint8: return {
40
- type: "integer",
41
- format: "uint8",
42
- multipleOf: 1
43
- };
44
- case _powerlines_deepkit_vendor_type.TypeNumberBrand.int16: return {
45
- type: "integer",
46
- format: "int16",
47
- multipleOf: 1
48
- };
49
- case _powerlines_deepkit_vendor_type.TypeNumberBrand.uint16: return {
50
- type: "integer",
51
- format: "uint16",
52
- multipleOf: 1
53
- };
54
- case _powerlines_deepkit_vendor_type.TypeNumberBrand.int32: return {
55
- type: "integer",
56
- format: "int32",
57
- multipleOf: 1
58
- };
59
- case _powerlines_deepkit_vendor_type.TypeNumberBrand.uint32: return {
60
- type: "integer",
61
- format: "uint32",
62
- multipleOf: 1
63
- };
64
- case _powerlines_deepkit_vendor_type.TypeNumberBrand.float:
65
- case _powerlines_deepkit_vendor_type.TypeNumberBrand.float32: return {
66
- type: "number",
67
- format: "float"
68
- };
69
- case _powerlines_deepkit_vendor_type.TypeNumberBrand.float64: return {
70
- type: "number",
71
- format: "double"
72
- };
73
- case void 0:
74
- default: return { type: "number" };
75
- }
76
- }
77
- function withReflectionTags(reflection, schema) {
78
- if (!(0, _stryke_type_checks.isSetObject)(schema) || !(0, _stryke_type_checks.isSetObject)(reflection?.tags)) return schema;
79
- const updatedSchema = { ...schema };
80
- const tags = reflection.tags;
81
- if ((0, _stryke_type_checks.isSetString)(tags.title)) updatedSchema.title = tags.title;
82
- if ((0, _stryke_type_checks.isSetArray)(tags.alias)) updatedSchema.alias = tags.alias;
83
- if (!(0, _stryke_type_checks.isUndefined)(tags.hidden)) updatedSchema.hidden = tags.hidden;
84
- if (!(0, _stryke_type_checks.isUndefined)(tags.ignore)) updatedSchema.ignore = tags.ignore;
85
- if (!(0, _stryke_type_checks.isUndefined)(tags.internal)) updatedSchema.internal = tags.internal;
86
- if (!(0, _stryke_type_checks.isUndefined)(tags.runtime)) updatedSchema.runtime = tags.runtime;
87
- if (!(0, _stryke_type_checks.isUndefined)(tags.readonly)) updatedSchema.readOnly = tags.readonly;
88
- return updatedSchema;
89
- }
90
- function withNullable(schema) {
91
- if (!(0, _stryke_type_checks.isSetObject)(schema)) return { anyOf: [schema, {
92
- type: "null",
93
- default: null
94
- }] };
95
- const rawType = schema.type;
96
- const types = Array.isArray(rawType) ? [...rawType] : rawType ? [rawType] : [];
97
- if (!types.includes("null")) types.push("null");
98
- return {
99
- ...schema,
100
- type: types.length === 1 ? types[0] : types
101
- };
102
- }
103
- /**
104
- * Converts a Deepkit type reflection into a JSON Schema (draft-07) fragment.
105
- */
106
- function reflectionToJsonSchema(reflection) {
107
- return reflectionToJsonSchemaInner(reflection);
108
- }
109
- function reflectionToJsonSchemaInner(reflection) {
110
- switch (reflection.kind) {
111
- case _powerlines_deepkit_vendor_type.ReflectionKind.any:
112
- case _powerlines_deepkit_vendor_type.ReflectionKind.unknown:
113
- case _powerlines_deepkit_vendor_type.ReflectionKind.void:
114
- case _powerlines_deepkit_vendor_type.ReflectionKind.object: return withReflectionTags(reflection, { name: reflection.typeName });
115
- case _powerlines_deepkit_vendor_type.ReflectionKind.never: return;
116
- case _powerlines_deepkit_vendor_type.ReflectionKind.undefined:
117
- case _powerlines_deepkit_vendor_type.ReflectionKind.null: return withReflectionTags(reflection, {
118
- type: "null",
119
- name: reflection.typeName,
120
- default: null
121
- });
122
- case _powerlines_deepkit_vendor_type.ReflectionKind.string: return withReflectionTags(reflection, {
123
- type: "string",
124
- name: reflection.typeName
125
- });
126
- case _powerlines_deepkit_vendor_type.ReflectionKind.boolean: return withReflectionTags(reflection, {
127
- type: "boolean",
128
- name: reflection.typeName
129
- });
130
- case _powerlines_deepkit_vendor_type.ReflectionKind.number: return withReflectionTags(reflection, numberBrandToJsonSchema(reflection.brand));
131
- case _powerlines_deepkit_vendor_type.ReflectionKind.bigint: return withReflectionTags(reflection, {
132
- type: "integer",
133
- name: reflection.typeName,
134
- format: "int64"
135
- });
136
- case _powerlines_deepkit_vendor_type.ReflectionKind.regexp: return withReflectionTags(reflection, {
137
- type: "string",
138
- name: reflection.typeName,
139
- format: "regex",
140
- contentMediaType: "text/regex"
141
- });
142
- case _powerlines_deepkit_vendor_type.ReflectionKind.literal: {
143
- const { literal } = reflection;
144
- if ((0, _stryke_type_checks.isBigInt)(literal)) return withReflectionTags(reflection, {
145
- type: "integer",
146
- name: reflection.typeName,
147
- format: "int64",
148
- const: literal
149
- });
150
- if ((0, _stryke_type_checks.isRegExp)(literal)) return withReflectionTags(reflection, {
151
- type: "string",
152
- name: reflection.typeName,
153
- format: "regex",
154
- const: literal.source
155
- });
156
- return withReflectionTags(reflection, {
157
- type: require_codegen.getJsonSchemaType(literal),
158
- name: reflection.typeName,
159
- const: literal
160
- });
161
- }
162
- case _powerlines_deepkit_vendor_type.ReflectionKind.templateLiteral: return withReflectionTags(reflection, { type: "string" });
163
- case _powerlines_deepkit_vendor_type.ReflectionKind.enum: {
164
- const values = reflection.values.filter((value) => (0, _stryke_type_checks.isString)(value) || (0, _stryke_type_checks.isInteger)(value) || (0, _stryke_type_checks.isBigInt)(value) || (0, _stryke_type_checks.isNumber)(value) || (0, _stryke_type_checks.isBoolean)(value) || (0, _stryke_type_checks.isNull)(value));
165
- if (values.length === 0) return withReflectionTags(reflection, {
166
- name: reflection.typeName,
167
- description: reflection.description,
168
- enum: []
169
- });
170
- return withReflectionTags(reflection, {
171
- type: values.every((value) => (0, _stryke_type_checks.isString)(value)) ? "string" : values.every((value) => (0, _stryke_type_checks.isInteger)(value) || (0, _stryke_type_checks.isBigInt)(value)) ? "integer" : values.every((value) => (0, _stryke_type_checks.isNumber)(value)) ? "number" : values.every((value) => (0, _stryke_type_checks.isBoolean)(value)) ? "boolean" : values.every((value) => (0, _stryke_type_checks.isNull)(value)) ? "null" : values.reduce((ret, value) => {
172
- const type = require_codegen.getJsonSchemaType(value);
173
- if (require_type_checks.isJsonSchemaPrimitiveType(type) && !ret.includes(type)) ret.push(type);
174
- return ret;
175
- }, []),
176
- name: reflection.typeName,
177
- description: reflection.description,
178
- enum: values,
179
- default: values.length === 1 ? values[0] : void 0
180
- });
181
- }
182
- case _powerlines_deepkit_vendor_type.ReflectionKind.array: {
183
- const items = reflectionToJsonSchemaInner(reflection.type);
184
- return withReflectionTags(reflection, {
185
- type: "array",
186
- name: reflection.typeName,
187
- items: items ?? {}
188
- });
189
- }
190
- case _powerlines_deepkit_vendor_type.ReflectionKind.tuple: {
191
- const items = reflection.types.map((member) => reflectionToJsonSchemaInner(member.type)).filter((item) => item !== void 0);
192
- if (items.length <= 1) return withReflectionTags(reflection, {
193
- type: "array",
194
- name: reflection.typeName,
195
- items: items.length === 1 ? items[0] : {}
196
- });
197
- return withReflectionTags(reflection, {
198
- type: "array",
199
- name: reflection.typeName,
200
- prefixItems: items,
201
- minItems: items.length,
202
- maxItems: items.length
203
- });
204
- }
205
- case _powerlines_deepkit_vendor_type.ReflectionKind.union: {
206
- const branches = reflection.types.map((inner) => reflectionToJsonSchemaInner(inner)).filter((branch) => branch !== void 0);
207
- if (!reflection.types.some((inner) => inner.kind === _powerlines_deepkit_vendor_type.ReflectionKind.null || inner.kind === _powerlines_deepkit_vendor_type.ReflectionKind.undefined)) return withReflectionTags(reflection, {
208
- name: reflection.typeName,
209
- anyOf: branches
210
- });
211
- const nonNull = branches.filter((branch) => !require_type_checks.isNullOnlyJsonSchema(branch));
212
- if (nonNull.length === 0) return withReflectionTags(reflection, {
213
- type: "null",
214
- default: null
215
- });
216
- if (nonNull.length === 1) {
217
- const first = nonNull[0];
218
- if (!(0, _stryke_type_checks.isSetObject)(first)) return withNullable(withReflectionTags(reflection, {
219
- name: reflection.typeName,
220
- anyOf: [first]
221
- }));
222
- return withNullable(withReflectionTags(reflection, {
223
- name: reflection.typeName,
224
- ...first
225
- }));
226
- }
227
- const enumValues = nonNull.map((branch) => (0, _stryke_type_checks.isSetObject)(branch) ? branch.const : void 0).filter((value) => value === null || typeof value === "string" || typeof value === "number" || typeof value === "bigint" || typeof value === "boolean");
228
- if (enumValues.length === nonNull.length) return withNullable(withReflectionTags(reflection, {
229
- name: reflection.typeName,
230
- enum: enumValues
231
- }));
232
- const discriminator = tryReflectionDiscriminator(reflection.types);
233
- if (discriminator && (0, _stryke_type_checks.isSetObject)(discriminator)) return withNullable(withReflectionTags(reflection, {
234
- name: reflection.typeName,
235
- ...discriminator
236
- }));
237
- return withNullable(withReflectionTags(reflection, {
238
- name: reflection.typeName,
239
- anyOf: nonNull
240
- }));
241
- }
242
- case _powerlines_deepkit_vendor_type.ReflectionKind.intersection: {
243
- const members = reflection.types.map((inner) => reflectionToJsonSchemaInner(inner)).filter((item) => item !== void 0);
244
- if (members.length === 0) return;
245
- if (members.length === 1) {
246
- if (!(0, _stryke_type_checks.isSetObject)(members[0])) return members[0];
247
- return withReflectionTags(reflection, {
248
- name: reflection.typeName,
249
- ...members[0]
250
- });
251
- }
252
- if (members.every(require_type_checks.isJsonSchemaObject)) return withReflectionTags(reflection, {
253
- name: reflection.typeName,
254
- ...mergeObjectSchemas(members)
255
- });
256
- return withReflectionTags(reflection, {
257
- name: reflection.typeName,
258
- allOf: members
259
- });
260
- }
261
- case _powerlines_deepkit_vendor_type.ReflectionKind.promise: return reflectionToJsonSchemaInner(reflection.type);
262
- case _powerlines_deepkit_vendor_type.ReflectionKind.objectLiteral: return objectReflectionToJsonSchema(reflection);
263
- case _powerlines_deepkit_vendor_type.ReflectionKind.class: switch (reflection.classType?.name) {
264
- case "Date": return withReflectionTags(reflection, {
265
- type: "string",
266
- format: "date-time"
267
- });
268
- case "RegExp": return withReflectionTags(reflection, {
269
- type: "string",
270
- format: "regex"
271
- });
272
- case "URL": return withReflectionTags(reflection, {
273
- type: "string",
274
- format: "uri"
275
- });
276
- case "Set": {
277
- const itemType = reflection.arguments?.[0];
278
- return withReflectionTags(reflection, {
279
- type: "array",
280
- items: (itemType ? reflectionToJsonSchemaInner(itemType) : void 0) ?? {},
281
- uniqueItems: true
282
- });
283
- }
284
- case "Map": {
285
- const valueType = reflection.arguments?.[1];
286
- return withReflectionTags(reflection, {
287
- type: "object",
288
- additionalProperties: (valueType ? reflectionToJsonSchemaInner(valueType) : void 0) ?? true
289
- });
290
- }
291
- case "Uint8Array":
292
- case "Uint8ClampedArray":
293
- case "Uint16Array":
294
- case "Uint32Array":
295
- case "Int8Array":
296
- case "Int16Array":
297
- case "Int32Array":
298
- case "Float32Array":
299
- case "Float64Array":
300
- case "BigInt64Array":
301
- case "BigUint64Array": return withReflectionTags(reflection, {
302
- type: "string",
303
- format: "byte",
304
- contentEncoding: "base64"
305
- });
306
- case void 0:
307
- default: return withReflectionTags(reflection, {
308
- name: reflection.typeName,
309
- description: reflection.description,
310
- ...objectReflectionToJsonSchema(reflection)
311
- });
312
- }
313
- case _powerlines_deepkit_vendor_type.ReflectionKind.symbol:
314
- case _powerlines_deepkit_vendor_type.ReflectionKind.property:
315
- case _powerlines_deepkit_vendor_type.ReflectionKind.method:
316
- case _powerlines_deepkit_vendor_type.ReflectionKind.function:
317
- case _powerlines_deepkit_vendor_type.ReflectionKind.parameter:
318
- case _powerlines_deepkit_vendor_type.ReflectionKind.typeParameter:
319
- case _powerlines_deepkit_vendor_type.ReflectionKind.tupleMember:
320
- case _powerlines_deepkit_vendor_type.ReflectionKind.enumMember:
321
- case _powerlines_deepkit_vendor_type.ReflectionKind.rest:
322
- case _powerlines_deepkit_vendor_type.ReflectionKind.indexSignature:
323
- case _powerlines_deepkit_vendor_type.ReflectionKind.propertySignature:
324
- case _powerlines_deepkit_vendor_type.ReflectionKind.methodSignature:
325
- case _powerlines_deepkit_vendor_type.ReflectionKind.infer:
326
- case _powerlines_deepkit_vendor_type.ReflectionKind.callSignature:
327
- default: return;
328
- }
329
- }
330
- function mergeObjectSchemas(schemas) {
331
- const merged = {
332
- type: "object",
333
- properties: {},
334
- required: []
335
- };
336
- for (const schema of schemas) {
337
- if (schema.properties) merged.properties = (0, defu.default)(merged.properties, schema.properties);
338
- if (schema.required) merged.required = Array.from(new Set([...merged.required ?? [], ...schema.required]));
339
- if (schema.additionalProperties !== void 0) merged.additionalProperties = schema.additionalProperties;
340
- }
341
- if ((merged.required?.length ?? 0) === 0) delete merged.required;
342
- return merged;
343
- }
344
- function tryReflectionDiscriminator(types) {
345
- const nonNullTypes = types.filter((t) => t.kind !== _powerlines_deepkit_vendor_type.ReflectionKind.null && t.kind !== _powerlines_deepkit_vendor_type.ReflectionKind.undefined);
346
- const objectBranches = nonNullTypes.filter((t) => t.kind === _powerlines_deepkit_vendor_type.ReflectionKind.objectLiteral || t.kind === _powerlines_deepkit_vendor_type.ReflectionKind.class);
347
- if (objectBranches.length < 2 || objectBranches.length !== nonNullTypes.length) return;
348
- let tagKey;
349
- const branches = [];
350
- for (const branch of objectBranches) {
351
- const literalProps = [];
352
- for (const member of branch.types) if ((member.kind === _powerlines_deepkit_vendor_type.ReflectionKind.property || member.kind === _powerlines_deepkit_vendor_type.ReflectionKind.propertySignature) && typeof member.name === "string" && member.type.kind === _powerlines_deepkit_vendor_type.ReflectionKind.literal && typeof member.type.literal === "string") literalProps.push({
353
- name: member.name,
354
- literal: member.type.literal
355
- });
356
- if (literalProps.length === 0) return;
357
- const first = literalProps[0];
358
- if (!tagKey) tagKey = first.name;
359
- else if (tagKey !== first.name) return;
360
- const body = objectReflectionToJsonSchema({
361
- ...branch,
362
- types: branch.types.filter((member) => !((member.kind === _powerlines_deepkit_vendor_type.ReflectionKind.property || member.kind === _powerlines_deepkit_vendor_type.ReflectionKind.propertySignature) && member.name === tagKey))
363
- });
364
- if (!body || !require_type_checks.isJsonSchemaObject(body)) return;
365
- branches.push({
366
- type: "object",
367
- properties: {
368
- [tagKey]: { const: first.literal },
369
- ...body.properties ?? {}
370
- },
371
- required: [tagKey, ...body.required ?? []],
372
- additionalProperties: body.additionalProperties ?? false
373
- });
374
- }
375
- if (!tagKey) return;
376
- return {
377
- oneOf: branches,
378
- discriminator: { propertyName: tagKey }
379
- };
380
- }
381
- function objectReflectionToJsonSchema(type) {
382
- const reflection = _powerlines_deepkit_vendor_type.ReflectionClass.from(type);
383
- const schema = {
384
- type: "object",
385
- name: reflection.getName(),
386
- description: reflection.getDescription(),
387
- properties: {},
388
- required: [],
389
- readOnly: reflection.isReadonly(),
390
- ignore: reflection.isIgnored(),
391
- internal: reflection.isInternal(),
392
- runtime: reflection.isRuntime(),
393
- hidden: reflection.isHidden(),
394
- primaryKey: reflection.getPrimaries().map((primary) => primary.getNameAsString()),
395
- ...(0, _stryke_type_checks.isSetString)(reflection.databaseSchemaName) ? { databaseSchemaName: reflection.databaseSchemaName } : {},
396
- ...(0, _stryke_type_checks.isSetString)(reflection.getName()) ? { name: reflection.getName() } : {},
397
- ...(0, _stryke_type_checks.isSetString)(reflection.getDescription()) ? { description: reflection.getDescription() } : {},
398
- ...(0, _stryke_type_checks.isSetArray)(reflection.getAlias()) ? { alias: reflection.getAlias() } : {},
399
- ...(0, _stryke_type_checks.isSetString)(reflection.getTitle()) ? { title: reflection.getTitle() } : {}
400
- };
401
- for (const propertyReflection of reflection.getProperties()) {
402
- if (propertyReflection.getKind() === _powerlines_deepkit_vendor_type.ReflectionKind.indexSignature) {
403
- schema.additionalProperties = reflectionToJsonSchemaInner(propertyReflection.type) ?? true;
404
- continue;
405
- }
406
- let property = reflectionToJsonSchemaInner(propertyReflection.type);
407
- if (!property) continue;
408
- property = {
409
- ...(0, _stryke_type_checks.isSetObject)(property) ? property : {},
410
- name: propertyReflection.getNameAsString(),
411
- description: propertyReflection.getDescription(),
412
- readOnly: propertyReflection.isReadonly(),
413
- ignore: propertyReflection.isIgnored(),
414
- internal: propertyReflection.isInternal(),
415
- runtime: propertyReflection.isRuntime(),
416
- hidden: propertyReflection.isHidden(),
417
- ...propertyReflection.hasDefault() ? { default: propertyReflection.getDefaultValue() } : {},
418
- ...(0, _stryke_type_checks.isSetArray)(propertyReflection.getGroups()) ? { tags: propertyReflection.getGroups() } : {},
419
- ...(0, _stryke_type_checks.isSetArray)(propertyReflection.getAlias()) ? { alias: propertyReflection.getAlias() } : {},
420
- ...(0, _stryke_type_checks.isSetString)(propertyReflection.getTitle()) ? { title: propertyReflection.getTitle() } : {}
421
- };
422
- if (propertyReflection.isNullable()) property = withNullable(property);
423
- schema.properties ??= {};
424
- schema.properties[propertyReflection.name] = property;
425
- if (!propertyReflection.isOptional()) {
426
- schema.required ??= [];
427
- schema.required.push(propertyReflection.name);
428
- }
429
- }
430
- return schema;
431
- }
432
-
433
- //#endregion
434
- exports.reflectionToJsonSchema = reflectionToJsonSchema;
@@ -1,11 +0,0 @@
1
- import { JsonSchema } from "./types.cjs";
2
- import { Type } from "@powerlines/deepkit/vendor/type";
3
-
4
- //#region src/reflection.d.ts
5
- /**
6
- * Converts a Deepkit type reflection into a JSON Schema (draft-07) fragment.
7
- */
8
- declare function reflectionToJsonSchema(reflection: Type): JsonSchema | undefined;
9
- //#endregion
10
- export { reflectionToJsonSchema };
11
- //# sourceMappingURL=reflection.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflection.d.cts","names":[],"sources":["../src/reflection.ts"],"mappings":";;;;;;AAgKA;iBAAgB,sBAAA,CACd,UAAA,EAAY,IAAA,GACX,UAAU"}
@@ -1,13 +0,0 @@
1
- import __tsdown_shims_path from 'node:path';
2
- import __tsdown_shims_url from 'node:url';
3
- import { JsonSchema } from "./types.mjs";
4
- import { Type } from "@powerlines/deepkit/vendor/type";
5
-
6
- //#region src/reflection.d.ts
7
- /**
8
- * Converts a Deepkit type reflection into a JSON Schema (draft-07) fragment.
9
- */
10
- declare function reflectionToJsonSchema(reflection: Type): JsonSchema | undefined;
11
- //#endregion
12
- export { reflectionToJsonSchema };
13
- //# sourceMappingURL=reflection.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflection.d.mts","names":[],"sources":["../src/reflection.ts"],"mappings":";;;;;;;;;iBAgKgB,sBAAA,CACd,UAAA,EAAY,IAAA,GACX,UAAU"}