on-zero 0.7.10 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{readme.md → README.md} +172 -231
- package/dist/cjs/cli.cjs +5 -2
- package/dist/cjs/cli.native.js +5 -2
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/combineZeroClients.cjs +2 -2
- package/dist/cjs/combineZeroClients.native.js +6 -6
- package/dist/cjs/combineZeroClients.native.js.map +1 -1
- package/dist/cjs/config.cjs +30 -0
- package/dist/cjs/config.native.js +33 -0
- package/dist/cjs/config.native.js.map +1 -0
- package/dist/cjs/createPermissions.cjs +2 -2
- package/dist/cjs/createPermissions.native.js +17 -27
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createUseQuery.cjs +3 -3
- package/dist/cjs/createUseQuery.native.js +4 -4
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createUseQueryDirect.cjs +4 -3
- package/dist/cjs/createUseQueryDirect.native.js +14 -18
- package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +29 -9
- package/dist/cjs/createZeroClient.connection.test.cjs +11 -0
- package/dist/cjs/createZeroClient.connection.test.native.js +14 -7
- package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.native.js +58 -32
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroClient.recovery.test.cjs +90 -3
- package/dist/cjs/createZeroClient.recovery.test.native.js +109 -19
- package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/cjs/generate-helpers.cjs +70 -17
- package/dist/cjs/generate-helpers.native.js +110 -23
- package/dist/cjs/generate-helpers.native.js.map +1 -1
- package/dist/cjs/generate-layout.cjs +586 -0
- package/dist/cjs/generate-layout.native.js +1275 -0
- package/dist/cjs/generate-layout.native.js.map +1 -0
- package/dist/cjs/generate-lite.cjs +295 -27
- package/dist/cjs/generate-lite.native.js +854 -102
- package/dist/cjs/generate-lite.native.js.map +1 -1
- package/dist/cjs/generate-lite.test.cjs +433 -41
- package/dist/cjs/generate-lite.test.native.js +446 -41
- package/dist/cjs/generate-lite.test.native.js.map +1 -1
- package/dist/cjs/generate.cjs +172 -94
- package/dist/cjs/generate.native.js +324 -148
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +362 -45
- package/dist/cjs/generate.test.native.js +374 -45
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/NullToOptional.cjs +18 -0
- package/dist/cjs/helpers/NullToOptional.native.js +21 -0
- package/dist/cjs/helpers/NullToOptional.native.js.map +1 -0
- package/dist/cjs/helpers/asyncContext.cjs +128 -0
- package/dist/cjs/helpers/asyncContext.native.js +87 -0
- package/dist/cjs/helpers/asyncContext.native.js.map +1 -0
- package/dist/cjs/helpers/batchQuery.cjs +2 -2
- package/dist/cjs/helpers/batchQuery.native.js +2 -2
- package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.cjs +7 -4
- package/dist/cjs/helpers/createMutators.native.js +12 -9
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.test.native.js +2 -2
- package/dist/cjs/helpers/createMutators.test.native.js.map +1 -1
- package/dist/cjs/helpers/ellipsis.cjs +35 -0
- package/dist/cjs/helpers/ellipsis.native.js +38 -0
- package/dist/cjs/helpers/ellipsis.native.js.map +1 -0
- package/dist/cjs/helpers/emitter.cjs +99 -0
- package/dist/cjs/helpers/emitter.native.js +125 -0
- package/dist/cjs/helpers/emitter.native.js.map +1 -0
- package/dist/cjs/helpers/ensure.cjs +33 -0
- package/dist/cjs/helpers/ensure.native.js +37 -0
- package/dist/cjs/helpers/ensure.native.js.map +1 -0
- package/dist/cjs/helpers/ensureLoggedIn.cjs +2 -2
- package/dist/cjs/helpers/ensureLoggedIn.native.js +3 -3
- package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/cjs/helpers/errors.cjs +40 -0
- package/dist/cjs/helpers/errors.native.js +152 -0
- package/dist/cjs/helpers/errors.native.js.map +1 -0
- package/dist/cjs/helpers/getCurrentComponentStack.cjs +71 -0
- package/dist/cjs/helpers/getCurrentComponentStack.native.js +93 -0
- package/dist/cjs/helpers/getCurrentComponentStack.native.js.map +1 -0
- package/dist/cjs/helpers/globalValue.cjs +39 -0
- package/dist/cjs/helpers/globalValue.native.js +42 -0
- package/dist/cjs/helpers/globalValue.native.js.map +1 -0
- package/dist/cjs/helpers/mapObject.cjs +36 -0
- package/dist/cjs/helpers/mapObject.native.js +39 -0
- package/dist/cjs/helpers/mapObject.native.js.map +1 -0
- package/dist/cjs/helpers/mutationLifecycle.cjs +251 -0
- package/dist/cjs/helpers/mutationLifecycle.native.js +392 -0
- package/dist/cjs/helpers/mutationLifecycle.native.js.map +1 -0
- package/dist/cjs/helpers/mutationLifecycle.test.cjs +174 -0
- package/dist/cjs/helpers/mutationLifecycle.test.native.js +182 -0
- package/dist/cjs/helpers/mutationLifecycle.test.native.js.map +1 -0
- package/dist/cjs/helpers/mutatorContext.cjs +3 -3
- package/dist/cjs/helpers/mutatorContext.native.js +5 -5
- package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
- package/dist/cjs/helpers/platform.cjs +31 -0
- package/dist/cjs/helpers/platform.native.js +33 -0
- package/dist/cjs/helpers/platform.native.js.map +1 -0
- package/dist/cjs/helpers/prettyFormatZeroQuery.cjs +2 -2
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +7 -7
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/cjs/helpers/queryContext.cjs +2 -2
- package/dist/cjs/helpers/queryContext.native.js +4 -4
- package/dist/cjs/helpers/queryContext.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.cjs +14 -15
- package/dist/cjs/helpers/recoverZeroClient.native.js +26 -23
- package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.test.cjs +10 -8
- package/dist/cjs/helpers/recoverZeroClient.test.native.js +17 -21
- package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/cjs/helpers/sleep.cjs +34 -0
- package/dist/cjs/helpers/sleep.native.js +39 -0
- package/dist/cjs/helpers/sleep.native.js.map +1 -0
- package/dist/cjs/helpers/time.cjs +47 -0
- package/dist/cjs/helpers/time.native.js +80 -0
- package/dist/cjs/helpers/time.native.js.map +1 -0
- package/dist/cjs/helpers/tuple.cjs +18 -0
- package/dist/cjs/helpers/tuple.native.js +21 -0
- package/dist/cjs/helpers/tuple.native.js.map +1 -0
- package/dist/cjs/helpers/useMutation.native.js +5 -5
- package/dist/cjs/helpers/useMutation.native.js.map +1 -1
- package/dist/cjs/helpers/useMutation.test.native.js +1 -1
- package/dist/cjs/helpers/useMutation.test.native.js.map +1 -1
- package/dist/cjs/helpers/useZeroDebug.cjs +2 -2
- package/dist/cjs/helpers/useZeroDebug.native.js +7 -8
- package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/cjs/index.cjs +9 -1
- package/dist/cjs/index.native.js +8 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/instanceRegistry.cjs +16 -4
- package/dist/cjs/instanceRegistry.native.js +56 -6
- package/dist/cjs/instanceRegistry.native.js.map +1 -1
- package/dist/cjs/multi.cjs +34 -13
- package/dist/cjs/multi.native.js +39 -17
- package/dist/cjs/multi.native.js.map +1 -1
- package/dist/cjs/multiInstance.test.cjs +6 -2
- package/dist/cjs/multiInstance.test.native.js +13 -9
- package/dist/cjs/multiInstance.test.native.js.map +1 -1
- package/dist/cjs/multiInstanceNested.test.native.js +10 -10
- package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
- package/dist/cjs/multiPartition.test.cjs +85 -36
- package/dist/cjs/multiPartition.test.native.js +102 -39
- package/dist/cjs/multiPartition.test.native.js.map +1 -1
- package/dist/cjs/mutations.cjs +2 -2
- package/dist/cjs/mutations.native.js +4 -4
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/cjs/mutations.test.native.js +3 -3
- package/dist/cjs/mutations.test.native.js.map +1 -1
- package/dist/cjs/provideZero.hydration.test.cjs +3 -3
- package/dist/cjs/provideZero.hydration.test.native.js +4 -4
- package/dist/cjs/provideZero.hydration.test.native.js.map +1 -1
- package/dist/cjs/run.cjs +1 -1
- package/dist/cjs/run.native.js +3 -3
- package/dist/cjs/run.native.js.map +1 -1
- package/dist/cjs/server.cjs +20 -16
- package/dist/cjs/server.native.js +50 -57
- package/dist/cjs/server.native.js.map +1 -1
- package/dist/cjs/server.test.cjs +129 -6
- package/dist/cjs/server.test.native.js +141 -10
- package/dist/cjs/server.test.native.js.map +1 -1
- package/dist/cjs/serverWhere.test.native.js +3 -3
- package/dist/cjs/serverWhere.test.native.js.map +1 -1
- package/dist/cjs/state.cjs +2 -2
- package/dist/cjs/state.native.js +10 -10
- package/dist/cjs/state.native.js.map +1 -1
- package/dist/cjs/usePermission.test.native.js +3 -3
- package/dist/cjs/usePermission.test.native.js.map +1 -1
- package/dist/cjs/useQuery.empty.test.cjs +3 -3
- package/dist/cjs/useQuery.empty.test.native.js +6 -6
- package/dist/cjs/useQuery.empty.test.native.js.map +1 -1
- package/dist/cjs/useQuery.ssr.test.native.js +2 -2
- package/dist/cjs/useQuery.ssr.test.native.js.map +1 -1
- package/dist/cjs/vite-plugin.cjs +7 -8
- package/dist/cjs/vite-plugin.native.js +11 -11
- package/dist/cjs/vite-plugin.native.js.map +1 -1
- package/dist/cjs/where.cjs +3 -3
- package/dist/cjs/where.native.js +4 -4
- package/dist/cjs/where.native.js.map +1 -1
- package/dist/esm/cli.mjs +6 -3
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +6 -3
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/combineZeroClients.mjs +1 -1
- package/dist/esm/combineZeroClients.mjs.map +1 -1
- package/dist/esm/combineZeroClients.native.js +5 -5
- package/dist/esm/combineZeroClients.native.js.map +1 -1
- package/dist/esm/config.mjs +5 -0
- package/dist/esm/config.mjs.map +1 -0
- package/dist/esm/config.native.js +5 -0
- package/dist/esm/config.native.js.map +1 -0
- package/dist/esm/createPermissions.mjs +1 -1
- package/dist/esm/createPermissions.mjs.map +1 -1
- package/dist/esm/createPermissions.native.js +16 -26
- package/dist/esm/createPermissions.native.js.map +1 -1
- package/dist/esm/createUseQuery.mjs +2 -2
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +3 -3
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createUseQueryDirect.mjs +2 -1
- package/dist/esm/createUseQueryDirect.mjs.map +1 -1
- package/dist/esm/createUseQueryDirect.native.js +12 -16
- package/dist/esm/createUseQueryDirect.native.js.map +1 -1
- package/dist/esm/createZeroClient.connection.test.mjs +11 -0
- package/dist/esm/createZeroClient.connection.test.mjs.map +1 -1
- package/dist/esm/createZeroClient.connection.test.native.js +14 -7
- package/dist/esm/createZeroClient.connection.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +25 -5
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +54 -28
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.mjs +90 -3
- package/dist/esm/createZeroClient.recovery.test.mjs.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.native.js +109 -19
- package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/esm/generate-helpers.mjs +70 -18
- package/dist/esm/generate-helpers.mjs.map +1 -1
- package/dist/esm/generate-helpers.native.js +110 -24
- package/dist/esm/generate-helpers.native.js.map +1 -1
- package/dist/esm/generate-layout.mjs +560 -0
- package/dist/esm/generate-layout.mjs.map +1 -0
- package/dist/esm/generate-layout.native.js +1246 -0
- package/dist/esm/generate-layout.native.js.map +1 -0
- package/dist/esm/generate-lite.mjs +296 -28
- package/dist/esm/generate-lite.mjs.map +1 -1
- package/dist/esm/generate-lite.native.js +855 -103
- package/dist/esm/generate-lite.native.js.map +1 -1
- package/dist/esm/generate-lite.test.mjs +434 -42
- package/dist/esm/generate-lite.test.mjs.map +1 -1
- package/dist/esm/generate-lite.test.native.js +447 -42
- package/dist/esm/generate-lite.test.native.js.map +1 -1
- package/dist/esm/generate.mjs +172 -96
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +324 -150
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +366 -49
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +378 -49
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/helpers/NullToOptional.mjs +2 -0
- package/dist/esm/helpers/NullToOptional.mjs.map +1 -0
- package/dist/esm/helpers/NullToOptional.native.js +2 -0
- package/dist/esm/helpers/NullToOptional.native.js.map +1 -0
- package/dist/esm/helpers/asyncContext.mjs +102 -0
- package/dist/esm/helpers/asyncContext.mjs.map +1 -0
- package/dist/esm/helpers/asyncContext.native.js +58 -0
- package/dist/esm/helpers/asyncContext.native.js.map +1 -0
- package/dist/esm/helpers/batchQuery.mjs +1 -1
- package/dist/esm/helpers/batchQuery.native.js +1 -1
- package/dist/esm/helpers/createMutators.mjs +5 -2
- package/dist/esm/helpers/createMutators.mjs.map +1 -1
- package/dist/esm/helpers/createMutators.native.js +10 -7
- package/dist/esm/helpers/createMutators.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.test.native.js +2 -2
- package/dist/esm/helpers/createMutators.test.native.js.map +1 -1
- package/dist/esm/helpers/ellipsis.mjs +10 -0
- package/dist/esm/helpers/ellipsis.mjs.map +1 -0
- package/dist/esm/helpers/ellipsis.native.js +10 -0
- package/dist/esm/helpers/ellipsis.native.js.map +1 -0
- package/dist/esm/helpers/emitter.mjs +72 -0
- package/dist/esm/helpers/emitter.mjs.map +1 -0
- package/dist/esm/helpers/emitter.native.js +95 -0
- package/dist/esm/helpers/emitter.native.js.map +1 -0
- package/dist/esm/helpers/ensure.mjs +8 -0
- package/dist/esm/helpers/ensure.mjs.map +1 -0
- package/dist/esm/helpers/ensure.native.js +9 -0
- package/dist/esm/helpers/ensure.native.js.map +1 -0
- package/dist/esm/helpers/ensureLoggedIn.mjs +1 -1
- package/dist/esm/helpers/ensureLoggedIn.mjs.map +1 -1
- package/dist/esm/helpers/ensureLoggedIn.native.js +2 -2
- package/dist/esm/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/esm/helpers/errors.mjs +14 -0
- package/dist/esm/helpers/errors.mjs.map +1 -0
- package/dist/esm/helpers/errors.native.js +123 -0
- package/dist/esm/helpers/errors.native.js.map +1 -0
- package/dist/esm/helpers/getCurrentComponentStack.mjs +35 -0
- package/dist/esm/helpers/getCurrentComponentStack.mjs.map +1 -0
- package/dist/esm/helpers/getCurrentComponentStack.native.js +54 -0
- package/dist/esm/helpers/getCurrentComponentStack.native.js.map +1 -0
- package/dist/esm/helpers/globalValue.mjs +14 -0
- package/dist/esm/helpers/globalValue.mjs.map +1 -0
- package/dist/esm/helpers/globalValue.native.js +14 -0
- package/dist/esm/helpers/globalValue.native.js.map +1 -0
- package/dist/esm/helpers/mapObject.mjs +11 -0
- package/dist/esm/helpers/mapObject.mjs.map +1 -0
- package/dist/esm/helpers/mapObject.native.js +11 -0
- package/dist/esm/helpers/mapObject.native.js.map +1 -0
- package/dist/esm/helpers/mutationLifecycle.mjs +221 -0
- package/dist/esm/helpers/mutationLifecycle.mjs.map +1 -0
- package/dist/esm/helpers/mutationLifecycle.native.js +359 -0
- package/dist/esm/helpers/mutationLifecycle.native.js.map +1 -0
- package/dist/esm/helpers/mutationLifecycle.test.mjs +175 -0
- package/dist/esm/helpers/mutationLifecycle.test.mjs.map +1 -0
- package/dist/esm/helpers/mutationLifecycle.test.native.js +180 -0
- package/dist/esm/helpers/mutationLifecycle.test.native.js.map +1 -0
- package/dist/esm/helpers/mutatorContext.mjs +1 -1
- package/dist/esm/helpers/mutatorContext.native.js +4 -4
- package/dist/esm/helpers/mutatorContext.native.js.map +1 -1
- package/dist/esm/helpers/platform.mjs +5 -0
- package/dist/esm/helpers/platform.mjs.map +1 -0
- package/dist/esm/helpers/platform.native.js +4 -0
- package/dist/esm/helpers/platform.native.js.map +1 -0
- package/dist/esm/helpers/prettyFormatZeroQuery.mjs +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js +6 -6
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/esm/helpers/queryContext.mjs +1 -1
- package/dist/esm/helpers/queryContext.native.js +3 -3
- package/dist/esm/helpers/queryContext.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.mjs +14 -15
- package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.native.js +26 -23
- package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.mjs +8 -6
- package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js +15 -19
- package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/esm/helpers/sleep.mjs +9 -0
- package/dist/esm/helpers/sleep.mjs.map +1 -0
- package/dist/esm/helpers/sleep.native.js +11 -0
- package/dist/esm/helpers/sleep.native.js.map +1 -0
- package/dist/esm/helpers/time.mjs +22 -0
- package/dist/esm/helpers/time.mjs.map +1 -0
- package/dist/esm/helpers/time.native.js +52 -0
- package/dist/esm/helpers/time.native.js.map +1 -0
- package/dist/esm/helpers/tuple.mjs +2 -0
- package/dist/esm/helpers/tuple.mjs.map +1 -0
- package/dist/esm/helpers/tuple.native.js +2 -0
- package/dist/esm/helpers/tuple.native.js.map +1 -0
- package/dist/esm/helpers/useMutation.native.js +5 -5
- 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.mjs +1 -1
- package/dist/esm/helpers/useZeroDebug.mjs.map +1 -1
- package/dist/esm/helpers/useZeroDebug.native.js +6 -7
- package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +3 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +3 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/instanceRegistry.mjs +13 -2
- package/dist/esm/instanceRegistry.mjs.map +1 -1
- package/dist/esm/instanceRegistry.native.js +53 -4
- package/dist/esm/instanceRegistry.native.js.map +1 -1
- package/dist/esm/multi.mjs +33 -12
- package/dist/esm/multi.mjs.map +1 -1
- package/dist/esm/multi.native.js +38 -16
- package/dist/esm/multi.native.js.map +1 -1
- package/dist/esm/multiInstance.test.mjs +5 -1
- package/dist/esm/multiInstance.test.mjs.map +1 -1
- package/dist/esm/multiInstance.test.native.js +12 -8
- package/dist/esm/multiInstance.test.native.js.map +1 -1
- package/dist/esm/multiInstanceNested.test.native.js +10 -10
- package/dist/esm/multiInstanceNested.test.native.js.map +1 -1
- package/dist/esm/multiPartition.test.mjs +86 -37
- package/dist/esm/multiPartition.test.mjs.map +1 -1
- package/dist/esm/multiPartition.test.native.js +103 -40
- package/dist/esm/multiPartition.test.native.js.map +1 -1
- package/dist/esm/mutations.mjs +1 -1
- package/dist/esm/mutations.mjs.map +1 -1
- package/dist/esm/mutations.native.js +3 -3
- package/dist/esm/mutations.native.js.map +1 -1
- package/dist/esm/mutations.test.native.js +3 -3
- package/dist/esm/mutations.test.native.js.map +1 -1
- package/dist/esm/provideZero.hydration.test.mjs +1 -1
- package/dist/esm/provideZero.hydration.test.mjs.map +1 -1
- package/dist/esm/provideZero.hydration.test.native.js +2 -2
- package/dist/esm/provideZero.hydration.test.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 +3 -3
- package/dist/esm/run.native.js.map +1 -1
- package/dist/esm/server.mjs +20 -15
- package/dist/esm/server.mjs.map +1 -1
- package/dist/esm/server.native.js +50 -56
- package/dist/esm/server.native.js.map +1 -1
- package/dist/esm/server.test.mjs +130 -7
- package/dist/esm/server.test.mjs.map +1 -1
- package/dist/esm/server.test.native.js +142 -11
- package/dist/esm/server.test.native.js.map +1 -1
- package/dist/esm/serverWhere.test.mjs.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.mjs.map +1 -1
- package/dist/esm/state.native.js +9 -9
- package/dist/esm/state.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.mjs +1 -1
- package/dist/esm/useQuery.empty.test.mjs.map +1 -1
- package/dist/esm/useQuery.empty.test.native.js +4 -4
- 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.mjs +7 -8
- package/dist/esm/vite-plugin.mjs.map +1 -1
- package/dist/esm/vite-plugin.native.js +11 -11
- package/dist/esm/vite-plugin.native.js.map +1 -1
- package/dist/esm/where.mjs +1 -1
- package/dist/esm/where.mjs.map +1 -1
- package/dist/esm/where.native.js +2 -2
- package/dist/esm/where.native.js.map +1 -1
- package/package.json +18 -6
- package/src/cli.ts +11 -3
- package/src/combineZeroClients.tsx +18 -10
- package/src/config.ts +72 -0
- package/src/createPermissions.ts +3 -4
- package/src/createUseQuery.tsx +8 -8
- package/src/createUseQueryDirect.tsx +11 -10
- package/src/createZeroClient.authData.test.tsx +1 -1
- package/src/createZeroClient.connection.test.tsx +13 -2
- package/src/createZeroClient.recovery.test.tsx +100 -4
- package/src/createZeroClient.tsx +87 -30
- package/src/generate-helpers.ts +108 -31
- package/src/generate-layout.ts +841 -0
- package/src/generate-lite.test.ts +421 -42
- package/src/generate-lite.ts +479 -43
- package/src/generate.test.ts +552 -90
- package/src/generate.ts +360 -163
- package/src/helpers/NullToOptional.ts +5 -0
- package/src/helpers/asyncContext.native.ts +90 -0
- package/src/helpers/asyncContext.ts +159 -0
- package/src/helpers/batchQuery.ts +2 -2
- package/src/helpers/createMutators.ts +11 -8
- package/src/helpers/ellipsis.ts +9 -0
- package/src/helpers/emitter.tsx +106 -0
- package/src/helpers/ensure.ts +10 -0
- package/src/helpers/ensureLoggedIn.ts +1 -2
- package/src/helpers/errors.ts +13 -0
- package/src/helpers/getCurrentComponentStack.ts +56 -0
- package/src/helpers/globalValue.ts +40 -0
- package/src/helpers/mapObject.ts +14 -0
- package/src/helpers/mutationLifecycle.test.ts +180 -0
- package/src/helpers/mutationLifecycle.ts +313 -0
- package/src/helpers/mutatorContext.ts +3 -3
- package/src/helpers/platform.native.ts +2 -0
- package/src/helpers/platform.ts +16 -0
- package/src/helpers/prettyFormatZeroQuery.ts +2 -2
- package/src/helpers/queryContext.ts +2 -2
- package/src/helpers/recoverZeroClient.test.ts +23 -21
- package/src/helpers/recoverZeroClient.ts +56 -49
- package/src/helpers/sleep.ts +8 -0
- package/src/helpers/time.ts +51 -0
- package/src/helpers/tuple.ts +1 -0
- package/src/helpers/useMutation.tsx +3 -3
- package/src/helpers/useZeroDebug.ts +3 -3
- package/src/index.ts +13 -1
- package/src/instanceRegistry.ts +19 -6
- package/src/multi.ts +75 -31
- package/src/multiInstance.test.tsx +31 -13
- package/src/multiInstanceNested.test.tsx +2 -2
- package/src/multiPartition.test.ts +62 -27
- package/src/mutations.ts +10 -10
- package/src/provideZero.hydration.test.tsx +1 -1
- package/src/resolveQuery.ts +2 -2
- package/src/run.ts +7 -7
- package/src/server.test.ts +117 -18
- package/src/server.ts +70 -43
- package/src/serverWhere.ts +2 -2
- package/src/state.ts +2 -2
- package/src/types.ts +47 -6
- package/src/useQuery.empty.test.tsx +3 -3
- package/src/useQuery.ssr.test.ts +1 -1
- package/src/vite-plugin.ts +12 -9
- package/src/where.ts +6 -7
- package/src/zeroRunner.ts +2 -2
- package/types/combineZeroClients.d.ts +11 -5
- package/types/combineZeroClients.d.ts.map +1 -1
- package/types/config.d.ts +62 -0
- package/types/config.d.ts.map +1 -0
- package/types/createPermissions.d.ts.map +1 -1
- package/types/createUseQuery.d.ts.map +1 -1
- package/types/createUseQueryDirect.d.ts +1 -1
- package/types/createUseQueryDirect.d.ts.map +1 -1
- package/types/createZeroClient.d.ts +22 -12
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/createZeroClient.recovery.test.d.ts.map +1 -1
- package/types/generate-helpers.d.ts +17 -2
- package/types/generate-helpers.d.ts.map +1 -1
- package/types/generate-layout.d.ts +26 -0
- package/types/generate-layout.d.ts.map +1 -0
- package/types/generate-lite.d.ts +29 -1
- package/types/generate-lite.d.ts.map +1 -1
- package/types/generate.d.ts +20 -0
- package/types/generate.d.ts.map +1 -1
- package/types/helpers/NullToOptional.d.ts +6 -0
- package/types/helpers/NullToOptional.d.ts.map +1 -0
- package/types/helpers/asyncContext.d.ts +15 -0
- package/types/helpers/asyncContext.d.ts.map +1 -0
- package/types/helpers/asyncContext.native.d.ts +8 -0
- package/types/helpers/asyncContext.native.d.ts.map +1 -0
- package/types/helpers/createMutators.d.ts +2 -1
- package/types/helpers/createMutators.d.ts.map +1 -1
- package/types/helpers/ellipsis.d.ts +2 -0
- package/types/helpers/ellipsis.d.ts.map +1 -0
- package/types/helpers/emitter.d.ts +21 -0
- package/types/helpers/emitter.d.ts.map +1 -0
- package/types/helpers/ensure.d.ts +2 -0
- package/types/helpers/ensure.d.ts.map +1 -0
- package/types/helpers/ensureLoggedIn.d.ts.map +1 -1
- package/types/helpers/errors.d.ts +7 -0
- package/types/helpers/errors.d.ts.map +1 -0
- package/types/helpers/getCurrentComponentStack.d.ts +2 -0
- package/types/helpers/getCurrentComponentStack.d.ts.map +1 -0
- package/types/helpers/globalValue.d.ts +23 -0
- package/types/helpers/globalValue.d.ts.map +1 -0
- package/types/helpers/mapObject.d.ts +4 -0
- package/types/helpers/mapObject.d.ts.map +1 -0
- package/types/helpers/mutationLifecycle.d.ts +44 -0
- package/types/helpers/mutationLifecycle.d.ts.map +1 -0
- package/types/helpers/mutationLifecycle.test.d.ts +2 -0
- package/types/helpers/mutationLifecycle.test.d.ts.map +1 -0
- package/types/helpers/platform.d.ts +3 -0
- package/types/helpers/platform.d.ts.map +1 -0
- package/types/helpers/platform.native.d.ts +3 -0
- package/types/helpers/platform.native.d.ts.map +1 -0
- package/types/helpers/recoverZeroClient.d.ts +13 -9
- package/types/helpers/recoverZeroClient.d.ts.map +1 -1
- package/types/helpers/sleep.d.ts +2 -0
- package/types/helpers/sleep.d.ts.map +1 -0
- package/types/helpers/time.d.ts +28 -0
- package/types/helpers/time.d.ts.map +1 -0
- package/types/helpers/tuple.d.ts +2 -0
- package/types/helpers/tuple.d.ts.map +1 -0
- package/types/index.d.ts +3 -1
- package/types/index.d.ts.map +1 -1
- package/types/instanceRegistry.d.ts +1 -0
- package/types/instanceRegistry.d.ts.map +1 -1
- package/types/multi.d.ts +23 -1
- package/types/multi.d.ts.map +1 -1
- package/types/mutations.d.ts +1 -1
- package/types/mutations.d.ts.map +1 -1
- package/types/run.d.ts.map +1 -1
- package/types/server.d.ts +12 -8
- package/types/server.d.ts.map +1 -1
- package/types/state.d.ts +1 -1
- package/types/state.d.ts.map +1 -1
- package/types/types.d.ts +23 -1
- package/types/types.d.ts.map +1 -1
- package/types/vite-plugin.d.ts.map +1 -1
- package/types/where.d.ts.map +1 -1
- package/lint/ssr-guards.js +0 -165
- package/test-fixtures/server-return-types.ts +0 -58
- package/test-fixtures/tsconfig.json +0 -13
- package/tsconfig.json +0 -26
- package/vitest.config.ts +0 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","generate_layout_exports","__export","discoverDataLayout","namespaceImportPath","module","exports","import_fs","require","import_path","isSourceFile","isSourceFile2","name","endsWith","toImportPath","toImportPath2","baseDir","path","relative","split","sep","join","replace","isWithin","isWithin2","root","child","startsWith","propertyName","ts","isIdentifier","isStringLiteral","isNumericLiteral","text","readDataConfig","configPath","resolve","existsSync","Error","dirname","source","createSourceFile","readFileSync","ScriptTarget","Latest","hasParseErrors","config","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","statements","Symbol","iterator","_step","next","done","statement","isExportAssignment","isExportEquals","call","expression","isCallExpression","getText","arguments","isObjectLiteralExpression","err","return","rootOptions","Map","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","properties","_step1","option","isPropertyAssignment","has","set","initializer","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","keys","_step2","name1","instancesNode","get","instances","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_loop","property","_step3","name2","some","instance","dir","scope","supportTables","seen","Set","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_iterator5","_step5","option2","optionName","add","isArrayLiteralExpression","_iteratorNormalCompletion12","_didIteratorError12","_iteratorError12","_iterator12","elements","_step12","table","push","statSync","isDirectory","_iterator3","length","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_loop1","_step4","duplicate","find","candidate","_iterator4","_source_parseDiagnostics","Boolean","parseDiagnostics","hasNamespaceExports","displayPath","console","warn","functions","exported","isVariableStatement","_statement_modifiers","isExported","modifiers","modifier","kind","SyntaxKind","ExportKeyword","declarationList","declarations","declaration","initializerText","isArrowFunction","isFunctionExpression","body","isFunctionDeclaration","_statement_modifiers1","visiting","reachesQuery","reachesQuery1","node","isPropertyAccessExpression","helper","found","delete","found1","forEachChild","discoverNamespaces","instanceDirs","namespaces","readdirSync","withFileTypes","sort","a","b","localeCompare","entry","isFile","basename","queryPath","modelPath","sourcePaths","folder","hasQueries","hasMutations","includes","filter","path2","metadataPaths","paths","relations","databaseDir","relationTargets","visit","visit1","factory","isParenthesizedExpression","tableProperty","_relations_get","tableRelations","relationProperty","tableColumns","columns","sources","flatMap","namespace","isVariableDeclaration","tableNames","foundColumns","inspect","inspect1","argument","test"],"sources":["../../src/generate-layout.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -35,6 +35,28 @@ function baseName(path, ext) {
|
|
|
35
35
|
if (ext && base.endsWith(ext)) base = base.slice(0, -ext.length);
|
|
36
36
|
return base;
|
|
37
37
|
}
|
|
38
|
+
function resolvePath(path) {
|
|
39
|
+
const absolute = path.startsWith("/");
|
|
40
|
+
const parts = [];
|
|
41
|
+
for (const part of path.split("/")) {
|
|
42
|
+
if (!part || part === ".") continue;
|
|
43
|
+
if (part === "..") parts.pop();else parts.push(part);
|
|
44
|
+
}
|
|
45
|
+
return `${absolute ? "/" : ""}${parts.join("/")}`;
|
|
46
|
+
}
|
|
47
|
+
function parentDir(path) {
|
|
48
|
+
return path.slice(0, path.lastIndexOf("/"));
|
|
49
|
+
}
|
|
50
|
+
function relativePath(from, to) {
|
|
51
|
+
const fromParts = resolvePath(from).split("/").filter(Boolean);
|
|
52
|
+
const toParts = resolvePath(to).split("/").filter(Boolean);
|
|
53
|
+
let common = 0;
|
|
54
|
+
while (fromParts[common] === toParts[common] && common < fromParts.length) common++;
|
|
55
|
+
return [...Array.from({
|
|
56
|
+
length: fromParts.length - common
|
|
57
|
+
}, () => ".."), ...toParts.slice(common)].join("/");
|
|
58
|
+
}
|
|
59
|
+
const isWithin = (root, path) => path === root || path.startsWith(`${root}/`);
|
|
38
60
|
function listDirectTsFiles(files, dirPrefix) {
|
|
39
61
|
const prefix = stripTrailingSlash(dirPrefix) + "/";
|
|
40
62
|
const out = [];
|
|
@@ -49,28 +71,172 @@ function listDirectTsFiles(files, dirPrefix) {
|
|
|
49
71
|
}
|
|
50
72
|
return out.sort();
|
|
51
73
|
}
|
|
74
|
+
function discoverLiteLayout(files, baseDir, parse, explicitConfigPath) {
|
|
75
|
+
const paths = Object.keys(files);
|
|
76
|
+
const configPath = resolvePath(explicitConfigPath ?? `${baseDir}/on-zero.config.ts`);
|
|
77
|
+
const configSource = files[configPath];
|
|
78
|
+
let config;
|
|
79
|
+
if (configSource !== void 0) {
|
|
80
|
+
const parsed = parse(configSource, configPath);
|
|
81
|
+
if (parsed.parseError) {
|
|
82
|
+
throw new Error(`[on-zero] unable to parse ${configPath}: ${parsed.parseError}`);
|
|
83
|
+
}
|
|
84
|
+
config = parsed.dataConfig;
|
|
85
|
+
if (!config) {
|
|
86
|
+
throw new Error(`[on-zero] ${configPath} must default export defineConfig({ instances: { ... } })`);
|
|
87
|
+
}
|
|
88
|
+
} else if (explicitConfigPath) {
|
|
89
|
+
throw new Error(`[on-zero] config file does not exist: ${configPath}`);
|
|
90
|
+
}
|
|
91
|
+
if (explicitConfigPath && parentDir(configPath) !== baseDir) {
|
|
92
|
+
throw new Error(`[on-zero] ${configPath} must be at the data root ${baseDir}`);
|
|
93
|
+
}
|
|
94
|
+
const instances = config ? Object.entries(config.instances).map(([name, options]) => {
|
|
95
|
+
if (options.dir?.startsWith("/")) {
|
|
96
|
+
throw new Error(`[on-zero] instance '${name}' dir must be relative to ${configPath}`);
|
|
97
|
+
}
|
|
98
|
+
if (options.scope === "") {
|
|
99
|
+
throw new Error(`[on-zero] instance '${name}' scope cannot be empty`);
|
|
100
|
+
}
|
|
101
|
+
if (options.supportTables?.some(table => table === "")) {
|
|
102
|
+
throw new Error(`[on-zero] instance '${name}' supportTables cannot contain an empty table name`);
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
name,
|
|
106
|
+
dir: resolvePath(`${parentDir(configPath)}/${options.dir ?? name}`),
|
|
107
|
+
scope: options.scope ?? null,
|
|
108
|
+
declaredSupportTables: [...(options.supportTables ?? [])],
|
|
109
|
+
namespaces: []
|
|
110
|
+
};
|
|
111
|
+
}) : [{
|
|
112
|
+
name: "default",
|
|
113
|
+
dir: baseDir,
|
|
114
|
+
scope: null,
|
|
115
|
+
declaredSupportTables: [],
|
|
116
|
+
namespaces: []
|
|
117
|
+
}];
|
|
118
|
+
if (config && instances.length === 0) {
|
|
119
|
+
throw new Error(`[on-zero] ${configPath} must declare at least one instance`);
|
|
120
|
+
}
|
|
121
|
+
for (const instance of instances) {
|
|
122
|
+
if (!paths.some(path => isWithin(instance.dir, path))) {
|
|
123
|
+
throw new Error(`[on-zero] instance '${instance.name}' directory does not exist: ${instance.dir}`);
|
|
124
|
+
}
|
|
125
|
+
const duplicate = instances.find(candidate => candidate !== instance && candidate.dir === instance.dir);
|
|
126
|
+
if (duplicate) {
|
|
127
|
+
throw new Error(`[on-zero] instances '${instance.name}' and '${duplicate.name}' resolve to the same directory: ${instance.dir}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
const instanceDirs = new Set(instances.map(instance => instance.dir));
|
|
131
|
+
const sourceRoots = [baseDir, ...instances.map(instance => instance.dir)];
|
|
132
|
+
const remnant = paths.find(path => baseName(path) === "instance.ts" && sourceRoots.some(root => isWithin(root, path)));
|
|
133
|
+
if (remnant) {
|
|
134
|
+
throw new Error(`[on-zero] ${remnant} uses removed instance.ts configuration; delete it and configure instances in on-zero.config.ts`);
|
|
135
|
+
}
|
|
136
|
+
const parseDataFile = path => {
|
|
137
|
+
let parsed;
|
|
138
|
+
try {
|
|
139
|
+
parsed = parse(files[path], path);
|
|
140
|
+
} catch {
|
|
141
|
+
console.warn(`[on-zero] ignoring ${path.slice(baseDir.lastIndexOf("/") + 1)}: no recognized data exports`);
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
if (parsed.parseError) {
|
|
145
|
+
console.warn(`[on-zero] ignoring ${path.slice(baseDir.lastIndexOf("/") + 1)}: no recognized data exports`);
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
return parsed;
|
|
149
|
+
};
|
|
150
|
+
const hasDataExport = (source, parsed) => parsed.queries.length > 0 || parsed.mutations.length > 0 || (parsed.tables?.length ?? 0) > 0 || /export\s+const\s+(?:mutate|schema|where)\s*=\s*(?:mutations|serverWhere|table)\s*\(/.test(source);
|
|
151
|
+
if (config) {
|
|
152
|
+
for (const path of paths) {
|
|
153
|
+
if (path === configPath || !isWithin(baseDir, path) || instances.some(instance => isWithin(instance.dir, path)) || isWithin(`${baseDir}/generated`, path) || !path.endsWith(".ts") || path.endsWith(".d.ts") || path.endsWith(".test.ts") || path.endsWith(".spec.ts") || baseName(path) === "instance.ts") {
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
const parsed = parseDataFile(path);
|
|
157
|
+
if (parsed && hasDataExport(files[path], parsed)) {
|
|
158
|
+
throw new Error(`[on-zero] data namespace ${path} is outside every instance directory declared in ${configPath}`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
for (const instance of instances) {
|
|
163
|
+
const directFiles = listDirectTsFiles(files, instance.dir).filter(path => baseName(path) !== "on-zero.config.ts");
|
|
164
|
+
for (const path of directFiles) {
|
|
165
|
+
const source = files[path];
|
|
166
|
+
const parsed = parseDataFile(path);
|
|
167
|
+
if (!parsed || !hasDataExport(source, parsed)) continue;
|
|
168
|
+
instance.namespaces.push({
|
|
169
|
+
name: baseName(path, ".ts"),
|
|
170
|
+
instance: instance.name,
|
|
171
|
+
queryPath: path,
|
|
172
|
+
modelPath: path
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
const prefix = `${instance.dir}/`;
|
|
176
|
+
const folders = /* @__PURE__ */new Set();
|
|
177
|
+
for (const path of paths) {
|
|
178
|
+
if (!path.startsWith(prefix)) continue;
|
|
179
|
+
const rest = path.slice(prefix.length);
|
|
180
|
+
const slash = rest.indexOf("/");
|
|
181
|
+
if (slash > 0) folders.add(`${instance.dir}/${rest.slice(0, slash)}`);
|
|
182
|
+
}
|
|
183
|
+
for (const folder of [...folders].sort()) {
|
|
184
|
+
if (folder === `${baseDir}/generated` || instanceDirs.has(folder)) continue;
|
|
185
|
+
const queries = `${folder}/queries.ts`;
|
|
186
|
+
const mutations = `${folder}/mutations.ts`;
|
|
187
|
+
if (!(queries in files) && !(mutations in files)) {
|
|
188
|
+
const oldName = baseName(folder);
|
|
189
|
+
if (["models", "mutations", "queries"].includes(oldName) && listDirectTsFiles(files, folder).length > 0) {
|
|
190
|
+
throw new Error(`[on-zero] ${folder} uses the removed top-level ${oldName}/ layout; move each namespace to <name>.ts or <name>/queries.ts + mutations.ts`);
|
|
191
|
+
}
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
instance.namespaces.push({
|
|
195
|
+
name: baseName(folder),
|
|
196
|
+
instance: instance.name,
|
|
197
|
+
queryPath: queries in files ? queries : null,
|
|
198
|
+
modelPath: mutations in files ? mutations : null
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const owners = /* @__PURE__ */new Map();
|
|
203
|
+
for (const namespace of instances.flatMap(instance => instance.namespaces)) {
|
|
204
|
+
const owner = owners.get(namespace.name);
|
|
205
|
+
if (owner) {
|
|
206
|
+
throw new Error(`[on-zero] namespace '${namespace.name}' is claimed by instances '${owner}' and '${namespace.instance}'`);
|
|
207
|
+
}
|
|
208
|
+
owners.set(namespace.name, namespace.instance);
|
|
209
|
+
}
|
|
210
|
+
return instances;
|
|
211
|
+
}
|
|
52
212
|
function generateLite(opts) {
|
|
53
213
|
const {
|
|
54
214
|
files,
|
|
55
215
|
parse
|
|
56
216
|
} = opts;
|
|
57
|
-
const baseDir = stripTrailingSlash(opts.dir);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
217
|
+
const baseDir = resolvePath(stripTrailingSlash(opts.dir));
|
|
218
|
+
const instances = discoverLiteLayout(files, baseDir, parse, opts.config);
|
|
219
|
+
const sourceRoots = [baseDir, ...instances.map(instance => instance.dir)];
|
|
220
|
+
const namespaces = instances.flatMap(instance => instance.namespaces);
|
|
221
|
+
const modelNamespaces = namespaces.filter(namespace => namespace.modelPath !== null);
|
|
222
|
+
const relations = /* @__PURE__ */new Map();
|
|
223
|
+
const tableColumns = /* @__PURE__ */new Map();
|
|
224
|
+
for (const path of Object.keys(files).filter(path2 => path2.endsWith("/relations.ts") || /\/database\/(?:schema[^/]*|zeroSchemaInput)\.ts$/.test(path2))) {
|
|
225
|
+
const parsed = parse(files[path], path);
|
|
226
|
+
for (const relation of parsed.relations ?? []) {
|
|
227
|
+
const tableRelations = relations.get(relation.sourceTable) ?? /* @__PURE__ */new Map();
|
|
228
|
+
tableRelations.set(relation.name, relation.targetTable);
|
|
229
|
+
relations.set(relation.sourceTable, tableRelations);
|
|
230
|
+
}
|
|
231
|
+
for (const table of parsed.tables ?? []) {
|
|
232
|
+
tableColumns.set(table.name, new Set(table.columns));
|
|
233
|
+
}
|
|
234
|
+
}
|
|
70
235
|
const allModelMutations = [];
|
|
71
236
|
const modelNamesWithSchema = [];
|
|
72
|
-
for (const
|
|
73
|
-
const
|
|
237
|
+
for (const namespace of modelNamespaces) {
|
|
238
|
+
const filePath = namespace.modelPath;
|
|
239
|
+
const modelName = namespace.name;
|
|
74
240
|
const content = files[filePath];
|
|
75
241
|
const parsed = parse(content, filePath);
|
|
76
242
|
const mutationExport = parsed.mutations[0] ?? null;
|
|
@@ -84,6 +250,9 @@ function generateLite(opts) {
|
|
|
84
250
|
for (const col of mutationExport.schema.columns) {
|
|
85
251
|
columns[col.name] = (0, import_generate_helpers.parseColumnType)(col.builderText);
|
|
86
252
|
}
|
|
253
|
+
const names = new Set(mutationExport.schema.columns.map(column => column.name));
|
|
254
|
+
tableColumns.set(modelName, names);
|
|
255
|
+
tableColumns.set(mutationExport.schema.tableName, names);
|
|
87
256
|
}
|
|
88
257
|
const hasCRUD = hasSchema && mutationExport !== null;
|
|
89
258
|
const custom = (mutationExport?.handlers ?? []).map(h => {
|
|
@@ -123,18 +292,32 @@ function generateLite(opts) {
|
|
|
123
292
|
});
|
|
124
293
|
}
|
|
125
294
|
const allQueries = [];
|
|
126
|
-
|
|
127
|
-
|
|
295
|
+
const relatedPaths = /* @__PURE__ */new Map();
|
|
296
|
+
for (const namespace of namespaces.filter(namespace2 => namespace2.queryPath !== null)) {
|
|
297
|
+
const filePath = namespace.queryPath;
|
|
298
|
+
const fileBaseName = namespace.name;
|
|
128
299
|
const content = files[filePath];
|
|
129
300
|
const parsed = parse(content, filePath);
|
|
301
|
+
if (content.includes(".related(") && !parsed.queries.some(query => query.relatedPaths)) {
|
|
302
|
+
throw new Error(`[on-zero] ${filePath} uses related(), but the lite parser did not return relatedPaths`);
|
|
303
|
+
}
|
|
130
304
|
for (const q of parsed.queries) {
|
|
131
|
-
if (
|
|
305
|
+
if (["mutate", "permission", "schema", "where"].includes(q.name)) continue;
|
|
306
|
+
if (q.relatedPaths?.length) {
|
|
307
|
+
const entries = relatedPaths.get(namespace.name) ?? [];
|
|
308
|
+
entries.push({
|
|
309
|
+
query: q.name,
|
|
310
|
+
paths: q.relatedPaths
|
|
311
|
+
});
|
|
312
|
+
relatedPaths.set(namespace.name, entries);
|
|
313
|
+
}
|
|
132
314
|
if (q.paramTypeText == null) {
|
|
133
315
|
allQueries.push({
|
|
134
316
|
name: q.name,
|
|
135
317
|
params: "void",
|
|
136
318
|
valibotCode: "",
|
|
137
|
-
sourceFile: fileBaseName
|
|
319
|
+
sourceFile: fileBaseName,
|
|
320
|
+
importPath: `../${relativePath(baseDir, filePath).replace(/\.ts$/, "")}`
|
|
138
321
|
});
|
|
139
322
|
continue;
|
|
140
323
|
}
|
|
@@ -149,22 +332,102 @@ function generateLite(opts) {
|
|
|
149
332
|
name: q.name,
|
|
150
333
|
params: paramType,
|
|
151
334
|
valibotCode: valibotCode ?? "v.unknown()",
|
|
152
|
-
sourceFile: fileBaseName
|
|
335
|
+
sourceFile: fileBaseName,
|
|
336
|
+
importPath: `../${relativePath(baseDir, filePath).replace(/\.ts$/, "")}`
|
|
153
337
|
});
|
|
154
338
|
}
|
|
155
339
|
}
|
|
156
|
-
const
|
|
340
|
+
const owners = new Map(namespaces.map(namespace => [namespace.name, namespace.instance]));
|
|
341
|
+
const relatedOwners = /* @__PURE__ */new Map();
|
|
342
|
+
const syncTables = /* @__PURE__ */new Map();
|
|
343
|
+
for (const instance of instances) {
|
|
344
|
+
const synced = new Set(instance.namespaces.map(namespace => namespace.name));
|
|
345
|
+
for (const namespace of instance.namespaces) {
|
|
346
|
+
for (const query of relatedPaths.get(namespace.name) ?? []) {
|
|
347
|
+
for (const path of query.paths) {
|
|
348
|
+
let sourceTable = namespace.name;
|
|
349
|
+
for (const relationName of path) {
|
|
350
|
+
const target = relations.get(sourceTable)?.get(relationName);
|
|
351
|
+
if (!target) {
|
|
352
|
+
throw new Error(`[on-zero] ${namespace.name}.${query.query} related('${relationName}') cannot be resolved from table '${sourceTable}' through relations.ts`);
|
|
353
|
+
}
|
|
354
|
+
const owner = owners.get(target) ?? relatedOwners.get(target);
|
|
355
|
+
if (owner && owner !== instance.name) {
|
|
356
|
+
throw new Error(`[on-zero] ${namespace.name}.${query.query} in instance '${instance.name}' reaches table '${target}' owned by instance '${owner}'`);
|
|
357
|
+
}
|
|
358
|
+
relatedOwners.set(target, instance.name);
|
|
359
|
+
synced.add(target);
|
|
360
|
+
sourceTable = target;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
const tables = [...synced].sort();
|
|
366
|
+
if (instance.scope) {
|
|
367
|
+
for (const table of tables) {
|
|
368
|
+
if (!tableColumns.get(table)?.has(instance.scope)) {
|
|
369
|
+
throw new Error(`[on-zero] table '${table}' in instance '${instance.name}' is missing scope column '${instance.scope}'`);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
syncTables.set(instance.name, tables);
|
|
374
|
+
}
|
|
375
|
+
const supportTables = /* @__PURE__ */new Map();
|
|
376
|
+
for (const instance of instances) {
|
|
377
|
+
const supported = new Set(instance.declaredSupportTables);
|
|
378
|
+
for (const namespace of instance.namespaces) {
|
|
379
|
+
if (!namespace.modelPath) continue;
|
|
380
|
+
const visited = /* @__PURE__ */new Set();
|
|
381
|
+
const scan = path => {
|
|
382
|
+
if (visited.has(path)) return;
|
|
383
|
+
visited.add(path);
|
|
384
|
+
const parsed = parse(files[path], path);
|
|
385
|
+
if (parsed.parseError) {
|
|
386
|
+
throw new Error(`[on-zero] unable to derive mutation dependencies from ${path}: ${parsed.parseError}`);
|
|
387
|
+
}
|
|
388
|
+
for (const table of parsed.supportTables ?? []) {
|
|
389
|
+
if (owners.has(table) || relatedOwners.has(table)) continue;
|
|
390
|
+
if (!syncTables.get(instance.name).includes(table)) {
|
|
391
|
+
supported.add(table);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
for (const specifier of parsed.imports ?? []) {
|
|
395
|
+
const unresolved = specifier.startsWith("~/data/") ? `${baseDir}/${specifier.slice("~/data/".length)}` : specifier.startsWith(".") ? `${parentDir(path)}/${specifier}` : null;
|
|
396
|
+
if (!unresolved) continue;
|
|
397
|
+
const normalized = resolvePath(unresolved);
|
|
398
|
+
const dependency = [normalized.endsWith(".ts") ? normalized : `${normalized}.ts`, `${normalized}/index.ts`].find(candidate => candidate in files && sourceRoots.some(root => isWithin(root, candidate)));
|
|
399
|
+
if (dependency) scan(dependency);
|
|
400
|
+
}
|
|
401
|
+
};
|
|
402
|
+
scan(namespace.modelPath);
|
|
403
|
+
}
|
|
404
|
+
supportTables.set(instance.name, [...supported].sort());
|
|
405
|
+
}
|
|
406
|
+
const modelNames = modelNamespaces.map(namespace => namespace.name);
|
|
157
407
|
const out = {};
|
|
158
|
-
out["models.ts"] = (0, import_generate_helpers.generateModelsFile)(
|
|
408
|
+
out["models.ts"] = (0, import_generate_helpers.generateModelsFile)(modelNamespaces.map(namespace => ({
|
|
409
|
+
name: namespace.name,
|
|
410
|
+
importPath: `../${relativePath(baseDir, namespace.modelPath).replace(/\.ts$/, "")}`
|
|
411
|
+
})));
|
|
159
412
|
if (modelNamesWithSchema.length > 0) {
|
|
160
413
|
out["types.ts"] = (0, import_generate_helpers.generateTypesFile)(modelNamesWithSchema);
|
|
161
|
-
out["tables.ts"] = (0, import_generate_helpers.generateTablesFile)(modelNamesWithSchema
|
|
414
|
+
out["tables.ts"] = (0, import_generate_helpers.generateTablesFile)(modelNamespaces.filter(namespace => modelNamesWithSchema.includes(namespace.name)).map(namespace => ({
|
|
415
|
+
name: namespace.name,
|
|
416
|
+
importPath: `../${relativePath(baseDir, namespace.modelPath).replace(/\.ts$/, "")}`
|
|
417
|
+
})));
|
|
162
418
|
}
|
|
163
419
|
out["README.md"] = (0, import_generate_helpers.generateReadmeFile)();
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
420
|
+
out["groupedQueries.ts"] = (0, import_generate_helpers.generateGroupedQueriesFile)(allQueries);
|
|
421
|
+
out["syncedQueries.ts"] = (0, import_generate_helpers.generateSyncedQueriesFile)(allQueries);
|
|
422
|
+
out["instances.ts"] = (0, import_generate_helpers.generateInstancesFile)(instances.map(instance => ({
|
|
423
|
+
name: instance.name,
|
|
424
|
+
scope: instance.scope,
|
|
425
|
+
queryNames: instance.namespaces.map(namespace => namespace.name).filter(name => allQueries.some(query => query.sourceFile === name)),
|
|
426
|
+
modelNames: instance.namespaces.filter(namespace => namespace.modelPath).map(namespace => namespace.name),
|
|
427
|
+
tables: instance.namespaces.map(namespace => namespace.name),
|
|
428
|
+
syncTables: syncTables.get(instance.name),
|
|
429
|
+
supportTables: supportTables.get(instance.name)
|
|
430
|
+
})));
|
|
168
431
|
if (allModelMutations.length > 0) {
|
|
169
432
|
out["syncedMutations.ts"] = (0, import_generate_helpers.generateSyncedMutationsFile)(allModelMutations);
|
|
170
433
|
}
|
|
@@ -175,6 +438,11 @@ function generateLite(opts) {
|
|
|
175
438
|
}
|
|
176
439
|
return {
|
|
177
440
|
files: out,
|
|
441
|
+
instances: instances.map(instance => ({
|
|
442
|
+
name: instance.name,
|
|
443
|
+
syncTables: syncTables.get(instance.name),
|
|
444
|
+
supportTables: supportTables.get(instance.name)
|
|
445
|
+
})),
|
|
178
446
|
modelCount: modelNames.length,
|
|
179
447
|
queryCount: allQueries.length,
|
|
180
448
|
mutationCount,
|