@zmdb/schema 1.0.0-beta.1

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 (68) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +30 -0
  3. package/dist/custom-types/index.d.ts +41 -0
  4. package/dist/custom-types/index.d.ts.map +1 -0
  5. package/dist/custom-types/index.js +32 -0
  6. package/dist/custom-types/index.js.map +1 -0
  7. package/dist/derive/index.d.ts +122 -0
  8. package/dist/derive/index.d.ts.map +1 -0
  9. package/dist/derive/index.js +13 -0
  10. package/dist/derive/index.js.map +1 -0
  11. package/dist/derive/query.d.ts +62 -0
  12. package/dist/derive/query.d.ts.map +1 -0
  13. package/dist/derive/query.js +18 -0
  14. package/dist/derive/query.js.map +1 -0
  15. package/dist/dto/index.d.ts +224 -0
  16. package/dist/dto/index.d.ts.map +1 -0
  17. package/dist/dto/index.js +118 -0
  18. package/dist/dto/index.js.map +1 -0
  19. package/dist/entity-modeling/index.d.ts +12 -0
  20. package/dist/entity-modeling/index.d.ts.map +1 -0
  21. package/dist/entity-modeling/index.js +28 -0
  22. package/dist/entity-modeling/index.js.map +1 -0
  23. package/dist/index.d.ts +151 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +84 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/ir/index.d.ts +374 -0
  28. package/dist/ir/index.d.ts.map +1 -0
  29. package/dist/ir/index.js +735 -0
  30. package/dist/ir/index.js.map +1 -0
  31. package/dist/ir/validation-shape.d.ts +46 -0
  32. package/dist/ir/validation-shape.d.ts.map +1 -0
  33. package/dist/ir/validation-shape.js +130 -0
  34. package/dist/ir/validation-shape.js.map +1 -0
  35. package/dist/ir/vocabulary.d.ts +54 -0
  36. package/dist/ir/vocabulary.d.ts.map +1 -0
  37. package/dist/ir/vocabulary.js +51 -0
  38. package/dist/ir/vocabulary.js.map +1 -0
  39. package/dist/naming/index.d.ts +26 -0
  40. package/dist/naming/index.d.ts.map +1 -0
  41. package/dist/naming/index.js +147 -0
  42. package/dist/naming/index.js.map +1 -0
  43. package/dist/openapi/index.d.ts +57 -0
  44. package/dist/openapi/index.d.ts.map +1 -0
  45. package/dist/openapi/index.js +98 -0
  46. package/dist/openapi/index.js.map +1 -0
  47. package/dist/relations/index.d.ts +23 -0
  48. package/dist/relations/index.d.ts.map +1 -0
  49. package/dist/relations/index.js +98 -0
  50. package/dist/relations/index.js.map +1 -0
  51. package/dist/tags/index.d.ts +261 -0
  52. package/dist/tags/index.d.ts.map +1 -0
  53. package/dist/tags/index.js +64 -0
  54. package/dist/tags/index.js.map +1 -0
  55. package/package.json +82 -0
  56. package/src/custom-types/index.ts +59 -0
  57. package/src/derive/index.ts +224 -0
  58. package/src/derive/query.ts +128 -0
  59. package/src/dto/index.ts +395 -0
  60. package/src/entity-modeling/index.ts +33 -0
  61. package/src/index.ts +263 -0
  62. package/src/ir/index.ts +1085 -0
  63. package/src/ir/validation-shape.ts +145 -0
  64. package/src/ir/vocabulary.ts +56 -0
  65. package/src/naming/index.ts +159 -0
  66. package/src/openapi/index.ts +133 -0
  67. package/src/relations/index.ts +134 -0
  68. package/src/tags/index.ts +284 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ir/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { type Constraints, type ObjectIR, type TypeIR } from './index.js';
