@saltcorn/db-common 1.6.1-beta.0 → 1.7.0-alpha.0
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/dbtypes.d.ts +11 -2
- package/dist/dbtypes.d.ts.map +1 -1
- package/dist/dbtypes.js +1 -2
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -47
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +50 -7
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +192 -146
- package/dist/internal.js.map +1 -1
- package/dist/internal.test.js +8 -4
- package/dist/internal.test.js.map +1 -1
- package/dist/multi-tenant.d.ts +1 -0
- package/dist/multi-tenant.d.ts.map +1 -1
- package/dist/multi-tenant.js +13 -22
- package/dist/multi-tenant.js.map +1 -1
- package/dist/sqlite-commons.d.ts +3 -3
- package/dist/sqlite-commons.d.ts.map +1 -1
- package/dist/sqlite-commons.js +40 -60
- package/dist/sqlite-commons.js.map +1 -1
- package/dist/tenants.d.ts +2 -2
- package/dist/tenants.d.ts.map +1 -1
- package/dist/tenants.js +8 -3
- package/dist/tenants.js.map +1 -1
- package/dist/test_expect.d.ts +83 -0
- package/dist/test_expect.d.ts.map +1 -0
- package/dist/test_expect.js +401 -0
- package/dist/test_expect.js.map +1 -0
- package/dist/types.d.ts +23 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -2
- package/package.json +3 -14
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* jest-compatible test helpers backed by node:test / node:assert, so test
|
|
3
|
+
* suites can run on node's built-in test runner without a jest dependency.
|
|
4
|
+
* Lives in db-common so it can be shared across packages, e.g.:
|
|
5
|
+
* import { describe, it, expect, beforeAll, jest } from "@saltcorn/db-common/test_expect";
|
|
6
|
+
* Only the surface used by the migrated test suites is implemented.
|
|
7
|
+
*/
|
|
8
|
+
import assert from "node:assert";
|
|
9
|
+
import { inspect } from "node:util";
|
|
10
|
+
import { createRequire } from "node:module";
|
|
11
|
+
// This module is ESM, so the CommonJS `require` is not defined. jest.mock needs
|
|
12
|
+
// to reach into the shared CommonJS module cache to mutate cached exports;
|
|
13
|
+
// createRequire gives us a require bound to the same cache as the (CJS) test
|
|
14
|
+
// suites that call jest.mock.
|
|
15
|
+
const require = createRequire(import.meta.url);
|
|
16
|
+
import { describe, it, test, before, after, beforeEach as nodeBeforeEach, afterEach as nodeAfterEach, } from "node:test";
|
|
17
|
+
// node:test names the once-per-file hooks before/after; jest calls them
|
|
18
|
+
// beforeAll/afterAll. Wrap to drop jest's optional timeout 2nd argument.
|
|
19
|
+
const beforeAll = (fn) => before(fn);
|
|
20
|
+
const afterAll = (fn) => after(fn);
|
|
21
|
+
const beforeEach = (fn) => nodeBeforeEach(fn);
|
|
22
|
+
const afterEach = (fn) => nodeAfterEach(fn);
|
|
23
|
+
export { describe, it, test, beforeAll, afterAll, beforeEach, afterEach, };
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// asymmetric matchers (expect.arrayContaining / expect.objectContaining)
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
class ArrayContaining {
|
|
28
|
+
constructor(sample) {
|
|
29
|
+
this.sample = sample;
|
|
30
|
+
}
|
|
31
|
+
matches(actual) {
|
|
32
|
+
return (Array.isArray(actual) &&
|
|
33
|
+
this.sample.every((e) => actual.some((a) => looseEqual(a, e))));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
class ObjectContaining {
|
|
37
|
+
constructor(sample) {
|
|
38
|
+
this.sample = sample;
|
|
39
|
+
}
|
|
40
|
+
matches(actual) {
|
|
41
|
+
if (actual == null || typeof actual !== "object")
|
|
42
|
+
return false;
|
|
43
|
+
return Object.keys(this.sample).every((k) => looseEqual(actual[k], this.sample[k]));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// expect.any(Constructor): matches any value of the given type/instance.
|
|
47
|
+
class Any {
|
|
48
|
+
constructor(sample) {
|
|
49
|
+
this.sample = sample;
|
|
50
|
+
}
|
|
51
|
+
matches(actual) {
|
|
52
|
+
switch (this.sample) {
|
|
53
|
+
case String:
|
|
54
|
+
return typeof actual === "string" || actual instanceof String;
|
|
55
|
+
case Number:
|
|
56
|
+
return typeof actual === "number" || actual instanceof Number;
|
|
57
|
+
case Boolean:
|
|
58
|
+
return typeof actual === "boolean";
|
|
59
|
+
case BigInt:
|
|
60
|
+
return typeof actual === "bigint";
|
|
61
|
+
case Function:
|
|
62
|
+
return typeof actual === "function";
|
|
63
|
+
case Object:
|
|
64
|
+
return actual !== null && typeof actual === "object";
|
|
65
|
+
case Array:
|
|
66
|
+
return Array.isArray(actual);
|
|
67
|
+
default:
|
|
68
|
+
return actual != null && actual instanceof this.sample;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const isAsymmetric = (x) => x instanceof ArrayContaining ||
|
|
73
|
+
x instanceof ObjectContaining ||
|
|
74
|
+
x instanceof Any;
|
|
75
|
+
// jest's toEqual: recursive equality that ignores prototypes and treats
|
|
76
|
+
// undefined-valued properties as absent.
|
|
77
|
+
const looseEqual = (a, b) => {
|
|
78
|
+
if (isAsymmetric(b))
|
|
79
|
+
return b.matches(a);
|
|
80
|
+
if (isAsymmetric(a))
|
|
81
|
+
return a.matches(b);
|
|
82
|
+
if (Object.is(a, b))
|
|
83
|
+
return true;
|
|
84
|
+
if (a == null || b == null)
|
|
85
|
+
return a === b;
|
|
86
|
+
if (typeof a !== "object" || typeof b !== "object")
|
|
87
|
+
return a === b;
|
|
88
|
+
if (a instanceof Date && b instanceof Date)
|
|
89
|
+
return a.getTime() === b.getTime();
|
|
90
|
+
if (a instanceof RegExp && b instanceof RegExp)
|
|
91
|
+
return a.source === b.source && a.flags === b.flags;
|
|
92
|
+
if (Array.isArray(a) || Array.isArray(b)) {
|
|
93
|
+
if (!Array.isArray(a) || !Array.isArray(b))
|
|
94
|
+
return false;
|
|
95
|
+
if (a.length !== b.length)
|
|
96
|
+
return false;
|
|
97
|
+
return a.every((v, i) => looseEqual(v, b[i]));
|
|
98
|
+
}
|
|
99
|
+
const ak = Object.keys(a).filter((k) => a[k] !== undefined);
|
|
100
|
+
const bk = Object.keys(b).filter((k) => b[k] !== undefined);
|
|
101
|
+
if (ak.length !== bk.length)
|
|
102
|
+
return false;
|
|
103
|
+
return ak.every((k) => Object.prototype.hasOwnProperty.call(b, k) && looseEqual(a[k], b[k]));
|
|
104
|
+
};
|
|
105
|
+
// jest's toMatchObject: recursive subset match (received may have extra keys).
|
|
106
|
+
const matchObject = (actual, expected) => {
|
|
107
|
+
if (isAsymmetric(expected))
|
|
108
|
+
return expected.matches(actual);
|
|
109
|
+
if (Array.isArray(expected)) {
|
|
110
|
+
if (!Array.isArray(actual) || actual.length !== expected.length)
|
|
111
|
+
return false;
|
|
112
|
+
return expected.every((e, i) => matchObject(actual[i], e));
|
|
113
|
+
}
|
|
114
|
+
if (expected && typeof expected === "object") {
|
|
115
|
+
if (actual == null || typeof actual !== "object")
|
|
116
|
+
return false;
|
|
117
|
+
return Object.keys(expected).every((k) => matchObject(actual[k], expected[k]));
|
|
118
|
+
}
|
|
119
|
+
return Object.is(actual, expected);
|
|
120
|
+
};
|
|
121
|
+
const matchError = (error, expected) => {
|
|
122
|
+
const message = error && error.message ? String(error.message) : String(error);
|
|
123
|
+
if (typeof expected === "string")
|
|
124
|
+
return message.includes(expected);
|
|
125
|
+
if (expected instanceof RegExp)
|
|
126
|
+
return expected.test(message);
|
|
127
|
+
if (typeof expected === "function")
|
|
128
|
+
return error instanceof expected;
|
|
129
|
+
return true;
|
|
130
|
+
};
|
|
131
|
+
// ---------------------------------------------------------------------------
|
|
132
|
+
// expect()
|
|
133
|
+
// ---------------------------------------------------------------------------
|
|
134
|
+
class Expectation {
|
|
135
|
+
constructor(actual, isNot = false) {
|
|
136
|
+
this.actual = actual;
|
|
137
|
+
this.isNot = isNot;
|
|
138
|
+
}
|
|
139
|
+
get not() {
|
|
140
|
+
return new Expectation(this.actual, !this.isNot);
|
|
141
|
+
}
|
|
142
|
+
get rejects() {
|
|
143
|
+
return new AsyncExpectation(this.actual, true, this.isNot);
|
|
144
|
+
}
|
|
145
|
+
get resolves() {
|
|
146
|
+
return new AsyncExpectation(this.actual, false, this.isNot);
|
|
147
|
+
}
|
|
148
|
+
assertPass(pass, message) {
|
|
149
|
+
assert.ok(this.isNot ? !pass : pass, message);
|
|
150
|
+
}
|
|
151
|
+
show(v) {
|
|
152
|
+
return inspect(v, { depth: 6 });
|
|
153
|
+
}
|
|
154
|
+
toBe(expected) {
|
|
155
|
+
if (this.isNot)
|
|
156
|
+
assert.notStrictEqual(this.actual, expected);
|
|
157
|
+
else
|
|
158
|
+
assert.strictEqual(this.actual, expected);
|
|
159
|
+
}
|
|
160
|
+
toEqual(expected) {
|
|
161
|
+
const pass = looseEqual(this.actual, expected);
|
|
162
|
+
this.assertPass(pass, `toEqual mismatch:\n actual: ${this.show(this.actual)}\n expected: ${this.show(expected)}`);
|
|
163
|
+
}
|
|
164
|
+
toStrictEqual(expected) {
|
|
165
|
+
if (isAsymmetric(expected)) {
|
|
166
|
+
this.assertPass(expected.matches(this.actual), `toStrictEqual mismatch: ${this.show(this.actual)}`);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
if (this.isNot)
|
|
170
|
+
assert.notDeepStrictEqual(this.actual, expected);
|
|
171
|
+
else
|
|
172
|
+
assert.deepStrictEqual(this.actual, expected);
|
|
173
|
+
}
|
|
174
|
+
toContain(expected) {
|
|
175
|
+
const pass = (typeof this.actual === "string" || Array.isArray(this.actual)) &&
|
|
176
|
+
this.actual.includes(expected);
|
|
177
|
+
this.assertPass(pass, `expected ${this.show(this.actual)} to contain ${this.show(expected)}`);
|
|
178
|
+
}
|
|
179
|
+
toContainEqual(expected) {
|
|
180
|
+
const pass = Array.isArray(this.actual) &&
|
|
181
|
+
this.actual.some((x) => looseEqual(x, expected));
|
|
182
|
+
this.assertPass(pass, `expected ${this.show(this.actual)} to contain equal ${this.show(expected)}`);
|
|
183
|
+
}
|
|
184
|
+
toMatchObject(expected) {
|
|
185
|
+
this.assertPass(matchObject(this.actual, expected), `expected ${this.show(this.actual)} to match object ${this.show(expected)}`);
|
|
186
|
+
}
|
|
187
|
+
toMatch(expected) {
|
|
188
|
+
const pass = typeof expected === "string"
|
|
189
|
+
? String(this.actual).includes(expected)
|
|
190
|
+
: expected.test(this.actual);
|
|
191
|
+
this.assertPass(pass, `expected ${this.show(String(this.actual))} to match ${expected}`);
|
|
192
|
+
}
|
|
193
|
+
toHaveLength(length) {
|
|
194
|
+
this.assertPass(this.actual != null && this.actual.length === length, `expected length ${this.actual?.length} to be ${length}`);
|
|
195
|
+
}
|
|
196
|
+
toBeDefined() {
|
|
197
|
+
this.assertPass(this.actual !== undefined, `expected value to be defined`);
|
|
198
|
+
}
|
|
199
|
+
toBeUndefined() {
|
|
200
|
+
this.assertPass(this.actual === undefined, `expected ${this.show(this.actual)} to be undefined`);
|
|
201
|
+
}
|
|
202
|
+
toBeNull() {
|
|
203
|
+
this.assertPass(this.actual === null, `expected ${this.show(this.actual)} to be null`);
|
|
204
|
+
}
|
|
205
|
+
toBeTruthy() {
|
|
206
|
+
this.assertPass(!!this.actual, `expected ${this.show(this.actual)} to be truthy`);
|
|
207
|
+
}
|
|
208
|
+
toBeFalsy() {
|
|
209
|
+
this.assertPass(!this.actual, `expected ${this.show(this.actual)} to be falsy`);
|
|
210
|
+
}
|
|
211
|
+
toBeGreaterThan(n) {
|
|
212
|
+
this.assertPass(this.actual > n, `expected ${this.show(this.actual)} > ${n}`);
|
|
213
|
+
}
|
|
214
|
+
toBeLessThan(n) {
|
|
215
|
+
this.assertPass(this.actual < n, `expected ${this.show(this.actual)} < ${n}`);
|
|
216
|
+
}
|
|
217
|
+
toBeGreaterThanOrEqual(n) {
|
|
218
|
+
this.assertPass(this.actual >= n, `expected ${this.show(this.actual)} >= ${n}`);
|
|
219
|
+
}
|
|
220
|
+
toBeLessThanOrEqual(n) {
|
|
221
|
+
this.assertPass(this.actual <= n, `expected ${this.show(this.actual)} <= ${n}`);
|
|
222
|
+
}
|
|
223
|
+
toBeInstanceOf(cls) {
|
|
224
|
+
this.assertPass(this.actual instanceof cls, `expected ${this.show(this.actual)} to be instance of ${cls?.name}`);
|
|
225
|
+
}
|
|
226
|
+
toThrow(expected) {
|
|
227
|
+
let threw = false;
|
|
228
|
+
let error;
|
|
229
|
+
try {
|
|
230
|
+
if (typeof this.actual === "function")
|
|
231
|
+
this.actual();
|
|
232
|
+
}
|
|
233
|
+
catch (e) {
|
|
234
|
+
threw = true;
|
|
235
|
+
error = e;
|
|
236
|
+
}
|
|
237
|
+
const pass = threw && (expected === undefined || matchError(error, expected));
|
|
238
|
+
this.assertPass(pass, `expected function to throw`);
|
|
239
|
+
}
|
|
240
|
+
toHaveBeenCalled() {
|
|
241
|
+
this.assertPass((this.actual?.mock?.calls?.length ?? 0) > 0, `expected mock function to have been called`);
|
|
242
|
+
}
|
|
243
|
+
// jest alias for toHaveBeenCalled
|
|
244
|
+
toBeCalled() {
|
|
245
|
+
this.toHaveBeenCalled();
|
|
246
|
+
}
|
|
247
|
+
toHaveBeenCalledTimes(n) {
|
|
248
|
+
const count = this.actual?.mock?.calls?.length ?? 0;
|
|
249
|
+
this.assertPass(count === n, `expected mock to have been called ${n} times, but was called ${count} times`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// async matchers via expect(promise).rejects / .resolves
|
|
253
|
+
class AsyncExpectation {
|
|
254
|
+
constructor(actual, wantReject, isNot) {
|
|
255
|
+
this.actual = actual;
|
|
256
|
+
this.wantReject = wantReject;
|
|
257
|
+
this.isNot = isNot;
|
|
258
|
+
}
|
|
259
|
+
async settle() {
|
|
260
|
+
try {
|
|
261
|
+
const value = typeof this.actual === "function" ? await this.actual() : await this.actual;
|
|
262
|
+
return { threw: false, value };
|
|
263
|
+
}
|
|
264
|
+
catch (error) {
|
|
265
|
+
return { threw: true, error };
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
async settledExpectation() {
|
|
269
|
+
const { threw, value, error } = await this.settle();
|
|
270
|
+
if (this.wantReject) {
|
|
271
|
+
assert.ok(threw, `expected promise to reject, but it resolved`);
|
|
272
|
+
return new Expectation(error, this.isNot);
|
|
273
|
+
}
|
|
274
|
+
assert.ok(!threw, `expected promise to resolve, but it rejected: ${error}`);
|
|
275
|
+
return new Expectation(value, this.isNot);
|
|
276
|
+
}
|
|
277
|
+
async toThrow(expected) {
|
|
278
|
+
const { threw, error } = await this.settle();
|
|
279
|
+
if (this.wantReject) {
|
|
280
|
+
const pass = threw && (expected === undefined || matchError(error, expected));
|
|
281
|
+
assert.ok(this.isNot ? !pass : pass, `expected promise to reject${expected !== undefined ? " with " + expected : ""}`);
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
assert.ok(!threw, `expected promise to resolve`);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
async toBe(expected) {
|
|
288
|
+
(await this.settledExpectation()).toBe(expected);
|
|
289
|
+
}
|
|
290
|
+
async toEqual(expected) {
|
|
291
|
+
(await this.settledExpectation()).toEqual(expected);
|
|
292
|
+
}
|
|
293
|
+
async toStrictEqual(expected) {
|
|
294
|
+
(await this.settledExpectation()).toStrictEqual(expected);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
export const expect = ((actual) => new Expectation(actual));
|
|
298
|
+
expect.arrayContaining = (sample) => new ArrayContaining(sample);
|
|
299
|
+
expect.objectContaining = (sample) => new ObjectContaining(sample);
|
|
300
|
+
expect.any = (sample) => new Any(sample);
|
|
301
|
+
// assertion-count expectation is not tracked; accepted as a no-op.
|
|
302
|
+
expect.assertions = (_n) => { };
|
|
303
|
+
// ---------------------------------------------------------------------------
|
|
304
|
+
// jest.fn() mock functions
|
|
305
|
+
// ---------------------------------------------------------------------------
|
|
306
|
+
export const fn = (impl) => {
|
|
307
|
+
const calls = [];
|
|
308
|
+
let implementation = impl;
|
|
309
|
+
let returnValue;
|
|
310
|
+
let hasReturnValue = false;
|
|
311
|
+
const mockFn = (...args) => {
|
|
312
|
+
calls.push(args);
|
|
313
|
+
if (implementation)
|
|
314
|
+
return implementation(...args);
|
|
315
|
+
if (hasReturnValue)
|
|
316
|
+
return returnValue;
|
|
317
|
+
return undefined;
|
|
318
|
+
};
|
|
319
|
+
mockFn.mock = { calls };
|
|
320
|
+
mockFn.mockReturnValue = (v) => {
|
|
321
|
+
returnValue = v;
|
|
322
|
+
hasReturnValue = true;
|
|
323
|
+
return mockFn;
|
|
324
|
+
};
|
|
325
|
+
mockFn.mockImplementation = (f) => {
|
|
326
|
+
implementation = f;
|
|
327
|
+
return mockFn;
|
|
328
|
+
};
|
|
329
|
+
mockFn.mockClear = () => {
|
|
330
|
+
calls.length = 0;
|
|
331
|
+
};
|
|
332
|
+
mockFn.mockReset = () => {
|
|
333
|
+
calls.length = 0;
|
|
334
|
+
implementation = undefined;
|
|
335
|
+
hasReturnValue = false;
|
|
336
|
+
returnValue = undefined;
|
|
337
|
+
};
|
|
338
|
+
return mockFn;
|
|
339
|
+
};
|
|
340
|
+
// jest.spyOn: wrap an object method with a mock that calls through to the
|
|
341
|
+
// original by default and can be restored. Tracked so restoreAllMocks() can
|
|
342
|
+
// undo every active spy.
|
|
343
|
+
const activeSpies = [];
|
|
344
|
+
const spyOn = (obj, method) => {
|
|
345
|
+
const original = obj[method];
|
|
346
|
+
const spy = fn((...args) => typeof original === "function" ? original.apply(obj, args) : undefined);
|
|
347
|
+
spy.mockRestore = () => {
|
|
348
|
+
obj[method] = original;
|
|
349
|
+
};
|
|
350
|
+
obj[method] = spy;
|
|
351
|
+
activeSpies.push(spy);
|
|
352
|
+
return spy;
|
|
353
|
+
};
|
|
354
|
+
// ---------------------------------------------------------------------------
|
|
355
|
+
// jest object: setTimeout (no-op; node:test has no default timeout), fn, mock
|
|
356
|
+
// ---------------------------------------------------------------------------
|
|
357
|
+
export const jest = {
|
|
358
|
+
// node:test has no global default timeout, so raising it is unnecessary.
|
|
359
|
+
setTimeout: (_ms) => { },
|
|
360
|
+
fn,
|
|
361
|
+
spyOn,
|
|
362
|
+
// Mock a module. With a factory, the named exports it returns replace those
|
|
363
|
+
// on the (shared, require-cached) module; without one, function exports are
|
|
364
|
+
// auto-mocked. Mutating the cached exports means modules required afterwards
|
|
365
|
+
// see the mocks - so callers should require() the system-under-test after
|
|
366
|
+
// jest.mock (jest hoists mock calls above imports; node:test does not).
|
|
367
|
+
mock: (name, factory) => {
|
|
368
|
+
const mod = require(name);
|
|
369
|
+
if (factory) {
|
|
370
|
+
const replacement = factory();
|
|
371
|
+
for (const key of Object.keys(replacement)) {
|
|
372
|
+
try {
|
|
373
|
+
mod[key] = replacement[key];
|
|
374
|
+
}
|
|
375
|
+
catch {
|
|
376
|
+
// non-writable export; skip
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
return;
|
|
380
|
+
}
|
|
381
|
+
for (const key of Object.keys(mod)) {
|
|
382
|
+
if (typeof mod[key] === "function") {
|
|
383
|
+
try {
|
|
384
|
+
mod[key] = fn();
|
|
385
|
+
}
|
|
386
|
+
catch {
|
|
387
|
+
// non-writable export; skip
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
},
|
|
392
|
+
clearAllMocks: () => {
|
|
393
|
+
for (const spy of activeSpies)
|
|
394
|
+
spy.mockClear?.();
|
|
395
|
+
},
|
|
396
|
+
restoreAllMocks: () => {
|
|
397
|
+
while (activeSpies.length)
|
|
398
|
+
activeSpies.pop().mockRestore?.();
|
|
399
|
+
},
|
|
400
|
+
};
|
|
401
|
+
//# sourceMappingURL=test_expect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_expect.js","sourceRoot":"","sources":["../test_expect.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,gFAAgF;AAChF,2EAA2E;AAC3E,6EAA6E;AAC7E,8BAA8B;AAC9B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,OAAO,EACL,QAAQ,EACR,EAAE,EACF,IAAI,EACJ,MAAM,EACN,KAAK,EACL,UAAU,IAAI,cAAc,EAC5B,SAAS,IAAI,aAAa,GAC3B,MAAM,WAAW,CAAC;AAEnB,wEAAwE;AACxE,yEAAyE;AACzE,MAAM,SAAS,GAAG,CAAC,EAAO,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC1C,MAAM,QAAQ,GAAG,CAAC,EAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACxC,MAAM,UAAU,GAAG,CAAC,EAAO,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACnD,MAAM,SAAS,GAAG,CAAC,EAAO,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AAEjD,OAAO,EACL,QAAQ,EACR,EAAE,EACF,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,UAAU,EACV,SAAS,GACV,CAAC;AAEF,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAC9E,MAAM,eAAe;IAEnB,YAAY,MAAa;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,CAAC,MAAW;QACjB,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;IACJ,CAAC;CACF;AAED,MAAM,gBAAgB;IAEpB,YAAY,MAAW;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,CAAC,MAAW;QACjB,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1C,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CACtC,CAAC;IACJ,CAAC;CACF;AAED,yEAAyE;AACzE,MAAM,GAAG;IAEP,YAAY,MAAW;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IACD,OAAO,CAAC,MAAW;QACjB,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,MAAM;gBACT,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,YAAY,MAAM,CAAC;YAChE,KAAK,MAAM;gBACT,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,YAAY,MAAM,CAAC;YAChE,KAAK,OAAO;gBACV,OAAO,OAAO,MAAM,KAAK,SAAS,CAAC;YACrC,KAAK,MAAM;gBACT,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC;YACpC,KAAK,QAAQ;gBACX,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC;YACtC,KAAK,MAAM;gBACT,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC;YACvD,KAAK,KAAK;gBACR,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/B;gBACE,OAAO,MAAM,IAAI,IAAI,IAAI,MAAM,YAAY,IAAI,CAAC,MAAM,CAAC;QAC3D,CAAC;IACH,CAAC;CACF;AAED,MAAM,YAAY,GAAG,CAAC,CAAM,EAAiD,EAAE,CAC7E,CAAC,YAAY,eAAe;IAC5B,CAAC,YAAY,gBAAgB;IAC7B,CAAC,YAAY,GAAG,CAAC;AAEnB,wEAAwE;AACxE,yCAAyC;AACzC,MAAM,UAAU,GAAG,CAAC,CAAM,EAAE,CAAM,EAAW,EAAE;IAC7C,IAAI,YAAY,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,YAAY,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACnE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI;QACxC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IACrC,IAAI,CAAC,YAAY,MAAM,IAAI,CAAC,YAAY,MAAM;QAC5C,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACzD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAC5D,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAC5D,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,EAAE,CAAC,KAAK,CACb,CAAC,CAAC,EAAE,EAAE,CACJ,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACvE,CAAC;AACJ,CAAC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,WAAW,GAAG,CAAC,MAAW,EAAE,QAAa,EAAW,EAAE;IAC1D,IAAI,YAAY,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;YAC7D,OAAO,KAAK,CAAC;QACf,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC7C,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACvC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CACpC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,QAAa,EAAW,EAAE;IACxD,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/E,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpE,IAAI,QAAQ,YAAY,MAAM;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,KAAK,YAAY,QAAQ,CAAC;IACrE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAC9E,MAAM,WAAW;IAIf,YAAY,MAAW,EAAE,KAAK,GAAG,KAAK;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAEO,UAAU,CAAC,IAAa,EAAE,OAAe;QAC/C,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAEO,IAAI,CAAC,CAAM;QACjB,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,QAAa;QAChB,IAAI,IAAI,CAAC,KAAK;YAAE,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;;YACxD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,CAAC,QAAa;QACnB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CACb,IAAI,EACJ,kCAAkC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAChF,QAAQ,CACT,EAAE,CACJ,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,QAAa;QACzB,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,CACb,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAC7B,2BAA2B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CACpD,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,KAAK;YAAE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;;YAC5D,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,QAAa;QACrB,MAAM,IAAI,GACR,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,CACb,IAAI,EACJ,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CACvE,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,QAAa;QAC1B,MAAM,IAAI,GACR,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,CACb,IAAI,EACJ,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAC7E,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,QAAa;QACzB,IAAI,CAAC,UAAU,CACb,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAClC,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAC5E,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,QAAyB;QAC/B,MAAM,IAAI,GACR,OAAO,QAAQ,KAAK,QAAQ;YAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACxC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,CACb,IAAI,EACJ,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,aAAa,QAAQ,EAAE,CAClE,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EACpD,mBAAmB,IAAI,CAAC,MAAM,EAAE,MAAM,UAAU,MAAM,EAAE,CACzD,CAAC;IACJ,CAAC;IAED,WAAW;QACT,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,8BAA8B,CAAC,CAAC;IAC7E,CAAC;IAED,aAAa;QACX,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,MAAM,KAAK,SAAS,EACzB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CACrD,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,MAAM,KAAK,IAAI,EACpB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAChD,CAAC;IACJ,CAAC;IAED,UAAU;QACR,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACpF,CAAC;IAED,SAAS;QACP,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAClF,CAAC;IAED,eAAe,CAAC,CAAS;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,YAAY,CAAC,CAAS;QACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,sBAAsB,CAAC,CAAS;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,mBAAmB,CAAC,CAAS;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,cAAc,CAAC,GAAQ;QACrB,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,MAAM,YAAY,GAAG,EAC1B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,GAAG,EAAE,IAAI,EAAE,CACpE,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,QAAc;QACpB,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,KAAU,CAAC;QACf,IAAI,CAAC;YACH,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU;gBAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QACvD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,CAAC;YACb,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;IACtD,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,UAAU,CACb,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAC3C,4CAA4C,CAC7C,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,UAAU;QACR,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,qBAAqB,CAAC,CAAS;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CACb,KAAK,KAAK,CAAC,EACX,qCAAqC,CAAC,0BAA0B,KAAK,QAAQ,CAC9E,CAAC;IACJ,CAAC;CACF;AAED,yDAAyD;AACzD,MAAM,gBAAgB;IAKpB,YAAY,MAAW,EAAE,UAAmB,EAAE,KAAc;QAC1D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,MAAM;QAClB,IAAI,CAAC;YACH,MAAM,KAAK,GACT,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC;YAC9E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,6CAA6C,CAAC,CAAC;YAChE,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,iDAAiD,KAAK,EAAE,CAAC,CAAC;QAC5E,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAc;QAC1B,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,GACR,KAAK,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,EAAE,CACP,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACzB,6BAA6B,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACjF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAa;QACtB,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAa;QACzB,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAa;QAC/B,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;CACF;AAUD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAa,CAAC;AAC7E,MAAM,CAAC,eAAe,GAAG,CAAC,MAAa,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;AACxE,MAAM,CAAC,gBAAgB,GAAG,CAAC,MAAW,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACxE,MAAM,CAAC,GAAG,GAAG,CAAC,MAAW,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9C,mEAAmE;AACnE,MAAM,CAAC,UAAU,GAAG,CAAC,EAAU,EAAE,EAAE,GAAE,CAAC,CAAC;AAEvC,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAC9E,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAA8B,EAAO,EAAE;IACxD,MAAM,KAAK,GAAY,EAAE,CAAC;IAC1B,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,WAAgB,CAAC;IACrB,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,MAAM,MAAM,GAAQ,CAAC,GAAG,IAAW,EAAE,EAAE;QACrC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;QACnD,IAAI,cAAc;YAAE,OAAO,WAAW,CAAC;QACvC,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC;IACxB,MAAM,CAAC,eAAe,GAAG,CAAC,CAAM,EAAE,EAAE;QAClC,WAAW,GAAG,CAAC,CAAC;QAChB,cAAc,GAAG,IAAI,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,CAAC,kBAAkB,GAAG,CAAC,CAA0B,EAAE,EAAE;QACzD,cAAc,GAAG,CAAC,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE;QACtB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE;QACtB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACjB,cAAc,GAAG,SAAS,CAAC;QAC3B,cAAc,GAAG,KAAK,CAAC;QACvB,WAAW,GAAG,SAAS,CAAC;IAC1B,CAAC,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,0EAA0E;AAC1E,4EAA4E;AAC5E,yBAAyB;AACzB,MAAM,WAAW,GAAU,EAAE,CAAC;AAC9B,MAAM,KAAK,GAAG,CAAC,GAAQ,EAAE,MAAc,EAAO,EAAE;IAC9C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE,CAChC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CACvE,CAAC;IACF,GAAG,CAAC,WAAW,GAAG,GAAG,EAAE;QACrB,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;IACzB,CAAC,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAClB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,yEAAyE;IACzE,UAAU,EAAE,CAAC,GAAY,EAAE,EAAE,GAAE,CAAC;IAChC,EAAE;IACF,KAAK;IACL,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,0EAA0E;IAC1E,wEAAwE;IACxE,IAAI,EAAE,CAAC,IAAY,EAAE,OAAmB,EAAE,EAAE;QAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,WAAW,GAAG,OAAO,EAAE,CAAC;YAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACH,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;gBAAC,MAAM,CAAC;oBACP,4BAA4B;gBAC9B,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC;oBACH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;gBAClB,CAAC;gBAAC,MAAM,CAAC;oBACP,4BAA4B;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,aAAa,EAAE,GAAG,EAAE;QAClB,KAAK,MAAM,GAAG,IAAI,WAAW;YAAE,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;IACnD,CAAC;IACD,eAAe,EAAE,GAAG,EAAE;QACpB,OAAO,WAAW,CAAC,MAAM;YAAE,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IAC/D,CAAC;CACF,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
import * as multiTenant from "./multi-tenant";
|
|
1
|
+
import * as multiTenant from "./multi-tenant.js";
|
|
2
2
|
import { ReadStream, WriteStream } from "fs";
|
|
3
|
-
import { Row, Where, SelectOptions, PrimaryKeyValue } from "./internal";
|
|
3
|
+
import { Row, Where, SelectOptions, PrimaryKeyValue } from "./internal.js";
|
|
4
4
|
type RequestContext = {
|
|
5
5
|
tenant: string;
|
|
6
6
|
client?: any;
|
|
7
7
|
req?: any;
|
|
8
8
|
};
|
|
9
|
+
export type DbClient = {
|
|
10
|
+
query: (text: string, values?: any[]) => Promise<any>;
|
|
11
|
+
release: () => void;
|
|
12
|
+
};
|
|
9
13
|
export type DbExportsType = {
|
|
10
14
|
tenant: typeof multiTenant;
|
|
11
15
|
sqlsanitize: (s?: string) => string;
|
|
12
16
|
connectObj: GenObj;
|
|
13
17
|
isSQLite: boolean;
|
|
14
18
|
is_node: boolean;
|
|
19
|
+
driverName: string;
|
|
15
20
|
mkWhere: (q: Where) => any;
|
|
16
21
|
getTenantSchemaPrefix: () => string;
|
|
17
22
|
insert: (table: string, data: GenObj, opts?: any) => Promise<any>;
|
|
@@ -37,7 +42,8 @@ export type DbExportsType = {
|
|
|
37
42
|
getLocale: () => string;
|
|
38
43
|
__: (str: string) => string;
|
|
39
44
|
};
|
|
40
|
-
client?:
|
|
45
|
+
client?: DbClient | null;
|
|
46
|
+
inTransaction?: boolean;
|
|
41
47
|
};
|
|
42
48
|
drop_fts_index: (table: string) => Promise<void>;
|
|
43
49
|
drop_index: (table: string, columns: string[]) => Promise<void>;
|
|
@@ -50,6 +56,7 @@ export type DbExportsType = {
|
|
|
50
56
|
is_sqlite: boolean;
|
|
51
57
|
copyFrom: (readStream: ReadStream, table: string, fieldNames: any[], client: any) => Promise<any>;
|
|
52
58
|
set_sql_logging: (enabled: boolean) => void;
|
|
59
|
+
setRequestUserContext: (client: any, isLocal?: boolean) => Promise<void>;
|
|
53
60
|
is_it_multi_tenant: () => boolean;
|
|
54
61
|
updateWhere: (table: string, data: Row, where: Where) => Promise<any>;
|
|
55
62
|
slugify: (str: string) => string;
|
|
@@ -69,6 +76,19 @@ export type DbExportsType = {
|
|
|
69
76
|
get_sql_logging: () => boolean;
|
|
70
77
|
getVersion: (arg?: boolean) => Promise<string>;
|
|
71
78
|
enable_multi_tenant: () => void;
|
|
79
|
+
create_tenant_schema: (name: string, ifNotExists?: boolean) => Promise<void>;
|
|
80
|
+
drop_tenant_schema: (name: string) => Promise<void>;
|
|
81
|
+
serial_pk_sql_type: string;
|
|
82
|
+
json_sql_type: string;
|
|
83
|
+
indexable_text_sql_type: string;
|
|
84
|
+
translateMigrationsFromPostgresql?: (sql: string) => string;
|
|
85
|
+
upsert_config: (key: string, value: any) => Promise<void>;
|
|
86
|
+
array_agg_sql_fn?: string;
|
|
87
|
+
sqlDialectFactory?: (initCount?: number) => any;
|
|
88
|
+
supports_search_path: boolean;
|
|
89
|
+
getExpressSessionStore: (session: any, opts?: {
|
|
90
|
+
pruneInterval?: number;
|
|
91
|
+
}) => any;
|
|
72
92
|
[key: string]: any;
|
|
73
93
|
};
|
|
74
94
|
export type GenObj = {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saltcorn/db-common",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0-alpha.0",
|
|
4
4
|
"description": "Db common structures for Saltcorn, open-source no-code platform",
|
|
5
5
|
"homepage": "https://saltcorn.com",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"test": "
|
|
7
|
+
"test": "cd dist && node --test",
|
|
8
8
|
"tsc": "tsc -p tsconfig.json",
|
|
9
9
|
"clean": "rm -rf ./dist/*"
|
|
10
10
|
},
|
|
11
|
+
"type": "module",
|
|
11
12
|
"main": "./dist/index.js",
|
|
12
13
|
"author": "Tom Nielsen",
|
|
13
14
|
"license": "MIT",
|
|
@@ -28,21 +29,9 @@
|
|
|
28
29
|
],
|
|
29
30
|
"dependencies": {},
|
|
30
31
|
"devDependencies": {
|
|
31
|
-
"jest": "29.7.0",
|
|
32
32
|
"@types/node": "^20.14.7",
|
|
33
33
|
"typescript": "5.9.2"
|
|
34
34
|
},
|
|
35
|
-
"jest": {
|
|
36
|
-
"testEnvironment": "node",
|
|
37
|
-
"moduleNameMapper": {
|
|
38
|
-
"@saltcorn/sqlite/(.*)": "<rootDir>/../sqlite/dist/$1",
|
|
39
|
-
"@saltcorn/db-common/(.*)": "<rootDir>/../db-common/dist/$1",
|
|
40
|
-
"@saltcorn/data/(.*)": "<rootDir>/../saltcorn/data/dist/$1",
|
|
41
|
-
"@saltcorn/types/(.*)": "<rootDir>/../saltcorn-types/dist/$1",
|
|
42
|
-
"@saltcorn/markup$": "<rootDir>/../saltcorn-markup/dist",
|
|
43
|
-
"@saltcorn/markup/(.*)": "<rootDir>/../saltcorn-markup/dist/$1"
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
35
|
"repository": "github:saltcorn/saltcorn",
|
|
47
36
|
"publishConfig": {
|
|
48
37
|
"access": "public"
|