@tsofist/schema-forge 3.1.1 → 3.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/dbml-generator/generator.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAIH,oBAAoB,EAGpB,gBAAgB,EACnB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,gBAAgB,CAC5B,cAAc,EAAE,mBAAmB,EACnC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,OAAO,GAAE,oBAAyB,UAqFrC"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/dbml-generator/generator.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAIH,oBAAoB,EAGpB,gBAAgB,EACnB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,gBAAgB,CAC5B,cAAc,EAAE,mBAAmB,EACnC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,OAAO,GAAE,oBAAyB,UAsGrC"}
@@ -9,17 +9,21 @@ const snake_1 = require("@tsofist/stem/lib/string/case/snake");
9
9
  const compare_1 = require("@tsofist/stem/lib/string/compare");
10
10
  const substr_1 = require("@tsofist/stem/lib/string/substr");
11
11
  const text_builder_1 = require("@tsofist/stem/lib/string/text-builder");
12
+ const cache_1 = require("../schema-dereference/cache");
13
+ const dereference_1 = require("../schema-dereference/dereference");
12
14
  function generateDBMLSpec(schemaRegistry, scopes, options = {}) {
13
15
  const text = new text_builder_1.TextBuilder();
14
16
  const tables = new Map();
15
17
  const groups = new Map();
16
18
  const sources = new Map();
19
+ const dereferencedRootSchemas = new Map();
17
20
  if (options.meta?.comment) {
18
21
  text.push(`// ${options.meta?.comment}`);
19
22
  }
20
23
  text.push(`Project ${options.meta?.name ?? 'Scratch'} {`);
21
24
  text.push(`database_type: 'PostgreSQL'`, 1);
22
25
  if (options.meta?.note) {
26
+ text.push('');
23
27
  text.push(buildNote(options.meta.note), 1);
24
28
  }
25
29
  text.push('}');
@@ -34,9 +38,21 @@ function generateDBMLSpec(schemaRegistry, scopes, options = {}) {
34
38
  sources.set(scope.scopeName ?? DefaultScopeName, scope);
35
39
  }
36
40
  }
