@saltcorn/db-common 1.6.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.
@@ -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":"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"}
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?: object | string;
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 = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=types.js.map
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@saltcorn/db-common",
3
- "version": "1.6.0",
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": "jest dist --runInBand",
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"