@spinajs/orm 2.0.491 → 2.0.495

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/README.md +80 -80
  2. package/lib/cjs/builders.d.ts +1 -2
  3. package/lib/cjs/builders.d.ts.map +1 -1
  4. package/lib/cjs/builders.js +2 -0
  5. package/lib/cjs/builders.js.map +1 -1
  6. package/lib/cjs/decorators.d.ts +22 -0
  7. package/lib/cjs/decorators.d.ts.map +1 -1
  8. package/lib/cjs/decorators.js +29 -0
  9. package/lib/cjs/decorators.js.map +1 -1
  10. package/lib/cjs/descriptor.d.ts.map +1 -1
  11. package/lib/cjs/descriptor.js +2 -0
  12. package/lib/cjs/descriptor.js.map +1 -1
  13. package/lib/cjs/driver.d.ts +12 -0
  14. package/lib/cjs/driver.d.ts.map +1 -1
  15. package/lib/cjs/driver.js +12 -0
  16. package/lib/cjs/driver.js.map +1 -1
  17. package/lib/cjs/interfaces.d.ts +35 -24
  18. package/lib/cjs/interfaces.d.ts.map +1 -1
  19. package/lib/cjs/interfaces.js.map +1 -1
  20. package/lib/cjs/model.d.ts +26 -5
  21. package/lib/cjs/model.d.ts.map +1 -1
  22. package/lib/cjs/model.js +32 -9
  23. package/lib/cjs/model.js.map +1 -1
  24. package/lib/cjs/orm.d.ts.map +1 -1
  25. package/lib/cjs/orm.js +4 -1
  26. package/lib/cjs/orm.js.map +1 -1
  27. package/lib/cjs/relation-objects.d.ts +76 -163
  28. package/lib/cjs/relation-objects.d.ts.map +1 -1
  29. package/lib/cjs/relation-objects.js +223 -192
  30. package/lib/cjs/relation-objects.js.map +1 -1
  31. package/lib/cjs/schema-providers.d.ts +34 -0
  32. package/lib/cjs/schema-providers.d.ts.map +1 -1
  33. package/lib/cjs/schema-providers.js +59 -3
  34. package/lib/cjs/schema-providers.js.map +1 -1
  35. package/lib/cjs/schema.d.ts +20 -3
  36. package/lib/cjs/schema.d.ts.map +1 -1
  37. package/lib/cjs/schema.js +59 -9
  38. package/lib/cjs/schema.js.map +1 -1
  39. package/lib/cjs/snapshot.d.ts +1 -1
  40. package/lib/cjs/snapshot.d.ts.map +1 -1
  41. package/lib/cjs/snapshot.js +9 -2
  42. package/lib/cjs/snapshot.js.map +1 -1
  43. package/lib/mjs/builders.d.ts +1 -2
  44. package/lib/mjs/builders.d.ts.map +1 -1
  45. package/lib/mjs/builders.js +2 -0
  46. package/lib/mjs/builders.js.map +1 -1
  47. package/lib/mjs/decorators.d.ts +22 -0
  48. package/lib/mjs/decorators.d.ts.map +1 -1
  49. package/lib/mjs/decorators.js +28 -0
  50. package/lib/mjs/decorators.js.map +1 -1
  51. package/lib/mjs/descriptor.d.ts.map +1 -1
  52. package/lib/mjs/descriptor.js +2 -0
  53. package/lib/mjs/descriptor.js.map +1 -1
  54. package/lib/mjs/driver.d.ts +12 -0
  55. package/lib/mjs/driver.d.ts.map +1 -1
  56. package/lib/mjs/driver.js +12 -0
  57. package/lib/mjs/driver.js.map +1 -1
  58. package/lib/mjs/interfaces.d.ts +35 -24
  59. package/lib/mjs/interfaces.d.ts.map +1 -1
  60. package/lib/mjs/interfaces.js.map +1 -1
  61. package/lib/mjs/model.d.ts +26 -5
  62. package/lib/mjs/model.d.ts.map +1 -1
  63. package/lib/mjs/model.js +32 -9
  64. package/lib/mjs/model.js.map +1 -1
  65. package/lib/mjs/orm.d.ts.map +1 -1
  66. package/lib/mjs/orm.js +4 -1
  67. package/lib/mjs/orm.js.map +1 -1
  68. package/lib/mjs/relation-objects.d.ts +76 -163
  69. package/lib/mjs/relation-objects.d.ts.map +1 -1
  70. package/lib/mjs/relation-objects.js +225 -194
  71. package/lib/mjs/relation-objects.js.map +1 -1
  72. package/lib/mjs/schema-providers.d.ts +34 -0
  73. package/lib/mjs/schema-providers.d.ts.map +1 -1
  74. package/lib/mjs/schema-providers.js +59 -3
  75. package/lib/mjs/schema-providers.js.map +1 -1
  76. package/lib/mjs/schema.d.ts +20 -3
  77. package/lib/mjs/schema.d.ts.map +1 -1
  78. package/lib/mjs/schema.js +59 -9
  79. package/lib/mjs/schema.js.map +1 -1
  80. package/lib/mjs/snapshot.d.ts +1 -1
  81. package/lib/mjs/snapshot.d.ts.map +1 -1
  82. package/lib/mjs/snapshot.js +9 -2
  83. package/lib/mjs/snapshot.js.map +1 -1
  84. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  85. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  86. package/package.json +75 -73
