on-zero 0.7.2 → 0.7.3-1784533014336
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/helpers/createMutators.cjs +4 -3
- package/dist/cjs/helpers/createMutators.native.js +6 -3
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/cjs/index.cjs +0 -1
- package/dist/cjs/index.native.js +0 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/orez.cjs +231 -0
- package/dist/cjs/orez.native.js +324 -0
- package/dist/cjs/orez.native.js.map +1 -0
- package/dist/cjs/orez.test.cjs +268 -0
- package/dist/cjs/orez.test.native.js +288 -0
- package/dist/cjs/orez.test.native.js.map +1 -0
- package/dist/cjs/run.cjs +1 -1
- package/dist/cjs/run.native.js +1 -1
- package/dist/cjs/state.cjs +1 -1
- package/dist/cjs/state.native.js +1 -1
- package/dist/cjs/zeroRunner.cjs +1 -1
- package/dist/cjs/zeroRunner.native.js +1 -1
- package/dist/esm/cli.native.js +1 -1
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/combineZeroClients.native.js +2 -2
- package/dist/esm/combineZeroClients.native.js.map +1 -1
- package/dist/esm/createPermissions.native.js +4 -4
- package/dist/esm/createPermissions.native.js.map +1 -1
- package/dist/esm/createSchemaFromDrizzle.native.js +1 -1
- package/dist/esm/createSchemaFromDrizzle.native.js.map +1 -1
- package/dist/esm/createUseQuery.native.js +2 -2
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createUseQueryDirect.native.js +2 -2
- package/dist/esm/createUseQueryDirect.native.js.map +1 -1
- package/dist/esm/createZeroClient.authData.test.native.js +2 -2
- package/dist/esm/createZeroClient.authData.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.connection.test.native.js +1 -1
- package/dist/esm/createZeroClient.connection.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.native.js +15 -15
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.native.js +1 -1
- package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/esm/generate-helpers.native.js.map +1 -1
- package/dist/esm/generate-lite.native.js +1 -1
- package/dist/esm/generate-lite.native.js.map +1 -1
- package/dist/esm/generate-lite.test.native.js +1 -1
- package/dist/esm/generate-lite.test.native.js.map +1 -1
- package/dist/esm/generate.native.js +1 -1
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.native.js +1 -1
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/helpers/batchQuery.native.js.map +1 -1
- package/dist/esm/helpers/clearZeroClientData.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.mjs +4 -3
- package/dist/esm/helpers/createMutators.mjs.map +1 -1
- package/dist/esm/helpers/createMutators.native.js +8 -5
- package/dist/esm/helpers/createMutators.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.test.native.js +1 -1
- package/dist/esm/helpers/createMutators.test.native.js.map +1 -1
- package/dist/esm/helpers/ensureLoggedIn.native.js +1 -1
- package/dist/esm/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/esm/helpers/getAuth.native.js +3 -3
- package/dist/esm/helpers/getAuth.native.js.map +1 -1
- package/dist/esm/helpers/mutatorContext.native.js.map +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/esm/helpers/queryContext.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/esm/helpers/showZeroClientError.native.js +1 -1
- package/dist/esm/helpers/showZeroClientError.native.js.map +1 -1
- package/dist/esm/helpers/useMutation.native.js.map +1 -1
- package/dist/esm/helpers/useMutation.test.native.js +1 -1
- package/dist/esm/helpers/useMutation.test.native.js.map +1 -1
- package/dist/esm/helpers/useZeroDebug.native.js +1 -1
- package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/esm/httpPull/fixtureSchema.native.js.map +1 -1
- package/dist/esm/httpPull/transport.test.native.js +3 -3
- package/dist/esm/httpPull/transport.test.native.js.map +1 -1
- package/dist/esm/httpPullTransport.native.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +0 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +22 -23
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/instanceRegistry.native.js +1 -1
- package/dist/esm/instanceRegistry.native.js.map +1 -1
- package/dist/esm/modelRegistry.native.js.map +1 -1
- package/dist/esm/multi.native.js +3 -3
- package/dist/esm/multi.native.js.map +1 -1
- package/dist/esm/multiInstance.test.native.js +8 -8
- package/dist/esm/multiInstance.test.native.js.map +1 -1
- package/dist/esm/multiInstanceNested.test.native.js +3 -3
- package/dist/esm/multiInstanceNested.test.native.js.map +1 -1
- package/dist/esm/multiPartition.test.native.js +1 -1
- package/dist/esm/multiPartition.test.native.js.map +1 -1
- package/dist/esm/mutations.native.js +1 -1
- package/dist/esm/mutations.native.js.map +1 -1
- package/dist/esm/mutations.test.native.js +2 -2
- package/dist/esm/mutations.test.native.js.map +1 -1
- package/dist/esm/orez.mjs +205 -0
- package/dist/esm/orez.mjs.map +1 -0
- package/dist/esm/orez.native.js +295 -0
- package/dist/esm/orez.native.js.map +1 -0
- package/dist/esm/orez.test.mjs +245 -0
- package/dist/esm/orez.test.mjs.map +1 -0
- package/dist/esm/orez.test.native.js +262 -0
- package/dist/esm/orez.test.native.js.map +1 -0
- package/dist/esm/provideZero.hydration.test.native.js +1 -1
- package/dist/esm/provideZero.hydration.test.native.js.map +1 -1
- package/dist/esm/queryRegistry.native.js.map +1 -1
- package/dist/esm/resolveQuery.native.js +1 -1
- package/dist/esm/resolveQuery.native.js.map +1 -1
- package/dist/esm/run.mjs +1 -1
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/run.native.js +5 -5
- package/dist/esm/run.native.js.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.native.js +3 -3
- package/dist/esm/serverWhere.test.native.js.map +1 -1
- package/dist/esm/state.mjs +1 -1
- package/dist/esm/state.native.js +1 -1
- package/dist/esm/state.native.js.map +1 -1
- package/dist/esm/testSetup.native.js.map +1 -1
- package/dist/esm/types.native.js.map +1 -1
- package/dist/esm/usePermission.test.native.js +3 -3
- package/dist/esm/usePermission.test.native.js.map +1 -1
- package/dist/esm/useQuery.empty.test.native.js +2 -2
- package/dist/esm/useQuery.empty.test.native.js.map +1 -1
- package/dist/esm/useQuery.ssr.test.native.js +2 -2
- package/dist/esm/useQuery.ssr.test.native.js.map +1 -1
- package/dist/esm/vite-plugin.native.js +1 -1
- package/dist/esm/vite-plugin.native.js.map +1 -1
- package/dist/esm/where.native.js +2 -2
- package/dist/esm/where.native.js.map +1 -1
- package/dist/esm/zeroRunner.mjs +1 -1
- package/dist/esm/zeroRunner.mjs.map +1 -1
- package/dist/esm/zeroRunner.native.js +2 -2
- package/dist/esm/zeroRunner.native.js.map +1 -1
- package/dist/esm/zql.native.js +1 -1
- package/dist/esm/zql.native.js.map +1 -1
- package/package.json +7 -23
- package/readme.md +40 -65
- package/src/createZeroClient.tsx +1 -1
- package/src/helpers/createMutators.ts +6 -2
- package/src/index.ts +0 -1
- package/src/orez.test.ts +266 -0
- package/src/orez.ts +344 -0
- package/src/run.ts +1 -1
- package/src/state.ts +1 -1
- package/src/types.ts +0 -5
- package/src/zeroRunner.ts +1 -1
- package/test-fixtures/server-return-types.ts +21 -58
- package/types/helpers/createMutators.d.ts +2 -1
- package/types/helpers/createMutators.d.ts.map +1 -1
- package/types/httpPull/fixtureSchema.d.ts +1 -1
- package/types/index.d.ts +0 -1
- package/types/index.d.ts.map +1 -1
- package/types/orez.d.ts +54 -0
- package/types/orez.d.ts.map +1 -0
- package/types/orez.test.d.ts +2 -0
- package/types/orez.test.d.ts.map +1 -0
- package/types/types.d.ts +0 -4
- package/types/types.d.ts.map +1 -1
- package/dist/cjs/asyncTasks.cjs +0 -51
- package/dist/cjs/asyncTasks.native.js +0 -84
- package/dist/cjs/asyncTasks.native.js.map +0 -1
- package/dist/cjs/createZeroDirectServer.cjs +0 -269
- package/dist/cjs/createZeroDirectServer.native.js +0 -287
- package/dist/cjs/createZeroDirectServer.native.js.map +0 -1
- package/dist/cjs/createZeroSQLiteServer.cjs +0 -50
- package/dist/cjs/createZeroSQLiteServer.native.js +0 -58
- package/dist/cjs/createZeroSQLiteServer.native.js.map +0 -1
- package/dist/cjs/createZeroSQLiteServer.test.cjs +0 -595
- package/dist/cjs/createZeroSQLiteServer.test.native.js +0 -647
- package/dist/cjs/createZeroSQLiteServer.test.native.js.map +0 -1
- package/dist/cjs/createZeroServer.cjs +0 -82
- package/dist/cjs/createZeroServer.native.js +0 -93
- package/dist/cjs/createZeroServer.native.js.map +0 -1
- package/dist/cjs/createZeroServer.test.cjs +0 -378
- package/dist/cjs/createZeroServer.test.native.js +0 -448
- package/dist/cjs/createZeroServer.test.native.js.map +0 -1
- package/dist/cjs/createZeroServerCore.cjs +0 -211
- package/dist/cjs/createZeroServerCore.native.js +0 -355
- package/dist/cjs/createZeroServerCore.native.js.map +0 -1
- package/dist/cjs/httpPull/auth.test.cjs +0 -197
- package/dist/cjs/httpPull/auth.test.native.js +0 -279
- package/dist/cjs/httpPull/auth.test.native.js.map +0 -1
- package/dist/cjs/httpPull/churn.test.cjs +0 -132
- package/dist/cjs/httpPull/churn.test.native.js +0 -155
- package/dist/cjs/httpPull/churn.test.native.js.map +0 -1
- package/dist/cjs/httpPull/completeAck.test.cjs +0 -69
- package/dist/cjs/httpPull/completeAck.test.native.js +0 -76
- package/dist/cjs/httpPull/completeAck.test.native.js.map +0 -1
- package/dist/cjs/httpPull/fixtureServer.cjs +0 -340
- package/dist/cjs/httpPull/fixtureServer.native.js +0 -534
- package/dist/cjs/httpPull/fixtureServer.native.js.map +0 -1
- package/dist/cjs/httpPull/integration.test.cjs +0 -53
- package/dist/cjs/httpPull/integration.test.native.js +0 -60
- package/dist/cjs/httpPull/integration.test.native.js.map +0 -1
- package/dist/cjs/httpPull/rebase.test.cjs +0 -360
- package/dist/cjs/httpPull/rebase.test.native.js +0 -420
- package/dist/cjs/httpPull/rebase.test.native.js.map +0 -1
- package/dist/cjs/httpPull/relations.test.cjs +0 -107
- package/dist/cjs/httpPull/relations.test.native.js +0 -119
- package/dist/cjs/httpPull/relations.test.native.js.map +0 -1
- package/dist/cjs/httpPull/testHarness.cjs +0 -100
- package/dist/cjs/httpPull/testHarness.native.js +0 -112
- package/dist/cjs/httpPull/testHarness.native.js.map +0 -1
- package/dist/cjs/server.cjs +0 -22
- package/dist/cjs/server.native.js +0 -4
- package/dist/cjs/server.native.js.map +0 -1
- package/dist/cjs/sqliteRuntime.cjs +0 -318
- package/dist/cjs/sqliteRuntime.native.js +0 -438
- package/dist/cjs/sqliteRuntime.native.js.map +0 -1
- package/dist/cjs/syncHost.cjs +0 -179
- package/dist/cjs/syncHost.native.js +0 -388
- package/dist/cjs/syncHost.native.js.map +0 -1
- package/dist/cjs/syncHost.test.cjs +0 -240
- package/dist/cjs/syncHost.test.native.js +0 -290
- package/dist/cjs/syncHost.test.native.js.map +0 -1
- package/dist/esm/asyncTasks.mjs +0 -26
- package/dist/esm/asyncTasks.mjs.map +0 -1
- package/dist/esm/asyncTasks.native.js +0 -56
- package/dist/esm/asyncTasks.native.js.map +0 -1
- package/dist/esm/createZeroDirectServer.mjs +0 -241
- package/dist/esm/createZeroDirectServer.mjs.map +0 -1
- package/dist/esm/createZeroDirectServer.native.js +0 -256
- package/dist/esm/createZeroDirectServer.native.js.map +0 -1
- package/dist/esm/createZeroSQLiteServer.mjs +0 -24
- package/dist/esm/createZeroSQLiteServer.mjs.map +0 -1
- package/dist/esm/createZeroSQLiteServer.native.js +0 -29
- package/dist/esm/createZeroSQLiteServer.native.js.map +0 -1
- package/dist/esm/createZeroSQLiteServer.test.mjs +0 -596
- package/dist/esm/createZeroSQLiteServer.test.mjs.map +0 -1
- package/dist/esm/createZeroSQLiteServer.test.native.js +0 -645
- package/dist/esm/createZeroSQLiteServer.test.native.js.map +0 -1
- package/dist/esm/createZeroServer.mjs +0 -57
- package/dist/esm/createZeroServer.mjs.map +0 -1
- package/dist/esm/createZeroServer.native.js +0 -65
- package/dist/esm/createZeroServer.native.js.map +0 -1
- package/dist/esm/createZeroServer.test.mjs +0 -379
- package/dist/esm/createZeroServer.test.mjs.map +0 -1
- package/dist/esm/createZeroServer.test.native.js +0 -446
- package/dist/esm/createZeroServer.test.native.js.map +0 -1
- package/dist/esm/createZeroServerCore.mjs +0 -186
- package/dist/esm/createZeroServerCore.mjs.map +0 -1
- package/dist/esm/createZeroServerCore.native.js +0 -327
- package/dist/esm/createZeroServerCore.native.js.map +0 -1
- package/dist/esm/httpPull/auth.test.mjs +0 -198
- package/dist/esm/httpPull/auth.test.mjs.map +0 -1
- package/dist/esm/httpPull/auth.test.native.js +0 -277
- package/dist/esm/httpPull/auth.test.native.js.map +0 -1
- package/dist/esm/httpPull/churn.test.mjs +0 -133
- package/dist/esm/httpPull/churn.test.mjs.map +0 -1
- package/dist/esm/httpPull/churn.test.native.js +0 -153
- package/dist/esm/httpPull/churn.test.native.js.map +0 -1
- package/dist/esm/httpPull/completeAck.test.mjs +0 -70
- package/dist/esm/httpPull/completeAck.test.mjs.map +0 -1
- package/dist/esm/httpPull/completeAck.test.native.js +0 -74
- package/dist/esm/httpPull/completeAck.test.native.js.map +0 -1
- package/dist/esm/httpPull/fixtureServer.mjs +0 -315
- package/dist/esm/httpPull/fixtureServer.mjs.map +0 -1
- package/dist/esm/httpPull/fixtureServer.native.js +0 -506
- package/dist/esm/httpPull/fixtureServer.native.js.map +0 -1
- package/dist/esm/httpPull/integration.test.mjs +0 -54
- package/dist/esm/httpPull/integration.test.mjs.map +0 -1
- package/dist/esm/httpPull/integration.test.native.js +0 -58
- package/dist/esm/httpPull/integration.test.native.js.map +0 -1
- package/dist/esm/httpPull/rebase.test.mjs +0 -361
- package/dist/esm/httpPull/rebase.test.mjs.map +0 -1
- package/dist/esm/httpPull/rebase.test.native.js +0 -418
- package/dist/esm/httpPull/rebase.test.native.js.map +0 -1
- package/dist/esm/httpPull/relations.test.mjs +0 -108
- package/dist/esm/httpPull/relations.test.mjs.map +0 -1
- package/dist/esm/httpPull/relations.test.native.js +0 -117
- package/dist/esm/httpPull/relations.test.native.js.map +0 -1
- package/dist/esm/httpPull/testHarness.mjs +0 -72
- package/dist/esm/httpPull/testHarness.mjs.map +0 -1
- package/dist/esm/httpPull/testHarness.native.js +0 -81
- package/dist/esm/httpPull/testHarness.native.js.map +0 -1
- package/dist/esm/server.mjs +0 -4
- package/dist/esm/server.mjs.map +0 -1
- package/dist/esm/server.native.js +0 -2
- package/dist/esm/server.native.js.map +0 -1
- package/dist/esm/sqliteRuntime.mjs +0 -289
- package/dist/esm/sqliteRuntime.mjs.map +0 -1
- package/dist/esm/sqliteRuntime.native.js +0 -406
- package/dist/esm/sqliteRuntime.native.js.map +0 -1
- package/dist/esm/syncHost.mjs +0 -153
- package/dist/esm/syncHost.mjs.map +0 -1
- package/dist/esm/syncHost.native.js +0 -359
- package/dist/esm/syncHost.native.js.map +0 -1
- package/dist/esm/syncHost.test.mjs +0 -217
- package/dist/esm/syncHost.test.mjs.map +0 -1
- package/dist/esm/syncHost.test.native.js +0 -264
- package/dist/esm/syncHost.test.native.js.map +0 -1
- package/src/asyncTasks.ts +0 -36
- package/src/createZeroDirectServer.ts +0 -411
- package/src/createZeroSQLiteServer.test.ts +0 -614
- package/src/createZeroSQLiteServer.ts +0 -56
- package/src/createZeroServer.test.ts +0 -421
- package/src/createZeroServer.ts +0 -105
- package/src/createZeroServerCore.ts +0 -296
- package/src/httpPull/auth.test.ts +0 -208
- package/src/httpPull/churn.test.ts +0 -147
- package/src/httpPull/completeAck.test.ts +0 -80
- package/src/httpPull/fixtureServer.ts +0 -391
- package/src/httpPull/integration.test.ts +0 -57
- package/src/httpPull/rebase.test.ts +0 -368
- package/src/httpPull/relations.test.ts +0 -135
- package/src/httpPull/testHarness.ts +0 -95
- package/src/server.native.ts +0 -3
- package/src/server.ts +0 -4
- package/src/sqliteRuntime.ts +0 -512
- package/src/syncHost.test.ts +0 -223
- package/src/syncHost.ts +0 -294
- package/types/asyncTasks.d.ts +0 -11
- package/types/asyncTasks.d.ts.map +0 -1
- package/types/createZeroDirectServer.d.ts +0 -80
- package/types/createZeroDirectServer.d.ts.map +0 -1
- package/types/createZeroSQLiteServer.d.ts +0 -12
- package/types/createZeroSQLiteServer.d.ts.map +0 -1
- package/types/createZeroSQLiteServer.test.d.ts +0 -2
- package/types/createZeroSQLiteServer.test.d.ts.map +0 -1
- package/types/createZeroServer.d.ts +0 -18
- package/types/createZeroServer.d.ts.map +0 -1
- package/types/createZeroServer.test.d.ts +0 -2
- package/types/createZeroServer.test.d.ts.map +0 -1
- package/types/createZeroServerCore.d.ts +0 -256
- package/types/createZeroServerCore.d.ts.map +0 -1
- package/types/httpPull/auth.test.d.ts +0 -2
- package/types/httpPull/auth.test.d.ts.map +0 -1
- package/types/httpPull/churn.test.d.ts +0 -2
- package/types/httpPull/churn.test.d.ts.map +0 -1
- package/types/httpPull/completeAck.test.d.ts +0 -2
- package/types/httpPull/completeAck.test.d.ts.map +0 -1
- package/types/httpPull/fixtureServer.d.ts +0 -14
- package/types/httpPull/fixtureServer.d.ts.map +0 -1
- package/types/httpPull/integration.test.d.ts +0 -2
- package/types/httpPull/integration.test.d.ts.map +0 -1
- package/types/httpPull/rebase.test.d.ts +0 -2
- package/types/httpPull/rebase.test.d.ts.map +0 -1
- package/types/httpPull/relations.test.d.ts +0 -2
- package/types/httpPull/relations.test.d.ts.map +0 -1
- package/types/httpPull/testHarness.d.ts +0 -32
- package/types/httpPull/testHarness.d.ts.map +0 -1
- package/types/server.d.ts +0 -5
- package/types/server.d.ts.map +0 -1
- package/types/server.native.d.ts +0 -1
- package/types/server.native.d.ts.map +0 -1
- package/types/sqliteRuntime.d.ts +0 -71
- package/types/sqliteRuntime.d.ts.map +0 -1
- package/types/syncHost.d.ts +0 -42
- package/types/syncHost.d.ts.map +0 -1
- package/types/syncHost.test.d.ts +0 -2
- package/types/syncHost.test.d.ts.map +0 -1
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var orez_exports = {};
|
|
26
|
+
__export(orez_exports, {
|
|
27
|
+
authDataToClaims: () => authDataToClaims,
|
|
28
|
+
createOrezBindings: () => createOrezBindings
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(orez_exports);
|
|
31
|
+
var import_zero = require("@rocicorp/zero");
|
|
32
|
+
var import_bindings = require("@rocicorp/zero/bindings");
|
|
33
|
+
var import_server = require("@rocicorp/zero/server");
|
|
34
|
+
var import_helpers = require("@take-out/helpers");
|
|
35
|
+
var import_sync_executor = require("orez/sync-executor");
|
|
36
|
+
var import_createPermissions = require("./createPermissions.native.js");
|
|
37
|
+
var import_createMutators = require("./helpers/createMutators.native.js");
|
|
38
|
+
var import_mutatorContext = require("./helpers/mutatorContext.native.js");
|
|
39
|
+
var import_queryContext = require("./helpers/queryContext.native.js");
|
|
40
|
+
var import_modelRegistry = require("./modelRegistry.native.js");
|
|
41
|
+
var import_run = require("./run.native.js");
|
|
42
|
+
var import_state = require("./state.native.js");
|
|
43
|
+
var import_where = require("./where.native.js");
|
|
44
|
+
var import_zeroRunner = require("./zeroRunner.native.js");
|
|
45
|
+
function _instanceof(left, right) {
|
|
46
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
47
|
+
return !!right[Symbol.hasInstance](left);
|
|
48
|
+
} else {
|
|
49
|
+
return left instanceof right;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function _type_of(obj) {
|
|
53
|
+
"@swc/helpers - typeof";
|
|
54
|
+
|
|
55
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
56
|
+
}
|
|
57
|
+
function createOrezBindings(options) {
|
|
58
|
+
(0, import_state.setSchema)(options.schema, (0, import_zero.createBuilder)(options.schema));
|
|
59
|
+
(0, import_state.setEnvironment)("server");
|
|
60
|
+
if (options.queries) (0, import_run.setCustomQueries)(options.queries);
|
|
61
|
+
var _options_mapClaims;
|
|
62
|
+
var mapClaims = (_options_mapClaims = options.mapClaims) !== null && _options_mapClaims !== void 0 ? _options_mapClaims : defaultMapClaims;
|
|
63
|
+
var _options_defaultAllowAdminRole;
|
|
64
|
+
var permissions = (0, import_createPermissions.createPermissions)({
|
|
65
|
+
environment: "server",
|
|
66
|
+
schema: options.schema,
|
|
67
|
+
adminRoleMode: (_options_defaultAllowAdminRole = options.defaultAllowAdminRole) !== null && _options_defaultAllowAdminRole !== void 0 ? _options_defaultAllowAdminRole : "all"
|
|
68
|
+
});
|
|
69
|
+
var registry = {};
|
|
70
|
+
var invocation = (0, import_helpers.createAsyncContext)();
|
|
71
|
+
var decoratedMutators = (0, import_createMutators.createMutators)({
|
|
72
|
+
authData: null,
|
|
73
|
+
can: permissions.can,
|
|
74
|
+
createServerActions: options.createServerActions,
|
|
75
|
+
environment: "server",
|
|
76
|
+
models: options.models,
|
|
77
|
+
mutationValidators: options.mutations,
|
|
78
|
+
validateMutation: options.validateMutation ? async function (input) {
|
|
79
|
+
try {
|
|
80
|
+
await options.validateMutation(input);
|
|
81
|
+
} catch (error) {
|
|
82
|
+
throw mutationApplicationError(error);
|
|
83
|
+
}
|
|
84
|
+
} : void 0,
|
|
85
|
+
resolveAuthData: function () {
|
|
86
|
+
var _invocation_get;
|
|
87
|
+
var _invocation_get_authData;
|
|
88
|
+
return (_invocation_get_authData = (_invocation_get = invocation.get()) === null || _invocation_get === void 0 ? void 0 : _invocation_get.authData) !== null && _invocation_get_authData !== void 0 ? _invocation_get_authData : null;
|
|
89
|
+
},
|
|
90
|
+
enqueueTask(task, taskOptions) {
|
|
91
|
+
var current = invocation.get();
|
|
92
|
+
if (!current) throw new Error("on-zero task scheduled outside an Orez mutation");
|
|
93
|
+
current.ctx.defer(function () {
|
|
94
|
+
return (0, import_mutatorContext.runWithAuthScope)(current.authData, task);
|
|
95
|
+
}, taskOptions);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
var _iteratorNormalCompletion = true,
|
|
99
|
+
_didIteratorError = false,
|
|
100
|
+
_iteratorError = void 0;
|
|
101
|
+
try {
|
|
102
|
+
var _loop = function () {
|
|
103
|
+
var [modelName, model] = _step.value;
|
|
104
|
+
var _model_mutate;
|
|
105
|
+
var _iteratorNormalCompletion2 = true,
|
|
106
|
+
_didIteratorError2 = false,
|
|
107
|
+
_iteratorError2 = void 0;
|
|
108
|
+
try {
|
|
109
|
+
var _loop2 = function () {
|
|
110
|
+
var mutatorName = _step1.value;
|
|
111
|
+
registry[`${modelName}|${mutatorName}`] = async function (param) {
|
|
112
|
+
var {
|
|
113
|
+
tx,
|
|
114
|
+
args,
|
|
115
|
+
ctx
|
|
116
|
+
} = param;
|
|
117
|
+
var _decoratedMutators_modelName;
|
|
118
|
+
var authData = mapClaims(ctx.claims);
|
|
119
|
+
var mutation = (_decoratedMutators_modelName = decoratedMutators[modelName]) === null || _decoratedMutators_modelName === void 0 ? void 0 : _decoratedMutators_modelName[mutatorName];
|
|
120
|
+
if (!mutation) throw new Error(`unknown on-zero mutator: ${modelName}|${mutatorName}`);
|
|
121
|
+
try {
|
|
122
|
+
await invocation.run({
|
|
123
|
+
authData,
|
|
124
|
+
ctx
|
|
125
|
+
}, function () {
|
|
126
|
+
return mutation(tx, args);
|
|
127
|
+
});
|
|
128
|
+
} catch (error) {
|
|
129
|
+
var name = error === null || error === void 0 ? void 0 : error.name;
|
|
130
|
+
if (name === "MutationApplicationError") throw error;
|
|
131
|
+
if (name !== "PermissionError" && name !== "ValiError") throw error;
|
|
132
|
+
throw mutationApplicationError(error);
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
for (var _iterator2 = Object.keys((_model_mutate = model.mutate) !== null && _model_mutate !== void 0 ? _model_mutate : {})[Symbol.iterator](), _step1; !(_iteratorNormalCompletion2 = (_step1 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) _loop2();
|
|
137
|
+
} catch (err) {
|
|
138
|
+
_didIteratorError2 = true;
|
|
139
|
+
_iteratorError2 = err;
|
|
140
|
+
} finally {
|
|
141
|
+
try {
|
|
142
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
143
|
+
_iterator2.return();
|
|
144
|
+
}
|
|
145
|
+
} finally {
|
|
146
|
+
if (_didIteratorError2) {
|
|
147
|
+
throw _iteratorError2;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
for (var _iterator = Object.entries(options.models)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
|
|
153
|
+
} catch (err) {
|
|
154
|
+
_didIteratorError = true;
|
|
155
|
+
_iteratorError = err;
|
|
156
|
+
} finally {
|
|
157
|
+
try {
|
|
158
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
159
|
+
_iterator.return();
|
|
160
|
+
}
|
|
161
|
+
} finally {
|
|
162
|
+
if (_didIteratorError) {
|
|
163
|
+
throw _iteratorError;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
var bindings = {
|
|
168
|
+
mutators: (0, import_sync_executor.registerMutators)(registry),
|
|
169
|
+
async resolveQuery(name, args, claims) {
|
|
170
|
+
if (!options.queries) {
|
|
171
|
+
throw new Error("No queries registered with createOrezBindings.");
|
|
172
|
+
}
|
|
173
|
+
var authData = mapClaims(claims);
|
|
174
|
+
var query = await (0, import_queryContext.runWithQueryContext)({
|
|
175
|
+
authData
|
|
176
|
+
}, function () {
|
|
177
|
+
return resolveServerQuery({
|
|
178
|
+
authData,
|
|
179
|
+
name,
|
|
180
|
+
args: args[0],
|
|
181
|
+
queries: options.queries,
|
|
182
|
+
permissions,
|
|
183
|
+
validateQuery: options.validateQuery
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
return (0, import_bindings.asQueryInternals)(query).ast;
|
|
187
|
+
},
|
|
188
|
+
async transformQueryRequest(param) {
|
|
189
|
+
var {
|
|
190
|
+
authData,
|
|
191
|
+
request
|
|
192
|
+
} = param;
|
|
193
|
+
if (!options.queries) {
|
|
194
|
+
throw new Error("No queries registered with createOrezBindings.");
|
|
195
|
+
}
|
|
196
|
+
var handler = function (name, args) {
|
|
197
|
+
return resolveServerQuery({
|
|
198
|
+
authData,
|
|
199
|
+
name,
|
|
200
|
+
args,
|
|
201
|
+
queries: options.queries,
|
|
202
|
+
permissions,
|
|
203
|
+
validateQuery: options.validateQuery
|
|
204
|
+
});
|
|
205
|
+
};
|
|
206
|
+
var userID = typeof (authData === null || authData === void 0 ? void 0 : authData.id) === "string" ? authData.id : void 0;
|
|
207
|
+
return (0, import_queryContext.runWithQueryContext)({
|
|
208
|
+
authData: authData || {}
|
|
209
|
+
}, function () {
|
|
210
|
+
return userID === void 0 ? (0, import_server.handleQueryRequest)(handler, options.schema, request) : (0, import_server.handleQueryRequest)({
|
|
211
|
+
handler,
|
|
212
|
+
schema: options.schema,
|
|
213
|
+
request,
|
|
214
|
+
userID
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
},
|
|
218
|
+
server(executor) {
|
|
219
|
+
var transaction = function (claims, work) {
|
|
220
|
+
return executor.transaction(claims, function (tx) {
|
|
221
|
+
return work(tx);
|
|
222
|
+
});
|
|
223
|
+
};
|
|
224
|
+
(0, import_zeroRunner.setRunner)(function (query) {
|
|
225
|
+
return transaction({
|
|
226
|
+
userID: "server"
|
|
227
|
+
}, function (tx) {
|
|
228
|
+
return tx.run(query);
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
var mutate = new Proxy({}, {
|
|
232
|
+
get(_target, modelName) {
|
|
233
|
+
return new Proxy({}, {
|
|
234
|
+
get(_inner, mutatorName) {
|
|
235
|
+
var _options_models_modelName_mutate, _options_models_modelName;
|
|
236
|
+
var handler = (_options_models_modelName = options.models[modelName]) === null || _options_models_modelName === void 0 ? void 0 : (_options_models_modelName_mutate = _options_models_modelName.mutate) === null || _options_models_modelName_mutate === void 0 ? void 0 : _options_models_modelName_mutate[mutatorName];
|
|
237
|
+
var acceptsArgument = typeof handler === "function" && handler.length > 1;
|
|
238
|
+
return function (argsOrOptions, optionsForArgument) {
|
|
239
|
+
var args = acceptsArgument ? argsOrOptions : null;
|
|
240
|
+
var mutateOptions = acceptsArgument ? optionsForArgument : argsOrOptions;
|
|
241
|
+
var _mutateOptions_authData;
|
|
242
|
+
var scoped = (_mutateOptions_authData = mutateOptions === null || mutateOptions === void 0 ? void 0 : mutateOptions.authData) !== null && _mutateOptions_authData !== void 0 ? _mutateOptions_authData : (0, import_mutatorContext.getScopedAuthData)();
|
|
243
|
+
var claims = authToClaims(scoped);
|
|
244
|
+
return executor.execute(`${modelName}|${mutatorName}`, args, claims);
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
return {
|
|
251
|
+
mutate,
|
|
252
|
+
transaction,
|
|
253
|
+
query(claims, work) {
|
|
254
|
+
return (0, import_queryContext.runWithQueryContext)({
|
|
255
|
+
authData: mapClaims(claims)
|
|
256
|
+
}, function () {
|
|
257
|
+
return executor.query(claims, function (tx) {
|
|
258
|
+
return tx.run(work((0, import_state.getZQL)()));
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
return bindings;
|
|
266
|
+
}
|
|
267
|
+
function resolveServerQuery(param) {
|
|
268
|
+
var {
|
|
269
|
+
authData,
|
|
270
|
+
name,
|
|
271
|
+
args,
|
|
272
|
+
queries,
|
|
273
|
+
permissions,
|
|
274
|
+
validateQuery
|
|
275
|
+
} = param;
|
|
276
|
+
if (name.startsWith("permission.")) {
|
|
277
|
+
var table = name.slice("permission.".length);
|
|
278
|
+
var {
|
|
279
|
+
objOrId
|
|
280
|
+
} = args;
|
|
281
|
+
var permission = (0, import_modelRegistry.getMutationsPermissions)(table);
|
|
282
|
+
if (!permission) throw new Error(`[permission] no permission defined for table: ${table}`);
|
|
283
|
+
(0, import_where.setEvaluatingPermission)(true);
|
|
284
|
+
try {
|
|
285
|
+
return (0, import_state.getZQL)()[table].where(function (eb) {
|
|
286
|
+
return permissions.buildPermissionQuery(authData, eb, permission, objOrId, table);
|
|
287
|
+
}).one();
|
|
288
|
+
} finally {
|
|
289
|
+
(0, import_where.setEvaluatingPermission)(false);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
validateQuery === null || validateQuery === void 0 ? void 0 : validateQuery({
|
|
293
|
+
authData,
|
|
294
|
+
queryName: name,
|
|
295
|
+
params: args
|
|
296
|
+
});
|
|
297
|
+
return (0, import_zero.mustGetQuery)(queries, name).fn({
|
|
298
|
+
args,
|
|
299
|
+
ctx: authData
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
var AUTH_CLAIM = "authData";
|
|
303
|
+
function authDataToClaims(authData) {
|
|
304
|
+
var anonymousUserID = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "anon";
|
|
305
|
+
var userID = typeof (authData === null || authData === void 0 ? void 0 : authData.id) === "string" ? authData.id : anonymousUserID;
|
|
306
|
+
var claims = {
|
|
307
|
+
userID
|
|
308
|
+
};
|
|
309
|
+
if (authData) claims[AUTH_CLAIM] = authData;
|
|
310
|
+
return claims;
|
|
311
|
+
}
|
|
312
|
+
function defaultMapClaims(claims) {
|
|
313
|
+
var authData = claims[AUTH_CLAIM];
|
|
314
|
+
if (!authData || (typeof authData === "undefined" ? "undefined" : _type_of(authData)) !== "object") return null;
|
|
315
|
+
return authData;
|
|
316
|
+
}
|
|
317
|
+
function authToClaims(authData) {
|
|
318
|
+
return authDataToClaims(authData, "server");
|
|
319
|
+
}
|
|
320
|
+
function mutationApplicationError(error) {
|
|
321
|
+
var message = _instanceof(error, Error) ? error.message : String(error);
|
|
322
|
+
return new import_sync_executor.MutationApplicationError(message, message);
|
|
323
|
+
}
|
|
324
|
+
//# sourceMappingURL=orez.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","orez_exports","__export","authDataToClaims","createOrezBindings","module","exports","import_zero","require","import_bindings","import_server","import_helpers","import_sync_executor","import_createPermissions","import_createMutators","import_mutatorContext","import_queryContext","import_modelRegistry","import_run","import_state","import_where","import_zeroRunner","_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","options","setSchema","schema","createBuilder","setEnvironment","queries","setCustomQueries","_options_mapClaims","mapClaims","defaultMapClaims","_options_defaultAllowAdminRole","permissions","createPermissions","environment","adminRoleMode","defaultAllowAdminRole","registry","invocation","createAsyncContext","decoratedMutators","createMutators","authData","can","createServerActions","models","mutationValidators","mutations","validateMutation","input","error","mutationApplicationError","resolveAuthData","_invocation_get","_invocation_get_authData","get","enqueueTask","task","taskOptions","current","Error","ctx","defer","runWithAuthScope","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","modelName","model","_step","_model_mutate","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop2","mutatorName","_step1","param","tx","args","_decoratedMutators_modelName","claims","mutation","run","name","_iterator2","Object","keys","mutate","iterator","next","done","err","return","_iterator","entries","bindings","mutators","registerMutators","resolveQuery","query","runWithQueryContext","resolveServerQuery","validateQuery","asQueryInternals","ast","transformQueryRequest","request","handler","userID","id","handleQueryRequest","server","executor","transaction","work","setRunner","Proxy","_target","_inner","_options_models_modelName_mutate","_options_models_modelName"],"sources":["../../src/orez.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,YAAA;AAAAC,QAAA,CAAAD,YAAA;EAAAE,gBAAA,EAAAA,CAAA,KAAAA,gBAAA;EAAAC,kBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAV,YAA4C,CAAAK,YAAA;AAC5C,IAAAM,WAAA,GAAAC,OAAiC;AACjC,IAAAC,eAAA,GAA6DD,OAAA;AAC7D,IAAAE,aAAA,GAAAF,OAAmC;AACnC,IAAAG,cAAA,GAAAH,OAOO;AAEP,IAAAI,oBAAA,GAAAJ,OAAkC;AAClC,IAAAK,wBAA+B,GAAAL,OAAA;AAC/B,IAAAM,qBAAA,GAAoDN,OAAA;AACpD,IAAAO,qBAAA,GAAoCP,OAAA;AACpC,IAAAQ,mBAAA,GAAAR,OAAwC;AACxC,IAAAS,oBAAiC,GAAAT,OAAA;AACjC,IAAAU,UAAA,GAAAV,OAAkD;AAClD,IAAAW,YAAA,GAAwCX,OAAA;AACxC,IAAAY,YAAA,GAAAZ,OAA0B;AA0FnB,IAAAa,iBAAS,GAAAb,OAKd,yBAC8B;AAC9B,SAAAc,YAAAC,IAAA,EAAAC,KAAU;EACV,IAAAA,KAAA,mBAAAC,MAAe,gBAAQ,IAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA;IACvB,OAAI,EAAAF,KAAQ,CAAAC,MAAS,CAAAC,WAAA,EAAAH,IAAA;EAErB,OAAM;IACN,OAAMA,IAAA,YAAcC,KAAA;EAAkB;AACvB;AACG,SAChBG,SAAAC,GAAe;EACjB,uBAAC;;EACD,OAAMA,GAAA,WAA6DH,MAAA,oBAAAG,GAAA,CAAAC,WAAA,KAAAJ,MAAA,qBAAAG,GAAA;AACnE;AAIA,SAAMxB,mBAAA0B,OAAoB;EAAe,EACvC,EAAAX,YAAU,CAAAY,SAAA,EAAAD,OAAA,CAAAE,MAAA,MAAAzB,WAAA,CAAA0B,aAAA,EAAAH,OAAA,CAAAE,MAAA;EAAA,EACV,EAAAb,YAAK,CAAAe,cAAY;EAAA,IACjBJ,OAAA,CAAAK,OAAA,IAAqB,EAAAjB,UAAQ,CAAAkB,gBAAA,EAAAN,OAAA,CAAAK,OAAA;EAAA,IAC7BE,kBAAa;EAAA,IACbC,SAAQ,IAAAD,kBAAQ,GAAAP,OAAA,CAAAQ,SAAA,cAAAD,kBAAA,cAAAA,kBAAA,GAAAE,gBAAA;EAAA,IAChBC,8BAA4B;EAAA,IAC5BC,WAAA,KAAkB,EAAA5B,wBAAQ,CACtB6B,iBAAiB;IACfC,WAAI;IACFX,MAAA,EAAAF,OAAM,CAAAE,MAAQ;IAAuBY,aAC9B,GAAAJ,8BAAO,GAAAV,OAAA,CAAAe,qBAAA,cAAAL,8BAAA,cAAAA,8BAAA;EACd;EAAoC,IACtCM,QAAA;EAAA,IACFC,UACA,OAAApC,cAAA,CAAAqC,kBAAA;EAAA,IACJC,iBAAiB,IAAM,GAAAnC,qBAAkB,CAAAoC,cAAY;IACrDC,QAAA,MAAY;IACVC,GAAA,EAAAX,WAAM,CAAAW,GAAU;IAChBC,mBAAc,EAAAvB,OAAU,CAAAuB,mBAAM;IAC9BV,WAAQ,UAAU;IACpBW,MAAA,EAAAxB,OAAA,CAAAwB,MAAA;IACDC,kBAAA,EAAAzB,OAAA,CAAA0B,SAAA;IAEDC,gBAAY,EAAA3B,OAAW,CAAK2B,gBAAY,mBAAsBC,KAAG;MAC/D;QACE,MAAA5B,OAAY,CAAA2B,gBAAa,CAAAC,KAAa;MACpC,SAAMC,KAAA;QACN,MAAMC,wBAAW,CAAAD,KAAkB;MACnC;IACE;IACFE,eAAI,WAAAA,CAAA;MACF,IAAAC,eAAM;MAAW,IAAAC,wBAAoB;MAAA,OAAG,CAAAA,wBACK,IAAAD,eAAA,GAAAf,UAAA,CAAAiB,GAAA,gBAAAF,eAAA,uBAAAA,eAAA,CAAAX,QAAA,cAAAY,wBAAA,cAAAA,wBAAA;IAAA;IAC7CE,WACFA,CAAAC,IAAS,EAAAC,WAAO;MACd,IAAAC,OAAM,GAAArB,UAAsC,CAAAiB,GAAA;MAC5C,KAAAI,OAAI,QAAS,IAAAC,KAAA,kDAAkC;MAC/CD,OAAA,CAAIE,GAAA,CAAAC,KAAS;QACb,QAAM,GAAAxD,qBAAA,CAAyByD,gBAAK,EAAAJ,OAAA,CAAAjB,QAAA,EAAAe,IAAA;MAAA,GACtCC,WAAA;IAAA;EACF,EACF;EACF,IAAAM,yBAAA;IAAAC,iBAAA;IAAAC,cAAA;EAEA;IACE,IAAAC,KAAA,YAAAA,CAAA,EAAU;MACV,IAAM,CAAAC,SAAA,EAAAC,KAAa,IAAMC,KAAM,CAAA/E,KAAA;MAC7B,IAAIgF,aAAS;MACX,IAAAC,0BAAgB;QAAAC,kBAAA;QAAgDC,eAAA;MAClE;QACA,IAAMC,MAAA,YAAAA,CAAA,EAAW;UACjB,IAAMC,WAAQ,GAAAC,MAAM,CAAAtF,KAAA;UAAsB8C,QAAA,CAAS,GAAA+B,SAAA,IAAAQ,WAAA,sBAAAE,KAAA;YAAG,IACpD;cAAAC,EAAA;cAAAC,IAAA;cAAAnB;YAAA,CAAmB,GAAAiB,KAAA;YACjB,IAAAG,4BAAA;YACA,IAAAvC,QAAA,GAAAb,SAAA,CAAAgC,GAAA,CAAAqB,MAAA;YACA,IAAMC,QAAM,IAAAF,4BAAA,GAAAzC,iBAAA,CAAA4B,SAAA,eAAAa,4BAAA,uBAAAA,4BAAA,CAAAL,WAAA;YACZ,KAAAO,QAAS,EAAQ,UAAAvB,KAAA,6BAAAQ,SAAA,IAAAQ,WAAA;YACjB;cACA,MAAAtC,UAAe,CAAA8C,GAAQ;gBACxB1C,QAAA;gBACHmB;cACA,GAAO;gBACT,OAAAsB,QAAA,CAAAJ,EAAA,EAAAC,IAAA;cACM;YACC,SAAQ9B,KAAA,EAAS;cACd,IAAImC,IAAA,GAAMnC,KAAA,aAAAA,KAAA,uBAAAA,KAAgD,CAAAmC,IAAA;cAClE,IAAAA,IAAA,uCAAAnC,KAAA;cACM,IAAAmC,IAAU,KAAC,iBACf,IAAAA,IAAA,KAAmB,mBAAAnC,KAAA;cACjB,MAAAC,wBAAA,CAAAD,KAAA;YACA;UACA;QACA;QACA,SAAAoC,UAAA,GAAAC,MAAA,CAAAC,IAAA,EAAAjB,aAAA,GAAAF,KAAA,CAAAoB,MAAA,cAAAlB,aAAA,cAAAA,aAAA,OAAAvD,MAAA,CAAA0E,QAAA,KAAAb,MAAA,IAAAL,0BAAA,IAAAK,MAAA,GAAAS,UAAA,CAAAK,IAAA,IAAAC,IAAA,GAAApB,0BAAA,SAAAG,MAAA;MAAA,EACA,OAAAkB,GAAA;QACDpB,kBAAA;QACHC,eAAe,GAAAmB,GAAO;MACtB;QAA2B,IAAE;UAA0C,IACrE,CAAArB,0BACI,IAAAc,UAAA,CAAAQ,MAAA,UAAuB;YAErBR,UAAA,CAAAQ,MAAA;UACA;QAAgB,UAChB;UACA,IAAArB,kBAAA;YACD,MAAAC,eAAA;UACP;QACF;MACA;IACE;IAKA,SAAAqB,SAAA,GAAAR,MAAA,CAAAS,OAAA,CAAA3E,OAAA,CAAAwB,MAAA,EAAA7B,MAAA,CAAA0E,QAAA,KAAApB,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAyB,SAAA,CAAAJ,IAAA,IAAAC,IAAA,GAAA5B,yBAAA,SAAAG,KAAA;EAAA,SAAW0B,GAAA;IACuD5B,iBAClE;IAEAC,cAAM,GAAS2B,GAAA;EAAsC,UAC/C;IACF;MAAW,KAAA7B,yBACR,IAAA+B,SAAA,CAAAD,MAAA;QAAAC,SACD,CAAAD,MAAA;MAAA;IAEI;MACA,IAAA7B,iBAAM;QAEN,MAAAC,cACE;MAGA;IACA;EAGA;EACA,IAAA+B,QAAA;IACAC,QAAA,MAAA/F,oBAAgB,CAAAgG,gBAAoB,EAAA9D,QAAI;IAA2B,MAAA+D,YACrEA,CAAAf,IAAA,EAAAL,IAAA,EAAAE,MAAA;MAAA,KAAA7D,OACF,CAAAK,OAAA;QAAA,MACF,IAAAkC,KAAA;MAAA;MACF,IACFlB,QAAA,GAAAb,SAAA,CAAAqD,MAAA;MACF,IAACmB,KAAA,aAAA9F,mBAAA,CAAA+F,mBAAA;QAED5D;MAAO,GACL;QACA,OAAA6D,kBAAA;UACA7D,QACE;UAGA2C,IAAA;UAAOL,IAAsB,EAAAA,IAAA;UAA4BtD,OAAG,EAC1DL,OAAA,CAASK,OAAM;UACjBM,WAAA;UACFwE,aAAA,EAAAnF,OAAA,CAAAmF;QACF;MACF;MACF,WAAAxG,eAAA,CAAAyG,gBAAA,EAAAJ,KAAA,EAAAK,GAAA;IAEA;IACF,MAAAC,sBAAA7B,KAAA;MAEA,IAAS;QAAApC,QAAA;QAAAkE;MAAmB,IAAA9B,KAAA;MAC1B,KAAAzD,OAAA,CAAAK,OAAA;QACA,UAAAkC,KAAA;MACA;MACA,IAAAiD,OAAA,YAAAA,CAAAxB,IAAA,EAAAL,IAAA;QACA,OAAAuB,kBAAA;UACA7D,QAAA;UAQC2C,IAAA;UACGL,IAAK;UACDtD,OAAA,EAAQL,OAAK,CAAAK,OAAM;UACnBM,WAAU;UACVwE,aAAA,EAAAnF,OAAa,CAAAmF;QACf,CAAC;MACH;MACF,IAAAM,MAAA,WAAApE,QAAA,aAAwBA,QAAI,uBAAAA,QAAA,CAAAqE,EAAA,iBAAArE,QAAA,CAAAqE,EAAA;MAC5B,OAAI,IAAAxG,mBAAA,CAAA+F,mBAAA;QACF5D,QAAA,EAAQA,QAAA;MACL,GAAO,YACN;QAED,OAAIoE,MAAA,kBAAA7G,aAAA,CAAA+G,kBAAA,EAAAH,OAAA,EAAAxF,OAAA,CAAAE,MAAA,EAAAqF,OAAA,QAAA3G,aAAA,CAAA+G,kBAAA;UACTH,OAAE;UACAtF,MAAA,EAAAF,OAAA,CAAAE,MAAA;UACFqF,OAAA;UACFE;QAEA;MACA;IACF;IAMAG,MAAMA,CAAAC,QAAa;MAEZ,IAASC,WAAA,YAAAA,CACdjC,MACA,EAAAkC,IAAA;QAEM,OAAAF,QAAS,CAAOC,WAAU,CAAAjC,MAAO,YAAWH,EAAA;UAC5C,OAAoCqC,IAAE,CAAArC,EAAA;QACxC;MACJ;MACF,IAAAnE,iBAAA,CAAAyG,SAAA,YAAAhB,KAAA;QAEA,OAASc,WAAiB;UAClBL,MAAA;QACD,aAAY/B,EAAA;UACV,OAAAA,EAAA,CAAAK,GAAA,CAAAiB,KAAA;QACT;MAEA;MACE,IAAOZ,MAAA,OAAA6B,KAAiB;QAC1B/D,IAAAgE,OAAA,EAAAnD,SAAA;UAES,WAAAkD,KAAA;YACD/D,IAAAiE,MAAU,EAAA5C,WAAiB;cACtB,IAAA6C,gCAAA,EAAAC,yBAAyC;cACtD,IAAAb,OAAA,IAAAa,yBAAA,GAAArG,OAAA,CAAAwB,MAAA,CAAAuB,SAAA,eAAAsD,yBAAA,wBAAAD,gCAAA,GAAAC,yBAAA,CAAAjC,MAAA,cAAAgC,gCAAA,uBAAAA,gCAAA,CAAA7C,WAAA","ignoreList":[]}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __copyProps = (to, from, except, desc) => {
|
|
8
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
10
|
+
get: () => from[key],
|
|
11
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
22
|
+
value: mod,
|
|
23
|
+
enumerable: true
|
|
24
|
+
}) : target, mod));
|
|
25
|
+
var import_node_sqlite = require("node:sqlite");
|
|
26
|
+
var import_zero = require("@rocicorp/zero");
|
|
27
|
+
var import_sync_executor = require("orez/sync-executor");
|
|
28
|
+
var v = __toESM(require("valibot"), 1);
|
|
29
|
+
var import_vitest = require("vitest");
|
|
30
|
+
var import_orez = require("./orez.cjs");
|
|
31
|
+
var import_mutatorContext = require("./helpers/mutatorContext.cjs");
|
|
32
|
+
var import_zql = require("./zql.cjs");
|
|
33
|
+
const project = (0, import_zero.table)("project").columns({
|
|
34
|
+
id: (0, import_zero.string)(),
|
|
35
|
+
ownerId: (0, import_zero.string)(),
|
|
36
|
+
name: (0, import_zero.string)()
|
|
37
|
+
}).primaryKey("id");
|
|
38
|
+
const schema = (0, import_zero.createSchema)({
|
|
39
|
+
tables: [project],
|
|
40
|
+
relationships: [],
|
|
41
|
+
enableLegacyQueries: true
|
|
42
|
+
});
|
|
43
|
+
const queries = (0, import_zero.defineQueries)({
|
|
44
|
+
project: {
|
|
45
|
+
byOwner: (0, import_zero.defineQuery)(v.object({
|
|
46
|
+
ownerId: v.string()
|
|
47
|
+
}), ({
|
|
48
|
+
args
|
|
49
|
+
}) => import_zql.zql.project.where("ownerId", args.ownerId))
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
(0, import_vitest.describe)("createOrezBindings", () => {
|
|
53
|
+
const databases = [];
|
|
54
|
+
(0, import_vitest.afterEach)(() => {
|
|
55
|
+
while (databases.length) databases.pop().close();
|
|
56
|
+
});
|
|
57
|
+
(0, import_vitest.test)("an anonymous push keeps authData null so auth-required mutators reject", async () => {
|
|
58
|
+
const sqlite = new import_node_sqlite.DatabaseSync(":memory:");
|
|
59
|
+
databases.push(sqlite);
|
|
60
|
+
sqlite.exec("CREATE TABLE project (id TEXT PRIMARY KEY, ownerId TEXT NOT NULL, name TEXT NOT NULL)");
|
|
61
|
+
let seenAuthData;
|
|
62
|
+
const bindings = (0, import_orez.createOrezBindings)({
|
|
63
|
+
schema,
|
|
64
|
+
models: {
|
|
65
|
+
project: {
|
|
66
|
+
mutate: {
|
|
67
|
+
create: async ({
|
|
68
|
+
authData,
|
|
69
|
+
tx
|
|
70
|
+
}, value) => {
|
|
71
|
+
seenAuthData = authData;
|
|
72
|
+
if (!authData) throw new Error("not authenticated");
|
|
73
|
+
await tx.mutate.project.insert(value);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
createServerActions: () => ({}),
|
|
79
|
+
queries
|
|
80
|
+
});
|
|
81
|
+
const executor = (0, import_sync_executor.createSyncExecutor)({
|
|
82
|
+
database: sqliteApplicationDatabase(sqlite),
|
|
83
|
+
schema,
|
|
84
|
+
mutators: bindings.mutators,
|
|
85
|
+
effects: {
|
|
86
|
+
runBackground(promise) {
|
|
87
|
+
void promise;
|
|
88
|
+
},
|
|
89
|
+
report(error) {
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
await executor.push({
|
|
95
|
+
clientGroupID: "group-anon",
|
|
96
|
+
mutations: [{
|
|
97
|
+
type: "custom",
|
|
98
|
+
id: 1,
|
|
99
|
+
clientID: "client-anon",
|
|
100
|
+
name: "project|create",
|
|
101
|
+
args: [{
|
|
102
|
+
id: "project-1",
|
|
103
|
+
ownerId: "anon",
|
|
104
|
+
name: "sneaky"
|
|
105
|
+
}],
|
|
106
|
+
timestamp: 1
|
|
107
|
+
}],
|
|
108
|
+
pushVersion: 1,
|
|
109
|
+
requestID: "request-anon"
|
|
110
|
+
}, (0, import_orez.authDataToClaims)(null)).catch(() => void 0);
|
|
111
|
+
(0, import_vitest.expect)(seenAuthData).toBe(null);
|
|
112
|
+
(0, import_vitest.expect)(sqlite.prepare("SELECT * FROM project").all()).toEqual([]);
|
|
113
|
+
});
|
|
114
|
+
(0, import_vitest.test)("binds auth, queries, pipe keys, effects, and replay to one Orez executor", async () => {
|
|
115
|
+
const sqlite = new import_node_sqlite.DatabaseSync(":memory:");
|
|
116
|
+
databases.push(sqlite);
|
|
117
|
+
sqlite.exec("CREATE TABLE project (id TEXT PRIMARY KEY, ownerId TEXT NOT NULL, name TEXT NOT NULL)");
|
|
118
|
+
let mutationRuns = 0;
|
|
119
|
+
let validatedMutationAuth;
|
|
120
|
+
let validatedQueryAuth;
|
|
121
|
+
let barrierRuns = 0;
|
|
122
|
+
let backgroundRuns = 0;
|
|
123
|
+
let backgroundAuth;
|
|
124
|
+
const scheduledBackground = [];
|
|
125
|
+
const bindings = (0, import_orez.createOrezBindings)({
|
|
126
|
+
schema,
|
|
127
|
+
models: {
|
|
128
|
+
project: {
|
|
129
|
+
mutate: {
|
|
130
|
+
create: async ({
|
|
131
|
+
authData,
|
|
132
|
+
server,
|
|
133
|
+
tx
|
|
134
|
+
}, value) => {
|
|
135
|
+
mutationRuns++;
|
|
136
|
+
(0, import_vitest.expect)(authData?.id).toBe("user-1");
|
|
137
|
+
await tx.mutate.project.insert(value);
|
|
138
|
+
server?.enqueueTask(async () => {
|
|
139
|
+
barrierRuns++;
|
|
140
|
+
}, {
|
|
141
|
+
barrier: true
|
|
142
|
+
});
|
|
143
|
+
server?.enqueueTask(async () => {
|
|
144
|
+
backgroundRuns++;
|
|
145
|
+
backgroundAuth = (0, import_mutatorContext.getScopedAuthData)()?.id;
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
createServerActions: () => ({}),
|
|
152
|
+
queries,
|
|
153
|
+
validateMutation({
|
|
154
|
+
authData
|
|
155
|
+
}) {
|
|
156
|
+
validatedMutationAuth = authData?.id;
|
|
157
|
+
},
|
|
158
|
+
validateQuery({
|
|
159
|
+
authData
|
|
160
|
+
}) {
|
|
161
|
+
validatedQueryAuth = authData?.id;
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
(0, import_vitest.expect)(Object.keys(bindings.mutators)).toEqual(["project|create"]);
|
|
165
|
+
const executor = (0, import_sync_executor.createSyncExecutor)({
|
|
166
|
+
database: sqliteApplicationDatabase(sqlite),
|
|
167
|
+
schema,
|
|
168
|
+
mutators: bindings.mutators,
|
|
169
|
+
effects: {
|
|
170
|
+
runBackground(promise) {
|
|
171
|
+
scheduledBackground.push(promise);
|
|
172
|
+
},
|
|
173
|
+
report(error) {
|
|
174
|
+
throw error;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
const claims = (0, import_orez.authDataToClaims)({
|
|
179
|
+
id: "user-1",
|
|
180
|
+
role: "member"
|
|
181
|
+
});
|
|
182
|
+
const body = {
|
|
183
|
+
clientGroupID: "group-1",
|
|
184
|
+
mutations: [{
|
|
185
|
+
type: "custom",
|
|
186
|
+
id: 1,
|
|
187
|
+
clientID: "client-1",
|
|
188
|
+
name: "project|create",
|
|
189
|
+
args: [{
|
|
190
|
+
id: "project-1",
|
|
191
|
+
ownerId: "user-1",
|
|
192
|
+
name: "first"
|
|
193
|
+
}],
|
|
194
|
+
timestamp: 1
|
|
195
|
+
}],
|
|
196
|
+
pushVersion: 1,
|
|
197
|
+
requestID: "request-1"
|
|
198
|
+
};
|
|
199
|
+
const first = await executor.push(body, claims);
|
|
200
|
+
(0, import_vitest.expect)(first.pushResponse).toMatchObject({
|
|
201
|
+
mutations: [{
|
|
202
|
+
result: {}
|
|
203
|
+
}]
|
|
204
|
+
});
|
|
205
|
+
(0, import_vitest.expect)(sqlite.prepare("SELECT * FROM project").all()).toEqual([{
|
|
206
|
+
id: "project-1",
|
|
207
|
+
ownerId: "user-1",
|
|
208
|
+
name: "first"
|
|
209
|
+
}]);
|
|
210
|
+
(0, import_vitest.expect)(mutationRuns).toBe(1);
|
|
211
|
+
(0, import_vitest.expect)(validatedMutationAuth).toBe("user-1");
|
|
212
|
+
(0, import_vitest.expect)(barrierRuns).toBe(1);
|
|
213
|
+
await Promise.all(scheduledBackground);
|
|
214
|
+
(0, import_vitest.expect)(backgroundRuns).toBe(1);
|
|
215
|
+
(0, import_vitest.expect)(backgroundAuth).toBe("user-1");
|
|
216
|
+
const replay = await executor.push(body, claims);
|
|
217
|
+
(0, import_vitest.expect)(replay.pushResponse).toMatchObject({
|
|
218
|
+
mutations: [{
|
|
219
|
+
result: {
|
|
220
|
+
error: "alreadyProcessed"
|
|
221
|
+
}
|
|
222
|
+
}]
|
|
223
|
+
});
|
|
224
|
+
(0, import_vitest.expect)(scheduledBackground).toHaveLength(1);
|
|
225
|
+
(0, import_vitest.expect)(mutationRuns).toBe(1);
|
|
226
|
+
(0, import_vitest.expect)(barrierRuns).toBe(1);
|
|
227
|
+
(0, import_vitest.expect)(backgroundRuns).toBe(1);
|
|
228
|
+
const ast = await bindings.resolveQuery("project|byOwner", [{
|
|
229
|
+
ownerId: "user-1"
|
|
230
|
+
}], claims);
|
|
231
|
+
(0, import_vitest.expect)(JSON.stringify(ast)).toContain("ownerId");
|
|
232
|
+
(0, import_vitest.expect)(JSON.stringify(ast)).toContain("user-1");
|
|
233
|
+
(0, import_vitest.expect)(validatedQueryAuth).toBe("user-1");
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
function sqliteApplicationDatabase(sqlite) {
|
|
237
|
+
const applicationTransaction = {
|
|
238
|
+
async exec(sql, params = []) {
|
|
239
|
+
const result = sqlite.prepare(sql).run(...params);
|
|
240
|
+
return {
|
|
241
|
+
changes: Number(result.changes)
|
|
242
|
+
};
|
|
243
|
+
},
|
|
244
|
+
async query(sql, params = []) {
|
|
245
|
+
return sqlite.prepare(sql).all(...params);
|
|
246
|
+
},
|
|
247
|
+
async queryAst() {
|
|
248
|
+
return [];
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
return {
|
|
252
|
+
dialect: "sqlite",
|
|
253
|
+
async transaction(work) {
|
|
254
|
+
sqlite.exec("BEGIN");
|
|
255
|
+
try {
|
|
256
|
+
const value = await work(applicationTransaction);
|
|
257
|
+
sqlite.exec("COMMIT");
|
|
258
|
+
return value;
|
|
259
|
+
} catch (error) {
|
|
260
|
+
sqlite.exec("ROLLBACK");
|
|
261
|
+
throw error;
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
async query(sql, params = []) {
|
|
265
|
+
return sqlite.prepare(sql).all(...params);
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
}
|