{"_id":"@deepbrainspace/nx-surrealdb","_rev":"14-c28882e24e7df4871b817c1451cc3289","name":"@deepbrainspace/nx-surrealdb","dist-tags":{"beta":"0.1.1","latest":"0.4.1"},"versions":{"0.1.1":{"name":"@deepbrainspace/nx-surrealdb","version":"0.1.1","keywords":["nx","plugin","surrealdb","migrations","database"],"license":"MIT","_id":"@deepbrainspace/nx-surrealdb@0.1.1","maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"homepage":"https://github.com/deepbrainspace/nx-plugins#readme","bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"dist":{"shasum":"811ee137b1b406ba089e54dd44e14d5b21abfdb5","tarball":"https://registry.npmjs.org/@deepbrainspace/nx-surrealdb/-/nx-surrealdb-0.1.1.tgz","fileCount":82,"integrity":"sha512-NkB96rHIuk6+cgqfz6XSA7lPiVCEEKt4b7k3bHcad55cF/Ax4t1bpeO6rJH5IRgoo+HZloi/QK1Ea+NNDpJ4+A==","signatures":[{"sig":"MEUCIQCJ1kvthwCzUHJoGmxnBCWZOPVzwPVsyzJNj5SMgj6/1AIgX6q+CEmDFOWcGsjTWXgFr8MB3rHQgqSq1ZEP1uQr8DE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":405084},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","gitHead":"4378425715963eaea9a1313039a88fdd9ceb8741","scripts":{"lint":"nx lint nx-surrealdb","test":"nx test nx-surrealdb","build":"nx build nx-surrealdb","publish":"pnpm publish"},"_npmUser":{"name":"wizardsupreme","email":"smn7818@gmail.com"},"executors":"./executors.json","generators":"./generators.json","repository":{"url":"git+https://github.com/deepbrainspace/nx-plugins.git","type":"git","directory":"packages/nx-surrealdb"},"_npmVersion":"10.2.4","description":"NX plugin for SurrealDB migrations with modular architecture","directories":{},"_nodeVersion":"20.11.1","dependencies":{"tslib":"^2.8.1","dotenv":"^16.5.0","surrealdb":"^1.3.2","@nx/devkit":"^21.2.0","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.8.0","globals":"^15.0.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","@nx/jest":"^21.2.0","@eslint/js":"^9.8.0","@nx/eslint":"^21.2.0","@nx/plugin":"^21.2.0","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/node":"^24.0.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-surrealdb_0.1.1_1750070861038_0.07618577315744601","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@deepbrainspace/nx-surrealdb","version":"0.1.2","keywords":["nx","plugin","surrealdb","migrations","database"],"license":"MIT","_id":"@deepbrainspace/nx-surrealdb@0.1.2","maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"homepage":"https://github.com/deepbrainspace/nx-plugins#readme","bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"dist":{"shasum":"9ece7e300cd527a719f8fdf264dae4e14b578f9b","tarball":"https://registry.npmjs.org/@deepbrainspace/nx-surrealdb/-/nx-surrealdb-0.1.2.tgz","fileCount":82,"integrity":"sha512-P9+sJimwWVvUI7r36pdAVKe9VQWXgELRq8rtJAVic3L30Jgq1O56ajxYAd7nRYUEdwY8i7OrSN0MeQwZu3OUPA==","signatures":[{"sig":"MEUCIFTK9qe9ymdI7T5yHZ/QqkfHS5pJW16GFYsxv7GCWYbJAiEAqVpyAJyx7m3EHsuAHiPsJOCdCOtqfY4D25hb/chyl4g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":408882},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","gitHead":"ec33acbfee3a82bb14c622e0b364151df901aeff","scripts":{"lint":"nx lint nx-surrealdb","test":"nx test nx-surrealdb","build":"nx build nx-surrealdb","publish":"pnpm publish --no-git-checks"},"_npmUser":{"name":"wizardsupreme","email":"smn7818@gmail.com"},"executors":"./executors.json","generators":"./generators.json","repository":{"url":"git+https://github.com/deepbrainspace/nx-plugins.git","type":"git","directory":"packages/nx-surrealdb"},"_npmVersion":"10.8.2","description":"NX plugin for SurrealDB migrations with modular architecture","directories":{},"_nodeVersion":"20.19.2","dependencies":{"tslib":"^2.8.1","dotenv":"^16.5.0","surrealdb":"^1.3.2","@nx/devkit":"^21.2.0","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.8.0","globals":"^15.0.0","ts-jest":"^29.1.2","ts-node":"^10.9.1","@nx/jest":"^21.2.0","@eslint/js":"^9.8.0","@nx/eslint":"^21.2.0","@nx/plugin":"^21.2.0","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/node":"^24.0.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-surrealdb_0.1.2_1750102840246_0.7389272331532881","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@deepbrainspace/nx-surrealdb","version":"0.1.3","keywords":["nx","plugin","surrealdb","migrations","database"],"license":"MIT","_id":"@deepbrainspace/nx-surrealdb@0.1.3","maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"homepage":"https://github.com/deepbrainspace/nx-plugins#readme","bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"dist":{"shasum":"205e6a6e7e41592fbaf17951cac7e6adeac9ec58","tarball":"https://registry.npmjs.org/@deepbrainspace/nx-surrealdb/-/nx-surrealdb-0.1.3.tgz","fileCount":91,"integrity":"sha512-nj2PwgjW59Gh19OTovWboVa2RP/zKWCn/uK3cNY1FbQ32Kx+qA8gowPAOxSxm/W4KLRZfK58B/Zp8rDNeWVTBw==","signatures":[{"sig":"MEYCIQDiofP2SgVPzT4ic9lzKfV8Wb7IxQFNDNeIyTuasf9cJwIhAKcnPGwwgctbmIgHjZBLlSnXwrydP541Fbci2Wxn0TxE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":785868},"main":"./src/index.js","_from":"file:deepbrainspace-nx-surrealdb-0.1.3.tgz","types":"./src/index.d.ts","scripts":{"lint":"nx lint nx-surrealdb","test":"nx test nx-surrealdb","build":"nx build nx-surrealdb"},"_npmUser":{"name":"wizardsupreme","actor":{"name":"wizardsupreme","type":"user","email":"smn7818@gmail.com"},"email":"smn7818@gmail.com"},"_resolved":"/tmp/f334356f09b3b34ac32d9cffcf845463/deepbrainspace-nx-surrealdb-0.1.3.tgz","executors":"./executors.json","_integrity":"sha512-nj2PwgjW59Gh19OTovWboVa2RP/zKWCn/uK3cNY1FbQ32Kx+qA8gowPAOxSxm/W4KLRZfK58B/Zp8rDNeWVTBw==","generators":"./generators.json","repository":{"url":"git+https://github.com/deepbrainspace/nx-plugins.git","type":"git","directory":"packages/nx-surrealdb"},"_npmVersion":"10.9.2","description":"NX plugin for SurrealDB migrations with modular architecture","directories":{},"_nodeVersion":"22.13.0","dependencies":{"tslib":"^2.8.1","dotenv":"^16.5.0","surrealdb":"^1.3.2","@nx/devkit":"^21.2.0","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.8.0","globals":"^15.0.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","@nx/jest":"^21.2.0","@eslint/js":"^9.8.0","@nx/eslint":"^21.2.0","@nx/plugin":"^21.2.0","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/node":"^24.0.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-surrealdb_0.1.3_1750170916602_0.35649444050489554","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@deepbrainspace/nx-surrealdb","version":"0.1.4","keywords":["nx","plugin","surrealdb","migrations","database"],"license":"MIT","_id":"@deepbrainspace/nx-surrealdb@0.1.4","maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"homepage":"https://github.com/deepbrainspace/nx-plugins#readme","bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"dist":{"shasum":"20e1a90d89088fdd21d89b9250dfbbca4de5b118","tarball":"https://registry.npmjs.org/@deepbrainspace/nx-surrealdb/-/nx-surrealdb-0.1.4.tgz","fileCount":91,"integrity":"sha512-bzrZMRDiiuyTGKoy6dHbzN+gFNBE2utJD1MIgvO4pOgkC3kPZqnqdAeO9a+0ValsS8j/8JibjYG9D2nyp9MVBQ==","signatures":[{"sig":"MEQCIGs5+qosR5CiDIvr9x/bL8jvS1Zh5TwwWZwyHgCgmHqHAiBhchw3JV1yRvHWrB4nXk4f73E85qAvRvlKcxSOontizQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":785822},"main":"./src/index.js","_from":"file:deepbrainspace-nx-surrealdb-0.1.4.tgz","types":"./src/index.d.ts","scripts":{"lint":"nx lint nx-surrealdb","test":"nx test nx-surrealdb","build":"nx build nx-surrealdb"},"_npmUser":{"name":"wizardsupreme","actor":{"name":"wizardsupreme","type":"user","email":"smn7818@gmail.com"},"email":"smn7818@gmail.com"},"_resolved":"/tmp/2514775d53f4b0327a3e7b7bd34ea8a4/deepbrainspace-nx-surrealdb-0.1.4.tgz","executors":"./executors.json","_integrity":"sha512-bzrZMRDiiuyTGKoy6dHbzN+gFNBE2utJD1MIgvO4pOgkC3kPZqnqdAeO9a+0ValsS8j/8JibjYG9D2nyp9MVBQ==","generators":"./generators.json","repository":{"url":"git+https://github.com/deepbrainspace/nx-plugins.git","type":"git","directory":"packages/nx-surrealdb"},"_npmVersion":"10.9.2","description":"NX plugin for SurrealDB migrations with modular architecture","directories":{},"_nodeVersion":"22.13.0","dependencies":{"tslib":"^2.8.1","dotenv":"^16.5.0","surrealdb":"^1.3.2","@nx/devkit":"^21.2.0","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.8.0","globals":"^15.0.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","@nx/jest":"^21.2.0","@eslint/js":"^9.8.0","@nx/eslint":"^21.2.0","@nx/plugin":"^21.2.0","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/node":"^24.0.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-surrealdb_0.1.4_1750171369083_0.46498380473868894","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@deepbrainspace/nx-surrealdb","version":"0.2.0","keywords":["nx","plugin","surrealdb","migrations","database"],"license":"MIT","_id":"@deepbrainspace/nx-surrealdb@0.2.0","maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"homepage":"https://github.com/deepbrainspace/nx-plugins#readme","bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"dist":{"shasum":"d0d50d6b9e571c7ad93bfd9c702ff6a6a636bee3","tarball":"https://registry.npmjs.org/@deepbrainspace/nx-surrealdb/-/nx-surrealdb-0.2.0.tgz","fileCount":103,"integrity":"sha512-+RXz4J8tg5iKRO6TmmNSXbydynsAQ2iqTy+0cW1PjR9smXlsRW+Bi422pMX2AVCCGpYMbnwwdDlqOHsuZssWoA==","signatures":[{"sig":"MEYCIQCgt3ervQ8gLhen0tyLANUzam7pWmY0xBRu3TJHrHRY/QIhAP2TIqCuMQL4pyNga2nE0mLJ3dl3P4UINf4NvKk+BUIm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":627396},"main":"./src/index.js","_from":"file:deepbrainspace-nx-surrealdb-0.2.0.tgz","types":"./src/index.d.ts","scripts":{"lint":"nx lint nx-surrealdb","test":"nx test nx-surrealdb","build":"nx build nx-surrealdb"},"_npmUser":{"name":"wizardsupreme","actor":{"name":"wizardsupreme","type":"user","email":"smn7818@gmail.com"},"email":"smn7818@gmail.com"},"_resolved":"/tmp/8147d0077d487e68631d0ccce180d38e/deepbrainspace-nx-surrealdb-0.2.0.tgz","executors":"./executors.json","_integrity":"sha512-+RXz4J8tg5iKRO6TmmNSXbydynsAQ2iqTy+0cW1PjR9smXlsRW+Bi422pMX2AVCCGpYMbnwwdDlqOHsuZssWoA==","generators":"./generators.json","repository":{"url":"git+https://github.com/deepbrainspace/nx-plugins.git","type":"git","directory":"packages/nx-surrealdb"},"_npmVersion":"10.9.2","description":"NX plugin for SurrealDB migrations with modular architecture","directories":{},"_nodeVersion":"22.13.0","dependencies":{"tslib":"^2.8.1","dotenv":"^16.5.0","surrealdb":"^1.3.2","@nx/devkit":"^21.2.0","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.8.0","globals":"^15.0.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","@nx/jest":"^21.2.0","@eslint/js":"^9.8.0","@nx/eslint":"^21.2.0","@nx/plugin":"^21.2.0","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/node":"^24.0.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-surrealdb_0.2.0_1750431504829_0.7232879684403553","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@deepbrainspace/nx-surrealdb","version":"0.2.1","keywords":["nx","plugin","surrealdb","migrations","database"],"license":"MIT","_id":"@deepbrainspace/nx-surrealdb@0.2.1","maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"homepage":"https://github.com/deepbrainspace/nx-plugins#readme","bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"dist":{"shasum":"ca9c512a6e5da999ab951f2a572c2c5bffdd5e77","tarball":"https://registry.npmjs.org/@deepbrainspace/nx-surrealdb/-/nx-surrealdb-0.2.1.tgz","fileCount":104,"integrity":"sha512-F7BPL7lFOm0gq++V+DeF1wF5OpdzLJX0j0PIB59/7fCF/+Bqsj0sZTSJykFef4M5B2/gN08xMAGXbixf08XsFw==","signatures":[{"sig":"MEQCIDA7+6Rkkc2QXwJWisMsdMk8XFX+JmW1fV9h7ESCeCQtAiBDlM5HXpBq0atnYDjSD3amNAKhPB89RxamnnGNeai6gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":627804},"main":"./src/index.js","_from":"file:deepbrainspace-nx-surrealdb-0.2.1.tgz","types":"./src/index.d.ts","scripts":{"lint":"nx lint nx-surrealdb","test":"nx test nx-surrealdb","build":"nx build nx-surrealdb"},"_npmUser":{"name":"wizardsupreme","actor":{"name":"wizardsupreme","type":"user","email":"smn7818@gmail.com"},"email":"smn7818@gmail.com"},"_resolved":"/tmp/be23e6bacb90315556365148205129c2/deepbrainspace-nx-surrealdb-0.2.1.tgz","executors":"./executors.json","_integrity":"sha512-F7BPL7lFOm0gq++V+DeF1wF5OpdzLJX0j0PIB59/7fCF/+Bqsj0sZTSJykFef4M5B2/gN08xMAGXbixf08XsFw==","generators":"./generators.json","repository":{"url":"git+https://github.com/deepbrainspace/nx-plugins.git","type":"git","directory":"packages/nx-surrealdb"},"_npmVersion":"10.9.2","description":"NX plugin for SurrealDB migrations with modular architecture","directories":{},"_nodeVersion":"22.13.0","dependencies":{"tslib":"^2.8.1","dotenv":"^16.5.0","surrealdb":"^1.3.2","@nx/devkit":"^21.2.0","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.8.0","globals":"^15.0.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","@nx/jest":"^21.2.0","@eslint/js":"^9.8.0","@nx/eslint":"^21.2.0","@nx/plugin":"^21.2.0","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/node":"^24.0.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-surrealdb_0.2.1_1750438048401_0.1226280631271921","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@deepbrainspace/nx-surrealdb","version":"0.2.2","keywords":["nx","plugin","surrealdb","migrations","database"],"license":"MIT","_id":"@deepbrainspace/nx-surrealdb@0.2.2","maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"homepage":"https://github.com/deepbrainspace/nx-plugins#readme","bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"dist":{"shasum":"fde60ae5b005562274f248086e5af7e5c4bb4e8e","tarball":"https://registry.npmjs.org/@deepbrainspace/nx-surrealdb/-/nx-surrealdb-0.2.2.tgz","fileCount":104,"integrity":"sha512-tjShjkLilBGXGLOQMb6QCRGTAXFCEwOiLa2opBLSOT+cEZ41P/m52cnPx3LZYD0dU9MIXH/prrBgDQ1GCvrbfw==","signatures":[{"sig":"MEUCIHDEBPK3vj/hs1wn7MYC+ywFfTtubJCjmZJgJ6gEPWHoAiEAuKMeJvyVN576DB35S1GuYSes9mUu/2CObonZLTkh1fM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":627804},"main":"./src/index.js","_from":"file:deepbrainspace-nx-surrealdb-0.2.2.tgz","types":"./src/index.d.ts","scripts":{"lint":"nx lint nx-surrealdb","test":"nx test nx-surrealdb","build":"nx build nx-surrealdb"},"_npmUser":{"name":"wizardsupreme","actor":{"name":"wizardsupreme","type":"user","email":"smn7818@gmail.com"},"email":"smn7818@gmail.com"},"_resolved":"/tmp/3ecb475c4642ddf42e4d5cbc13a4624b/deepbrainspace-nx-surrealdb-0.2.2.tgz","executors":"./executors.json","_integrity":"sha512-tjShjkLilBGXGLOQMb6QCRGTAXFCEwOiLa2opBLSOT+cEZ41P/m52cnPx3LZYD0dU9MIXH/prrBgDQ1GCvrbfw==","generators":"./generators.json","repository":{"url":"git+https://github.com/deepbrainspace/nx-plugins.git","type":"git","directory":"packages/nx-surrealdb"},"_npmVersion":"10.9.2","description":"NX plugin for SurrealDB migrations with modular architecture","directories":{},"_nodeVersion":"22.13.0","dependencies":{"tslib":"^2.8.1","dotenv":"^16.5.0","surrealdb":"^1.3.2","@nx/devkit":"^21.2.0","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.8.0","globals":"^15.0.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","@nx/jest":"^21.2.0","@eslint/js":"^9.8.0","@nx/eslint":"^21.2.0","@nx/plugin":"^21.2.0","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/node":"^24.0.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-surrealdb_0.2.2_1750439223995_0.25889905598686114","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@deepbrainspace/nx-surrealdb","version":"0.2.3","keywords":["nx","plugin","surrealdb","migrations","database"],"license":"MIT","_id":"@deepbrainspace/nx-surrealdb@0.2.3","maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"homepage":"https://github.com/deepbrainspace/nx-plugins#readme","bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"dist":{"shasum":"60936499cbda226943001b3b12a35ae1e834c81c","tarball":"https://registry.npmjs.org/@deepbrainspace/nx-surrealdb/-/nx-surrealdb-0.2.3.tgz","fileCount":105,"integrity":"sha512-TguK+cJLzBFajJHEk8xXcWoO+AH6aBCD6XaZ3YT8ksWraHe/djalxx+fR9LbEBivHsLCdnI1V9g/RotNpKrAhg==","signatures":[{"sig":"MEQCIEV3eiJH9lkmK4JF88SLUHgralP6HiegCMySpxMfjFJSAiBVNXjmstQFhCS9a+30ha7kyKyfMP6BSiFaH+87twsybg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":630295},"main":"./src/index.js","_from":"file:deepbrainspace-nx-surrealdb-0.2.3.tgz","types":"./src/index.d.ts","scripts":{"lint":"nx lint nx-surrealdb","test":"nx test nx-surrealdb","build":"nx build nx-surrealdb"},"_npmUser":{"name":"wizardsupreme","actor":{"name":"wizardsupreme","type":"user","email":"smn7818@gmail.com"},"email":"smn7818@gmail.com"},"_resolved":"/tmp/d0ef31ddebe6fb61934df49cb3aa661d/deepbrainspace-nx-surrealdb-0.2.3.tgz","executors":"./executors.json","_integrity":"sha512-TguK+cJLzBFajJHEk8xXcWoO+AH6aBCD6XaZ3YT8ksWraHe/djalxx+fR9LbEBivHsLCdnI1V9g/RotNpKrAhg==","generators":"./generators.json","repository":{"url":"git+https://github.com/deepbrainspace/nx-plugins.git","type":"git","directory":"packages/nx-surrealdb"},"_npmVersion":"10.9.2","description":"NX plugin for SurrealDB migrations with modular architecture","directories":{},"_nodeVersion":"22.13.0","dependencies":{"tslib":"^2.8.1","dotenv":"^16.5.0","surrealdb":"^1.3.2","@nx/devkit":"^21.2.0","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.8.0","globals":"^15.0.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","@nx/jest":"^21.2.0","@eslint/js":"^9.8.0","@nx/eslint":"^21.2.0","@nx/plugin":"^21.2.0","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/node":"^24.0.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-surrealdb_0.2.3_1750439420580_0.22915848849198373","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@deepbrainspace/nx-surrealdb","version":"0.3.0","keywords":["nx","plugin","surrealdb","migrations","database"],"license":"MIT","_id":"@deepbrainspace/nx-surrealdb@0.3.0","maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"homepage":"https://github.com/deepbrainspace/nx-plugins#readme","bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"dist":{"shasum":"c1497f2adb4601bdab3dd81886ddde74792d0d91","tarball":"https://registry.npmjs.org/@deepbrainspace/nx-surrealdb/-/nx-surrealdb-0.3.0.tgz","fileCount":105,"integrity":"sha512-VILfa3UQ/6LW5uCOK3t4Ie598vdMhYZvX5DkDUisBzjSlpSWE32uFpbDw5uJUGn3vtbPPYISPLMfI8tzXCWizg==","signatures":[{"sig":"MEUCIHX+6oWcgPlYiM0IfuRgeIiYxqF3rcoHDtYZugGKHfvEAiEA7ehYCCvPUKTDSATnaCrj7Qxe2FMyQ0mcXD3E12oLqTE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":630635},"main":"./src/index.js","_from":"file:deepbrainspace-nx-surrealdb-0.3.0.tgz","types":"./src/index.d.ts","scripts":{"lint":"nx lint nx-surrealdb","test":"nx test nx-surrealdb","build":"nx build nx-surrealdb"},"_npmUser":{"name":"wizardsupreme","actor":{"name":"wizardsupreme","type":"user","email":"smn7818@gmail.com"},"email":"smn7818@gmail.com"},"_resolved":"/tmp/710242deab5c08d289e42205a6b78668/deepbrainspace-nx-surrealdb-0.3.0.tgz","executors":"./executors.json","_integrity":"sha512-VILfa3UQ/6LW5uCOK3t4Ie598vdMhYZvX5DkDUisBzjSlpSWE32uFpbDw5uJUGn3vtbPPYISPLMfI8tzXCWizg==","generators":"./generators.json","repository":{"url":"git+https://github.com/deepbrainspace/nx-plugins.git","type":"git","directory":"packages/nx-surrealdb"},"_npmVersion":"10.9.2","description":"NX plugin for SurrealDB migrations with modular architecture","directories":{},"_nodeVersion":"22.13.0","dependencies":{"tslib":"^2.8.1","dotenv":"^16.5.0","surrealdb":"^1.3.2","@nx/devkit":"^21.2.0","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.8.0","globals":"^15.0.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","@nx/jest":"^21.2.0","@eslint/js":"^9.8.0","@nx/eslint":"^21.2.0","@nx/plugin":"^21.2.0","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/node":"^24.0.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-surrealdb_0.3.0_1750483853188_0.39481892127322227","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@deepbrainspace/nx-surrealdb","version":"0.3.2","keywords":["nx","plugin","surrealdb","migrations","database"],"license":"MIT","_id":"@deepbrainspace/nx-surrealdb@0.3.2","maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"homepage":"https://github.com/deepbrainspace/nx-plugins#readme","bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"dist":{"shasum":"1100c1610c038b896eefcd4a04369bc6ca7c8812","tarball":"https://registry.npmjs.org/@deepbrainspace/nx-surrealdb/-/nx-surrealdb-0.3.2.tgz","fileCount":5,"integrity":"sha512-Pw75MxdOsX7qBJj00bzD7AsaCL6vwgNN5qXWhIKb4v9yWGbwlCQ8PJl9R3ECv47rsVNaYYVsZoXLx9zEKyVu2Q==","signatures":[{"sig":"MEUCIAaFZpMUY6TAnBRWh/FNI0F5YzVks1wJCOCoAgQfcnoQAiEAlICUOjJVsGnrnubVdJ3gvDCbQYzkHscswTelDwj3A28=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44072},"main":"./src/index.js","types":"./src/index.d.ts","gitHead":"ca3ac136faa56d0347d2b5d0922117ddcebc00fa","scripts":{"lint":"nx lint nx-surrealdb","test":"nx test nx-surrealdb","build":"nx build nx-surrealdb"},"_npmUser":{"name":"wizardsupreme","actor":{"name":"wizardsupreme","type":"user","email":"smn7818@gmail.com"},"email":"smn7818@gmail.com"},"executors":"./executors.json","generators":"./generators.json","repository":{"url":"git+https://github.com/deepbrainspace/nx-plugins.git","type":"git","directory":"packages/nx-surrealdb"},"_npmVersion":"10.9.2","description":"NX plugin for SurrealDB migrations with modular architecture","directories":{},"_nodeVersion":"22.13.0","dependencies":{"tslib":"^2.8.1","dotenv":"^16.5.0","surrealdb":"^1.3.2","@nx/devkit":"^21.2.0","picocolors":"^1.1.1"},"publishConfig":{"access":"public","directory":"{workspaceRoot}/dist/packages/{projectName}"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.8.0","globals":"^15.0.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","@nx/jest":"^21.2.0","@eslint/js":"^9.8.0","@nx/eslint":"^21.2.0","@nx/plugin":"^21.2.0","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/node":"^24.0.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-surrealdb_0.3.2_1750490658792_0.09067207080020911","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@deepbrainspace/nx-surrealdb","version":"0.3.3","keywords":["nx","plugin","surrealdb","migrations","database"],"license":"MIT","_id":"@deepbrainspace/nx-surrealdb@0.3.3","maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"homepage":"https://github.com/deepbrainspace/nx-plugins#readme","bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"dist":{"shasum":"203bad9b744044baf8d24acfa6d418987cf6c63a","tarball":"https://registry.npmjs.org/@deepbrainspace/nx-surrealdb/-/nx-surrealdb-0.3.3.tgz","fileCount":99,"integrity":"sha512-Sy2N/pXZvXxEV8j+ti1QD9ExdoMYx0m28wx1NvyObJIdQmbk/MqrE+DF8zgqKUyTVclcmaIGHB81Gulc4MhgtQ==","signatures":[{"sig":"MEQCIBdSiq6zgXy2ZBgWITLyVuawKwSeSw5uYl8R7JIGmvUxAiBIr/4IqC/2vUz85xMKnX9gvd2XNFhYaFojIpo0StCWlA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":403409},"main":"./src/index.js","type":"commonjs","_from":"file:deepbrainspace-nx-surrealdb-0.3.3.tgz","types":"./src/index.d.ts","exports":{".":"./src/index.js","./package.json":"./package.json"},"private":false,"scripts":{"lint":"nx lint nx-surrealdb","test":"nx test nx-surrealdb","build":"nx build nx-surrealdb"},"_npmUser":{"name":"wizardsupreme","actor":{"name":"wizardsupreme","type":"user","email":"smn7818@gmail.com"},"email":"smn7818@gmail.com"},"_resolved":"/tmp/a69ab3f37ae95e5fb5ac9eb8eb4b3fe2/deepbrainspace-nx-surrealdb-0.3.3.tgz","executors":"./executors.json","_integrity":"sha512-Sy2N/pXZvXxEV8j+ti1QD9ExdoMYx0m28wx1NvyObJIdQmbk/MqrE+DF8zgqKUyTVclcmaIGHB81Gulc4MhgtQ==","generators":"./generators.json","repository":{"url":"git+https://github.com/deepbrainspace/nx-plugins.git","type":"git","directory":"packages/nx-surrealdb"},"_npmVersion":"10.9.2","description":"NX plugin for SurrealDB migrations with modular architecture","directories":{},"_nodeVersion":"22.13.0","dependencies":{"tslib":"^2.8.1","dotenv":"^16.5.0","surrealdb":"^1.3.2","@nx/devkit":"^21.2.0","picocolors":"^1.1.1"},"publishConfig":{"access":"public","directory":"{workspaceRoot}/dist/packages/{projectName}"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.8.0","globals":"^15.0.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","@nx/jest":"^21.2.0","@eslint/js":"^9.8.0","@nx/eslint":"^21.2.0","@nx/plugin":"^21.2.0","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/node":"^24.0.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-surrealdb_0.3.3_1750491684569_0.191921214436652","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@deepbrainspace/nx-surrealdb","version":"0.3.4","keywords":["nx","plugin","surrealdb","migrations","database"],"license":"MIT","_id":"@deepbrainspace/nx-surrealdb@0.3.4","maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"homepage":"https://github.com/deepbrainspace/nx-plugins#readme","bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"dist":{"shasum":"4e7aa10c524370f4bfa9e235f260eb7573b1bfb7","tarball":"https://registry.npmjs.org/@deepbrainspace/nx-surrealdb/-/nx-surrealdb-0.3.4.tgz","fileCount":99,"integrity":"sha512-EQz1y07Z0fOaVslb5nj+Fr8HKvUyv19LUa02POLH4xQHU7dPUi46yBhks101v3jvR/Us4xDo9AxSZaBMUpn0OA==","signatures":[{"sig":"MEUCIQCu+7+WtA5yu1KPRCKBic0w9Y07O2f+81qumV4UDHMsWAIgcHSB7od2dhA4NxBt5Q+OcmDz0uYeJzXnXLklERZDLVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":403321},"main":"./src/index.js","type":"commonjs","_from":"file:deepbrainspace-nx-surrealdb-0.3.4.tgz","types":"./src/index.d.ts","exports":{".":"./src/index.js","./package.json":"./package.json"},"private":false,"scripts":{"lint":"nx lint nx-surrealdb","test":"nx test nx-surrealdb","build":"nx build nx-surrealdb"},"_npmUser":{"name":"wizardsupreme","actor":{"name":"wizardsupreme","type":"user","email":"smn7818@gmail.com"},"email":"smn7818@gmail.com"},"_resolved":"/tmp/c7f5bd24023ea6c50d03a5287abf3f7a/deepbrainspace-nx-surrealdb-0.3.4.tgz","executors":"./executors.json","_integrity":"sha512-EQz1y07Z0fOaVslb5nj+Fr8HKvUyv19LUa02POLH4xQHU7dPUi46yBhks101v3jvR/Us4xDo9AxSZaBMUpn0OA==","generators":"./generators.json","repository":{"url":"git+https://github.com/deepbrainspace/nx-plugins.git","type":"git","directory":"packages/nx-surrealdb"},"_npmVersion":"10.9.2","description":"NX plugin for SurrealDB migrations with modular architecture","directories":{},"_nodeVersion":"22.13.0","dependencies":{"tslib":"^2.8.1","dotenv":"^16.5.0","surrealdb":"^1.3.2","@nx/devkit":"^21.2.0","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.8.0","globals":"^15.0.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","@nx/jest":"^21.2.0","@eslint/js":"^9.8.0","@nx/eslint":"^21.2.0","@nx/plugin":"^21.2.0","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/node":"^24.0.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-surrealdb_0.3.4_1750771273913_0.09505028187099485","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@deepbrainspace/nx-surrealdb","version":"0.4.0","keywords":["nx","plugin","surrealdb","migrations","database"],"license":"MIT","_id":"@deepbrainspace/nx-surrealdb@0.4.0","maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"homepage":"https://github.com/deepbrainspace/nx-plugins#readme","bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"dist":{"shasum":"583865c828611fafb22f8d2671ada08adcddc548","tarball":"https://registry.npmjs.org/@deepbrainspace/nx-surrealdb/-/nx-surrealdb-0.4.0.tgz","fileCount":112,"integrity":"sha512-asupMJ1ciTsJWQLuJaek+Hu5/8uf/wkH895vVg6SWyhLSd9oNPniXt8GhUkfres8PXN9gvgmII8WJLOmTXYmxQ==","signatures":[{"sig":"MEQCIAGLMKHoKF6cKrAbMC+WLHQ4KrRHKYzgEQwi1mr9N60hAiBcLBUJSxDmHhKzMqTwNYsvDuJruuPzkurjTTscs3hUWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":418057},"main":"./src/index.js","type":"commonjs","_from":"file:deepbrainspace-nx-surrealdb-0.4.0.tgz","types":"./src/index.d.ts","exports":{".":"./src/index.js","./package.json":"./package.json"},"private":false,"scripts":{"lint":"nx lint nx-surrealdb","test":"nx test nx-surrealdb","build":"nx build nx-surrealdb"},"_npmUser":{"name":"wizardsupreme","actor":{"name":"wizardsupreme","type":"user","email":"smn7818@gmail.com"},"email":"smn7818@gmail.com"},"_resolved":"/tmp/6d3ae075bfc990e5c95c00065c3a08af/deepbrainspace-nx-surrealdb-0.4.0.tgz","executors":"./executors.json","_integrity":"sha512-asupMJ1ciTsJWQLuJaek+Hu5/8uf/wkH895vVg6SWyhLSd9oNPniXt8GhUkfres8PXN9gvgmII8WJLOmTXYmxQ==","generators":"./generators.json","repository":{"url":"git+https://github.com/deepbrainspace/nx-plugins.git","type":"git","directory":"packages/nx-surrealdb"},"_npmVersion":"10.9.2","description":"NX plugin for SurrealDB migrations with modular architecture","directories":{},"_nodeVersion":"22.13.0","dependencies":{"tslib":"^2.8.1","dotenv":"^16.5.0","surrealdb":"^1.3.2","@nx/devkit":"^21.2.0","picocolors":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.8.0","globals":"^15.0.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","@nx/jest":"^21.2.0","@eslint/js":"^9.8.0","@nx/eslint":"^21.2.0","@nx/plugin":"^21.2.0","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/node":"^24.0.1","jsonc-eslint-parser":"^2.4.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nx-surrealdb_0.4.0_1751750176841_0.9382867230160945","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@deepbrainspace/nx-surrealdb","version":"0.4.1","description":"NX plugin for SurrealDB migrations with modular architecture","main":"./src/index.js","types":"./src/index.d.ts","exports":{".":"./src/index.js","./package.json":"./package.json"},"generators":"./generators.json","executors":"./executors.json","private":false,"keywords":["nx","plugin","surrealdb","migrations","database"],"repository":{"type":"git","url":"git+https://github.com/deepbrainspace/nx-plugins.git","directory":"packages/nx-surrealdb"},"license":"MIT","publishConfig":{"access":"public"},"dependencies":{"@nx/devkit":"^21.2.0","dotenv":"^16.5.0","picocolors":"^1.1.1","surrealdb":"^1.3.2","tslib":"^2.8.1"},"devDependencies":{"@eslint/js":"^9.8.0","@nx/eslint":"^21.2.0","@nx/jest":"^21.2.0","@nx/plugin":"^21.2.0","@types/jest":"^29.5.12","@types/node":"^24.0.1","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","eslint":"^9.8.0","globals":"^15.0.0","jest":"^29.7.0","jsonc-eslint-parser":"^2.4.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","typescript":"^5.8.3"},"type":"commonjs","scripts":{"build":"nx build nx-surrealdb","test":"nx test nx-surrealdb","lint":"nx lint nx-surrealdb"},"_id":"@deepbrainspace/nx-surrealdb@0.4.1","bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"homepage":"https://github.com/deepbrainspace/nx-plugins#readme","_integrity":"sha512-FMAm+D0x+s7LewMT25xYuOBQBXSqwL/Hr5nN+77UOu6NeLRU2CwKm4crqkphTpA1DLUvJ8OcQ4aJaWAou0IuUw==","_resolved":"/tmp/e7dd2d4b894e23b718eb868f5f19bb1e/deepbrainspace-nx-surrealdb-0.4.1.tgz","_from":"file:deepbrainspace-nx-surrealdb-0.4.1.tgz","_nodeVersion":"22.13.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-FMAm+D0x+s7LewMT25xYuOBQBXSqwL/Hr5nN+77UOu6NeLRU2CwKm4crqkphTpA1DLUvJ8OcQ4aJaWAou0IuUw==","shasum":"3a26caa1d6f7e687c903fe07e5d954731d24216e","tarball":"https://registry.npmjs.org/@deepbrainspace/nx-surrealdb/-/nx-surrealdb-0.4.1.tgz","fileCount":112,"unpackedSize":418602,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA7g7Adho68IMxFZYB6FHYwoi+iuTfGwvGzl1TxP8hnDAiEA1A2SQIIvH72BUxHrIuZSQhqkdFz//x0AkHHz0+cufVI="}]},"_npmUser":{"name":"wizardsupreme","email":"smn7818@gmail.com","actor":{"name":"wizardsupreme","email":"smn7818@gmail.com","type":"user"}},"directories":{},"maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nx-surrealdb_0.4.1_1751887152699_0.8884240632678444"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-16T10:47:40.899Z","modified":"2025-07-07T11:19:13.077Z","0.1.1":"2025-06-16T10:47:41.252Z","0.1.2":"2025-06-16T19:40:40.479Z","0.1.3":"2025-06-17T14:35:16.840Z","0.1.4":"2025-06-17T14:42:49.352Z","0.2.0":"2025-06-20T14:58:25.018Z","0.2.1":"2025-06-20T16:47:28.612Z","0.2.2":"2025-06-20T17:07:04.294Z","0.2.3":"2025-06-20T17:10:20.833Z","0.3.0":"2025-06-21T05:30:53.404Z","0.3.2":"2025-06-21T07:24:19.008Z","0.3.3":"2025-06-21T07:41:24.778Z","0.3.4":"2025-06-24T13:21:14.162Z","0.4.0":"2025-07-05T21:16:17.030Z","0.4.1":"2025-07-07T11:19:12.914Z"},"bugs":{"url":"https://github.com/deepbrainspace/nx-plugins/issues"},"license":"MIT","homepage":"https://github.com/deepbrainspace/nx-plugins#readme","keywords":["nx","plugin","surrealdb","migrations","database"],"repository":{"type":"git","url":"git+https://github.com/deepbrainspace/nx-plugins.git","directory":"packages/nx-surrealdb"},"description":"NX plugin for SurrealDB migrations with modular architecture","maintainers":[{"name":"wizardsupreme","email":"smn7818@gmail.com"}],"readme":"# nx-surrealdb\n\nNX plugin for SurrealDB migrations with modular architecture and dependency resolution.\n\n## Quick Start\n\n```bash\n# Install\nnpm install @deepbrainspace/nx-surrealdb --save-dev\n\n# Initialize database project\nnx g @deepbrainspace/nx-surrealdb:init myproject --path=\"apps\"\n\n# Run migrations\nnx run myproject:migrate\n\n# Check status\nnx run myproject:status\n```\n\n## Essential Commands\n\n```bash\n# Migration operations\nnx run my-app/db:migrate                    # Apply all pending migrations\nnx run my-app/db:migrate --module auth     # Apply specific module\nnx run my-app/db:migrate --dry-run         # Preview changes\n\n# Status and monitoring  \nnx run my-app/db:status                     # Show migration status\nnx run my-app/db:status --detailed         # Show detailed status\nnx run my-app/db:status --json             # JSON output for CI/CD\n\n# Rollback operations\nnx run my-app/db:rollback --module auth    # Rollback specific module\nnx run my-app/db:rollback --dry-run        # Preview rollback\nnx run my-app/db:rollback --force          # Force rollback (bypass safety)\n\n# Generate new migrations\nnx g @deepbrainspace/nx-surrealdb:migration create-users --project my-app/db --module auth\n```\n\n## Key Features\n\n### Migration Management\n- **Dependency Resolution**: Topological sorting ensures correct execution order\n- **Modular Architecture**: Organize schemas by modules (000_admin, 010_auth, 020_schema)\n- **Migration Tracking**: Complete history in `system_migrations` table with checksums\n\n### Safety & Reliability  \n- **Rollback Safety**: Pre-validation prevents dependency conflicts\n- **Circular Detection**: Prevents circular dependency configurations\n- **Dry-Run Mode**: Preview operations without executing changes\n- **Force Override**: Bypass safety checks for emergency situations\n\n### Developer Experience\n- **Smart Targeting**: Reference modules by index (`1`), name (`auth`), or pattern (`010_auth`)\n- **Multiple Patterns**: `--module 0,auth,20 --filename 1,2` \n- **Rich Visualization**: ASCII dependency trees and status indicators\n- **JSON Output**: Machine-readable output for automation\n- **Environment Variables**: Full `.env` support with variable interpolation\n\n## Prerequisites\n\n- **Node.js**: Version 16 or higher\n- **Nx**: Version 16 or higher (`npm install -g nx`)\n- **SurrealDB**: A running SurrealDB instance (local or cloud)\n- **TypeScript**: Recommended for type safety (included in Nx projects)\n\n## Installation\n\n### Option 1: Global Installation (Recommended)\n\n```bash\n# Install globally using NX\nnx add @deepbrainspace/nx-surrealdb --global\n# or manually\npnpm add -g @deepbrainspace/nx-surrealdb\n```\n\n### Option 2: Project-level Installation\n\n```bash\n# Add to specific workspace\nnx add @deepbrainspace/nx-surrealdb\n# or manually  \npnpm add -D @deepbrainspace/nx-surrealdb\n```\n\n**Verify installation:**\n```bash\nnx list @deepbrainspace/nx-surrealdb\n```\n\n## Quick Start\n\n### 1. Initialize Database Project\n\n```bash\n# Generate database project with clean path structure\nnx g @deepbrainspace/nx-surrealdb:init myproject --path=\"apps\"\n# Creates: apps/myproject/db/\n\n# Customize base path and database folder name\nnx g @deepbrainspace/nx-surrealdb:init exponentials.tv --path=\"apps\" --db-path=\"database\"\n# Creates: apps/exponentials.tv/database/\n\n# Default location (project root)\nnx g @deepbrainspace/nx-surrealdb:init myproject\n# Creates: myproject/db/\n```\n\nThe `init` generator automatically creates:\n- Complete directory structure with modules (000_admin, 010_auth, 020_schema)\n- Rich configuration file with environment support\n- NX project configuration with all executors\n- Starter migration templates\n- Comprehensive README with usage instructions\n\n### 2. Set Up Environment Variables\n\nThe `init` generator automatically configures project targets. Create `.env` in your workspace root:\n\n```bash\n# SurrealDB Connection\nSURREALDB_URL=ws://localhost:8000/rpc\nSURREALDB_ROOT_USER=root\nSURREALDB_ROOT_PASS=root\nSURREALDB_NAMESPACE=myproject\nSURREALDB_DATABASE=development\n```\n\n### 3. Start Using Your Database\n\nThe `init` generator creates everything you need:\n\n**Rich Configuration (`config.json`)**:\n```json\n{\n  \"modules\": {\n    \"000_admin\": {\n      \"name\": \"System Administration\",\n      \"description\": \"Core database setup and administrative functions\",\n      \"dependencies\": [],\n      \"locked\": true,\n      \"lockReason\": \"Critical system module - contains core admin setup and permissions\"\n    },\n    \"010_auth\": {\n      \"name\": \"Authentication & Users\",\n      \"description\": \"User authentication and authorization system\",\n      \"dependencies\": [\"000_admin\"]\n    },\n    \"020_schema\": {\n      \"name\": \"Application Schema\",\n      \"description\": \"Core application data models and relationships\",\n      \"dependencies\": [\"010_auth\"]\n    }\n  },\n  \"environments\": [\"development\", \"staging\", \"production\"],\n  \"settings\": {\n    \"configFormat\": \"json\",\n    \"useTransactions\": true,\n    \"defaultNamespace\": \"myproject\",\n    \"defaultDatabase\": \"development\"\n  }\n}\n```\n\n**Complete Directory Structure**:\n```\napps/myproject/db/\n├── 000_admin/\n│   ├── 0001_setup_up.surql\n│   └── 0001_setup_down.surql\n├── 010_auth/\n│   ├── 0001_users_up.surql\n│   └── 0001_users_down.surql\n├── 020_schema/\n│   ├── 0001_tables_up.surql\n│   └── 0001_tables_down.surql\n├── config.json\n├── project.json (auto-configured)\n└── README.md\n```\n\n## Usage\n\n### Initialize Database Projects\n\nThe `init` generator provides flexible project setup with clean parameter design:\n\n#### Basic Usage\n```bash\n# Project identity and location are separate\nnx g @deepbrainspace/nx-surrealdb:init projectName --path=\"apps\"\n# ✅ Creates: apps/projectName/db/\n# ✅ Project identity: \"projectName\" (used for namespace)\n# ✅ NX project name: \"projectName\"\n```\n\n#### Advanced Options\n```bash\n# Custom database folder name\nnx g @deepbrainspace/nx-surrealdb:init myapp --path=\"apps\" --db-path=\"database\"\n# ✅ Creates: apps/myapp/database/\n\n# Root installation (no path)\nnx g @deepbrainspace/nx-surrealdb:init myapp\n# ✅ Creates: myapp/db/\n\n# Complex project names work perfectly\nnx g @deepbrainspace/nx-surrealdb:init exponentials.tv --path=\"apps\"\n# ✅ Creates: apps/exponentials.tv/db/\n# ✅ Namespace: \"exponentials.tv\"\n```\n\n#### What Gets Generated\nEvery `init` command creates:\n- 📁 **Complete module structure** (000_admin, 010_auth, 020_schema)\n- ⚙️ **Rich config.json** with environments and detailed module info\n- 🎯 **NX project.json** with all executors pre-configured\n- 📝 **Starter migrations** ready for customization\n- 📖 **README.md** with usage instructions\n- 🔒 **Module lock protection** for critical modules\n\n### Generate New Migrations\n\n```bash\n# Generate migration in existing module\nnx g @deepbrainspace/nx-surrealdb:migration create-users --project database --module auth\n\n# Generate migration with new module creation\nnx g @deepbrainspace/nx-surrealdb:migration setup-notifications --project database --module notifications --createModule\n```\n\n### Apply Migrations\n\n```bash\n# Apply all pending migrations\nnx run database:migrate\n\n# Apply migrations for specific module (multiple ways)\nnx run database:migrate --module 1          # Index-based (2nd module)\nnx run database:migrate --module 10         # Number-based (module 010)\nnx run database:migrate --module auth       # Name-based\nnx run database:migrate --module 010_auth   # Full name\n\n# Apply multiple modules\nnx run database:migrate --module 0,1        # First two modules\nnx run database:migrate --module admin,auth # By names\nnx run database:migrate --module 0,auth,20  # Mixed patterns\n\n# Dry run to preview what would be applied\nnx run database:migrate --dryRun\nnx run database:migrate --module auth --dryRun\n\n# Force apply even if already applied\nnx run database:migrate --force\n\n# Target specific migration files\nnx run database:migrate --filename 1          # First migration file\nnx run database:migrate --filename auth       # Migration file with 'auth' in name\nnx run database:migrate --filename 0001_setup_up.surql  # Exact filename\n\n# Combine module and filename targeting\nnx run database:migrate --module auth --filename 1      # First migration in auth module\nnx run database:migrate --module 0,1 --filename 2       # Second migration in first two modules\n\n# Target multiple specific files\nnx run database:migrate --filename 1,2,auth    # Multiple files using mixed patterns\n```\n\n### Check Status\n\n```bash\n# Show overall migration status\nnx run database:status\n\n# Show status for specific module (multiple ways)\nnx run database:status --module 1          # Index-based (2nd module)\nnx run database:status --module 10         # Number-based (module 010)\nnx run database:status --module auth       # Name-based\nnx run database:status --module 010_auth   # Full name\n\n# Show status for multiple modules\nnx run database:status --module 0,1,2      # All modules by index\nnx run database:status --module admin,auth # Multiple by name\n\n# Show detailed information with file names and timing\nnx run database:status --detailed\nnx run database:status --module auth --detailed\n\n# Output as JSON for automation\nnx run database:status --json\nnx run database:status --module auth --json\n\n# Check status of specific migration files\nnx run database:status --filename 1           # Status of first migration file\nnx run database:status --filename auth        # Status of auth migration file\nnx run database:status --filename 1,2,auth --detailed  # Multiple files with details\n\n# Combine module and filename for precise status\nnx run database:status --module auth --filename 1 --json\n```\n\n### Rollback Migrations\n\n```bash\n# Rollback specific module (with dependency safety validation)\nnx run database:rollback --module 1          # Index-based (2nd module)\nnx run database:rollback --module 10         # Number-based (module 010)\nnx run database:rollback --module auth       # Name-based\nnx run database:rollback --module 010_auth   # Full name\n\n# Rollback multiple modules (in dependency-safe order)\nnx run database:rollback --module 1,0        # Rollback auth, then admin\nnx run database:rollback --module auth,admin # Same as above, by name\n\n# Dry run to preview what would be rolled back\nnx run database:rollback --module auth --dryRun\nnx run database:rollback --module 0,1 --dryRun\n\n# Show detailed rollback information\nnx run database:rollback --module auth --detailed\nnx run database:rollback --module auth --dryRun --detailed\n\n# Force rollback (bypass dependency safety checks - use with caution!)\nnx run database:rollback --module auth --force\n\n# Rollback specific number of steps\nnx run database:rollback --module auth --steps 2\n\n# Rollback specific migration files (automatically finds _down.surql files)\nnx run database:rollback --filename 1           # Rollback first migration file\nnx run database:rollback --filename auth        # Rollback auth migration file\nnx run database:rollback --filename 0001_setup_up.surql  # Rollback specific file\n\n# Combine module and filename for precise rollback\nnx run database:rollback --module auth --filename 1     # Rollback first migration in auth module\nnx run database:rollback --module 0,1 --filename 2      # Rollback second migration in first two modules\n\n# Rollback multiple specific files\nnx run database:rollback --filename 1,2,auth    # Multiple files using mixed patterns\n```\n\n## Common Workflows\n\n### Quick Development Workflow\n\n```bash\n# Check what needs to be done\nnx run database:status\n\n# Apply pending migrations to the auth module\nnx run database:migrate --module 1          # Using index (quick to type)\n\n# Check status again\nnx run database:status --module 1 --detailed\n```\n\n### Safe Production Deployment\n\n```bash\n# Preview all changes first\nnx run database:migrate --dryRun\n\n# Apply migrations module by module for safety\nnx run database:migrate --module admin      # Core system first\nnx run database:migrate --module auth       # Then authentication\nnx run database:migrate --module schema     # Finally application schema\n\n# Verify everything is applied\nnx run database:status\n```\n\n### Emergency Rollback Workflow\n\n```bash\n# Check current state\nnx run database:status --detailed\n\n# Preview rollback (recommended first step)\nnx run database:rollback --module auth --dryRun --detailed\n\n# Safe rollback with dependency validation\nnx run database:rollback --module auth\n\n# If blocked by dependencies, rollback dependents first\nnx run database:rollback --module schema    # Rollback dependent module first\nnx run database:rollback --module auth      # Then target module\n\n# Emergency override (use with extreme caution)\n# nx run database:rollback --module auth --force\n```\n\n### Team Development Best Practices\n\n```bash\n# Always check status before starting work\nnx run database:status\n\n# Use descriptive module names for clarity in team scripts\nnx run database:migrate --module authentication\nnx run database:status --module user-management\n\n# Use indices for quick interactive commands\nnx run database:status --module 0,1,2       # Check first three modules\nnx run database:migrate --module 1          # Quick migrate second module\n```\n\n### Working with Locked Modules\n\n```bash\n# Check which modules are locked\nnx run database:status --detailed\n\n# Attempt rollback (will be blocked)\nnx run database:rollback --module admin\n# Output: 🔒 Rollback locked - cannot rollback protected modules!\n\n# Preview what would happen with force override\nnx run database:rollback --module admin --dryRun --force\n\n# Emergency rollback with force override (use with extreme caution)\nnx run database:rollback --module admin --force\n\n# Migrations work normally on locked modules\nnx run database:migrate --module admin      # ✅ Allowed\n```\n\n## Configuration\n\n### Module Dependencies\n\nThe `config.json` file defines module dependencies:\n\n```json\n{\n  \"modules\": {\n    \"000_admin\": {\n      \"name\": \"System Administration\",\n      \"depends\": []\n    },\n    \"010_auth\": {\n      \"name\": \"Authentication\",\n      \"depends\": [\"000_admin\"]\n    },\n    \"020_messaging\": {\n      \"name\": \"Messaging System\",\n      \"depends\": [\"010_auth\"]\n    },\n    \"030_notifications\": {\n      \"name\": \"Notifications\",\n      \"depends\": [\"010_auth\", \"020_messaging\"]\n    }\n  }\n}\n```\n\n### Module Lock Protection\n\nProtect critical modules from accidental rollbacks by adding lock configuration:\n\n```json\n{\n  \"modules\": {\n    \"000_admin\": {\n      \"name\": \"System Administration\",\n      \"description\": \"Core database setup and administrative functions\",\n      \"depends\": [],\n      \"locked\": true,\n      \"lockReason\": \"Critical system module - contains core admin setup and permissions\"\n    },\n    \"010_auth\": {\n      \"name\": \"Authentication & Users\",\n      \"description\": \"User authentication and authorization system\",\n      \"depends\": [\"000_admin\"],\n      \"locked\": true,\n      \"lockReason\": \"Core authentication system - rollback would break user access\"\n    },\n    \"020_schema\": {\n      \"name\": \"Application Schema\",\n      \"description\": \"Core application data models and relationships\",\n      \"depends\": [\"010_auth\"]\n    }\n  }\n}\n```\n\n#### Lock Configuration Properties\n\n- **`locked`** (boolean, optional): When `true`, prevents rollback of this\n  module\n- **`lockReason`** (string, optional): Human-readable explanation for why the\n  module is locked\n\n#### Lock Protection Features\n\n- 🔒 **Visual Indicators**: Locked modules display with lock icons in status\n  output\n- 🛡️ **Rollback Prevention**: Automatically blocks rollback attempts on locked\n  modules\n- 📝 **Clear Messaging**: Shows specific lock reasons when rollback is blocked\n- ⚡ **Force Override**: Use `--force` flag to bypass lock protection for\n  emergencies\n- 🎯 **Selective Locking**: Lock only critical modules, leave development\n  modules unlocked\n\n### Executor Options\n\n#### Common Options (all executors)\n\n- `url`: SurrealDB connection URL\n- `user`: SurrealDB username\n- `pass`: SurrealDB password\n- `namespace`: SurrealDB namespace\n- `database`: SurrealDB database\n- `module`: Target specific module (string or number)\n- `filename`: Target specific migration file (string or number)\n- `envFile`: Path to environment file\n- `initPath`: Path to migrations directory (default: \"database\")\n- `configPath`: Path to config file (default: auto-detected)\n\n#### Migrate-specific Options\n\n- `dryRun`: Preview migrations without applying\n- `force`: Apply migrations even if already applied\n- `useTransactions`: Wrap migrations in transactions (default: true)\n\n#### Rollback-specific Options\n\n- `dryRun`: Preview rollbacks without applying\n- `force`: Bypass safety validation checks\n- `steps`: Number of migration steps to rollback (default: 1)\n\n#### Status-specific Options\n\n- `detailed`: Show detailed migration file information\n- `json`: Output as JSON instead of human-readable format\n\n## Migration File Format\n\n### Up Migration (`*_up.surql`)\n\n```sql\n-- Create users table\nDEFINE TABLE IF NOT EXISTS users SCHEMAFULL;\nDEFINE FIELD IF NOT EXISTS email ON users TYPE string;\nDEFINE FIELD IF NOT EXISTS password ON users TYPE string;\nDEFINE INDEX IF NOT EXISTS email_idx ON users FIELDS email UNIQUE;\n```\n\n### Down Migration (`*_down.surql`)\n\n```sql\n-- Remove users table\nREMOVE INDEX IF EXISTS email_idx ON users;\nREMOVE TABLE IF EXISTS users;\n```\n\n## Module Structure\n\n### Gapped Numbering\n\nUse gapped numbering (000, 010, 020, 030) to allow insertion of new modules:\n\n```\n000_admin     # System administration\n010_auth      # Authentication\n020_schema    # Core schema\n030_messaging # Messaging system\n040_reporting # Reporting (can be inserted later)\n```\n\n### Module Reference Patterns\n\nThe plugin supports multiple intuitive ways to specify modules, making it easy\nfor developers to target the modules they need:\n\n#### **Index-Based (Most User-Friendly)**\n\nReference modules by their position in sorted order:\n\n- `--module 0` → `000_admin` (first module)\n- `--module 1` → `010_auth` (second module)\n- `--module 2` → `020_schema` (third module)\n\n#### **Number-Based (Direct Mapping)**\n\nReference modules by their numeric prefix:\n\n- `--module 10` → `010_auth`\n- `--module 20` → `020_schema`\n- `--module 0` → `000_admin`\n\n#### **Name-Based (Semantic)**\n\nReference modules by their descriptive name:\n\n- `--module auth` → `010_auth`\n- `--module admin` → `000_admin`\n- `--module schema` → `020_schema`\n\n#### **Full Name (Explicit)**\n\nReference modules by their complete directory name:\n\n- `--module 010_auth` → `010_auth`\n- `--module 000_admin` → `000_admin`\n- `--module 020_schema` → `020_schema`\n\n#### **Multiple Modules**\n\nCombine any reference patterns with comma separation:\n\n- `--module 0,1` → `000_admin,010_auth`\n- `--module admin,auth,schema` → `000_admin,010_auth,020_schema`\n- `--module 0,auth,20` → `000_admin,010_auth,020_schema`\n\n**💡 Pro Tip**: Index-based referencing (`--module 1`) is often the quickest for\ninteractive use, while name-based (`--module auth`) is most readable for scripts\nand documentation.\n\n### Filename Reference Patterns\n\nThe plugin also supports granular filename targeting within modules, allowing\nyou to run specific migration files instead of entire modules:\n\n#### **Numeric Patterns**\n\nReference migration files by their numeric sequence:\n\n- `--filename 1` → `0001_setup_up.surql` (first migration file)\n- `--filename 2` → `0002_users_up.surql` (second migration file)\n\n#### **Name Patterns**\n\nReference migration files by their descriptive name:\n\n- `--filename auth` → `0001_authentication_up.surql`\n- `--filename users` → `0002_users_up.surql`\n\n#### **Full Filename**\n\nReference migration files by their complete name:\n\n- `--filename 0001_authentication_up.surql` → exact match\n\n#### **Combined Module + Filename Targeting**\n\nFor precise control, combine module and filename patterns:\n\n- `--module auth --filename 1` → First migration in auth module only\n- `--module 0,1 --filename 2` → Second migration in first two modules\n\n#### **Multiple Filenames**\n\nTarget multiple files with comma separation:\n\n- `--filename 1,2,auth` → Multiple files using mixed patterns\n- `--filename 0001,0002` → Multiple files by number\n\n**💡 Pro Tip**: Filename patterns work with all executors (migrate, rollback,\nstatus) and automatically handle `_up.surql` vs `_down.surql` file resolution.\n\n## Console Output Examples\n\n### Status Command\n\n```\n📊 Checking migration status...\n\n📈 Migration Status Summary\n   Total Applied: 8\n   Total Pending: 2\n   🔄 2 migration(s) pending\n\n📋 Module Details:\n\n   ✅ 000_admin [UP-TO-DATE] 🔒\n      Applied: 3 migration(s)\n      Last Applied: 2024-01-15T10:30:00.000Z\n      🔒 Locked: Critical system module - contains core admin setup and permissions\n\n   🔄 010_auth [PENDING] 🔒\n      Applied: 2 migration(s)\n      Pending: 1 migration(s)\n      Dependencies: 000_admin\n      🔒 Locked: Core authentication system - rollback would break user access\n\n   ✅ 020_schema [UP-TO-DATE]\n      Applied: 3 migration(s)\n      Dependencies: 010_auth\n\n🌐 Dependency Graph:\n   000_admin (root)\n   └─ 010_auth\n      └─ 020_schema\n```\n\n### Migrate Command\n\n```\n🚀 Starting migration execution...\n✅ Migration completed successfully!\n   Files processed: 3\n   Files skipped: 0\n   Execution time: 1,247ms\n\n📊 Migration Details:\n   ✅ 000_admin/0001_setup_up.surql\n   ✅ 010_auth/0001_users_up.surql\n   ✅ 010_auth/0002_sessions_up.surql\n```\n\n### Rollback Safety Validation\n\n```\n🔍 Validating rollback safety...\n❌ Rollback validation failed!\n   Blocked by dependencies:\n   • 020_schema\n   • 030_messaging\n   Warnings:\n   • Module 010_auth has active dependents\n\n💡 Use --force to bypass safety checks\n```\n\n### Module Lock Protection\n\n```\n🔒 Rollback locked - cannot rollback protected modules!\n   Locked modules:\n   🔒 000_admin: Critical system module - contains core admin setup and permissions\n\n💡 To resolve this:\n   Option 1: Remove modules from the locked list in config.json\n   Option 2: Use --force to bypass lock protection (use with extreme caution)\n```\n\n## Best Practices\n\n### 1. **Module Organization**\n\n- Use descriptive module names that reflect functional areas\n- Keep modules focused on single concerns\n- Use gapped numbering to allow future insertions\n\n### 2. **Migration Writing**\n\n- Always write corresponding down migrations\n- Use `IF NOT EXISTS` and `IF EXISTS` for idempotent operations\n- Test migrations in development before applying to production\n\n### 3. **Dependency Management**\n\n- Clearly define module dependencies in config.json\n- Avoid circular dependencies\n- Keep dependency chains shallow when possible\n\n### 4. **Module Lock Protection**\n\n- Lock critical modules to prevent accidental rollbacks\n- Use descriptive lock reasons to explain why modules are protected\n- Reserve locks for essential infrastructure modules (admin, core schema)\n- Document locked modules in team procedures\n\n### 5. **Safety Practices**\n\n- Use dry-run mode to preview changes\n- Validate rollback safety before applying\n- Use force flag sparingly and with caution\n- Test migration paths in development environments\n\n### 6. **Environment Management**\n\n- Use environment variables for all connection details\n- Never commit credentials to version control\n- Use different databases for different environments\n\n## Troubleshooting\n\n### Common Issues\n\n#### 1. **Connection Errors**\n\n```bash\n# Verify SurrealDB is running\nsurreal start --log trace --user root --pass root memory\n\n# Check environment variables\necho $SURREALDB_URL\n```\n\n#### 2. **Module Not Found**\n\n```bash\n# List available modules\nnx run database:status\n\n# Check module naming (case sensitive)\nls database/\n```\n\n#### 3. **Dependency Conflicts**\n\n```bash\n# Check dependency graph\nnx run database:status --detailed\n\n# Validate rollback safety\nnx run database:rollback --module mymodule --dryRun\n```\n\n#### 4. **Migration State Issues**\n\n```bash\n# Check current state\nnx run database:status --module mymodule --detailed\n\n# Force apply if needed (use with caution)\nnx run database:migrate --module mymodule --force\n```\n\n#### 5. **Module Lock Issues**\n\n```bash\n# Check which modules are locked\nnx run database:status --detailed\n\n# Identify locked modules blocking rollback\nnx run database:rollback --module mymodule --dryRun\n\n# Remove lock from config.json (for non-critical modules)\n# Edit database/config.json and remove \"locked\": true\n\n# Emergency override (use extreme caution)\nnx run database:rollback --module mymodule --force\n```\n\n#### 6. **Lock Configuration Errors**\n\n```bash\n# Validate config syntax\nnx run database:status\n\n# Common config issues:\n# - Missing comma after \"depends\": [\"other_module\"]\n# - Typo in \"locked\": true (must be boolean)\n# - Missing quotes around lockReason string\n```\n\n## Code Architecture\n\n### 🏗️ **Repository Pattern Architecture**\n\nThis plugin follows the **Repository Pattern** with clean separation of concerns\nand domain-driven design:\n\n```\nsrc/lib/\n├── infrastructure/          # Database connectivity, utilities\n│   ├── client.ts           # SurrealDB client wrapper\n│   ├── debug.ts            # Debugging utilities\n│   ├── env.ts              # Environment variable handling\n│   └── project.ts          # NX project integration\n├── configuration/          # Configuration management\n│   ├── config-loader.ts    # Module config loading\n│   └── types.ts           # Type definitions\n├── filesystem/            # File system operations\n│   ├── migration-file-processor.ts  # Migration file handling\n│   └── tree-utils.ts                # NX Tree utilities\n└── domain/               # Core business logic\n    ├── dependency-resolver.ts       # Module dependency management\n    ├── migration-repository.ts      # Data access layer\n    ├── migration-service.ts         # Business logic orchestration\n    └── module-lock-manager.ts       # Module lock protection\n```\n\n### 🔄 **Repository Pattern Implementation**\n\n#### **MigrationRepository** (Data Access Layer)\n\n**Responsibility**: Database operations for migration state management\n\n```typescript\n// Simple CRUD operations\nasync addMigration(record: MigrationRecord): Promise<void>\nasync findLastMigrations(moduleIds: string[]): Promise<Migration[]>\nasync getLatestMigrationStatus(number: string, name: string): Promise<Migration | null>\n```\n\n#### **MigrationService** (Business Logic Layer)\n\n**Responsibility**: Orchestrate migration workflows and business rules\n\n```typescript\n// Complex workflow and rules\nasync executeMigrations(modules?: string[]): Promise<MigrationResult>\nasync validateRollback(modules: string[]): Promise<RollbackValidation>\nasync findPendingMigrations(modules?: string[]): Promise<MigrationFile[]>\n```\n\n#### **ModuleLockManager** (Security Layer)\n\n**Responsibility**: Module lock protection and validation\n\n```typescript\n// Lock validation and management\nvalidateRollbackLock(moduleIds: string[]): { canRollback: boolean; blockedModules: string[] }\nvalidateMigrationLock(moduleIds: string[]): { canMigrate: boolean; blockedModules: string[] }\nisModuleLocked(moduleId: string): boolean\n```\n\n#### **Communication Pattern**\n\n```\nMigrationService (Business Logic)\n    ↓ delegates data operations\nMigrationRepository (Data Access)\n    ↓ executes queries\nSurrealDBClient (Database)\n\nModuleLockManager (Security)\n    ↓ validates lock policies\nMigrationService (Business Logic)\n```\n\n### 🎯 **Design Benefits**\n\n✅ **Single Responsibility**: Each class has one clear purpose  \n✅ **Testability**: Data access can be mocked, business logic tested\nseparately  \n✅ **Maintainability**: Changes to business rules don't affect data access  \n✅ **Scalability**: Can swap database implementations without changing business\nlogic  \n✅ **Repository Pattern**: Industry-standard data access abstraction\n\n### 🧪 **Test-Driven Development**\n\n- **Comprehensive Test Coverage**: All components follow TDD methodology\n- **Layer Testing**: Repository and Service layers tested independently\n- **Integration Tests**: End-to-end workflow validation\n- **Mock-friendly**: Clean interfaces enable easy mocking for unit tests\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes with tests\n4. Ensure all tests pass: `nx test nx-surrealdb`\n5. Submit a pull request\n\n## Development & Contributing\n\n### Local Development\n\n```bash\n# Build the plugin\nnx build nx-surrealdb\n\n# Run tests\nnx test nx-surrealdb\n\n# Run linting\nnx lint nx-surrealdb\n\n# Test locally by copying to node_modules\ncp -r dist/* node_modules/@deepbrainspace/nx-surrealdb/\n```\n\n### Local Development & Testing\n\n```bash\n# Build the plugin\nnx build nx-surrealdb\n\n# Run tests with coverage\nnx test nx-surrealdb --code-coverage\n\n# Run linting (zero warnings required)\nnx lint nx-surrealdb\n\n# Test locally in another project\ncd packages/nx-surrealdb\nnpm pack\n# Copy *.tgz to test project and: npm install package.tgz\n```\n\n### Testing Your Plugin\n\nCreate a test NX workspace to validate functionality:\n\n```bash\n# Create test workspace\nnpx create-nx-workspace@latest test-workspace --preset=empty\ncd test-workspace\n\n# Install your local plugin\nnpm install /path/to/nx-plugins/packages/nx-surrealdb/*.tgz\n\n# Test plugin functionality\nnx g @deepbrainspace/nx-surrealdb:init database\nnx g @deepbrainspace/nx-surrealdb:migration setup --project=database\n```\n\n### Architecture\n\nSee [ARCHITECTURE.md](./ARCHITECTURE.md) for detailed system design, including:\n\n- Repository Pattern implementation\n- Domain-Driven Design principles\n- Component interaction diagrams\n- Data flow documentation\n\n## License\n\nMIT License - see LICENSE file for details.\n\n## Support\n\n- [GitHub Issues](https://github.com/deepbrainspace/goodiebag/issues)\n- [Documentation](https://github.com/deepbrainspace/goodiebag/tree/main/packages/nx-surrealdb)\n- [SurrealDB Community](https://surrealdb.com/community)\n","readmeFilename":"README.md"}