@@ -1 +1 @@
1
- {"version":3,"file":"relation-objects.js","sourceRoot":"","sources":["../../src/relation-objects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relation-objects.js","sourceRoot":"","sources":["../../src/relation-objects.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Class } from '@spinajs/di';
2
2
  import { SchemaProvider } from '@spinajs/validation';
3
+ import { IModelDescriptor } from './interfaces.js';
3
4
  /**
4
5
  * Resolves an ORM model name to its column schema plus relations. A name → model
5
6
  * class map is built once at initialization (see `resolve`) and reused on every
@@ -9,5 +10,38 @@ export declare class ModelSchemaProvider extends SchemaProvider {
9
10
  protected Models: Map<string, Class<unknown>>;
10
11
  resolve(): void;
11
12
  getSchema(typeName: string): Record<string, unknown> | undefined;
13
+ /**
14
+ * The same set of columns as `getSchema`, but WITHOUT `required`, without the `@Hidden()`
15
+ * columns, and with the types this driver really returns (`descriptor.ResponseSchema`).
16
+ *
17
+ * A response is partial by nature: `dehydrateWithRelations({ skipUndefined: true })` drops
18
+ * fields the query did not load, and `include` decides which relations show up at all. The
19
+ * list of required columns describes an INSERT, not what goes out to the client - published
20
+ * on a response it breaks validation on the first row that has no password or no relation.
21
+ *
22
+ * @param typeName - the model class name
23
+ */
24
+ getResponseSchema(typeName: string): Record<string, unknown> | undefined;
25
+ /**
26
+ * The model's columns plus its relations as properties. `includeRequired` distinguishes
27
+ * the write contract (getSchema) from the read one (getResponseSchema).
28
+ *
29
+ * @param typeName - the model class name
30
+ * @param includeRequired - whether to include the list of required columns (write contract)
31
+ */
32
+ protected buildSchema(typeName: string, includeRequired: boolean): Record<string, unknown> | undefined;
33
+ /**
34
+ * The read schema off the descriptor. `Orm.reloadTableInfo` builds it alongside `Schema`;
35
+ * when it is absent (the model never got a connection, or the descriptor was assembled by
36
+ * hand in a test) we fall back to `Schema` and strip from it what a response never carries
37
+ * anyway - the `@Hidden()` columns. Describing a read with the write contract beats not
38
+ * describing it at all.
39
+ *
40
+ * @param descriptor - the model descriptor
41
+ */
42
+ protected responseColumns(descriptor: IModelDescriptor | undefined): {
43
+ properties?: Record<string, unknown>;
44
+ required?: string[];
45
+ } | undefined;
12
46
  }
13
47
  //# sourceMappingURL=schema-providers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-providers.d.ts","sourceRoot":"","sources":["../../src/schema-providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD;;;;GAIG;AACH,qBACa,mBAAoB,SAAQ,cAAc;IACrD,SAAS,CAAC,MAAM,8BAAqC;IAE9C,OAAO,IAAI,IAAI;IAMf,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;CAiCxE"}
1
+ {"version":3,"file":"schema-providers.d.ts","sourceRoot":"","sources":["../../src/schema-providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAInD;;;;GAIG;AACH,qBACa,mBAAoB,SAAQ,cAAc;IACrD,SAAS,CAAC,MAAM,8BAAqC;IAE9C,OAAO,IAAI,IAAI;IAMf,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAIvE;;;;;;;;;;OAUG;IACI,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAI/E;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IA0CtG;;;;;;;;OAQG;IACH,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,gBAAgB,GAAG,SAAS,GAAG;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS;CAmB/I"}
@@ -23,6 +23,30 @@ let ModelSchemaProvider = class ModelSchemaProvider extends SchemaProvider {
23
23
  }
24
24
  }
25
25
  getSchema(typeName) {
26
+ return this.buildSchema(typeName, true);
27
+ }
28
+ /**
29
+ * The same set of columns as `getSchema`, but WITHOUT `required`, without the `@Hidden()`
30
+ * columns, and with the types this driver really returns (`descriptor.ResponseSchema`).
31
+ *
32
+ * A response is partial by nature: `dehydrateWithRelations({ skipUndefined: true })` drops
33
+ * fields the query did not load, and `include` decides which relations show up at all. The
34
+ * list of required columns describes an INSERT, not what goes out to the client - published
35
+ * on a response it breaks validation on the first row that has no password or no relation.
36
+ *
37
+ * @param typeName - the model class name
38
+ */
39
+ getResponseSchema(typeName) {
40
+ return this.buildSchema(typeName, false);
41
+ }
42
+ /**
43
+ * The model's columns plus its relations as properties. `includeRequired` distinguishes
44
+ * the write contract (getSchema) from the read one (getResponseSchema).
45
+ *
46
+ * @param typeName - the model class name
47
+ * @param includeRequired - whether to include the list of required columns (write contract)
48
+ */
49
+ buildSchema(typeName, includeRequired) {
26
50
  const model = this.Models.get(typeName);
27
51
  if (!model) {
28
52
  return undefined;
@@ -32,14 +56,21 @@ let ModelSchemaProvider = class ModelSchemaProvider extends SchemaProvider {
32
56
  * to get proper descriptor from prototype chain
33
57
  */
34
58
  const descriptor = model.getModelDescriptor();
35
- const columns = descriptor?.Schema;
59
+ const columns = includeRequired ? descriptor?.Schema : this.responseColumns(descriptor);
36
60
  if (!columns || !columns.properties) {
37
61
  return undefined;
38
62
  }
63
+ // `@Hidden()` marks properties, not just columns - a hidden relation is dropped by
64
+ // `dehydrateWithRelations` exactly like a hidden column, so a read schema must not
65
+ // advertise it either. Columns are already filtered upstream (`buildModelJsonSchema`
66
+ // for `ResponseSchema`, `responseColumns` for the fallback); relations are added here,
67
+ // so they have to be filtered here. The write contract keeps them: a client may well
68
+ // send a relation the API never hands back.
69
+ const hiddenRelations = includeRequired ? new Set() : new Set(descriptor?.Hidden ?? []);
39
70
  const properties = { ...columns.properties };
40
71
  descriptor?.Relations?.forEach((relation, relationName) => {
41
72
  const target = relation?.TargetModel?.name;
42
- if (!target) {
73
+ if (!target || hiddenRelations.has(relationName)) {
43
74
  return;
44
75
  }
45
76
  const ref = { type: 'object', description: target };
@@ -47,11 +78,36 @@ let ModelSchemaProvider = class ModelSchemaProvider extends SchemaProvider {
47
78
  relation.Type !== undefined && TO_MANY_RELATION.has(relation.Type) ? { type: 'array', items: ref } : ref;
48
79
  });
49
80
  const schema = { type: 'object', properties };
50
- if (columns.required && columns.required.length > 0) {
81
+ if (includeRequired && columns.required && columns.required.length > 0) {
51
82
  schema.required = columns.required;
52
83
  }
53
84
  return schema;
54
85
  }
86
+ /**
87
+ * The read schema off the descriptor. `Orm.reloadTableInfo` builds it alongside `Schema`;
88
+ * when it is absent (the model never got a connection, or the descriptor was assembled by
89
+ * hand in a test) we fall back to `Schema` and strip from it what a response never carries
90
+ * anyway - the `@Hidden()` columns. Describing a read with the write contract beats not
91
+ * describing it at all.
92
+ *
93
+ * @param descriptor - the model descriptor
94
+ */
95
+ responseColumns(descriptor) {
96
+ const response = descriptor?.ResponseSchema;
97
+ if (response?.properties) {
98
+ return response;
99
+ }
100
+ const write = descriptor?.Schema;
101
+ if (!write?.properties) {
102
+ return undefined;
103
+ }
104
+ const hidden = new Set(descriptor?.Hidden ?? []);
105
+ if (hidden.size === 0) {
106
+ return write;
107
+ }
108
+ const properties = Object.fromEntries(Object.entries(write.properties).filter(([name]) => !hidden.has(name)));
109
+ return { properties };
110
+ }
55
111
  };
56
112
  ModelSchemaProvider = __decorate([
57
113
  Injectable(SchemaProvider)
@@ -1 +1 @@
1
- {"version":3,"file":"schema-providers.js","sourceRoot":"","sources":["../../src/schema-providers.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAS,EAAE,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEjD;;;;GAIG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,cAAc;IAAhD;;QACK,WAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IAyCvD,CAAC;IAvCQ,OAAO;QACZ,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAuB,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAEM,SAAS,CAAC,QAAgB;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACnB,CAAC;QAED;;;WAGG;QACH,MAAM,UAAU,GAAI,KAAa,CAAC,kBAAkB,EAAkC,CAAC;QACvF,MAAM,OAAO,GAAG,UAAU,EAAE,MAAM,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACpC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,UAAU,GAA4B,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACtE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC;YAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;YACpD,UAAU,CAAC,YAAY,CAAC;gBACtB,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7G,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAA4B,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACvE,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACrC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AA1CY,mBAAmB;IAD/B,UAAU,CAAC,cAAc,CAAC;GACd,mBAAmB,CA0C/B"}
1
+ {"version":3,"file":"schema-providers.js","sourceRoot":"","sources":["../../src/schema-providers.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,24 @@
1
1
  import { IModelDescriptor } from './interfaces.js';
2
2
  /**
3
- * Builds a JSON schema from a model's columns, stored on `descriptor.Schema` at model load.
4
- * `Ignore` columns are excluded and relations are omitted.
3
+ * Which side of the wire a model schema describes. `request` is what a client may SEND
4
+ * ( the model used as `@Body()` ), `response` is what the API hands BACK.
5
5
  */
6
- export declare function buildModelJsonSchema(descriptor: IModelDescriptor): any;
6
+ export type ModelSchemaKind = 'request' | 'response';
7
+ /**
8
+ * Builds a JSON schema from a model's columns, stored on `descriptor.Schema` /
9
+ * `descriptor.ResponseSchema` at model load. `Ignore` columns are excluded and relations
10
+ * are omitted.
11
+ *
12
+ * The two flavours differ in three ways, all of them facts about what a response IS:
13
+ * - `descriptor.Hidden` ( the model's `@Hidden()` properties ) is dropped: `dehydrate()` and
14
+ * `dehydrateWithRelations()` omit those columns unconditionally, so no response can
15
+ * ever carry them - rbac's User hides `Password`,
16
+ * - the driver may override a type it returns differently from what it accepts,
17
+ * - nothing is `required`: a response is partial by construction ( `skipUndefined`
18
+ * drops columns the query did not select ).
19
+ *
20
+ * @param descriptor - the model descriptor to describe
21
+ * @param kind - which contract to build, defaults to the write one
22
+ */
23
+ export declare function buildModelJsonSchema(descriptor: IModelDescriptor, kind?: ModelSchemaKind): any;
7
24
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAqBtE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,gBAAgB,GAAG,GAAG,CAmBtE"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AA0CtE;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,UAAU,CAAC;AAErD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,GAAE,eAA2B,GAAG,GAAG,CAqBzG"}
package/lib/mjs/schema.js CHANGED
@@ -1,5 +1,24 @@
1
1
  import { ColumnType } from './enums.js';
2
- /** SQL column type → JSON-schema shape; unlisted types fall back to `string`. */
2
+ /**
3
+ * SQL column type → JSON-schema shape; unlisted types fall back to `string`.
4
+ *
5
+ * The keys must be the strings a DRIVER puts in `IColumnDescriptor.Type`. Every driver
6
+ * stores the column's own `DATA_TYPE` verbatim ( see orm-mysql / orm-mssql `tableInfo` ),
7
+ * so a `ColumnType` member whose value does not spell the SQL type exactly the way the
8
+ * database reports it will never match, and the column silently falls back to `string`.
9
+ * That is why 'datetime' sits here next to `ColumnType.DATE_TIME` ( = 'dateTime' ), which
10
+ * neither MySQL nor MSSQL ever emits.
11
+ *
12
+ * Known remaining mismatches with mysql2's real output, left alone on purpose - correcting
13
+ * them changes an already-published schema for columns nobody has complained about:
14
+ * - `bit` arrives as a Buffer, not a number,
15
+ * - `set` arrives as a comma-separated string unless SetValueConverter is attached,
16
+ * - `blob` / `binary` / `varbinary` arrive as Buffers and fall through to `string`.
17
+ *
18
+ * The values here are what a client may SEND. Where the driver hands something else BACK -
19
+ * mysql2's stringified DECIMAL - that driver says so through `OrmDriver.ResponseSchemaTypes`
20
+ * rather than bending this shared map, which every driver reads.
21
+ */
3
22
  const SQL_TYPE_TO_SCHEMA = {
4
23
  [ColumnType.TINY_INTEGER]: { type: 'integer' },
5
24
  [ColumnType.SMALL_INTEGER]: { type: 'integer' },
@@ -13,39 +32,70 @@ const SQL_TYPE_TO_SCHEMA = {
13
32
  [ColumnType.BOOLEAN]: { type: 'boolean' },
14
33
  [ColumnType.DATE]: { type: 'string', format: 'date' },
15
34
  [ColumnType.DATE_TIME]: { type: 'string', format: 'date-time' },
35
+ // MySQL and MSSQL both report DATETIME as 'datetime'; ColumnType.DATE_TIME above never matches.
36
+ datetime: { type: 'string', format: 'date-time' },
16
37
  [ColumnType.TIMESTAMP]: { type: 'string', format: 'date-time' },
17
38
  [ColumnType.JSON]: { type: 'object' },
18
39
  [ColumnType.SET]: { type: 'array', items: { type: 'string' } },
19
40
  };
20
41
  /**
21
- * Builds a JSON schema from a model's columns, stored on `descriptor.Schema` at model load.
22
- * `Ignore` columns are excluded and relations are omitted.
42
+ * Builds a JSON schema from a model's columns, stored on `descriptor.Schema` /
43
+ * `descriptor.ResponseSchema` at model load. `Ignore` columns are excluded and relations
44
+ * are omitted.
45
+ *
46
+ * The two flavours differ in three ways, all of them facts about what a response IS:
47
+ * - `descriptor.Hidden` ( the model's `@Hidden()` properties ) is dropped: `dehydrate()` and
48
+ * `dehydrateWithRelations()` omit those columns unconditionally, so no response can
49
+ * ever carry them - rbac's User hides `Password`,
50
+ * - the driver may override a type it returns differently from what it accepts,
51
+ * - nothing is `required`: a response is partial by construction ( `skipUndefined`
52
+ * drops columns the query did not select ).
53
+ *
54
+ * @param descriptor - the model descriptor to describe
55
+ * @param kind - which contract to build, defaults to the write one
23
56
  */
24
- export function buildModelJsonSchema(descriptor) {
57
+ export function buildModelJsonSchema(descriptor, kind = 'request') {
25
58
  const properties = {};
26
59
  const required = [];
60
+ const hidden = kind === 'response' ? new Set(descriptor.Hidden ?? []) : new Set();
61
+ const overrides = kind === 'response' ? driverResponseTypes(descriptor) : {};
27
62
  for (const col of descriptor.Columns ?? []) {
28
- if (!col || col.Ignore || !col.Name) {
63
+ if (!col || col.Ignore || !col.Name || hidden.has(col.Name)) {
29
64
  continue;
30
65
  }
31
- properties[col.Name] = columnToSchema(col);
66
+ properties[col.Name] = columnToSchema(col, overrides);
32
67
  if (!col.Nullable && !col.AutoIncrement) {
33
68
  required.push(col.Name);
34
69
  }
35
70
  }
36
71
  const schema = { type: 'object', properties };
37
- if (required.length > 0) {
72
+ if (kind === 'request' && required.length > 0) {
38
73
  schema.required = required;
39
74
  }
40
75
  return schema;
41
76
  }
77
+ /**
78
+ * Per-SQL-type response overrides declared by the driver this model is bound to, or an
79
+ * empty map for a model with no connection yet ( then the shared defaults stand ).
80
+ *
81
+ * Read structurally rather than through the OrmDriver type: this module is imported by
82
+ * the descriptor building path and must not pull the driver module in with it.
83
+ *
84
+ * @param descriptor - the model descriptor whose driver is asked
85
+ */
86
+ function driverResponseTypes(descriptor) {
87
+ return descriptor.Driver?.ResponseSchemaTypes ?? {};
88
+ }
42
89
  /**
43
90
  * Maps a column descriptor to a JSON-schema property based on its SQL type.
44
91
  * Adds `maxLength`, `description` and `nullable` when the column has them.
92
+ *
93
+ * @param col - column to describe
94
+ * @param overrides - per-type shapes that win over the shared map ( response flavour only )
45
95
  */
46
- function columnToSchema(col) {
96
+ function columnToSchema(col, overrides = {}) {
47
97
  const converter = col.Converter?.constructor?.name;
48
- const schema = { ...(SQL_TYPE_TO_SCHEMA[col.Type] ?? { type: 'string' }) };
98
+ const schema = { ...(overrides[col.Type] ?? SQL_TYPE_TO_SCHEMA[col.Type] ?? { type: 'string' }) };
49
99
  if (converter === 'BooleanValueConverter') {
50
100
  schema.type = 'boolean';
51
101
  delete schema.format;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ export declare const UNCOPYABLE: unique symbol;
29
29
  *
30
30
  * Immutable values (primitives, luxon `DateTime`) are returned as-is. Everything the ORM can
31
31
  * put in a column and that can be mutated in place — `Buffer` (binary/UUID columns), `Date`,
32
- * arrays and plain objects (JSON columns) — is copied.
32
+ * plain arrays and plain objects (JSON columns) — is copied.
33
33
  *
34
34
  * A mutable instance of a class the ORM does not own cannot be copied safely: cloning it
35
35
  * could break its invariants. Such a value is replaced by {@link UNCOPYABLE} unless its
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/snapshot.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;CACnC;AAED,wBAAgB,cAAc,IAAI,cAAc,CAK/C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,eAA4C,CAAC;AAEpE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CA+BzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAoClG;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBhH"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/snapshot.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;CACnC;AAED,wBAAgB,cAAc,IAAI,cAAc,CAK/C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,eAA4C,CAAC;AAEpE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAsCzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAoClG;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBhH"}
@@ -22,7 +22,7 @@ export const UNCOPYABLE = Symbol('spinajs.orm.snapshot.uncopyable');
22
22
  *
23
23
  * Immutable values (primitives, luxon `DateTime`) are returned as-is. Everything the ORM can
24
24
  * put in a column and that can be mutated in place — `Buffer` (binary/UUID columns), `Date`,
25
- * arrays and plain objects (JSON columns) — is copied.
25
+ * plain arrays and plain objects (JSON columns) — is copied.
26
26
  *
27
27
  * A mutable instance of a class the ORM does not own cannot be copied safely: cloning it
28
28
  * could break its invariants. Such a value is replaced by {@link UNCOPYABLE} unless its
@@ -51,7 +51,14 @@ export function snapshotValue(value, converter) {
51
51
  if (value instanceof Date) {
52
52
  return new Date(value.getTime());
53
53
  }
54
- if (Array.isArray(value) || _.isPlainObject(value)) {
54
+ // `Array.isArray` is true for SUBCLASSES of Array too, and `_.cloneDeep` reconstructs those with
55
+ // `new value.constructor()` — no arguments. A subclass whose constructor requires them throws
56
+ // from inside lodash, out of a stack that names neither the model nor the column. The ORM's own
57
+ // `Relation` is exactly such a subclass ( it reads `TargetModel` off its second parameter ), and
58
+ // `@Filterable` on a relation property is enough to route one through here — see
59
+ // `ModelBase.snapshotColumns()`. Only a genuine plain array is safe to clone; anything else is an
60
+ // instance of a class the ORM does not own, which is what UNCOPYABLE is for.
61
+ if ((Array.isArray(value) && Object.getPrototypeOf(value) === Array.prototype) || _.isPlainObject(value)) {
55
62
  return _.cloneDeep(value);
56
63
  }
57
64
  return UNCOPYABLE;
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/snapshot.ts"],"names":[],"mappings":"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"}