37
- for (const { definitions, scopeName = DefaultScopeName } of sources.values()) {
41
+ for (const { definitions, scopeName = DefaultScopeName, schemaId } of sources.values()) {
42
+ let dereferencedRootSchema = dereferencedRootSchemas.get(schemaId);
43
+ if (!dereferencedRootSchemas.has(schemaId)) {
44
+ const root = schemaRegistry.getRootSchema(schemaId) ||
45
+ (0, error_1.raise)(`Root schema ${schemaId} not found`);
46
+ dereferencedRootSchema =
47
+ (0, dereference_1.dereferenceSchema)(root, {
48
+ throwOnDereferenceFailure: true,
49
+ sharedCacheStorage: DereferenceSchemaCache ||
50
+ (DereferenceSchemaCache = (0, cache_1.createSchemaDereferenceSharedCache)()),
51
+ }) || (0, error_1.raise)(`Failed to dereference root schema for ${schemaId}`);
52
+ dereferencedRootSchemas.set(schemaId, dereferencedRootSchema);
53
+ }
38
54
  for (const definition of definitions) {
39
- const tableSpec = generateTable(definition, schemaRegistry, options);
55
+ const tableSpec = generateTable(definition, options, dereferencedRootSchema);
40
56
  if (tableSpec) {
41
57
  if (tables.has(tableSpec.name)) {
42
58
  (0, error_1.raise)(`Definitions contain duplicate table name: ${tableSpec.name}`);
@@ -76,18 +92,20 @@ function generateDBMLSpec(schemaRegistry, scopes, options = {}) {
76
92
  }
77
93
  return text.stringify();
78
94
  }
79
- function generateTable(info, registry, options) {
80
- const includeNotes = options?.includeNotes ?? false;
95
+ function generateTable(info, options, dereferencedRootSchema) {
96
+ const includeNotes = options.includeNotes ?? false;
81
97
  const entityTypeName = info.type;
82
- const entitySchema = registry.getSchema(`${info.schemaId}#/definitions/${entityTypeName}`);
98
+ const entitySchema = (dereferencedRootSchema.definitions || dereferencedRootSchema.$defs)?.[entityTypeName];
83
99
  if (!entitySchema)
84
100
  return;
101
+ if (typeof entitySchema !== 'object')
102
+ (0, error_1.raise)(`Invalid definition type for table: ${typeof entitySchema} (expected object)`);
85
103
  const tableName = readDBEntityName(entitySchema);
86
104
  if (!tableName)
87
105
  return;
88
106
  const { properties, required } = listProperties(entitySchema);
89
- const columns = generateColumns(properties, required, includeNotes, registry, info.schemaId);
90
- const indexes = generateIndexes(tableName, properties, readDBEntityIndexes(entitySchema), includeNotes, registry, info.schemaId);
107
+ const columns = generateColumns(properties, required, includeNotes, info.schemaId, tableName);
108
+ const indexes = generateIndexes(tableName, properties, readDBEntityIndexes(entitySchema), includeNotes, info.schemaId);
91
109
  const text = new text_builder_1.TextBuilder();
92
110
  if (entitySchema.$comment) {
93
111
  text.push(stringifyComment(entitySchema.$comment));
@@ -110,7 +128,7 @@ function generateTable(info, registry, options) {
110
128
  value: text.stringify(),
111
129
  };
112
130
  }
113
- function generateColumns(properties, requiredFields, notes, registry, schemaId) {
131
+ function generateColumns(properties, requiredFields, notes, schemaId, tableName) {
114
132
  const text = new text_builder_1.TextBuilder();
115
133
  let count = 0;
116
134
  for (const [key, property] of (0, entries_1.entries)(properties).sort(([keyA], [keyB]) => {
@@ -128,16 +146,18 @@ function generateColumns(properties, requiredFields, notes, registry, schemaId)
128
146
  continue;
129
147
  const isRequired = requiredFields.includes(key);
130
148
  const isColumnNullable = isNullable(property);
131
- const columnType = getType(property, schemaId, registry);
149
+ const columnType = getDBType(property, schemaId);
132
150
  const attributes = generateColumnAttributes(key, property, isRequired, isColumnNullable, notes);
133
151
  if (property.$comment)
134
152
  text.push(stringifyComment(property.$comment));
135
- text.push(`${(0, snake_1.snakeCase)(key)} ${columnType} [${attributes.stringify(', ')}]`);
153
+ const attributesText = attributes.stringify(', ');
154
+ const hasLineBreak = attributesText.includes('\n');
155
+ text.push(`${(0, snake_1.snakeCase)(key)} ${columnType} [${attributesText}${hasLineBreak ? '\n' : ']'}`);
156
+ hasLineBreak && text.push(']');
136
157
  count++;
137
158
  }
138
159
  if (count === 0) {
139
- // todo!
140
- // raise(`Table ${schemaId} has no columns`);
160
+ (0, error_1.raise)(`Table ${tableName} (${schemaId}) does not have any columns defined`);
141
161
  }
142
162
  return text;
143
163
  }
@@ -169,11 +189,11 @@ function generateColumnAttributes(_key, property, isRequired, isColumnNullable,
169
189
  result.push(`default: ${String(v)}`);
170
190
  }
171
191
  if (notes && property.description) {
172
- result.push(buildNote(property.description).stringify());
192
+ result.push(buildNote(property.description, 2).stringify());
173
193
  }
174
194
  return result;
175
195
  }
176
- function generateIndexes(tableName, schemaProperties, entityIndexes, includeNotes, registry, schemaId) {
196
+ function generateIndexes(tableName, schemaProperties, entityIndexes, includeNotes, schemaId) {
177
197
  const text = new text_builder_1.TextBuilder();
178
198
  const idx = {};
179
199
  const normalizedTableName = tableName.replace(/\./g, '_');
@@ -211,7 +231,7 @@ function generateIndexes(tableName, schemaProperties, entityIndexes, includeNote
211
231
  const field = (0, substr_1.substr)(rawKey, '.');
212
232
  const index = (idx[indexName] ||= {
213
233
  ...(typeof item === 'object' ? item : {}),
214
- columnType: getType(schemaProperties[column], schemaId, registry),
234
+ columnType: getDBType(schemaProperties[column], schemaId),
215
235
  columns: [],
216
236
  fields: [],
217
237
  });
@@ -241,9 +261,9 @@ function generateIndexes(tableName, schemaProperties, entityIndexes, includeNote
241
261
  continue;
242
262
  const { columns, unique, pk, comment, note } = index;
243
263
  if (columns.length !== new Set(columns).size) {
244
- console.error(`Duplicate columns in index ${indexName} for table ${tableName}`);
264
+ console.warn(`Duplicate columns in index ${indexName} for table ${tableName}`);
245
265
  }
246
- const options = [`name: "${indexName}"`];
266
+ const options = new text_builder_1.TextBuilder(`name: "${indexName}"`);
247
267
  const type = index.type || index.columnType === 'jsonb' || index.columnType.endsWith('[]')
248
268
  ? 'gin'
249
269
  : undefined;
@@ -253,15 +273,15 @@ function generateIndexes(tableName, schemaProperties, entityIndexes, includeNote
253
273
  options.push(`pk`);
254
274
  if (!pk && unique)
255
275
  options.push('unique');
256
- // todo
276
+ // todo?
257
277
  // if (includeNotes && fields.length) {
258
278
  // options.push(`note: 'Fields: ${fields.join(', ')};'`);
259
279
  // }
260
280
  if (includeNotes && note)
261
- options.push(buildNote(note).stringify());
281
+ options.push(buildNote(note, 3).stringify());
262
282
  if (comment)
263
283
  text.push(`// ${comment}`);
264
- text.push(`(${columns.map(snake_1.snakeCase).join(', ')}) [${options.join(', ')}]`);
284
+ text.push(`(${columns.map(snake_1.snakeCase).join(', ')}) [${options.stringify(', ')}]`);
265
285
  }
266
286
  return text;
267
287
  }
@@ -285,12 +305,12 @@ function stringifyComment(value) {
285
305
  return undefined;
286
306
  return value.split('\n').map((item) => `// ${item.trim()}`);
287
307
  }
288
- function buildNote(value) {
308
+ function buildNote(value, mlLevel = 1) {
289
309
  const result = new text_builder_1.TextBuilder();
290
310
  if (value) {
291
311
  if (value.includes('\n')) {
292
312
  result.push(`note:`);
293
- result.push([`'''`, ...value.split('\n'), `'''`], 1);
313
+ result.push([`'''`, ...value.split('\n'), `'''`], mlLevel);
294
314
  }
295
315
  else {
296
316
  result.push(`note: "${value}"`);
@@ -301,35 +321,26 @@ function buildNote(value) {
301
321
  function isNullable(property) {
302
322
  return (property.anyOf?.some((item) => typeof item !== 'boolean' && item?.type !== 'null') ?? false);
303
323
  }
304
- function getType(property, schemaId, registry) {
324
+ let DereferenceSchemaCache;
325
+ function getDBType(property, schemaId) {
305
326
  if (property.dbColumn?.type)
306
327
  return property.dbColumn.type;
307
328
  let type = property.type;
308
- if (property.$ref) {
309
- const schema = registry.getSchema(`${schemaId}${property.$ref}`);
310
- if (schema && schema.type)
311
- type = schema.type;
312
- const ref = schema?.$ref || property.$ref;
313
- if (typeof ref !== 'string')
314
- (0, error_1.raise)(`Invalid schema reference type ${typeof ref} (expected string)`);
315
- const refType = ref.split('/').pop();
316
- if (refType && refType in {}) {
317
- // @1ts-expect-error It's OK
318
- // return TypeMappings[refType];
319
- return '-'; // TODO!
320
- }
321
- else if (schema) {
322
- property = schema;
323
- }
329
+ if (!type && property.$ref) {
330
+ (0, error_1.raise)(`Type ${JSON.stringify(property)} (${schemaId}) was not dereferenced`);
331
+ }
332
+ if (type && Array.isArray(type)) {
333
+ type = type.filter((item) => item !== 'null')[0];
334
+ }
335
+ if (type && typeof type !== 'string') {
336
+ (0, error_1.raise)(`Invalid SchemaTypeName value type (${typeof type}) (expected string)`);
324
337
  }
325
- if (typeof type !== 'string')
326
- (0, error_1.raise)(`Invalid schema type ${typeof type} (expected string)`);
327
338
  const variants = property.anyOf || property.oneOf;
328
339
  if (variants) {
329
340
  const nonNullType = variants.find((item) => typeof item !== 'boolean' && item?.type !== 'null');
330
341
  if (nonNullType) {
331
342
  return typeof nonNullType === 'object'
332
- ? getType(nonNullType, schemaId, registry)
343
+ ? getDBType(nonNullType, schemaId)
333
344
  : nonNullType.toString();
334
345
  }
335
346
  }
@@ -352,7 +363,10 @@ function listProperties(schema) {
352
363
  required: schema.required || [],
353
364
  };
354
365
  }
355
- // todo oneOf
366
+ if (schema.oneOf) {
367
+ // todo oneOf
368
+ (0, error_1.raise)(`Schema ${JSON.stringify(schema)} has oneOf, but not implemented yet`);
369
+ }
356
370
  if (!schema.anyOf) {
357
371
  return {
358
372
  type: 'object',
@@ -380,11 +394,11 @@ function listProperties(schema) {
380
394
  }
381
395
  else {
382
396
  if (!(0, equal_keys_1.isEqualKeys)(propertiesMap, item.properties)) {
383
- console.error('Properties are not identical across all members of anyOf');
397
+ console.warn('Properties are not identical across all members of anyOf');
384
398
  }
385
399
  for (const name of item.required || []) {
386
400
  if (!requiredSet.has(name)) {
387
- console.error('Required fields are not identical across all members of anyOf');
401
+ console.warn('Required fields are not identical across all members of anyOf');
388
402
  }
389
403
  }
390
404
  }
@@ -2,7 +2,7 @@ import { type APIInterfaceSDS, type APIMemberSDS, type APIMethodArgsSDS, type AP
2
2
  /**
3
3
  * Builds the type signature for the API Interface
4
4
  */
5
- export declare function buildAPIInterfaceSDS(interfaceName: string): APIInterfaceSDS;
5
+ export declare function buildAPIInterfaceSDS(interfaceName: string, legacy?: boolean): APIInterfaceSDS;
6
6
  /**
7
7
  * Builds the type signature for the API Interface member
8
8
  */
@@ -10,9 +10,9 @@ export declare function buildAPIMemberSDS(interfaceName: string, memberName: str
10
10
  /**
11
11
  * Builds the type signature for the API Interface method arguments
12
12
  */
13
- export declare function buildAPIMethodArgsSDS(interfaceName: string, methodName: string): APIMethodArgsSDS;
13
+ export declare function buildAPIMethodArgsSDS(interfaceName: string, methodName: string, legacy?: boolean): APIMethodArgsSDS;
14
14
  /**
15
15
  * Builds the type signature for the API Interface method result
16
16
  */
17
- export declare function buildAPIMethodResultSDS(interfaceName: string, methodName: string): APIMethodResultSDS;
17
+ export declare function buildAPIMethodResultSDS(interfaceName: string, methodName: string, legacy?: boolean): APIMethodResultSDS;
18
18
  //# sourceMappingURL=api-signature.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-signature.d.ts","sourceRoot":"","sources":["../../src/definition-info/api-signature.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAK1B,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,CAE3E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAEzF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAEjG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACnB,kBAAkB,CAEpB"}
1
+ {"version":3,"file":"api-signature.d.ts","sourceRoot":"","sources":["../../src/definition-info/api-signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAK1B,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,eAAe,CAE3F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAEzF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,MAAM,UAAQ,GACf,gBAAgB,CAElB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,MAAM,UAAQ,GACf,kBAAkB,CAEpB"}
@@ -8,8 +8,8 @@ const types_1 = require("./types");
8
8
  /**
9
9
  * Builds the type signature for the API Interface
10
10
  */
11
- function buildAPIInterfaceSDS(interfaceName) {
12
- return `${interfaceName}${types_1.SDS_SUFFIX_API}`;
11
+ function buildAPIInterfaceSDS(interfaceName, legacy = false) {
12
+ return `${interfaceName}${legacy ? types_1._SDS_SUFFIX_API : types_1.SDS_SUFFIX_API}`;
13
13
  }
14
14
  /**
15
15
  * Builds the type signature for the API Interface member
@@ -20,12 +20,12 @@ function buildAPIMemberSDS(interfaceName, memberName) {
20
20
  /**
21
21
  * Builds the type signature for the API Interface method arguments
22
22
  */
23
- function buildAPIMethodArgsSDS(interfaceName, methodName) {
24
- return `${interfaceName}_${methodName}${types_1.SDS_SUFFIX_METHOD_ARGS}`;
23
+ function buildAPIMethodArgsSDS(interfaceName, methodName, legacy = false) {
24
+ return `${interfaceName}_${methodName}${legacy ? types_1._SDS_SUFFIX_METHOD_ARGS : types_1.SDS_SUFFIX_METHOD_ARGS}`;
25
25
  }
26
26
  /**
27
27
  * Builds the type signature for the API Interface method result
28
28
  */
29
- function buildAPIMethodResultSDS(interfaceName, methodName) {
30
- return `${interfaceName}_${methodName}${types_1.SDS_SUFFIX_METHOD_RES}`;
29
+ function buildAPIMethodResultSDS(interfaceName, methodName, legacy = false) {
30
+ return `${interfaceName}_${methodName}${legacy ? types_1._SDS_SUFFIX_METHOD_RES : types_1.SDS_SUFFIX_METHOD_RES}`;
31
31
  }
@@ -0,0 +1,6 @@
1
+ import { APIInterfaceSDS, APIMemberSDS, APIMethodArgsSDS, APIMethodResultSDS } from './types';
2
+ export declare function isAPIDefinitionName(definitionName: string): definitionName is APIInterfaceSDS;
3
+ export declare function isAPIMemberDefinitionName(definitionName: string): definitionName is APIMemberSDS;
4
+ export declare function isAPIMethodArgsDefinitionName(definitionName: string): definitionName is APIMethodArgsSDS;
5
+ export declare function isAPIMethodResultDefinitionName(definitionName: string): definitionName is APIMethodResultSDS;
6
+ //# sourceMappingURL=guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/definition-info/guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAKrB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,cAAc,IAAI,eAAe,CAE7F;AAED,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,cAAc,IAAI,YAAY,CAEhG;AAED,wBAAgB,6BAA6B,CACzC,cAAc,EAAE,MAAM,GACvB,cAAc,IAAI,gBAAgB,CAKpC;AAED,wBAAgB,+BAA+B,CAC3C,cAAc,EAAE,MAAM,GACvB,cAAc,IAAI,kBAAkB,CAKtC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isAPIDefinitionName = isAPIDefinitionName;
4
+ exports.isAPIMemberDefinitionName = isAPIMemberDefinitionName;
5
+ exports.isAPIMethodArgsDefinitionName = isAPIMethodArgsDefinitionName;
6
+ exports.isAPIMethodResultDefinitionName = isAPIMethodResultDefinitionName;
7
+ const types_1 = require("./types");
8
+ function isAPIDefinitionName(definitionName) {
9
+ return definitionName.endsWith(types_1.SDS_SUFFIX_API) || definitionName.endsWith(types_1._SDS_SUFFIX_API);
10
+ }
11
+ function isAPIMemberDefinitionName(definitionName) {
12
+ return definitionName.endsWith(types_1.SDS_SUFFIX_MEMBER);
13
+ }
14
+ function isAPIMethodArgsDefinitionName(definitionName) {
15
+ return (definitionName.endsWith(types_1.SDS_SUFFIX_METHOD_ARGS) ||
16
+ definitionName.endsWith(types_1._SDS_SUFFIX_METHOD_ARGS));
17
+ }
18
+ function isAPIMethodResultDefinitionName(definitionName) {
19
+ return (definitionName.endsWith(types_1.SDS_SUFFIX_METHOD_RES) ||
20
+ definitionName.endsWith(types_1._SDS_SUFFIX_METHOD_RES));
21
+ }
@@ -1,3 +1,3 @@
1
1
  import { type SchemaDefinitionInfo } from './types';
2
- export declare function parseSchemaDefinitionInfo(definitionName: string, schemaId: string): SchemaDefinitionInfo;
2
+ export declare function parseSchemaDefinitionInfo(definitionName: string, schemaId: string, legacy?: boolean): SchemaDefinitionInfo;
3
3
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/definition-info/parser.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,oBAAoB,EAK5B,MAAM,SAAS,CAAC;AAEjB,wBAAgB,yBAAyB,CACrC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,GACjB,oBAAoB,CAsCtB"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/definition-info/parser.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,oBAAoB,EAG5B,MAAM,SAAS,CAAC;AAEjB,wBAAgB,yBAAyB,CACrC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,UAAQ,GACf,oBAAoB,CAsCtB"}
@@ -2,14 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseSchemaDefinitionInfo = parseSchemaDefinitionInfo;
4
4
  const substr_1 = require("@tsofist/stem/lib/string/substr");
5
+ const guards_1 = require("./guards");
5
6
  const ref_1 = require("./ref");
6
7
  const types_1 = require("./types");
7
- function parseSchemaDefinitionInfo(definitionName, schemaId) {
8
- const kind = definitionName.endsWith(types_1.SDS_SUFFIX_API)
8
+ function parseSchemaDefinitionInfo(definitionName, schemaId, legacy = false) {
9
+ const kind = (0, guards_1.isAPIDefinitionName)(definitionName)
9
10
  ? types_1.SchemaDefinitionInfoKind.API
10
- : definitionName.endsWith(types_1.SDS_SUFFIX_METHOD_ARGS)
11
+ : (0, guards_1.isAPIMethodArgsDefinitionName)(definitionName)
11
12
  ? types_1.SchemaDefinitionInfoKind.APIMethodArguments
12
- : definitionName.endsWith(types_1.SDS_SUFFIX_METHOD_RES)
13
+ : (0, guards_1.isAPIMethodResultDefinitionName)(definitionName)
13
14
  ? types_1.SchemaDefinitionInfoKind.APIMethodResult
14
15
  : types_1.SchemaDefinitionInfoKind.Type;
15
16
  const ref = (0, ref_1.buildSchemaDefinitionRef)(definitionName, schemaId);
@@ -20,7 +21,7 @@ function parseSchemaDefinitionInfo(definitionName, schemaId) {
20
21
  kind,
21
22
  name: definitionName,
22
23
  schemaId,
23
- interface: (0, substr_1.substr)(definitionName, 0, types_1.SDS_SUFFIX_API),
24
+ interface: (0, substr_1.substr)(definitionName, 0, legacy ? types_1._SDS_SUFFIX_API : types_1.SDS_SUFFIX_API),
24
25
  };
25
26
  case types_1.SchemaDefinitionInfoKind.APIMethodArguments:
26
27
  case types_1.SchemaDefinitionInfoKind.APIMethodResult:
@@ -36,10 +36,16 @@ interface SDIBase {
36
36
  ref: SchemaForgeDefinitionRef;
37
37
  kind: SchemaDefinitionInfoKind;
38
38
  }
39
- export declare const SDS_SUFFIX_API: string;
39
+ /** @deprecated */
40
+ export declare const _SDS_SUFFIX_API = "_InterfaceDeclaration";
41
+ /** @deprecated */
42
+ export declare const _SDS_SUFFIX_METHOD_ARGS = "_Args";
43
+ /** @deprecated */
44
+ export declare const _SDS_SUFFIX_METHOD_RES = "_Result";
45
+ export declare const SDS_SUFFIX_API = "__APIInterface";
40
46
  export declare const SDS_SUFFIX_MEMBER = "__APIMember";
41
- export declare const SDS_SUFFIX_METHOD_ARGS: string;
42
- export declare const SDS_SUFFIX_METHOD_RES: string;
47
+ export declare const SDS_SUFFIX_METHOD_ARGS = "__APIMethodArgs";
48
+ export declare const SDS_SUFFIX_METHOD_RES = "__APIMethodResult";
43
49
  export type APIInterfaceSDS = `${string}${typeof SDS_SUFFIX_API}`;
44
50
  export type APIMemberSDS = `${string}_${string}${typeof SDS_SUFFIX_MEMBER}`;
45
51
  export type APIMethodArgsSDS = `${string}_${string}${typeof SDS_SUFFIX_METHOD_ARGS}`;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/definition-info/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEzD;;GAEG;AACH,oBAAY,wBAAwB;IAChC,IAAI,IAAA;IACJ,GAAG,IAAA;IACH,eAAe,IAAA;IACf,kBAAkB,IAAA;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC1B,2BAA2B,GAC3B,mCAAmC,GACnC,yCAAyC,GACzC,sCAAsC,CAAC;AAE7C,MAAM,WAAW,2BAA4B,SAAQ,OAAO;IACxD,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mCAAoC,SAAQ,OAAO;IAChE,IAAI,EAAE,wBAAwB,CAAC,GAAG,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yCAA0C,SAAQ,OAAO;IACtE,IAAI,EAAE,wBAAwB,CAAC,kBAAkB,CAAC;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sCAAuC,SAAQ,OAAO;IACnE,IAAI,EAAE,wBAAwB,CAAC,eAAe,CAAC;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,OAAO;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,wBAAwB,CAAC;IAC9B,IAAI,EAAE,wBAAwB,CAAC;CAClC;AAID,eAAO,MAAM,cAAc,QAAkE,CAAC;AAC9F,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,sBAAsB,QAAmD,CAAC;AACvF,eAAO,MAAM,qBAAqB,QAAuD,CAAC;AAE1F,MAAM,MAAM,eAAe,GAAG,GAAG,MAAM,GAAG,OAAO,cAAc,EAAE,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,GAAG,MAAM,IAAI,MAAM,GAAG,OAAO,iBAAiB,EAAE,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GAAG,GAAG,MAAM,IAAI,MAAM,GAAG,OAAO,sBAAsB,EAAE,CAAC;AACrF,MAAM,MAAM,kBAAkB,GAAG,GAAG,MAAM,IAAI,MAAM,GAAG,OAAO,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/definition-info/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEzD;;GAEG;AACH,oBAAY,wBAAwB;IAChC,IAAI,IAAA;IACJ,GAAG,IAAA;IACH,eAAe,IAAA;IACf,kBAAkB,IAAA;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC1B,2BAA2B,GAC3B,mCAAmC,GACnC,yCAAyC,GACzC,sCAAsC,CAAC;AAE7C,MAAM,WAAW,2BAA4B,SAAQ,OAAO;IACxD,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mCAAoC,SAAQ,OAAO;IAChE,IAAI,EAAE,wBAAwB,CAAC,GAAG,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yCAA0C,SAAQ,OAAO;IACtE,IAAI,EAAE,wBAAwB,CAAC,kBAAkB,CAAC;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sCAAuC,SAAQ,OAAO;IACnE,IAAI,EAAE,wBAAwB,CAAC,eAAe,CAAC;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,OAAO;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,wBAAwB,CAAC;IAC9B,IAAI,EAAE,wBAAwB,CAAC;CAClC;AAED,kBAAkB;AAClB,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,kBAAkB;AAClB,eAAO,MAAM,uBAAuB,UAAU,CAAC;AAC/C,kBAAkB;AAClB,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAEhD,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,sBAAsB,oBAAoB,CAAC;AACxD,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG,GAAG,MAAM,GAAG,OAAO,cAAc,EAAE,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,GAAG,MAAM,IAAI,MAAM,GAAG,OAAO,iBAAiB,EAAE,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GAAG,GAAG,MAAM,IAAI,MAAM,GAAG,OAAO,sBAAsB,EAAE,CAAC;AACrF,MAAM,MAAM,kBAAkB,GAAG,GAAG,MAAM,IAAI,MAAM,GAAG,OAAO,qBAAqB,EAAE,CAAC"}
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SDS_SUFFIX_METHOD_RES = exports.SDS_SUFFIX_METHOD_ARGS = exports.SDS_SUFFIX_MEMBER = exports.SDS_SUFFIX_API = exports.SchemaDefinitionInfoKind = void 0;
4
- const process = require("node:process");
5
- const as_bool_1 = require("@tsofist/stem/lib/as-bool");
3
+ exports.SDS_SUFFIX_METHOD_RES = exports.SDS_SUFFIX_METHOD_ARGS = exports.SDS_SUFFIX_MEMBER = exports.SDS_SUFFIX_API = exports._SDS_SUFFIX_METHOD_RES = exports._SDS_SUFFIX_METHOD_ARGS = exports._SDS_SUFFIX_API = exports.SchemaDefinitionInfoKind = void 0;
6
4
  /**
7
5
  * Kind of schema definition information
8
6
  */
@@ -13,8 +11,13 @@ var SchemaDefinitionInfoKind;
13
11
  SchemaDefinitionInfoKind[SchemaDefinitionInfoKind["APIMethodResult"] = 2] = "APIMethodResult";
14
12
  SchemaDefinitionInfoKind[SchemaDefinitionInfoKind["APIMethodArguments"] = 3] = "APIMethodArguments";
15
13
  })(SchemaDefinitionInfoKind || (exports.SchemaDefinitionInfoKind = SchemaDefinitionInfoKind = {}));
16
- const LEGACY_DEFINITIONS = (0, as_bool_1.asBool)((process.env || {}).SF_LEGACY_DEFINITIONS); // todo?
17
- exports.SDS_SUFFIX_API = LEGACY_DEFINITIONS ? '_InterfaceDeclaration' : '__APIInterface';
14
+ /** @deprecated */
15
+ exports._SDS_SUFFIX_API = '_InterfaceDeclaration';
16
+ /** @deprecated */
17
+ exports._SDS_SUFFIX_METHOD_ARGS = '_Args';
18
+ /** @deprecated */
19
+ exports._SDS_SUFFIX_METHOD_RES = '_Result';
20
+ exports.SDS_SUFFIX_API = '__APIInterface';
18
21
  exports.SDS_SUFFIX_MEMBER = '__APIMember';
19
- exports.SDS_SUFFIX_METHOD_ARGS = LEGACY_DEFINITIONS ? '_Args' : '__APIMethodArgs';
20
- exports.SDS_SUFFIX_METHOD_RES = LEGACY_DEFINITIONS ? '_Result' : '__APIMethodResult';
22
+ exports.SDS_SUFFIX_METHOD_ARGS = '__APIMethodArgs';
23
+ exports.SDS_SUFFIX_METHOD_RES = '__APIMethodResult';
@@ -1 +1 @@
1
- {"version":3,"file":"generate-drafts.d.ts","sourceRoot":"","sources":["../../src/schema-generator/generate-drafts.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,eAAe,EAAkB,MAAM,0CAA0C,CAAC;AAmChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAW9C;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,YAAY;;;;;GAiCjE;AA2WD,UAAU,YAAa,SAAQ,kBAAkB;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC5B"}
1
+ {"version":3,"file":"generate-drafts.d.ts","sourceRoot":"","sources":["../../src/schema-generator/generate-drafts.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,eAAe,EAAkB,MAAM,0CAA0C,CAAC;AAmChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAW9C;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,YAAY;;;;;GAiCjE;AA6WD,UAAU,YAAa,SAAQ,kBAAkB;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC5B"}
@@ -138,6 +138,8 @@ function processExportDeclaration(statement, list, context) {
138
138
  }
139
139
  }
140
140
  function processAPIInterfaceDeclaration(statement, context) {
141
+ /** @deprecated */
142
+ const legacy = context.options.legacyDefinitions ?? false;
141
143
  const allowUseFallbackDescription = context.options.allowUseFallbackDescription;
142
144
  const definitionsMetaList = [];
143
145
  const interfaceName = (0, helpers_tsc_1.readNodeName)(statement);
@@ -164,8 +166,8 @@ function processAPIInterfaceDeclaration(statement, context) {
164
166
  })
165
167
  .join(', ');
166
168
  const resultTypeName = (0, helpers_tsc_1.readMemberTypeName)(method);
167
- const definitionNameArgs = (0, api_signature_1.buildAPIMethodArgsSDS)(interfaceName, memberName);
168
- const definitionNameResult = (0, api_signature_1.buildAPIMethodResultSDS)(interfaceName, memberName);
169
+ const definitionNameArgs = (0, api_signature_1.buildAPIMethodArgsSDS)(interfaceName, memberName, legacy);
170
+ const definitionNameResult = (0, api_signature_1.buildAPIMethodResultSDS)(interfaceName, memberName, legacy);
169
171
  const comment = `Method:${interfaceName}#${memberName}`;
170
172
  definitionsMetaList.push({
171
173
  name: memberName,
@@ -267,12 +269,12 @@ function processAPIInterfaceDeclaration(statement, context) {
267
269
  interfaceDeprecated && ` * @deprecated ${interfaceDeprecated}`,
268
270
  ` * @comment Interface:${interfaceName}`,
269
271
  ` */`,
270
- `export interface ${(0, api_signature_1.buildAPIInterfaceSDS)(interfaceName)}${interfaceGenericText} {`,
272
+ `export interface ${(0, api_signature_1.buildAPIInterfaceSDS)(interfaceName, legacy)}${interfaceGenericText} {`,
271
273
  membersText.stringify('\n'),
272
274
  `}`,
273
275
  ``,
274
276
  ]);
275
- context.registerDefinition(context.currentSourceFileName, (0, api_signature_1.buildAPIInterfaceSDS)(interfaceName));
277
+ context.registerDefinition(context.currentSourceFileName, (0, api_signature_1.buildAPIInterfaceSDS)(interfaceName, legacy));
276
278
  context.currentFileContent.push(interfaceText.stringify('\n'));
277
279
  }
278
280
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/schema-registry/registry.ts"],"names":[],"mappings":"AA6BA,OAAO,EACH,mBAAmB,EAEnB,0BAA0B,EAC7B,MAAM,SAAS,CAAC;AAsBjB;;;;GAIG;AACH,wBAAgB,yBAAyB,CACrC,OAAO,CAAC,EAAE,0BAA0B,GACrC,mBAAmB,CAkOrB"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/schema-registry/registry.ts"],"names":[],"mappings":"AA6BA,OAAO,EACH,mBAAmB,EAEnB,0BAA0B,EAC7B,MAAM,SAAS,CAAC;AAsBjB;;;;GAIG;AACH,wBAAgB,yBAAyB,CACrC,OAAO,CAAC,EAAE,0BAA0B,GACrC,mBAAmB,CAoOrB"}
@@ -41,6 +41,8 @@ const SFR_DEFAULT_OPTIONS = {
41
41
  * @see https://ajv.js.org/json-schema.html ajv
42
42
  */
43
43
  function createSchemaForgeRegistry(options) {
44
+ /** @deprecated */
45
+ const legacy = options?.legacyDefinitions ?? false;
44
46
  const engineOptions = { ...SFR_DEFAULT_OPTIONS, ...options?.engine };
45
47
  const useAdditionalFormats = options?.extendedVocabulary ?? true;
46
48
  const initialSchemas = engineOptions.schemas;
@@ -161,7 +163,7 @@ function createSchemaForgeRegistry(options) {
161
163
  function listDefinitions(predicate) {
162
164
  const result = [];
163
165
  mapDefinitions((name, schemaId, schema) => {
164
- const info = (0, parser_1.parseSchemaDefinitionInfo)(name, schemaId);
166
+ const info = (0, parser_1.parseSchemaDefinitionInfo)(name, schemaId, legacy);
165
167
  if (predicate === undefined || predicate(info, readSchemaKeywords(schema))) {
166
168
  result.push(info);
167
169
  }
@@ -88,7 +88,13 @@ export interface SchemaForgeRegistryOptions {
88
88
  * Use additional formats via ajv-formats
89
89
  *
90
90
  * @see https://ajv.js.org/packages/ajv-formats.html ajv-formats
91
+ * @default true
91
92
  */
92
93
  extendedVocabulary?: boolean;
94
+ /**
95
+ * @deprecated
96
+ * @default false
97
+ */
98
+ legacyDefinitions?: boolean;
93
99
  }
94
100
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema-registry/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema-registry/types.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -98,6 +98,11 @@ export interface ForgeSchemaOptions {
98
98
  * @see shrinkDefinitionName
99
99
  */
100
100
  readonly shrinkDefinitionNames?: boolean | ((definitionName: string) => undefined | NonEmptyString);
101
+ /**
102
+ * @deprecated
103
+ * @default false
104
+ */
105
+ readonly legacyDefinitions?: boolean;
101
106
  }
102
107
  export interface SchemaForgeMetadata {
103
108
  $id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsofist/schema-forge",
3
- "version": "3.1.1",
3
+ "version": "3.3.0",
4
4
  "description": "Generate JSON schema from TypeScript types",
5
5
  "author": "Andrew Berdnikov <tsofistgudmen@gmail.com>",
6
6
  "license": "LGPL-3.0",
@@ -1 +0,0 @@
1
- //# sourceMappingURL=traversal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"traversal.d.ts","sourceRoot":"","sources":["../../src/definition-info/traversal.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- "use strict";