@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.
- 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
package/dist/sqlite-commons.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.doListScTables = exports.doListUserDefinedTables = exports.doListTables = exports.commitAndBeginNewTransaction = exports.whenTransactionisFree = exports.openOrUseTransaction = exports.tryCatchInTransaction = exports.withTransaction = exports.slugify = exports.do_drop_index = exports.do_add_index = exports.doDeleteWhere = exports.doCount = exports.buildInsertBulkSql = exports.buildInsertSql = exports.mkVal = exports.reprAsJson = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* This is the sqlite-common module
|
|
6
3
|
* It contains utils for "@saltcorn/sqlite" and "@saltcorn/sqlite-mobile"
|
|
7
4
|
* @module
|
|
8
5
|
*/
|
|
9
|
-
|
|
6
|
+
import { sqlsanitize, mkWhere } from "./internal.js";
|
|
10
7
|
function isDateFromIframe(val) {
|
|
11
8
|
return Object.prototype.toString.call(val) === "[object Date]";
|
|
12
9
|
}
|
|
@@ -15,12 +12,11 @@ function isDateFromIframe(val) {
|
|
|
15
12
|
* @returns
|
|
16
13
|
* @function
|
|
17
14
|
*/
|
|
18
|
-
const reprAsJson = (v, jsonCol) => (jsonCol && (v === true || v === false)) ||
|
|
15
|
+
export const reprAsJson = (v, jsonCol) => (jsonCol && (v === true || v === false)) ||
|
|
19
16
|
(typeof v === "object" &&
|
|
20
17
|
v !== null &&
|
|
21
18
|
v?.constructor?.name !== "PlainDate" &&
|
|
22
19
|
!(v instanceof Date || isDateFromIframe(v)));
|
|
23
|
-
exports.reprAsJson = reprAsJson;
|
|
24
20
|
const isDate = (value) => value && Object.prototype.toString.call(value) === "[object Date]";
|
|
25
21
|
/**
|
|
26
22
|
* @param opts
|
|
@@ -28,12 +24,11 @@ const isDate = (value) => value && Object.prototype.toString.call(value) === "[o
|
|
|
28
24
|
* @param opts.v
|
|
29
25
|
* @returns
|
|
30
26
|
*/
|
|
31
|
-
const mkVal = ([k, v], jsonCol) =>
|
|
27
|
+
export const mkVal = ([k, v], jsonCol) => reprAsJson(v, jsonCol)
|
|
32
28
|
? JSON.stringify(v)
|
|
33
29
|
: isDate(v) || v?.constructor?.name === "PlainDate"
|
|
34
30
|
? v.valueOf()
|
|
35
31
|
: v;
|
|
36
|
-
exports.mkVal = mkVal;
|
|
37
32
|
/**
|
|
38
33
|
* Build a INSERT INTO sql statement for one row
|
|
39
34
|
* @param tbl table name
|
|
@@ -41,33 +36,32 @@ exports.mkVal = mkVal;
|
|
|
41
36
|
* @param opts noid, ignoreExisting, replace
|
|
42
37
|
* @returns sql string and values for the placeholders
|
|
43
38
|
*/
|
|
44
|
-
const buildInsertSql = (tbl, obj, opts = {}) => {
|
|
39
|
+
export const buildInsertSql = (tbl, obj, opts = {}) => {
|
|
45
40
|
const kvs = Object.entries(obj);
|
|
46
|
-
const fnameList = kvs.map(([k, v]) => `"${
|
|
41
|
+
const fnameList = kvs.map(([k, v]) => `"${sqlsanitize(k)}"`).join();
|
|
47
42
|
const valPosList = kvs
|
|
48
43
|
.map(([k, v]) => v &&
|
|
49
44
|
typeof v === "object" &&
|
|
50
45
|
"next_version_by_id" in v &&
|
|
51
46
|
v.next_version_by_id
|
|
52
|
-
? `coalesce((select max(_version) from "${
|
|
53
|
-
:
|
|
47
|
+
? `coalesce((select max(_version) from "${sqlsanitize(tbl)}" where "${v.pk_name || "id"}"=${+v.next_version_by_id}), 0)+1`
|
|
48
|
+
: reprAsJson(v, opts.jsonCols?.includes(k))
|
|
54
49
|
? "json(?)"
|
|
55
50
|
: "?")
|
|
56
51
|
.join();
|
|
57
52
|
const valList = kvs
|
|
58
53
|
.filter(([k, v]) => !(v && v.next_version_by_id))
|
|
59
54
|
.map(([k, v]) => {
|
|
60
|
-
return
|
|
55
|
+
return mkVal([k, v], opts.jsonCols?.includes(k));
|
|
61
56
|
});
|
|
62
57
|
const ignoreExisting = opts.ignoreExisting ? "or ignore" : "";
|
|
63
58
|
const replace = opts.replace ? "or replace" : "";
|
|
64
|
-
const sql = `insert ${ignoreExisting} ${replace} into "${
|
|
59
|
+
const sql = `insert ${ignoreExisting} ${replace} into "${sqlsanitize(tbl)}"(${fnameList}) values(${valPosList})`;
|
|
65
60
|
return {
|
|
66
61
|
sql: sql,
|
|
67
62
|
valList: valList,
|
|
68
63
|
};
|
|
69
64
|
};
|
|
70
|
-
exports.buildInsertSql = buildInsertSql;
|
|
71
65
|
/**
|
|
72
66
|
* Build INSERT INTO sql statements for multiple rows
|
|
73
67
|
* The rows are grouped by fields that are the same
|
|
@@ -76,7 +70,7 @@ exports.buildInsertSql = buildInsertSql;
|
|
|
76
70
|
* @param opts noid, ignoreExisting, replace
|
|
77
71
|
* @returns an array of sql strings with values for the placeholders
|
|
78
72
|
*/
|
|
79
|
-
const buildInsertBulkSql = (tbl, objs, opts = {}) => {
|
|
73
|
+
export const buildInsertBulkSql = (tbl, objs, opts = {}) => {
|
|
80
74
|
const result = new Array();
|
|
81
75
|
const ignoreExisting = opts.ignoreExisting ? "or ignore" : "";
|
|
82
76
|
const replace = opts.replace ? "or replace" : "";
|
|
@@ -84,14 +78,14 @@ const buildInsertBulkSql = (tbl, objs, opts = {}) => {
|
|
|
84
78
|
const fieldsWithRows = {};
|
|
85
79
|
for (const obj of objs) {
|
|
86
80
|
const kvs = Object.entries(obj);
|
|
87
|
-
const fnames = kvs.map(([k, v]) => `"${
|
|
81
|
+
const fnames = kvs.map(([k, v]) => `"${sqlsanitize(k)}"`).join(",");
|
|
88
82
|
const vals = kvs
|
|
89
83
|
.filter(([k, v]) => !(v && v.next_version_by_id))
|
|
90
|
-
.map(([k, v]) =>
|
|
84
|
+
.map(([k, v]) => mkVal([k, v]));
|
|
91
85
|
if (!fieldsWithRows[fnames])
|
|
92
86
|
fieldsWithRows[fnames] = {
|
|
93
87
|
valPattern: `(${kvs
|
|
94
|
-
.map(([k, v]) => (
|
|
88
|
+
.map(([k, v]) => (reprAsJson(v) ? "json(?)" : "?"))
|
|
95
89
|
.join()})`,
|
|
96
90
|
vals: [],
|
|
97
91
|
count: 0,
|
|
@@ -101,12 +95,11 @@ const buildInsertBulkSql = (tbl, objs, opts = {}) => {
|
|
|
101
95
|
}
|
|
102
96
|
for (const [k, v] of Object.entries(fieldsWithRows)) {
|
|
103
97
|
const { valPattern, vals, count } = v;
|
|
104
|
-
const sql = `insert ${ignoreExisting} ${replace} into "${
|
|
98
|
+
const sql = `insert ${ignoreExisting} ${replace} into "${sqlsanitize(tbl)}" (${k}) values ${Array(count).fill(valPattern).join(",")}`;
|
|
105
99
|
result.push({ sql, vals });
|
|
106
100
|
}
|
|
107
101
|
return result;
|
|
108
102
|
};
|
|
109
|
-
exports.buildInsertBulkSql = buildInsertBulkSql;
|
|
110
103
|
/**
|
|
111
104
|
*
|
|
112
105
|
* @param tbl
|
|
@@ -114,72 +107,67 @@ exports.buildInsertBulkSql = buildInsertBulkSql;
|
|
|
114
107
|
* @param queryFunc
|
|
115
108
|
* @returns
|
|
116
109
|
*/
|
|
117
|
-
const doCount = async (tbl, whereObj, queryFunc, limit) => {
|
|
118
|
-
const { where, values } =
|
|
110
|
+
export const doCount = async (tbl, whereObj, queryFunc, limit) => {
|
|
111
|
+
const { where, values } = mkWhere(whereObj, true);
|
|
119
112
|
const sql = limit
|
|
120
113
|
? `SELECT COUNT(*) FROM (
|
|
121
|
-
SELECT 1 FROM "${
|
|
122
|
-
: `SELECT COUNT(*) FROM "${
|
|
114
|
+
SELECT 1 FROM "${sqlsanitize(tbl)}" ${where} limit ${+limit}) limited_count`
|
|
115
|
+
: `SELECT COUNT(*) FROM "${sqlsanitize(tbl)}" ${where}`;
|
|
123
116
|
const tq = await queryFunc(sql, values);
|
|
124
117
|
return parseInt(tq.rows[0]["COUNT(*)"]);
|
|
125
118
|
};
|
|
126
|
-
exports.doCount = doCount;
|
|
127
119
|
/**
|
|
128
120
|
*
|
|
129
121
|
* @param tbl
|
|
130
122
|
* @param whereObj
|
|
131
123
|
* @param queryFunc
|
|
132
124
|
*/
|
|
133
|
-
const doDeleteWhere = async (tbl, whereObj, queryFunc) => {
|
|
134
|
-
const { where, values } =
|
|
135
|
-
const sql = `delete FROM "${
|
|
125
|
+
export const doDeleteWhere = async (tbl, whereObj, queryFunc) => {
|
|
126
|
+
const { where, values } = mkWhere(whereObj, true);
|
|
127
|
+
const sql = `delete FROM "${sqlsanitize(tbl)}" ${where}`;
|
|
136
128
|
const tq = await queryFunc(sql, values);
|
|
137
129
|
};
|
|
138
|
-
exports.doDeleteWhere = doDeleteWhere;
|
|
139
130
|
/**
|
|
140
131
|
* Add unique constraint
|
|
141
132
|
* @param table_name - table name
|
|
142
133
|
* @param field_names - list of columns (members of constraint)
|
|
143
134
|
* @returns no result
|
|
144
135
|
*/
|
|
145
|
-
const do_add_index = async (table_name, field_names, query_func, is_unique, logger) => {
|
|
146
|
-
const sql = `create ${is_unique ? `unique ` : ""}index ${
|
|
147
|
-
.map((f) => `"${
|
|
136
|
+
export const do_add_index = async (table_name, field_names, query_func, is_unique, logger) => {
|
|
137
|
+
const sql = `create ${is_unique ? `unique ` : ""}index ${sqlsanitize(table_name)}_${field_names.map((f) => sqlsanitize(f)).join("_")}${is_unique ? `_unique` : ""} on "${sqlsanitize(table_name)}"(${field_names
|
|
138
|
+
.map((f) => `"${sqlsanitize(f)}"`)
|
|
148
139
|
.join(",")});`;
|
|
149
140
|
if (logger)
|
|
150
141
|
logger(sql);
|
|
151
142
|
await query_func(sql);
|
|
152
143
|
};
|
|
153
|
-
exports.do_add_index = do_add_index;
|
|
154
144
|
/**
|
|
155
145
|
* Drop unique constraint
|
|
156
146
|
* @param table_name - table name
|
|
157
147
|
* @param field_names - list of columns (members of constraint)
|
|
158
148
|
* @returns no results
|
|
159
149
|
*/
|
|
160
|
-
const do_drop_index = async (table_name, field_names, query_func, is_unique, logger) => {
|
|
161
|
-
const sql = `drop index ${
|
|
162
|
-
.map((f) =>
|
|
150
|
+
export const do_drop_index = async (table_name, field_names, query_func, is_unique, logger) => {
|
|
151
|
+
const sql = `drop index ${sqlsanitize(table_name)}_${field_names
|
|
152
|
+
.map((f) => sqlsanitize(f))
|
|
163
153
|
.join("_")}${is_unique ? `_unique` : ""};`;
|
|
164
154
|
if (logger)
|
|
165
155
|
logger(sql);
|
|
166
156
|
await query_func(sql);
|
|
167
157
|
};
|
|
168
|
-
exports.do_drop_index = do_drop_index;
|
|
169
158
|
/**
|
|
170
159
|
* replace spaces with dashes
|
|
171
160
|
* @param s - string to slugify
|
|
172
161
|
* @returns slugified string
|
|
173
162
|
*/
|
|
174
|
-
const slugify = (s) => s.toLowerCase().replace(/\s+/g, "-");
|
|
175
|
-
exports.slugify = slugify;
|
|
163
|
+
export const slugify = (s) => s.toLowerCase().replace(/\s+/g, "-");
|
|
176
164
|
/**
|
|
177
165
|
* simulate the pg transaction behavior with aborted flag
|
|
178
166
|
* @param f code to run in transaction
|
|
179
167
|
* @param onError error callback
|
|
180
168
|
* @returns result of f
|
|
181
169
|
*/
|
|
182
|
-
const withTransaction = async (f, onError) => {
|
|
170
|
+
export const withTransaction = async (f, onError) => {
|
|
183
171
|
//await query("BEGIN;");
|
|
184
172
|
let aborted = false;
|
|
185
173
|
const rollback = async () => {
|
|
@@ -199,14 +187,13 @@ const withTransaction = async (f, onError) => {
|
|
|
199
187
|
throw error;
|
|
200
188
|
}
|
|
201
189
|
};
|
|
202
|
-
exports.withTransaction = withTransaction;
|
|
203
190
|
/**
|
|
204
191
|
* simulate the pg with rollback behavior
|
|
205
192
|
* @param f code to run
|
|
206
193
|
* @param onError error callback
|
|
207
194
|
* @returns result of f
|
|
208
195
|
*/
|
|
209
|
-
const tryCatchInTransaction = async (f, onError) => {
|
|
196
|
+
export const tryCatchInTransaction = async (f, onError) => {
|
|
210
197
|
try {
|
|
211
198
|
return await f();
|
|
212
199
|
}
|
|
@@ -214,56 +201,49 @@ const tryCatchInTransaction = async (f, onError) => {
|
|
|
214
201
|
return await onError(error);
|
|
215
202
|
}
|
|
216
203
|
};
|
|
217
|
-
exports.tryCatchInTransaction = tryCatchInTransaction;
|
|
218
204
|
/**
|
|
219
205
|
* just a wrapper for withTransaction for pg compatibility
|
|
220
206
|
* @param f logic to run
|
|
221
207
|
* @param onError error callback
|
|
222
208
|
* @returns
|
|
223
209
|
*/
|
|
224
|
-
const openOrUseTransaction = async (f, onError) => {
|
|
225
|
-
return await
|
|
210
|
+
export const openOrUseTransaction = async (f, onError) => {
|
|
211
|
+
return await withTransaction(f, onError);
|
|
226
212
|
};
|
|
227
|
-
exports.openOrUseTransaction = openOrUseTransaction;
|
|
228
213
|
/**
|
|
229
214
|
* just a wrapper for withTransaction for pg compatibility
|
|
230
215
|
* @param f logic to run
|
|
231
216
|
* @param onError error callback
|
|
232
217
|
* @returns
|
|
233
218
|
*/
|
|
234
|
-
const whenTransactionisFree = async (f, onError) => {
|
|
235
|
-
return await
|
|
219
|
+
export const whenTransactionisFree = async (f, onError) => {
|
|
220
|
+
return await withTransaction(f, onError);
|
|
236
221
|
};
|
|
237
|
-
|
|
238
|
-
const commitAndBeginNewTransaction = async () => { };
|
|
239
|
-
exports.commitAndBeginNewTransaction = commitAndBeginNewTransaction;
|
|
222
|
+
export const commitAndBeginNewTransaction = async () => { };
|
|
240
223
|
/**
|
|
241
224
|
*
|
|
242
225
|
* @param queryFunc
|
|
243
226
|
* @returns
|
|
244
227
|
*/
|
|
245
|
-
const doListTables = async (queryFunc) => {
|
|
228
|
+
export const doListTables = async (queryFunc) => {
|
|
246
229
|
const sql = "SELECT * FROM sqlite_master where type='table'";
|
|
247
230
|
const tq = await queryFunc(sql);
|
|
248
231
|
return tq.rows;
|
|
249
232
|
};
|
|
250
|
-
exports.doListTables = doListTables;
|
|
251
233
|
/**
|
|
252
234
|
*
|
|
253
235
|
* @param queryFunc
|
|
254
236
|
* @returns
|
|
255
237
|
*/
|
|
256
|
-
const doListUserDefinedTables = async (queryFunc) => {
|
|
257
|
-
return (await
|
|
238
|
+
export const doListUserDefinedTables = async (queryFunc) => {
|
|
239
|
+
return (await doListTables(queryFunc)).filter(({ name }) => !name.startsWith("_sc_") && name !== "users");
|
|
258
240
|
};
|
|
259
|
-
exports.doListUserDefinedTables = doListUserDefinedTables;
|
|
260
241
|
/**
|
|
261
242
|
*
|
|
262
243
|
* @param queryFunc
|
|
263
244
|
* @returns
|
|
264
245
|
*/
|
|
265
|
-
const doListScTables = async (queryFunc) => {
|
|
266
|
-
return (await
|
|
246
|
+
export const doListScTables = async (queryFunc) => {
|
|
247
|
+
return (await doListTables(queryFunc)).filter(({ name }) => name.startsWith("_sc_"));
|
|
267
248
|
};
|
|
268
|
-
exports.doListScTables = doListScTables;
|
|
269
249
|
//# sourceMappingURL=sqlite-commons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-commons.js","sourceRoot":"","sources":["../sqlite-commons.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sqlite-commons.js","sourceRoot":"","sources":["../sqlite-commons.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAO,WAAW,EAAS,OAAO,EAAS,MAAM,eAAe,CAAC;AAExE,SAAS,gBAAgB,CAAC,GAAQ;IAChC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC;AACjE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAM,EAAE,OAAiB,EAAW,EAAE,CAC/D,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;IACxC,CAAC,OAAO,CAAC,KAAK,QAAQ;QACpB,CAAC,KAAK,IAAI;QACV,CAAC,EAAE,WAAW,EAAE,IAAI,KAAK,WAAW;QACpC,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjD,MAAM,MAAM,GAAG,CAAC,KAAU,EAAW,EAAE,CACrC,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,eAAe,CAAC;AAErE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAgB,EAAE,OAAiB,EAAS,EAAE,CACvE,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACnB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,KAAK,WAAW;QACjD,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;QACb,CAAC,CAAC,CAAC,CAAC;AAWV;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,GAAW,EACX,GAAQ,EACR,OAKI,EAAE,EACQ,EAAE;IAChB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,MAAM,UAAU,GAAG,GAAG;SACnB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,CAAC;QACD,OAAO,CAAC,KAAK,QAAQ;QACrB,oBAAoB,IAAI,CAAC;QACzB,CAAC,CAAC,kBAAkB;QAClB,CAAC,CAAC,wCAAwC,WAAW,CACjD,GAAG,CACJ,YAAY,CAAC,CAAC,OAAO,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,kBAAkB,SAAS;QACnE,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,GAAG,CACV;SACA,IAAI,EAAE,CAAC;IACV,MAAM,OAAO,GAAG,GAAG;SAChB,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC;SAC5D,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACd,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACL,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,MAAM,GAAG,GAAG,UAAU,cAAc,IAAI,OAAO,UAAU,WAAW,CAClE,GAAG,CACJ,KAAK,SAAS,YAAY,UAAU,GAAG,CAAC;IAEzC,OAAO;QACL,GAAG,EAAE,GAAG;QACR,OAAO,EAAE,OAAO;KACjB,CAAC;AACJ,CAAC,CAAC;AAOF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,GAAW,EACX,IAAW,EACX,OAAwE,EAAE,EACjD,EAAE;IAC3B,MAAM,MAAM,GAAG,IAAI,KAAK,EAAoB,CAAC;IAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,yCAAyC;IACzC,MAAM,cAAc,GAAQ,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,GAAG;aACb,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YACzB,cAAc,CAAC,MAAM,CAAC,GAAG;gBACvB,UAAU,EAAE,IAAI,GAAG;qBAChB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;qBAClD,IAAI,EAAE,GAAG;gBACZ,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1C,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACpD,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAQ,CAAC;QAC7C,MAAM,GAAG,GAAG,UAAU,cAAc,IAAI,OAAO,UAAU,WAAW,CAClE,GAAG,CACJ,MAAM,CAAC,YAAY,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,GAAW,EACX,QAA2B,EAC3B,SAAc,EACd,KAAc,EACd,EAAE;IACF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,KAAK;QACf,CAAC,CAAC;mBACa,WAAW,CAAC,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,iBAAiB;QAC1E,CAAC,CAAC,yBAAyB,WAAW,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;IAC1D,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,GAAW,EACX,QAA2B,EAC3B,SAAc,EACd,EAAE;IACF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,gBAAgB,WAAW,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;IACzD,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,UAAkB,EAClB,WAAqB,EACrB,UAAe,EACf,SAAkB,EAClB,MAAY,EACG,EAAE;IACjB,MAAM,GAAG,GAAG,UAAU,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,WAAW,CAClE,UAAU,CACX,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GACnD,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAC1B,QAAQ,WAAW,CAAC,UAAU,CAAC,KAAK,WAAW;SAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;SACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACjB,IAAI,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,UAAkB,EAClB,WAAqB,EACrB,UAAe,EACf,SAAkB,EAClB,MAAY,EACG,EAAE;IACjB,MAAM,GAAG,GAAG,cAAc,WAAW,CAAC,UAAU,CAAC,IAAI,WAAW;SAC7D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IAC7C,IAAI,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAS,EAAU,EAAE,CAC3C,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,CAAW,EAAE,OAAiB,EAAE,EAAE;IACtE,wBAAwB;IACxB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,OAAO,GAAG,IAAI,CAAC;QACf,2BAA2B;IAC7B,CAAC,CAAC;IACF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;QACjC,uCAAuC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yCAAyC;QACzC,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;;YAC9B,MAAM,KAAK,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,CAAW,EAAE,OAAiB,EAAE,EAAE;IAC5E,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,CAAW,EAAE,OAAiB,EAAE,EAAE;IAC3E,OAAO,MAAM,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,CAAW,EAAE,OAAiB,EAAE,EAAE;IAC5E,OAAO,MAAM,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;AAC3D;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,SAAc,EAAE,EAAE;IACnD,MAAM,GAAG,GAAG,gDAAgD,CAAC;IAC7D,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,EAAE,CAAC,IAAI,CAAC;AACjB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,SAAc,EAAE,EAAE;IAC9D,OAAO,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAC3C,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,OAAO,CAC7E,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,SAAc,EAAE,EAAE;IACrD,OAAO,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE,CAC3E,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CACxB,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/tenants.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import * as multiTenant from "./multi-tenant";
|
|
1
|
+
import * as multiTenant from "./multi-tenant.js";
|
|
2
2
|
/**
|
|
3
3
|
*
|
|
4
4
|
* @param connObj db connection object
|
|
5
5
|
* @returns
|
|
6
6
|
*/
|
|
7
7
|
declare const _default: (connObj: any) => typeof multiTenant;
|
|
8
|
-
export
|
|
8
|
+
export default _default;
|
|
9
9
|
//# sourceMappingURL=tenants.d.ts.map
|
package/dist/tenants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenants.d.ts","sourceRoot":"","sources":["../tenants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"tenants.d.ts","sourceRoot":"","sources":["../tenants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AAGjD;;;;GAIG;yBACa,SAAS,GAAG;AAA5B,wBAOE"}
|
package/dist/tenants.js
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
import * as multiTenant from "./multi-tenant.js";
|
|
2
2
|
let tenantExport = null;
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param connObj db connection object
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export default (connObj) => {
|
|
4
9
|
if (!tenantExport) {
|
|
5
|
-
tenantExport =
|
|
10
|
+
tenantExport = multiTenant;
|
|
6
11
|
}
|
|
7
12
|
if (!tenantExport)
|
|
8
13
|
throw new Error("unable to initalize a tenant");
|
package/dist/tenants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenants.js","sourceRoot":"","sources":["../tenants.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"tenants.js","sourceRoot":"","sources":["../tenants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AAEjD,IAAI,YAAY,GAA8B,IAAI,CAAC;AACnD;;;;GAIG;AACH,eAAe,CAAC,OAAY,EAAE,EAAE;IAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,WAAW,CAAC;IAC7B,CAAC;IACD,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACnE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { describe, it, test } from "node:test";
|
|
2
|
+
declare const beforeAll: (fn: any) => void;
|
|
3
|
+
declare const afterAll: (fn: any) => void;
|
|
4
|
+
declare const beforeEach: (fn: any) => void;
|
|
5
|
+
declare const afterEach: (fn: any) => void;
|
|
6
|
+
export { describe, it, test, beforeAll, afterAll, beforeEach, afterEach, };
|
|
7
|
+
declare class ArrayContaining {
|
|
8
|
+
readonly sample: any[];
|
|
9
|
+
constructor(sample: any[]);
|
|
10
|
+
matches(actual: any): boolean;
|
|
11
|
+
}
|
|
12
|
+
declare class ObjectContaining {
|
|
13
|
+
readonly sample: any;
|
|
14
|
+
constructor(sample: any);
|
|
15
|
+
matches(actual: any): boolean;
|
|
16
|
+
}
|
|
17
|
+
declare class Any {
|
|
18
|
+
readonly sample: any;
|
|
19
|
+
constructor(sample: any);
|
|
20
|
+
matches(actual: any): boolean;
|
|
21
|
+
}
|
|
22
|
+
declare class Expectation {
|
|
23
|
+
private readonly actual;
|
|
24
|
+
private readonly isNot;
|
|
25
|
+
constructor(actual: any, isNot?: boolean);
|
|
26
|
+
get not(): Expectation;
|
|
27
|
+
get rejects(): AsyncExpectation;
|
|
28
|
+
get resolves(): AsyncExpectation;
|
|
29
|
+
private assertPass;
|
|
30
|
+
private show;
|
|
31
|
+
toBe(expected: any): void;
|
|
32
|
+
toEqual(expected: any): void;
|
|
33
|
+
toStrictEqual(expected: any): void;
|
|
34
|
+
toContain(expected: any): void;
|
|
35
|
+
toContainEqual(expected: any): void;
|
|
36
|
+
toMatchObject(expected: any): void;
|
|
37
|
+
toMatch(expected: RegExp | string): void;
|
|
38
|
+
toHaveLength(length: number): void;
|
|
39
|
+
toBeDefined(): void;
|
|
40
|
+
toBeUndefined(): void;
|
|
41
|
+
toBeNull(): void;
|
|
42
|
+
toBeTruthy(): void;
|
|
43
|
+
toBeFalsy(): void;
|
|
44
|
+
toBeGreaterThan(n: number): void;
|
|
45
|
+
toBeLessThan(n: number): void;
|
|
46
|
+
toBeGreaterThanOrEqual(n: number): void;
|
|
47
|
+
toBeLessThanOrEqual(n: number): void;
|
|
48
|
+
toBeInstanceOf(cls: any): void;
|
|
49
|
+
toThrow(expected?: any): void;
|
|
50
|
+
toHaveBeenCalled(): void;
|
|
51
|
+
toBeCalled(): void;
|
|
52
|
+
toHaveBeenCalledTimes(n: number): void;
|
|
53
|
+
}
|
|
54
|
+
declare class AsyncExpectation {
|
|
55
|
+
private readonly actual;
|
|
56
|
+
private readonly wantReject;
|
|
57
|
+
private readonly isNot;
|
|
58
|
+
constructor(actual: any, wantReject: boolean, isNot: boolean);
|
|
59
|
+
private settle;
|
|
60
|
+
private settledExpectation;
|
|
61
|
+
toThrow(expected?: any): Promise<void>;
|
|
62
|
+
toBe(expected: any): Promise<void>;
|
|
63
|
+
toEqual(expected: any): Promise<void>;
|
|
64
|
+
toStrictEqual(expected: any): Promise<void>;
|
|
65
|
+
}
|
|
66
|
+
interface ExpectFn {
|
|
67
|
+
(actual: any): Expectation;
|
|
68
|
+
arrayContaining: (sample: any[]) => ArrayContaining;
|
|
69
|
+
objectContaining: (sample: any) => ObjectContaining;
|
|
70
|
+
any: (sample: any) => Any;
|
|
71
|
+
assertions: (n: number) => void;
|
|
72
|
+
}
|
|
73
|
+
export declare const expect: ExpectFn;
|
|
74
|
+
export declare const fn: (impl?: (...args: any[]) => any) => any;
|
|
75
|
+
export declare const jest: {
|
|
76
|
+
setTimeout: (_ms?: number) => void;
|
|
77
|
+
fn: (impl?: (...args: any[]) => any) => any;
|
|
78
|
+
spyOn: (obj: any, method: string) => any;
|
|
79
|
+
mock: (name: string, factory?: () => any) => void;
|
|
80
|
+
clearAllMocks: () => void;
|
|
81
|
+
restoreAllMocks: () => void;
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=test_expect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_expect.d.ts","sourceRoot":"","sources":["../test_expect.ts"],"names":[],"mappings":"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"}
|