@spotto/semantic-query 1.0.70-alpha.26 → 1.0.70-alpha.27

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.
package/dist/fixtures.js CHANGED
@@ -1,156 +1,176 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FIXTURE_OPTS = exports.FIXTURE_TZ = exports.FIXTURE_NOW = exports.FIXTURE_CORPUS = exports.FIXTURE_NULLS = exports.FIXTURE_AMBULANCE = exports.FIXTURE_FRIDGE = exports.FIXTURE_EPOC = exports.FIXTURE_SCHEMA = exports.FIXTURE_KIT_PARENT = exports.FIXTURE_MANIFEST = exports.FIXTURE_TYPES = exports.FIXTURE_FIELDS = void 0;
4
- /**
5
- * The conformance corpus.
6
- *
7
- * Shipped as part of the package, on its own entry point
8
- * (`@spotto/semantic-query/dist/fixtures`), because it is not test scaffolding
9
- * — it is the shared statement of the awkward cases every back-end must
10
- * classify identically. The server's Mongo compiler runs against it, and so
11
- * does anything else that ever claims to execute this language.
12
- *
13
- * Deliberately small and hand-readable. Each document exists for a reason
14
- * stated beside it; a corpus nobody can hold in their head stops being
15
- * evidence and starts being decoration.
16
- */
17
- exports.FIXTURE_FIELDS = {
18
- SERIAL: 'aaaaaaaaaaaaaaaaaaaaaa01',
19
- MANUFACTURER: 'aaaaaaaaaaaaaaaaaaaaaa02',
20
- OWNERSHIP: 'aaaaaaaaaaaaaaaaaaaaaa03',
21
- PURCHASE_DATE: 'aaaaaaaaaaaaaaaaaaaaaa04',
22
- DECOMMISSIONED: 'aaaaaaaaaaaaaaaaaaaaaa05',
23
- CALIBRATED_AT: 'aaaaaaaaaaaaaaaaaaaaaa06',
24
- };
25
- exports.FIXTURE_TYPES = {
26
- EPOC: 'bbbbbbbbbbbbbbbbbbbbbb01',
27
- FRIDGE: 'bbbbbbbbbbbbbbbbbbbbbb02',
28
- AMBULANCE: 'bbbbbbbbbbbbbbbbbbbbbb03',
29
- };
30
- exports.FIXTURE_MANIFEST = 'cccccccccccccccccccccc01';
31
- exports.FIXTURE_KIT_PARENT = 'dddddddddddddddddddddd01';
32
- /**
33
- * One organisation's catalogue: every supported data type, a dropdown with
34
- * options, a type-level value (Manufacturer, which no asset carries directly),
35
- * and a DATETIME field that must be refused rather than matched.
36
- */
37
- exports.FIXTURE_SCHEMA = {
38
- fields: [
39
- { id: exports.FIXTURE_FIELDS.SERIAL, name: 'SerialNumber', dataType: 'STRING' },
40
- { id: exports.FIXTURE_FIELDS.MANUFACTURER, name: 'Manufacturer', dataType: 'STRING' },
41
- {
42
- id: exports.FIXTURE_FIELDS.OWNERSHIP,
43
- name: 'Ownership',
44
- dataType: 'STRING',
45
- options: ['QH', 'LFA'],
46
- },
47
- { id: exports.FIXTURE_FIELDS.PURCHASE_DATE, name: 'PurchaseDate', dataType: 'DATE' },
48
- { id: exports.FIXTURE_FIELDS.DECOMMISSIONED, name: 'Decommissioned', dataType: 'BOOLEAN' },
49
- { id: exports.FIXTURE_FIELDS.CALIBRATED_AT, name: 'CalibratedAt', dataType: 'DATETIME' },
50
- ],
51
- types: [
52
- {
53
- id: exports.FIXTURE_TYPES.EPOC,
54
- path: 'Blood Analysers|EPOC|',
55
- typeFieldValuesAll: [
56
- {
57
- _id: exports.FIXTURE_FIELDS.MANUFACTURER,
58
- name: 'Manufacturer',
59
- valueString: 'ABBOTT DIAGNOSTICS',
60
- },
61
- ],
62
- },
63
- {
64
- id: exports.FIXTURE_TYPES.FRIDGE,
65
- path: 'Blood Refrigerators|',
66
- typeFieldValuesAll: [
67
- {
68
- _id: exports.FIXTURE_FIELDS.MANUFACTURER,
69
- name: 'Manufacturer',
70
- valueString: 'Advanced Health Technology',
71
- },
72
- ],
73
- },
74
- { id: exports.FIXTURE_TYPES.AMBULANCE, path: 'Vehicles|Ambulance|', typeFieldValuesAll: [] },
75
- ],
76
- };
77
- /** Carries a value for everything; its Manufacturer comes from its TYPE, not itself. */
78
- exports.FIXTURE_EPOC = {
79
- _id: '650000000000000000000001',
80
- name: 'EPOC Analyser 7',
81
- typeId: exports.FIXTURE_TYPES.EPOC,
82
- typePath: 'Blood Analysers|EPOC|',
83
- fieldValues: [
84
- { _id: exports.FIXTURE_FIELDS.SERIAL, name: 'SerialNumber', valueString: 'ABC123' },
85
- { _id: exports.FIXTURE_FIELDS.OWNERSHIP, name: 'Ownership', valueString: 'QH' },
86
- { _id: exports.FIXTURE_FIELDS.PURCHASE_DATE, name: 'PurchaseDate', valueDate: 20260815 },
87
- ],
88
- state: {
89
- locationName: 'Brisbane|Lab|',
90
- locationStatus: 'HOME',
91
- lastSeen: 1780000000000,
92
- supportsWith: true,
93
- locationWithId: exports.FIXTURE_KIT_PARENT,
94
- },
95
- readiness: { ready: 2, readyIssues: [{ reason: 'Overdue' }] },
96
- tagIds: ['E28011700000021A2C5B0001'],
97
- labels: [{ name: 'Loan pool' }],
98
- manifestIds: [exports.FIXTURE_MANIFEST],
99
- lastUpdated: 1700000000000,
100
- lastChanged: 1780000000000,
101
- groupMember: true,
102
- };
103
- /** The sparse asset: no state, no readiness, no tags, never updated. */
104
- exports.FIXTURE_FRIDGE = {
105
- _id: '650000000000000000000002',
106
- name: 'Blood Fridge 2',
107
- typeId: exports.FIXTURE_TYPES.FRIDGE,
108
- typePath: 'Blood Refrigerators|',
109
- fieldValues: [],
110
- tagIds: [],
111
- };
112
- /** A kit, dispatched, whose members fall short of its type's template. */
113
- exports.FIXTURE_AMBULANCE = {
114
- _id: '650000000000000000000003',
115
- name: 'Ambulance BC-A1',
116
- typeId: exports.FIXTURE_TYPES.AMBULANCE,
117
- typePath: 'Vehicles|Ambulance|',
118
- fieldValues: [
119
- { _id: exports.FIXTURE_FIELDS.OWNERSHIP, name: 'Ownership', valueString: 'LFA' },
120
- { _id: exports.FIXTURE_FIELDS.DECOMMISSIONED, name: 'Decommissioned', valueBoolean: true },
121
- ],
122
- state: { locationName: 'Brisbane|Depot|', locationStatus: 'DISPATCH' },
123
- readiness: { ready: 1, readyIssues: [] },
124
- tagIds: [],
125
- lastUpdated: 1780000000000,
126
- typeKit: true,
127
- groupSatisfiesKit: false,
128
- };
129
- /**
130
- * The null-slot document. Every field it carries is present-but-null, which is
131
- * a different shape from absent — and the axis where two back-ends most easily
132
- * disagree (a database's "does this key exist" versus a language's "is this
133
- * empty"). Every condition family must classify it identically on both sides.
134
- */
135
- exports.FIXTURE_NULLS = {
136
- _id: '650000000000000000000004',
137
- name: 'Null Slots',
138
- typeId: exports.FIXTURE_TYPES.AMBULANCE,
139
- typePath: 'Vehicles|Ambulance|',
140
- fieldValues: [{ _id: exports.FIXTURE_FIELDS.OWNERSHIP, name: 'Ownership', valueString: null }],
141
- state: { locationWithId: null, locationName: 'Brisbane|Depot|' },
142
- tagIds: null,
143
- lastUpdated: null,
144
- telemetry: { battery: null },
145
- };
146
- exports.FIXTURE_CORPUS = [
147
- exports.FIXTURE_EPOC,
148
- exports.FIXTURE_FRIDGE,
149
- exports.FIXTURE_AMBULANCE,
150
- exports.FIXTURE_NULLS,
151
- ];
152
- /** Frozen clock for the corpus 2026-07-27 09:00 in Brisbane. */
153
- exports.FIXTURE_NOW = new Date('2026-07-26T23:00:00Z');
154
- exports.FIXTURE_TZ = 'Australia/Brisbane';
155
- exports.FIXTURE_OPTS = { now: exports.FIXTURE_NOW, timeZone: exports.FIXTURE_TZ };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FIXTURE_OPTS = exports.FIXTURE_TZ = exports.FIXTURE_NOW = exports.FIXTURE_CORPUS = exports.FIXTURE_NULLS = exports.FIXTURE_DETACHED_KIT = exports.FIXTURE_AMBULANCE = exports.FIXTURE_FRIDGE = exports.FIXTURE_EPOC = exports.FIXTURE_SCHEMA = exports.FIXTURE_KIT_PARENT = exports.FIXTURE_MANIFEST = exports.FIXTURE_TYPES = exports.FIXTURE_FIELDS = void 0;
4
+ /**
5
+ * The conformance corpus.
6
+ *
7
+ * Shipped as part of the package, on its own entry point
8
+ * (`@spotto/semantic-query/dist/fixtures`), because it is not test scaffolding
9
+ * — it is the shared statement of the awkward cases every back-end must
10
+ * classify identically. The server's Mongo compiler runs against it, and so
11
+ * does anything else that ever claims to execute this language.
12
+ *
13
+ * Deliberately small and hand-readable. Each document exists for a reason
14
+ * stated beside it; a corpus nobody can hold in their head stops being
15
+ * evidence and starts being decoration.
16
+ */
17
+ exports.FIXTURE_FIELDS = {
18
+ SERIAL: 'aaaaaaaaaaaaaaaaaaaaaa01',
19
+ MANUFACTURER: 'aaaaaaaaaaaaaaaaaaaaaa02',
20
+ OWNERSHIP: 'aaaaaaaaaaaaaaaaaaaaaa03',
21
+ PURCHASE_DATE: 'aaaaaaaaaaaaaaaaaaaaaa04',
22
+ DECOMMISSIONED: 'aaaaaaaaaaaaaaaaaaaaaa05',
23
+ CALIBRATED_AT: 'aaaaaaaaaaaaaaaaaaaaaa06',
24
+ };
25
+ exports.FIXTURE_TYPES = {
26
+ EPOC: 'bbbbbbbbbbbbbbbbbbbbbb01',
27
+ FRIDGE: 'bbbbbbbbbbbbbbbbbbbbbb02',
28
+ AMBULANCE: 'bbbbbbbbbbbbbbbbbbbbbb03',
29
+ };
30
+ exports.FIXTURE_MANIFEST = 'cccccccccccccccccccccc01';
31
+ exports.FIXTURE_KIT_PARENT = 'dddddddddddddddddddddd01';
32
+ /**
33
+ * One organisation's catalogue: every supported data type, a dropdown with
34
+ * options, a type-level value (Manufacturer, which no asset carries directly),
35
+ * and a DATETIME field that must be refused rather than matched.
36
+ */
37
+ exports.FIXTURE_SCHEMA = {
38
+ fields: [
39
+ { id: exports.FIXTURE_FIELDS.SERIAL, name: 'SerialNumber', dataType: 'STRING' },
40
+ { id: exports.FIXTURE_FIELDS.MANUFACTURER, name: 'Manufacturer', dataType: 'STRING' },
41
+ {
42
+ id: exports.FIXTURE_FIELDS.OWNERSHIP,
43
+ name: 'Ownership',
44
+ dataType: 'STRING',
45
+ options: ['QH', 'LFA'],
46
+ },
47
+ { id: exports.FIXTURE_FIELDS.PURCHASE_DATE, name: 'PurchaseDate', dataType: 'DATE' },
48
+ { id: exports.FIXTURE_FIELDS.DECOMMISSIONED, name: 'Decommissioned', dataType: 'BOOLEAN' },
49
+ { id: exports.FIXTURE_FIELDS.CALIBRATED_AT, name: 'CalibratedAt', dataType: 'DATETIME' },
50
+ ],
51
+ types: [
52
+ {
53
+ id: exports.FIXTURE_TYPES.EPOC,
54
+ path: 'Blood Analysers|EPOC|',
55
+ typeFieldValuesAll: [
56
+ {
57
+ _id: exports.FIXTURE_FIELDS.MANUFACTURER,
58
+ name: 'Manufacturer',
59
+ valueString: 'ABBOTT DIAGNOSTICS',
60
+ },
61
+ ],
62
+ },
63
+ {
64
+ id: exports.FIXTURE_TYPES.FRIDGE,
65
+ path: 'Blood Refrigerators|',
66
+ typeFieldValuesAll: [
67
+ {
68
+ _id: exports.FIXTURE_FIELDS.MANUFACTURER,
69
+ name: 'Manufacturer',
70
+ valueString: 'Advanced Health Technology',
71
+ },
72
+ ],
73
+ },
74
+ { id: exports.FIXTURE_TYPES.AMBULANCE, path: 'Vehicles|Ambulance|', typeFieldValuesAll: [] },
75
+ ],
76
+ };
77
+ /** Carries a value for everything; its Manufacturer comes from its TYPE, not itself. */
78
+ exports.FIXTURE_EPOC = {
79
+ _id: '650000000000000000000001',
80
+ name: 'EPOC Analyser 7',
81
+ typeId: exports.FIXTURE_TYPES.EPOC,
82
+ typePath: 'Blood Analysers|EPOC|',
83
+ fieldValues: [
84
+ { _id: exports.FIXTURE_FIELDS.SERIAL, name: 'SerialNumber', valueString: 'ABC123' },
85
+ { _id: exports.FIXTURE_FIELDS.OWNERSHIP, name: 'Ownership', valueString: 'QH' },
86
+ { _id: exports.FIXTURE_FIELDS.PURCHASE_DATE, name: 'PurchaseDate', valueDate: 20260815 },
87
+ ],
88
+ state: {
89
+ locationName: 'Brisbane|Lab|',
90
+ locationStatus: 'HOME',
91
+ lastSeen: 1780000000000,
92
+ supportsWith: true,
93
+ locationWithId: exports.FIXTURE_KIT_PARENT,
94
+ },
95
+ readiness: { ready: 2, readyIssues: [{ reason: 'Overdue' }] },
96
+ tagIds: ['E28011700000021A2C5B0001'],
97
+ labels: [{ name: 'Loan pool' }],
98
+ manifestIds: [exports.FIXTURE_MANIFEST],
99
+ // Denormalised at write from the own manifestIds above.
100
+ hasManifest: true,
101
+ lastUpdated: 1700000000000,
102
+ lastChanged: 1780000000000,
103
+ groupMember: true,
104
+ };
105
+ /** The sparse asset: no state, no readiness, no tags, never updated. */
106
+ exports.FIXTURE_FRIDGE = {
107
+ _id: '650000000000000000000002',
108
+ name: 'Blood Fridge 2',
109
+ typeId: exports.FIXTURE_TYPES.FRIDGE,
110
+ typePath: 'Blood Refrigerators|',
111
+ fieldValues: [],
112
+ tagIds: [],
113
+ };
114
+ /** A kit, dispatched, whose members fall short of its type's template. */
115
+ exports.FIXTURE_AMBULANCE = {
116
+ _id: '650000000000000000000003',
117
+ name: 'Ambulance BC-A1',
118
+ typeId: exports.FIXTURE_TYPES.AMBULANCE,
119
+ typePath: 'Vehicles|Ambulance|',
120
+ fieldValues: [
121
+ { _id: exports.FIXTURE_FIELDS.OWNERSHIP, name: 'Ownership', valueString: 'LFA' },
122
+ { _id: exports.FIXTURE_FIELDS.DECOMMISSIONED, name: 'Decommissioned', valueBoolean: true },
123
+ ],
124
+ state: { locationName: 'Brisbane|Depot|', locationStatus: 'DISPATCH' },
125
+ readiness: { ready: 1, readyIssues: [] },
126
+ tagIds: [],
127
+ lastUpdated: 1780000000000,
128
+ typeKit: true,
129
+ hasManifest: true,
130
+ groupSatisfiesManifest: 2,
131
+ };
132
+ /**
133
+ * The detached kit: a stored manifest verdict but no manifest any more
134
+ * (`hasManifest` absent). The stored 2 is inert history — its UI shows no
135
+ * pill and no readiness issue — so NO manifest condition may match it, in
136
+ * either back-end. This is the document that proves the `hasManifest` gate.
137
+ */
138
+ exports.FIXTURE_DETACHED_KIT = {
139
+ _id: '650000000000000000000005',
140
+ name: 'Trailer TK-9',
141
+ typeId: exports.FIXTURE_TYPES.AMBULANCE,
142
+ typePath: 'Vehicles|Ambulance|',
143
+ fieldValues: [],
144
+ tagIds: [],
145
+ typeKit: true,
146
+ groupSatisfiesManifest: 2,
147
+ };
148
+ /**
149
+ * The null-slot document. Every field it carries is present-but-null, which is
150
+ * a different shape from absent — and the axis where two back-ends most easily
151
+ * disagree (a database's "does this key exist" versus a language's "is this
152
+ * empty"). Every condition family must classify it identically on both sides.
153
+ */
154
+ exports.FIXTURE_NULLS = {
155
+ _id: '650000000000000000000004',
156
+ name: 'Null Slots',
157
+ typeId: exports.FIXTURE_TYPES.AMBULANCE,
158
+ typePath: 'Vehicles|Ambulance|',
159
+ fieldValues: [{ _id: exports.FIXTURE_FIELDS.OWNERSHIP, name: 'Ownership', valueString: null }],
160
+ state: { locationWithId: null, locationName: 'Brisbane|Depot|' },
161
+ tagIds: null,
162
+ lastUpdated: null,
163
+ telemetry: { battery: null },
164
+ };
165
+ exports.FIXTURE_CORPUS = [
166
+ exports.FIXTURE_EPOC,
167
+ exports.FIXTURE_FRIDGE,
168
+ exports.FIXTURE_AMBULANCE,
169
+ exports.FIXTURE_NULLS,
170
+ exports.FIXTURE_DETACHED_KIT,
171
+ ];
172
+ /** Frozen clock for the corpus — 2026-07-27 09:00 in Brisbane. */
173
+ exports.FIXTURE_NOW = new Date('2026-07-26T23:00:00Z');
174
+ exports.FIXTURE_TZ = 'Australia/Brisbane';
175
+ exports.FIXTURE_OPTS = { now: exports.FIXTURE_NOW, timeZone: exports.FIXTURE_TZ };
156
176
  //# sourceMappingURL=fixtures.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,32 +1,32 @@