2
+ /**
3
+ * What a value at this position was supposed to be, as the `expected` field of a
4
+ * `ValidationIssue`. Structural only — a bound that a value of the right *shape*
5
+ * violated gets its own issue via `expectedForConstraint`.
6
+ */
7
+ export declare function expectedOf(node: TypeIR): string;
8
+ export type ConstraintKeyword = keyof Constraints;
9
+ /** `minLength`, `3` → `'minLength 3'`. One spelling, used by both walks. */
10
+ export declare function expectedForConstraint(keyword: ConstraintKeyword, value: number | string): string;
11
+ /** The `message` of an issue is always derived from its `expected`. */
12
+ export declare function messageFor(expected: string): string;
13
+ export interface DiscriminantArm {
14
+ readonly value: string | number | boolean;
15
+ readonly node: ObjectIR;
16
+ }
17
+ export interface Discriminant {
18
+ readonly key: string;
19
+ readonly arms: readonly DiscriminantArm[];
20
+ }
21
+ /**
22
+ * The property to switch on for a union of objects, when there is one.
23
+ *
24
+ * A union is discriminated when every member is an object and some property is
25
+ * present, required and a distinct literal on all of them. The reflection deliberately
26
+ * records no strategy (`reflect/SPEC.md` §10) — it says "this property is a literal",
27
+ * and choosing what to do about that is this function's job.
28
+ *
29
+ * Worth doing for more than speed. Without a discriminant, a failing union can only
30
+ * say "none of these arms matched" at the union's own path; with one, the failure is
31
+ * reported *inside* the arm the value was clearly trying to be, so `input.radius` gets
32
+ * named instead of the whole shape.
33
+ *
34
+ * The first qualifying key in the first member's declaration order wins, so the answer
35
+ * does not depend on property iteration order elsewhere.
36
+ */
37
+ export declare function discriminantOf(members: readonly TypeIR[]): Discriminant | undefined;
38
+ /** `'circle' | 'square'`, for the message when no arm's discriminant matched. */
39
+ export declare function expectedForDiscriminant(discriminant: Discriminant): string;
40
+ /**
41
+ * Whether excess properties are even defined for this node. A value can satisfy
42
+ * several arms of an undiscriminated union, so "which arm's property list is the
43
+ * declared one" has no answer there and neither walk checks it — see `emit/SPEC.md`.
44
+ */
45
+ export declare function hasExcessCheck(node: TypeIR): boolean;
46
+ //# sourceMappingURL=validation-shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-shape.d.ts","sourceRoot":"","sources":["../../src/ir/validation-shape.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAE1E;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2B/C;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC;AAElD,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEhG;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,eAAe,EAAE,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,GAAG,SAAS,CAmCnF;AAED,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYpD"}
@@ -0,0 +1,130 @@
1
+ // The facts about an IR node that the emitted code and the runtime walker must agree on.
2
+ //
3
+ // REQ-AV-4 asks for identical accept/reject sets *and* identical issue paths from the
4
+ // emitted validator and the fallback walker. That is a property of two independent
5
+ // walks over the same IR, so anything both of them decide lives here rather than being
6
+ // written twice: what an `expected` string reads, and whether a union has a
7
+ // discriminant worth switching on.
8
+ //
9
+ // Nothing in this file builds JavaScript, so the runtime path can import it without
10
+ // dragging the emitter into a browser bundle.
11
+ import {} from './index.js';
12
+ /**
13
+ * What a value at this position was supposed to be, as the `expected` field of a
14
+ * `ValidationIssue`. Structural only — a bound that a value of the right *shape*
15
+ * violated gets its own issue via `expectedForConstraint`.
16
+ */
17
+ export function expectedOf(node) {
18
+ switch (node.kind) {
19
+ case 'scalar':
20
+ return node.scalar === 'date' ? 'Date' : node.scalar;
21
+ case 'literal':
22
+ return JSON.stringify(node.value);
23
+ case 'null':
24
+ return 'null';
25
+ case 'undefined':
26
+ return 'undefined';
27
+ case 'unknown':
28
+ return 'anything';
29
+ case 'union':
30
+ return node.members.map(expectedOf).join(' | ');
31
+ case 'array':
32
+ return 'array';
33
+ case 'tuple':
34
+ return `tuple of length ${node.elements.length}`;
35
+ case 'object':
36
+ return node.name ?? 'object';
37
+ case 'ref':
38
+ return node.name;
39
+ case 'unsupported':
40
+ // Reachable only through a bug: the emitter refuses an `unsupported` node
41
+ // before any issue text is needed (plan D4). Naming it beats `undefined`.
42
+ return `an unsupported type (${node.reason})`;
43
+ }
44
+ }
45
+ /** `minLength`, `3` → `'minLength 3'`. One spelling, used by both walks. */
46
+ export function expectedForConstraint(keyword, value) {
47
+ return `${keyword} ${value}`;
48
+ }
49
+ /** The `message` of an issue is always derived from its `expected`. */
50
+ export function messageFor(expected) {
51
+ return `expected ${expected}`;
52
+ }
53
+ /**
54
+ * The property to switch on for a union of objects, when there is one.
55
+ *
56
+ * A union is discriminated when every member is an object and some property is
57
+ * present, required and a distinct literal on all of them. The reflection deliberately
58
+ * records no strategy (`reflect/SPEC.md` §10) — it says "this property is a literal",
59
+ * and choosing what to do about that is this function's job.
60
+ *
61
+ * Worth doing for more than speed. Without a discriminant, a failing union can only
62
+ * say "none of these arms matched" at the union's own path; with one, the failure is
63
+ * reported *inside* the arm the value was clearly trying to be, so `input.radius` gets
64
+ * named instead of the whole shape.
65
+ *
66
+ * The first qualifying key in the first member's declaration order wins, so the answer
67
+ * does not depend on property iteration order elsewhere.
68
+ */
69
+ export function discriminantOf(members) {
70
+ if (members.length < 2)
71
+ return undefined;
72
+ const objects = [];
73
+ for (const member of members) {
74
+ if (member.kind !== 'object')
75
+ return undefined;
76
+ objects.push(member);
77
+ }
78
+ const first = objects[0];
79
+ if (!first)
80
+ return undefined;
81
+ for (const candidate of first.properties) {
82
+ if (candidate.optional || candidate.type.kind !== 'literal')
83
+ continue;
84
+ const arms = [];
85
+ const seen = new Set();
86
+ let usable = true;
87
+ for (const object of objects) {
88
+ const property = object.properties.find(p => p.name === candidate.name);
89
+ if (!property || property.optional || property.type.kind !== 'literal') {
90
+ usable = false;
91
+ break;
92
+ }
93
+ // `JSON.stringify` rather than the raw value so `1` and `'1'` are two arms
94
+ // rather than one collision — the emitted switch compares with `===`.
95
+ const key = JSON.stringify(property.type.value);
96
+ if (seen.has(key)) {
97
+ usable = false;
98
+ break;
99
+ }
100
+ seen.add(key);
101
+ arms.push({ value: property.type.value, node: object });
102
+ }
103
+ if (usable)
104
+ return { key: candidate.name, arms };
105
+ }
106
+ return undefined;
107
+ }
108
+ /** `'circle' | 'square'`, for the message when no arm's discriminant matched. */
109
+ export function expectedForDiscriminant(discriminant) {
110
+ return discriminant.arms.map(arm => JSON.stringify(arm.value)).join(' | ');
111
+ }
112
+ /**
113
+ * Whether excess properties are even defined for this node. A value can satisfy
114
+ * several arms of an undiscriminated union, so "which arm's property list is the
115
+ * declared one" has no answer there and neither walk checks it — see `emit/SPEC.md`.
116
+ */
117
+ export function hasExcessCheck(node) {
118
+ switch (node.kind) {
119
+ case 'object':
120
+ case 'ref':
121
+ case 'array':
122
+ case 'tuple':
123
+ return true;
124
+ case 'union':
125
+ return discriminantOf(node.members) !== undefined;
126
+ default:
127
+ return false;
128
+ }
129
+ }
130
+ //# sourceMappingURL=validation-shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-shape.js","sourceRoot":"","sources":["../../src/ir/validation-shape.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * `ValidationRule.kind` is an open `string`, so this is the set any back-end
3
+ * interprets rather than the set a consumer may write. Anything else is a named
4
+ * custom rule and lands in `ColumnIR.rules`.
5
+ */
6
+ export declare const KNOWN_CONSTRAINT_KINDS: readonly ['minimum', 'maximum', 'minLength', 'maxLength', 'pattern'];
7
+ export type ConstraintKind = (typeof KNOWN_CONSTRAINT_KINDS)[number];
8
+ /**
9
+ * The tag vocabulary as data: **IR field → the tag name the reflection recognises**.
10
+ * `../tags` is types-only and must stay that way, so the reflection cannot import the
11
+ * tags themselves. It matches the escaped unique-symbol name the checker reports
12
+ * (`__@zmdbSerial@1`), except for `Ext`'s frozen structural `__zmdbExt` marker.
13
+ *
14
+ * Keyed by the IR field rather than by the tag's public name because that is the
15
+ * mapping every consumer actually wants, and because keeping it in one table is what
16
+ * lets `vocabulary.type-test.ts` prove the two vocabularies line up. A tag added to
17
+ * `../tags` without an entry here is invisible to the reflection, which is precisely
18
+ * the silent-gap failure the whole IR exists to prevent.
19
+ */
20
+ export declare const TAG_NAMES: {
21
+ readonly table: 'zmdbTable';
22
+ readonly ftsTable: 'zmdbFts';
23
+ readonly shardKey: 'zmdbShardKey';
24
+ readonly sortKey: 'zmdbSortKey';
25
+ readonly rowstore: 'zmdbRowstore';
26
+ readonly softDelete: 'zmdbSoftDelete';
27
+ readonly sql: 'zmdbSqlType';
28
+ readonly extension: 'zmdbExt';
29
+ readonly primaryKey: 'zmdbPrimaryKey';
30
+ readonly serial: 'zmdbSerial';
31
+ readonly unique: 'zmdbUnique';
32
+ readonly hasDefault: 'zmdbDefault';
33
+ readonly sensitive: 'zmdbSensitive';
34
+ readonly references: 'zmdbReferences';
35
+ readonly onDelete: 'zmdbOnDelete';
36
+ readonly onUpdate: 'zmdbOnUpdate';
37
+ readonly foreignKeys: 'zmdbForeignKey';
38
+ readonly length: 'zmdbLength';
39
+ readonly precision: 'zmdbNumeric';
40
+ readonly codec: 'zmdbCodec';
41
+ readonly wire: 'zmdbWire';
42
+ readonly relation: 'zmdbRelation';
43
+ readonly minimum: 'zmdbMin';
44
+ readonly maximum: 'zmdbMax';
45
+ readonly minLength: 'zmdbMinLength';
46
+ readonly maxLength: 'zmdbMaxLength';
47
+ readonly pattern: 'zmdbPattern';
48
+ readonly rules: 'zmdbRule';
49
+ readonly protoField: 'zmdbProtoField';
50
+ readonly protoScalar: 'zmdbProtoScalar';
51
+ };
52
+ /** An IR field a tag can set. */
53
+ export type TagField = keyof typeof TAG_NAMES;
54
+ //# sourceMappingURL=vocabulary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vocabulary.d.ts","sourceRoot":"","sources":["../../src/ir/vocabulary.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,YAAI,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;AAE3G,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS;aACpB,KAAK,EAAE,WAAW;aAClB,QAAQ,EAAE,SAAS;aACnB,QAAQ,EAAE,cAAc;aACxB,OAAO,EAAE,aAAa;aACtB,QAAQ,EAAE,cAAc;aACxB,UAAU,EAAE,gBAAgB;aAC5B,GAAG,EAAE,aAAa;aAClB,SAAS,EAAE,SAAS;aACpB,UAAU,EAAE,gBAAgB;aAC5B,MAAM,EAAE,YAAY;aACpB,MAAM,EAAE,YAAY;aACpB,UAAU,EAAE,aAAa;aACzB,SAAS,EAAE,eAAe;aAC1B,UAAU,EAAE,gBAAgB;aAC5B,QAAQ,EAAE,cAAc;aACxB,QAAQ,EAAE,cAAc;aACxB,WAAW,EAAE,gBAAgB;aAC7B,MAAM,EAAE,YAAY;aACpB,SAAS,EAAE,aAAa;aACxB,KAAK,EAAE,WAAW;aAClB,IAAI,EAAE,UAAU;aAChB,QAAQ,EAAE,cAAc;aACxB,OAAO,EAAE,SAAS;aAClB,OAAO,EAAE,SAAS;aAClB,SAAS,EAAE,eAAe;aAC1B,SAAS,EAAE,eAAe;aAC1B,OAAO,EAAE,aAAa;aACtB,KAAK,EAAE,UAAU;aACjB,UAAU,EAAE,gBAAgB;aAC5B,WAAW,EAAE,iBAAiB;CACtB,CAAC;AAEX,iCAAiC;AACjC,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,SAAS,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * `ValidationRule.kind` is an open `string`, so this is the set any back-end
3
+ * interprets rather than the set a consumer may write. Anything else is a named
4
+ * custom rule and lands in `ColumnIR.rules`.
5
+ */
6
+ export const KNOWN_CONSTRAINT_KINDS = ['minimum', 'maximum', 'minLength', 'maxLength', 'pattern'];
7
+ /**
8
+ * The tag vocabulary as data: **IR field → the tag name the reflection recognises**.
9
+ * `../tags` is types-only and must stay that way, so the reflection cannot import the
10
+ * tags themselves. It matches the escaped unique-symbol name the checker reports
11
+ * (`__@zmdbSerial@1`), except for `Ext`'s frozen structural `__zmdbExt` marker.
12
+ *
13
+ * Keyed by the IR field rather than by the tag's public name because that is the
14
+ * mapping every consumer actually wants, and because keeping it in one table is what
15
+ * lets `vocabulary.type-test.ts` prove the two vocabularies line up. A tag added to
16
+ * `../tags` without an entry here is invisible to the reflection, which is precisely
17
+ * the silent-gap failure the whole IR exists to prevent.
18
+ */
19
+ export const TAG_NAMES = {
20
+ table: 'zmdbTable',
21
+ ftsTable: 'zmdbFts',
22
+ shardKey: 'zmdbShardKey',
23
+ sortKey: 'zmdbSortKey',
24
+ rowstore: 'zmdbRowstore',
25
+ softDelete: 'zmdbSoftDelete',
26
+ sql: 'zmdbSqlType',
27
+ extension: 'zmdbExt',
28
+ primaryKey: 'zmdbPrimaryKey',
29
+ serial: 'zmdbSerial',
30
+ unique: 'zmdbUnique',
31
+ hasDefault: 'zmdbDefault',
32
+ sensitive: 'zmdbSensitive',
33
+ references: 'zmdbReferences',
34
+ onDelete: 'zmdbOnDelete',
35
+ onUpdate: 'zmdbOnUpdate',
36
+ foreignKeys: 'zmdbForeignKey',
37
+ length: 'zmdbLength',
38
+ precision: 'zmdbNumeric',
39
+ codec: 'zmdbCodec',
40
+ wire: 'zmdbWire',
41
+ relation: 'zmdbRelation',
42
+ minimum: 'zmdbMin',
43
+ maximum: 'zmdbMax',
44
+ minLength: 'zmdbMinLength',
45
+ maxLength: 'zmdbMaxLength',
46
+ pattern: 'zmdbPattern',
47
+ rules: 'zmdbRule',
48
+ protoField: 'zmdbProtoField',
49
+ protoScalar: 'zmdbProtoScalar',
50
+ };
51
+ //# sourceMappingURL=vocabulary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../../src/ir/vocabulary.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;AAI3G;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,cAAc;IACxB,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,cAAc;IACxB,UAAU,EAAE,gBAAgB;IAC5B,GAAG,EAAE,aAAa;IAClB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,UAAU,EAAE,aAAa;IACzB,SAAS,EAAE,eAAe;IAC1B,UAAU,EAAE,gBAAgB;IAC5B,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,cAAc;IACxB,WAAW,EAAE,gBAAgB;IAC7B,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,aAAa;IACxB,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,cAAc;IACxB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,UAAU;IACjB,UAAU,EAAE,gBAAgB;IAC5B,WAAW,EAAE,iBAAiB;CACtB,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * A build-time mapping from declared TypeScript names to physical SQL names.
3
+ *
4
+ * The reflector calls these functions once and stores their answers in `SchemaIR`.
5
+ * Query compilation and row handling never receive a strategy.
6
+ */
7
+ export interface NamingStrategy {
8
+ readonly column?: (property: string, context: {
9
+ readonly table: string;
10
+ }) => string;
11
+ readonly table?: (declared: string) => string;
12
+ readonly index?: (table: string, columns: readonly string[], unique: boolean) => string;
13
+ }
14
+ export type NamingStrategyName = 'snake_case' | 'snake_case_plural';
15
+ export type NamingStrategyConfig = NamingStrategy | NamingStrategyName | undefined;
16
+ export declare const snakeCase: NamingStrategy;
17
+ export declare const snakeCasePlural: NamingStrategy;
18
+ /** Resolve a config spelling once, before reflection begins. */
19
+ export declare function resolveNaming(config: NamingStrategyConfig): NamingStrategy;
20
+ /**
21
+ * Singularize each physical-name word through the repository's explicit rule set and
22
+ * PascalCase the result. The physical table remains on `Table<'...'>`; this name is only
23
+ * the generated TypeScript identifier.
24
+ */
25
+ export declare function singularPascalCase(value: string): string;
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/naming/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;IACpF,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;CACzF;AAED,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,mBAAmB,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,kBAAkB,GAAG,SAAS,CAAC;AAsEnF,eAAO,MAAM,SAAS,EAAE,cAItB,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,cAK5B,CAAC;AAIH,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAM1E;AA0CD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMxD"}
@@ -0,0 +1,147 @@
1
+ const IRREGULAR_PLURALS = new Map([
2
+ ['child', 'children'],
3
+ ['index', 'indices'],
4
+ ['man', 'men'],
5
+ ['matrix', 'matrices'],
6
+ ['person', 'people'],
7
+ ['woman', 'women'],
8
+ ]);
9
+ const IRREGULAR_PLURAL_FORMS = new Set(IRREGULAR_PLURALS.values());
10
+ const UNINFLECTED = new Set([
11
+ 'data',
12
+ 'equipment',
13
+ 'fish',
14
+ 'information',
15
+ 'metadata',
16
+ 'news',
17
+ 'series',
18
+ 'sheep',
19
+ 'species',
20
+ ]);
21
+ function toSnakeCase(value) {
22
+ return value
23
+ .replaceAll(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')
24
+ .replaceAll(/([a-z\d])([A-Z])/g, '$1_$2')
25
+ .replaceAll(/[-\s]+/g, '_')
26
+ .toLowerCase();
27
+ }
28
+ function pluralizeWord(word) {
29
+ const lower = word.toLowerCase();
30
+ if (word.length === 0 || UNINFLECTED.has(lower) || IRREGULAR_PLURAL_FORMS.has(lower))
31
+ return word;
32
+ const irregular = IRREGULAR_PLURALS.get(lower);
33
+ if (irregular !== undefined)
34
+ return irregular;
35
+ // Keep an already-plural declaration stable. The guarded endings are singular
36
+ // words that happen to end in `s` and still need the explicit `-es` rule below.
37
+ if (lower.endsWith('s') &&
38
+ !lower.endsWith('ss') &&
39
+ !lower.endsWith('us') &&
40
+ !lower.endsWith('is') &&
41
+ !lower.endsWith('as') &&
42
+ !lower.endsWith('os') &&
43
+ lower !== 'status' &&
44
+ lower !== 'alias') {
45
+ return word;
46
+ }
47
+ if (/[^aeiou]y$/i.test(word))
48
+ return `${word.slice(0, -1)}ies`;
49
+ if (/(?:s|x|z|ch|sh)$/i.test(word))
50
+ return `${word}es`;
51
+ return `${word}s`;
52
+ }
53
+ function pluralizeTable(value) {
54
+ const words = value.split('_');
55
+ const last = words.at(-1);
56
+ if (last === undefined)
57
+ return value;
58
+ words[words.length - 1] = pluralizeWord(last);
59
+ return words.join('_');
60
+ }
61
+ function indexName(table, columns, unique) {
62
+ return `${toSnakeCase(table)}_${columns.map(toSnakeCase).join('_')}_${unique ? 'uniq' : 'idx'}`;
63
+ }
64
+ export const snakeCase = Object.freeze({
65
+ column: toSnakeCase,
66
+ table: toSnakeCase,
67
+ index: indexName,
68
+ });
69
+ export const snakeCasePlural = Object.freeze({
70
+ column: toSnakeCase,
71
+ table: (declared) => pluralizeTable(toSnakeCase(declared)),
72
+ index: (table, columns, unique) => indexName(pluralizeTable(toSnakeCase(table)), columns, unique),
73
+ });
74
+ const IDENTITY = Object.freeze({});
75
+ /** Resolve a config spelling once, before reflection begins. */
76
+ export function resolveNaming(config) {
77
+ if (config === undefined)
78
+ return IDENTITY;
79
+ if (typeof config !== 'string')
80
+ return config;
81
+ if (config === 'snake_case')
82
+ return snakeCase;
83
+ if (config === 'snake_case_plural')
84
+ return snakeCasePlural;
85
+ throw new TypeError(`Unknown naming strategy ${JSON.stringify(config)}`);
86
+ }
87
+ function singularizeWord(word) {
88
+ if (!word)
89
+ return word;
90
+ const lower = word.toLowerCase();
91
+ if (lower.endsWith('ss') ||
92
+ lower.endsWith('us') ||
93
+ lower.endsWith('is') ||
94
+ lower.endsWith('as') ||
95
+ lower.endsWith('os') ||
96
+ lower === 'series' ||
97
+ lower === 'species' ||
98
+ lower === 'news' ||
99
+ lower === 'lens') {
100
+ return word;
101
+ }
102
+ if (lower === 'people')
103
+ return 'person';
104
+ if (lower === 'children')
105
+ return 'child';
106
+ if (lower === 'men')
107
+ return 'man';
108
+ if (lower === 'women')
109
+ return 'woman';
110
+ if (lower === 'matrices')
111
+ return 'matrix';
112
+ if (lower === 'indices')
113
+ return 'index';
114
+ if (/([^aeiou])ies$/i.test(word))
115
+ return `${word.slice(0, -3)}y`;
116
+ if (/lves$/i.test(word))
117
+ return `${word.slice(0, -4)}lf`;
118
+ if (/(kn|w)ives$/i.test(word))
119
+ return `${word.slice(0, -4)}ife`;
120
+ if (/eaves$/i.test(word))
121
+ return `${word.slice(0, -5)}eaf`;
122
+ if (/sses$/i.test(word) || /statuses$/i.test(word) || /aliases$/i.test(word)) {
123
+ return word.slice(0, -2);
124
+ }
125
+ if (/ises$/i.test(word))
126
+ return `${word.slice(0, -4)}is`;
127
+ if (/(xes|ches|shes|zzes)$/i.test(word))
128
+ return word.slice(0, -2);
129
+ if (/([aeiou])zes$/i.test(word))
130
+ return word.slice(0, -1);
131
+ if (word.endsWith('s') && !word.endsWith('ss'))
132
+ return word.slice(0, -1);
133
+ return word;
134
+ }
135
+ /**
136
+ * Singularize each physical-name word through the repository's explicit rule set and
137
+ * PascalCase the result. The physical table remains on `Table<'...'>`; this name is only
138
+ * the generated TypeScript identifier.
139
+ */
140
+ export function singularPascalCase(value) {
141
+ return value
142
+ .split(/[-_]+/)
143
+ .map(word => singularizeWord(word))
144
+ .map(word => (word ? `${word.charAt(0).toUpperCase()}${word.slice(1)}` : ''))
145
+ .join('');
146
+ }
147
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/naming/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { type CoreSchema } from '../index.js';
2
+ import { type JsonSchemaObject, type Variant } from '../ir/index.js';
3
+ export type { JsonSchemaObject, Variant };
4
+ /**
5
+ * The document for a type, computed at build time (REQ-TF-7).
6
+ *
7
+ * `toJsonSchema<ReadDTO<User>>()` is replaced by the document itself — an object
8
+ * literal, frozen, with no schema value and no reflection left in the bundle. The
9
+ * variant is the type argument rather than a string, so `toJsonSchema<CreateDTO<User>>()`
10
+ * is the create body and `toJsonSchema<Pick<Entity<User>, 'id' | 'email'>>()` is a
11
+ * projection nothing in the string-variant vocabulary could express.
12
+ *
13
+ * Untransformed it throws, and that is the design (plan D4). There is no honest
14
+ * fallback: the document is a function of a type, types do not exist at runtime, and the
15
+ * alternatives are to return something wrong or to ask the caller to hand over the very
16
+ * thing the call exists to compute. A build that skipped the transform should fail
17
+ * loudly at the first call, not serve a plausible document.
18
+ */
19
+ export declare function toJsonSchema<T>(): JsonSchemaObject;
20
+ /** The document for a schema value and a named variant. */
21
+ export declare function toJsonSchema(schema: CoreSchema<string>, variant?: Variant): JsonSchemaObject;
22
+ /**
23
+ * The `components.schemas` key for a table, and the target of every `$ref` that points at
24
+ * it: singularized, then PascalCase. `user_addresses` → `UserAddress`.
25
+ *
26
+ * Exported because it is the only way to write a `$ref` by hand that resolves against a
27
+ * document this module produced, and because it is the whole subject of
28
+ * `singularization.spec.ts` — which used to reach it by declaring twenty schemas whose only
29
+ * distinguishing feature was the table name.
30
+ */
31
+ export declare function componentName(table: string): string;
32
+ /**
33
+ * The entity schema with a `$ref` per relation: a to-one refs the target component, a to-many
34
+ * is an array of them.
35
+ *
36
+ * Relations reach the `entity` (response) variant only. A create or update body is columns,
37
+ * and a `$ref` to a whole entity in one would say the client may post a nested graph, which
38
+ * no write path here accepts.
39
+ *
40
+ * There used to be a second parameter — a `Record<string, RelationLike>` naming each relation
41
+ * and its target table — because a schema value carried no relations for this to read. It
42
+ * carries them now, on `schema.ir`, so a document generated from a set of schemas can no
43
+ * longer disagree with the tables about which relations exist. The kinds are the IR's
44
+ * (`oneToMany`, not `one-to-many`).
45
+ */
46
+ export declare function toJsonSchemaWithRelations(schema: CoreSchema<string>, variant?: Variant): JsonSchemaObject;
47
+ export declare function toOpenApiComponents(schemas: readonly CoreSchema<string>[]): {
48
+ schemas: Record<string, JsonSchemaObject>;
49
+ };
50
+ export interface EnvelopeSchema {
51
+ readonly type: 'object';
52
+ readonly properties: Readonly<Record<string, unknown>>;
53
+ readonly required: readonly string[];
54
+ }
55
+ export declare function toListSchema(schema: CoreSchema<string>): EnvelopeSchema;
56
+ export declare function toSearchSchema(schema: CoreSchema<string>): EnvelopeSchema;
57
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/openapi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAoB,KAAK,gBAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAavF,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,YAAY,CAAC,CAAC,KAAK,gBAAgB,CAAC;AACpD,2DAA2D;AAC3D,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;AAY9F;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,GAAE,OAAkB,GAAG,gBAAgB,CAUnH;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG;IAC3E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC3C,CAMA;AAID,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AACD,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,cAAc,CAYvE;AACD,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,cAAc,CAiBzE"}