devmind 1.0.2 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +138 -162
- package/dist/cli/handlers.d.ts +2 -0
- package/dist/cli/handlers.js +140 -0
- package/dist/cli/handlers.js.map +1 -0
- package/dist/cli/register-all.d.ts +2 -0
- package/dist/cli/register-all.js +11 -0
- package/dist/cli/register-all.js.map +1 -0
- package/dist/cli/register-analysis.d.ts +2 -0
- package/dist/cli/register-analysis.js +137 -0
- package/dist/cli/register-analysis.js.map +1 -0
- package/dist/cli/register-codebase.d.ts +2 -0
- package/dist/cli/register-codebase.js +22 -0
- package/dist/cli/register-codebase.js.map +1 -0
- package/dist/cli/register-database.d.ts +2 -0
- package/dist/cli/register-database.js +48 -0
- package/dist/cli/register-database.js.map +1 -0
- package/dist/cli/register-memory.d.ts +2 -0
- package/dist/cli/register-memory.js +58 -0
- package/dist/cli/register-memory.js.map +1 -0
- package/dist/cli.js +9 -316
- package/dist/cli.js.map +1 -1
- package/dist/codebase/generators/architecture-extractor.d.ts +41 -0
- package/dist/codebase/generators/architecture-extractor.js +388 -0
- package/dist/codebase/generators/architecture-extractor.js.map +1 -0
- package/dist/codebase/generators/architecture.d.ts +2 -4
- package/dist/codebase/generators/architecture.js +123 -30
- package/dist/codebase/generators/architecture.js.map +1 -1
- package/dist/codebase/generators/modules.js +8 -8
- package/dist/codebase/generators/overview.js +24 -24
- package/dist/codebase/index.js +3 -3
- package/dist/codebase/index.js.map +1 -1
- package/dist/codebase/parsers/typescript.d.ts +1 -0
- package/dist/codebase/parsers/typescript.js +12 -0
- package/dist/codebase/parsers/typescript.js.map +1 -1
- package/dist/codebase/scanners/filesystem.d.ts +1 -0
- package/dist/codebase/scanners/filesystem.js +128 -4
- package/dist/codebase/scanners/filesystem.js.map +1 -1
- package/dist/commands/analyze.d.ts +1 -0
- package/dist/commands/analyze.js +172 -24
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/audit-design.d.ts +8 -0
- package/dist/commands/audit-design.js +158 -0
- package/dist/commands/audit-design.js.map +1 -0
- package/dist/commands/audit-report.d.ts +18 -0
- package/dist/commands/audit-report.js +30 -0
- package/dist/commands/audit-report.js.map +1 -0
- package/dist/commands/audit-source.d.ts +21 -0
- package/dist/commands/audit-source.js +59 -0
- package/dist/commands/audit-source.js.map +1 -0
- package/dist/commands/audit.d.ts +1 -0
- package/dist/commands/audit.js +174 -73
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/claude-plugin.d.ts +8 -0
- package/dist/commands/claude-plugin.js +123 -0
- package/dist/commands/claude-plugin.js.map +1 -0
- package/dist/commands/codex-plugin.d.ts +9 -0
- package/dist/commands/codex-plugin.js +145 -0
- package/dist/commands/codex-plugin.js.map +1 -0
- package/dist/commands/context.js +66 -5
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/design-system.d.ts +8 -0
- package/dist/commands/design-system.js +95 -0
- package/dist/commands/design-system.js.map +1 -0
- package/dist/commands/extract.d.ts +13 -0
- package/dist/commands/extract.js +83 -17
- package/dist/commands/extract.js.map +1 -1
- package/dist/commands/openclaw-plugin.d.ts +8 -0
- package/dist/commands/openclaw-plugin.js +103 -0
- package/dist/commands/openclaw-plugin.js.map +1 -0
- package/dist/commands/retrieve.d.ts +12 -0
- package/dist/commands/retrieve.js +234 -0
- package/dist/commands/retrieve.js.map +1 -0
- package/dist/commands/status.d.ts +1 -0
- package/dist/commands/status.js +54 -18
- package/dist/commands/status.js.map +1 -1
- package/dist/core/cache-json.d.ts +7 -0
- package/dist/core/cache-json.js +60 -0
- package/dist/core/cache-json.js.map +1 -0
- package/dist/core/errors.d.ts +2 -0
- package/dist/core/errors.js +49 -1
- package/dist/core/errors.js.map +1 -1
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.js +4 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/learning-parser.d.ts +6 -0
- package/dist/core/learning-parser.js +23 -0
- package/dist/core/learning-parser.js.map +1 -0
- package/dist/core/profile.d.ts +18 -0
- package/dist/core/profile.js +37 -0
- package/dist/core/profile.js.map +1 -0
- package/dist/core/source-file-cache.d.ts +13 -0
- package/dist/core/source-file-cache.js +88 -0
- package/dist/core/source-file-cache.js.map +1 -0
- package/dist/database/cli/register-all.d.ts +2 -0
- package/dist/database/cli/register-all.js +9 -0
- package/dist/database/cli/register-all.js.map +1 -0
- package/dist/database/cli/register-database.d.ts +2 -0
- package/dist/database/cli/register-database.js +48 -0
- package/dist/database/cli/register-database.js.map +1 -0
- package/dist/database/cli/register-interactive.d.ts +2 -0
- package/dist/database/cli/register-interactive.js +29 -0
- package/dist/database/cli/register-interactive.js.map +1 -0
- package/dist/database/cli/register-memory.d.ts +2 -0
- package/dist/database/cli/register-memory.js +47 -0
- package/dist/database/cli/register-memory.js.map +1 -0
- package/dist/database/cli.js +5 -112
- package/dist/database/cli.js.map +1 -1
- package/dist/database/commands/checkpoint.js +8 -10
- package/dist/database/commands/checkpoint.js.map +1 -1
- package/dist/database/commands/generate.d.ts +1 -0
- package/dist/database/commands/generate.js +28 -20
- package/dist/database/commands/generate.js.map +1 -1
- package/dist/database/commands/handoff.js +126 -125
- package/dist/database/commands/handoff.js.map +1 -1
- package/dist/database/commands/learn.d.ts +4 -0
- package/dist/database/commands/learn.js +249 -43
- package/dist/database/commands/learn.js.map +1 -1
- package/dist/database/commands/memory.js +114 -114
- package/dist/database/commands/validate.js +6 -4
- package/dist/database/commands/validate.js.map +1 -1
- package/dist/database/commands/watch.js +2 -2
- package/dist/database/commands/watch.js.map +1 -1
- package/dist/database/extractors/mysql.js +45 -45
- package/dist/database/extractors/postgres.js +54 -54
- package/dist/database/extractors/sqlite.js +8 -8
- package/dist/database/generators/templates.js +534 -534
- package/dist/database/generators/templates.js.map +1 -1
- package/dist/database/utils/json-output.d.ts +4 -0
- package/dist/database/utils/json-output.js +7 -0
- package/dist/database/utils/json-output.js.map +1 -1
- package/dist/generators/unified.d.ts +13 -0
- package/dist/generators/unified.js +391 -46
- package/dist/generators/unified.js.map +1 -1
- package/package.json +86 -78
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/database/commands/validate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/database/commands/validate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACL,eAAe,EAEf,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,gCAAgC;AAY1D,KAAK,UAAU,+BAA+B,CAAC,QAAgB;IAC7D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;IACzE,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC9C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,uBAAuB;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAC/D,qBAAqB;IACrB,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;IAElD,IAAI,MAAW,CAAC;IAEhB,0BAA0B;IAC1B,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;IACH,CAAC;SAAM,IAAI,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;IACH,CAAC;SAAM,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAqB;QAC/B,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,IAAI,CAAC;QACH,IAAI,aAAa,GAAkB,YAAY,CAAC;QAChD,IAAI,gBAAgB,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACtE,IAAI,UAA8B,CAAC;QAEnC,6BAA6B;QAC7B,IAAI,EAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAC1C,aAAa,GAAG,QAAQ,CAAC;YACzB,UAAU,GAAG,sBAAsB,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,aAAa,GAAG,SAAS,CAAC;YAC1B,UAAU,GAAG,kBAAkB,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACnC,CAAC;aAAM,IACL,gBAAgB;YAChB,CAAC,gBAAgB,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAC5F,CAAC;YACD,aAAa,GAAG,SAAS,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC;YACtD,aAAa,GAAG,UAAU,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,gBAAgB,EAAE,CAAC;YAC5B,IAAI,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,aAAa,GAAG,OAAO,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpF,aAAa,GAAG,QAAQ,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,gBAAgB,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,yBAAyB;QACzB,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAE5C,8EAA8E;QAC9E,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,gBAAgB,IAAI,OAAO,EAAE;YAClF,UAAU;YACV,SAAS,EAAE,MAAM,CAAC,eAAe;YACjC,kBAAkB,EAAE,MAAM,CAAC,WAAW;SACvC,CAAC,CAAC;QAEH,IAAI,aAAgC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;YAC5C,aAAa,GAAG,sBAAsB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC;gBAAS,CAAC;YACT,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBACpB,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,oBAAoB,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAE/D,yCAAyC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,EAAE,WAAW,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,EAAE,WAAW,CAAC,CAAC;QAEzE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YACrB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,iDAAiD;QACjD,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC5C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAE1C,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,MAAM,+BAA+B,CAAC,UAAU,CAAC,CAAC;YACvE,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,MAAM,+BAA+B,CAAC,UAAU,CAAC,CAAC;YACvE,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,yBAAyB,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7D,kBAAkB;QAClB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACpC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3E,gDAAgD;QAChD,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,iDAAiD,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;YACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,SAAS,kDAAkD,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzC,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACzC,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;oBACtB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,kBAAkB,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACpC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;YACjE,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;YAC1E,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC/E,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBACjD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;QACH,CAAC;QAED,UAAU;QACV,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,sBAAsB,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,yBAAyB,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,WAAW,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAc,CAAC,CAAC;IACrD,CAAC;AACH,CAAC"}
|
|
@@ -41,7 +41,7 @@ export async function watch(options) {
|
|
|
41
41
|
generating = true;
|
|
42
42
|
logger.info(`Schema change detected, regenerating...`);
|
|
43
43
|
try {
|
|
44
|
-
await generate({});
|
|
44
|
+
await generate({ throwOnError: true });
|
|
45
45
|
logger.success('Regeneration complete');
|
|
46
46
|
}
|
|
47
47
|
catch (error) {
|
|
@@ -71,7 +71,7 @@ export async function watch(options) {
|
|
|
71
71
|
logger.info('');
|
|
72
72
|
logger.info('Stopping watch mode...');
|
|
73
73
|
watchers.forEach((watcher) => watcher.close());
|
|
74
|
-
process.
|
|
74
|
+
process.exitCode = 0;
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
77
|
//# sourceMappingURL=watch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/database/commands/watch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAM7C,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,OAAqB;IAC/C,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;IAE1D,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACrC,MAAM,CAAC,IAAI,CAAC,gBAAgB,QAAQ,IAAI,CAAC,CAAC;IAE1C,+BAA+B;IAC/B,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,IAAI,EAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC1C,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACtC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACvC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAE9D,IAAI,aAAa,GAA0B,IAAI,CAAC;IAChD,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,IAAI,UAAU;YAAE,OAAO;QAEvB,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QAEvD,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/database/commands/watch.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,15 +53,15 @@ export class MySQLExtractor {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
async extractTables(connection) {
|
|
56
|
-
const [rows] = await connection.query(`
|
|
57
|
-
SELECT
|
|
58
|
-
TABLE_NAME as table_name,
|
|
59
|
-
TABLE_COMMENT as table_comment,
|
|
60
|
-
ENGINE as engine,
|
|
61
|
-
AUTO_INCREMENT as auto_increment
|
|
62
|
-
FROM information_schema.TABLES
|
|
63
|
-
WHERE TABLE_SCHEMA = ? AND TABLE_TYPE = 'BASE TABLE'
|
|
64
|
-
ORDER BY TABLE_NAME
|
|
56
|
+
const [rows] = await connection.query(`
|
|
57
|
+
SELECT
|
|
58
|
+
TABLE_NAME as table_name,
|
|
59
|
+
TABLE_COMMENT as table_comment,
|
|
60
|
+
ENGINE as engine,
|
|
61
|
+
AUTO_INCREMENT as auto_increment
|
|
62
|
+
FROM information_schema.TABLES
|
|
63
|
+
WHERE TABLE_SCHEMA = ? AND TABLE_TYPE = 'BASE TABLE'
|
|
64
|
+
ORDER BY TABLE_NAME
|
|
65
65
|
`, [this.databaseName]);
|
|
66
66
|
return rows.map((row) => ({
|
|
67
67
|
name: row.table_name,
|
|
@@ -71,17 +71,17 @@ export class MySQLExtractor {
|
|
|
71
71
|
}));
|
|
72
72
|
}
|
|
73
73
|
async extractColumns(connection, tableName) {
|
|
74
|
-
const [rows] = await connection.query(`
|
|
75
|
-
SELECT
|
|
76
|
-
COLUMN_NAME as column_name,
|
|
77
|
-
COLUMN_TYPE as column_type,
|
|
78
|
-
IS_NULLABLE as is_nullable,
|
|
79
|
-
COLUMN_DEFAULT as column_default,
|
|
80
|
-
EXTRA as extra,
|
|
81
|
-
COLUMN_COMMENT as column_comment
|
|
82
|
-
FROM information_schema.COLUMNS
|
|
83
|
-
WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
|
|
84
|
-
ORDER BY ORDINAL_POSITION
|
|
74
|
+
const [rows] = await connection.query(`
|
|
75
|
+
SELECT
|
|
76
|
+
COLUMN_NAME as column_name,
|
|
77
|
+
COLUMN_TYPE as column_type,
|
|
78
|
+
IS_NULLABLE as is_nullable,
|
|
79
|
+
COLUMN_DEFAULT as column_default,
|
|
80
|
+
EXTRA as extra,
|
|
81
|
+
COLUMN_COMMENT as column_comment
|
|
82
|
+
FROM information_schema.COLUMNS
|
|
83
|
+
WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
|
|
84
|
+
ORDER BY ORDINAL_POSITION
|
|
85
85
|
`, [this.databaseName, tableName]);
|
|
86
86
|
return rows.map((row) => ({
|
|
87
87
|
name: row.column_name,
|
|
@@ -93,22 +93,22 @@ export class MySQLExtractor {
|
|
|
93
93
|
}));
|
|
94
94
|
}
|
|
95
95
|
async extractIndexes(connection, tableName) {
|
|
96
|
-
const [rows] = await connection.query(`
|
|
97
|
-
SELECT
|
|
98
|
-
INDEX_NAME as index_name,
|
|
99
|
-
NON_UNIQUE as non_unique,
|
|
100
|
-
INDEX_TYPE as index_type,
|
|
101
|
-
GROUP_CONcat(COLUMN_NAME ORDER BY SEQ_IN_INDEX) as columns
|
|
102
|
-
FROM information_schema.STATISTICS
|
|
103
|
-
WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
|
|
104
|
-
GROUP BY INDEX_NAME, NON_UNIQUE, INDEX_TYPE
|
|
96
|
+
const [rows] = await connection.query(`
|
|
97
|
+
SELECT
|
|
98
|
+
INDEX_NAME as index_name,
|
|
99
|
+
NON_UNIQUE as non_unique,
|
|
100
|
+
INDEX_TYPE as index_type,
|
|
101
|
+
GROUP_CONcat(COLUMN_NAME ORDER BY SEQ_IN_INDEX) as columns
|
|
102
|
+
FROM information_schema.STATISTICS
|
|
103
|
+
WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
|
|
104
|
+
GROUP BY INDEX_NAME, NON_UNIQUE, INDEX_TYPE
|
|
105
105
|
`, [this.databaseName, tableName]);
|
|
106
106
|
// Also get primary key info
|
|
107
|
-
const [pkRows] = await connection.query(`
|
|
108
|
-
SELECT
|
|
109
|
-
INDEX_NAME as index_name
|
|
110
|
-
FROM information_schema.STATISTICS
|
|
111
|
-
WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ? AND INDEX_NAME = 'PRIMARY'
|
|
107
|
+
const [pkRows] = await connection.query(`
|
|
108
|
+
SELECT
|
|
109
|
+
INDEX_NAME as index_name
|
|
110
|
+
FROM information_schema.STATISTICS
|
|
111
|
+
WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ? AND INDEX_NAME = 'PRIMARY'
|
|
112
112
|
`, [this.databaseName, tableName]);
|
|
113
113
|
const primaryKeyIndexNames = pkRows.map((row) => row.index_name);
|
|
114
114
|
return rows.map((row) => {
|
|
@@ -124,17 +124,17 @@ export class MySQLExtractor {
|
|
|
124
124
|
});
|
|
125
125
|
}
|
|
126
126
|
async extractForeignKeys(connection, tableName) {
|
|
127
|
-
const [rows] = await connection.query(`
|
|
128
|
-
SELECT
|
|
129
|
-
COLUMN_NAME as column_name,
|
|
130
|
-
REFERENCED_TABLE_NAME as referenced_table_name,
|
|
131
|
-
REFERENCED_COLUMN_NAME as referenced_column_name,
|
|
132
|
-
DELETE_RULE as delete_rule,
|
|
133
|
-
UPDATE_RULE as update_rule
|
|
134
|
-
FROM information_schema.KEY_COLUMN_USAGE
|
|
135
|
-
WHERE TABLE_SCHEMA = ?
|
|
136
|
-
AND TABLE_NAME = ?
|
|
137
|
-
AND REFERENCED_TABLE_NAME IS NOT NULL
|
|
127
|
+
const [rows] = await connection.query(`
|
|
128
|
+
SELECT
|
|
129
|
+
COLUMN_NAME as column_name,
|
|
130
|
+
REFERENCED_TABLE_NAME as referenced_table_name,
|
|
131
|
+
REFERENCED_COLUMN_NAME as referenced_column_name,
|
|
132
|
+
DELETE_RULE as delete_rule,
|
|
133
|
+
UPDATE_RULE as update_rule
|
|
134
|
+
FROM information_schema.KEY_COLUMN_USAGE
|
|
135
|
+
WHERE TABLE_SCHEMA = ?
|
|
136
|
+
AND TABLE_NAME = ?
|
|
137
|
+
AND REFERENCED_TABLE_NAME IS NOT NULL
|
|
138
138
|
`, [this.databaseName, tableName]);
|
|
139
139
|
return rows.map((row) => ({
|
|
140
140
|
column: row.column_name,
|
|
@@ -41,14 +41,14 @@ export class PostgresExtractor {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
async extractTables(client, schemaName) {
|
|
44
|
-
const query = `
|
|
45
|
-
SELECT t.table_name, obj_description(c.oid, 'pg_class') as description
|
|
46
|
-
FROM information_schema.tables t
|
|
47
|
-
LEFT JOIN pg_class c ON c.relname = t.table_name
|
|
48
|
-
LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
49
|
-
WHERE t.table_schema = $1
|
|
50
|
-
AND t.table_type = 'BASE TABLE'
|
|
51
|
-
ORDER BY t.table_name
|
|
44
|
+
const query = `
|
|
45
|
+
SELECT t.table_name, obj_description(c.oid, 'pg_class') as description
|
|
46
|
+
FROM information_schema.tables t
|
|
47
|
+
LEFT JOIN pg_class c ON c.relname = t.table_name
|
|
48
|
+
LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
49
|
+
WHERE t.table_schema = $1
|
|
50
|
+
AND t.table_type = 'BASE TABLE'
|
|
51
|
+
ORDER BY t.table_name
|
|
52
52
|
`;
|
|
53
53
|
const result = await client.query(query, [schemaName]);
|
|
54
54
|
return result.rows.map((row) => ({
|
|
@@ -57,19 +57,19 @@ export class PostgresExtractor {
|
|
|
57
57
|
}));
|
|
58
58
|
}
|
|
59
59
|
async extractColumns(client, schemaName, tableName) {
|
|
60
|
-
const query = `
|
|
61
|
-
SELECT
|
|
62
|
-
c.column_name,
|
|
63
|
-
c.data_type,
|
|
64
|
-
c.is_nullable = 'YES' as is_nullable,
|
|
65
|
-
c.column_default,
|
|
66
|
-
pg_catalog.col_description(
|
|
67
|
-
(SELECT c.oid FROM pg_class WHERE relname = $2)::regclass::oid,
|
|
68
|
-
c.ordinal_position
|
|
69
|
-
) as description
|
|
70
|
-
FROM information_schema.columns c
|
|
71
|
-
WHERE c.table_schema = $1 AND c.table_name = $2
|
|
72
|
-
ORDER BY c.ordinal_position
|
|
60
|
+
const query = `
|
|
61
|
+
SELECT
|
|
62
|
+
c.column_name,
|
|
63
|
+
c.data_type,
|
|
64
|
+
c.is_nullable = 'YES' as is_nullable,
|
|
65
|
+
c.column_default,
|
|
66
|
+
pg_catalog.col_description(
|
|
67
|
+
(SELECT c.oid FROM pg_class WHERE relname = $2)::regclass::oid,
|
|
68
|
+
c.ordinal_position
|
|
69
|
+
) as description
|
|
70
|
+
FROM information_schema.columns c
|
|
71
|
+
WHERE c.table_schema = $1 AND c.table_name = $2
|
|
72
|
+
ORDER BY c.ordinal_position
|
|
73
73
|
`;
|
|
74
74
|
const result = await client.query(query, [schemaName, tableName]);
|
|
75
75
|
return result.rows.map((row) => ({
|
|
@@ -81,19 +81,19 @@ export class PostgresExtractor {
|
|
|
81
81
|
}));
|
|
82
82
|
}
|
|
83
83
|
async extractIndexes(client, schemaName, tableName) {
|
|
84
|
-
const query = `
|
|
85
|
-
SELECT
|
|
86
|
-
i.relname as index_name,
|
|
87
|
-
array_agg(a.attname ORDER BY ix.indkey::integer[]) as columns,
|
|
88
|
-
ix.indisunique as is_unique,
|
|
89
|
-
ix.indisprimary as is_primary_key
|
|
90
|
-
FROM pg_class t
|
|
91
|
-
JOIN pg_index ix ON t.oid = ix.indrelid
|
|
92
|
-
JOIN pg_class i ON i.oid = ix.indexrelid
|
|
93
|
-
JOIN pg_namespace n ON n.oid = t.relnamespace
|
|
94
|
-
LEFT JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = ANY(ix.indkey::integer[])
|
|
95
|
-
WHERE t.relname = $1 AND n.nspname = $2
|
|
96
|
-
GROUP BY i.relname, ix.indisunique, ix.indisprimary
|
|
84
|
+
const query = `
|
|
85
|
+
SELECT
|
|
86
|
+
i.relname as index_name,
|
|
87
|
+
array_agg(a.attname ORDER BY ix.indkey::integer[]) as columns,
|
|
88
|
+
ix.indisunique as is_unique,
|
|
89
|
+
ix.indisprimary as is_primary_key
|
|
90
|
+
FROM pg_class t
|
|
91
|
+
JOIN pg_index ix ON t.oid = ix.indrelid
|
|
92
|
+
JOIN pg_class i ON i.oid = ix.indexrelid
|
|
93
|
+
JOIN pg_namespace n ON n.oid = t.relnamespace
|
|
94
|
+
LEFT JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = ANY(ix.indkey::integer[])
|
|
95
|
+
WHERE t.relname = $1 AND n.nspname = $2
|
|
96
|
+
GROUP BY i.relname, ix.indisunique, ix.indisprimary
|
|
97
97
|
`;
|
|
98
98
|
const result = await client.query(query, [tableName, schemaName]);
|
|
99
99
|
return result.rows.map((row) => ({
|
|
@@ -104,26 +104,26 @@ export class PostgresExtractor {
|
|
|
104
104
|
}));
|
|
105
105
|
}
|
|
106
106
|
async extractForeignKeys(client, schemaName, tableName) {
|
|
107
|
-
const query = `
|
|
108
|
-
SELECT
|
|
109
|
-
kcu.column_name,
|
|
110
|
-
ccu.table_name AS references_table,
|
|
111
|
-
ccu.column_name AS references_column,
|
|
112
|
-
rc.delete_rule AS on_delete,
|
|
113
|
-
rc.update_rule AS on_update
|
|
114
|
-
FROM information_schema.table_constraints AS tc
|
|
115
|
-
JOIN information_schema.key_column_usage AS kcu
|
|
116
|
-
ON tc.constraint_name = kcu.constraint_name
|
|
117
|
-
AND tc.table_schema = kcu.table_schema
|
|
118
|
-
JOIN information_schema.constraint_column_usage AS ccu
|
|
119
|
-
ON ccu.constraint_name = tc.constraint_name
|
|
120
|
-
AND ccu.table_schema = tc.table_schema
|
|
121
|
-
JOIN information_schema.referential_constraints AS rc
|
|
122
|
-
ON tc.constraint_name = rc.constraint_name
|
|
123
|
-
AND tc.table_schema = rc.constraint_schema
|
|
124
|
-
WHERE tc.constraint_type = 'FOREIGN KEY'
|
|
125
|
-
AND tc.table_schema = $1
|
|
126
|
-
AND tc.table_name = $2
|
|
107
|
+
const query = `
|
|
108
|
+
SELECT
|
|
109
|
+
kcu.column_name,
|
|
110
|
+
ccu.table_name AS references_table,
|
|
111
|
+
ccu.column_name AS references_column,
|
|
112
|
+
rc.delete_rule AS on_delete,
|
|
113
|
+
rc.update_rule AS on_update
|
|
114
|
+
FROM information_schema.table_constraints AS tc
|
|
115
|
+
JOIN information_schema.key_column_usage AS kcu
|
|
116
|
+
ON tc.constraint_name = kcu.constraint_name
|
|
117
|
+
AND tc.table_schema = kcu.table_schema
|
|
118
|
+
JOIN information_schema.constraint_column_usage AS ccu
|
|
119
|
+
ON ccu.constraint_name = tc.constraint_name
|
|
120
|
+
AND ccu.table_schema = tc.table_schema
|
|
121
|
+
JOIN information_schema.referential_constraints AS rc
|
|
122
|
+
ON tc.constraint_name = rc.constraint_name
|
|
123
|
+
AND tc.table_schema = rc.constraint_schema
|
|
124
|
+
WHERE tc.constraint_type = 'FOREIGN KEY'
|
|
125
|
+
AND tc.table_schema = $1
|
|
126
|
+
AND tc.table_name = $2
|
|
127
127
|
`;
|
|
128
128
|
const result = await client.query(query, [schemaName, tableName]);
|
|
129
129
|
return result.rows.map((row) => ({
|
|
@@ -36,14 +36,14 @@ export class SQLiteExtractor {
|
|
|
36
36
|
}
|
|
37
37
|
extractTables(db) {
|
|
38
38
|
return new Promise((resolve, reject) => {
|
|
39
|
-
db.all(`
|
|
40
|
-
SELECT
|
|
41
|
-
name,
|
|
42
|
-
sql
|
|
43
|
-
FROM sqlite_master
|
|
44
|
-
WHERE type = 'table'
|
|
45
|
-
AND name NOT LIKE 'sqlite_%'
|
|
46
|
-
ORDER BY name
|
|
39
|
+
db.all(`
|
|
40
|
+
SELECT
|
|
41
|
+
name,
|
|
42
|
+
sql
|
|
43
|
+
FROM sqlite_master
|
|
44
|
+
WHERE type = 'table'
|
|
45
|
+
AND name NOT LIKE 'sqlite_%'
|
|
46
|
+
ORDER BY name
|
|
47
47
|
`, (err, rows) => {
|
|
48
48
|
if (err) {
|
|
49
49
|
reject(err);
|