1
- /**
2
- * `@spotto/semantic-query` — the Spotto semantic query language.
3
- *
4
- * ONE statement of what a query means, shared by everything that reads or
5
- * writes one: the client's filter UI and offline evaluation, the API's read
6
- * path, and the AI layer that generates queries.
7
- *
8
- * The split this package exists to enforce:
9
- *
10
- * validate() every rule of the language — the gate both back-ends stand behind
11
- * dates one resolution of "last 30 days", for everyone
12
- * evaluate() a query -> yes/no for a document, in memory
13
- * ---------------------------------------------------------------
14
- * compile() a query -> a MongoDB $match [server-side only]
15
- *
16
- * Only the last line is unshareable, because only it is database-specific.
17
- *
18
- * Be clear about what that does and does not buy. The rules, the date engine
19
- * and the field lookup exist once, so no consumer can hold a different opinion
20
- * about them — before this, they lived inside the Mongo compiler, and a client
21
- * could not so much as check a query without it. What remains genuinely
22
- * duplicated is the last step: turning a checked query into a `$match` versus
23
- * answering it in memory. Those are two interpretations of the same
24
- * instruction and nothing here forces them to agree — only running both over
25
- * the same documents can do that, which is what the shipped fixtures are for.
26
- */
27
- export * from './types';
28
- export * from './dates';
29
- export * from './suggest';
30
- export * from './resolve-name';
31
- export * from './validate';
32
- export * from './evaluate';
1
+ /**
2
+ * `@spotto/semantic-query` — the Spotto semantic query language.
3
+ *
4
+ * ONE statement of what a query means, shared by everything that reads or
5
+ * writes one: the client's filter UI and offline evaluation, the API's read
6
+ * path, and the AI layer that generates queries.
7
+ *
8
+ * The split this package exists to enforce:
9
+ *
10
+ * validate() every rule of the language — the gate both back-ends stand behind
11
+ * dates one resolution of "last 30 days", for everyone
12
+ * evaluate() a query -> yes/no for a document, in memory
13
+ * ---------------------------------------------------------------
14
+ * compile() a query -> a MongoDB $match [server-side only]
15
+ *
16
+ * Only the last line is unshareable, because only it is database-specific.
17
+ *
18
+ * Be clear about what that does and does not buy. The rules, the date engine
19
+ * and the field lookup exist once, so no consumer can hold a different opinion
20
+ * about them — before this, they lived inside the Mongo compiler, and a client
21
+ * could not so much as check a query without it. What remains genuinely
22
+ * duplicated is the last step: turning a checked query into a `$match` versus
23
+ * answering it in memory. Those are two interpretations of the same
24
+ * instruction and nothing here forces them to agree — only running both over
25
+ * the same documents can do that, which is what the shipped fixtures are for.
26
+ */
27
+ export * from './types';
28
+ export * from './dates';
29
+ export * from './suggest';
30
+ export * from './resolve-name';
31
+ export * from './validate';
32
+ export * from './evaluate';
package/dist/index.js CHANGED
@@ -1,49 +1,49 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- /**
18
- * `@spotto/semantic-query` — the Spotto semantic query language.
19
- *
20
- * ONE statement of what a query means, shared by everything that reads or
21
- * writes one: the client's filter UI and offline evaluation, the API's read
22
- * path, and the AI layer that generates queries.
23
- *
24
- * The split this package exists to enforce:
25
- *
26
- * validate() every rule of the language — the gate both back-ends stand behind
27
- * dates one resolution of "last 30 days", for everyone
28
- * evaluate() a query -> yes/no for a document, in memory
29
- * ---------------------------------------------------------------
30
- * compile() a query -> a MongoDB $match [server-side only]
31
- *
32
- * Only the last line is unshareable, because only it is database-specific.
33
- *
34
- * Be clear about what that does and does not buy. The rules, the date engine
35
- * and the field lookup exist once, so no consumer can hold a different opinion
36
- * about them — before this, they lived inside the Mongo compiler, and a client
37
- * could not so much as check a query without it. What remains genuinely
38
- * duplicated is the last step: turning a checked query into a `$match` versus
39
- * answering it in memory. Those are two interpretations of the same
40
- * instruction and nothing here forces them to agree — only running both over
41
- * the same documents can do that, which is what the shipped fixtures are for.
42
- */
43
- __exportStar(require("./types"), exports);
44
- __exportStar(require("./dates"), exports);
45
- __exportStar(require("./suggest"), exports);
46
- __exportStar(require("./resolve-name"), exports);
47
- __exportStar(require("./validate"), exports);
48
- __exportStar(require("./evaluate"), exports);
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * `@spotto/semantic-query` — the Spotto semantic query language.
19
+ *
20
+ * ONE statement of what a query means, shared by everything that reads or
21
+ * writes one: the client's filter UI and offline evaluation, the API's read
22
+ * path, and the AI layer that generates queries.
23
+ *
24
+ * The split this package exists to enforce:
25
+ *
26
+ * validate() every rule of the language — the gate both back-ends stand behind
27
+ * dates one resolution of "last 30 days", for everyone
28
+ * evaluate() a query -> yes/no for a document, in memory
29
+ * ---------------------------------------------------------------
30
+ * compile() a query -> a MongoDB $match [server-side only]
31
+ *
32
+ * Only the last line is unshareable, because only it is database-specific.
33
+ *
34
+ * Be clear about what that does and does not buy. The rules, the date engine
35
+ * and the field lookup exist once, so no consumer can hold a different opinion
36
+ * about them — before this, they lived inside the Mongo compiler, and a client
37
+ * could not so much as check a query without it. What remains genuinely
38
+ * duplicated is the last step: turning a checked query into a `$match` versus
39
+ * answering it in memory. Those are two interpretations of the same
40
+ * instruction and nothing here forces them to agree — only running both over
41
+ * the same documents can do that, which is what the shipped fixtures are for.
42
+ */
43
+ __exportStar(require("./types"), exports);
44
+ __exportStar(require("./dates"), exports);
45
+ __exportStar(require("./suggest"), exports);
46
+ __exportStar(require("./resolve-name"), exports);
47
+ __exportStar(require("./validate"), exports);
48
+ __exportStar(require("./evaluate"), exports);
49
49
  //# sourceMappingURL=index.js.map
@@ -1,9 +1,9 @@
1
- import { SemanticNamedRef, SemanticValidationIssue } from './types';
2
- export interface NameResolution {
3
- ids: string[];
4
- issue?: SemanticValidationIssue;
5
- }
6
- export declare function resolveName(catalogue: SemanticNamedRef[] | undefined, rawName: unknown, opts: {
7
- path: string;
8
- noun: string;
9
- }): NameResolution;
1
+ import { SemanticNamedRef, SemanticValidationIssue } from './types';
2
+ export interface NameResolution {
3
+ ids: string[];
4
+ issue?: SemanticValidationIssue;
5
+ }
6
+ export declare function resolveName(catalogue: SemanticNamedRef[] | undefined, rawName: unknown, opts: {
7
+ path: string;
8
+ noun: string;
9
+ }): NameResolution;