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":["__toCommonJS","mod","__copyProps","__defProp","value","generate_exports","__export","deriveDataMembership","generate","generateDrizzleSchemaFile","generateDrizzleSchemaInputFile","watch","module","exports","import_crypto","require","import_fs","import_path","ts","__toESM","import_async","import_generate_helpers","import_generate_layout","import_native_typescript","hash","hash2","s","createHash","update","digest","GENERATOR_CACHE_VERSION","isGeneratorSourceFile","isGeneratorSourceFile2","name","endsWith","hashInputTree","sourceRoots","generatedDir","parts","seen","Set","walk","walk1","dir","existsSync","entries","readdirSync","withFileTypes","sort","a","b","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","Symbol","iterator","_step2","next","done","entry","full","resolve","isDirectory","isFile","has","add","push","readFileSync","err","return","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","root","join","generateCache","generateCachePath","getCacheDir","process","cwd","nm","cacheDir","mkdirSync","recursive","loadCache","JSON","parse","unused","saveCache","writeFileSync","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","basename","hasCRUD","columns","primaryKeys","custom","extractSchemaColumns","_secondParam_type","paramType","valibotCode","secondParam","_resolvedValibot_get","get","visit","expression","arg","obj","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","colName","initText","colType","parseColumnType","flags","TypeFlags","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","shouldSkipObjectKey","propType","isOptional","SymbolFlags","Optional","val","startsWith","formatObjectKey","isIntersectionType","getPropertiesOfType","isTupleType","typeArgs1","isObjectType","objectFlags","ObjectFlags","Reference","symbol","getSymbol","typeArgs2","props","indexInfo1","serializeColumnBuilder","col","zeroType","expr","serverName","optional","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","collectTypeScriptSourcePaths","dirname","createNativeTypeScriptProject","discoverDataLayout","config","close","generateDrizzleSchemaInputFileWithProject","_layout_metadataPaths_find","relationsPath","metadataPaths","path","relationEntries","source","included","visit1","factory","body","isParenthesizedExpression","tableProperty","table","replace","relations","relationProperty","isPropertyAccessExpression","target","relation","schemaImportPath","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","namespaceImportPath","schemaModules","writeResults","generateModelsFile"],"sources":["../../src/generate.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","generate_exports","deriveDataMembership","generate","generateDrizzleSchemaFile","generateDrizzleSchemaInputFile","watch","module","exports","import_crypto","require","import_fs","import_path","ts","import_async","import_generate_helpers","import_generate_layout","import_native_typescript","_type_of","obj","Symbol","constructor","hash","hash2","s","createHash","update","digest","GENERATOR_CACHE_VERSION","isGeneratorSourceFile","isGeneratorSourceFile2","endsWith","hashInputTree","sourceRoots","generatedDir","dependencyPaths","parts","seen","Set","walk","walk1","dir","existsSync","entries","readdirSync","withFileTypes","sort","a","b","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","iterator","_step2","next","done","entry","full","resolve","isDirectory","isFile","has","add","push","readFileSync","err","return","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","root","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","path","startsWith","join","generateCache","generateCachePath","getCacheDir","process","cwd","nm","cacheDir","mkdirSync","recursive","loadCache","JSON","parse","unused","saveCache","writeFileSync","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","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","basename","hasCRUD","columns","primaryKeys","custom","extractSchemaColumns","_secondParam_type","paramType","valibotCode","secondParam","_resolvedValibot_get","visit","expression","arg","colName","initText","colType","parseColumnType","flags","TypeFlags","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","map","resolveSymbolType","resolveSymbolType2","property","_property_valueDeclaration","symbolType","getTypeOfSymbol","isErrorType","declaration","valueDeclaration","getTypeOfSymbolAtLocation","getDeclaredTypeOfSymbol","objectToValibot","objectToValibot2","props2","shouldSkipObjectKey","propType","isOptional","SymbolFlags","Optional","val","formatObjectKey","isIntersectionType","getPropertiesOfType","isTupleType","typeArgs1","isObjectType","objectFlags","ObjectFlags","Reference","symbol","getSymbol","typeArgs2","props","indexInfo1","serializeColumnBuilder","col","zeroType","expr","serverName","optional","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","collectTypeScriptSourcePaths","dirname","createNativeTypeScriptProject","discoverDataLayout","config","close","generateDrizzleSchemaInputFileWithProject","_layout_metadataPaths_find","relationsPath","metadataPaths","relationEntries","source","included","visit1","factory","body","isParenthesizedExpression","tableProperty","table","replace","relations","relationProperty","isPropertyAccessExpression","relation","schemaImportPath","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","namespaceImportPath","schemaModules","writeResults","generateModelsFile","generateTypesFile","module2","generateTablesFile","generateReadmeFile","membership","drizzleSchema","sqliteSchema","renderDrizzleZeroSqliteSchemaModule","typeToValibot2","parseTypeString","trim","allQueries","filePath2","queryPath","sourceFile2","candidates","exportModifier","_params_","_param_type","projectForFile","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_iterator4","_step12","candidate","resolvedType","console","error","groupedChanged","generateGroupedQueriesFile","syncedChanged","generateSyncedQueriesFile","instancesChanged","generateInstancesFile","queryNames","query","modelNames","aggregateNamespaces","aggregatePath","aggregatesChanged","generateAggregatesFile","allModelMutations","unresolvedModels","namespace","fileBaseName","result","hasUnresolved","baseName","_loop1","modelResolver","resolvedTypes","size","_step4","content2","result2","idx","findIndex","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_loop2","model","_step3","CRUD_MUTATION_NAMES","_iterator3","mutationsChanged","generateSyncedMutationsFile","execSync","stdio","env","ON_ZERO_GENERATED_DIR","outputHashes","assign","debounce","chokidar","debounceTimer","debouncedRegenerate","debouncedRegenerate2","event","clearTimeout","setTimeout","databaseDir","watcher","persistent","ignoreInitial","ignored","on"],"sources":["generate.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar generate_exports = {};\n__export(generate_exports, {\n deriveDataMembership: () => deriveDataMembership,\n generate: () => generate,\n generateDrizzleSchemaFile: () => generateDrizzleSchemaFile,\n generateDrizzleSchemaInputFile: () => generateDrizzleSchemaInputFile,\n watch: () => watch\n});\nmodule.exports = __toCommonJS(generate_exports);\nvar import_crypto = require(\"crypto\");\nvar import_fs = require(\"fs\");\nvar import_path = require(\"path\");\nvar ts = __toESM(require(\"typescript/unstable/ast\"), 1);\nvar import_async = require(\"typescript/unstable/async\");\nvar import_generate_helpers = require(\"./generate-helpers\");\nvar import_generate_layout = require(\"./generate-layout\");\nvar import_native_typescript = require(\"./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 (0, import_crypto.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 (!(0, import_fs.existsSync)(dir)) return;\n var entries = (0, import_fs.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 = (0, import_path.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${(0, import_fs.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}/`) || !(0, import_fs.existsSync)(path)) continue;\n seen.add(path);\n parts.push(`${path}\\0${(0, import_fs.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 = (0, import_path.resolve)(dir, \"node_modules\");\n if ((0, import_fs.existsSync)(nm)) {\n var cacheDir = (0, import_path.resolve)(nm, \".on-zero\");\n if (!(0, import_fs.existsSync)(cacheDir)) {\n (0, import_fs.mkdirSync)(cacheDir, {\n recursive: true\n });\n }\n return cacheDir;\n }\n dir = (0, import_path.resolve)(dir, \"..\");\n }\n return null;\n}\nfunction loadCache() {\n var cacheDir = getCacheDir();\n if (!cacheDir) return;\n generateCachePath = (0, import_path.resolve)(cacheDir, \"generate-cache.json\");\n try {\n generateCache = JSON.parse((0, import_fs.readFileSync)(generateCachePath, \"utf-8\"));\n } catch (unused) {\n generateCache = {};\n }\n}\nfunction saveCache() {\n if (generateCachePath) {\n (0, import_fs.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 = (0, import_fs.readFileSync)(filePath, \"utf-8\");\n } catch (unused) {\n }\n if (onDisk !== null && hash(onDisk) === contentHash) {\n generateCache[filePath] = contentHash;\n return false;\n }\n (0, import_fs.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: (0, import_path.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 = (0, import_generate_helpers.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 & (import_async.TypeFlags.Object | import_async.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 & import_async.TypeFlags.String) return \"v.string()\";\n if (flags & import_async.TypeFlags.Number) return \"v.number()\";\n if (flags & import_async.TypeFlags.Boolean) return \"v.boolean()\";\n if (flags & import_async.TypeFlags.Void || flags & import_async.TypeFlags.Undefined) return \"v.void_()\";\n if (flags & import_async.TypeFlags.Null) return \"v.null_()\";\n if (flags & import_async.TypeFlags.Any || flags & import_async.TypeFlags.Unknown) return \"v.unknown()\";\n if (flags & import_async.TypeFlags.Never) return \"v.never()\";\n if (flags & import_async.TypeFlags.TemplateLiteral) return \"v.string()\";\n if (flags & import_async.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 & import_async.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 & import_async.TypeFlags.Null;\n });\n var hasUndefined = members.some(function(member) {\n return member.flags & (import_async.TypeFlags.Undefined | import_async.TypeFlags.Void);\n });\n var rest = members.filter(function(member) {\n return !(member.flags & (import_async.TypeFlags.Null | import_async.TypeFlags.Undefined | import_async.TypeFlags.Void));\n });\n if (rest.length === 2 && rest.every(function(member) {\n return member.flags & import_async.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 ((0, import_generate_helpers.shouldSkipObjectKey)(name)) continue;\n var propType = await resolveSymbolType(prop);\n var isOptional = Boolean(prop.flags & import_async.SymbolFlags.Optional);\n var val = await recurse(propType);\n if (isOptional && !val.startsWith(\"v.optional(\")) {\n val = `v.optional(${val})`;\n }\n entries.push(`${(0, import_generate_helpers.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 & import_async.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 & import_async.TypeFlags.String) {\n return `v.record(v.string(), ${await recurse(indexInfo1.valueType)})`;\n }\n if (indexInfo1.keyType.flags & import_async.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 = (0, import_native_typescript.collectTypeScriptSourcePaths)([\n baseDir,\n (0, import_path.resolve)((0, import_path.dirname)(baseDir), \"database\")\n ]);\n return (0, import_native_typescript.createNativeTypeScriptProject)(baseDir, sourcePaths, {\n deferSources,\n tsconfig: tsconfig ? (0, import_path.resolve)(tsconfig) : void 0\n });\n}\nasync function deriveDataMembership(options) {\n var baseDir = (0, import_path.resolve)(options.dir);\n var project = await loadGeneratorProject(baseDir, false, options.tsconfig);\n try {\n var layout = (0, import_generate_layout.discoverDataLayout)(project, baseDir, options.config ? (0, import_path.resolve)(options.config) : void 0);\n return dataMembershipFromLayout(layout);\n } finally {\n await project.close();\n }\n}\nasync function generateDrizzleSchemaInputFile(options) {\n var baseDir = (0, import_path.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 = (0, import_path.resolve)(options.dir);\n var layout = (0, import_generate_layout.discoverDataLayout)(project, baseDir, options.config ? (0, import_path.resolve)(options.config) : void 0);\n var tableNames = dataMembershipFromLayout(layout).allTables;\n var relationsPath = (_layout_metadataPaths_find = layout.metadataPaths.find(function(path) {\n return (0, import_path.basename)(path) === \"relations.ts\" && (0, import_path.dirname)(path) === (0, import_path.resolve)((0, import_path.dirname)(baseDir), \"database\");\n })) !== null && _layout_metadataPaths_find !== void 0 ? _layout_metadataPaths_find : layout.metadataPaths.find(function(path) {\n return (0, import_path.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((0, import_path.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 = (0, import_path.resolve)(dir);\n var generatedDir = (0, import_path.resolve)(baseDir, \"generated\");\n if (!(0, import_fs.existsSync)(generatedDir)) {\n (0, import_fs.mkdirSync)(generatedDir, {\n recursive: true\n });\n }\n loadCache();\n var configPath = config ? (0, import_path.resolve)(config) : (0, import_path.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${(0, import_fs.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 = (0, import_path.resolve)((0, import_path.dirname)(baseDir), \"database/schema.ts\");\n var needsDrizzleSchema = (0, import_fs.existsSync)(databaseSchemaPath);\n var externalZeroConfigPath = (0, import_path.resolve)((0, import_path.dirname)(databaseSchemaPath), \"drizzle-zero.config.ts\");\n var externalZeroConfig = (0, import_fs.existsSync)(externalZeroConfigPath) ? (0, import_fs.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((0, import_fs.readFileSync)(cachedPath, \"utf-8\")) === cachedHash;\n } catch (unused) {\n return false;\n }\n }) && (0, import_fs.existsSync)((0, import_path.resolve)(generatedDir, \"models.ts\")) && (!needsDrizzleSchema || (0, import_fs.existsSync)((0, import_path.resolve)(generatedDir, \"drizzleSchema.ts\"))) && (!needsSqliteZeroSchema || (0, import_fs.existsSync)((0, import_path.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 = (0, import_generate_layout.discoverDataLayout)(project, baseDir, config ? (0, import_path.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 (0, import_fs.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: (0, import_generate_layout.namespaceImportPath)(baseDir, namespace2.modelPath)\n };\n });\n var schemaModules = filesWithSchema.map(function(namespace2) {\n return {\n name: namespace2.name,\n importPath: (0, import_generate_layout.namespaceImportPath)(baseDir, namespace2.modelPath)\n };\n });\n var writeResults = [\n writeFileIfChanged((0, import_path.resolve)(generatedDir, \"models.ts\"), (0, import_generate_helpers.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((0, import_path.resolve)(generatedDir, \"types.ts\"), (0, import_generate_helpers.generateTypesFile)(schemaModules.map(function(module2) {\n return module2.name;\n }))),\n writeFileIfChanged((0, import_path.resolve)(generatedDir, \"tables.ts\"), (0, import_generate_helpers.generateTablesFile)(schemaModules))\n ] : [],\n writeFileIfChanged((0, import_path.resolve)(generatedDir, \"README.md\"), (0, import_generate_helpers.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((0, import_path.resolve)(generatedDir, \"drizzleSchema.ts\"), drizzleSchema)) {\n filesChanged++;\n }\n if (needsSqliteZeroSchema) {\n var sqliteSchema = (0, import_generate_helpers.renderDrizzleZeroSqliteSchemaModule)({\n importPath: \"./drizzleSchema\",\n tableNames: membership.allTables\n });\n if (writeFileIfChanged((0, import_path.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 (0, import_generate_helpers.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: (0, import_generate_layout.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((0, import_path.resolve)(generatedDir, \"groupedQueries.ts\"), (0, import_generate_helpers.generateGroupedQueriesFile)(allQueries));\n var syncedChanged = writeFileIfChanged((0, import_path.resolve)(generatedDir, \"syncedQueries.ts\"), (0, import_generate_helpers.generateSyncedQueriesFile)(allQueries));\n if (groupedChanged) filesChanged++;\n if (syncedChanged) filesChanged++;\n var instancesChanged = writeFileIfChanged((0, import_path.resolve)(generatedDir, \"instances.ts\"), (0, import_generate_helpers.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((0, import_path.resolve)(generatedDir, \"aggregates.ts\"), (0, import_generate_helpers.generateAggregatesFile)(aggregateNamespaces.map(function(namespace2) {\n return {\n name: namespace2.name,\n importPath: (0, import_generate_layout.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 = (0, import_fs.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 = (0, import_fs.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 += import_generate_helpers.CRUD_MUTATION_NAMES.length;\n mutationCount += model.custom.filter(function(m) {\n return !model.hasCRUD || !import_generate_helpers.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((0, import_path.resolve)(generatedDir, \"syncedMutations.ts\"), (0, import_generate_helpers.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((0, import_fs.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 = (0, import_path.resolve)(dir);\n var generatedDir = (0, import_path.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 = (0, import_path.resolve)((0, import_path.dirname)(baseDir), \"database\");\n var project = await loadGeneratorProject(baseDir, false, options.tsconfig);\n var layout;\n try {\n layout = (0, import_generate_layout.discoverDataLayout)(project, baseDir, options.config ? (0, import_path.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 (0, import_path.resolve)(options.tsconfig)\n ] : [],\n ...(0, import_fs.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}\n//# sourceMappingURL=generate.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,6 +29,7 @@ var import_node_vm = require("node:vm");
|
|
|
29
29
|
var v = __toESM(require("valibot"), 1);
|
|
30
30
|
var import_vitest = require("vitest");
|
|
31
31
|
var import_generate = require("./generate.cjs");
|
|
32
|
+
var import_native_typescript = require("./native-typescript.cjs");
|
|
32
33
|
const testDir = (0, import_node_path.join)((0, import_node_os.tmpdir)(), "on-zero-test-" + Date.now());
|
|
33
34
|
function writeFileSync(path, content) {
|
|
34
35
|
(0, import_node_fs.mkdirSync)((0, import_node_path.dirname)(path), {
|
|
@@ -49,6 +50,49 @@ function writeFileSync(path, content) {
|
|
|
49
50
|
});
|
|
50
51
|
});
|
|
51
52
|
(0, import_vitest.describe)("generate", () => {
|
|
53
|
+
(0, import_vitest.test)("scopes generation to its project and keeps explicit ambient argument types", async () => {
|
|
54
|
+
const dataDir = (0, import_node_path.join)(testDir, "data");
|
|
55
|
+
const sourcePath = (0, import_node_path.join)(dataDir, "post/mutations.ts");
|
|
56
|
+
const tsconfig = (0, import_node_path.join)(testDir, "tsconfig.generate.json");
|
|
57
|
+
const ambient = (0, import_node_path.join)(testDir, "ambient.d.ts");
|
|
58
|
+
const unrelated = (0, import_node_path.join)(testDir, "application.ts");
|
|
59
|
+
writeFileSync((0, import_node_path.join)(testDir, "tsconfig.json"), JSON.stringify({
|
|
60
|
+
include: ["**/*.ts"]
|
|
61
|
+
}));
|
|
62
|
+
writeFileSync(tsconfig, JSON.stringify({
|
|
63
|
+
extends: "./tsconfig.json",
|
|
64
|
+
include: ["data/**/*.ts", "ambient.d.ts"]
|
|
65
|
+
}));
|
|
66
|
+
writeFileSync(ambient, "type ScopedArgs = { count: number }");
|
|
67
|
+
writeFileSync(unrelated, "export const application = 1");
|
|
68
|
+
writeFileSync(sourcePath, `
|
|
69
|
+
export const schema = table('post').columns({ id: string() }).primaryKey('id')
|
|
70
|
+
export const mutate = mutations(schema, permission, {
|
|
71
|
+
publish: async (ctx, args: ScopedArgs) => {},
|
|
72
|
+
})
|
|
73
|
+
`);
|
|
74
|
+
const project = await (0, import_native_typescript.createNativeTypeScriptProject)(dataDir, [sourcePath], {
|
|
75
|
+
tsconfig
|
|
76
|
+
});
|
|
77
|
+
const dependencies = await project.sourceFilePaths();
|
|
78
|
+
await project.close();
|
|
79
|
+
(0, import_vitest.expect)(dependencies).toContain(ambient);
|
|
80
|
+
(0, import_vitest.expect)(dependencies).not.toContain(unrelated);
|
|
81
|
+
await (0, import_generate.generate)({
|
|
82
|
+
dir: dataDir,
|
|
83
|
+
tsconfig,
|
|
84
|
+
silent: true
|
|
85
|
+
});
|
|
86
|
+
const outputPath = (0, import_node_path.join)(dataDir, "generated/syncedMutations.ts");
|
|
87
|
+
(0, import_vitest.expect)((0, import_node_fs.readFileSync)(outputPath, "utf8")).toContain("count: v.number()");
|
|
88
|
+
writeFileSync(ambient, "type ScopedArgs = { count: string }");
|
|
89
|
+
await (0, import_generate.generate)({
|
|
90
|
+
dir: dataDir,
|
|
91
|
+
tsconfig,
|
|
92
|
+
silent: true
|
|
93
|
+
});
|
|
94
|
+
(0, import_vitest.expect)((0, import_node_fs.readFileSync)(outputPath, "utf8")).toContain("count: v.string()");
|
|
95
|
+
});
|
|
52
96
|
(0, import_vitest.test)("runs after command when files change", async () => {
|
|
53
97
|
writeFileSync((0, import_node_path.join)(testDir, "post/mutations.ts"), `export const schema = table('post', { id: string() })`);
|
|
54
98
|
const markerFile = (0, import_node_path.join)(testDir, "after-ran");
|
|
@@ -73,6 +117,109 @@ function writeFileSync(path, content) {
|
|
|
73
117
|
});
|
|
74
118
|
(0, import_vitest.expect)(second.filesChanged).toBe(0);
|
|
75
119
|
});
|
|
120
|
+
(0, import_vitest.test)("refreshes validators when a transitive imported union changes", async () => {
|
|
121
|
+
const dataDir = (0, import_node_path.join)(testDir, "data");
|
|
122
|
+
const kindsPath = (0, import_node_path.join)(testDir, "protocol/kinds.ts");
|
|
123
|
+
writeFileSync(kindsPath, `export type Kind = 'send'`);
|
|
124
|
+
writeFileSync((0, import_node_path.join)(testDir, "protocol/index.ts"), `export type { Kind } from './kinds'`);
|
|
125
|
+
writeFileSync((0, import_node_path.join)(dataDir, "command/mutations.ts"), `import type { Kind } from '../../protocol'
|
|
126
|
+
export const schema = table('command').columns({ id: string() }).primaryKey('id')
|
|
127
|
+
export const mutate = mutations(schema, permission, {
|
|
128
|
+
dispatch: async (ctx, args: { kind: Kind }) => {},
|
|
129
|
+
})`);
|
|
130
|
+
const validator = () => {
|
|
131
|
+
const context = {
|
|
132
|
+
v,
|
|
133
|
+
exports: {}
|
|
134
|
+
};
|
|
135
|
+
(0, import_node_vm.runInNewContext)((0, import_node_fs.readFileSync)((0, import_node_path.join)(dataDir, "generated/syncedMutations.ts"), "utf8").replace(/^import .*$/m, "").replace("export const", "exports.mutationValidators ="), context);
|
|
136
|
+
return context.exports.mutationValidators.command.dispatch;
|
|
137
|
+
};
|
|
138
|
+
await (0, import_generate.generate)({
|
|
139
|
+
dir: dataDir,
|
|
140
|
+
silent: true
|
|
141
|
+
});
|
|
142
|
+
(0, import_vitest.expect)(v.safeParse(validator(), {
|
|
143
|
+
kind: "send"
|
|
144
|
+
}).success).toBe(true);
|
|
145
|
+
(0, import_vitest.expect)(v.safeParse(validator(), {
|
|
146
|
+
kind: "throttle"
|
|
147
|
+
}).success).toBe(false);
|
|
148
|
+
(0, import_vitest.expect)((await (0, import_generate.generate)({
|
|
149
|
+
dir: dataDir,
|
|
150
|
+
silent: true
|
|
151
|
+
})).filesChanged).toBe(0);
|
|
152
|
+
writeFileSync(kindsPath, `export type Kind = 'send' | 'throttle'`);
|
|
153
|
+
await (0, import_generate.generate)({
|
|
154
|
+
dir: dataDir,
|
|
155
|
+
silent: true
|
|
156
|
+
});
|
|
157
|
+
(0, import_vitest.expect)(v.safeParse(validator(), {
|
|
158
|
+
kind: "throttle"
|
|
159
|
+
}).success).toBe(true);
|
|
160
|
+
(0, import_vitest.expect)(v.safeParse(validator(), {
|
|
161
|
+
kind: "unknown"
|
|
162
|
+
}).success).toBe(false);
|
|
163
|
+
(0, import_vitest.expect)((await (0, import_generate.generate)({
|
|
164
|
+
dir: dataDir,
|
|
165
|
+
silent: true
|
|
166
|
+
})).filesChanged).toBe(0);
|
|
167
|
+
writeFileSync(kindsPath, `export type Kind = 'throttle'`);
|
|
168
|
+
await (0, import_generate.generate)({
|
|
169
|
+
dir: dataDir,
|
|
170
|
+
silent: true
|
|
171
|
+
});
|
|
172
|
+
(0, import_vitest.expect)(v.safeParse(validator(), {
|
|
173
|
+
kind: "send"
|
|
174
|
+
}).success).toBe(false);
|
|
175
|
+
(0, import_vitest.expect)(v.safeParse(validator(), {
|
|
176
|
+
kind: "throttle"
|
|
177
|
+
}).success).toBe(true);
|
|
178
|
+
});
|
|
179
|
+
(0, import_vitest.test)("validates a type reused by siblings and stops at a cycle", async () => {
|
|
180
|
+
const dataDir = (0, import_node_path.join)(testDir, "data");
|
|
181
|
+
writeFileSync((0, import_node_path.join)(dataDir, "command/mutations.ts"), `type Tree = { name: string; children: Tree[] }
|
|
182
|
+
export const schema = table('command').columns({ id: string() }).primaryKey('id')
|
|
183
|
+
export const mutate = mutations(schema, permission, {
|
|
184
|
+
dispatch: async (ctx, args: { a: string[]; b: string[]; nested: { c: string[] }; tree: Tree }) => {},
|
|
185
|
+
})`);
|
|
186
|
+
await (0, import_generate.generate)({
|
|
187
|
+
dir: dataDir,
|
|
188
|
+
silent: true
|
|
189
|
+
});
|
|
190
|
+
const context = {
|
|
191
|
+
v,
|
|
192
|
+
exports: {}
|
|
193
|
+
};
|
|
194
|
+
(0, import_node_vm.runInNewContext)((0, import_node_fs.readFileSync)((0, import_node_path.join)(dataDir, "generated/syncedMutations.ts"), "utf8").replace(/^import .*$/m, "").replace("export const", "exports.mutationValidators ="), context);
|
|
195
|
+
const validator = context.exports.mutationValidators.command.dispatch;
|
|
196
|
+
const tree = {
|
|
197
|
+
name: "root",
|
|
198
|
+
children: [{
|
|
199
|
+
name: "leaf",
|
|
200
|
+
children: []
|
|
201
|
+
}]
|
|
202
|
+
};
|
|
203
|
+
const valid = {
|
|
204
|
+
a: ["x"],
|
|
205
|
+
b: ["y"],
|
|
206
|
+
nested: {
|
|
207
|
+
c: ["z"]
|
|
208
|
+
},
|
|
209
|
+
tree
|
|
210
|
+
};
|
|
211
|
+
(0, import_vitest.expect)(v.safeParse(validator, valid).success).toBe(true);
|
|
212
|
+
(0, import_vitest.expect)(v.safeParse(validator, {
|
|
213
|
+
...valid,
|
|
214
|
+
b: [1]
|
|
215
|
+
}).success).toBe(false);
|
|
216
|
+
(0, import_vitest.expect)(v.safeParse(validator, {
|
|
217
|
+
...valid,
|
|
218
|
+
nested: {
|
|
219
|
+
c: [1]
|
|
220
|
+
}
|
|
221
|
+
}).success).toBe(false);
|
|
222
|
+
});
|
|
76
223
|
(0, import_vitest.test)("force regenerates without source changes", async () => {
|
|
77
224
|
writeFileSync((0, import_node_path.join)(testDir, "post/mutations.ts"), `export const schema = table('post', { id: string() })`);
|
|
78
225
|
writeFileSync((0, import_node_path.join)(testDir, "post/queries.ts"), `export const allPosts = () => zero.query.post`);
|