on-zero 0.4.3 → 0.4.4
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/cjs/cli.cjs +46 -41
- package/dist/cjs/cli.native.js +48 -43
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/constants.cjs +14 -12
- package/dist/cjs/constants.native.js +14 -12
- package/dist/cjs/constants.native.js.map +1 -1
- package/dist/cjs/createPermissions.cjs +66 -34
- package/dist/cjs/createPermissions.native.js +143 -87
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createSchemaFromDrizzle.cjs +15 -13
- package/dist/cjs/createSchemaFromDrizzle.native.js +15 -13
- package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -1
- package/dist/cjs/createUseQuery.cjs +48 -35
- package/dist/cjs/createUseQuery.native.js +52 -38
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +177 -135
- package/dist/cjs/createZeroClient.native.js +246 -195
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroServer.cjs +175 -129
- package/dist/cjs/createZeroServer.native.js +170 -138
- package/dist/cjs/createZeroServer.native.js.map +1 -1
- package/dist/cjs/generate-helpers.cjs +122 -88
- package/dist/cjs/generate-helpers.native.js +209 -174
- package/dist/cjs/generate-helpers.native.js.map +1 -1
- package/dist/cjs/generate-lite.cjs +90 -58
- package/dist/cjs/generate-lite.native.js +200 -140
- package/dist/cjs/generate-lite.native.js.map +1 -1
- package/dist/cjs/generate-lite.test.cjs +229 -192
- package/dist/cjs/generate-lite.test.native.js +229 -194
- package/dist/cjs/generate-lite.test.native.js.map +1 -1
- package/dist/cjs/generate.cjs +455 -291
- package/dist/cjs/generate.native.js +747 -565
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +170 -106
- package/dist/cjs/generate.test.native.js +171 -107
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/batchQuery.cjs +29 -18
- package/dist/cjs/helpers/batchQuery.native.js +36 -21
- package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
- package/dist/cjs/helpers/clearZeroClientData.cjs +30 -21
- package/dist/cjs/helpers/clearZeroClientData.native.js +42 -33
- package/dist/cjs/helpers/clearZeroClientData.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.cjs +80 -42
- package/dist/cjs/helpers/createMutators.native.js +139 -87
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.cjs +19 -13
- package/dist/cjs/helpers/didRunPermissionCheck.native.js +22 -20
- package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.cjs +16 -13
- package/dist/cjs/helpers/ensureLoggedIn.native.js +21 -18
- package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/cjs/helpers/getAuth.cjs +25 -15
- package/dist/cjs/helpers/getAuth.native.js +25 -15
- package/dist/cjs/helpers/getAuth.native.js.map +1 -1
- package/dist/cjs/helpers/mutatorContext.cjs +21 -14
- package/dist/cjs/helpers/mutatorContext.native.js +21 -15
- package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.cjs +126 -81
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +135 -92
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/cjs/helpers/queryContext.cjs +12 -10
- package/dist/cjs/helpers/queryContext.native.js +16 -13
- package/dist/cjs/helpers/queryContext.native.js.map +1 -1
- package/dist/cjs/helpers/showZeroClientError.cjs +24 -19
- package/dist/cjs/helpers/showZeroClientError.native.js +38 -34
- package/dist/cjs/helpers/showZeroClientError.native.js.map +1 -1
- package/dist/cjs/helpers/useZeroDebug.cjs +82 -49
- package/dist/cjs/helpers/useZeroDebug.native.js +83 -55
- package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/cjs/index.cjs +17 -15
- package/dist/cjs/index.native.js +17 -15
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/modelRegistry.cjs +12 -10
- package/dist/cjs/modelRegistry.native.js +12 -10
- package/dist/cjs/modelRegistry.native.js.map +1 -1
- package/dist/cjs/mutations.cjs +66 -42
- package/dist/cjs/mutations.native.js +68 -46
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/cjs/queryRegistry.cjs +13 -10
- package/dist/cjs/queryRegistry.native.js +14 -11
- package/dist/cjs/queryRegistry.native.js.map +1 -1
- package/dist/cjs/resolveQuery.cjs +22 -18
- package/dist/cjs/resolveQuery.native.js +32 -28
- package/dist/cjs/resolveQuery.native.js.map +1 -1
- package/dist/cjs/run.cjs +35 -28
- package/dist/cjs/run.native.js +35 -29
- package/dist/cjs/run.native.js.map +1 -1
- package/dist/cjs/server.cjs +7 -5
- package/dist/cjs/serverWhere.cjs +13 -11
- package/dist/cjs/serverWhere.native.js +13 -11
- package/dist/cjs/serverWhere.native.js.map +1 -1
- package/dist/cjs/serverWhere.test.cjs +83 -55
- package/dist/cjs/serverWhere.test.native.js +72 -50
- package/dist/cjs/serverWhere.test.native.js.map +1 -1
- package/dist/cjs/state.cjs +49 -44
- package/dist/cjs/state.native.js +56 -53
- package/dist/cjs/state.native.js.map +1 -1
- package/dist/cjs/types.cjs +7 -5
- package/dist/cjs/types.native.js +7 -5
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/usePermission.test.cjs +58 -45
- package/dist/cjs/usePermission.test.native.js +59 -48
- package/dist/cjs/usePermission.test.native.js.map +1 -1
- package/dist/cjs/vite-plugin.cjs +41 -21
- package/dist/cjs/vite-plugin.native.js +61 -47
- package/dist/cjs/vite-plugin.native.js.map +1 -1
- package/dist/cjs/where.cjs +39 -24
- package/dist/cjs/where.native.js +44 -29
- package/dist/cjs/where.native.js.map +1 -1
- package/dist/cjs/zeroRunner.cjs +18 -12
- package/dist/cjs/zeroRunner.native.js +22 -16
- package/dist/cjs/zeroRunner.native.js.map +1 -1
- package/dist/cjs/zql.cjs +14 -11
- package/dist/cjs/zql.native.js +19 -17
- package/dist/cjs/zql.native.js.map +1 -1
- package/dist/esm/cli.mjs +43 -38
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +44 -39
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/constants.mjs +2 -2
- package/dist/esm/constants.mjs.map +1 -1
- package/dist/esm/constants.native.js +2 -2
- package/dist/esm/constants.native.js.map +1 -1
- package/dist/esm/createPermissions.mjs +48 -18
- package/dist/esm/createPermissions.mjs.map +1 -1
- package/dist/esm/createPermissions.native.js +125 -71
- package/dist/esm/createPermissions.native.js.map +1 -1
- package/dist/esm/createUseQuery.mjs +32 -21
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +36 -24
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +148 -108
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +217 -168
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroServer.mjs +148 -104
- package/dist/esm/createZeroServer.mjs.map +1 -1
- package/dist/esm/createZeroServer.native.js +143 -113
- package/dist/esm/createZeroServer.native.js.map +1 -1
- package/dist/esm/generate-helpers.mjs +110 -78
- package/dist/esm/generate-helpers.mjs.map +1 -1
- package/dist/esm/generate-helpers.native.js +197 -164
- package/dist/esm/generate-helpers.native.js.map +1 -1
- package/dist/esm/generate-lite.mjs +78 -48
- package/dist/esm/generate-lite.mjs.map +1 -1
- package/dist/esm/generate-lite.native.js +188 -130
- package/dist/esm/generate-lite.native.js.map +1 -1
- package/dist/esm/generate-lite.test.mjs +227 -190
- package/dist/esm/generate-lite.test.mjs.map +1 -1
- package/dist/esm/generate-lite.test.native.js +227 -192
- package/dist/esm/generate-lite.test.native.js.map +1 -1
- package/dist/esm/generate.mjs +427 -265
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +718 -538
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +165 -101
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +165 -101
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/helpers/batchQuery.mjs +17 -8
- package/dist/esm/helpers/batchQuery.mjs.map +1 -1
- package/dist/esm/helpers/batchQuery.native.js +24 -11
- package/dist/esm/helpers/batchQuery.native.js.map +1 -1
- package/dist/esm/helpers/clearZeroClientData.mjs +18 -11
- package/dist/esm/helpers/clearZeroClientData.mjs.map +1 -1
- package/dist/esm/helpers/clearZeroClientData.native.js +30 -23
- package/dist/esm/helpers/clearZeroClientData.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.mjs +53 -17
- package/dist/esm/helpers/createMutators.mjs.map +1 -1
- package/dist/esm/helpers/createMutators.native.js +112 -62
- package/dist/esm/helpers/createMutators.native.js.map +1 -1
- package/dist/esm/helpers/didRunPermissionCheck.mjs +7 -3
- package/dist/esm/helpers/didRunPermissionCheck.mjs.map +1 -1
- package/dist/esm/helpers/didRunPermissionCheck.native.js +9 -9
- package/dist/esm/helpers/didRunPermissionCheck.native.js.map +1 -1
- package/dist/esm/helpers/ensureLoggedIn.mjs +2 -1
- package/dist/esm/helpers/ensureLoggedIn.mjs.map +1 -1
- package/dist/esm/helpers/ensureLoggedIn.native.js +2 -1
- package/dist/esm/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/esm/helpers/getAuth.mjs +10 -2
- package/dist/esm/helpers/getAuth.mjs.map +1 -1
- package/dist/esm/helpers/getAuth.native.js +10 -2
- package/dist/esm/helpers/getAuth.native.js.map +1 -1
- package/dist/esm/helpers/mutatorContext.mjs +9 -4
- package/dist/esm/helpers/mutatorContext.mjs.map +1 -1
- package/dist/esm/helpers/mutatorContext.native.js +8 -4
- package/dist/esm/helpers/mutatorContext.native.js.map +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.mjs +114 -71
- package/dist/esm/helpers/prettyFormatZeroQuery.mjs.map +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js +121 -80
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/esm/helpers/queryContext.native.js +2 -1
- package/dist/esm/helpers/queryContext.native.js.map +1 -1
- package/dist/esm/helpers/showZeroClientError.mjs +12 -9
- package/dist/esm/helpers/showZeroClientError.mjs.map +1 -1
- package/dist/esm/helpers/showZeroClientError.native.js +25 -23
- package/dist/esm/helpers/showZeroClientError.native.js.map +1 -1
- package/dist/esm/helpers/useZeroDebug.mjs +67 -36
- package/dist/esm/helpers/useZeroDebug.mjs.map +1 -1
- package/dist/esm/helpers/useZeroDebug.native.js +68 -42
- package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/esm/mutations.mjs +51 -29
- package/dist/esm/mutations.mjs.map +1 -1
- package/dist/esm/mutations.native.js +53 -33
- package/dist/esm/mutations.native.js.map +1 -1
- package/dist/esm/queryRegistry.mjs +1 -0
- package/dist/esm/queryRegistry.mjs.map +1 -1
- package/dist/esm/queryRegistry.native.js +2 -1
- package/dist/esm/queryRegistry.native.js.map +1 -1
- package/dist/esm/resolveQuery.mjs +10 -8
- package/dist/esm/resolveQuery.mjs.map +1 -1
- package/dist/esm/resolveQuery.native.js +20 -18
- package/dist/esm/resolveQuery.native.js.map +1 -1
- package/dist/esm/run.mjs +21 -16
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/run.native.js +20 -16
- package/dist/esm/run.native.js.map +1 -1
- package/dist/esm/serverWhere.mjs +1 -1
- package/dist/esm/serverWhere.mjs.map +1 -1
- package/dist/esm/serverWhere.native.js +1 -1
- package/dist/esm/serverWhere.native.js.map +1 -1
- package/dist/esm/serverWhere.test.mjs +79 -51
- package/dist/esm/serverWhere.test.mjs.map +1 -1
- package/dist/esm/serverWhere.test.native.js +68 -46
- package/dist/esm/serverWhere.test.native.js.map +1 -1
- package/dist/esm/state.mjs +35 -32
- package/dist/esm/state.mjs.map +1 -1
- package/dist/esm/state.native.js +41 -40
- package/dist/esm/state.native.js.map +1 -1
- package/dist/esm/usePermission.test.mjs +53 -40
- package/dist/esm/usePermission.test.mjs.map +1 -1
- package/dist/esm/usePermission.test.native.js +54 -43
- package/dist/esm/usePermission.test.native.js.map +1 -1
- package/dist/esm/vite-plugin.mjs +27 -9
- package/dist/esm/vite-plugin.mjs.map +1 -1
- package/dist/esm/vite-plugin.native.js +47 -35
- package/dist/esm/vite-plugin.native.js.map +1 -1
- package/dist/esm/where.mjs +24 -11
- package/dist/esm/where.mjs.map +1 -1
- package/dist/esm/where.native.js +29 -16
- package/dist/esm/where.native.js.map +1 -1
- package/dist/esm/zeroRunner.mjs +6 -2
- package/dist/esm/zeroRunner.mjs.map +1 -1
- package/dist/esm/zeroRunner.native.js +8 -4
- package/dist/esm/zeroRunner.native.js.map +1 -1
- package/dist/esm/zql.mjs +2 -1
- package/dist/esm/zql.mjs.map +1 -1
- package/dist/esm/zql.native.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,22 +1,35 @@
|
|
|
1
1
|
import { sleep } from "@take-out/helpers";
|
|
2
2
|
function createBatchQuery(server) {
|
|
3
|
-
return async function (buildQuery, mapper) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
return async function batchQuery(buildQuery, mapper) {
|
|
4
|
+
var {
|
|
5
|
+
chunk,
|
|
6
|
+
pause = 0,
|
|
7
|
+
stopAfter = 1e5
|
|
8
|
+
} = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {
|
|
9
|
+
chunk: 20
|
|
10
|
+
};
|
|
11
|
+
var hasMore = true;
|
|
12
|
+
var last = null;
|
|
13
|
+
var iterations = 0;
|
|
14
|
+
while (hasMore) {
|
|
11
15
|
var results = await server.query(function (q) {
|
|
12
16
|
var query = buildQuery(q).limit(chunk);
|
|
13
|
-
|
|
17
|
+
if (last) {
|
|
18
|
+
query = query.start(last);
|
|
19
|
+
}
|
|
20
|
+
return query;
|
|
14
21
|
});
|
|
15
|
-
|
|
22
|
+
await mapper(results);
|
|
23
|
+
if (results.length < chunk) {
|
|
24
|
+
hasMore = false;
|
|
25
|
+
}
|
|
26
|
+
if (iterations > stopAfter) {
|
|
16
27
|
console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
|
|
17
28
|
break;
|
|
18
29
|
}
|
|
19
|
-
|
|
30
|
+
if (pause) {
|
|
31
|
+
await sleep(pause);
|
|
32
|
+
}
|
|
20
33
|
}
|
|
21
34
|
};
|
|
22
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["sleep","createBatchQuery","server","buildQuery","mapper","chunk","pause","stopAfter","arguments","length","hasMore","last","iterations","results","query","q","limit","start","console","error"],"sources":["../../../src/helpers/batchQuery.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAA,QAAa;AAQf,SAASC,iBAAiBC,MAAA,EAAyB;EACxD,OAAO,
|
|
1
|
+
{"version":3,"names":["sleep","createBatchQuery","server","batchQuery","buildQuery","mapper","chunk","pause","stopAfter","arguments","length","hasMore","last","iterations","results","query","q","limit","start","console","error"],"sources":["../../../src/helpers/batchQuery.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAA,QAAa;AAQf,SAASC,iBAAiBC,MAAA,EAAyB;EACxD,OAAO,eAAeC,WACpBC,UAAA,EACAC,MAAA,EACA;IACE;MAAAC,KAAA;MAAAC,KAAA;MAAAC,SAAA;IAAA,IAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;MACAH,KAAA,EAAQ;IACR;IACF,IAIMK,OAAO,GAAG,IAChB;IACA,IAAIC,IAAA,OAAU;IACd,IAAIC,UAAoB;IACxB,OAAIF,OAAA;MAEJ,IAAAG,OAAO,GAAS,MAAAZ,MAAA,CAAAa,KAAA,WAAAC,CAAA;QACd,IAAMD,KAAA,GAAAX,UAAgB,CAAAY,CAAA,EAAAC,KAAO,CAAAX,KAAO;QAClC,IAAIM,IAAA;UAEJG,KAAI,GAAMA,KAAA,CAAAG,KAAA,CAAAN,IAAA;QACR;QACF,OAAAG,KAAA;MAEA;MACF,MAACV,MAAA,CAAAS,OAAA;MAED,IAAAA,OAAM,CAAAJ,MAAO,GAAiBJ,KAAA;QAE9BK,OAAI,GAAQ;MACV;MACF,IAAAE,UAAA,GAAAL,SAAA;QAEAW,OAAI,CAAAC,KAAA,kDAAwBZ,SAAA;QAC1B;MACA;MACF,IAAAD,KAAA;QAEA,MAAIP,KAAO,CAAAO,KAAA;MACT;IAAiB;EACnB;AACF;AAEJ,S","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const ZERO_DB_PATTERNS = ["zero", "replicache", "roc"]
|
|
2
|
-
|
|
1
|
+
const ZERO_DB_PATTERNS = ["zero", "replicache", "roc"];
|
|
2
|
+
const ZERO_DB_PREFIXES = ["rep:"];
|
|
3
3
|
function matchesZeroDB(name) {
|
|
4
4
|
const lower = name.toLowerCase();
|
|
5
5
|
return ZERO_DB_PATTERNS.some(p => lower.includes(p)) || ZERO_DB_PREFIXES.some(p => lower.startsWith(p));
|
|
@@ -7,7 +7,9 @@ function matchesZeroDB(name) {
|
|
|
7
7
|
function deleteIndexedDB(name) {
|
|
8
8
|
return new Promise((resolve, reject) => {
|
|
9
9
|
const req = indexedDB.deleteDatabase(name);
|
|
10
|
-
req.onsuccess = () => resolve()
|
|
10
|
+
req.onsuccess = () => resolve();
|
|
11
|
+
req.onerror = () => reject(req.error ?? new Error("failed to delete database"));
|
|
12
|
+
req.onblocked = () => reject(new Error("database deletion blocked"));
|
|
11
13
|
});
|
|
12
14
|
}
|
|
13
15
|
async function clearZeroClientData(options = {}) {
|
|
@@ -15,13 +17,15 @@ async function clearZeroClientData(options = {}) {
|
|
|
15
17
|
closeZero,
|
|
16
18
|
onCleared,
|
|
17
19
|
onError,
|
|
18
|
-
reload =
|
|
20
|
+
reload = true,
|
|
19
21
|
reloadDelay = 1e3
|
|
20
22
|
} = options;
|
|
21
23
|
try {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
if (closeZero) {
|
|
25
|
+
await closeZero().catch(() => {});
|
|
26
|
+
}
|
|
27
|
+
const databases = await indexedDB.databases();
|
|
28
|
+
const zeroDbs = databases.filter(db => db.name && matchesZeroDB(db.name));
|
|
25
29
|
if (zeroDbs.length > 0) {
|
|
26
30
|
await Promise.all(zeroDbs.map(db => deleteIndexedDB(db.name)));
|
|
27
31
|
const names = zeroDbs.map(db => db.name);
|
|
@@ -38,11 +42,14 @@ async function clearZeroClientData(options = {}) {
|
|
|
38
42
|
names
|
|
39
43
|
});
|
|
40
44
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
45
|
+
if (reload) {
|
|
46
|
+
setTimeout(() => {
|
|
47
|
+
window.location.reload();
|
|
48
|
+
}, reloadDelay);
|
|
49
|
+
}
|
|
44
50
|
} catch (error) {
|
|
45
|
-
console.error("[on-zero] error clearing client data:", error)
|
|
51
|
+
console.error("[on-zero] error clearing client data:", error);
|
|
52
|
+
onError?.(error);
|
|
46
53
|
}
|
|
47
54
|
}
|
|
48
55
|
export { clearZeroClientData };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ZERO_DB_PATTERNS","ZERO_DB_PREFIXES","matchesZeroDB","name","lower","toLowerCase","some","p","includes","startsWith","deleteIndexedDB","Promise","resolve","reject","req","indexedDB","deleteDatabase","onsuccess","onerror","error","Error","onblocked","clearZeroClientData","options","closeZero","onCleared","onError","reload","reloadDelay","catch","databases","zeroDbs","filter","db","length","all","map","names","count","allWithNames","setTimeout","window","location","console"],"sources":["../../../src/helpers/clearZeroClientData.ts"],"sourcesContent":[null],"mappings":"AAAA,MAAMA,gBAAA,GAAmB,CAAC,QAAQ,cAAc,KAAK;
|
|
1
|
+
{"version":3,"names":["ZERO_DB_PATTERNS","ZERO_DB_PREFIXES","matchesZeroDB","name","lower","toLowerCase","some","p","includes","startsWith","deleteIndexedDB","Promise","resolve","reject","req","indexedDB","deleteDatabase","onsuccess","onerror","error","Error","onblocked","clearZeroClientData","options","closeZero","onCleared","onError","reload","reloadDelay","catch","databases","zeroDbs","filter","db","length","all","map","names","count","allWithNames","setTimeout","window","location","console"],"sources":["../../../src/helpers/clearZeroClientData.ts"],"sourcesContent":[null],"mappings":"AAAA,MAAMA,gBAAA,GAAmB,CAAC,QAAQ,cAAc,KAAK;AACrD,MAAMC,gBAAA,GAAmB,CAAC,MAAM;AAEhC,SAASC,cAAcC,IAAA,EAAuB;EAC5C,MAAMC,KAAA,GAAQD,IAAA,CAAKE,WAAA,CAAY;EAC/B,OACEL,gBAAA,CAAiBM,IAAA,CAAMC,CAAA,IAAMH,KAAA,CAAMI,QAAA,CAASD,CAAC,CAAC,KAC9CN,gBAAA,CAAiBK,IAAA,CAAMC,CAAA,IAAMH,KAAA,CAAMK,UAAA,CAAWF,CAAC,CAAC;AAEpD;AAEA,SAASG,gBAAgBP,IAAA,EAA6B;EACpD,OAAO,IAAIQ,OAAA,CAAc,CAACC,OAAA,EAASC,MAAA,KAAW;IAC5C,MAAMC,GAAA,GAAMC,SAAA,CAAUC,cAAA,CAAeb,IAAI;IACzCW,GAAA,CAAIG,SAAA,GAAY,MAAML,OAAA,CAAQ;IAC9BE,GAAA,CAAII,OAAA,GAAU,MAAML,MAAA,CAAOC,GAAA,CAAIK,KAAA,IAAS,IAAIC,KAAA,CAAM,2BAA2B,CAAC;IAC9EN,GAAA,CAAIO,SAAA,GAAY,MAAMR,MAAA,CAAO,IAAIO,KAAA,CAAM,2BAA2B,CAAC;EACrE,CAAC;AACH;AAeA,eAAsBE,oBAAoBC,OAAA,GAAsC,CAAC,GAAG;EAClF,MAAM;IAAEC,SAAA;IAAWC,SAAA;IAAWC,OAAA;IAASC,MAAA,GAAS;IAAMC,WAAA,GAAc;EAAK,IAAIL,OAAA;EAE7E,IAAI;IACF,IAAIC,SAAA,EAAW;MACb,MAAMA,SAAA,CAAU,EAAEK,KAAA,CAAM,MAAM,CAAC,CAAC;IAClC;IAEA,MAAMC,SAAA,GAAY,MAAMf,SAAA,CAAUe,SAAA,CAAU;IAE5C,MAAMC,OAAA,GAAUD,SAAA,CAAUE,MAAA,CAAQC,EAAA,IAAOA,EAAA,CAAG9B,IAAA,IAAQD,aAAA,CAAc+B,EAAA,CAAG9B,IAAI,CAAC;IAE1E,IAAI4B,OAAA,CAAQG,MAAA,GAAS,GAAG;MACtB,MAAMvB,OAAA,CAAQwB,GAAA,CAAIJ,OAAA,CAAQK,GAAA,CAAKH,EAAA,IAAOvB,eAAA,CAAgBuB,EAAA,CAAG9B,IAAK,CAAC,CAAC;MAChE,MAAMkC,KAAA,GAAQN,OAAA,CAAQK,GAAA,CAAKH,EAAA,IAAOA,EAAA,CAAG9B,IAAK;MAC1CsB,SAAA,GAAY;QAAEa,KAAA,EAAOP,OAAA,CAAQG,MAAA;QAAQG;MAAM,CAAC;IAC9C,OAAO;MAEL,MAAME,YAAA,GAAeT,SAAA,CAAUE,MAAA,CAAQC,EAAA,IAAOA,EAAA,CAAG9B,IAAI;MACrD,MAAMQ,OAAA,CAAQwB,GAAA,CAAII,YAAA,CAAaH,GAAA,CAAKH,EAAA,IAAOvB,eAAA,CAAgBuB,EAAA,CAAG9B,IAAK,CAAC,CAAC;MACrE,MAAMkC,KAAA,GAAQE,YAAA,CAAaH,GAAA,CAAKH,EAAA,IAAOA,EAAA,CAAG9B,IAAK;MAC/CsB,SAAA,GAAY;QAAEa,KAAA,EAAOC,YAAA,CAAaL,MAAA;QAAQG;MAAM,CAAC;IACnD;IAEA,IAAIV,MAAA,EAAQ;MACVa,UAAA,CAAW,MAAM;QACfC,MAAA,CAAOC,QAAA,CAASf,MAAA,CAAO;MACzB,GAAGC,WAAW;IAChB;EACF,SAAST,KAAA,EAAO;IACdwB,OAAA,CAAQxB,KAAA,CAAM,yCAAyCA,KAAK;IAC5DO,OAAA,GAAUP,KAAK;EACjB;AACF","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var ZERO_DB_PATTERNS = ["zero", "replicache", "roc"]
|
|
2
|
-
|
|
1
|
+
var ZERO_DB_PATTERNS = ["zero", "replicache", "roc"];
|
|
2
|
+
var ZERO_DB_PREFIXES = ["rep:"];
|
|
3
3
|
function matchesZeroDB(name) {
|
|
4
4
|
var lower = name.toLowerCase();
|
|
5
5
|
return ZERO_DB_PATTERNS.some(function (p) {
|
|
@@ -13,29 +13,33 @@ function deleteIndexedDB(name) {
|
|
|
13
13
|
var req = indexedDB.deleteDatabase(name);
|
|
14
14
|
req.onsuccess = function () {
|
|
15
15
|
return resolve();
|
|
16
|
-
}
|
|
16
|
+
};
|
|
17
|
+
req.onerror = function () {
|
|
17
18
|
var _req_error;
|
|
18
19
|
return reject((_req_error = req.error) !== null && _req_error !== void 0 ? _req_error : new Error("failed to delete database"));
|
|
19
|
-
}
|
|
20
|
+
};
|
|
21
|
+
req.onblocked = function () {
|
|
20
22
|
return reject(new Error("database deletion blocked"));
|
|
21
23
|
};
|
|
22
24
|
});
|
|
23
25
|
}
|
|
24
26
|
async function clearZeroClientData() {
|
|
25
|
-
var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
28
|
+
var {
|
|
29
|
+
closeZero,
|
|
30
|
+
onCleared,
|
|
31
|
+
onError,
|
|
32
|
+
reload = true,
|
|
33
|
+
reloadDelay = 1e3
|
|
34
|
+
} = options;
|
|
33
35
|
try {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
if (closeZero) {
|
|
37
|
+
await closeZero().catch(function () {});
|
|
38
|
+
}
|
|
39
|
+
var databases = await indexedDB.databases();
|
|
40
|
+
var zeroDbs = databases.filter(function (db) {
|
|
41
|
+
return db.name && matchesZeroDB(db.name);
|
|
42
|
+
});
|
|
39
43
|
if (zeroDbs.length > 0) {
|
|
40
44
|
await Promise.all(zeroDbs.map(function (db) {
|
|
41
45
|
return deleteIndexedDB(db.name);
|
|
@@ -43,7 +47,7 @@ async function clearZeroClientData() {
|
|
|
43
47
|
var names = zeroDbs.map(function (db) {
|
|
44
48
|
return db.name;
|
|
45
49
|
});
|
|
46
|
-
onCleared
|
|
50
|
+
onCleared === null || onCleared === void 0 ? void 0 : onCleared({
|
|
47
51
|
count: zeroDbs.length,
|
|
48
52
|
names
|
|
49
53
|
});
|
|
@@ -57,16 +61,19 @@ async function clearZeroClientData() {
|
|
|
57
61
|
var names1 = allWithNames.map(function (db) {
|
|
58
62
|
return db.name;
|
|
59
63
|
});
|
|
60
|
-
onCleared
|
|
64
|
+
onCleared === null || onCleared === void 0 ? void 0 : onCleared({
|
|
61
65
|
count: allWithNames.length,
|
|
62
66
|
names: names1
|
|
63
67
|
});
|
|
64
68
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
69
|
+
if (reload) {
|
|
70
|
+
setTimeout(function () {
|
|
71
|
+
window.location.reload();
|
|
72
|
+
}, reloadDelay);
|
|
73
|
+
}
|
|
68
74
|
} catch (error) {
|
|
69
|
-
console.error("[on-zero] error clearing client data:", error)
|
|
75
|
+
console.error("[on-zero] error clearing client data:", error);
|
|
76
|
+
onError === null || onError === void 0 ? void 0 : onError(error);
|
|
70
77
|
}
|
|
71
78
|
}
|
|
72
79
|
export { clearZeroClientData };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ZERO_DB_PATTERNS","ZERO_DB_PREFIXES","matchesZeroDB","name","lower","toLowerCase","some","p","includes","startsWith","deleteIndexedDB","Promise","resolve","reject","req","indexedDB","deleteDatabase","onsuccess","onerror","_req_error","error","Error","onblocked","clearZeroClientData","options","arguments","length","closeZero","onCleared","onError","reload","reloadDelay","catch","databases","zeroDbs","filter","db"],"sources":["../../../src/helpers/clearZeroClientData.ts"],"sourcesContent":[null],"mappings":"AAAA,IAAAA,gBAAM,
|
|
1
|
+
{"version":3,"names":["ZERO_DB_PATTERNS","ZERO_DB_PREFIXES","matchesZeroDB","name","lower","toLowerCase","some","p","includes","startsWith","deleteIndexedDB","Promise","resolve","reject","req","indexedDB","deleteDatabase","onsuccess","onerror","_req_error","error","Error","onblocked","clearZeroClientData","options","arguments","length","closeZero","onCleared","onError","reload","reloadDelay","catch","databases","zeroDbs","filter","db"],"sources":["../../../src/helpers/clearZeroClientData.ts"],"sourcesContent":[null],"mappings":"AAAA,IAAAA,gBAAM,IACN,MAAM,EAEN,YAAS,EACP,MACA;AAIF,IAAAC,gBAAA,IAEA,OACE;AACE,SAAAC,aAAYA,CAAAC,IAAU;EACtB,IAAAC,KAAI,GAAAD,IAAA,CAAAE,WAAkB;EACtB,OAAIL,gBAAgB,CAAAM,IAAA,CAAO,UAAIC,CAAA;IAC/B,OAAIH,KAAA,CAAAI,QAAY,CAAMD,CAAA;EACxB,CAAC,KAAAN,gBAAA,CAAAK,IAAA,WAAAC,CAAA;IACH,OAAAH,KAAA,CAAAK,UAAA,CAAAF,CAAA;EAeA;AACE;AAEA,SAAIG,gBAAAP,IAAA;EACF,OAAI,IAAAQ,OAAW,WAAAC,OAAA,EAAAC,MAAA;IACb,IAAAC,GAAA,GAAMC,SAAU,CAAEC,cAAY,CAAAb,IAAA;IAAAW,GAAE,CAAAG,SAAA;MAClC,OAAAL,OAAA;IAEA;IAEAE,GAAA,CAAAI,OAAM,eAAU;MAEhB,IAAIC,UAAQ;MACV,OAAMN,MAAA,CAAQ,CAAAM,UAAI,GAAQL,GAAK,CAAAM,KAAA,MAAO,QAAAD,UAAwB,KAAE,SAAAA,UAAA,OAAAE,KAAA;IAChE;IACAP,GAAA,CAAAQ,SAAA,GAAc,YAAO;MACvB,OAAOT,MAAA,KAAAQ,KAAA;IAEL;EACA;AACA;AACA,eAAAE,mBAAqBA,CAAA;EAA4B,IACnDC,OAAA,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;EAEA;IAAIE,SAAQ;IAAAC,SAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,WAAA;EAAA,IAAAP,OAAA;EACV;IACE,IAAAG,SAAO;MACT,MAAGA,SAAW,GAAAK,KAAA,cAChB;IACF;IACE,IAAAC,SAAQ,GAAM,MAAAlB,SAAA,CAAAkB,SAAA;IACd,IAAAC,OAAU,GAAAD,SAAK,CAAAE,MAAA,WAAAC,EAAA;MACjB,OAAAA,EAAA,CAAAjC,IAAA,IAAAD,aAAA,CAAAkC,EAAA,CAAAjC,IAAA;IACF","ignoreList":[]}
|
|
@@ -11,8 +11,8 @@ function createMutators({
|
|
|
11
11
|
validateMutation,
|
|
12
12
|
mutationValidators
|
|
13
13
|
}) {
|
|
14
|
-
const serverActions = createServerActions?.()
|
|
15
|
-
|
|
14
|
+
const serverActions = createServerActions?.();
|
|
15
|
+
const modelMutators = mapObject(models, val => val.mutate || {});
|
|
16
16
|
function withContext(fn) {
|
|
17
17
|
return async (tx, ...args) => {
|
|
18
18
|
const mutationContext = {
|
|
@@ -27,23 +27,47 @@ function createMutators({
|
|
|
27
27
|
asyncTasks: asyncTasks || {}
|
|
28
28
|
} : void 0
|
|
29
29
|
};
|
|
30
|
-
return await runWithContext(mutationContext, () =>
|
|
30
|
+
return await runWithContext(mutationContext, () => {
|
|
31
|
+
return fn(mutationContext, ...args);
|
|
32
|
+
});
|
|
31
33
|
};
|
|
32
34
|
}
|
|
33
35
|
function withDevelopmentLogging(name, fn) {
|
|
34
|
-
if (process.env.NODE_ENV !== "development" && !process.env.IS_TESTING)
|
|
36
|
+
if (process.env.NODE_ENV !== "development" && !process.env.IS_TESTING) {
|
|
37
|
+
return fn;
|
|
38
|
+
}
|
|
35
39
|
const debug = process.env.DEBUG;
|
|
36
40
|
return async (...args) => {
|
|
37
41
|
const startTime = performance.now();
|
|
38
42
|
try {
|
|
39
|
-
debug && environment === "server"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
if (debug && environment === "server") {
|
|
44
|
+
console.info(`[mutator] ${name} start`);
|
|
45
|
+
}
|
|
46
|
+
const result = await fn(...args);
|
|
47
|
+
const duration = (performance.now() - startTime).toFixed(2);
|
|
48
|
+
if (debug) {
|
|
49
|
+
if (environment === "client") {
|
|
50
|
+
console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`);
|
|
51
|
+
console.info("\u2192", args[1]);
|
|
52
|
+
console.info("\u2190", result);
|
|
53
|
+
console.trace();
|
|
54
|
+
console.groupEnd();
|
|
55
|
+
} else {
|
|
56
|
+
console.info(`[mutator] ${name} completed in ${duration}ms`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return result;
|
|
43
60
|
} catch (error) {
|
|
44
61
|
if (debug) {
|
|
45
62
|
const duration = (performance.now() - startTime).toFixed(2);
|
|
46
|
-
error?.name === "PermissionError"
|
|
63
|
+
if (error?.name === "PermissionError") {
|
|
64
|
+
console.info(`[mutator] ${name} denied (${duration}ms)`);
|
|
65
|
+
} else {
|
|
66
|
+
console.groupCollapsed(`[mutator] ${name} failed after ${duration}ms`);
|
|
67
|
+
console.error("error:", error);
|
|
68
|
+
console.info("arguments:", JSON.stringify(args[1], null, 2));
|
|
69
|
+
console.groupEnd();
|
|
70
|
+
}
|
|
47
71
|
}
|
|
48
72
|
throw error;
|
|
49
73
|
}
|
|
@@ -61,20 +85,32 @@ function createMutators({
|
|
|
61
85
|
}
|
|
62
86
|
function withValidation(tableName, mutatorName, fn) {
|
|
63
87
|
const validator = mutationValidators?.[tableName]?.[mutatorName];
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
88
|
+
if (!validateMutation && !validator) {
|
|
89
|
+
return fn;
|
|
90
|
+
}
|
|
91
|
+
return async (...args) => {
|
|
92
|
+
if (validator && args[1] != null) {
|
|
93
|
+
const valibot = await import("valibot");
|
|
94
|
+
valibot.parse(validator, args[1]);
|
|
95
|
+
}
|
|
96
|
+
if (validateMutation) {
|
|
97
|
+
await validateMutation({
|
|
98
|
+
authData: environment === "client" ? getAuthData() : authData,
|
|
99
|
+
tableName,
|
|
100
|
+
mutatorName,
|
|
101
|
+
args: args[1]
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return fn(...args);
|
|
105
|
+
};
|
|
70
106
|
}
|
|
71
107
|
function decorateMutators(modules) {
|
|
72
108
|
const result = {};
|
|
73
109
|
for (const [moduleName, moduleExports] of Object.entries(modules)) {
|
|
74
110
|
result[moduleName] = {};
|
|
75
111
|
for (const [name] of Object.entries(moduleExports)) {
|
|
76
|
-
const fullName = `${moduleName}.${name}
|
|
77
|
-
|
|
112
|
+
const fullName = `${moduleName}.${name}`;
|
|
113
|
+
const getDynamicFn = () => modules[moduleName][name];
|
|
78
114
|
result[moduleName][name] = withDevelopmentLogging(fullName, withTimeoutGuard(fullName, withValidation(moduleName, name, withContext((...args) => getDynamicFn()(...args)))));
|
|
79
115
|
}
|
|
80
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mapObject","time","getAuthData","runWithContext","createMutators","environment","authData","createServerActions","asyncTasks","can","models","validateMutation","mutationValidators","serverActions","modelMutators","val","mutate","withContext","fn","tx","args","mutationContext","server","actions","withDevelopmentLogging","name","process","env","NODE_ENV","IS_TESTING","debug","DEBUG","startTime","performance","now","console","info","result","duration","toFixed","groupCollapsed","trace","groupEnd","error","JSON","stringify","withTimeoutGuard","timeoutMs","ms","minutes","timeoutPromise","Promise","_","reject","setTimeout","Error","race","withValidation","tableName","mutatorName","validator","parse","decorateMutators","modules","moduleName","moduleExports","Object","entries","fullName","getDynamicFn"],"sources":["../../../src/helpers/createMutators.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,IAAA,QAAY;AAEhC,SAASC,WAAA,QAAmB;AAC5B,SAASC,cAAA,QAAsB;AAoBxB,SAASC,eAA6C;EAC3DC,WAAA;EACAC,QAAA;EACAC,mBAAA;EACAC,UAAA,GAAa,EAAC;EACdC,GAAA;EACAC,MAAA;EACAC,gBAAA;EACAC;AACF,GAU4B;EAC1B,MAAMC,aAAA,GAAgBN,mBAAA,GAAsB;
|
|
1
|
+
{"version":3,"names":["mapObject","time","getAuthData","runWithContext","createMutators","environment","authData","createServerActions","asyncTasks","can","models","validateMutation","mutationValidators","serverActions","modelMutators","val","mutate","withContext","fn","tx","args","mutationContext","server","actions","withDevelopmentLogging","name","process","env","NODE_ENV","IS_TESTING","debug","DEBUG","startTime","performance","now","console","info","result","duration","toFixed","groupCollapsed","trace","groupEnd","error","JSON","stringify","withTimeoutGuard","timeoutMs","ms","minutes","timeoutPromise","Promise","_","reject","setTimeout","Error","race","withValidation","tableName","mutatorName","validator","valibot","parse","decorateMutators","modules","moduleName","moduleExports","Object","entries","fullName","getDynamicFn"],"sources":["../../../src/helpers/createMutators.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -3,22 +3,24 @@ import { getAuthData } from "../state.native.js";
|
|
|
3
3
|
import { runWithContext } from "./mutatorContext.native.js";
|
|
4
4
|
function createMutators(param) {
|
|
5
5
|
var {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
6
|
+
environment,
|
|
7
|
+
authData,
|
|
8
|
+
createServerActions,
|
|
9
|
+
asyncTasks = [],
|
|
10
|
+
can,
|
|
11
|
+
models,
|
|
12
|
+
validateMutation,
|
|
13
|
+
mutationValidators
|
|
14
|
+
} = param;
|
|
15
|
+
var serverActions = createServerActions === null || createServerActions === void 0 ? void 0 : createServerActions();
|
|
16
|
+
var modelMutators = mapObject(models, function (val) {
|
|
17
|
+
return val.mutate || {};
|
|
18
|
+
});
|
|
19
19
|
function withContext(fn) {
|
|
20
20
|
return async function (tx) {
|
|
21
|
-
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++)
|
|
21
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
22
|
+
args[_key - 1] = arguments[_key];
|
|
23
|
+
}
|
|
22
24
|
var mutationContext = {
|
|
23
25
|
tx,
|
|
24
26
|
// on client, read authData dynamically to avoid stale closure during auth transitions
|
|
@@ -37,20 +39,44 @@ function createMutators(param) {
|
|
|
37
39
|
};
|
|
38
40
|
}
|
|
39
41
|
function withDevelopmentLogging(name, fn) {
|
|
40
|
-
if (process.env.NODE_ENV !== "development" && !process.env.IS_TESTING)
|
|
42
|
+
if (process.env.NODE_ENV !== "development" && !process.env.IS_TESTING) {
|
|
43
|
+
return fn;
|
|
44
|
+
}
|
|
41
45
|
var debug = process.env.DEBUG;
|
|
42
46
|
return async function () {
|
|
43
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++)
|
|
47
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
48
|
+
args[_key] = arguments[_key];
|
|
49
|
+
}
|
|
44
50
|
var startTime = performance.now();
|
|
45
51
|
try {
|
|
46
|
-
debug && environment === "server"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
52
|
+
if (debug && environment === "server") {
|
|
53
|
+
console.info(`[mutator] ${name} start`);
|
|
54
|
+
}
|
|
55
|
+
var result = await fn(...args);
|
|
56
|
+
var duration = (performance.now() - startTime).toFixed(2);
|
|
57
|
+
if (debug) {
|
|
58
|
+
if (environment === "client") {
|
|
59
|
+
console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`);
|
|
60
|
+
console.info("\u2192", args[1]);
|
|
61
|
+
console.info("\u2190", result);
|
|
62
|
+
console.trace();
|
|
63
|
+
console.groupEnd();
|
|
64
|
+
} else {
|
|
65
|
+
console.info(`[mutator] ${name} completed in ${duration}ms`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return result;
|
|
50
69
|
} catch (error) {
|
|
51
70
|
if (debug) {
|
|
52
71
|
var duration1 = (performance.now() - startTime).toFixed(2);
|
|
53
|
-
error
|
|
72
|
+
if ((error === null || error === void 0 ? void 0 : error.name) === "PermissionError") {
|
|
73
|
+
console.info(`[mutator] ${name} denied (${duration1}ms)`);
|
|
74
|
+
} else {
|
|
75
|
+
console.groupCollapsed(`[mutator] ${name} failed after ${duration1}ms`);
|
|
76
|
+
console.error("error:", error);
|
|
77
|
+
console.info("arguments:", JSON.stringify(args[1], null, 2));
|
|
78
|
+
console.groupEnd();
|
|
79
|
+
}
|
|
54
80
|
}
|
|
55
81
|
throw error;
|
|
56
82
|
}
|
|
@@ -59,7 +85,9 @@ function createMutators(param) {
|
|
|
59
85
|
function withTimeoutGuard(name, fn) {
|
|
60
86
|
var timeoutMs = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : time.ms.minutes(1);
|
|
61
87
|
return async function () {
|
|
62
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++)
|
|
88
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
89
|
+
args[_key] = arguments[_key];
|
|
90
|
+
}
|
|
63
91
|
var timeoutPromise = new Promise(function (_, reject) {
|
|
64
92
|
setTimeout(function () {
|
|
65
93
|
reject(new Error(`[mutator] ${name} timeout after ${timeoutMs}ms`));
|
|
@@ -69,63 +97,85 @@ function createMutators(param) {
|
|
|
69
97
|
};
|
|
70
98
|
}
|
|
71
99
|
function withValidation(tableName, mutatorName, fn) {
|
|
72
|
-
var _mutationValidators_tableName
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
100
|
+
var _mutationValidators_tableName;
|
|
101
|
+
var validator = mutationValidators === null || mutationValidators === void 0 ? void 0 : (_mutationValidators_tableName = mutationValidators[tableName]) === null || _mutationValidators_tableName === void 0 ? void 0 : _mutationValidators_tableName[mutatorName];
|
|
102
|
+
if (!validateMutation && !validator) {
|
|
103
|
+
return fn;
|
|
104
|
+
}
|
|
105
|
+
return async function () {
|
|
106
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
107
|
+
args[_key] = arguments[_key];
|
|
108
|
+
}
|
|
76
109
|
if (validator && args[1] != null) {
|
|
77
110
|
var valibot = await import("valibot");
|
|
78
111
|
valibot.parse(validator, args[1]);
|
|
79
112
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
113
|
+
if (validateMutation) {
|
|
114
|
+
await validateMutation({
|
|
115
|
+
authData: environment === "client" ? getAuthData() : authData,
|
|
116
|
+
tableName,
|
|
117
|
+
mutatorName,
|
|
118
|
+
args: args[1]
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
return fn(...args);
|
|
86
122
|
};
|
|
87
123
|
}
|
|
88
124
|
function decorateMutators(modules) {
|
|
89
|
-
var result = {}
|
|
90
|
-
|
|
91
|
-
_didIteratorError =
|
|
125
|
+
var result = {};
|
|
126
|
+
var _iteratorNormalCompletion = true,
|
|
127
|
+
_didIteratorError = false,
|
|
92
128
|
_iteratorError = void 0;
|
|
93
129
|
try {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
130
|
+
var _loop = function () {
|
|
131
|
+
var [moduleName, moduleExports] = _step.value;
|
|
132
|
+
result[moduleName] = {};
|
|
133
|
+
var _iteratorNormalCompletion2 = true,
|
|
134
|
+
_didIteratorError2 = false,
|
|
135
|
+
_iteratorError2 = void 0;
|
|
136
|
+
try {
|
|
137
|
+
var _loop2 = function () {
|
|
138
|
+
var [name] = _step1.value;
|
|
139
|
+
var fullName = `${moduleName}.${name}`;
|
|
140
|
+
var getDynamicFn = function () {
|
|
141
|
+
return modules[moduleName][name];
|
|
142
|
+
};
|
|
143
|
+
result[moduleName][name] = withDevelopmentLogging(fullName, withTimeoutGuard(fullName, withValidation(moduleName, name, withContext(function () {
|
|
144
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
145
|
+
args[_key] = arguments[_key];
|
|
146
|
+
}
|
|
147
|
+
return getDynamicFn()(...args);
|
|
148
|
+
}))));
|
|
149
|
+
};
|
|
150
|
+
for (var _iterator2 = Object.entries(moduleExports)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion2 = (_step1 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) _loop2();
|
|
151
|
+
} catch (err) {
|
|
152
|
+
_didIteratorError2 = true;
|
|
153
|
+
_iteratorError2 = err;
|
|
154
|
+
} finally {
|
|
100
155
|
try {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
getDynamicFn = function () {
|
|
105
|
-
return modules[moduleName][name];
|
|
106
|
-
};
|
|
107
|
-
result[moduleName][name] = withDevelopmentLogging(fullName, withTimeoutGuard(fullName, withValidation(moduleName, name, withContext(function () {
|
|
108
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
|
|
109
|
-
return getDynamicFn()(...args);
|
|
110
|
-
}))));
|
|
111
|
-
}, _iterator2 = Object.entries(moduleExports)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion2 = (_step1 = _iterator2.next()).done); _iteratorNormalCompletion2 = !0) _loop2();
|
|
112
|
-
} catch (err) {
|
|
113
|
-
_didIteratorError2 = !0, _iteratorError2 = err;
|
|
156
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
157
|
+
_iterator2.return();
|
|
158
|
+
}
|
|
114
159
|
} finally {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
} finally {
|
|
118
|
-
if (_didIteratorError2) throw _iteratorError2;
|
|
160
|
+
if (_didIteratorError2) {
|
|
161
|
+
throw _iteratorError2;
|
|
119
162
|
}
|
|
120
163
|
}
|
|
121
|
-
}
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
for (var _iterator = Object.entries(modules)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
|
|
122
167
|
} catch (err) {
|
|
123
|
-
_didIteratorError =
|
|
168
|
+
_didIteratorError = true;
|
|
169
|
+
_iteratorError = err;
|
|
124
170
|
} finally {
|
|
125
171
|
try {
|
|
126
|
-
!_iteratorNormalCompletion && _iterator.return != null
|
|
172
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
173
|
+
_iterator.return();
|
|
174
|
+
}
|
|
127
175
|
} finally {
|
|
128
|
-
if (_didIteratorError)
|
|
176
|
+
if (_didIteratorError) {
|
|
177
|
+
throw _iteratorError;
|
|
178
|
+
}
|
|
129
179
|
}
|
|
130
180
|
}
|
|
131
181
|
return result;
|