on-zero 0.0.1
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/LICENSE +21 -0
- package/cli.cjs +3 -0
- package/dist/cjs/cli.cjs +405 -0
- package/dist/cjs/cli.js +397 -0
- package/dist/cjs/cli.js.map +6 -0
- package/dist/cjs/cli.native.js +505 -0
- package/dist/cjs/cli.native.js.map +1 -0
- package/dist/cjs/constants.cjs +28 -0
- package/dist/cjs/constants.js +22 -0
- package/dist/cjs/constants.js.map +6 -0
- package/dist/cjs/constants.native.js +31 -0
- package/dist/cjs/constants.native.js.map +1 -0
- package/dist/cjs/createPermissions.cjs +82 -0
- package/dist/cjs/createPermissions.js +77 -0
- package/dist/cjs/createPermissions.js.map +6 -0
- package/dist/cjs/createPermissions.native.js +107 -0
- package/dist/cjs/createPermissions.native.js.map +1 -0
- package/dist/cjs/createUseQuery.cjs +59 -0
- package/dist/cjs/createUseQuery.js +34 -0
- package/dist/cjs/createUseQuery.js.map +6 -0
- package/dist/cjs/createUseQuery.native.js +70 -0
- package/dist/cjs/createUseQuery.native.js.map +1 -0
- package/dist/cjs/createZeroClient.cjs +162 -0
- package/dist/cjs/createZeroClient.js +126 -0
- package/dist/cjs/createZeroClient.js.map +6 -0
- package/dist/cjs/createZeroClient.native.js +214 -0
- package/dist/cjs/createZeroClient.native.js.map +1 -0
- package/dist/cjs/createZeroServer.cjs +148 -0
- package/dist/cjs/createZeroServer.js +126 -0
- package/dist/cjs/createZeroServer.js.map +6 -0
- package/dist/cjs/createZeroServer.native.js +170 -0
- package/dist/cjs/createZeroServer.native.js.map +1 -0
- package/dist/cjs/helpers/batchQuery.cjs +49 -0
- package/dist/cjs/helpers/batchQuery.js +38 -0
- package/dist/cjs/helpers/batchQuery.js.map +6 -0
- package/dist/cjs/helpers/batchQuery.native.js +49 -0
- package/dist/cjs/helpers/batchQuery.native.js.map +1 -0
- package/dist/cjs/helpers/createMutators.cjs +90 -0
- package/dist/cjs/helpers/createMutators.js +85 -0
- package/dist/cjs/helpers/createMutators.js.map +6 -0
- package/dist/cjs/helpers/createMutators.native.js +132 -0
- package/dist/cjs/helpers/createMutators.native.js.map +1 -0
- package/dist/cjs/helpers/didRunPermissionCheck.cjs +30 -0
- package/dist/cjs/helpers/didRunPermissionCheck.js +26 -0
- package/dist/cjs/helpers/didRunPermissionCheck.js.map +6 -0
- package/dist/cjs/helpers/didRunPermissionCheck.native.js +39 -0
- package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +1 -0
- package/dist/cjs/helpers/ensureLoggedIn.cjs +33 -0
- package/dist/cjs/helpers/ensureLoggedIn.js +25 -0
- package/dist/cjs/helpers/ensureLoggedIn.js.map +6 -0
- package/dist/cjs/helpers/ensureLoggedIn.native.js +36 -0
- package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -0
- package/dist/cjs/helpers/getQueryOrMutatorAuthData.cjs +30 -0
- package/dist/cjs/helpers/getQueryOrMutatorAuthData.js +24 -0
- package/dist/cjs/helpers/getQueryOrMutatorAuthData.js.map +6 -0
- package/dist/cjs/helpers/getQueryOrMutatorAuthData.native.js +33 -0
- package/dist/cjs/helpers/getQueryOrMutatorAuthData.native.js.map +1 -0
- package/dist/cjs/helpers/mutatorContext.cjs +40 -0
- package/dist/cjs/helpers/mutatorContext.js +36 -0
- package/dist/cjs/helpers/mutatorContext.js.map +6 -0
- package/dist/cjs/helpers/mutatorContext.native.js +43 -0
- package/dist/cjs/helpers/mutatorContext.native.js.map +1 -0
- package/dist/cjs/helpers/prettyFormatZeroQuery.cjs +107 -0
- package/dist/cjs/helpers/prettyFormatZeroQuery.js +92 -0
- package/dist/cjs/helpers/prettyFormatZeroQuery.js.map +6 -0
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +119 -0
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -0
- package/dist/cjs/helpers/useZeroDebug.cjs +68 -0
- package/dist/cjs/helpers/useZeroDebug.js +49 -0
- package/dist/cjs/helpers/useZeroDebug.js.map +6 -0
- package/dist/cjs/helpers/useZeroDebug.native.js +81 -0
- package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -0
- package/dist/cjs/index.cjs +42 -0
- package/dist/cjs/index.js +35 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/index.native.js +45 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/mutations.cjs +51 -0
- package/dist/cjs/mutations.js +44 -0
- package/dist/cjs/mutations.js.map +6 -0
- package/dist/cjs/mutations.native.js +56 -0
- package/dist/cjs/mutations.native.js.map +1 -0
- package/dist/cjs/queryRegistry.cjs +33 -0
- package/dist/cjs/queryRegistry.js +28 -0
- package/dist/cjs/queryRegistry.js.map +6 -0
- package/dist/cjs/queryRegistry.native.js +36 -0
- package/dist/cjs/queryRegistry.native.js.map +1 -0
- package/dist/cjs/resolveQuery.cjs +41 -0
- package/dist/cjs/resolveQuery.js +40 -0
- package/dist/cjs/resolveQuery.js.map +6 -0
- package/dist/cjs/resolveQuery.native.js +46 -0
- package/dist/cjs/resolveQuery.native.js.map +1 -0
- package/dist/cjs/run.cjs +48 -0
- package/dist/cjs/run.js +37 -0
- package/dist/cjs/run.js.map +6 -0
- package/dist/cjs/run.native.js +52 -0
- package/dist/cjs/run.native.js.map +1 -0
- package/dist/cjs/server.cjs +18 -0
- package/dist/cjs/server.js +15 -0
- package/dist/cjs/server.js.map +6 -0
- package/dist/cjs/server.native.js +21 -0
- package/dist/cjs/server.native.js.map +1 -0
- package/dist/cjs/serverWhere.cjs +29 -0
- package/dist/cjs/serverWhere.js +24 -0
- package/dist/cjs/serverWhere.js.map +6 -0
- package/dist/cjs/serverWhere.native.js +32 -0
- package/dist/cjs/serverWhere.native.js.map +1 -0
- package/dist/cjs/state.cjs +49 -0
- package/dist/cjs/state.js +37 -0
- package/dist/cjs/state.js.map +6 -0
- package/dist/cjs/state.native.js +54 -0
- package/dist/cjs/state.native.js.map +1 -0
- package/dist/cjs/types.cjs +16 -0
- package/dist/cjs/types.js +14 -0
- package/dist/cjs/types.js.map +6 -0
- package/dist/cjs/types.native.js +19 -0
- package/dist/cjs/types.native.js.map +1 -0
- package/dist/cjs/where.cjs +41 -0
- package/dist/cjs/where.js +35 -0
- package/dist/cjs/where.js.map +6 -0
- package/dist/cjs/where.native.js +46 -0
- package/dist/cjs/where.native.js.map +1 -0
- package/dist/cjs/zeroRunner.cjs +34 -0
- package/dist/cjs/zeroRunner.js +32 -0
- package/dist/cjs/zeroRunner.js.map +6 -0
- package/dist/cjs/zeroRunner.native.js +37 -0
- package/dist/cjs/zeroRunner.native.js.map +1 -0
- package/dist/cjs/zql.cjs +31 -0
- package/dist/cjs/zql.js +26 -0
- package/dist/cjs/zql.js.map +6 -0
- package/dist/cjs/zql.native.js +35 -0
- package/dist/cjs/zql.native.js.map +1 -0
- package/dist/esm/cli.js +383 -0
- package/dist/esm/cli.js.map +6 -0
- package/dist/esm/cli.mjs +384 -0
- package/dist/esm/cli.mjs.map +1 -0
- package/dist/esm/cli.native.js +481 -0
- package/dist/esm/cli.native.js.map +1 -0
- package/dist/esm/constants.js +6 -0
- package/dist/esm/constants.js.map +6 -0
- package/dist/esm/constants.mjs +4 -0
- package/dist/esm/constants.mjs.map +1 -0
- package/dist/esm/constants.native.js +4 -0
- package/dist/esm/constants.native.js.map +1 -0
- package/dist/esm/createPermissions.js +66 -0
- package/dist/esm/createPermissions.js.map +6 -0
- package/dist/esm/createPermissions.mjs +59 -0
- package/dist/esm/createPermissions.mjs.map +1 -0
- package/dist/esm/createPermissions.native.js +81 -0
- package/dist/esm/createPermissions.native.js.map +1 -0
- package/dist/esm/createUseQuery.js +21 -0
- package/dist/esm/createUseQuery.js.map +6 -0
- package/dist/esm/createUseQuery.mjs +36 -0
- package/dist/esm/createUseQuery.mjs.map +1 -0
- package/dist/esm/createUseQuery.native.js +44 -0
- package/dist/esm/createUseQuery.native.js.map +1 -0
- package/dist/esm/createZeroClient.js +135 -0
- package/dist/esm/createZeroClient.js.map +6 -0
- package/dist/esm/createZeroClient.mjs +139 -0
- package/dist/esm/createZeroClient.mjs.map +1 -0
- package/dist/esm/createZeroClient.native.js +188 -0
- package/dist/esm/createZeroClient.native.js.map +1 -0
- package/dist/esm/createZeroServer.js +121 -0
- package/dist/esm/createZeroServer.js.map +6 -0
- package/dist/esm/createZeroServer.mjs +125 -0
- package/dist/esm/createZeroServer.mjs.map +1 -0
- package/dist/esm/createZeroServer.native.js +144 -0
- package/dist/esm/createZeroServer.native.js.map +1 -0
- package/dist/esm/helpers/batchQuery.js +22 -0
- package/dist/esm/helpers/batchQuery.js.map +6 -0
- package/dist/esm/helpers/batchQuery.mjs +26 -0
- package/dist/esm/helpers/batchQuery.mjs.map +1 -0
- package/dist/esm/helpers/batchQuery.native.js +23 -0
- package/dist/esm/helpers/batchQuery.native.js.map +1 -0
- package/dist/esm/helpers/createMutators.js +71 -0
- package/dist/esm/helpers/createMutators.js.map +6 -0
- package/dist/esm/helpers/createMutators.mjs +67 -0
- package/dist/esm/helpers/createMutators.mjs.map +1 -0
- package/dist/esm/helpers/createMutators.native.js +106 -0
- package/dist/esm/helpers/createMutators.native.js.map +1 -0
- package/dist/esm/helpers/didRunPermissionCheck.js +10 -0
- package/dist/esm/helpers/didRunPermissionCheck.js.map +6 -0
- package/dist/esm/helpers/didRunPermissionCheck.mjs +6 -0
- package/dist/esm/helpers/didRunPermissionCheck.mjs.map +1 -0
- package/dist/esm/helpers/didRunPermissionCheck.native.js +12 -0
- package/dist/esm/helpers/didRunPermissionCheck.native.js.map +1 -0
- package/dist/esm/helpers/ensureLoggedIn.js +10 -0
- package/dist/esm/helpers/ensureLoggedIn.js.map +6 -0
- package/dist/esm/helpers/ensureLoggedIn.mjs +10 -0
- package/dist/esm/helpers/ensureLoggedIn.mjs.map +1 -0
- package/dist/esm/helpers/ensureLoggedIn.native.js +10 -0
- package/dist/esm/helpers/ensureLoggedIn.native.js.map +1 -0
- package/dist/esm/helpers/getQueryOrMutatorAuthData.js +9 -0
- package/dist/esm/helpers/getQueryOrMutatorAuthData.js.map +6 -0
- package/dist/esm/helpers/getQueryOrMutatorAuthData.mjs +7 -0
- package/dist/esm/helpers/getQueryOrMutatorAuthData.mjs.map +1 -0
- package/dist/esm/helpers/getQueryOrMutatorAuthData.native.js +7 -0
- package/dist/esm/helpers/getQueryOrMutatorAuthData.native.js.map +1 -0
- package/dist/esm/helpers/mutatorContext.js +20 -0
- package/dist/esm/helpers/mutatorContext.js.map +6 -0
- package/dist/esm/helpers/mutatorContext.mjs +15 -0
- package/dist/esm/helpers/mutatorContext.mjs.map +1 -0
- package/dist/esm/helpers/mutatorContext.native.js +15 -0
- package/dist/esm/helpers/mutatorContext.native.js.map +1 -0
- package/dist/esm/helpers/prettyFormatZeroQuery.js +76 -0
- package/dist/esm/helpers/prettyFormatZeroQuery.js.map +6 -0
- package/dist/esm/helpers/prettyFormatZeroQuery.mjs +84 -0
- package/dist/esm/helpers/prettyFormatZeroQuery.mjs.map +1 -0
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js +93 -0
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +1 -0
- package/dist/esm/helpers/useZeroDebug.js +35 -0
- package/dist/esm/helpers/useZeroDebug.js.map +6 -0
- package/dist/esm/helpers/useZeroDebug.mjs +45 -0
- package/dist/esm/helpers/useZeroDebug.mjs.map +1 -0
- package/dist/esm/helpers/useZeroDebug.native.js +55 -0
- package/dist/esm/helpers/useZeroDebug.native.js.map +1 -0
- package/dist/esm/index.js +20 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/index.mjs +17 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +17 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/mutations.js +28 -0
- package/dist/esm/mutations.js.map +6 -0
- package/dist/esm/mutations.mjs +28 -0
- package/dist/esm/mutations.mjs.map +1 -0
- package/dist/esm/mutations.native.js +30 -0
- package/dist/esm/mutations.native.js.map +1 -0
- package/dist/esm/queryRegistry.js +12 -0
- package/dist/esm/queryRegistry.js.map +6 -0
- package/dist/esm/queryRegistry.mjs +9 -0
- package/dist/esm/queryRegistry.mjs.map +1 -0
- package/dist/esm/queryRegistry.native.js +9 -0
- package/dist/esm/queryRegistry.native.js.map +1 -0
- package/dist/esm/resolveQuery.js +24 -0
- package/dist/esm/resolveQuery.js.map +6 -0
- package/dist/esm/resolveQuery.mjs +18 -0
- package/dist/esm/resolveQuery.mjs.map +1 -0
- package/dist/esm/resolveQuery.native.js +20 -0
- package/dist/esm/resolveQuery.native.js.map +1 -0
- package/dist/esm/run.js +22 -0
- package/dist/esm/run.js.map +6 -0
- package/dist/esm/run.mjs +24 -0
- package/dist/esm/run.mjs.map +1 -0
- package/dist/esm/run.native.js +25 -0
- package/dist/esm/run.native.js.map +1 -0
- package/dist/esm/server.js +2 -0
- package/dist/esm/server.js.map +6 -0
- package/dist/esm/server.mjs +2 -0
- package/dist/esm/server.mjs.map +1 -0
- package/dist/esm/server.native.js +2 -0
- package/dist/esm/server.native.js.map +1 -0
- package/dist/esm/serverWhere.js +8 -0
- package/dist/esm/serverWhere.js.map +6 -0
- package/dist/esm/serverWhere.mjs +6 -0
- package/dist/esm/serverWhere.mjs.map +1 -0
- package/dist/esm/serverWhere.native.js +6 -0
- package/dist/esm/serverWhere.native.js.map +1 -0
- package/dist/esm/state.js +21 -0
- package/dist/esm/state.js.map +6 -0
- package/dist/esm/state.mjs +22 -0
- package/dist/esm/state.mjs.map +1 -0
- package/dist/esm/state.native.js +24 -0
- package/dist/esm/state.native.js.map +1 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +6 -0
- package/dist/esm/types.mjs +2 -0
- package/dist/esm/types.mjs.map +1 -0
- package/dist/esm/types.native.js +2 -0
- package/dist/esm/types.native.js.map +1 -0
- package/dist/esm/where.js +20 -0
- package/dist/esm/where.js.map +6 -0
- package/dist/esm/where.mjs +17 -0
- package/dist/esm/where.mjs.map +1 -0
- package/dist/esm/where.native.js +19 -0
- package/dist/esm/where.native.js.map +1 -0
- package/dist/esm/zeroRunner.js +16 -0
- package/dist/esm/zeroRunner.js.map +6 -0
- package/dist/esm/zeroRunner.mjs +10 -0
- package/dist/esm/zeroRunner.mjs.map +1 -0
- package/dist/esm/zeroRunner.native.js +10 -0
- package/dist/esm/zeroRunner.native.js.map +1 -0
- package/dist/esm/zql.js +10 -0
- package/dist/esm/zql.js.map +6 -0
- package/dist/esm/zql.mjs +8 -0
- package/dist/esm/zql.mjs.map +1 -0
- package/dist/esm/zql.native.js +9 -0
- package/dist/esm/zql.native.js.map +1 -0
- package/package.json +98 -0
- package/readme.md +594 -0
- package/src/cli.ts +626 -0
- package/src/constants.native.ts +3 -0
- package/src/constants.ts +3 -0
- package/src/createPermissions.ts +131 -0
- package/src/createUseQuery.tsx +82 -0
- package/src/createZeroClient.tsx +301 -0
- package/src/createZeroServer.ts +226 -0
- package/src/helpers/batchQuery.ts +46 -0
- package/src/helpers/createMutators.ts +138 -0
- package/src/helpers/didRunPermissionCheck.ts +16 -0
- package/src/helpers/ensureLoggedIn.ts +11 -0
- package/src/helpers/getQueryOrMutatorAuthData.ts +12 -0
- package/src/helpers/mutatorContext.ts +25 -0
- package/src/helpers/prettyFormatZeroQuery.ts +167 -0
- package/src/helpers/useZeroDebug.ts +102 -0
- package/src/index.ts +18 -0
- package/src/mutations.ts +133 -0
- package/src/queryRegistry.ts +12 -0
- package/src/resolveQuery.ts +44 -0
- package/src/run.ts +62 -0
- package/src/server.ts +1 -0
- package/src/serverWhere.ts +21 -0
- package/src/state.ts +32 -0
- package/src/types.ts +136 -0
- package/src/where.ts +58 -0
- package/src/zeroRunner.ts +28 -0
- package/src/zql.ts +10 -0
- package/types/cli.d.ts +3 -0
- package/types/cli.d.ts.map +1 -0
- package/types/constants.d.ts +3 -0
- package/types/constants.d.ts.map +1 -0
- package/types/constants.native.d.ts +3 -0
- package/types/constants.native.d.ts.map +1 -0
- package/types/createPermissions.d.ts +10 -0
- package/types/createPermissions.d.ts.map +1 -0
- package/types/createUseQuery.d.ts +20 -0
- package/types/createUseQuery.d.ts.map +1 -0
- package/types/createZeroClient.d.ts +35 -0
- package/types/createZeroClient.d.ts.map +1 -0
- package/types/createZeroServer.d.ts +146 -0
- package/types/createZeroServer.d.ts.map +1 -0
- package/types/helpers/batchQuery.d.ts +7 -0
- package/types/helpers/batchQuery.d.ts.map +1 -0
- package/types/helpers/createMutators.d.ts +10 -0
- package/types/helpers/createMutators.d.ts.map +1 -0
- package/types/helpers/didRunPermissionCheck.d.ts +4 -0
- package/types/helpers/didRunPermissionCheck.d.ts.map +1 -0
- package/types/helpers/ensureLoggedIn.d.ts +3 -0
- package/types/helpers/ensureLoggedIn.d.ts.map +1 -0
- package/types/helpers/getQueryOrMutatorAuthData.d.ts +3 -0
- package/types/helpers/getQueryOrMutatorAuthData.d.ts.map +1 -0
- package/types/helpers/mutatorContext.d.ts +5 -0
- package/types/helpers/mutatorContext.d.ts.map +1 -0
- package/types/helpers/prettyFormatZeroQuery.d.ts +3 -0
- package/types/helpers/prettyFormatZeroQuery.d.ts.map +1 -0
- package/types/helpers/useZeroDebug.d.ts +3 -0
- package/types/helpers/useZeroDebug.d.ts.map +1 -0
- package/types/index.d.ts +17 -0
- package/types/index.d.ts.map +1 -0
- package/types/mutations.d.ts +20 -0
- package/types/mutations.d.ts.map +1 -0
- package/types/queryRegistry.d.ts +3 -0
- package/types/queryRegistry.d.ts.map +1 -0
- package/types/resolveQuery.d.ts +11 -0
- package/types/resolveQuery.d.ts.map +1 -0
- package/types/run.d.ts +7 -0
- package/types/run.d.ts.map +1 -0
- package/types/server.d.ts +2 -0
- package/types/server.d.ts.map +1 -0
- package/types/serverWhere.d.ts +5 -0
- package/types/serverWhere.d.ts.map +1 -0
- package/types/state.d.ts +8 -0
- package/types/state.d.ts.map +1 -0
- package/types/types.d.ts +78 -0
- package/types/types.d.ts.map +1 -0
- package/types/where.d.ts +6 -0
- package/types/where.d.ts.map +1 -0
- package/types/zeroRunner.d.ts +6 -0
- package/types/zeroRunner.d.ts.map +1 -0
- package/types/zql.d.ts +3 -0
- package/types/zql.d.ts.map +1 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { defineQueries, defineQuery } from "@rocicorp/zero";
|
|
3
|
+
import { useConnectionState, useZero, ZeroProvider, useQuery as zeroUseQuery } from "@rocicorp/zero/react";
|
|
4
|
+
import { createEmitter, mapObject } from "@take-out/helpers";
|
|
5
|
+
import { createContext, memo, use, useEffect, useMemo, useRef } from "react";
|
|
6
|
+
import { createPermissions } from "./createPermissions.native.js";
|
|
7
|
+
import { createUseQuery } from "./createUseQuery.native.js";
|
|
8
|
+
import { createMutators } from "./helpers/createMutators.native.js";
|
|
9
|
+
import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery.native.js";
|
|
10
|
+
import { registerQuery } from "./queryRegistry.native.js";
|
|
11
|
+
import { resolveQuery } from "./resolveQuery.native.js";
|
|
12
|
+
import { setCustomQueries } from "./run.native.js";
|
|
13
|
+
import { setAuthData, setSchema } from "./state.native.js";
|
|
14
|
+
import { setRunner } from "./zeroRunner.native.js";
|
|
15
|
+
function createZeroClient(param) {
|
|
16
|
+
var {
|
|
17
|
+
schema,
|
|
18
|
+
models,
|
|
19
|
+
groupedQueries
|
|
20
|
+
} = param;
|
|
21
|
+
setSchema(schema);
|
|
22
|
+
var wrappedNamespaces = {},
|
|
23
|
+
_iteratorNormalCompletion = !0,
|
|
24
|
+
_didIteratorError = !1,
|
|
25
|
+
_iteratorError = void 0;
|
|
26
|
+
try {
|
|
27
|
+
for (var _iterator = Object.entries(groupedQueries)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
28
|
+
var [namespace, queries] = _step.value;
|
|
29
|
+
wrappedNamespaces[namespace] = {};
|
|
30
|
+
var _iteratorNormalCompletion1 = !0,
|
|
31
|
+
_didIteratorError1 = !1,
|
|
32
|
+
_iteratorError1 = void 0;
|
|
33
|
+
try {
|
|
34
|
+
for (var _loop = function () {
|
|
35
|
+
var [name, fn] = _step1.value;
|
|
36
|
+
registerQuery(fn, `${namespace}.${name}`), wrappedNamespaces[namespace][name] = defineQuery(function (param2) {
|
|
37
|
+
var {
|
|
38
|
+
args
|
|
39
|
+
} = param2;
|
|
40
|
+
return fn(args);
|
|
41
|
+
});
|
|
42
|
+
}, _iterator1 = Object.entries(queries)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) _loop();
|
|
43
|
+
} catch (err) {
|
|
44
|
+
_didIteratorError1 = !0, _iteratorError1 = err;
|
|
45
|
+
} finally {
|
|
46
|
+
try {
|
|
47
|
+
!_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
|
|
48
|
+
} finally {
|
|
49
|
+
if (_didIteratorError1) throw _iteratorError1;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
} catch (err) {
|
|
54
|
+
_didIteratorError = !0, _iteratorError = err;
|
|
55
|
+
} finally {
|
|
56
|
+
try {
|
|
57
|
+
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
58
|
+
} finally {
|
|
59
|
+
if (_didIteratorError) throw _iteratorError;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
var customQueries = defineQueries(wrappedNamespaces);
|
|
63
|
+
setCustomQueries(customQueries);
|
|
64
|
+
var DisabledContext = /* @__PURE__ */createContext(!1),
|
|
65
|
+
modelWritePermissions = mapObject(models, function (val) {
|
|
66
|
+
return val.permissions;
|
|
67
|
+
}),
|
|
68
|
+
latestZeroInstance = null,
|
|
69
|
+
zero = new Proxy({}, {
|
|
70
|
+
get(_, key) {
|
|
71
|
+
if (latestZeroInstance === null) throw new Error("Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'.");
|
|
72
|
+
return Reflect.get(latestZeroInstance, key, latestZeroInstance);
|
|
73
|
+
}
|
|
74
|
+
}),
|
|
75
|
+
permissionsHelpers = createPermissions({
|
|
76
|
+
schema,
|
|
77
|
+
environment: "client"
|
|
78
|
+
}),
|
|
79
|
+
zeroEvents = createEmitter("zero", null),
|
|
80
|
+
AuthDataContext = /* @__PURE__ */createContext({}),
|
|
81
|
+
useAuthData = function () {
|
|
82
|
+
return use(AuthDataContext);
|
|
83
|
+
},
|
|
84
|
+
useQuery = createUseQuery({
|
|
85
|
+
DisabledContext,
|
|
86
|
+
customQueries
|
|
87
|
+
});
|
|
88
|
+
function usePermission(table, objOrId) {
|
|
89
|
+
var enabled = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : typeof objOrId < "u",
|
|
90
|
+
debug = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !1,
|
|
91
|
+
disabled = use(DisabledContext),
|
|
92
|
+
authData = useAuthData(),
|
|
93
|
+
permission = modelWritePermissions[table],
|
|
94
|
+
query = function () {
|
|
95
|
+
var baseQuery = zero.query[table].one();
|
|
96
|
+
return disabled || !enabled || !permission ? baseQuery : baseQuery.where(function (eb) {
|
|
97
|
+
return permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId);
|
|
98
|
+
});
|
|
99
|
+
}(),
|
|
100
|
+
[data, status] = zeroUseQuery(query, {
|
|
101
|
+
enabled: !!(enabled && permission && authData && objOrId)
|
|
102
|
+
});
|
|
103
|
+
debug && console.info("usePermission()", {
|
|
104
|
+
data,
|
|
105
|
+
status,
|
|
106
|
+
authData,
|
|
107
|
+
permission
|
|
108
|
+
}, prettyFormatZeroQuery(query));
|
|
109
|
+
var result = data,
|
|
110
|
+
allowed = !!result;
|
|
111
|
+
return objOrId ? allowed : !1;
|
|
112
|
+
}
|
|
113
|
+
var ProvideZero = function (param2) {
|
|
114
|
+
var {
|
|
115
|
+
children,
|
|
116
|
+
authData: authDataIn,
|
|
117
|
+
disable,
|
|
118
|
+
...props
|
|
119
|
+
} = param2,
|
|
120
|
+
authData = authDataIn ?? null,
|
|
121
|
+
mutators = useMemo(function () {
|
|
122
|
+
return setAuthData(authData), createMutators({
|
|
123
|
+
models,
|
|
124
|
+
environment: "client",
|
|
125
|
+
authData,
|
|
126
|
+
can: permissionsHelpers.can
|
|
127
|
+
});
|
|
128
|
+
}, [authData]);
|
|
129
|
+
return disable ? children : /* @__PURE__ */_jsx(AuthDataContext.Provider, {
|
|
130
|
+
value: authData,
|
|
131
|
+
children: /* @__PURE__ */_jsxs(ZeroProvider, {
|
|
132
|
+
schema,
|
|
133
|
+
kvStore: "mem",
|
|
134
|
+
mutators,
|
|
135
|
+
...props,
|
|
136
|
+
children: [/* @__PURE__ */_jsx(SetZeroInstance, {}), /* @__PURE__ */_jsx(ConnectionMonitor, {
|
|
137
|
+
zeroEvents
|
|
138
|
+
}), children]
|
|
139
|
+
})
|
|
140
|
+
});
|
|
141
|
+
},
|
|
142
|
+
SetZeroInstance = function () {
|
|
143
|
+
var zeroInstance = useZero();
|
|
144
|
+
return zeroInstance !== latestZeroInstance && (latestZeroInstance = zeroInstance, setRunner(function (query, options) {
|
|
145
|
+
return zeroInstance.run(query, options);
|
|
146
|
+
})), null;
|
|
147
|
+
},
|
|
148
|
+
ConnectionMonitor = /* @__PURE__ */memo(function (param2) {
|
|
149
|
+
var {
|
|
150
|
+
zeroEvents: zeroEvents2
|
|
151
|
+
} = param2,
|
|
152
|
+
state = useConnectionState(),
|
|
153
|
+
prevState = useRef(state.name);
|
|
154
|
+
return useEffect(function () {
|
|
155
|
+
if (state.name !== prevState.current) {
|
|
156
|
+
var reason = "reason" in state ? state.reason : "";
|
|
157
|
+
if (prevState.current = state.name, state.name === "error" || state.name === "needs-auth") {
|
|
158
|
+
var message = typeof reason == "string" ? reason : state.name;
|
|
159
|
+
zeroEvents2.emit({
|
|
160
|
+
type: "error",
|
|
161
|
+
message
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}, [state, zeroEvents2]), null;
|
|
166
|
+
});
|
|
167
|
+
function preload(fnArg, paramsOrOptions, optionsArg) {
|
|
168
|
+
var hasParams = optionsArg !== void 0 || paramsOrOptions && !("ttl" in paramsOrOptions),
|
|
169
|
+
params = hasParams ? paramsOrOptions : void 0,
|
|
170
|
+
options = hasParams ? optionsArg : paramsOrOptions,
|
|
171
|
+
queryRequest = resolveQuery({
|
|
172
|
+
customQueries,
|
|
173
|
+
fn: fnArg,
|
|
174
|
+
params
|
|
175
|
+
});
|
|
176
|
+
return zero.preload(queryRequest, options);
|
|
177
|
+
}
|
|
178
|
+
return {
|
|
179
|
+
zeroEvents,
|
|
180
|
+
ProvideZero,
|
|
181
|
+
useQuery,
|
|
182
|
+
usePermission,
|
|
183
|
+
zero,
|
|
184
|
+
preload
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
export { createZeroClient };
|
|
188
|
+
//# sourceMappingURL=createZeroClient.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","mapObject","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","prettyFormatZeroQuery","registerQuery","resolveQuery","setCustomQueries","setAuthData","setSchema","setRunner","createZeroClient","param","schema","models","groupedQueries","wrappedNamespaces","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","param2","args","_iterator1","err","return","customQueries","DisabledContext","modelWritePermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Error","Reflect","permissionsHelpers","environment","zeroEvents","AuthDataContext","useAuthData","usePermission","table","objOrId","enabled","arguments","length","debug","disabled","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","result","allowed","ProvideZero","children","authDataIn","disable","props","mutators","can","Provider","kvStore","SetZeroInstance","ConnectionMonitor","zeroInstance","options","run","zeroEvents2","state","prevState","current","reason","message","emit","type"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { mustGetQuery } from "@rocicorp/zero";
|
|
2
|
+
import { PushProcessor } from "@rocicorp/zero/pg";
|
|
3
|
+
import { handleQueryRequest as zeroHandleQueryRequest } from "@rocicorp/zero/server";
|
|
4
|
+
import { zeroNodePg } from "@rocicorp/zero/server/adapters/pg";
|
|
5
|
+
import { assertString, randomId } from "@take-out/helpers";
|
|
6
|
+
import { Pool } from "pg";
|
|
7
|
+
import { createPermissions } from "./createPermissions";
|
|
8
|
+
import { createMutators } from "./helpers/createMutators";
|
|
9
|
+
import { isInZeroMutation, mutatorContext } from "./helpers/mutatorContext";
|
|
10
|
+
import { setCustomQueries } from "./run";
|
|
11
|
+
import { setAuthData, setSchema } from "./state";
|
|
12
|
+
import { setRunner } from "./zeroRunner";
|
|
13
|
+
function createZeroServer({
|
|
14
|
+
createServerActions,
|
|
15
|
+
database,
|
|
16
|
+
schema,
|
|
17
|
+
models,
|
|
18
|
+
queries
|
|
19
|
+
}) {
|
|
20
|
+
setSchema(schema);
|
|
21
|
+
const dbString = assertString(database, 'createZeroServer "database"'), zeroDb = zeroNodePg(
|
|
22
|
+
schema,
|
|
23
|
+
new Pool({
|
|
24
|
+
connectionString: dbString,
|
|
25
|
+
// handle self-signed certificates in production
|
|
26
|
+
ssl: dbString.includes("sslmode=require") ? { rejectUnauthorized: !1 } : void 0
|
|
27
|
+
})
|
|
28
|
+
), permissions = createPermissions({
|
|
29
|
+
environment: "server",
|
|
30
|
+
schema
|
|
31
|
+
}), processor = new PushProcessor(zeroDb), handleMutationRequest = async ({
|
|
32
|
+
authData,
|
|
33
|
+
request,
|
|
34
|
+
skipAsyncTasks
|
|
35
|
+
}) => {
|
|
36
|
+
const asyncTasks = [], mutators = createMutators({
|
|
37
|
+
asyncTasks,
|
|
38
|
+
can: permissions.can,
|
|
39
|
+
createServerActions,
|
|
40
|
+
environment: "server",
|
|
41
|
+
models,
|
|
42
|
+
authData
|
|
43
|
+
}), response = await processor.process(mutators, request);
|
|
44
|
+
if (!skipAsyncTasks && asyncTasks.length) {
|
|
45
|
+
const id = randomId();
|
|
46
|
+
console.info(`[push] complete, running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map((task) => task())).then(() => {
|
|
47
|
+
console.info(`[push] async tasks complete ${id}`);
|
|
48
|
+
}).catch((err) => {
|
|
49
|
+
console.error("[push] error: async tasks failed \u{1F61E}", err);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
response,
|
|
54
|
+
asyncTasks
|
|
55
|
+
};
|
|
56
|
+
}, handleQueryRequest = async ({
|
|
57
|
+
authData,
|
|
58
|
+
request
|
|
59
|
+
}) => {
|
|
60
|
+
if (!queries)
|
|
61
|
+
throw new Error(
|
|
62
|
+
"No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option."
|
|
63
|
+
);
|
|
64
|
+
return setAuthData(authData || {}), {
|
|
65
|
+
response: await zeroHandleQueryRequest(
|
|
66
|
+
(name, args) => mustGetQuery(queries, name).fn({ args, ctx: authData }),
|
|
67
|
+
schema,
|
|
68
|
+
request
|
|
69
|
+
)
|
|
70
|
+
};
|
|
71
|
+
}, mutate = async (run, authData) => {
|
|
72
|
+
const asyncTasks = [], mutators = createMutators({
|
|
73
|
+
models,
|
|
74
|
+
environment: "server",
|
|
75
|
+
asyncTasks,
|
|
76
|
+
authData: {
|
|
77
|
+
id: "",
|
|
78
|
+
email: "admin@start.chat",
|
|
79
|
+
role: "admin",
|
|
80
|
+
...authData
|
|
81
|
+
},
|
|
82
|
+
createServerActions,
|
|
83
|
+
can: permissions.can
|
|
84
|
+
});
|
|
85
|
+
await transaction(async (tx) => {
|
|
86
|
+
await run(tx, mutators);
|
|
87
|
+
}), await Promise.all(asyncTasks.map((t) => t()));
|
|
88
|
+
};
|
|
89
|
+
async function transaction(query2) {
|
|
90
|
+
try {
|
|
91
|
+
if (isInZeroMutation()) {
|
|
92
|
+
const { tx } = mutatorContext();
|
|
93
|
+
return await query2(tx);
|
|
94
|
+
}
|
|
95
|
+
return await zeroDb.transaction(query2, dummyTransactionInput);
|
|
96
|
+
} catch (err) {
|
|
97
|
+
throw console.error(`Error running transaction(): ${err}`), err;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function query(cb) {
|
|
101
|
+
return transaction(async (tx) => cb(tx.query));
|
|
102
|
+
}
|
|
103
|
+
queries && setCustomQueries(queries), setRunner((queryObj) => transaction(async (tx) => tx.run(queryObj)));
|
|
104
|
+
const dummyTransactionInput = {
|
|
105
|
+
clientGroupID: "unused",
|
|
106
|
+
clientID: "unused",
|
|
107
|
+
mutationID: 42,
|
|
108
|
+
upstreamSchema: "unused"
|
|
109
|
+
};
|
|
110
|
+
return {
|
|
111
|
+
handleMutationRequest,
|
|
112
|
+
handleQueryRequest,
|
|
113
|
+
transaction,
|
|
114
|
+
mutate,
|
|
115
|
+
query
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
export {
|
|
119
|
+
createZeroServer
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=createZeroServer.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/createZeroServer.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["query"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { mustGetQuery } from "@rocicorp/zero";
|
|
2
|
+
import { PushProcessor } from "@rocicorp/zero/pg";
|
|
3
|
+
import { handleQueryRequest as zeroHandleQueryRequest } from "@rocicorp/zero/server";
|
|
4
|
+
import { zeroNodePg } from "@rocicorp/zero/server/adapters/pg";
|
|
5
|
+
import { assertString, randomId } from "@take-out/helpers";
|
|
6
|
+
import { Pool } from "pg";
|
|
7
|
+
import { createPermissions } from "./createPermissions.mjs";
|
|
8
|
+
import { createMutators } from "./helpers/createMutators.mjs";
|
|
9
|
+
import { isInZeroMutation, mutatorContext } from "./helpers/mutatorContext.mjs";
|
|
10
|
+
import { setCustomQueries } from "./run.mjs";
|
|
11
|
+
import { setAuthData, setSchema } from "./state.mjs";
|
|
12
|
+
import { setRunner } from "./zeroRunner.mjs";
|
|
13
|
+
function createZeroServer({
|
|
14
|
+
createServerActions,
|
|
15
|
+
database,
|
|
16
|
+
schema,
|
|
17
|
+
models,
|
|
18
|
+
queries
|
|
19
|
+
}) {
|
|
20
|
+
setSchema(schema);
|
|
21
|
+
const dbString = assertString(database, 'createZeroServer "database"'),
|
|
22
|
+
zeroDb = zeroNodePg(schema, new Pool({
|
|
23
|
+
connectionString: dbString,
|
|
24
|
+
// handle self-signed certificates in production
|
|
25
|
+
ssl: dbString.includes("sslmode=require") ? {
|
|
26
|
+
rejectUnauthorized: !1
|
|
27
|
+
} : void 0
|
|
28
|
+
})),
|
|
29
|
+
permissions = createPermissions({
|
|
30
|
+
environment: "server",
|
|
31
|
+
schema
|
|
32
|
+
}),
|
|
33
|
+
processor = new PushProcessor(zeroDb),
|
|
34
|
+
handleMutationRequest = async ({
|
|
35
|
+
authData,
|
|
36
|
+
request,
|
|
37
|
+
skipAsyncTasks
|
|
38
|
+
}) => {
|
|
39
|
+
const asyncTasks = [],
|
|
40
|
+
mutators = createMutators({
|
|
41
|
+
asyncTasks,
|
|
42
|
+
can: permissions.can,
|
|
43
|
+
createServerActions,
|
|
44
|
+
environment: "server",
|
|
45
|
+
models,
|
|
46
|
+
authData
|
|
47
|
+
}),
|
|
48
|
+
response = await processor.process(mutators, request);
|
|
49
|
+
if (!skipAsyncTasks && asyncTasks.length) {
|
|
50
|
+
const id = randomId();
|
|
51
|
+
console.info(`[push] complete, running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map(task => task())).then(() => {
|
|
52
|
+
console.info(`[push] async tasks complete ${id}`);
|
|
53
|
+
}).catch(err => {
|
|
54
|
+
console.error("[push] error: async tasks failed \u{1F61E}", err);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
response,
|
|
59
|
+
asyncTasks
|
|
60
|
+
};
|
|
61
|
+
},
|
|
62
|
+
handleQueryRequest = async ({
|
|
63
|
+
authData,
|
|
64
|
+
request
|
|
65
|
+
}) => {
|
|
66
|
+
if (!queries) throw new Error("No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option.");
|
|
67
|
+
return setAuthData(authData || {}), {
|
|
68
|
+
response: await zeroHandleQueryRequest((name, args) => mustGetQuery(queries, name).fn({
|
|
69
|
+
args,
|
|
70
|
+
ctx: authData
|
|
71
|
+
}), schema, request)
|
|
72
|
+
};
|
|
73
|
+
},
|
|
74
|
+
mutate = async (run, authData) => {
|
|
75
|
+
const asyncTasks = [],
|
|
76
|
+
mutators = createMutators({
|
|
77
|
+
models,
|
|
78
|
+
environment: "server",
|
|
79
|
+
asyncTasks,
|
|
80
|
+
authData: {
|
|
81
|
+
id: "",
|
|
82
|
+
email: "admin@start.chat",
|
|
83
|
+
role: "admin",
|
|
84
|
+
...authData
|
|
85
|
+
},
|
|
86
|
+
createServerActions,
|
|
87
|
+
can: permissions.can
|
|
88
|
+
});
|
|
89
|
+
await transaction(async tx => {
|
|
90
|
+
await run(tx, mutators);
|
|
91
|
+
}), await Promise.all(asyncTasks.map(t => t()));
|
|
92
|
+
};
|
|
93
|
+
async function transaction(query2) {
|
|
94
|
+
try {
|
|
95
|
+
if (isInZeroMutation()) {
|
|
96
|
+
const {
|
|
97
|
+
tx
|
|
98
|
+
} = mutatorContext();
|
|
99
|
+
return await query2(tx);
|
|
100
|
+
}
|
|
101
|
+
return await zeroDb.transaction(query2, dummyTransactionInput);
|
|
102
|
+
} catch (err) {
|
|
103
|
+
throw console.error(`Error running transaction(): ${err}`), err;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function query(cb) {
|
|
107
|
+
return transaction(async tx => cb(tx.query));
|
|
108
|
+
}
|
|
109
|
+
queries && setCustomQueries(queries), setRunner(queryObj => transaction(async tx => tx.run(queryObj)));
|
|
110
|
+
const dummyTransactionInput = {
|
|
111
|
+
clientGroupID: "unused",
|
|
112
|
+
clientID: "unused",
|
|
113
|
+
mutationID: 42,
|
|
114
|
+
upstreamSchema: "unused"
|
|
115
|
+
};
|
|
116
|
+
return {
|
|
117
|
+
handleMutationRequest,
|
|
118
|
+
handleQueryRequest,
|
|
119
|
+
transaction,
|
|
120
|
+
mutate,
|
|
121
|
+
query
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
export { createZeroServer };
|
|
125
|
+
//# sourceMappingURL=createZeroServer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mustGetQuery","PushProcessor","handleQueryRequest","zeroHandleQueryRequest","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","setCustomQueries","setAuthData","setSchema","setRunner","createZeroServer","createServerActions","database","schema","models","queries","dbString","zeroDb","connectionString","ssl","includes","rejectUnauthorized","permissions","environment","processor","handleMutationRequest","authData","request","skipAsyncTasks","asyncTasks","mutators","can","response","process","length","id","console","info","Promise","all","map","task","then","catch","err","error","Error","name","args","fn","ctx","mutate","run","email","role","transaction","tx","t","query2","dummyTransactionInput","query","cb","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,YAAA,QAAoB;AAC7B,SAASC,aAAA,QAAqB;AAC9B,SAASC,kBAAA,IAAsBC,sBAAA,QAA8B;AAC7D,SAASC,UAAA,QAAkB;AAC3B,SAASC,YAAA,EAAcC,QAAA,QAAgB;AACvC,SAASC,IAAA,QAAY;AAErB,SAASC,iBAAA,QAAyB;AAClC,SAASC,cAAA,QAAsB;AAC/B,SAASC,gBAAA,EAAkBC,cAAA,QAAsB;AACjD,SAASC,gBAAA,QAAwB;AACjC,SAASC,WAAA,EAAaC,SAAA,QAAiB;AACvC,SAASC,SAAA,QAAiB;AAiBnB,SAASC,iBAId;EACAC,mBAAA;EACAC,QAAA;EACAC,MAAA;EACAC,MAAA;EACAC;AACF,GASG;EACDP,SAAA,CAAUK,MAAM;EAEhB,MAAMG,QAAA,GAAWjB,YAAA,CAAaa,QAAA,EAAU,6BAA6B;IAE/DK,MAAA,GAASnB,UAAA,CACbe,MAAA,EACA,IAAIZ,IAAA,CAAK;MACPiB,gBAAA,EAAkBF,QAAA;MAAA;MAElBG,GAAA,EAAKH,QAAA,CAASI,QAAA,CAAS,iBAAiB,IACpC;QAAEC,kBAAA,EAAoB;MAAM,IAC5B;IACN,CAAC,CACH;IAEMC,WAAA,GAAcpB,iBAAA,CAA0B;MAC5CqB,WAAA,EAAa;MACbV;IACF,CAAC;IAEKW,SAAA,GAAY,IAAI7B,aAAA,CAAcsB,MAAM;IAEpCQ,qBAAA,GAAwB,MAAAA,CAAO;MACnCC,QAAA;MACAC,OAAA;MACAC;IACF,MAIM;MAEJ,MAAMC,UAAA,GAA4B,EAAC;QAE7BC,QAAA,GAAW3B,cAAA,CAAe;UAC9B0B,UAAA;UACAE,GAAA,EAAKT,WAAA,CAAYS,GAAA;UACjBpB,mBAAA;UACAY,WAAA,EAAa;UACbT,MAAA;UACAY;QACF,CAAC;QAGKM,QAAA,GAAW,MAAMR,SAAA,CAAUS,OAAA,CAAQH,QAAA,EAAUH,OAAO;MAG1D,IAAI,CAACC,cAAA,IAAkBC,UAAA,CAAWK,MAAA,EAAQ;QACxC,MAAMC,EAAA,GAAKnC,QAAA,CAAS;QACpBoC,OAAA,CAAQC,IAAA,CAAK,wCAAwCR,UAAA,CAAWK,MAAM,OAAOC,EAAE,EAAE,GACjFG,OAAA,CAAQC,GAAA,CAAIV,UAAA,CAAWW,GAAA,CAAKC,IAAA,IAASA,IAAA,CAAK,CAAC,CAAC,EACzCC,IAAA,CAAK,MAAM;UACVN,OAAA,CAAQC,IAAA,CAAK,+BAA+BF,EAAE,EAAE;QAClD,CAAC,EACAQ,KAAA,CAAOC,GAAA,IAAQ;UACdR,OAAA,CAAQS,KAAA,CAAM,8CAAuCD,GAAG;QAC1D,CAAC;MACL;MAEA,OAAO;QACLZ,QAAA;QACAH;MACF;IACF;IAEMjC,kBAAA,GAAqB,MAAAA,CAAO;MAChC8B,QAAA;MACAC;IACF,MAGM;MACJ,IAAI,CAACZ,OAAA,EACH,MAAM,IAAI+B,KAAA,CACR,0HAEF;MAIF,OAAAvC,WAAA,CAAYmB,QAAA,IAAa,CAAC,CAAc,GAWjC;QACLM,QAAA,EAVe,MAAMnC,sBAAA,CACrB,CAACkD,IAAA,EAAMC,IAAA,KACUtD,YAAA,CAAqBqB,OAAA,EAASgC,IAAI,EACpCE,EAAA,CAAG;UAAED,IAAA;UAAME,GAAA,EAAKxB;QAAS,CAAC,GAEzCb,MAAA,EACAc,OACF;MAIA;IACF;IAEMwB,MAAA,GAAS,MAAAA,CACbC,GAAA,EACA1B,QAAA,KACG;MACH,MAAMG,UAAA,GAAyC,EAAC;QAE1CC,QAAA,GAAW3B,cAAA,CAAe;UAC9BW,MAAA;UACAS,WAAA,EAAa;UACbM,UAAA;UACAH,QAAA,EAAU;YACRS,EAAA,EAAI;YACJkB,KAAA,EAAO;YACPC,IAAA,EAAM;YACN,GAAG5B;UACL;UACAf,mBAAA;UACAoB,GAAA,EAAKT,WAAA,CAAYS;QACnB,CAAC;MAED,MAAMwB,WAAA,CAAY,MAAOC,EAAA,IAAO;QAC9B,MAAMJ,GAAA,CAAII,EAAA,EAAI1B,QAAQ;MACxB,CAAC,GAED,MAAMQ,OAAA,CAAQC,GAAA,CAAIV,UAAA,CAAWW,GAAA,CAAKiB,CAAA,IAAMA,CAAA,CAAE,CAAC,CAAC;IAC9C;EAEA,eAAeF,YAGbG,MAAA,EAA6B;IAC7B,IAAI;MACF,IAAItD,gBAAA,CAAiB,GAAG;QACtB,MAAM;UAAEoD;QAAG,IAAInD,cAAA,CAAe;QAC9B,OAAO,MAAMqD,MAAA,CAAMF,EAAE;MACvB;MAGA,OADe,MAAMvC,MAAA,CAAOsC,WAAA,CAAYG,MAAA,EAAOC,qBAAqB;IAEtE,SAASf,GAAA,EAAK;MACZ,MAAAR,OAAA,CAAQS,KAAA,CAAM,gCAAgCD,GAAG,EAAE,GAC7CA,GAAA;IACR;EACF;EAEA,SAASgB,MACPC,EAAA,EAC2B;IAC3B,OAAON,WAAA,CAAY,MAAOC,EAAA,IACjBK,EAAA,CAAGL,EAAA,CAAGI,KAAK,CACnB;EACH;EAGI7C,OAAA,IACFT,gBAAA,CAAiBS,OAAO,GAI1BN,SAAA,CAAWqD,QAAA,IACFP,WAAA,CAAY,MAAOC,EAAA,IACjBA,EAAA,CAAGJ,GAAA,CAAIU,QAAQ,CACvB,CACF;EAGD,MAAMH,qBAAA,GAAkD;IACtDI,aAAA,EAAe;IACfC,QAAA,EAAU;IACVC,UAAA,EAAY;IACZC,cAAA,EAAgB;EAClB;EAEA,OAAO;IACLzC,qBAAA;IACA7B,kBAAA;IACA2D,WAAA;IACAJ,MAAA;IACAS;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { mustGetQuery } from "@rocicorp/zero";
|
|
2
|
+
import { PushProcessor } from "@rocicorp/zero/pg";
|
|
3
|
+
import { handleQueryRequest as zeroHandleQueryRequest } from "@rocicorp/zero/server";
|
|
4
|
+
import { zeroNodePg } from "@rocicorp/zero/server/adapters/pg";
|
|
5
|
+
import { assertString, randomId } from "@take-out/helpers";
|
|
6
|
+
import { Pool } from "pg";
|
|
7
|
+
import { createPermissions } from "./createPermissions.native.js";
|
|
8
|
+
import { createMutators } from "./helpers/createMutators.native.js";
|
|
9
|
+
import { isInZeroMutation, mutatorContext } from "./helpers/mutatorContext.native.js";
|
|
10
|
+
import { setCustomQueries } from "./run.native.js";
|
|
11
|
+
import { setAuthData, setSchema } from "./state.native.js";
|
|
12
|
+
import { setRunner } from "./zeroRunner.native.js";
|
|
13
|
+
function createZeroServer(param) {
|
|
14
|
+
var {
|
|
15
|
+
createServerActions,
|
|
16
|
+
database,
|
|
17
|
+
schema,
|
|
18
|
+
models,
|
|
19
|
+
queries
|
|
20
|
+
} = param;
|
|
21
|
+
setSchema(schema);
|
|
22
|
+
var dbString = assertString(database, 'createZeroServer "database"'),
|
|
23
|
+
zeroDb = zeroNodePg(schema, new Pool({
|
|
24
|
+
connectionString: dbString,
|
|
25
|
+
// handle self-signed certificates in production
|
|
26
|
+
ssl: dbString.includes("sslmode=require") ? {
|
|
27
|
+
rejectUnauthorized: !1
|
|
28
|
+
} : void 0
|
|
29
|
+
})),
|
|
30
|
+
permissions = createPermissions({
|
|
31
|
+
environment: "server",
|
|
32
|
+
schema
|
|
33
|
+
}),
|
|
34
|
+
processor = new PushProcessor(zeroDb),
|
|
35
|
+
handleMutationRequest = async function (param2) {
|
|
36
|
+
var {
|
|
37
|
+
authData,
|
|
38
|
+
request,
|
|
39
|
+
skipAsyncTasks
|
|
40
|
+
} = param2,
|
|
41
|
+
asyncTasks = [],
|
|
42
|
+
mutators = createMutators({
|
|
43
|
+
asyncTasks,
|
|
44
|
+
can: permissions.can,
|
|
45
|
+
createServerActions,
|
|
46
|
+
environment: "server",
|
|
47
|
+
models,
|
|
48
|
+
authData
|
|
49
|
+
}),
|
|
50
|
+
response = await processor.process(mutators, request);
|
|
51
|
+
if (!skipAsyncTasks && asyncTasks.length) {
|
|
52
|
+
var id = randomId();
|
|
53
|
+
console.info(`[push] complete, running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map(function (task) {
|
|
54
|
+
return task();
|
|
55
|
+
})).then(function () {
|
|
56
|
+
console.info(`[push] async tasks complete ${id}`);
|
|
57
|
+
}).catch(function (err) {
|
|
58
|
+
console.error("[push] error: async tasks failed \u{1F61E}", err);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
response,
|
|
63
|
+
asyncTasks
|
|
64
|
+
};
|
|
65
|
+
},
|
|
66
|
+
handleQueryRequest = async function (param2) {
|
|
67
|
+
var {
|
|
68
|
+
authData,
|
|
69
|
+
request
|
|
70
|
+
} = param2;
|
|
71
|
+
if (!queries) throw new Error("No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option.");
|
|
72
|
+
setAuthData(authData || {});
|
|
73
|
+
var response = await zeroHandleQueryRequest(function (name, args) {
|
|
74
|
+
var _$query = mustGetQuery(queries, name);
|
|
75
|
+
return _$query.fn({
|
|
76
|
+
args,
|
|
77
|
+
ctx: authData
|
|
78
|
+
});
|
|
79
|
+
}, schema, request);
|
|
80
|
+
return {
|
|
81
|
+
response
|
|
82
|
+
};
|
|
83
|
+
},
|
|
84
|
+
mutate = async function (run, authData) {
|
|
85
|
+
var asyncTasks = [],
|
|
86
|
+
mutators = createMutators({
|
|
87
|
+
models,
|
|
88
|
+
environment: "server",
|
|
89
|
+
asyncTasks,
|
|
90
|
+
authData: {
|
|
91
|
+
id: "",
|
|
92
|
+
email: "admin@start.chat",
|
|
93
|
+
role: "admin",
|
|
94
|
+
...authData
|
|
95
|
+
},
|
|
96
|
+
createServerActions,
|
|
97
|
+
can: permissions.can
|
|
98
|
+
});
|
|
99
|
+
await transaction(async function (tx) {
|
|
100
|
+
await run(tx, mutators);
|
|
101
|
+
}), await Promise.all(asyncTasks.map(function (t) {
|
|
102
|
+
return t();
|
|
103
|
+
}));
|
|
104
|
+
};
|
|
105
|
+
async function transaction(query2) {
|
|
106
|
+
try {
|
|
107
|
+
if (isInZeroMutation()) {
|
|
108
|
+
var {
|
|
109
|
+
tx
|
|
110
|
+
} = mutatorContext();
|
|
111
|
+
return await query2(tx);
|
|
112
|
+
}
|
|
113
|
+
var output = await zeroDb.transaction(query2, dummyTransactionInput);
|
|
114
|
+
return output;
|
|
115
|
+
} catch (err) {
|
|
116
|
+
throw console.error(`Error running transaction(): ${err}`), err;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function query(cb) {
|
|
120
|
+
return transaction(async function (tx) {
|
|
121
|
+
return cb(tx.query);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
queries && setCustomQueries(queries), setRunner(function (queryObj) {
|
|
125
|
+
return transaction(async function (tx) {
|
|
126
|
+
return tx.run(queryObj);
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
var dummyTransactionInput = {
|
|
130
|
+
clientGroupID: "unused",
|
|
131
|
+
clientID: "unused",
|
|
132
|
+
mutationID: 42,
|
|
133
|
+
upstreamSchema: "unused"
|
|
134
|
+
};
|
|
135
|
+
return {
|
|
136
|
+
handleMutationRequest,
|
|
137
|
+
handleQueryRequest,
|
|
138
|
+
transaction,
|
|
139
|
+
mutate,
|
|
140
|
+
query
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
export { createZeroServer };
|
|
144
|
+
//# sourceMappingURL=createZeroServer.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mustGetQuery","PushProcessor","handleQueryRequest","zeroHandleQueryRequest","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","setCustomQueries","setAuthData","setSchema","setRunner","createZeroServer","param","createServerActions","database","schema","models","queries","dbString","zeroDb","connectionString","ssl","includes","rejectUnauthorized","permissions","environment","processor","handleMutationRequest","param2","authData","request","skipAsyncTasks","asyncTasks","mutators","can","response","process","length","id","console","info","Promise","all","map","task","then","catch","err","error","Error","name","args","_$query","fn","ctx","mutate","run","email","role","transaction","tx","t","query2","output","dummyTransactionInput","query","cb","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { sleep } from "@take-out/helpers";
|
|
2
|
+
async function batchQuery(q, mapper, {
|
|
3
|
+
chunk,
|
|
4
|
+
pause = 0,
|
|
5
|
+
stopAfter = 1e5
|
|
6
|
+
} = { chunk: 20 }) {
|
|
7
|
+
let hasMore = !0, last = null, iterations = 0;
|
|
8
|
+
for (; hasMore; ) {
|
|
9
|
+
let query = q.limit(chunk);
|
|
10
|
+
last && (query = query.start(last));
|
|
11
|
+
const results = await query.run({ type: "complete" });
|
|
12
|
+
if (await mapper(results), results.length < chunk && (hasMore = !1), iterations > stopAfter) {
|
|
13
|
+
console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
pause && await sleep(pause);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
batchQuery
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=batchQuery.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/helpers/batchQuery.ts"],
|
|
4
|
+
"mappings": "AAAA,SAAS,aAAa;AAItB,eAAsB,WACpB,GACA,QACA;AAAA,EACE;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AACd,IAII,EAAE,OAAO,GAAG,GAChB;AACA,MAAI,UAAU,IACV,OAAoB,MACpB,aAAa;AAEjB,SAAO,WAAS;AACd,QAAI,QAAQ,EAAE,MAAM,KAAK;AAEzB,IAAI,SACF,QAAQ,MAAM,MAAM,IAAI;AAG1B,UAAM,UAAU,MAAM,MAAM,IAAI,EAAE,MAAM,WAAW,CAAC;AAQpD,QANA,MAAM,OAAO,OAAiB,GAE1B,QAAQ,SAAS,UACnB,UAAU,KAGR,aAAa,WAAW;AAC1B,cAAQ,MAAM,iDAAuC,SAAS,SAAS;AACvE;AAAA,IACF;AAEA,IAAI,SACF,MAAM,MAAM,KAAK;AAAA,EAErB;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|