on-zero 0.16.20 → 0.16.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cli.cjs +6 -0
- package/dist/cjs/cli.native.js +6 -0
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/combineZeroClients.native.js.map +1 -1
- package/dist/cjs/config.native.js.map +1 -1
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -1
- package/dist/cjs/createUseQuery.cjs +14 -4
- package/dist/cjs/createUseQuery.native.js +18 -5
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createUseQueryDirect.cjs +13 -2
- package/dist/cjs/createUseQueryDirect.native.js +14 -2
- package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
- package/dist/cjs/createZeroClient.authData.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +21 -3
- package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.exportProbe.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.headless.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.httpAuth.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.native.js +28 -3
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/cjs/generate-helpers.native.js.map +1 -1
- package/dist/cjs/generate-helpers.test.native.js.map +1 -1
- package/dist/cjs/generate-layout.native.js.map +1 -1
- package/dist/cjs/generate-lite.native.js.map +1 -1
- package/dist/cjs/generate-lite.test.native.js.map +1 -1
- package/dist/cjs/generate.cjs +57 -30
- package/dist/cjs/generate.native.js +92 -31
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +147 -0
- package/dist/cjs/generate.test.native.js +147 -0
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/NullToOptional.native.js.map +1 -1
- package/dist/cjs/helpers/asyncContext.hostStorage.test.native.js.map +1 -1
- package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
- package/dist/cjs/helpers/clearZeroClientData.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.test.native.js.map +1 -1
- package/dist/cjs/helpers/ellipsis.native.js.map +1 -1
- package/dist/cjs/helpers/emitter.native.js.map +1 -1
- package/dist/cjs/helpers/ensure.native.js.map +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/cjs/helpers/errors.native.js.map +1 -1
- package/dist/cjs/helpers/getAuth.native.js.map +1 -1
- package/dist/cjs/helpers/getCurrentComponentStack.native.js.map +1 -1
- package/dist/cjs/helpers/globalValue.native.js.map +1 -1
- package/dist/cjs/helpers/hostStorageScope.native.js.map +1 -1
- package/dist/cjs/helpers/mapObject.native.js.map +1 -1
- package/dist/cjs/helpers/mutationLifecycle.native.js.map +1 -1
- package/dist/cjs/helpers/mutationLifecycle.test.native.js.map +1 -1
- package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
- package/dist/cjs/helpers/mutatorContext.test.native.js.map +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/cjs/helpers/queryContext.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/cjs/helpers/showZeroClientError.native.js.map +1 -1
- package/dist/cjs/helpers/sleep.native.js.map +1 -1
- package/dist/cjs/helpers/time.native.js.map +1 -1
- package/dist/cjs/helpers/tuple.native.js.map +1 -1
- package/dist/cjs/helpers/useMutation.native.js.map +1 -1
- package/dist/cjs/helpers/useMutation.test.native.js.map +1 -1
- package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/instanceRegistry.native.js.map +1 -1
- package/dist/cjs/modelRegistry.native.js.map +1 -1
- package/dist/cjs/multi.cjs +10 -5
- package/dist/cjs/multi.native.js +10 -5
- package/dist/cjs/multi.native.js.map +1 -1
- package/dist/cjs/multiInstance.test.native.js.map +1 -1
- package/dist/cjs/multiInstanceMutations.test.native.js.map +1 -1
- package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
- package/dist/cjs/multiPartition.test.cjs +46 -2
- package/dist/cjs/multiPartition.test.native.js +50 -2
- package/dist/cjs/multiPartition.test.native.js.map +1 -1
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/cjs/mutations.test.native.js.map +1 -1
- package/dist/cjs/native-typescript.cjs +50 -11
- package/dist/cjs/native-typescript.native.js +158 -30
- package/dist/cjs/native-typescript.native.js.map +1 -1
- package/dist/cjs/provideZero.eagerInstance.test.cjs +22 -0
- package/dist/cjs/provideZero.eagerInstance.test.native.js +30 -0
- package/dist/cjs/provideZero.eagerInstance.test.native.js.map +1 -1
- package/dist/cjs/provideZero.hydration.test.native.js.map +1 -1
- package/dist/cjs/provideZero.ssr.test.native.js.map +1 -1
- package/dist/cjs/queryErrorRecovery.cjs +93 -0
- package/dist/cjs/queryErrorRecovery.native.js +205 -0
- package/dist/cjs/queryErrorRecovery.native.js.map +1 -0
- package/dist/cjs/queryJson.native.js.map +1 -1
- package/dist/cjs/queryRegistry.native.js.map +1 -1
- package/dist/cjs/resolveQuery.native.js.map +1 -1
- package/dist/cjs/run.native.js.map +1 -1
- package/dist/cjs/server.native.js.map +1 -1
- package/dist/cjs/server.test.native.js.map +1 -1
- package/dist/cjs/serverWhere.native.js.map +1 -1
- package/dist/cjs/serverWhere.test.native.js.map +1 -1
- package/dist/cjs/state.native.js.map +1 -1
- package/dist/cjs/streaming.native.js.map +1 -1
- package/dist/cjs/testSetup.native.js.map +1 -1
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/usePermission.test.native.js.map +1 -1
- package/dist/cjs/useQuery.aggregate.zero.test.cjs +199 -4
- package/dist/cjs/useQuery.aggregate.zero.test.native.js +212 -4
- package/dist/cjs/useQuery.aggregate.zero.test.native.js.map +1 -1
- package/dist/cjs/useQuery.empty.test.native.js.map +1 -1
- package/dist/cjs/useQuery.ssr.test.native.js.map +1 -1
- package/dist/cjs/useStreamingField.loop.test.native.js.map +1 -1
- package/dist/cjs/useStreamingField.native.js.map +1 -1
- package/dist/cjs/vite-plugin.cjs +10 -0
- package/dist/cjs/vite-plugin.native.js +10 -0
- package/dist/cjs/vite-plugin.native.js.map +1 -1
- package/dist/cjs/where.native.js.map +1 -1
- package/dist/cjs/zeroRunner.native.js.map +1 -1
- package/dist/cjs/zql.native.js.map +1 -1
- package/dist/esm/cli.mjs +6 -0
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +7 -1
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/combineZeroClients.native.js +4 -4
- package/dist/esm/combineZeroClients.native.js.map +1 -1
- package/dist/esm/config.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.mjs +16 -6
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +24 -11
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createUseQueryDirect.mjs +13 -2
- package/dist/esm/createUseQueryDirect.mjs.map +1 -1
- package/dist/esm/createUseQueryDirect.native.js +19 -7
- 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.exportProbe.test.native.js +1 -1
- package/dist/esm/createZeroClient.exportProbe.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.headless.test.native.js +2 -2
- package/dist/esm/createZeroClient.headless.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.httpAuth.test.native.js +1 -1
- package/dist/esm/createZeroClient.httpAuth.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +21 -3
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +49 -24
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.native.js +2 -2
- 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-helpers.test.native.js +1 -1
- package/dist/esm/generate-helpers.test.native.js.map +1 -1
- package/dist/esm/generate-layout.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.mjs +57 -30
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +95 -34
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +147 -0
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +148 -1
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/helpers/NullToOptional.native.js.map +1 -1
- package/dist/esm/helpers/asyncContext.hostStorage.test.native.js +7 -7
- package/dist/esm/helpers/asyncContext.hostStorage.test.native.js.map +1 -1
- package/dist/esm/helpers/batchQuery.native.js +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.native.js +4 -4
- 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.native.js.map +1 -1
- package/dist/esm/helpers/emitter.native.js.map +1 -1
- package/dist/esm/helpers/ensure.native.js +1 -1
- package/dist/esm/helpers/ensure.native.js.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.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/getCurrentComponentStack.native.js.map +1 -1
- package/dist/esm/helpers/globalValue.native.js.map +1 -1
- package/dist/esm/helpers/hostStorageScope.native.js.map +1 -1
- package/dist/esm/helpers/mapObject.native.js.map +1 -1
- package/dist/esm/helpers/mutationLifecycle.native.js +1 -1
- package/dist/esm/helpers/mutationLifecycle.native.js.map +1 -1
- package/dist/esm/helpers/mutationLifecycle.test.native.js +1 -1
- package/dist/esm/helpers/mutationLifecycle.test.native.js.map +1 -1
- package/dist/esm/helpers/mutatorContext.native.js +1 -1
- package/dist/esm/helpers/mutatorContext.native.js.map +1 -1
- package/dist/esm/helpers/mutatorContext.test.native.js +6 -6
- package/dist/esm/helpers/mutatorContext.test.native.js.map +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/esm/helpers/queryContext.native.js +1 -1
- package/dist/esm/helpers/queryContext.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.native.js +1 -1
- package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js +2 -2
- 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/sleep.native.js +1 -1
- package/dist/esm/helpers/sleep.native.js.map +1 -1
- package/dist/esm/helpers/time.native.js.map +1 -1
- package/dist/esm/helpers/tuple.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 +2 -2
- package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/esm/index.native.js +23 -23
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/instanceRegistry.native.js +2 -2
- package/dist/esm/instanceRegistry.native.js.map +1 -1
- package/dist/esm/modelRegistry.native.js.map +1 -1
- package/dist/esm/multi.mjs +10 -5
- package/dist/esm/multi.mjs.map +1 -1
- package/dist/esm/multi.native.js +15 -10
- package/dist/esm/multi.native.js.map +1 -1
- package/dist/esm/multiInstance.test.native.js +10 -10
- package/dist/esm/multiInstance.test.native.js.map +1 -1
- package/dist/esm/multiInstanceMutations.test.native.js +4 -4
- package/dist/esm/multiInstanceMutations.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.mjs +47 -3
- package/dist/esm/multiPartition.test.mjs.map +1 -1
- package/dist/esm/multiPartition.test.native.js +52 -4
- package/dist/esm/multiPartition.test.native.js.map +1 -1
- package/dist/esm/mutations.native.js +2 -2
- package/dist/esm/mutations.native.js.map +1 -1
- package/dist/esm/mutations.test.native.js +4 -4
- package/dist/esm/mutations.test.native.js.map +1 -1
- package/dist/esm/native-typescript.mjs +50 -11
- package/dist/esm/native-typescript.mjs.map +1 -1
- package/dist/esm/native-typescript.native.js +158 -30
- package/dist/esm/native-typescript.native.js.map +1 -1
- package/dist/esm/provideZero.eagerInstance.test.mjs +22 -0
- package/dist/esm/provideZero.eagerInstance.test.mjs.map +1 -1
- package/dist/esm/provideZero.eagerInstance.test.native.js +31 -1
- package/dist/esm/provideZero.eagerInstance.test.native.js.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/provideZero.ssr.test.native.js +2 -2
- package/dist/esm/provideZero.ssr.test.native.js.map +1 -1
- package/dist/esm/queryErrorRecovery.mjs +66 -0
- package/dist/esm/queryErrorRecovery.mjs.map +1 -0
- package/dist/esm/queryErrorRecovery.native.js +175 -0
- package/dist/esm/queryErrorRecovery.native.js.map +1 -0
- package/dist/esm/queryJson.native.js +1 -1
- package/dist/esm/queryJson.native.js.map +1 -1
- package/dist/esm/queryRegistry.native.js.map +1 -1
- package/dist/esm/resolveQuery.native.js +2 -2
- package/dist/esm/resolveQuery.native.js.map +1 -1
- package/dist/esm/run.native.js +4 -4
- package/dist/esm/run.native.js.map +1 -1
- package/dist/esm/server.native.js +10 -10
- package/dist/esm/server.native.js.map +1 -1
- package/dist/esm/server.test.native.js +2 -2
- package/dist/esm/server.test.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.native.js +1 -1
- package/dist/esm/state.native.js.map +1 -1
- package/dist/esm/streaming.native.js +1 -1
- package/dist/esm/streaming.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.aggregate.zero.test.mjs +197 -2
- package/dist/esm/useQuery.aggregate.zero.test.mjs.map +1 -1
- package/dist/esm/useQuery.aggregate.zero.test.native.js +212 -4
- package/dist/esm/useQuery.aggregate.zero.test.native.js.map +1 -1
- package/dist/esm/useQuery.empty.test.native.js +3 -3
- 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/useStreamingField.loop.test.native.js +1 -1
- package/dist/esm/useStreamingField.loop.test.native.js.map +1 -1
- package/dist/esm/useStreamingField.native.js.map +1 -1
- package/dist/esm/vite-plugin.mjs +10 -0
- package/dist/esm/vite-plugin.mjs.map +1 -1
- package/dist/esm/vite-plugin.native.js +11 -1
- package/dist/esm/vite-plugin.native.js.map +1 -1
- package/dist/esm/where.native.js +3 -3
- package/dist/esm/where.native.js.map +1 -1
- package/dist/esm/zeroRunner.native.js +1 -1
- 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 +4 -4
- package/src/cli.ts +6 -0
- package/src/createUseQuery.tsx +20 -5
- package/src/createUseQueryDirect.tsx +17 -1
- package/src/createZeroClient.tsx +37 -4
- package/src/generate.test.ts +116 -0
- package/src/generate.ts +109 -52
- package/src/multi.ts +11 -3
- package/src/multiPartition.test.ts +55 -11
- package/src/native-typescript.ts +64 -11
- package/src/provideZero.eagerInstance.test.tsx +27 -0
- package/src/queryErrorRecovery.ts +95 -0
- package/src/useQuery.aggregate.zero.test.tsx +187 -2
- package/src/vite-plugin.ts +10 -0
- package/types/createUseQuery.d.ts +3 -1
- package/types/createUseQuery.d.ts.map +1 -1
- package/types/createUseQueryDirect.d.ts +3 -1
- package/types/createUseQueryDirect.d.ts.map +1 -1
- package/types/createZeroClient.d.ts +3 -1
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/generate.d.ts +4 -0
- package/types/generate.d.ts.map +1 -1
- package/types/multi.d.ts +3 -1
- package/types/multi.d.ts.map +1 -1
- package/types/native-typescript.d.ts +7 -1
- package/types/native-typescript.d.ts.map +1 -1
- package/types/queryErrorRecovery.d.ts +33 -0
- package/types/queryErrorRecovery.d.ts.map +1 -0
- package/types/useQuery.aggregate.zero.test.d.ts.map +1 -1
- package/types/vite-plugin.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createHash","existsSync","mkdirSync","readFileSync","readdirSync","writeFileSync","basename","dirname","resolve","ts","ObjectFlags","SymbolFlags","TypeFlags","CRUD_MUTATION_NAMES","formatObjectKey","generateAggregatesFile","generateGroupedQueriesFile","generateInstancesFile","generateModelsFile","generateReadmeFile","generateSyncedMutationsFile","generateSyncedQueriesFile","generateTablesFile","generateTypesFile","parseColumnType","parseTypeString","renderDrizzleZeroSqliteSchemaModule","shouldSkipObjectKey","discoverDataLayout","namespaceImportPath","collectTypeScriptSourcePaths","createNativeTypeScriptProject","hash","hash2","s","update","digest","GENERATOR_CACHE_VERSION","isGeneratorSourceFile","isGeneratorSourceFile2","name","endsWith","hashInputTree","sourceRoots","generatedDir","parts","seen","Set","walk","walk1","dir","entries","withFileTypes","sort","a","b","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","Symbol","iterator","_step2","next","done","entry","value","full","isDirectory","isFile","has","add","push","err","return","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","root","join","generateCache","generateCachePath","getCacheDir","process","cwd","nm","cacheDir","recursive","loadCache","JSON","parse","unused","saveCache","stringify","writeFileIfChanged","filePath","content","contentHash","onDisk","createTypeResolver","project","resolveType","node","_ref","checker","getTypeFromTypeNode","typeToValibot","type","tsTypeToValibot","resolveParamType","resolver","sourceFile","exportName","paramIndex","typeNode","forEachChild","_node_modifiers","isVariableStatement","modifiers","some","m","kind","SyntaxKind","ExportKeyword","decl","declarationList","declarations","isVariableDeclaration","getText","initializer","isArrowFunction","param","parameters","readMutationsCall","call","args","arguments","length","only","hasTable","crud","handlersArg","isObjectLiteralExpression","handlers","options","properties","prop","isPropertyAssignment","isIdentifier","isStringLiteral","text","FalseKeyword","resolveMutationParamTypes","nodes","Map","node2","isCallExpression","_prop_name","isMethodDeclaration","name2","params","init","isFunctionExpression","set","resolved","expanded","extractMutationsFromModel","fileName","silent","resolvedValibot","mutateNode","modelName","hasCRUD","columns","primaryKeys","custom","extractSchemaColumns","_secondParam_type","paramType","valibotCode","secondParam","inner","_resolvedValibot_get","get","visit","expression","arg","obj","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","colName","initText","colType","flags","Object","Intersection","id","recurse","recurse2","String","Number","Boolean","Void","Undefined","Null","Any","Unknown","Never","TemplateLiteral","isArrayLikeType","typeArgs","isTypeReference","getTypeArguments","indexInfo","getIndexInfosOfType","find","info","keyType","elementType","valueType","isStringLiteralType","isNumberLiteralType","isBooleanLiteralType","isUnionType","members","getTypes","hasNull","member","hasUndefined","rest","filter","every","BooleanLiteral","inner1","Promise","all","map","resolveSymbolType","resolveSymbolType2","property","_property_valueDeclaration","symbolType","getTypeOfSymbol","isErrorType","declaration","valueDeclaration","getTypeOfSymbolAtLocation","getDeclaredTypeOfSymbol","objectToValibot","objectToValibot2","props2","propType","isOptional","Optional","val","startsWith","isIntersectionType","getPropertiesOfType","isTupleType","typeArgs1","isObjectType","objectFlags","Reference","symbol","getSymbol","typeArgs2","props","indexInfo1","serializeColumnBuilder","col","zeroType","expr","serverName","optional","generateDrizzleSchemaFile","schema","lines","tableNames","keys","tables","tableName","t","colEntries","pkArgs","primaryKey","k","tableSource","relTableNames","relationships","_loop","tableName2","rels","relEntries","relBody","relName","hops","hop","fn","cardinality","sf","sourceField","f","df","destField","destSchema","Error","hop2","fn1","hopCode","sf2","df2","tableList","n","relList","dataMembershipFromLayout","layout","instances","fromEntries","instance","syncTables","supportTables","scope","allTables","flatMap","loadGeneratorProject","baseDir","sourcePaths","deriveDataMembership","config","close","generateDrizzleSchemaInputFile","generateDrizzleSchemaInputFileWithProject","_layout_metadataPaths_find","relationsPath","metadataPaths","path","relationEntries","source","included","visit1","factory","body","isParenthesizedExpression","tableProperty","table","replace","relations","relationProperty","isPropertyAccessExpression","target","relation","schemaImportPath","generate","generateWithProject","after","force","metadataHash","databaseSchemaPath","needsDrizzleSchema","externalZeroConfigPath","externalZeroConfig","needsSqliteZeroSchema","inputHash","__generatorVersion","__inputHash","cachedPath","cachedHash","_counts_modelCount","_counts_schemaCount","_counts_queryCount","_counts_mutationCount","counts","__counts","filesChanged","modelCount","schemaCount","queryCount","mutationCount","modelNamespaces","namespaces","namespace2","modelPath","filesWithSchema","includes","modelModules","importPath","schemaModules","writeResults","module","membership","drizzleSchema","sqliteSchema"],"sources":["../../src/generate.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createHash","existsSync","mkdirSync","readFileSync","readdirSync","writeFileSync","basename","dirname","resolve","ts","ObjectFlags","SymbolFlags","TypeFlags","CRUD_MUTATION_NAMES","formatObjectKey","generateAggregatesFile","generateGroupedQueriesFile","generateInstancesFile","generateModelsFile","generateReadmeFile","generateSyncedMutationsFile","generateSyncedQueriesFile","generateTablesFile","generateTypesFile","parseColumnType","parseTypeString","renderDrizzleZeroSqliteSchemaModule","shouldSkipObjectKey","discoverDataLayout","namespaceImportPath","collectTypeScriptSourcePaths","createNativeTypeScriptProject","_type_of","obj","Symbol","constructor","hash","hash2","s","update","digest","GENERATOR_CACHE_VERSION","isGeneratorSourceFile","isGeneratorSourceFile2","name","endsWith","hashInputTree","sourceRoots","generatedDir","dependencyPaths","parts","seen","Set","walk","walk1","dir","entries","withFileTypes","sort","a","b","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","iterator","_step2","next","done","entry","value","full","isDirectory","isFile","has","add","push","err","return","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","root","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","path","startsWith","join","generateCache","generateCachePath","getCacheDir","process","cwd","nm","cacheDir","recursive","loadCache","JSON","parse","unused","saveCache","stringify","writeFileIfChanged","filePath","content","contentHash","onDisk","createTypeResolver","project","resolveType","node","_ref","checker","getTypeFromTypeNode","typeToValibot","type","tsTypeToValibot","resolveParamType","resolver","sourceFile","exportName","paramIndex","typeNode","forEachChild","_node_modifiers","isVariableStatement","modifiers","some","m","kind","SyntaxKind","ExportKeyword","decl","declarationList","declarations","isVariableDeclaration","getText","initializer","isArrowFunction","param","parameters","readMutationsCall","call","args","arguments","length","only","hasTable","crud","handlersArg","isObjectLiteralExpression","handlers","options","properties","prop","isPropertyAssignment","isIdentifier","isStringLiteral","text","FalseKeyword","resolveMutationParamTypes","nodes","Map","node2","isCallExpression","_prop_name","isMethodDeclaration","name2","params","init","isFunctionExpression","set","resolved","expanded","extractMutationsFromModel","fileName","silent","resolvedValibot","mutateNode","modelName","hasCRUD","columns","primaryKeys","custom","extractSchemaColumns","_secondParam_type","paramType","valibotCode","secondParam","_resolvedValibot_get","get","visit","expression","arg","colName","initText","colType","flags","Object","Intersection","id","recurse","recurse2","String","Number","Boolean","Void","Undefined","Null","Any","Unknown","Never","TemplateLiteral","isArrayLikeType","typeArgs","isTypeReference","getTypeArguments","indexInfo","getIndexInfosOfType","find","info","keyType","elementType","valueType","isStringLiteralType","isNumberLiteralType","isBooleanLiteralType","isUnionType","members","getTypes","hasNull","member","hasUndefined","rest","filter","every","BooleanLiteral","inner","inner1","Promise","all","map","resolveSymbolType","resolveSymbolType2","property","_property_valueDeclaration","symbolType","getTypeOfSymbol","isErrorType","declaration","valueDeclaration","getTypeOfSymbolAtLocation","getDeclaredTypeOfSymbol","objectToValibot","objectToValibot2","props2","propType","isOptional","Optional","val","isIntersectionType","getPropertiesOfType","isTupleType","typeArgs1","isObjectType","objectFlags","Reference","symbol","getSymbol","typeArgs2","props","indexInfo1","serializeColumnBuilder","col","zeroType","expr","serverName","optional","generateDrizzleSchemaFile","schema","lines","tableNames","keys","tables","tableName","t","colEntries","pkArgs","primaryKey","k","tableSource","relTableNames","relationships","_loop","tableName2","rels","relEntries","relBody","relName","hops","hop","fn","cardinality","sf","sourceField","f","df","destField","destSchema","Error","hop2","fn1","hopCode","sf2","df2","tableList","n","relList","dataMembershipFromLayout","layout","instances","fromEntries","instance","syncTables","supportTables","scope","allTables","flatMap","loadGeneratorProject","baseDir","deferSources","tsconfig","sourcePaths","deriveDataMembership","config","close","generateDrizzleSchemaInputFile","generateDrizzleSchemaInputFileWithProject","_layout_metadataPaths_find","relationsPath","metadataPaths","relationEntries","source","included","visit1","factory","body","isParenthesizedExpression","tableProperty","table","replace","relations","relationProperty","isPropertyAccessExpression","target","relation","schemaImportPath","generate","generateWithProject","after","force","configPath","cachedInputs","__configPath","__layoutInputs","Array","isArray","sourceFilePaths","hashInputs","hashInputs2","layout2","metadataHash","externalZeroConfig","configurationKey","databaseSchemaPath","needsDrizzleSchema","externalZeroConfigPath","needsSqliteZeroSchema","cachedInputHash","__generatorVersion","__inputHash","cachedPath","cachedHash","_counts_modelCount","_counts_schemaCount","_counts_queryCount","_counts_mutationCount","counts","__counts","filesChanged","modelCount","schemaCount","queryCount","mutationCount","loadSources","inputHash","modelNamespaces","namespaces","namespace2","modelPath","filesWithSchema","includes","modelModules","importPath","schemaModules","writeResults","module","membership","drizzleSchema","sqliteSchema","typeToValibot2","trim","allQueries","filePath2","queryPath","sourceFile2","candidates","exportModifier","_params_","_param_type","projectForFile","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_iterator4","_step12","candidate","resolvedType","console","error","groupedChanged","syncedChanged","instancesChanged","queryNames","query","modelNames","aggregateNamespaces","aggregatePath","aggregatesChanged","allModelMutations","unresolvedModels","namespace","fileBaseName","result","hasUnresolved","baseName","_loop1","modelResolver","resolvedTypes","size","_step4","content2","result2","idx","findIndex","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_loop2","model","_step3","_iterator3","mutationsChanged","execSync","stdio","env","ON_ZERO_GENERATED_DIR","outputHashes","assign","watch","debounce","chokidar","debounceTimer","debouncedRegenerate","debouncedRegenerate2","event","clearTimeout","setTimeout","databaseDir","watcher","persistent","ignoreInitial","ignored","on"],"sources":["generate.native.js"],"sourcesContent":["import { createHash } from \"crypto\";\nimport { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from \"fs\";\nimport { basename, dirname, resolve } from \"path\";\nimport * as ts from \"typescript/unstable/ast\";\nimport { ObjectFlags, SymbolFlags, TypeFlags } from \"typescript/unstable/async\";\nimport { CRUD_MUTATION_NAMES, formatObjectKey, generateAggregatesFile, generateGroupedQueriesFile, generateInstancesFile, generateModelsFile, generateReadmeFile, generateSyncedMutationsFile, generateSyncedQueriesFile, generateTablesFile, generateTypesFile, parseColumnType, parseTypeString, renderDrizzleZeroSqliteSchemaModule, shouldSkipObjectKey } from \"./generate-helpers\";\nimport { discoverDataLayout, namespaceImportPath } from \"./generate-layout\";\nimport { collectTypeScriptSourcePaths, createNativeTypeScriptProject } from \"./native-typescript\";\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nvar hash = function hash2(s) {\n return createHash(\"sha256\").update(s).digest(\"hex\");\n};\nvar GENERATOR_CACHE_VERSION = \"10\";\nvar isGeneratorSourceFile = function isGeneratorSourceFile2(name) {\n return name.endsWith(\".ts\") && !name.endsWith(\".d.ts\") && !name.endsWith(\".test.ts\") && !name.endsWith(\".spec.ts\");\n};\nfunction hashInputTree(sourceRoots, generatedDir, dependencyPaths) {\n var parts = [];\n var seen = /* @__PURE__ */ new Set();\n var walk = function walk1(dir) {\n if (!existsSync(dir)) return;\n var entries = readdirSync(dir, {\n withFileTypes: true\n }).sort(function(a, b) {\n return a.name < b.name ? -1 : 1;\n });\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = entries[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var entry = _step2.value;\n var full = resolve(dir, entry.name);\n if (entry.isDirectory()) {\n if (entry.name === \"node_modules\" || entry.name === \"generated\" || full === generatedDir) continue;\n walk(full);\n } else if (entry.isFile() && isGeneratorSourceFile(entry.name)) {\n if (seen.has(full)) continue;\n seen.add(full);\n parts.push(`${full}\\0${readFileSync(full, \"utf-8\")}`);\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = sourceRoots[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var root = _step.value;\n walk(root);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = dependencyPaths[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var path = _step1.value;\n if (seen.has(path) || path.startsWith(`${generatedDir}/`) || !existsSync(path)) continue;\n seen.add(path);\n parts.push(`${path}\\0${readFileSync(path, \"utf-8\")}`);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n return hash(parts.join(\"\\0\"));\n}\nvar generateCache = {};\nvar generateCachePath = \"\";\nfunction getCacheDir() {\n var dir = process.cwd();\n while (dir !== \"/\") {\n var nm = resolve(dir, \"node_modules\");\n if (existsSync(nm)) {\n var cacheDir = resolve(nm, \".on-zero\");\n if (!existsSync(cacheDir)) {\n mkdirSync(cacheDir, {\n recursive: true\n });\n }\n return cacheDir;\n }\n dir = resolve(dir, \"..\");\n }\n return null;\n}\nfunction loadCache() {\n var cacheDir = getCacheDir();\n if (!cacheDir) return;\n generateCachePath = resolve(cacheDir, \"generate-cache.json\");\n try {\n generateCache = JSON.parse(readFileSync(generateCachePath, \"utf-8\"));\n } catch (unused) {\n generateCache = {};\n }\n}\nfunction saveCache() {\n if (generateCachePath) {\n writeFileSync(generateCachePath, JSON.stringify(generateCache) + \"\\n\", \"utf-8\");\n }\n}\nfunction writeFileIfChanged(filePath, content) {\n var contentHash = hash(content);\n var onDisk = null;\n try {\n onDisk = readFileSync(filePath, \"utf-8\");\n } catch (unused) {\n }\n if (onDisk !== null && hash(onDisk) === contentHash) {\n generateCache[filePath] = contentHash;\n return false;\n }\n writeFileSync(filePath, content, \"utf-8\");\n generateCache[filePath] = contentHash;\n return true;\n}\nfunction createTypeResolver(project) {\n return {\n project,\n async resolveType(node) {\n try {\n var _ref;\n return (_ref = await project.checker.getTypeFromTypeNode(node)) !== null && _ref !== void 0 ? _ref : null;\n } catch (unused) {\n return null;\n }\n },\n async typeToValibot(type) {\n return tsTypeToValibot(project, type);\n }\n };\n}\nasync function resolveParamType(resolver, sourceFile, exportName, paramIndex) {\n var typeNode = null;\n sourceFile.forEachChild(function(node) {\n var _node_modifiers;\n if (typeNode) return;\n if (!ts.isVariableStatement(node)) return;\n if (!((_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.some(function(m) {\n return m.kind === ts.SyntaxKind.ExportKeyword;\n }))) return;\n var decl = node.declarationList.declarations[0];\n if (!decl || !ts.isVariableDeclaration(decl)) return;\n if (decl.name.getText(sourceFile) !== exportName) return;\n if (decl.initializer && ts.isArrowFunction(decl.initializer)) {\n var param = decl.initializer.parameters[paramIndex];\n if (param === null || param === void 0 ? void 0 : param.type) {\n typeNode = param.type;\n }\n }\n });\n return typeNode ? resolver.resolveType(typeNode) : null;\n}\nfunction readMutationsCall(call) {\n var args = call.arguments;\n if (args.length < 2) {\n var only = args[0];\n return {\n hasTable: false,\n crud: false,\n handlersArg: only && ts.isObjectLiteralExpression(only) ? only : null\n };\n }\n var handlers = args[2];\n var options = args[3];\n var crud = true;\n if (options && ts.isObjectLiteralExpression(options)) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = options.properties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var prop = _step.value;\n if (!ts.isPropertyAssignment(prop)) continue;\n if (!(ts.isIdentifier(prop.name) || ts.isStringLiteral(prop.name)) || prop.name.text !== \"crud\") continue;\n if (prop.initializer.kind === ts.SyntaxKind.FalseKeyword) crud = false;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return {\n hasTable: true,\n crud,\n handlersArg: handlers && ts.isObjectLiteralExpression(handlers) ? handlers : null\n };\n}\nasync function resolveMutationParamTypes(resolver, sourceFile) {\n var nodes = /* @__PURE__ */ new Map();\n sourceFile.forEachChild(function(node2) {\n var _node_modifiers;\n if (!ts.isVariableStatement(node2)) return;\n if (!((_node_modifiers = node2.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.some(function(m) {\n return m.kind === ts.SyntaxKind.ExportKeyword;\n }))) return;\n var decl = node2.declarationList.declarations[0];\n if (!decl || !ts.isVariableDeclaration(decl)) return;\n if (decl.name.getText(sourceFile) !== \"mutate\") return;\n if (!decl.initializer || !ts.isCallExpression(decl.initializer)) return;\n var { handlersArg } = readMutationsCall(decl.initializer);\n if (!handlersArg) return;\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = handlersArg.properties[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var prop = _step2.value;\n var _prop_name;\n if (!ts.isPropertyAssignment(prop) && !ts.isMethodDeclaration(prop)) continue;\n var name2 = (_prop_name = prop.name) === null || _prop_name === void 0 ? void 0 : _prop_name.getText(sourceFile);\n if (!name2) continue;\n var params = null;\n if (ts.isPropertyAssignment(prop)) {\n var init = prop.initializer;\n if (ts.isArrowFunction(init) || ts.isFunctionExpression(init)) {\n params = init.parameters;\n }\n } else if (ts.isMethodDeclaration(prop)) {\n params = prop.parameters;\n }\n if (!params || params.length < 2) continue;\n var typeNode = params[1].type;\n if (!typeNode) continue;\n nodes.set(name2, typeNode);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n });\n var resolved = /* @__PURE__ */ new Map();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = nodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [name, node] = _step.value;\n var expanded = await resolver.resolveType(node);\n if (expanded) resolved.set(name, expanded);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return resolved;\n}\nfunction extractMutationsFromModel(sourceFile, content, fileName, silent, typeToValibot, resolvedValibot) {\n var mutateNode = null;\n sourceFile.forEachChild(function(node) {\n var _node_modifiers;\n if (!ts.isVariableStatement(node)) return;\n if (!((_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.some(function(m) {\n return m.kind === ts.SyntaxKind.ExportKeyword;\n }))) return;\n var decl = node.declarationList.declarations[0];\n if (!decl || !ts.isVariableDeclaration(decl)) return;\n if (decl.name.getText(sourceFile) !== \"mutate\") return;\n if (decl.initializer && ts.isCallExpression(decl.initializer)) {\n mutateNode = decl.initializer;\n }\n });\n if (!mutateNode) {\n return {\n modelName: basename(fileName, \".ts\"),\n hasCRUD: false,\n columns: {},\n primaryKeys: [],\n custom: []\n };\n }\n var call = mutateNode;\n var { hasTable, crud, handlersArg } = readMutationsCall(call);\n var hasCRUD = hasTable && crud;\n var columns = {};\n var primaryKeys = [];\n if (hasCRUD) {\n extractSchemaColumns(sourceFile, columns, primaryKeys);\n }\n var custom = [];\n if (handlersArg) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = handlersArg.properties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var prop = _step.value;\n var _prop_name, _secondParam_type;\n if (!ts.isPropertyAssignment(prop) && !ts.isMethodDeclaration(prop)) continue;\n var name = (_prop_name = prop.name) === null || _prop_name === void 0 ? void 0 : _prop_name.getText(sourceFile);\n if (!name) continue;\n var params = null;\n if (ts.isPropertyAssignment(prop)) {\n var init = prop.initializer;\n if (ts.isArrowFunction(init) || ts.isFunctionExpression(init)) {\n params = init.parameters;\n }\n } else if (ts.isMethodDeclaration(prop)) {\n params = prop.parameters;\n }\n if (!params) continue;\n if (params.length < 2) {\n custom.push({\n name,\n paramType: \"void\",\n valibotCode: \"\"\n });\n continue;\n }\n var secondParam = params[1];\n var paramType = ((_secondParam_type = secondParam.type) === null || _secondParam_type === void 0 ? void 0 : _secondParam_type.getText(sourceFile)) || \"unknown\";\n if (paramType === \"unknown\") {\n custom.push({\n name,\n paramType: \"unknown\",\n valibotCode: \"\"\n });\n continue;\n }\n var valibotCode = typeToValibot(paramType);\n if (!valibotCode && resolvedValibot) {\n var _resolvedValibot_get;\n valibotCode = (_resolvedValibot_get = resolvedValibot.get(name)) !== null && _resolvedValibot_get !== void 0 ? _resolvedValibot_get : null;\n }\n custom.push({\n name,\n paramType,\n valibotCode: valibotCode || \"\"\n });\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return {\n modelName: \"\",\n hasCRUD,\n columns,\n primaryKeys,\n custom\n };\n}\nfunction extractSchemaColumns(sourceFile, columns, primaryKeys) {\n function visit(node) {\n if (ts.isCallExpression(node)) {\n var text = node.expression.getText(sourceFile);\n if (text.endsWith(\".primaryKey\")) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = node.arguments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var arg = _step.value;\n if (ts.isStringLiteral(arg)) {\n primaryKeys.push(arg.text);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n if (text.endsWith(\".columns\") && node.arguments.length === 1) {\n var obj = node.arguments[0];\n if (ts.isObjectLiteralExpression(obj)) {\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = obj.properties[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var prop = _step1.value;\n var _prop_name;\n if (!ts.isPropertyAssignment(prop)) continue;\n var colName = (_prop_name = prop.name) === null || _prop_name === void 0 ? void 0 : _prop_name.getText(sourceFile);\n if (!colName) continue;\n var initText = prop.initializer.getText(sourceFile);\n var colType = parseColumnType(initText);\n columns[colName] = colType;\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n }\n }\n node.forEachChild(visit);\n }\n visit(sourceFile);\n}\nasync function tsTypeToValibot(project, type) {\n var seen = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : /* @__PURE__ */ new Set();\n var checker = project.checker;\n var flags = type.flags;\n var path = seen;\n if (flags & (TypeFlags.Object | TypeFlags.Intersection)) {\n if (seen.has(type.id)) return \"v.unknown()\";\n path = new Set(seen).add(type.id);\n }\n var recurse = function recurse2(value) {\n return tsTypeToValibot(project, value, path);\n };\n if (flags & TypeFlags.String) return \"v.string()\";\n if (flags & TypeFlags.Number) return \"v.number()\";\n if (flags & TypeFlags.Boolean) return \"v.boolean()\";\n if (flags & TypeFlags.Void || flags & TypeFlags.Undefined) return \"v.void_()\";\n if (flags & TypeFlags.Null) return \"v.null_()\";\n if (flags & TypeFlags.Any || flags & TypeFlags.Unknown) return \"v.unknown()\";\n if (flags & TypeFlags.Never) return \"v.never()\";\n if (flags & TypeFlags.TemplateLiteral) return \"v.string()\";\n if (flags & TypeFlags.Object && await checker.isArrayLikeType(type)) {\n var typeArgs = type.isTypeReference() ? await checker.getTypeArguments(type) : [];\n var indexInfo = (await checker.getIndexInfosOfType(type)).find(function(info) {\n return Boolean(info.keyType.flags & TypeFlags.Number);\n });\n var elementType = typeArgs.length === 1 ? typeArgs[0] : indexInfo === null || indexInfo === void 0 ? void 0 : indexInfo.valueType;\n return `v.array(${elementType ? await recurse(elementType) : \"v.unknown()\"})`;\n }\n if (type.isStringLiteralType()) {\n return `v.literal(${JSON.stringify(type.value)})`;\n }\n if (type.isNumberLiteralType()) {\n return `v.literal(${type.value})`;\n }\n if (type.isBooleanLiteralType()) {\n return `v.literal(${type.value})`;\n }\n if (type.isUnionType()) {\n var members = await type.getTypes();\n var hasNull = members.some(function(member) {\n return member.flags & TypeFlags.Null;\n });\n var hasUndefined = members.some(function(member) {\n return member.flags & (TypeFlags.Undefined | TypeFlags.Void);\n });\n var rest = members.filter(function(member) {\n return !(member.flags & (TypeFlags.Null | TypeFlags.Undefined | TypeFlags.Void));\n });\n if (rest.length === 2 && rest.every(function(member) {\n return member.flags & TypeFlags.BooleanLiteral;\n })) {\n var inner = \"v.boolean()\";\n if (hasNull) inner = `v.nullable(${inner})`;\n if (hasUndefined) inner = `v.optional(${inner})`;\n return inner;\n }\n if (rest.length === 0) return \"v.unknown()\";\n var inner1 = rest.length === 1 ? await recurse(rest[0]) : `v.union([${(await Promise.all(rest.map(recurse))).join(\", \")}])`;\n if (hasNull) inner1 = `v.nullable(${inner1})`;\n if (hasUndefined) inner1 = `v.optional(${inner1})`;\n return inner1;\n }\n var resolveSymbolType = async function resolveSymbolType2(property) {\n var _property_valueDeclaration;\n var symbolType = await checker.getTypeOfSymbol(property);\n if (symbolType && !symbolType.isErrorType()) return symbolType;\n var declaration = (_property_valueDeclaration = property.valueDeclaration) !== null && _property_valueDeclaration !== void 0 ? _property_valueDeclaration : property.declarations[0];\n var node = declaration ? await declaration.resolve(project) : void 0;\n if (node) return checker.getTypeOfSymbolAtLocation(property, node);\n return checker.getDeclaredTypeOfSymbol(property);\n };\n var objectToValibot = async function objectToValibot2(props2) {\n if (props2.length === 0) return \"v.object({})\";\n var entries = [];\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = props2[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var prop = _step2.value;\n var name = prop.name;\n if (shouldSkipObjectKey(name)) continue;\n var propType = await resolveSymbolType(prop);\n var isOptional = Boolean(prop.flags & SymbolFlags.Optional);\n var val = await recurse(propType);\n if (isOptional && !val.startsWith(\"v.optional(\")) {\n val = `v.optional(${val})`;\n }\n entries.push(`${formatObjectKey(name)}: ${val}`);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n if (entries.length === 0) return \"v.object({})\";\n return `v.object({\n ${entries.join(\",\\n \")},\n })`;\n };\n if (type.isIntersectionType()) {\n return objectToValibot(await checker.getPropertiesOfType(type));\n }\n if (type.isTupleType()) {\n var typeArgs1 = await checker.getTypeArguments(type);\n return `v.tuple([${(await Promise.all(typeArgs1.map(recurse))).join(\", \")}])`;\n }\n if (type.isObjectType()) {\n if (type.objectFlags & ObjectFlags.Reference && type.isTypeReference()) {\n var symbol = await type.getSymbol();\n var typeArgs2 = await checker.getTypeArguments(type);\n if (((symbol === null || symbol === void 0 ? void 0 : symbol.name) === \"Array\" || (symbol === null || symbol === void 0 ? void 0 : symbol.name) === \"ReadonlyArray\") && typeArgs2.length === 1) {\n return `v.array(${await recurse(typeArgs2[0])})`;\n }\n }\n var props = await checker.getPropertiesOfType(type);\n if (props.length > 0) return objectToValibot(props);\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = (await checker.getIndexInfosOfType(type))[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var indexInfo1 = _step.value;\n if (indexInfo1.keyType.flags & TypeFlags.String) {\n return `v.record(v.string(), ${await recurse(indexInfo1.valueType)})`;\n }\n if (indexInfo1.keyType.flags & TypeFlags.Number) {\n return `v.record(v.number(), ${await recurse(indexInfo1.valueType)})`;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return \"v.unknown()\";\n}\nfunction serializeColumnBuilder(col) {\n var zeroType = col.type === \"string\" ? \"string\" : col.type === \"number\" ? \"number\" : col.type === \"boolean\" ? \"boolean\" : \"json\";\n var expr = `${zeroType}()`;\n if (col.serverName) {\n expr += `.from('${col.serverName}')`;\n }\n if (col.optional) {\n expr += \".optional()\";\n }\n return expr;\n}\nfunction generateDrizzleSchemaFile(schema) {\n var lines = [\n `// auto-generated by: on-zero generate (from drizzle schema)`,\n `import { boolean, createSchema, json, number, relationships, string, table } from '@rocicorp/zero'`,\n ``\n ];\n var tableNames = Object.keys(schema.tables).sort();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = tableNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var tableName = _step.value;\n var t = schema.tables[tableName];\n var colEntries = Object.entries(t.columns).map(function(param) {\n var [colName, col] = param;\n return ` ${colName}: ${serializeColumnBuilder(col)},`;\n }).join(\"\\n\");\n var pkArgs = t.primaryKey.map(function(k) {\n return `'${k}'`;\n }).join(\", \");\n var tableSource = t.serverName ? `table(${JSON.stringify(t.name)}).from(${JSON.stringify(t.serverName)})` : `table(${JSON.stringify(t.name)})`;\n lines.push(`const ${tableName}Table = ${tableSource}`);\n lines.push(` .columns({`);\n lines.push(colEntries);\n lines.push(` })`);\n lines.push(` .primaryKey(${pkArgs})`);\n lines.push(``);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var relTableNames = Object.keys(schema.relationships).sort();\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n var _loop = function() {\n var tableName2 = _step1.value;\n var rels = schema.relationships[tableName2];\n var relEntries = Object.entries(rels);\n if (relEntries.length === 0) return \"continue\";\n var relBody = relEntries.map(function(param) {\n var [relName, hops] = param;\n if (hops.length === 1) {\n var hop = hops[0];\n var fn = hop.cardinality === \"one\" ? \"one\" : \"many\";\n var sf = hop.sourceField.map(function(f) {\n return `'${f}'`;\n }).join(\", \");\n var df = hop.destField.map(function(f) {\n return `'${f}'`;\n }).join(\", \");\n return ` ${relName}: ${fn}({\n sourceField: [${sf}],\n destSchema: ${hop.destSchema}Table,\n destField: [${df}],\n })`;\n }\n if (hops.length !== 2) {\n throw new Error(`Relationship ${tableName2}.${relName} must have one or two hops`);\n }\n var cardinality = hops[0].cardinality;\n if (hops.some(function(hop2) {\n return hop2.cardinality !== cardinality;\n })) {\n throw new Error(`Relationship ${tableName2}.${relName} must use one cardinality`);\n }\n var fn1 = cardinality === \"one\" ? \"one\" : \"many\";\n var hopCode = hops.map(function(hop2) {\n var sf2 = hop2.sourceField.map(function(f) {\n return `'${f}'`;\n }).join(\", \");\n var df2 = hop2.destField.map(function(f) {\n return `'${f}'`;\n }).join(\", \");\n return `{ sourceField: [${sf2}], destSchema: ${hop2.destSchema}Table, destField: [${df2}] }`;\n }).join(\", \");\n return ` ${relName}: ${fn1}(${hopCode})`;\n }).join(\",\\n\");\n lines.push(`const ${tableName2}Relationships = relationships(${tableName2}Table, ({ one, many }) => ({`);\n lines.push(relBody);\n lines.push(`}))`);\n lines.push(``);\n };\n for (var _iterator1 = relTableNames[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) _loop();\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n var tableList = tableNames.map(function(n) {\n return ` ${n}Table,`;\n }).join(\"\\n\");\n var relList = relTableNames.filter(function(n) {\n return Object.keys(schema.relationships[n]).length > 0;\n }).map(function(n) {\n return ` ${n}Relationships,`;\n }).join(\"\\n\");\n lines.push(`export const schema = createSchema({`);\n lines.push(` tables: [`);\n lines.push(tableList);\n lines.push(` ],`);\n lines.push(` relationships: [`);\n lines.push(relList);\n lines.push(` ],`);\n lines.push(`})`);\n lines.push(``);\n return lines.join(\"\\n\");\n}\nfunction dataMembershipFromLayout(layout) {\n return {\n instances: Object.fromEntries(layout.instances.map(function(instance) {\n return [\n instance.name,\n {\n tables: [\n ...instance.tables\n ],\n syncTables: [\n ...instance.syncTables\n ],\n supportTables: [\n ...instance.supportTables\n ],\n scope: instance.scope\n }\n ];\n })),\n allTables: [\n ...new Set(layout.instances.flatMap(function(instance) {\n return [\n ...instance.syncTables,\n ...instance.supportTables\n ];\n }))\n ].sort()\n };\n}\nasync function loadGeneratorProject(baseDir) {\n var deferSources = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false, tsconfig = arguments.length > 2 ? arguments[2] : void 0;\n var sourcePaths = collectTypeScriptSourcePaths([\n baseDir,\n resolve(dirname(baseDir), \"database\")\n ]);\n return createNativeTypeScriptProject(baseDir, sourcePaths, {\n deferSources,\n tsconfig: tsconfig ? resolve(tsconfig) : void 0\n });\n}\nasync function deriveDataMembership(options) {\n var baseDir = resolve(options.dir);\n var project = await loadGeneratorProject(baseDir, false, options.tsconfig);\n try {\n var layout = discoverDataLayout(project, baseDir, options.config ? resolve(options.config) : void 0);\n return dataMembershipFromLayout(layout);\n } finally {\n await project.close();\n }\n}\nasync function generateDrizzleSchemaInputFile(options) {\n var baseDir = resolve(options.dir);\n var project = await loadGeneratorProject(baseDir, false, options.tsconfig);\n try {\n return generateDrizzleSchemaInputFileWithProject(options, project);\n } finally {\n await project.close();\n }\n}\nasync function generateDrizzleSchemaInputFileWithProject(options, project) {\n var _layout_metadataPaths_find;\n var baseDir = resolve(options.dir);\n var layout = discoverDataLayout(project, baseDir, options.config ? resolve(options.config) : void 0);\n var tableNames = dataMembershipFromLayout(layout).allTables;\n var relationsPath = (_layout_metadataPaths_find = layout.metadataPaths.find(function(path) {\n return basename(path) === \"relations.ts\" && dirname(path) === resolve(dirname(baseDir), \"database\");\n })) !== null && _layout_metadataPaths_find !== void 0 ? _layout_metadataPaths_find : layout.metadataPaths.find(function(path) {\n return basename(path) === \"relations.ts\";\n });\n var relationEntries = [];\n if (relationsPath) {\n var source = project.sourceFile(relationsPath);\n var included = new Set(tableNames);\n var visit = function visit1(node) {\n if (!ts.isCallExpression(node) || node.expression.getText(source) !== \"defineRelations\") {\n node.forEachChild(visit);\n return;\n }\n var factory = node.arguments[1];\n if (!factory || !ts.isArrowFunction(factory) && !ts.isFunctionExpression(factory)) {\n return;\n }\n var body = ts.isParenthesizedExpression(factory.body) ? factory.body.expression : factory.body;\n if (!ts.isObjectLiteralExpression(body)) return;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = body.properties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var tableProperty = _step.value;\n if (!ts.isPropertyAssignment(tableProperty) || !ts.isObjectLiteralExpression(tableProperty.initializer)) {\n continue;\n }\n var table = tableProperty.name.getText(source).replace(/^['\"]|['\"]$/g, \"\");\n if (!included.has(table)) continue;\n var relations = [];\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = tableProperty.initializer.properties[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var relationProperty = _step1.value;\n if (!ts.isPropertyAssignment(relationProperty) || !ts.isCallExpression(relationProperty.initializer) || !ts.isPropertyAccessExpression(relationProperty.initializer.expression)) {\n continue;\n }\n var target = relationProperty.initializer.expression.name.text;\n if (included.has(target)) relations.push(relationProperty.getText(source));\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n relationEntries.push(` ${tableProperty.name.getText(source)}: {${relations.length ? `\n${relations.map(function(relation) {\n return ` ${relation},`;\n }).join(\"\\n\")}\n ` : \"\"}},`);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n visit(source);\n }\n var schemaImportPath = JSON.stringify(options.schemaImportPath);\n return [\n \"// auto-generated from the on-zero data layout\",\n `import { defineRelations } from 'drizzle-orm'`,\n `import * as schema from ${schemaImportPath}`,\n \"\",\n `export { ${tableNames.join(\", \")} } from ${schemaImportPath}`,\n `export const relations = defineRelations(schema, (r) => ({`,\n ...relationEntries,\n `}))`,\n \"\"\n ].join(\"\\n\");\n}\nasync function generate(options) {\n var project = await loadGeneratorProject(resolve(options.dir), true, options.tsconfig);\n try {\n return await generateWithProject(options, project);\n } finally {\n await project.close();\n }\n}\nasync function generateWithProject(options, project) {\n var { dir, after, silent, force, config } = options;\n var baseDir = resolve(dir);\n var generatedDir = resolve(baseDir, \"generated\");\n if (!existsSync(generatedDir)) {\n mkdirSync(generatedDir, {\n recursive: true\n });\n }\n loadCache();\n var configPath = config ? resolve(config) : resolve(baseDir, \"on-zero.config.ts\");\n var cachedInputs = null;\n if (generateCache.__configPath === configPath) {\n try {\n var value = JSON.parse(generateCache.__layoutInputs || \"null\");\n if (value && (typeof value === \"undefined\" ? \"undefined\" : _type_of(value)) === \"object\" && \"sourceRoots\" in value && Array.isArray(value.sourceRoots) && value.sourceRoots.every(function(path) {\n return typeof path === \"string\";\n }) && \"metadataPaths\" in value && Array.isArray(value.metadataPaths) && value.metadataPaths.every(function(path) {\n return typeof path === \"string\";\n })) {\n cachedInputs = {\n sourceRoots: value.sourceRoots,\n metadataPaths: value.metadataPaths\n };\n }\n } catch (unused) {\n }\n }\n var dependencyPaths = await project.sourceFilePaths();\n var hashInputs = function hashInputs2(layout2) {\n var metadataHash = hash(layout2.metadataPaths.map(function(path) {\n return `${path}\\0${readFileSync(path, \"utf8\")}`;\n }).join(\"\\0\"));\n return hash(`${hashInputTree(layout2.sourceRoots, generatedDir, dependencyPaths)}\\0${metadataHash}\\0${externalZeroConfig}\\0${project.configurationKey}`);\n };\n var databaseSchemaPath = resolve(dirname(baseDir), \"database/schema.ts\");\n var needsDrizzleSchema = existsSync(databaseSchemaPath);\n var externalZeroConfigPath = resolve(dirname(databaseSchemaPath), \"drizzle-zero.config.ts\");\n var externalZeroConfig = existsSync(externalZeroConfigPath) ? readFileSync(externalZeroConfigPath, \"utf8\") : null;\n var needsSqliteZeroSchema = needsDrizzleSchema && externalZeroConfig === null;\n var cachedInputHash = null;\n if (cachedInputs) {\n try {\n cachedInputHash = hashInputs(cachedInputs);\n } catch (unused) {\n }\n }\n if (!force && generateCache.__generatorVersion === GENERATOR_CACHE_VERSION && generateCache.__inputHash === cachedInputHash && // the input hash deliberately skips the generated directory, so it cannot\n // notice that the outputs themselves moved. existence is not correctness\n // either: a checkout, merge or revert leaves every file present and stale.\n // confirm the bytes on disk still match what the cache says it wrote there\n // before skipping the build, or the fast path serves someone else's output.\n //\n // successful after commands record their final output hashes. formatting\n // therefore keeps the fast path without trusting stale generated bytes.\n Object.entries(generateCache).every(function(param) {\n var [cachedPath, cachedHash] = param;\n if (!cachedPath.startsWith(generatedDir)) return true;\n try {\n return hash(readFileSync(cachedPath, \"utf-8\")) === cachedHash;\n } catch (unused) {\n return false;\n }\n }) && existsSync(resolve(generatedDir, \"models.ts\")) && (!needsDrizzleSchema || existsSync(resolve(generatedDir, \"drizzleSchema.ts\"))) && (!needsSqliteZeroSchema || existsSync(resolve(generatedDir, \"schema.ts\")))) {\n var _counts_modelCount, _counts_schemaCount, _counts_queryCount, _counts_mutationCount;\n var counts = {};\n try {\n counts = JSON.parse(generateCache.__counts || \"{}\");\n } catch (unused) {\n }\n return {\n filesChanged: 0,\n modelCount: (_counts_modelCount = counts.modelCount) !== null && _counts_modelCount !== void 0 ? _counts_modelCount : 0,\n schemaCount: (_counts_schemaCount = counts.schemaCount) !== null && _counts_schemaCount !== void 0 ? _counts_schemaCount : 0,\n queryCount: (_counts_queryCount = counts.queryCount) !== null && _counts_queryCount !== void 0 ? _counts_queryCount : 0,\n mutationCount: (_counts_mutationCount = counts.mutationCount) !== null && _counts_mutationCount !== void 0 ? _counts_mutationCount : 0\n };\n }\n await project.loadSources();\n var layout = discoverDataLayout(project, baseDir, config ? resolve(config) : void 0);\n var inputHash = hashInputs(layout);\n var modelNamespaces = layout.namespaces.filter(function(namespace2) {\n return namespace2.modelPath !== null;\n });\n var filesWithSchema = modelNamespaces.filter(function(namespace2) {\n return readFileSync(namespace2.modelPath, \"utf-8\").includes(\"export const schema = table(\");\n });\n var modelModules = modelNamespaces.map(function(namespace2) {\n return {\n name: namespace2.name,\n importPath: namespaceImportPath(baseDir, namespace2.modelPath)\n };\n });\n var schemaModules = filesWithSchema.map(function(namespace2) {\n return {\n name: namespace2.name,\n importPath: namespaceImportPath(baseDir, namespace2.modelPath)\n };\n });\n var writeResults = [\n writeFileIfChanged(resolve(generatedDir, \"models.ts\"), generateModelsFile(modelModules)),\n // only generate types.ts and tables.ts when model files define schemas.\n // when using drizzle-zero CLI for schema generation, these files are\n // managed externally and should not be overwritten.\n ...filesWithSchema.length > 0 ? [\n writeFileIfChanged(resolve(generatedDir, \"types.ts\"), generateTypesFile(schemaModules.map(function(module) {\n return module.name;\n }))),\n writeFileIfChanged(resolve(generatedDir, \"tables.ts\"), generateTablesFile(schemaModules))\n ] : [],\n writeFileIfChanged(resolve(generatedDir, \"README.md\"), generateReadmeFile())\n ];\n var filesChanged = writeResults.filter(Boolean).length;\n if (needsDrizzleSchema) {\n var membership = dataMembershipFromLayout(layout);\n var drizzleSchema = await generateDrizzleSchemaInputFileWithProject({\n dir: baseDir,\n schemaImportPath: \"../../database/schema\",\n config\n }, project);\n if (writeFileIfChanged(resolve(generatedDir, \"drizzleSchema.ts\"), drizzleSchema)) {\n filesChanged++;\n }\n if (needsSqliteZeroSchema) {\n var sqliteSchema = renderDrizzleZeroSqliteSchemaModule({\n importPath: \"./drizzleSchema\",\n tableNames: membership.allTables\n });\n if (writeFileIfChanged(resolve(generatedDir, \"schema.ts\"), sqliteSchema)) {\n filesChanged++;\n }\n }\n }\n var queryCount = 0;\n var mutationCount = 0;\n var typeToValibot = function typeToValibot2(paramType) {\n try {\n return parseTypeString(paramType.trim());\n } catch (unused) {\n return null;\n }\n };\n var allQueries = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n var _loop = async function() {\n var namespace2 = _step.value;\n var filePath2 = namespace2.queryPath;\n try {\n var sourceFile2 = project.sourceFile(filePath2);\n var candidates = [];\n sourceFile2.forEachChild(function(node) {\n if (ts.isVariableStatement(node)) {\n var _node_modifiers;\n var exportModifier = (_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.find(function(m) {\n return m.kind === ts.SyntaxKind.ExportKeyword;\n });\n if (!exportModifier) return;\n var declaration = node.declarationList.declarations[0];\n if (!declaration || !ts.isVariableDeclaration(declaration)) return;\n var name = declaration.name.getText(sourceFile2);\n if ([\n \"mutate\",\n \"permission\",\n \"schema\",\n \"where\"\n ].includes(name)) return;\n if (declaration.initializer && ts.isArrowFunction(declaration.initializer)) {\n var _ref;\n var _params_;\n var params = declaration.initializer.parameters;\n var paramType = \"void\";\n if (params.length > 0) {\n var _param_type;\n var param = params[0];\n paramType = ((_param_type = param.type) === null || _param_type === void 0 ? void 0 : _param_type.getText(sourceFile2)) || \"unknown\";\n }\n candidates.push({\n name,\n paramType,\n typeNode: (_ref = (_params_ = params[0]) === null || _params_ === void 0 ? void 0 : _params_.type) !== null && _ref !== void 0 ? _ref : null\n });\n }\n }\n });\n var resolver = createTypeResolver(project.projectForFile(filePath2));\n var _iteratorNormalCompletion4 = true, _didIteratorError4 = false, _iteratorError4 = void 0;\n try {\n for (var _iterator4 = candidates[Symbol.iterator](), _step12; !(_iteratorNormalCompletion4 = (_step12 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var candidate = _step12.value;\n var valibotCode = typeToValibot(candidate.paramType);\n if (!valibotCode && candidate.typeNode) {\n var resolvedType = await resolveParamType(resolver, sourceFile2, candidate.name, 0);\n if (resolvedType) valibotCode = await resolver.typeToValibot(resolvedType);\n }\n if (valibotCode) {\n allQueries.push({\n name: candidate.name,\n params: candidate.paramType,\n valibotCode,\n sourceFile: namespace2.name,\n importPath: namespaceImportPath(baseDir, filePath2)\n });\n } else if (!silent && candidate.paramType !== \"void\") {\n console.error(`\\u2717 ${candidate.name}: could not resolve type \"${candidate.paramType}\"`);\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n } catch (err) {\n if (!silent) console.error(`Error processing ${filePath2}:`, err);\n }\n };\n for (var _iterator = layout.namespaces.filter(function(namespace2) {\n return namespace2.queryPath !== null;\n })[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) await _loop();\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n queryCount = allQueries.length;\n var groupedChanged = writeFileIfChanged(resolve(generatedDir, \"groupedQueries.ts\"), generateGroupedQueriesFile(allQueries));\n var syncedChanged = writeFileIfChanged(resolve(generatedDir, \"syncedQueries.ts\"), generateSyncedQueriesFile(allQueries));\n if (groupedChanged) filesChanged++;\n if (syncedChanged) filesChanged++;\n var instancesChanged = writeFileIfChanged(resolve(generatedDir, \"instances.ts\"), generateInstancesFile(layout.instances.map(function(instance) {\n return {\n name: instance.name,\n scope: instance.scope,\n queryNames: instance.namespaces.map(function(namespace2) {\n return namespace2.name;\n }).filter(function(name) {\n return allQueries.some(function(query) {\n return query.sourceFile === name;\n });\n }),\n modelNames: instance.namespaces.filter(function(namespace2) {\n return namespace2.modelPath;\n }).map(function(namespace2) {\n return namespace2.name;\n }),\n tables: instance.tables,\n syncTables: instance.syncTables,\n supportTables: instance.supportTables\n };\n })));\n if (instancesChanged) filesChanged++;\n var aggregateNamespaces = layout.namespaces.filter(function(namespace2) {\n return namespace2.aggregatePath !== null;\n });\n if (aggregateNamespaces.length > 0) {\n var aggregatesChanged = writeFileIfChanged(resolve(generatedDir, \"aggregates.ts\"), generateAggregatesFile(aggregateNamespaces.map(function(namespace2) {\n return {\n name: namespace2.name,\n importPath: namespaceImportPath(baseDir, namespace2.aggregatePath)\n };\n })));\n if (aggregatesChanged) filesChanged++;\n }\n var allModelMutations = [];\n var unresolvedModels = [];\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = modelNamespaces[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var namespace = _step1.value;\n var filePath = namespace.modelPath;\n var fileBaseName = namespace.name;\n try {\n var content = readFileSync(filePath, \"utf-8\");\n var sourceFile = project.sourceFile(filePath);\n var result = extractMutationsFromModel(sourceFile, content, filePath, !!silent, typeToValibot);\n if (result) {\n result.modelName = fileBaseName;\n allModelMutations.push(result);\n var hasUnresolved = result.custom.some(function(m) {\n return m.paramType !== \"void\" && m.paramType !== \"unknown\" && !m.valibotCode;\n });\n if (hasUnresolved) {\n unresolvedModels.push({\n baseName: fileBaseName,\n filePath\n });\n }\n }\n } catch (err) {\n if (!silent) console.error(`Error extracting mutations from ${filePath}:`, err);\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n if (unresolvedModels.length > 0) {\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n var _loop1 = async function() {\n var { baseName, filePath: filePath2 } = _step2.value;\n var sourceFile2 = project.sourceFile(filePath2);\n var modelResolver = createTypeResolver(project.projectForFile(filePath2));\n var resolvedTypes = await resolveMutationParamTypes(modelResolver, sourceFile2);\n if (resolvedTypes.size === 0) return \"continue\";\n var resolvedValibot = /* @__PURE__ */ new Map();\n var _iteratorNormalCompletion4 = true, _didIteratorError4 = false, _iteratorError4 = void 0;\n try {\n for (var _iterator4 = resolvedTypes[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var [name, type] = _step4.value;\n resolvedValibot.set(name, await modelResolver.typeToValibot(type));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n var content2 = readFileSync(filePath2, \"utf-8\");\n var result2 = extractMutationsFromModel(sourceFile2, content2, filePath2, !!silent, typeToValibot, resolvedValibot);\n if (result2) {\n result2.modelName = baseName;\n var idx = allModelMutations.findIndex(function(m) {\n return m.modelName === baseName;\n });\n if (idx >= 0) allModelMutations[idx] = result2;\n }\n };\n for (var _iterator2 = unresolvedModels[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) await _loop1();\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;\n try {\n var _loop2 = function() {\n var model = _step3.value;\n if (model.hasCRUD) mutationCount += CRUD_MUTATION_NAMES.length;\n mutationCount += model.custom.filter(function(m) {\n return !model.hasCRUD || !CRUD_MUTATION_NAMES.some(function(name) {\n return name === m.name;\n });\n }).length;\n };\n for (var _iterator3 = allModelMutations[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) _loop2();\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n if (allModelMutations.length > 0) {\n var mutationsChanged = writeFileIfChanged(resolve(generatedDir, \"syncedMutations.ts\"), generateSyncedMutationsFile(allModelMutations));\n if (mutationsChanged) filesChanged++;\n }\n if (filesChanged > 0 && !silent) {\n console.info(`\\u2713 ${modelNamespaces.length} models (${filesWithSchema.length} schemas)${queryCount ? `, ${queryCount} queries` : \"\"}${mutationCount ? `, ${mutationCount} mutations` : \"\"}`);\n }\n if (filesChanged > 0 && after) {\n var { execSync } = await import(\"child_process\");\n try {\n execSync(after, {\n stdio: \"inherit\",\n env: {\n ...process.env,\n ON_ZERO_GENERATED_DIR: generatedDir\n }\n });\n var outputHashes = Object.fromEntries(Object.keys(generateCache).filter(function(filePath2) {\n return filePath2.startsWith(generatedDir);\n }).map(function(filePath2) {\n return [\n filePath2,\n hash(readFileSync(filePath2, \"utf-8\"))\n ];\n }));\n Object.assign(generateCache, outputHashes);\n } catch (err) {\n if (!silent) console.error(`Error running after command: ${err}`);\n }\n }\n generateCache.__generatorVersion = GENERATOR_CACHE_VERSION;\n generateCache.__configPath = configPath;\n generateCache.__layoutInputs = JSON.stringify({\n sourceRoots: layout.sourceRoots,\n metadataPaths: layout.metadataPaths\n });\n generateCache.__inputHash = inputHash;\n generateCache.__counts = JSON.stringify({\n modelCount: modelNamespaces.length,\n schemaCount: filesWithSchema.length,\n queryCount,\n mutationCount\n });\n saveCache();\n return {\n filesChanged,\n modelCount: modelNamespaces.length,\n schemaCount: filesWithSchema.length,\n queryCount,\n mutationCount\n };\n}\nasync function watch(options) {\n var { dir, debounce = 1e3 } = options;\n var baseDir = resolve(dir);\n var generatedDir = resolve(baseDir, \"generated\");\n await generate({\n ...options,\n silent: true\n });\n console.info(\"\\u{1F440} watching...\\n\");\n var chokidar = await import(\"chokidar\");\n var debounceTimer = null;\n var debouncedRegenerate = function debouncedRegenerate2(path, event) {\n if (debounceTimer) clearTimeout(debounceTimer);\n console.info(`\n${event} ${path}`);\n debounceTimer = setTimeout(function() {\n generate({\n ...options,\n silent: false\n });\n }, debounce);\n };\n var databaseDir = resolve(dirname(baseDir), \"database\");\n var project = await loadGeneratorProject(baseDir, false, options.tsconfig);\n var layout;\n try {\n layout = discoverDataLayout(project, baseDir, options.config ? resolve(options.config) : void 0);\n } finally {\n await project.close();\n }\n var watcher = chokidar.watch([\n .../* @__PURE__ */ new Set([\n ...layout.sourceRoots,\n ...options.tsconfig ? [\n resolve(options.tsconfig)\n ] : [],\n ...existsSync(databaseDir) ? [\n databaseDir\n ] : []\n ])\n ], {\n persistent: true,\n ignoreInitial: true,\n ignored: [\n generatedDir,\n /node_modules/\n ]\n });\n watcher.on(\"change\", function(path) {\n return debouncedRegenerate(path, \"\\u{1F4DD}\");\n });\n watcher.on(\"add\", function(path) {\n return debouncedRegenerate(path, \"\\u2795\");\n });\n watcher.on(\"unlink\", function(path) {\n return debouncedRegenerate(path, \"\\u{1F5D1}\\uFE0F \");\n });\n return watcher;\n}\nexport {\n deriveDataMembership,\n generate,\n generateDrizzleSchemaFile,\n generateDrizzleSchemaInputFile,\n watch\n};\n//# sourceMappingURL=generate.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ import { runInNewContext } from "node:vm";
|
|
|
5
5
|
import * as v from "valibot";
|
|
6
6
|
import { afterEach, beforeEach, describe, expect, test, vi } from "vitest";
|
|
7
7
|
import { deriveDataMembership, generate, generateDrizzleSchemaInputFile } from "./generate.mjs";
|
|
8
|
+
import { createNativeTypeScriptProject } from "./native-typescript.mjs";
|
|
8
9
|
const testDir = join(tmpdir(), "on-zero-test-" + Date.now());
|
|
9
10
|
function writeFileSync(path, content) {
|
|
10
11
|
mkdirSync(dirname(path), {
|
|
@@ -25,6 +26,49 @@ afterEach(() => {
|
|
|
25
26
|
});
|
|
26
27
|
});
|
|
27
28
|
describe("generate", () => {
|
|
29
|
+
test("scopes generation to its project and keeps explicit ambient argument types", async () => {
|
|
30
|
+
const dataDir = join(testDir, "data");
|
|
31
|
+
const sourcePath = join(dataDir, "post/mutations.ts");
|
|
32
|
+
const tsconfig = join(testDir, "tsconfig.generate.json");
|
|
33
|
+
const ambient = join(testDir, "ambient.d.ts");
|
|
34
|
+
const unrelated = join(testDir, "application.ts");
|
|
35
|
+
writeFileSync(join(testDir, "tsconfig.json"), JSON.stringify({
|
|
36
|
+
include: ["**/*.ts"]
|
|
37
|
+
}));
|
|
38
|
+
writeFileSync(tsconfig, JSON.stringify({
|
|
39
|
+
extends: "./tsconfig.json",
|
|
40
|
+
include: ["data/**/*.ts", "ambient.d.ts"]
|
|
41
|
+
}));
|
|
42
|
+
writeFileSync(ambient, "type ScopedArgs = { count: number }");
|
|
43
|
+
writeFileSync(unrelated, "export const application = 1");
|
|
44
|
+
writeFileSync(sourcePath, `
|
|
45
|
+
export const schema = table('post').columns({ id: string() }).primaryKey('id')
|
|
46
|
+
export const mutate = mutations(schema, permission, {
|
|
47
|
+
publish: async (ctx, args: ScopedArgs) => {},
|
|
48
|
+
})
|
|
49
|
+
`);
|
|
50
|
+
const project = await createNativeTypeScriptProject(dataDir, [sourcePath], {
|
|
51
|
+
tsconfig
|
|
52
|
+
});
|
|
53
|
+
const dependencies = await project.sourceFilePaths();
|
|
54
|
+
await project.close();
|
|
55
|
+
expect(dependencies).toContain(ambient);
|
|
56
|
+
expect(dependencies).not.toContain(unrelated);
|
|
57
|
+
await generate({
|
|
58
|
+
dir: dataDir,
|
|
59
|
+
tsconfig,
|
|
60
|
+
silent: true
|
|
61
|
+
});
|
|
62
|
+
const outputPath = join(dataDir, "generated/syncedMutations.ts");
|
|
63
|
+
expect(readFileSync(outputPath, "utf8")).toContain("count: v.number()");
|
|
64
|
+
writeFileSync(ambient, "type ScopedArgs = { count: string }");
|
|
65
|
+
await generate({
|
|
66
|
+
dir: dataDir,
|
|
67
|
+
tsconfig,
|
|
68
|
+
silent: true
|
|
69
|
+
});
|
|
70
|
+
expect(readFileSync(outputPath, "utf8")).toContain("count: v.string()");
|
|
71
|
+
});
|
|
28
72
|
test("runs after command when files change", async () => {
|
|
29
73
|
writeFileSync(join(testDir, "post/mutations.ts"), `export const schema = table('post', { id: string() })`);
|
|
30
74
|
const markerFile = join(testDir, "after-ran");
|
|
@@ -49,6 +93,109 @@ describe("generate", () => {
|
|
|
49
93
|
});
|
|
50
94
|
expect(second.filesChanged).toBe(0);
|
|
51
95
|
});
|
|
96
|
+
test("refreshes validators when a transitive imported union changes", async () => {
|
|
97
|
+
const dataDir = join(testDir, "data");
|
|
98
|
+
const kindsPath = join(testDir, "protocol/kinds.ts");
|
|
99
|
+
writeFileSync(kindsPath, `export type Kind = 'send'`);
|
|
100
|
+
writeFileSync(join(testDir, "protocol/index.ts"), `export type { Kind } from './kinds'`);
|
|
101
|
+
writeFileSync(join(dataDir, "command/mutations.ts"), `import type { Kind } from '../../protocol'
|
|
102
|
+
export const schema = table('command').columns({ id: string() }).primaryKey('id')
|
|
103
|
+
export const mutate = mutations(schema, permission, {
|
|
104
|
+
dispatch: async (ctx, args: { kind: Kind }) => {},
|
|
105
|
+
})`);
|
|
106
|
+
const validator = () => {
|
|
107
|
+
const context = {
|
|
108
|
+
v,
|
|
109
|
+
exports: {}
|
|
110
|
+
};
|
|
111
|
+
runInNewContext(readFileSync(join(dataDir, "generated/syncedMutations.ts"), "utf8").replace(/^import .*$/m, "").replace("export const", "exports.mutationValidators ="), context);
|
|
112
|
+
return context.exports.mutationValidators.command.dispatch;
|
|
113
|
+
};
|
|
114
|
+
await generate({
|
|
115
|
+
dir: dataDir,
|
|
116
|
+
silent: true
|
|
117
|
+
});
|
|
118
|
+
expect(v.safeParse(validator(), {
|
|
119
|
+
kind: "send"
|
|
120
|
+
}).success).toBe(true);
|
|
121
|
+
expect(v.safeParse(validator(), {
|
|
122
|
+
kind: "throttle"
|
|
123
|
+
}).success).toBe(false);
|
|
124
|
+
expect((await generate({
|
|
125
|
+
dir: dataDir,
|
|
126
|
+
silent: true
|
|
127
|
+
})).filesChanged).toBe(0);
|
|
128
|
+
writeFileSync(kindsPath, `export type Kind = 'send' | 'throttle'`);
|
|
129
|
+
await generate({
|
|
130
|
+
dir: dataDir,
|
|
131
|
+
silent: true
|
|
132
|
+
});
|
|
133
|
+
expect(v.safeParse(validator(), {
|
|
134
|
+
kind: "throttle"
|
|
135
|
+
}).success).toBe(true);
|
|
136
|
+
expect(v.safeParse(validator(), {
|
|
137
|
+
kind: "unknown"
|
|
138
|
+
}).success).toBe(false);
|
|
139
|
+
expect((await generate({
|
|
140
|
+
dir: dataDir,
|
|
141
|
+
silent: true
|
|
142
|
+
})).filesChanged).toBe(0);
|
|
143
|
+
writeFileSync(kindsPath, `export type Kind = 'throttle'`);
|
|
144
|
+
await generate({
|
|
145
|
+
dir: dataDir,
|
|
146
|
+
silent: true
|
|
147
|
+
});
|
|
148
|
+
expect(v.safeParse(validator(), {
|
|
149
|
+
kind: "send"
|
|
150
|
+
}).success).toBe(false);
|
|
151
|
+
expect(v.safeParse(validator(), {
|
|
152
|
+
kind: "throttle"
|
|
153
|
+
}).success).toBe(true);
|
|
154
|
+
});
|
|
155
|
+
test("validates a type reused by siblings and stops at a cycle", async () => {
|
|
156
|
+
const dataDir = join(testDir, "data");
|
|
157
|
+
writeFileSync(join(dataDir, "command/mutations.ts"), `type Tree = { name: string; children: Tree[] }
|
|
158
|
+
export const schema = table('command').columns({ id: string() }).primaryKey('id')
|
|
159
|
+
export const mutate = mutations(schema, permission, {
|
|
160
|
+
dispatch: async (ctx, args: { a: string[]; b: string[]; nested: { c: string[] }; tree: Tree }) => {},
|
|
161
|
+
})`);
|
|
162
|
+
await generate({
|
|
163
|
+
dir: dataDir,
|
|
164
|
+
silent: true
|
|
165
|
+
});
|
|
166
|
+
const context = {
|
|
167
|
+
v,
|
|
168
|
+
exports: {}
|
|
169
|
+
};
|
|
170
|
+
runInNewContext(readFileSync(join(dataDir, "generated/syncedMutations.ts"), "utf8").replace(/^import .*$/m, "").replace("export const", "exports.mutationValidators ="), context);
|
|
171
|
+
const validator = context.exports.mutationValidators.command.dispatch;
|
|
172
|
+
const tree = {
|
|
173
|
+
name: "root",
|
|
174
|
+
children: [{
|
|
175
|
+
name: "leaf",
|
|
176
|
+
children: []
|
|
177
|
+
}]
|
|
178
|
+
};
|
|
179
|
+
const valid = {
|
|
180
|
+
a: ["x"],
|
|
181
|
+
b: ["y"],
|
|
182
|
+
nested: {
|
|
183
|
+
c: ["z"]
|
|
184
|
+
},
|
|
185
|
+
tree
|
|
186
|
+
};
|
|
187
|
+
expect(v.safeParse(validator, valid).success).toBe(true);
|
|
188
|
+
expect(v.safeParse(validator, {
|
|
189
|
+
...valid,
|
|
190
|
+
b: [1]
|
|
191
|
+
}).success).toBe(false);
|
|
192
|
+
expect(v.safeParse(validator, {
|
|
193
|
+
...valid,
|
|
194
|
+
nested: {
|
|
195
|
+
c: [1]
|
|
196
|
+
}
|
|
197
|
+
}).success).toBe(false);
|
|
198
|
+
});
|
|
52
199
|
test("force regenerates without source changes", async () => {
|
|
53
200
|
writeFileSync(join(testDir, "post/mutations.ts"), `export const schema = table('post', { id: string() })`);
|
|
54
201
|
writeFileSync(join(testDir, "post/queries.ts"), `export const allPosts = () => zero.query.post`);
|