@owlmeans/resource 0.1.18-rc.8 → 0.1.18
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/README.md +336 -135
- package/agent-meta/manifest.json +87 -4
- package/agent-meta/skills/resource/SKILL.md +36 -104
- package/agent-meta/skills/resource/parts/capabilities.md +23 -0
- package/agent-meta/skills/resource/parts/criteria.md +60 -0
- package/agent-meta/skills/resource/parts/memory-engine.md +27 -0
- package/agent-meta/skills/resource/parts/migrations.md +35 -0
- package/agent-meta/skills/resource-choice/SKILL.md +271 -0
- package/build/consts.d.ts +0 -3
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +0 -23
- package/build/consts.js.map +1 -1
- package/build/errors.d.ts +13 -0
- package/build/errors.d.ts.map +1 -1
- package/build/errors.js +15 -1
- package/build/errors.js.map +1 -1
- package/build/helper.d.ts.map +1 -1
- package/build/index.d.ts +2 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/migration.d.ts.map +1 -1
- package/build/migration.js +0 -0
- package/build/migration.js.map +1 -1
- package/build/service.d.ts.map +1 -1
- package/build/types.d.ts +3 -1
- package/build/types.d.ts.map +1 -1
- package/build/utils/consts.local.d.ts +2 -0
- package/build/utils/consts.local.d.ts.map +1 -0
- package/build/utils/consts.local.js +2 -0
- package/build/utils/consts.local.js.map +1 -0
- package/build/utils/name.d.ts.map +1 -1
- package/build/utils/name.js.map +1 -1
- package/build/utils/query/types.d.ts +35 -0
- package/build/utils/query/types.d.ts.map +1 -0
- package/build/utils/query/types.js +2 -0
- package/build/utils/query/types.js.map +1 -0
- package/build/utils/query.d.ts +8 -20
- package/build/utils/query.d.ts.map +1 -1
- package/build/utils/query.js +97 -103
- package/build/utils/query.js.map +1 -1
- package/build/utils.d.ts +4 -0
- package/build/utils.d.ts.map +1 -0
- package/build/utils.js +24 -0
- package/build/utils.js.map +1 -0
- package/package.json +7 -5
- package/src/consts.ts +0 -25
- package/src/errors.ts +16 -1
- package/src/index.ts +2 -0
- package/src/migration.ts +0 -0
- package/src/types.ts +1 -1
- package/src/utils/consts.local.ts +1 -0
- package/src/utils/name.ts +2 -2
- package/src/utils/query/types.ts +37 -0
- package/src/utils/query.ts +106 -98
- package/src/utils.ts +26 -0
- package/tests/errors.spec.ts +60 -0
- package/tests/tsconfig.json +17 -0
- package/tsconfig.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/query/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAE7F;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;OAQG;IACH,aAAa,EAAE,CAAC,CAAC,SAAS,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,OAAO,CAAA;IACzF,6DAA6D;IAC7D,aAAa,EAAE,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAA;IACxF;;;;OAIG;IACH,WAAW,EAAE,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAA;IAChF,iEAAiE;IACjE,UAAU,EAAE,CAAC,CAAC,SAAS,cAAc,EACnC,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;KAAE,KAC/D,CAAC,GAAG,IAAI,CAAA;IACb;;;OAGG;IACH,UAAU,EAAE,CAAC,CAAC,SAAS,cAAc,EACnC,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,KACzD,UAAU,CAAC,CAAC,CAAC,CAAA;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/query/types.ts"],"names":[],"mappings":""}
|
package/build/utils/query.d.ts
CHANGED
|
@@ -1,29 +1,17 @@
|
|
|
1
1
|
import type { Criteria, ListOptions, ListResult, ResourceRecord, Sort } from '../types.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* looks like when nothing was chosen, and treating it as "must be undefined" makes an unset
|
|
7
|
-
* dropdown filter the list down to nothing.
|
|
8
|
-
*
|
|
9
|
-
* @throws {UnsupportedArgumentError} on an unknown operator.
|
|
10
|
-
*/
|
|
2
|
+
import type { RecordQueryHelper } from './query/types.js';
|
|
3
|
+
export declare const createRecordQueryHelper: () => RecordQueryHelper;
|
|
4
|
+
export declare const recordQueryHelper: RecordQueryHelper;
|
|
5
|
+
/** @deprecated compat:factory-refactor — use `recordQueryHelper.matchCriteria(…)` */
|
|
11
6
|
export declare const matchCriteria: <T extends ResourceRecord>(record: T, criteria?: Criteria<any>) => boolean;
|
|
12
|
-
/**
|
|
7
|
+
/** @deprecated compat:factory-refactor — use `recordQueryHelper.filterRecords(…)` */
|
|
13
8
|
export declare const filterRecords: <T extends ResourceRecord>(records: T[], criteria?: Criteria<any>) => T[];
|
|
14
|
-
/**
|
|
15
|
-
* Sort a copy. A bare field name is ascending; `{ field, order: 'desc' }` reverses it — the same
|
|
16
|
-
* meaning every backend gives it, so a sort written for one store orders the same way against
|
|
17
|
-
* another.
|
|
18
|
-
*/
|
|
9
|
+
/** @deprecated compat:factory-refactor — use `recordQueryHelper.sortRecords(…)` */
|
|
19
10
|
export declare const sortRecords: <T extends ResourceRecord>(records: T[], sort?: Sort<any>[]) => T[];
|
|
20
|
-
/**
|
|
11
|
+
/** @deprecated compat:factory-refactor — use `recordQueryHelper.firstMatch(…)` */
|
|
21
12
|
export declare const firstMatch: <T extends ResourceRecord>(records: T[], where?: Criteria<any>, opts?: {
|
|
22
13
|
sort?: Sort<any>[];
|
|
23
14
|
}) => T | null;
|
|
24
|
-
/**
|
|
25
|
-
* Filter, sort and page an in-memory record set into the shape every resource answers with.
|
|
26
|
-
* `size` is opt-in: an in-memory store returns everything when none is asked for.
|
|
27
|
-
*/
|
|
15
|
+
/** @deprecated compat:factory-refactor — use `recordQueryHelper.applyQuery(…)` */
|
|
28
16
|
export declare const applyQuery: <T extends ResourceRecord>(records: T[], where?: Criteria<any>, opts?: ListOptions<any>) => ListResult<T>;
|
|
29
17
|
//# sourceMappingURL=query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/utils/query.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/utils/query.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAE1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AA8JzD,eAAO,MAAM,uBAAuB,QAAO,iBAmG1C,CAAA;AAED,eAAO,MAAM,iBAAiB,mBAA4B,CAAA;AAE1D,qFAAqF;AACrF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,cAAc,UAAU,CAAC,aAAa,QAAQ,CAAC,GAAG,CAAC,KAAG,OAC3C,CAAA;AAEnD,qFAAqF;AACrF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,cAAc,WAAW,CAAC,EAAE,aAAa,QAAQ,CAAC,GAAG,CAAC,KAAG,CAAC,EAC9C,CAAA;AAEpD,mFAAmF;AACnF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,cAAc,WAAW,CAAC,EAAE,SAAS,IAAI,CAAC,GAAG,CAAC,EAAE,KAAG,CAAC,EAC5C,CAAA;AAE9C,kFAAkF;AAClF,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,cAAc,WACxC,CAAC,EAAE,UAAU,QAAQ,CAAC,GAAG,CAAC,SAAS;IAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;CAAE,KACjE,CAAC,GAAG,IAA0D,CAAA;AAEjE,kFAAkF;AAClF,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,cAAc,WACxC,CAAC,EAAE,UAAU,QAAQ,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,KAC3D,UAAU,CAAC,CAAC,CAAuD,CAAA"}
|
package/build/utils/query.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { UnsupportedArgumentError } from '../errors.js';
|
|
2
|
+
import { COMPARISON } from './consts.local.js';
|
|
2
3
|
/**
|
|
3
4
|
* In-memory evaluation of `Criteria<any>`.
|
|
4
5
|
*
|
|
@@ -14,7 +15,6 @@ import { UnsupportedArgumentError } from '../errors.js';
|
|
|
14
15
|
* record, so the record does not match. There is nothing to compare it against.
|
|
15
16
|
* - There is no jsonb/column distinction, so a dotted key always reaches into the record.
|
|
16
17
|
*/
|
|
17
|
-
const COMPARISON = new Set(['$eq', '$ne', '$gt', '$gte', '$lt', '$lte']);
|
|
18
18
|
/** Dates compare by instant; everything else compares as it is. */
|
|
19
19
|
const comparable = (value) => value instanceof Date ? value.getTime() : value;
|
|
20
20
|
/** Reach `profile.city` inside a record. A missing step yields `undefined`, never a throw. */
|
|
@@ -159,112 +159,106 @@ const applyOperators = (value, spec) => {
|
|
|
159
159
|
}
|
|
160
160
|
return true;
|
|
161
161
|
};
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
* looks like when nothing was chosen, and treating it as "must be undefined" makes an unset
|
|
167
|
-
* dropdown filter the list down to nothing.
|
|
168
|
-
*
|
|
169
|
-
* @throws {UnsupportedArgumentError} on an unknown operator.
|
|
170
|
-
*/
|
|
171
|
-
export const matchCriteria = (record, criteria) => {
|
|
172
|
-
for (const [key, raw] of Object.entries(criteria ?? {})) {
|
|
173
|
-
if (raw === undefined) {
|
|
174
|
-
continue;
|
|
175
|
-
}
|
|
176
|
-
if (key === '$and' || key === '$or') {
|
|
177
|
-
const parts = (Array.isArray(raw) ? raw : [raw]);
|
|
178
|
-
if (parts.length < 1)
|
|
162
|
+
export const createRecordQueryHelper = () => {
|
|
163
|
+
const matchCriteria = (record, criteria) => {
|
|
164
|
+
for (const [key, raw] of Object.entries(criteria ?? {})) {
|
|
165
|
+
if (raw === undefined) {
|
|
179
166
|
continue;
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
167
|
+
}
|
|
168
|
+
if (key === '$and' || key === '$or') {
|
|
169
|
+
const parts = (Array.isArray(raw) ? raw : [raw]);
|
|
170
|
+
if (parts.length < 1)
|
|
171
|
+
continue;
|
|
172
|
+
const matched = key === '$and'
|
|
173
|
+
? parts.every(part => matchCriteria(record, part))
|
|
174
|
+
: parts.some(part => matchCriteria(record, part));
|
|
175
|
+
if (!matched)
|
|
176
|
+
return false;
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
if (key === '$not') {
|
|
180
|
+
if (matchCriteria(record, raw))
|
|
181
|
+
return false;
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
const value = reach(record, key.split('.'));
|
|
185
|
+
if (raw === null) {
|
|
186
|
+
if (value != null)
|
|
187
|
+
return false;
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
if (isOperatorSpec(raw)) {
|
|
191
|
+
if (!applyOperators(value, raw))
|
|
192
|
+
return false;
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
if (Array.isArray(raw)) {
|
|
196
|
+
/**
|
|
197
|
+
* A bare array means "any of these", exactly as it does against a relational store.
|
|
198
|
+
* Exact array equality stays reachable as `{ $eq: [...] }`.
|
|
199
|
+
*/
|
|
200
|
+
if (!inList(value, raw))
|
|
201
|
+
return false;
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
if (!equal(value, raw))
|
|
200
205
|
return false;
|
|
201
|
-
continue;
|
|
202
206
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
207
|
+
return true;
|
|
208
|
+
};
|
|
209
|
+
const filterRecords = (records, criteria) => criteria == null || Object.keys(criteria).length < 1
|
|
210
|
+
? [...records]
|
|
211
|
+
: records.filter(record => matchCriteria(record, criteria));
|
|
212
|
+
const sortRecords = (records, sort) => {
|
|
213
|
+
if (sort == null || sort.length < 1) {
|
|
214
|
+
return [...records];
|
|
211
215
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
if (b == null)
|
|
243
|
-
return -1;
|
|
244
|
-
if (a < b)
|
|
245
|
-
return desc ? 1 : -1;
|
|
246
|
-
if (a > b)
|
|
247
|
-
return desc ? -1 : 1;
|
|
216
|
+
const rules = sort.map(entry => typeof entry === 'string'
|
|
217
|
+
? { field: entry, desc: false }
|
|
218
|
+
: { field: entry.field, desc: entry.order === 'desc' });
|
|
219
|
+
return [...records].sort((left, right) => {
|
|
220
|
+
for (const { field, desc } of rules) {
|
|
221
|
+
const a = comparable(reach(left, field.split('.')));
|
|
222
|
+
const b = comparable(reach(right, field.split('.')));
|
|
223
|
+
if (a == null && b == null)
|
|
224
|
+
continue;
|
|
225
|
+
/** An absent value sorts last ascending, which is where a reader expects "no value". */
|
|
226
|
+
if (a == null)
|
|
227
|
+
return 1;
|
|
228
|
+
if (b == null)
|
|
229
|
+
return -1;
|
|
230
|
+
if (a < b)
|
|
231
|
+
return desc ? 1 : -1;
|
|
232
|
+
if (a > b)
|
|
233
|
+
return desc ? -1 : 1;
|
|
234
|
+
}
|
|
235
|
+
return 0;
|
|
236
|
+
});
|
|
237
|
+
};
|
|
238
|
+
const firstMatch = (records, where, opts) => sortRecords(filterRecords(records, where), opts?.sort)[0] ?? null;
|
|
239
|
+
const applyQuery = (records, where, opts) => {
|
|
240
|
+
const matched = sortRecords(filterRecords(records, where), opts?.sort);
|
|
241
|
+
const total = matched.length;
|
|
242
|
+
// `size: 0` is the explicit ask for everything — the same meaning the paged backends give it, so
|
|
243
|
+
// one query object means one thing whichever store answers it. An omitted size is unpaged here.
|
|
244
|
+
if (opts?.size == null || opts.size === 0) {
|
|
245
|
+
return { items: matched, total };
|
|
248
246
|
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
};
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
/**
|
|
255
|
-
* Filter, sort and page an in-memory record set into the shape every resource answers with.
|
|
256
|
-
* `size` is opt-in: an in-memory store returns everything when none is asked for.
|
|
257
|
-
*/
|
|
258
|
-
export const applyQuery = (records, where, opts) => {
|
|
259
|
-
const matched = sortRecords(filterRecords(records, where), opts?.sort);
|
|
260
|
-
const total = matched.length;
|
|
261
|
-
// `size: 0` is the explicit ask for everything — the same meaning the paged backends give it, so
|
|
262
|
-
// one query object means one thing whichever store answers it. An omitted size is unpaged here.
|
|
263
|
-
if (opts?.size == null || opts.size === 0) {
|
|
264
|
-
return { items: matched, total };
|
|
265
|
-
}
|
|
266
|
-
const page = opts.page ?? 0;
|
|
267
|
-
const from = page * opts.size;
|
|
268
|
-
return { items: matched.slice(from, from + opts.size), total, page, size: opts.size };
|
|
247
|
+
const page = opts.page ?? 0;
|
|
248
|
+
const from = page * opts.size;
|
|
249
|
+
return { items: matched.slice(from, from + opts.size), total, page, size: opts.size };
|
|
250
|
+
};
|
|
251
|
+
return { matchCriteria, filterRecords, sortRecords, firstMatch, applyQuery };
|
|
269
252
|
};
|
|
253
|
+
export const recordQueryHelper = createRecordQueryHelper();
|
|
254
|
+
/** @deprecated compat:factory-refactor — use `recordQueryHelper.matchCriteria(…)` */
|
|
255
|
+
export const matchCriteria = (record, criteria) => recordQueryHelper.matchCriteria(record, criteria);
|
|
256
|
+
/** @deprecated compat:factory-refactor — use `recordQueryHelper.filterRecords(…)` */
|
|
257
|
+
export const filterRecords = (records, criteria) => recordQueryHelper.filterRecords(records, criteria);
|
|
258
|
+
/** @deprecated compat:factory-refactor — use `recordQueryHelper.sortRecords(…)` */
|
|
259
|
+
export const sortRecords = (records, sort) => recordQueryHelper.sortRecords(records, sort);
|
|
260
|
+
/** @deprecated compat:factory-refactor — use `recordQueryHelper.firstMatch(…)` */
|
|
261
|
+
export const firstMatch = (records, where, opts) => recordQueryHelper.firstMatch(records, where, opts);
|
|
262
|
+
/** @deprecated compat:factory-refactor — use `recordQueryHelper.applyQuery(…)` */
|
|
263
|
+
export const applyQuery = (records, where, opts) => recordQueryHelper.applyQuery(records, where, opts);
|
|
270
264
|
//# sourceMappingURL=query.js.map
|
package/build/utils/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/utils/query.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/utils/query.ts"],"names":[],"mappings":"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"}
|
package/build/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAEzC,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,cAAc,UAAU,cAAc,CAAC,CAAC,CAAC,KAAG,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAsBjH,CAAA"}
|
package/build/utils.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const createListSchema = (schema) => ({
|
|
2
|
+
type: 'object',
|
|
3
|
+
properties: {
|
|
4
|
+
items: {
|
|
5
|
+
type: 'array',
|
|
6
|
+
items: {
|
|
7
|
+
...schema,
|
|
8
|
+
type: 'object',
|
|
9
|
+
properties: {
|
|
10
|
+
id: { type: 'string', nullable: true },
|
|
11
|
+
...schema.properties
|
|
12
|
+
},
|
|
13
|
+
...(schema.required ? { required: [...schema.required] } : undefined),
|
|
14
|
+
additionalProperties: false,
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
total: { type: 'number' },
|
|
18
|
+
page: { type: 'number', nullable: true },
|
|
19
|
+
size: { type: 'number', nullable: true }
|
|
20
|
+
},
|
|
21
|
+
required: ['items', 'total'],
|
|
22
|
+
additionalProperties: false,
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAA2B,MAAyB,EAAiC,EAAE,CAAC,CAAC;IACvH,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,GAAG,MAAM;gBACT,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;oBACtC,GAAG,MAAM,CAAC,UAAU;iBACrB;gBACD,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACrE,oBAAoB,EAAE,KAAK;aAC5B;SACF;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACxC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;KACzC;IACD,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,KAAK;CAC5B,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/resource",
|
|
3
|
-
"version": "0.1.18
|
|
3
|
+
"version": "0.1.18",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "tsc -b",
|
|
8
8
|
"dev": "sleep 252 && nodemon -e ts,tsx,json --watch src --exec \"tsc -p ./tsconfig.json\"",
|
|
9
|
-
"watch": "tsc -b -w --preserveWatchOutput --pretty"
|
|
9
|
+
"watch": "tsc -b -w --preserveWatchOutput --pretty",
|
|
10
|
+
"test": "bun test ./tests"
|
|
10
11
|
},
|
|
11
12
|
"main": "build/index.js",
|
|
12
13
|
"module": "build/index.js",
|
|
@@ -21,14 +22,15 @@
|
|
|
21
22
|
}
|
|
22
23
|
},
|
|
23
24
|
"dependencies": {
|
|
24
|
-
"@owlmeans/context": "^0.1.18
|
|
25
|
-
"@owlmeans/error": "^0.1.18
|
|
25
|
+
"@owlmeans/context": "^0.1.18",
|
|
26
|
+
"@owlmeans/error": "^0.1.18"
|
|
26
27
|
},
|
|
27
28
|
"peerDependencies": {
|
|
28
29
|
"ajv": "*"
|
|
29
30
|
},
|
|
30
31
|
"devDependencies": {
|
|
31
|
-
"@owlmeans/dep-config": "
|
|
32
|
+
"@owlmeans/dep-config": "^0.1.18",
|
|
33
|
+
"@types/bun": "^1.4.2",
|
|
32
34
|
"nodemon": "^3.1.14",
|
|
33
35
|
"typescript": "^7.0.2"
|
|
34
36
|
},
|
package/src/consts.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { JSONSchemaType } from 'ajv'
|
|
2
|
-
import type { ListResult, ResourceRecord } from './types.js'
|
|
3
1
|
|
|
4
2
|
/**
|
|
5
3
|
* When a migration runs relative to the structure reconciliation a db implementation
|
|
@@ -18,26 +16,3 @@ export enum MigrationStage {
|
|
|
18
16
|
Post = 'post'
|
|
19
17
|
}
|
|
20
18
|
|
|
21
|
-
export const createListSchema = <T extends ResourceRecord>(schema: JSONSchemaType<T>): JSONSchemaType<ListResult<T>> => ({
|
|
22
|
-
type: 'object',
|
|
23
|
-
properties: {
|
|
24
|
-
items: {
|
|
25
|
-
type: 'array',
|
|
26
|
-
items: {
|
|
27
|
-
...schema,
|
|
28
|
-
type: 'object',
|
|
29
|
-
properties: {
|
|
30
|
-
id: { type: 'string', nullable: true },
|
|
31
|
-
...schema.properties
|
|
32
|
-
},
|
|
33
|
-
...(schema.required ? { required: [...schema.required] } : undefined),
|
|
34
|
-
additionalProperties: false,
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
total: { type: 'number' },
|
|
38
|
-
page: { type: 'number', nullable: true },
|
|
39
|
-
size: { type: 'number', nullable: true }
|
|
40
|
-
},
|
|
41
|
-
required: ['items', 'total'],
|
|
42
|
-
additionalProperties: false,
|
|
43
|
-
})
|
package/src/errors.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
|
|
2
2
|
import { ResilientError } from '@owlmeans/error'
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* The storage refusal family. A class that answers the caller's request declares the HTTP status
|
|
6
|
+
* an `@owlmeans/server-api` boundary answers it with (`static httpStatus`, inherited through the
|
|
7
|
+
* constructor chain): an absent record 404, a taken id or unique key 409. A fault — a misshaped
|
|
8
|
+
* record, an unsupported argument, a failed migration — declares nothing and answers 500.
|
|
9
|
+
*/
|
|
4
10
|
export class ResourceError extends ResilientError {
|
|
5
11
|
public static override typeName = 'ResourceError'
|
|
6
12
|
|
|
@@ -9,8 +15,11 @@ export class ResourceError extends ResilientError {
|
|
|
9
15
|
}
|
|
10
16
|
}
|
|
11
17
|
|
|
18
|
+
/** The addressed record does not exist (`get`, `update`, `take` of an absent id or criteria). */
|
|
12
19
|
export class UnknownRecordError extends ResourceError {
|
|
13
20
|
public static override typeName = `${ResourceError.typeName}UnknownRecordError`
|
|
21
|
+
/** The addressed record is absent: answered 404. */
|
|
22
|
+
public static httpStatus = 404
|
|
14
23
|
|
|
15
24
|
public static readonly idSeparator: string = '/'
|
|
16
25
|
|
|
@@ -19,8 +28,11 @@ export class UnknownRecordError extends ResourceError {
|
|
|
19
28
|
this.type = UnknownRecordError.typeName
|
|
20
29
|
}
|
|
21
30
|
|
|
31
|
+
/** Everything after the first separator — an id or a criteria description may contain one. */
|
|
22
32
|
get id(): string {
|
|
23
|
-
|
|
33
|
+
const at = this.message.indexOf(UnknownRecordError.idSeparator)
|
|
34
|
+
|
|
35
|
+
return at < 0 ? '' : this.message.slice(at + UnknownRecordError.idSeparator.length)
|
|
24
36
|
}
|
|
25
37
|
}
|
|
26
38
|
|
|
@@ -33,8 +45,11 @@ export class MisshapedRecord extends ResourceError {
|
|
|
33
45
|
}
|
|
34
46
|
}
|
|
35
47
|
|
|
48
|
+
/** A record under that id or unique key is already stored (`create`, a unique-index violation). */
|
|
36
49
|
export class RecordExists extends ResourceError {
|
|
37
50
|
public static override typeName = `${ResourceError.typeName}RecordExists`
|
|
51
|
+
/** The id or unique key is taken: answered 409. */
|
|
52
|
+
public static httpStatus = 409
|
|
38
53
|
|
|
39
54
|
constructor(msg: string) {
|
|
40
55
|
super(`record-exists:${msg}`)
|
package/src/index.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
|
|
2
2
|
export * from './errors.js'
|
|
3
3
|
export * from './consts.js'
|
|
4
|
+
export * from './utils.js'
|
|
4
5
|
export * from './service.js'
|
|
5
6
|
export * from './helper.js'
|
|
6
7
|
export * from './utils/query.js'
|
|
8
|
+
export type * from './utils/query/types.js'
|
|
7
9
|
export * from './migration.js'
|
|
8
10
|
export type * from './types.js'
|
package/src/migration.ts
CHANGED
|
Binary file
|
package/src/types.ts
CHANGED
|
@@ -116,7 +116,7 @@ export interface Resource<T extends ResourceRecord> extends BasicResource {
|
|
|
116
116
|
purge(where: Criteria<T>): Promise<number>
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
export
|
|
119
|
+
export interface Unsubscribe { (): Promise<void> }
|
|
120
120
|
|
|
121
121
|
export interface SubscribeOptions {
|
|
122
122
|
channel?: string
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const COMPARISON = new Set(['$eq', '$ne', '$gt', '$gte', '$lt', '$lte'])
|
package/src/utils/name.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {Context, Config, ResourceDbService, DbConfig} from '../types.js'
|
|
1
|
+
import type { Context, Config, ResourceDbService, DbConfig } from '../types.js'
|
|
2
2
|
|
|
3
3
|
export const dbName = <C extends Config, T extends Context<C> = Context<C>>(
|
|
4
4
|
_context: T, service: ResourceDbService<any, any>, config: DbConfig
|
|
5
|
-
) => config.schema ?? config.alias ?? service.alias
|
|
5
|
+
): string => config.schema ?? config.alias ?? service.alias
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Criteria, ListOptions, ListResult, ResourceRecord, Sort } from '../../types.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* In-memory evaluation of `Criteria<any>` — the engine every store without a query language of its
|
|
5
|
+
* own (state, static, client, redis) answers a criteria object through.
|
|
6
|
+
*/
|
|
7
|
+
export interface RecordQueryHelper {
|
|
8
|
+
/**
|
|
9
|
+
* Whether one record satisfies the criteria.
|
|
10
|
+
*
|
|
11
|
+
* `undefined` as a criteria value is skipped rather than compared — it is what an optional filter
|
|
12
|
+
* looks like when nothing was chosen, and treating it as "must be undefined" makes an unset
|
|
13
|
+
* dropdown filter the list down to nothing.
|
|
14
|
+
*
|
|
15
|
+
* @throws {UnsupportedArgumentError} on an unknown operator.
|
|
16
|
+
*/
|
|
17
|
+
matchCriteria: <T extends ResourceRecord>(record: T, criteria?: Criteria<any>) => boolean
|
|
18
|
+
/** Every record the criteria accepts, in insertion order. */
|
|
19
|
+
filterRecords: <T extends ResourceRecord>(records: T[], criteria?: Criteria<any>) => T[]
|
|
20
|
+
/**
|
|
21
|
+
* Sort a copy. A bare field name is ascending; `{ field, order: 'desc' }` reverses it — the same
|
|
22
|
+
* meaning every backend gives it, so a sort written for one store orders the same way against
|
|
23
|
+
* another.
|
|
24
|
+
*/
|
|
25
|
+
sortRecords: <T extends ResourceRecord>(records: T[], sort?: Sort<any>[]) => T[]
|
|
26
|
+
/** The first record the criteria accepts, honouring the sort. */
|
|
27
|
+
firstMatch: <T extends ResourceRecord>(
|
|
28
|
+
records: T[], where?: Criteria<any>, opts?: { sort?: Sort<any>[] }
|
|
29
|
+
) => T | null
|
|
30
|
+
/**
|
|
31
|
+
* Filter, sort and page an in-memory record set into the shape every resource answers with.
|
|
32
|
+
* `size` is opt-in: an in-memory store returns everything when none is asked for.
|
|
33
|
+
*/
|
|
34
|
+
applyQuery: <T extends ResourceRecord>(
|
|
35
|
+
records: T[], where?: Criteria<any>, opts?: ListOptions<any>
|
|
36
|
+
) => ListResult<T>
|
|
37
|
+
}
|