corebasic 1.0.229 → 1.0.231
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/libs/auth.js +5 -4
- package/dist/libs/compression.js +1 -7
- package/dist/libs/dip/suffix/index.js +8 -6
- package/dist/libs/dip/suffix/policy.js +6 -4
- package/dist/libs/dip/suffix/query.js +290 -279
- package/dist/libs/dip/suffix/suffix.js +17 -13
- package/dist/libs/dip/suffix/tests/date.test.js +21 -34
- package/dist/libs/dip/suffix/tests/policy.test.js +41 -80
- package/dist/libs/dip.js +28 -26
- package/dist/libs/dipper.js +0 -1
- package/dist/libs/elabase.js +1 -1
- package/dist/libs/kafka.js +7 -4
- package/dist/libs/messaging.js +7 -4
- package/dist/libs/session.js +2 -2
- package/libs/auth.ts +48 -9
- package/libs/compression.ts +6 -1
- package/libs/cpp.ts +15 -13
- package/libs/dip/suffix/date.ts +6 -6
- package/libs/dip/suffix/index.ts +41 -26
- package/libs/dip/suffix/policy.ts +16 -13
- package/libs/dip/suffix/query.ts +289 -289
- package/libs/dip/suffix/suffix.ts +26 -20
- package/libs/dip/suffix/tests/date.test.ts +32 -64
- package/libs/dip/suffix/tests/policy.applySuffixPolicy.test.ts +20 -20
- package/libs/dip/suffix/tests/policy.test.ts +41 -109
- package/libs/dip/suffix/tests/suffix.test.ts +2 -2
- package/libs/dip.ts +59 -33
- package/libs/dipper.ts +25 -10
- package/libs/elabase.ts +1 -1
- package/libs/kafka.ts +74 -11
- package/libs/messaging.ts +80 -19
- package/libs/session.ts +21 -10
- package/libs/utils.ts +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {entries, reduceRanges, extractBounds, getNormalizedBounds, type
|
|
1
|
+
import {entries, reduceRanges, extractBounds, getNormalizedBounds, type BoundValue, type BoundFromOp, type BoundToOp} from './index.ts'
|
|
2
2
|
import {formatDate, fillDates} from './date.ts'
|
|
3
3
|
import * as Dip from '../../elabase.ts'
|
|
4
4
|
|
|
5
|
+
type SuffixItem = { key?: string; value?: string; type: string; ls_threshold?: number; min?: number; max?: number }
|
|
5
6
|
type Arg = { db: string; collection: string[]; }
|
|
6
7
|
|
|
7
8
|
const EXPLICIT_SUFFIX_POLICY_TYPES = new Set([ "string", "date", "number" ]);
|
|
8
|
-
export async function suffix(doc, policies, insertMode?: boolean, arg?: Arg) {
|
|
9
|
+
export async function suffix(doc: Record<string, any>, policies: SuffixItem[], insertMode?: boolean, arg?: Arg) {
|
|
9
10
|
let suffixes = [""]
|
|
10
11
|
for (const policy of policies) {
|
|
11
12
|
|
|
@@ -13,13 +14,19 @@ export async function suffix(doc, policies, insertMode?: boolean, arg?: Arg) {
|
|
|
13
14
|
if ("value" in policy && !value)
|
|
14
15
|
throw new Error(`Error: Invalid suffix policy fixed 'value' specified for key in Dip`)
|
|
15
16
|
|
|
16
|
-
let
|
|
17
|
-
const [policy_type,
|
|
17
|
+
let candidates = value ? [value] : entries(policy.key ?? '', doc);
|
|
18
|
+
const [policy_type, format_type] = (policy.type ?? "string").split(':')
|
|
19
|
+
const format = format_type ?? ""
|
|
18
20
|
|
|
19
|
-
if (!EXPLICIT_SUFFIX_POLICY_TYPES.has(policy_type))
|
|
21
|
+
if (!EXPLICIT_SUFFIX_POLICY_TYPES.has(policy_type!))
|
|
20
22
|
throw new Error(`Error: Invalid suffix policy type specified for key ${policy.key} in Dip`)
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
// ====== Range ======
|
|
25
|
+
let ranges = candidates.filter(item => typeof item === "object")
|
|
26
|
+
let keys: (string | number)[] = candidates.filter(item => typeof item !== "object") as (string | number)[]
|
|
27
|
+
// ====== Range ======
|
|
28
|
+
|
|
29
|
+
if (policy_type === "string" && ranges.length)
|
|
23
30
|
throw new Error(`Error: Invalid numeric bounds on string type in suffix policy specified for key ${policy.key} in Dip`)
|
|
24
31
|
|
|
25
32
|
if (policy_type === "date") {
|
|
@@ -32,24 +39,22 @@ export async function suffix(doc, policies, insertMode?: boolean, arg?: Arg) {
|
|
|
32
39
|
const ls_threshold = policy.ls_threshold ?? 5000
|
|
33
40
|
|
|
34
41
|
// ====== Range ======
|
|
35
|
-
let ranges = keys.filter(item => typeof item === "object")
|
|
36
|
-
keys = keys.filter(item => typeof item !== "object")
|
|
37
42
|
|
|
38
43
|
if (policy_type === "date") {
|
|
39
44
|
keys = keys.map(key => formatDate(key, format))
|
|
40
45
|
if (ranges.length) {
|
|
41
46
|
const bounds = extractBounds(reduceRanges(ranges))
|
|
42
|
-
const from = bounds.from ?? policy.min // policy.min is always inclusive i.e $gte
|
|
43
|
-
const to = bounds.to ?? policy.max // policy.max is always inclusive i.e $lte
|
|
44
|
-
const fromOp = bounds.from ? bounds.fromOp : "$gte" // policy.min is $gte
|
|
45
|
-
const toOp = bounds.to ? bounds.toOp : "$lte" // policy.max is $lte
|
|
47
|
+
const from: BoundValue = (bounds.from ?? policy.min) as BoundValue // policy.min is always inclusive i.e $gte
|
|
48
|
+
const to: BoundValue = (bounds.to ?? policy.max) as BoundValue // policy.max is always inclusive i.e $lte
|
|
49
|
+
const fromOp: BoundFromOp = bounds.from ? bounds.fromOp as BoundFromOp : "$gte" // policy.min is $gte
|
|
50
|
+
const toOp: BoundToOp = bounds.to ? bounds.toOp as BoundToOp : "$lte" // policy.max is $lte
|
|
46
51
|
if (from === undefined || to === undefined) {
|
|
47
52
|
keys = [] // Fall back to Dip.operation("ls").
|
|
48
53
|
console.warn(`Warn: Missing suffix policy min/max bound for ${policy_type} range specified for key ${policy.key} in Dip`)
|
|
49
54
|
} else {
|
|
50
55
|
let ranges = fillDates({from, to, fromOp, toOp}, format)
|
|
51
|
-
if (!ranges.length && policy.inferRange)
|
|
52
|
-
|
|
56
|
+
// if (!ranges.length && policy.inferRange)
|
|
57
|
+
// ranges = [...new Set([from === undefined ? undefined : formatDate(from, format), to === undefined ? undefined : formatDate(to, format)].filter(item => item))]
|
|
53
58
|
// console.log(ranges)
|
|
54
59
|
if (ranges.length > ls_threshold) {
|
|
55
60
|
keys = [] // Too many suffixes to enumerate. Fall back to Dip.operation("ls").
|
|
@@ -61,8 +66,8 @@ export async function suffix(doc, policies, insertMode?: boolean, arg?: Arg) {
|
|
|
61
66
|
keys = [...new Set(keys)];
|
|
62
67
|
} else if (policy_type === "number" && ranges.length) {
|
|
63
68
|
const bounds = getNormalizedBounds(extractBounds(reduceRanges(ranges)), "number")
|
|
64
|
-
const from = bounds.from ?? policy.min // policy.min is always inclusive i.e $gte
|
|
65
|
-
const to = bounds.to ?? policy.max // policy.max is always inclusive i.e $lte
|
|
69
|
+
const from = (bounds.from ?? policy.min) as number // policy.min is always inclusive i.e $gte
|
|
70
|
+
const to = (bounds.to ?? policy.max) as number // policy.max is always inclusive i.e $lte
|
|
66
71
|
if (from === undefined || to === undefined) {
|
|
67
72
|
keys = [] // Fall back to Dip.operation("ls").
|
|
68
73
|
console.warn(`Warn: Missing suffix policy min/max bound for ${policy_type} range specified for key ${policy.key} in Dip`)
|
|
@@ -80,15 +85,16 @@ export async function suffix(doc, policies, insertMode?: boolean, arg?: Arg) {
|
|
|
80
85
|
// =================
|
|
81
86
|
|
|
82
87
|
let ls = false
|
|
83
|
-
let suffixAssociatedKeys = {}
|
|
88
|
+
let suffixAssociatedKeys: Record<string, string[]> = {}
|
|
84
89
|
|
|
85
90
|
if (!keys.length && insertMode)
|
|
86
91
|
throw new Error(`Error: Missing suffix policy key ${policy.key} in Dip`)
|
|
87
92
|
if (!keys.length && !insertMode) {
|
|
88
93
|
ls = true
|
|
89
94
|
for (const suffix of suffixes) {
|
|
90
|
-
|
|
91
|
-
|
|
95
|
+
const collections = arg?.collection ?? []
|
|
96
|
+
for (const collection of collections) {
|
|
97
|
+
const dirs = (await Dip.operation("ls", { db: arg?.db, collection: collection, suffix })).filter((dir: string) => !dir.startsWith('chunk-'))
|
|
92
98
|
suffixAssociatedKeys[suffix] = suffixAssociatedKeys[suffix] ?? []
|
|
93
99
|
suffixAssociatedKeys[suffix].push(...dirs)
|
|
94
100
|
}
|
|
@@ -103,7 +109,7 @@ export async function suffix(doc, policies, insertMode?: boolean, arg?: Arg) {
|
|
|
103
109
|
const next = [];
|
|
104
110
|
for (const suffix of suffixes) {
|
|
105
111
|
const currentKeys = ls ? suffixAssociatedKeys[suffix] : keys;
|
|
106
|
-
for (const key of currentKeys) {
|
|
112
|
+
for (const key of currentKeys!) {
|
|
107
113
|
next.push(`${suffix}/${key}`);
|
|
108
114
|
}
|
|
109
115
|
}
|
|
@@ -193,7 +193,7 @@ describe("fillDates()", () => {
|
|
|
193
193
|
|
|
194
194
|
test("fills daily dates", () => {
|
|
195
195
|
assert.deepEqual(
|
|
196
|
-
fillDates({from: "2026-07-01", to: "2026-07-05", fromOp: "$gte", toOp: "$lte"}, "YYYY-MM-DD"),
|
|
196
|
+
fillDates({ from: "2026-07-01", to: "2026-07-05", fromOp: "$gte", toOp: "$lte" }, "YYYY-MM-DD"),
|
|
197
197
|
[
|
|
198
198
|
"2026-07-01",
|
|
199
199
|
"2026-07-02",
|
|
@@ -209,7 +209,7 @@ describe("fillDates()", () => {
|
|
|
209
209
|
|
|
210
210
|
test("fills monthly dates", () => {
|
|
211
211
|
assert.deepEqual(
|
|
212
|
-
fillDates({from: "2026-01-01", to: "2026-05-01", fromOp: "$gte", toOp: "$lte"}, "YYYY-MM"),
|
|
212
|
+
fillDates({ from: "2026-01-01", to: "2026-05-01", fromOp: "$gte", toOp: "$lte" }, "YYYY-MM"),
|
|
213
213
|
[
|
|
214
214
|
"2026-01",
|
|
215
215
|
"2026-02",
|
|
@@ -225,7 +225,7 @@ describe("fillDates()", () => {
|
|
|
225
225
|
|
|
226
226
|
test("fills yearly dates", () => {
|
|
227
227
|
assert.deepEqual(
|
|
228
|
-
fillDates({from: "2020-01-01", to: "2024-01-01", fromOp: "$gte", toOp: "$lte"}, "YYYY"),
|
|
228
|
+
fillDates({ from: "2020-01-01", to: "2024-01-01", fromOp: "$gte", toOp: "$lte" }, "YYYY"),
|
|
229
229
|
[
|
|
230
230
|
"2020",
|
|
231
231
|
"2021",
|
|
@@ -242,7 +242,7 @@ describe("fillDates()", () => {
|
|
|
242
242
|
test("returns one value for same date", () => {
|
|
243
243
|
|
|
244
244
|
assert.deepEqual(
|
|
245
|
-
fillDates({from: "2026-07-01", to: "2026-07-01", fromOp: "$gte", toOp: "$lte"}, "YYYY-MM-DD"),
|
|
245
|
+
fillDates({ from: "2026-07-01", to: "2026-07-01", fromOp: "$gte", toOp: "$lte" }, "YYYY-MM-DD"),
|
|
246
246
|
[
|
|
247
247
|
"2026-07-01"
|
|
248
248
|
]
|
|
@@ -255,7 +255,7 @@ describe("fillDates()", () => {
|
|
|
255
255
|
test("returns empty for reversed range", () => {
|
|
256
256
|
|
|
257
257
|
assert.deepEqual(
|
|
258
|
-
fillDates({from: "2026-07-10", to: "2026-07-01", fromOp: "$gte", toOp: "$lte"}, "YYYY-MM-DD"),
|
|
258
|
+
fillDates({ from: "2026-07-10", to: "2026-07-01", fromOp: "$gte", toOp: "$lte" }, "YYYY-MM-DD"),
|
|
259
259
|
[]
|
|
260
260
|
);
|
|
261
261
|
|
|
@@ -266,7 +266,7 @@ describe("fillDates()", () => {
|
|
|
266
266
|
test("removes duplicates when format loses precision", () => {
|
|
267
267
|
|
|
268
268
|
assert.deepEqual(
|
|
269
|
-
fillDates({from: "2026-01-01", to: "2026-01-31", fromOp: "$gte", toOp: "$lte"}, "MMMM"),
|
|
269
|
+
fillDates({ from: "2026-01-01", to: "2026-01-31", fromOp: "$gte", toOp: "$lte" }, "MMMM"),
|
|
270
270
|
[
|
|
271
271
|
"January"
|
|
272
272
|
]
|
|
@@ -279,7 +279,7 @@ describe("fillDates()", () => {
|
|
|
279
279
|
test("handles leap year traversal", () => {
|
|
280
280
|
|
|
281
281
|
assert.deepEqual(
|
|
282
|
-
fillDates({from: "2024-02-28", to: "2024-03-01", fromOp: "$gte", toOp: "$lte"}, "YYYY-MM-DD"),
|
|
282
|
+
fillDates({ from: "2024-02-28", to: "2024-03-01", fromOp: "$gte", toOp: "$lte" }, "YYYY-MM-DD"),
|
|
283
283
|
[
|
|
284
284
|
"2024-02-28",
|
|
285
285
|
"2024-02-29",
|
|
@@ -294,7 +294,7 @@ describe("fillDates()", () => {
|
|
|
294
294
|
test("handles year rollover", () => {
|
|
295
295
|
|
|
296
296
|
assert.deepEqual(
|
|
297
|
-
fillDates({from: "2025-12-30", to: "2026-01-02", fromOp: "$gte", toOp: "$lte"}, "YYYY-MM-DD"),
|
|
297
|
+
fillDates({ from: "2025-12-30", to: "2026-01-02", fromOp: "$gte", toOp: "$lte" }, "YYYY-MM-DD"),
|
|
298
298
|
[
|
|
299
299
|
"2025-12-30",
|
|
300
300
|
"2025-12-31",
|
|
@@ -310,7 +310,7 @@ describe("fillDates()", () => {
|
|
|
310
310
|
test("fills across years using months", () => {
|
|
311
311
|
|
|
312
312
|
assert.deepEqual(
|
|
313
|
-
fillDates({from: "2025-11-01", to: "2026-02-01", fromOp: "$gte", toOp: "$lte"}, "YYYY-MM"),
|
|
313
|
+
fillDates({ from: "2025-11-01", to: "2026-02-01", fromOp: "$gte", toOp: "$lte" }, "YYYY-MM"),
|
|
314
314
|
[
|
|
315
315
|
"2025-11",
|
|
316
316
|
"2025-12",
|
|
@@ -325,7 +325,7 @@ describe("fillDates()", () => {
|
|
|
325
325
|
|
|
326
326
|
test("large yearly range", () => {
|
|
327
327
|
|
|
328
|
-
const result = fillDates({from: "2000-01-01", to: "2020-01-01", fromOp: "$gte", toOp: "$lte"}, "YYYY");
|
|
328
|
+
const result = fillDates({ from: "2000-01-01", to: "2020-01-01", fromOp: "$gte", toOp: "$lte" }, "YYYY");
|
|
329
329
|
|
|
330
330
|
assert.equal(
|
|
331
331
|
result.length,
|
|
@@ -338,58 +338,34 @@ describe("fillDates()", () => {
|
|
|
338
338
|
|
|
339
339
|
test("large daily range contains no duplicates", () => {
|
|
340
340
|
|
|
341
|
-
const result = fillDates({from: "2026-01-01", to: "2026-12-31", fromOp: "$gte", toOp: "$lte"}, "YYYY-MM-DD");
|
|
341
|
+
const result = fillDates({ from: "2026-01-01", to: "2026-12-31", fromOp: "$gte", toOp: "$lte" }, "YYYY-MM-DD");
|
|
342
342
|
assert.equal(new Set(result).size, result.length);
|
|
343
343
|
});
|
|
344
344
|
|
|
345
345
|
|
|
346
|
-
test("excludes lower bound with $gt", () => {
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
assert.deepEqual(
|
|
366
|
-
fillDates(
|
|
367
|
-
{
|
|
368
|
-
from: "2026-07-01",
|
|
369
|
-
to: "2026-07-03",
|
|
370
|
-
fromOp: null,
|
|
371
|
-
toOp: "$lt",
|
|
372
|
-
},
|
|
373
|
-
"YYYY-MM-DD"
|
|
374
|
-
),
|
|
375
|
-
[
|
|
376
|
-
"2026-07-01",
|
|
377
|
-
"2026-07-02",
|
|
378
|
-
]
|
|
379
|
-
);
|
|
380
|
-
});
|
|
346
|
+
// test("excludes lower bound with $gt", () => {
|
|
347
|
+
// assert.deepEqual(
|
|
348
|
+
// fillDates({ from: "2026-07-01", to: "2026-07-03", fromOp: "$gt", toOp: null }, "YYYY-MM-DD"),
|
|
349
|
+
// [
|
|
350
|
+
// "2026-07-02",
|
|
351
|
+
// "2026-07-03",
|
|
352
|
+
// ]
|
|
353
|
+
// );
|
|
354
|
+
// });
|
|
355
|
+
//
|
|
356
|
+
// test("excludes upper bound with $lt", () => {
|
|
357
|
+
// assert.deepEqual(
|
|
358
|
+
// fillDates({ from: "2026-07-01", to: "2026-07-03", fromOp: null, toOp: "$lt" }, "YYYY-MM-DD"),
|
|
359
|
+
// [
|
|
360
|
+
// "2026-07-01",
|
|
361
|
+
// "2026-07-02",
|
|
362
|
+
// ]
|
|
363
|
+
// );
|
|
364
|
+
// });
|
|
381
365
|
|
|
382
366
|
test("excludes both bounds", () => {
|
|
383
367
|
assert.deepEqual(
|
|
384
|
-
fillDates(
|
|
385
|
-
{
|
|
386
|
-
from: "2026-07-01",
|
|
387
|
-
to: "2026-07-05",
|
|
388
|
-
fromOp: "$gt",
|
|
389
|
-
toOp: "$lt",
|
|
390
|
-
},
|
|
391
|
-
"YYYY-MM-DD"
|
|
392
|
-
),
|
|
368
|
+
fillDates({ from: "2026-07-01", to: "2026-07-05", fromOp: "$gt", toOp: "$lt" }, "YYYY-MM-DD"),
|
|
393
369
|
[
|
|
394
370
|
"2026-07-02",
|
|
395
371
|
"2026-07-03",
|
|
@@ -400,15 +376,7 @@ describe("fillDates()", () => {
|
|
|
400
376
|
|
|
401
377
|
test("returns empty when exclusive bounds collapse range", () => {
|
|
402
378
|
assert.deepEqual(
|
|
403
|
-
fillDates(
|
|
404
|
-
{
|
|
405
|
-
from: "2026-07-01",
|
|
406
|
-
to: "2026-07-02",
|
|
407
|
-
fromOp: "$gt",
|
|
408
|
-
toOp: "$lt",
|
|
409
|
-
},
|
|
410
|
-
"YYYY-MM-DD"
|
|
411
|
-
),
|
|
379
|
+
fillDates({ from: "2026-07-01", to: "2026-07-02", fromOp: "$gt", toOp: "$lt" }, "YYYY-MM-DD"),
|
|
412
380
|
[]
|
|
413
381
|
);
|
|
414
382
|
});
|
|
@@ -49,7 +49,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
const result = await applySuffixPolicy(
|
|
52
|
-
collections,
|
|
52
|
+
collections as any,
|
|
53
53
|
"invoices",
|
|
54
54
|
{
|
|
55
55
|
type: "Sales"
|
|
@@ -75,7 +75,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
75
75
|
};
|
|
76
76
|
|
|
77
77
|
const result = await applySuffixPolicy(
|
|
78
|
-
collections,
|
|
78
|
+
collections as any,
|
|
79
79
|
"invoices",
|
|
80
80
|
{
|
|
81
81
|
type: "Sales"
|
|
@@ -100,7 +100,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
100
100
|
};
|
|
101
101
|
|
|
102
102
|
const result = await applySuffixPolicy(
|
|
103
|
-
collections,
|
|
103
|
+
collections as any,
|
|
104
104
|
"invoices",
|
|
105
105
|
{
|
|
106
106
|
type: "Sales"
|
|
@@ -127,7 +127,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
127
127
|
};
|
|
128
128
|
|
|
129
129
|
const result = await applySuffixPolicy(
|
|
130
|
-
collections,
|
|
130
|
+
collections as any,
|
|
131
131
|
"invoices",
|
|
132
132
|
{
|
|
133
133
|
status: "Active",
|
|
@@ -155,7 +155,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
155
155
|
};
|
|
156
156
|
|
|
157
157
|
const result = await applySuffixPolicy(
|
|
158
|
-
collections,
|
|
158
|
+
collections as any,
|
|
159
159
|
"invoices",
|
|
160
160
|
{
|
|
161
161
|
status: "Deleted",
|
|
@@ -181,7 +181,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
181
181
|
};
|
|
182
182
|
|
|
183
183
|
const result = await applySuffixPolicy(
|
|
184
|
-
collections,
|
|
184
|
+
collections as any,
|
|
185
185
|
"invoices",
|
|
186
186
|
{
|
|
187
187
|
status: {$in: ["Active", "Pending"]},
|
|
@@ -219,7 +219,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
219
219
|
};
|
|
220
220
|
|
|
221
221
|
const result = await applySuffixPolicy(
|
|
222
|
-
collections,
|
|
222
|
+
collections as any,
|
|
223
223
|
"invoices",
|
|
224
224
|
{
|
|
225
225
|
status: "Active",
|
|
@@ -262,7 +262,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
262
262
|
};
|
|
263
263
|
|
|
264
264
|
const result = await applySuffixPolicy(
|
|
265
|
-
collections,
|
|
265
|
+
collections as any,
|
|
266
266
|
"invoices",
|
|
267
267
|
{
|
|
268
268
|
status: "Active",
|
|
@@ -295,7 +295,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
295
295
|
};
|
|
296
296
|
|
|
297
297
|
const result = await applySuffixPolicy(
|
|
298
|
-
collections,
|
|
298
|
+
collections as any,
|
|
299
299
|
"invoices",
|
|
300
300
|
{
|
|
301
301
|
type: "Sales"
|
|
@@ -322,7 +322,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
322
322
|
};
|
|
323
323
|
|
|
324
324
|
const result = await applySuffixPolicy(
|
|
325
|
-
collections,
|
|
325
|
+
collections as any,
|
|
326
326
|
"invoices",
|
|
327
327
|
{
|
|
328
328
|
date: new Date(2026, 4, 3).getTime()
|
|
@@ -350,7 +350,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
350
350
|
};
|
|
351
351
|
|
|
352
352
|
const result = await applySuffixPolicy(
|
|
353
|
-
collections,
|
|
353
|
+
collections as any,
|
|
354
354
|
"invoices",
|
|
355
355
|
{
|
|
356
356
|
type: "Sales",
|
|
@@ -380,7 +380,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
380
380
|
};
|
|
381
381
|
|
|
382
382
|
const result = await applySuffixPolicy(
|
|
383
|
-
collections,
|
|
383
|
+
collections as any,
|
|
384
384
|
"invoices",
|
|
385
385
|
{
|
|
386
386
|
age: {
|
|
@@ -412,7 +412,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
412
412
|
};
|
|
413
413
|
|
|
414
414
|
const result = await applySuffixPolicy(
|
|
415
|
-
collections,
|
|
415
|
+
collections as any,
|
|
416
416
|
"invoices",
|
|
417
417
|
{
|
|
418
418
|
age: {
|
|
@@ -443,7 +443,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
443
443
|
|
|
444
444
|
await assert.rejects(async () => {
|
|
445
445
|
await applySuffixPolicy(
|
|
446
|
-
collections,
|
|
446
|
+
collections as any,
|
|
447
447
|
"invoices",
|
|
448
448
|
{
|
|
449
449
|
status: "Active",
|
|
@@ -468,7 +468,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
468
468
|
};
|
|
469
469
|
|
|
470
470
|
const result = await applySuffixPolicy(
|
|
471
|
-
collections,
|
|
471
|
+
collections as any,
|
|
472
472
|
"invoices",
|
|
473
473
|
{
|
|
474
474
|
age: {
|
|
@@ -499,7 +499,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
499
499
|
};
|
|
500
500
|
|
|
501
501
|
const result = await applySuffixPolicy(
|
|
502
|
-
collections,
|
|
502
|
+
collections as any,
|
|
503
503
|
"invoices",
|
|
504
504
|
{
|
|
505
505
|
age: {
|
|
@@ -531,7 +531,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
531
531
|
};
|
|
532
532
|
|
|
533
533
|
const result = await applySuffixPolicy(
|
|
534
|
-
collections,
|
|
534
|
+
collections as any,
|
|
535
535
|
"invoices",
|
|
536
536
|
{
|
|
537
537
|
age: { $in: [10] },
|
|
@@ -562,7 +562,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
562
562
|
};
|
|
563
563
|
|
|
564
564
|
const result = await applySuffixPolicy(
|
|
565
|
-
collections,
|
|
565
|
+
collections as any,
|
|
566
566
|
"invoices",
|
|
567
567
|
{
|
|
568
568
|
age: { $in: [10] },
|
|
@@ -591,7 +591,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
591
591
|
};
|
|
592
592
|
|
|
593
593
|
const result = await applySuffixPolicy(
|
|
594
|
-
collections,
|
|
594
|
+
collections as any,
|
|
595
595
|
"invoices",
|
|
596
596
|
{
|
|
597
597
|
age: {
|
|
@@ -625,7 +625,7 @@ describe("applySuffixPolicy()", () => {
|
|
|
625
625
|
};
|
|
626
626
|
|
|
627
627
|
const result = await applySuffixPolicy(
|
|
628
|
-
collections,
|
|
628
|
+
collections as any,
|
|
629
629
|
"invoices",
|
|
630
630
|
{
|
|
631
631
|
age: {
|