@warlock.js/core 4.0.48 → 4.0.59
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/esm/application.d.ts +27 -0
- package/esm/application.d.ts.map +1 -0
- package/esm/bootstrap/setup.d.ts +2 -0
- package/esm/bootstrap/setup.d.ts.map +1 -0
- package/esm/bootstrap/setup.js +14 -0
- package/esm/bootstrap/setup.js.map +1 -0
- package/esm/bootstrap.d.ts +2 -0
- package/esm/bootstrap.d.ts.map +1 -0
- package/esm/bootstrap.js +5 -0
- package/esm/bootstrap.js.map +1 -0
- package/esm/cache/database-cache-driver.d.ts +56 -0
- package/esm/cache/database-cache-driver.d.ts.map +1 -0
- package/esm/cache/database-cache-driver.js +112 -0
- package/esm/cache/database-cache-driver.js.map +1 -0
- package/esm/cache/index.d.ts +3 -0
- package/esm/cache/index.d.ts.map +1 -0
- package/esm/cache/index.js +1 -0
- package/esm/cache/index.js.map +1 -0
- package/esm/cli/cli-command.d.ts +115 -0
- package/esm/cli/cli-command.d.ts.map +1 -0
- package/esm/cli/cli-command.js +227 -0
- package/esm/cli/cli-command.js.map +1 -0
- package/esm/cli/cli-commands.manager.d.ts +71 -0
- package/esm/cli/cli-commands.manager.d.ts.map +1 -0
- package/esm/cli/cli-commands.manager.js +348 -0
- package/esm/cli/cli-commands.manager.js.map +1 -0
- package/esm/cli/cli-commands.utils.d.ts +73 -0
- package/esm/cli/cli-commands.utils.d.ts.map +1 -0
- package/esm/cli/cli-commands.utils.js +195 -0
- package/esm/cli/cli-commands.utils.js.map +1 -0
- package/esm/cli/commands/add.command.d.ts +2 -0
- package/esm/cli/commands/add.command.d.ts.map +1 -0
- package/esm/cli/commands/add.command.js +15 -0
- package/esm/cli/commands/add.command.js.map +1 -0
- package/esm/cli/commands/build.command.d.ts +2 -0
- package/esm/cli/commands/build.command.d.ts.map +1 -0
- package/esm/cli/commands/build.command.js +8 -0
- package/esm/cli/commands/build.command.js.map +1 -0
- package/esm/cli/commands/dev-server.command.d.ts +2 -0
- package/esm/cli/commands/dev-server.command.d.ts.map +1 -0
- package/esm/cli/commands/dev-server.command.js +16 -0
- package/esm/cli/commands/dev-server.command.js.map +1 -0
- package/esm/cli/commands/migrate.command.d.ts +2 -0
- package/esm/cli/commands/migrate.command.d.ts.map +1 -0
- package/esm/cli/commands/migrate.command.js +37 -0
- package/esm/cli/commands/migrate.command.js.map +1 -0
- package/esm/cli/commands/seed.command.d.ts +2 -0
- package/esm/cli/commands/seed.command.d.ts.map +1 -0
- package/esm/cli/commands/seed.command.js +17 -0
- package/esm/cli/commands/seed.command.js.map +1 -0
- package/esm/cli/commands/start-production.command.d.ts +2 -0
- package/esm/cli/commands/start-production.command.d.ts.map +1 -0
- package/esm/cli/commands/start-production.command.js +65 -0
- package/esm/cli/commands/start-production.command.js.map +1 -0
- package/esm/cli/commands/typings-generator.command.d.ts +2 -0
- package/esm/cli/commands/typings-generator.command.d.ts.map +1 -0
- package/esm/cli/commands/typings-generator.command.js +37 -0
- package/esm/cli/commands/typings-generator.command.js.map +1 -0
- package/esm/cli/commands-loader.d.ts +18 -0
- package/esm/cli/commands-loader.d.ts.map +1 -0
- package/esm/cli/commands-loader.js +45 -0
- package/esm/cli/commands-loader.js.map +1 -0
- package/esm/cli/framework-cli-commands.d.ts +2 -0
- package/esm/cli/framework-cli-commands.d.ts.map +1 -0
- package/esm/cli/framework-cli-commands.js +11 -0
- package/esm/cli/framework-cli-commands.js.map +1 -0
- package/esm/cli/index.d.ts +3 -0
- package/esm/cli/index.d.ts.map +1 -0
- package/esm/cli/index.js +1 -4
- package/esm/cli/index.js.map +1 -1
- package/esm/cli/parse-cli-args.d.ts +18 -0
- package/esm/cli/parse-cli-args.d.ts.map +1 -0
- package/esm/cli/parse-cli-args.js +82 -0
- package/esm/cli/parse-cli-args.js.map +1 -0
- package/esm/cli/start.d.ts +2 -0
- package/esm/cli/start.d.ts.map +1 -0
- package/esm/cli/start.js +2 -6
- package/esm/cli/start.js.map +1 -1
- package/esm/cli/string-similarity.d.ts +44 -0
- package/esm/cli/string-similarity.d.ts.map +1 -0
- package/esm/cli/string-similarity.js +57 -0
- package/esm/cli/string-similarity.js.map +1 -0
- package/esm/cli/types.d.ts +206 -0
- package/esm/cli/types.d.ts.map +1 -0
- package/esm/config/config-getter.d.ts +35 -0
- package/esm/config/config-getter.d.ts.map +1 -0
- package/esm/config/config-getter.js +21 -0
- package/esm/config/config-getter.js.map +1 -0
- package/esm/config/config-handlers.d.ts +19 -0
- package/esm/config/config-handlers.d.ts.map +1 -0
- package/esm/config/config-handlers.js +47 -0
- package/esm/config/config-handlers.js.map +1 -0
- package/esm/config/config-loader.d.ts +37 -0
- package/esm/config/config-loader.d.ts.map +1 -0
- package/esm/config/config-loader.js +85 -0
- package/esm/config/config-loader.js.map +1 -0
- package/esm/config/config-manager.d.ts +22 -0
- package/esm/config/config-manager.d.ts.map +1 -0
- package/esm/config/config-manager.js +25 -0
- package/esm/config/config-manager.js.map +1 -0
- package/esm/config/config-special-handlers.d.ts +17 -0
- package/esm/config/config-special-handlers.d.ts.map +1 -0
- package/esm/config/config-special-handlers.js +23 -0
- package/esm/config/config-special-handlers.js.map +1 -0
- package/esm/config/index.d.ts +5 -0
- package/esm/config/index.d.ts.map +1 -0
- package/esm/config/load-config-files.d.ts +6 -0
- package/esm/config/load-config-files.d.ts.map +1 -0
- package/esm/config/load-config-files.js +19 -0
- package/esm/config/load-config-files.js.map +1 -0
- package/esm/config/types.d.ts +52 -0
- package/esm/config/types.d.ts.map +1 -0
- package/esm/database/index.d.ts +4 -0
- package/esm/database/index.d.ts.map +1 -0
- package/esm/database/migrate-action.d.ts +8 -0
- package/esm/database/migrate-action.d.ts.map +1 -0
- package/esm/database/migrate-action.js +95 -0
- package/esm/database/migrate-action.js.map +1 -0
- package/esm/database/models/database-log/database-log.d.ts +16 -0
- package/esm/database/models/database-log/database-log.d.ts.map +1 -0
- package/esm/database/models/database-log/database-log.js +17 -0
- package/esm/database/models/database-log/database-log.js.map +1 -0
- package/esm/database/models/database-log/index.d.ts +2 -0
- package/esm/database/models/database-log/index.d.ts.map +1 -0
- package/esm/database/seed-command-action.d.ts +3 -0
- package/esm/database/seed-command-action.d.ts.map +1 -0
- package/esm/database/seed-command-action.js +36 -0
- package/esm/database/seed-command-action.js.map +1 -0
- package/esm/database/seeds/index.d.ts +3 -0
- package/esm/database/seeds/index.d.ts.map +1 -0
- package/esm/database/seeds/seeder.d.ts +36 -0
- package/esm/database/seeds/seeder.d.ts.map +1 -0
- package/esm/database/seeds/seeder.js +6 -0
- package/esm/database/seeds/seeder.js.map +1 -0
- package/esm/database/seeds/seeders.manager.d.ts +47 -0
- package/esm/database/seeds/seeders.manager.d.ts.map +1 -0
- package/esm/database/seeds/seeders.manager.js +137 -0
- package/esm/database/seeds/seeders.manager.js.map +1 -0
- package/esm/database/seeds/seeds-table-migration.d.ts +8 -0
- package/esm/database/seeds/seeds-table-migration.d.ts.map +1 -0
- package/esm/database/seeds/seeds-table-migration.js +18 -0
- package/esm/database/seeds/seeds-table-migration.js.map +1 -0
- package/esm/database/seeds/types.d.ts +13 -0
- package/esm/database/seeds/types.d.ts.map +1 -0
- package/esm/database/seeds/utils.d.ts +2 -0
- package/esm/database/seeds/utils.d.ts.map +1 -0
- package/esm/database/seeds/utils.js +1 -0
- package/esm/database/seeds/utils.js.map +1 -0
- package/esm/database/utils.d.ts +18 -0
- package/esm/database/utils.d.ts.map +1 -0
- package/esm/database/utils.js +30 -0
- package/esm/database/utils.js.map +1 -0
- package/esm/dev2-server/connectors/base-connector.d.ts +49 -0
- package/esm/dev2-server/connectors/base-connector.d.ts.map +1 -0
- package/esm/dev2-server/connectors/base-connector.js +48 -0
- package/esm/dev2-server/connectors/base-connector.js.map +1 -0
- package/esm/dev2-server/connectors/cache-connector.d.ts +23 -0
- package/esm/dev2-server/connectors/cache-connector.d.ts.map +1 -0
- package/esm/dev2-server/connectors/cache-connector.js +35 -0
- package/esm/dev2-server/connectors/cache-connector.js.map +1 -0
- package/esm/dev2-server/connectors/connectors-manager.d.ts +38 -0
- package/esm/dev2-server/connectors/connectors-manager.d.ts.map +1 -0
- package/esm/dev2-server/connectors/connectors-manager.js +81 -0
- package/esm/dev2-server/connectors/connectors-manager.js.map +1 -0
- package/esm/dev2-server/connectors/database-connector.d.ts +23 -0
- package/esm/dev2-server/connectors/database-connector.d.ts.map +1 -0
- package/esm/dev2-server/connectors/database-connector.js +51 -0
- package/esm/dev2-server/connectors/database-connector.js.map +1 -0
- package/esm/dev2-server/connectors/http-connector.d.ts +29 -0
- package/esm/dev2-server/connectors/http-connector.d.ts.map +1 -0
- package/esm/dev2-server/connectors/http-connector.js +69 -0
- package/esm/dev2-server/connectors/http-connector.js.map +1 -0
- package/esm/dev2-server/connectors/index.d.ts +12 -0
- package/esm/dev2-server/connectors/index.d.ts.map +1 -0
- package/esm/dev2-server/connectors/storage.connector.d.ts +23 -0
- package/esm/dev2-server/connectors/storage.connector.d.ts.map +1 -0
- package/esm/dev2-server/connectors/storage.connector.js +29 -0
- package/esm/dev2-server/connectors/storage.connector.js.map +1 -0
- package/esm/dev2-server/connectors/types.d.ts +51 -0
- package/esm/dev2-server/connectors/types.d.ts.map +1 -0
- package/esm/dev2-server/connectors/types.js +10 -0
- package/esm/dev2-server/connectors/types.js.map +1 -0
- package/esm/dev2-server/create-worker.d.ts +34 -0
- package/esm/dev2-server/create-worker.d.ts.map +1 -0
- package/esm/dev2-server/create-worker.js +37 -0
- package/esm/dev2-server/create-worker.js.map +1 -0
- package/esm/dev2-server/dependency-graph.d.ts +93 -0
- package/esm/dev2-server/dependency-graph.d.ts.map +1 -0
- package/esm/dev2-server/dependency-graph.js +266 -0
- package/esm/dev2-server/dependency-graph.js.map +1 -0
- package/esm/dev2-server/dev-logger.d.ts +14 -0
- package/esm/dev2-server/dev-logger.d.ts.map +1 -0
- package/esm/dev2-server/dev-logger.js +130 -0
- package/esm/dev2-server/dev-logger.js.map +1 -0
- package/esm/dev2-server/development-server.d.ts +47 -0
- package/esm/dev2-server/development-server.d.ts.map +1 -0
- package/esm/dev2-server/development-server.js +149 -0
- package/esm/dev2-server/development-server.js.map +1 -0
- package/esm/dev2-server/events.d.ts +5 -0
- package/esm/dev2-server/events.d.ts.map +1 -0
- package/esm/dev2-server/events.js +4 -0
- package/esm/dev2-server/events.js.map +1 -0
- package/esm/dev2-server/export-analyzer.d.ts +84 -0
- package/esm/dev2-server/export-analyzer.d.ts.map +1 -0
- package/esm/dev2-server/export-analyzer.js +206 -0
- package/esm/dev2-server/export-analyzer.js.map +1 -0
- package/esm/dev2-server/file-event-handler.d.ts +156 -0
- package/esm/dev2-server/file-event-handler.d.ts.map +1 -0
- package/esm/dev2-server/file-event-handler.js +300 -0
- package/esm/dev2-server/file-event-handler.js.map +1 -0
- package/esm/dev2-server/file-manager.d.ts +385 -0
- package/esm/dev2-server/file-manager.d.ts.map +1 -0
- package/esm/dev2-server/file-manager.js +580 -0
- package/esm/dev2-server/file-manager.js.map +1 -0
- package/esm/dev2-server/file-operations.d.ts +203 -0
- package/esm/dev2-server/file-operations.d.ts.map +1 -0
- package/esm/dev2-server/file-operations.js +365 -0
- package/esm/dev2-server/file-operations.js.map +1 -0
- package/esm/dev2-server/files-orchestrator.d.ts +146 -0
- package/esm/dev2-server/files-orchestrator.d.ts.map +1 -0
- package/esm/dev2-server/files-orchestrator.js +314 -0
- package/esm/dev2-server/files-orchestrator.js.map +1 -0
- package/esm/dev2-server/files-watcher.d.ts +67 -0
- package/esm/dev2-server/files-watcher.d.ts.map +1 -0
- package/esm/dev2-server/files-watcher.js +95 -0
- package/esm/dev2-server/files-watcher.js.map +1 -0
- package/esm/dev2-server/flags.d.ts +10 -0
- package/esm/dev2-server/flags.d.ts.map +1 -0
- package/esm/dev2-server/flags.js +9 -0
- package/esm/dev2-server/flags.js.map +1 -0
- package/esm/dev2-server/health-checker/checkers/base-health-checker.d.ts +52 -0
- package/esm/dev2-server/health-checker/checkers/base-health-checker.d.ts.map +1 -0
- package/esm/dev2-server/health-checker/checkers/base-health-checker.js +71 -0
- package/esm/dev2-server/health-checker/checkers/base-health-checker.js.map +1 -0
- package/esm/dev2-server/health-checker/checkers/eslint-health-checker.d.ts +40 -0
- package/esm/dev2-server/health-checker/checkers/eslint-health-checker.d.ts.map +1 -0
- package/esm/dev2-server/health-checker/checkers/eslint-health-checker.js +217 -0
- package/esm/dev2-server/health-checker/checkers/eslint-health-checker.js.map +1 -0
- package/esm/dev2-server/health-checker/checkers/typescript-health-checker.d.ts +56 -0
- package/esm/dev2-server/health-checker/checkers/typescript-health-checker.d.ts.map +1 -0
- package/esm/dev2-server/health-checker/checkers/typescript-health-checker.js +279 -0
- package/esm/dev2-server/health-checker/checkers/typescript-health-checker.js.map +1 -0
- package/esm/dev2-server/health-checker/file-health-checker.contract.d.ts +59 -0
- package/esm/dev2-server/health-checker/file-health-checker.contract.d.ts.map +1 -0
- package/esm/dev2-server/health-checker/file-health-result.d.ts +68 -0
- package/esm/dev2-server/health-checker/file-health-result.d.ts.map +1 -0
- package/esm/dev2-server/health-checker/file-health-result.js +40 -0
- package/esm/dev2-server/health-checker/file-health-result.js.map +1 -0
- package/esm/dev2-server/health-checker/files-healthcare.manager.d.ts +115 -0
- package/esm/dev2-server/health-checker/files-healthcare.manager.d.ts.map +1 -0
- package/esm/dev2-server/health-checker/files-healthcare.manager.js +422 -0
- package/esm/dev2-server/health-checker/files-healthcare.manager.js.map +1 -0
- package/esm/dev2-server/health-checker/index.d.ts +6 -0
- package/esm/dev2-server/health-checker/index.d.ts.map +1 -0
- package/esm/dev2-server/health-checker/workers/eslint-health.worker.d.ts +2 -0
- package/esm/dev2-server/health-checker/workers/eslint-health.worker.d.ts.map +1 -0
- package/esm/dev2-server/health-checker/workers/eslint-health.worker.js +214 -0
- package/esm/dev2-server/health-checker/workers/eslint-health.worker.js.map +1 -0
- package/esm/dev2-server/health-checker/workers/ts-health.worker.d.ts +2 -0
- package/esm/dev2-server/health-checker/workers/ts-health.worker.d.ts.map +1 -0
- package/esm/dev2-server/health-checker/workers/ts-health.worker.js +261 -0
- package/esm/dev2-server/health-checker/workers/ts-health.worker.js.map +1 -0
- package/esm/dev2-server/import-transformer.d.ts +17 -0
- package/esm/dev2-server/import-transformer.d.ts.map +1 -0
- package/esm/dev2-server/import-transformer.js +280 -0
- package/esm/dev2-server/import-transformer.js.map +1 -0
- package/esm/dev2-server/index.d.ts +1 -0
- package/esm/dev2-server/index.d.ts.map +1 -0
- package/esm/dev2-server/layer-executor.d.ts +61 -0
- package/esm/dev2-server/layer-executor.d.ts.map +1 -0
- package/esm/dev2-server/layer-executor.js +314 -0
- package/esm/dev2-server/layer-executor.js.map +1 -0
- package/esm/dev2-server/manifest-manager.d.ts +80 -0
- package/esm/dev2-server/manifest-manager.d.ts.map +1 -0
- package/esm/dev2-server/manifest-manager.js +107 -0
- package/esm/dev2-server/manifest-manager.js.map +1 -0
- package/esm/dev2-server/module-loader.d.ts +108 -0
- package/esm/dev2-server/module-loader.d.ts.map +1 -0
- package/esm/dev2-server/module-loader.js +266 -0
- package/esm/dev2-server/module-loader.js.map +1 -0
- package/esm/dev2-server/package-json-manager.d.ts +16 -0
- package/esm/dev2-server/package-json-manager.d.ts.map +1 -0
- package/esm/dev2-server/package-json-manager.js +20 -0
- package/esm/dev2-server/package-json-manager.js.map +1 -0
- package/esm/dev2-server/parse-imports.d.ts +13 -0
- package/esm/dev2-server/parse-imports.d.ts.map +1 -0
- package/esm/dev2-server/parse-imports.js +329 -0
- package/esm/dev2-server/parse-imports.js.map +1 -0
- package/esm/dev2-server/path.d.ts +39 -0
- package/esm/dev2-server/path.d.ts.map +1 -0
- package/esm/dev2-server/path.js +56 -0
- package/esm/dev2-server/path.js.map +1 -0
- package/esm/dev2-server/runtime-import-helper.d.ts +8 -0
- package/esm/dev2-server/runtime-import-helper.d.ts.map +1 -0
- package/esm/dev2-server/runtime-import-helper.js +157 -0
- package/esm/dev2-server/runtime-import-helper.js.map +1 -0
- package/esm/dev2-server/special-files-collector.d.ts +114 -0
- package/esm/dev2-server/special-files-collector.d.ts.map +1 -0
- package/esm/dev2-server/special-files-collector.js +212 -0
- package/esm/dev2-server/special-files-collector.js.map +1 -0
- package/esm/dev2-server/start-development-server.d.ts +7 -0
- package/esm/dev2-server/start-development-server.d.ts.map +1 -0
- package/esm/dev2-server/start-development-server.js +21 -0
- package/esm/dev2-server/start-development-server.js.map +1 -0
- package/esm/dev2-server/transpile-file.d.ts +11 -0
- package/esm/dev2-server/transpile-file.d.ts.map +1 -0
- package/esm/dev2-server/transpile-file.js +21 -0
- package/esm/dev2-server/transpile-file.js.map +1 -0
- package/esm/dev2-server/tsconfig-manager.d.ts +45 -0
- package/esm/dev2-server/tsconfig-manager.d.ts.map +1 -0
- package/esm/dev2-server/tsconfig-manager.js +107 -0
- package/esm/dev2-server/tsconfig-manager.js.map +1 -0
- package/esm/dev2-server/type-generator.d.ts +115 -0
- package/esm/dev2-server/type-generator.d.ts.map +1 -0
- package/esm/dev2-server/type-generator.js +566 -0
- package/esm/dev2-server/type-generator.js.map +1 -0
- package/esm/dev2-server/types.d.ts +30 -0
- package/esm/dev2-server/types.d.ts.map +1 -0
- package/esm/dev2-server/utils.d.ts +15 -0
- package/esm/dev2-server/utils.d.ts.map +1 -0
- package/esm/dev2-server/utils.js +40 -0
- package/esm/dev2-server/utils.js.map +1 -0
- package/esm/generations/add-command.action.d.ts +3 -0
- package/esm/generations/add-command.action.d.ts.map +1 -0
- package/esm/generations/add-command.action.js +154 -0
- package/esm/generations/add-command.action.js.map +1 -0
- package/esm/http/config.d.ts +10 -0
- package/esm/http/config.d.ts.map +1 -0
- package/esm/http/config.js +22 -0
- package/esm/http/config.js.map +1 -0
- package/esm/http/context/request-context.d.ts +47 -0
- package/esm/http/context/request-context.d.ts.map +1 -0
- package/esm/http/context/request-context.js +52 -0
- package/esm/http/context/request-context.js.map +1 -0
- package/esm/http/createHttpApplication.d.ts +3 -0
- package/esm/http/createHttpApplication.d.ts.map +1 -0
- package/esm/http/createHttpApplication.js +28 -0
- package/esm/http/createHttpApplication.js.map +1 -0
- package/esm/http/database/RequestLog.d.ts +16 -0
- package/esm/http/database/RequestLog.d.ts.map +1 -0
- package/esm/http/database/RequestLog.js +26 -0
- package/esm/http/database/RequestLog.js.map +1 -0
- package/esm/http/errors/index.d.ts +2 -0
- package/esm/http/errors/index.d.ts.map +1 -0
- package/esm/http/errors/resource-not-found.error.d.ts +21 -0
- package/esm/http/errors/resource-not-found.error.d.ts.map +1 -0
- package/esm/http/errors/resource-not-found.error.js +40 -0
- package/esm/http/errors/resource-not-found.error.js.map +1 -0
- package/esm/http/events.d.ts +4 -0
- package/esm/http/events.d.ts.map +1 -0
- package/esm/http/events.js +26 -0
- package/esm/http/events.js.map +1 -0
- package/esm/http/index.d.ts +17 -0
- package/esm/http/index.d.ts.map +1 -0
- package/esm/http/middleware/cache-response-middleware.d.ts +34 -0
- package/esm/http/middleware/cache-response-middleware.d.ts.map +1 -0
- package/esm/http/middleware/cache-response-middleware.js +45 -0
- package/esm/http/middleware/cache-response-middleware.js.map +1 -0
- package/esm/http/middleware/index.d.ts +3 -0
- package/esm/http/middleware/index.d.ts.map +1 -0
- package/esm/http/middleware/inject-request-context.d.ts +21 -0
- package/esm/http/middleware/inject-request-context.d.ts.map +1 -0
- package/esm/http/middleware/inject-request-context.js +105 -0
- package/esm/http/middleware/inject-request-context.js.map +1 -0
- package/esm/http/plugins/index.d.ts +3 -0
- package/esm/http/plugins/index.d.ts.map +1 -0
- package/esm/http/plugins.d.ts +3 -0
- package/esm/http/plugins.d.ts.map +1 -0
- package/esm/http/plugins.js +31 -0
- package/esm/http/plugins.js.map +1 -0
- package/esm/http/request-controller.d.ts +11 -0
- package/esm/http/request-controller.d.ts.map +1 -0
- package/esm/http/request-controller.js +9 -0
- package/esm/http/request-controller.js.map +1 -0
- package/esm/http/request.d.ts +380 -0
- package/esm/http/request.d.ts.map +1 -0
- package/esm/http/request.js +733 -0
- package/esm/http/request.js.map +1 -0
- package/esm/http/response.js +914 -0
- package/esm/http/response.js.map +1 -0
- package/esm/http/server.d.ts +8 -0
- package/esm/http/server.d.ts.map +1 -0
- package/esm/http/server.js +15 -0
- package/esm/http/server.js.map +1 -0
- package/esm/http/types.d.ts +174 -0
- package/esm/http/types.d.ts.map +1 -0
- package/esm/http/uploaded-file.d.ts +459 -0
- package/esm/http/uploaded-file.d.ts.map +1 -0
- package/esm/http/uploaded-file.js +709 -0
- package/esm/http/uploaded-file.js.map +1 -0
- package/esm/http/uploads-config.d.ts +26 -0
- package/esm/http/uploads-config.d.ts.map +1 -0
- package/esm/http/uploads-config.js +35 -0
- package/esm/http/uploads-config.js.map +1 -0
- package/esm/http/uploads-types.d.ts +236 -0
- package/esm/http/uploads-types.d.ts.map +1 -0
- package/esm/image/image.d.ts +388 -0
- package/esm/image/image.d.ts.map +1 -0
- package/esm/image/image.js +602 -0
- package/esm/image/image.js.map +1 -0
- package/esm/image/index.d.ts +2 -0
- package/esm/image/index.d.ts.map +1 -0
- package/esm/index.d.ts +28 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +1 -28
- package/esm/index.js.map +1 -1
- package/esm/logger/index.d.ts +3 -0
- package/esm/logger/index.d.ts.map +1 -0
- package/esm/logger/logger.d.ts +3 -0
- package/esm/logger/logger.d.ts.map +1 -0
- package/esm/logger/logger.js +16 -0
- package/esm/logger/logger.js.map +1 -0
- package/esm/logger/types.d.ts +39 -0
- package/esm/logger/types.d.ts.map +1 -0
- package/esm/mail/config.d.ts +83 -0
- package/esm/mail/config.d.ts.map +1 -0
- package/esm/mail/config.js +152 -0
- package/esm/mail/config.js.map +1 -0
- package/esm/mail/events.d.ts +96 -0
- package/esm/mail/events.d.ts.map +1 -0
- package/esm/mail/events.js +123 -0
- package/esm/mail/events.js.map +1 -0
- package/esm/mail/index.d.ts +10 -0
- package/esm/mail/index.d.ts.map +1 -0
- package/esm/mail/mail.d.ts +175 -0
- package/esm/mail/mail.d.ts.map +1 -0
- package/esm/mail/mail.js +286 -0
- package/esm/mail/mail.js.map +1 -0
- package/esm/mail/mailer-pool.d.ts +27 -0
- package/esm/mail/mailer-pool.d.ts.map +1 -0
- package/esm/mail/mailer-pool.js +143 -0
- package/esm/mail/mailer-pool.js.map +1 -0
- package/esm/mail/react-mail.d.ts +9 -0
- package/esm/mail/react-mail.d.ts.map +1 -0
- package/esm/mail/react-mail.js +28 -0
- package/esm/mail/react-mail.js.map +1 -0
- package/esm/mail/send-mail.d.ts +33 -0
- package/esm/mail/send-mail.d.ts.map +1 -0
- package/esm/mail/send-mail.js +309 -0
- package/esm/mail/send-mail.js.map +1 -0
- package/esm/mail/test-mailbox.d.ts +110 -0
- package/esm/mail/test-mailbox.d.ts.map +1 -0
- package/esm/mail/test-mailbox.js +143 -0
- package/esm/mail/test-mailbox.js.map +1 -0
- package/esm/mail/types.d.ts +245 -0
- package/esm/mail/types.d.ts.map +1 -0
- package/esm/mail/types.js +13 -0
- package/esm/mail/types.js.map +1 -0
- package/esm/manifest/manifest-manager.d.ts +74 -0
- package/esm/manifest/manifest-manager.d.ts.map +1 -0
- package/esm/manifest/manifest-manager.js +88 -0
- package/esm/manifest/manifest-manager.js.map +1 -0
- package/esm/production/build-app-production.d.ts +6 -0
- package/esm/production/build-app-production.d.ts.map +1 -0
- package/esm/production/build-app-production.js +8 -0
- package/esm/production/build-app-production.js.map +1 -0
- package/esm/production/esbuild-plugins.d.ts +5 -0
- package/esm/production/esbuild-plugins.d.ts.map +1 -0
- package/esm/production/esbuild-plugins.js +23 -0
- package/esm/production/esbuild-plugins.js.map +1 -0
- package/esm/production/production-builder.d.ts +76 -0
- package/esm/production/production-builder.d.ts.map +1 -0
- package/esm/production/production-builder.js +247 -0
- package/esm/production/production-builder.js.map +1 -0
- package/esm/react/index.d.ts +14 -0
- package/esm/react/index.d.ts.map +1 -0
- package/esm/react/index.js +65 -0
- package/esm/react/index.js.map +1 -0
- package/esm/repositories/adapters/cascade/cascade-adapter.d.ts +85 -0
- package/esm/repositories/adapters/cascade/cascade-adapter.d.ts.map +1 -0
- package/esm/repositories/adapters/cascade/cascade-adapter.js +179 -0
- package/esm/repositories/adapters/cascade/cascade-adapter.js.map +1 -0
- package/esm/repositories/adapters/cascade/cascade-query-builder.d.ts +124 -0
- package/esm/repositories/adapters/cascade/cascade-query-builder.d.ts.map +1 -0
- package/esm/repositories/adapters/cascade/cascade-query-builder.js +267 -0
- package/esm/repositories/adapters/cascade/cascade-query-builder.js.map +1 -0
- package/esm/repositories/adapters/cascade/filter-applicator.d.ts +62 -0
- package/esm/repositories/adapters/cascade/filter-applicator.d.ts.map +1 -0
- package/esm/repositories/adapters/cascade/filter-applicator.js +423 -0
- package/esm/repositories/adapters/cascade/filter-applicator.js.map +1 -0
- package/esm/repositories/adapters/cascade/index.d.ts +7 -0
- package/esm/repositories/adapters/cascade/index.d.ts.map +1 -0
- package/esm/repositories/contracts/index.d.ts +8 -0
- package/esm/repositories/contracts/index.d.ts.map +1 -0
- package/esm/repositories/contracts/query-builder.contract.d.ts +279 -0
- package/esm/repositories/contracts/query-builder.contract.d.ts.map +1 -0
- package/esm/repositories/contracts/repository-adapter.contract.d.ts +183 -0
- package/esm/repositories/contracts/repository-adapter.contract.d.ts.map +1 -0
- package/esm/repositories/contracts/types.d.ts +278 -0
- package/esm/repositories/contracts/types.d.ts.map +1 -0
- package/esm/repositories/index.d.ts +8 -0
- package/esm/repositories/index.d.ts.map +1 -0
- package/esm/repositories/repository.manager.d.ts +619 -0
- package/esm/repositories/repository.manager.d.ts.map +1 -0
- package/esm/repositories/repository.manager.js +978 -0
- package/esm/repositories/repository.manager.js.map +1 -0
- package/esm/resource/define-resource.js +58 -0
- package/esm/resource/define-resource.js.map +1 -0
- package/esm/resource/index.d.ts +5 -0
- package/esm/resource/index.d.ts.map +1 -0
- package/esm/resource/resource-field-builder.d.ts +83 -0
- package/esm/resource/resource-field-builder.d.ts.map +1 -0
- package/esm/resource/resource-field-builder.js +189 -0
- package/esm/resource/resource-field-builder.js.map +1 -0
- package/esm/resource/resource.d.ts +105 -0
- package/esm/resource/resource.d.ts.map +1 -0
- package/esm/resource/resource.js +231 -0
- package/esm/resource/resource.js.map +1 -0
- package/esm/resource/types.d.ts +40 -0
- package/esm/resource/types.d.ts.map +1 -0
- package/esm/restful/index.d.ts +2 -0
- package/esm/restful/index.d.ts.map +1 -0
- package/esm/restful/restful.d.ts +110 -0
- package/esm/restful/restful.d.ts.map +1 -0
- package/esm/restful/restful.js +317 -0
- package/esm/restful/restful.js.map +1 -0
- package/esm/router/index.d.ts +4 -0
- package/esm/router/index.d.ts.map +1 -0
- package/esm/router/route-registry.d.ts +30 -0
- package/esm/router/route-registry.d.ts.map +1 -0
- package/esm/router/route-registry.js +67 -0
- package/esm/router/route-registry.js.map +1 -0
- package/esm/router/route.d.ts +34 -0
- package/esm/router/route.d.ts.map +1 -0
- package/esm/router/router.d.ts +169 -0
- package/esm/router/router.d.ts.map +1 -0
- package/esm/router/router.js +578 -0
- package/esm/router/router.js.map +1 -0
- package/esm/router/types.d.ts +267 -0
- package/esm/router/types.d.ts.map +1 -0
- package/esm/router/utils.d.ts +5 -0
- package/esm/router/utils.d.ts.map +1 -0
- package/esm/router/utils.js +6 -0
- package/esm/router/utils.js.map +1 -0
- package/esm/storage/config.d.ts +15 -0
- package/esm/storage/config.d.ts.map +1 -0
- package/esm/storage/config.js +32 -0
- package/esm/storage/config.js.map +1 -0
- package/esm/storage/context/storage-driver-context.d.ts +69 -0
- package/esm/storage/context/storage-driver-context.d.ts.map +1 -0
- package/esm/storage/context/storage-driver-context.js +80 -0
- package/esm/storage/context/storage-driver-context.js.map +1 -0
- package/esm/storage/drivers/cloud-driver.d.ts +196 -0
- package/esm/storage/drivers/cloud-driver.d.ts.map +1 -0
- package/esm/storage/drivers/cloud-driver.js +697 -0
- package/esm/storage/drivers/cloud-driver.js.map +1 -0
- package/esm/storage/drivers/do-spaces-driver.d.ts +43 -0
- package/esm/storage/drivers/do-spaces-driver.d.ts.map +1 -0
- package/esm/storage/drivers/do-spaces-driver.js +50 -0
- package/esm/storage/drivers/do-spaces-driver.js.map +1 -0
- package/esm/storage/drivers/local-driver.d.ts +151 -0
- package/esm/storage/drivers/local-driver.d.ts.map +1 -0
- package/esm/storage/drivers/local-driver.js +448 -0
- package/esm/storage/drivers/local-driver.js.map +1 -0
- package/esm/storage/drivers/r2-driver.d.ts +47 -0
- package/esm/storage/drivers/r2-driver.d.ts.map +1 -0
- package/esm/storage/drivers/r2-driver.js +60 -0
- package/esm/storage/drivers/r2-driver.js.map +1 -0
- package/esm/storage/drivers/s3-driver.d.ts +32 -0
- package/esm/storage/drivers/s3-driver.d.ts.map +1 -0
- package/esm/storage/drivers/s3-driver.js +37 -0
- package/esm/storage/drivers/s3-driver.js.map +1 -0
- package/esm/storage/index.d.ts +13 -0
- package/esm/storage/index.d.ts.map +1 -0
- package/esm/storage/scoped-storage.d.ts +514 -0
- package/esm/storage/scoped-storage.d.ts.map +1 -0
- package/esm/storage/scoped-storage.js +656 -0
- package/esm/storage/scoped-storage.js.map +1 -0
- package/esm/storage/storage-file.d.ts +216 -0
- package/esm/storage/storage-file.d.ts.map +1 -0
- package/esm/storage/storage-file.js +358 -0
- package/esm/storage/storage-file.js.map +1 -0
- package/esm/storage/storage.d.ts +583 -0
- package/esm/storage/storage.d.ts.map +1 -0
- package/esm/storage/storage.js +945 -0
- package/esm/storage/storage.js.map +1 -0
- package/esm/storage/types.d.ts +909 -0
- package/esm/storage/types.d.ts.map +1 -0
- package/esm/storage/utils/mime.d.ts +33 -0
- package/esm/storage/utils/mime.d.ts.map +1 -0
- package/esm/storage/utils/mime.js +45 -0
- package/esm/storage/utils/mime.js.map +1 -0
- package/esm/store/index.d.ts +25 -0
- package/esm/store/index.d.ts.map +1 -0
- package/esm/store/index.js +52 -0
- package/esm/store/index.js.map +1 -0
- package/esm/utils/app-log.d.ts +8 -0
- package/esm/utils/app-log.d.ts.map +1 -0
- package/esm/utils/app-log.js +7 -0
- package/esm/utils/app-log.js.map +1 -0
- package/esm/utils/cleanup-temp-files.d.ts +5 -0
- package/esm/utils/cleanup-temp-files.d.ts.map +1 -0
- package/esm/utils/database-log.d.ts +25 -0
- package/esm/utils/database-log.d.ts.map +1 -0
- package/esm/utils/database-log.js +43 -0
- package/esm/utils/database-log.js.map +1 -0
- package/esm/utils/download-file.d.ts +3 -0
- package/esm/utils/download-file.d.ts.map +1 -0
- package/esm/utils/environment.d.ts +4 -0
- package/esm/utils/environment.d.ts.map +1 -0
- package/esm/utils/environment.js +6 -0
- package/esm/utils/environment.js.map +1 -0
- package/esm/utils/get-localized.d.ts +10 -0
- package/esm/utils/get-localized.d.ts.map +1 -0
- package/esm/utils/get-localized.js +15 -0
- package/esm/utils/get-localized.js.map +1 -0
- package/esm/utils/index.d.ts +12 -0
- package/esm/utils/index.d.ts.map +1 -0
- package/esm/utils/internal.d.ts +4 -0
- package/esm/utils/internal.d.ts.map +1 -0
- package/esm/utils/paths.d.ts +55 -0
- package/esm/utils/paths.d.ts.map +1 -0
- package/esm/utils/paths.js +89 -0
- package/esm/utils/paths.js.map +1 -0
- package/esm/utils/promise-all-object.d.ts +8 -0
- package/esm/utils/promise-all-object.d.ts.map +1 -0
- package/esm/utils/promise-all-object.js +12 -0
- package/esm/utils/promise-all-object.js.map +1 -0
- package/esm/utils/queue.d.ts +49 -0
- package/esm/utils/queue.d.ts.map +1 -0
- package/esm/utils/queue.js +89 -0
- package/esm/utils/queue.js.map +1 -0
- package/esm/utils/sleep.d.ts +2 -0
- package/esm/utils/sleep.d.ts.map +1 -0
- package/esm/utils/sleep.js +3 -0
- package/esm/utils/sleep.js.map +1 -0
- package/esm/utils/sluggable.d.ts +5 -0
- package/esm/utils/sluggable.d.ts.map +1 -0
- package/esm/utils/sluggable.js +15 -0
- package/esm/utils/sluggable.js.map +1 -0
- package/esm/utils/to-json.d.ts +2 -0
- package/esm/utils/to-json.d.ts.map +1 -0
- package/esm/utils/to-json.js +26 -0
- package/esm/utils/to-json.js.map +1 -0
- package/esm/utils/types.d.ts +22 -0
- package/esm/utils/types.d.ts.map +1 -0
- package/esm/utils/urls.d.ts +21 -0
- package/esm/utils/urls.d.ts.map +1 -0
- package/esm/utils/urls.js +31 -0
- package/esm/utils/urls.js.map +1 -0
- package/esm/validation/database/exists-except-current-id.d.ts +7 -0
- package/esm/validation/database/exists-except-current-id.d.ts.map +1 -0
- package/esm/validation/database/exists-except-current-id.js +23 -0
- package/esm/validation/database/exists-except-current-id.js.map +1 -0
- package/esm/validation/database/exists-except-current-user.d.ts +7 -0
- package/esm/validation/database/exists-except-current-user.d.ts.map +1 -0
- package/esm/validation/database/exists-except-current-user.js +25 -0
- package/esm/validation/database/exists-except-current-user.js.map +1 -0
- package/esm/validation/database/exists.d.ts +7 -0
- package/esm/validation/database/exists.d.ts.map +1 -0
- package/esm/validation/database/exists.js +21 -0
- package/esm/validation/database/exists.js.map +1 -0
- package/esm/validation/database/index.d.ts +12 -0
- package/esm/validation/database/index.d.ts.map +1 -0
- package/esm/validation/database/types.d.ts +68 -0
- package/esm/validation/database/types.d.ts.map +1 -0
- package/esm/validation/database/unique-except-current-id.d.ts +7 -0
- package/esm/validation/database/unique-except-current-id.d.ts.map +1 -0
- package/esm/validation/database/unique-except-current-id.js +23 -0
- package/esm/validation/database/unique-except-current-id.js.map +1 -0
- package/esm/validation/database/unique-except-current-user.d.ts +7 -0
- package/esm/validation/database/unique-except-current-user.d.ts.map +1 -0
- package/esm/validation/database/unique-except-current-user.js +25 -0
- package/esm/validation/database/unique-except-current-user.js.map +1 -0
- package/esm/validation/database/unique.d.ts +7 -0
- package/esm/validation/database/unique.d.ts.map +1 -0
- package/esm/validation/database/unique.js +30 -0
- package/esm/validation/database/unique.js.map +1 -0
- package/esm/validation/file/file.d.ts +22 -0
- package/esm/validation/file/file.d.ts.map +1 -0
- package/esm/validation/file/file.js +60 -0
- package/esm/validation/file/file.js.map +1 -0
- package/esm/validation/file/index.d.ts +6 -0
- package/esm/validation/file/index.d.ts.map +1 -0
- package/esm/validation/index.d.ts +16 -0
- package/esm/validation/index.d.ts.map +1 -0
- package/esm/validation/init.d.ts +7 -0
- package/esm/validation/init.d.ts.map +1 -0
- package/esm/validation/init.js +36 -0
- package/esm/validation/init.js.map +1 -0
- package/esm/validation/plugins/database-plugin.d.ts +14 -0
- package/esm/validation/plugins/database-plugin.d.ts.map +1 -0
- package/esm/validation/plugins/database-plugin.js +95 -0
- package/esm/validation/plugins/database-plugin.js.map +1 -0
- package/esm/validation/plugins/file-plugin.d.ts +11 -0
- package/esm/validation/plugins/file-plugin.d.ts.map +1 -0
- package/esm/validation/plugins/file-plugin.js +17 -0
- package/esm/validation/plugins/file-plugin.js.map +1 -0
- package/esm/validation/plugins/index.d.ts +9 -0
- package/esm/validation/plugins/index.d.ts.map +1 -0
- package/esm/validation/plugins/localized-plugin.d.ts +11 -0
- package/esm/validation/plugins/localized-plugin.d.ts.map +1 -0
- package/esm/validation/plugins/localized-plugin.js +19 -0
- package/esm/validation/plugins/localized-plugin.js.map +1 -0
- package/esm/validation/types.d.ts +87 -0
- package/esm/validation/types.d.ts.map +1 -0
- package/esm/validation/validateAll.d.ts +7 -0
- package/esm/validation/validateAll.d.ts.map +1 -0
- package/esm/validation/validateAll.js +60 -0
- package/esm/validation/validateAll.js.map +1 -0
- package/esm/validation/validators/file-validator.d.ts +46 -0
- package/esm/validation/validators/file-validator.d.ts.map +1 -0
- package/esm/validation/validators/file-validator.js +112 -0
- package/esm/validation/validators/file-validator.js.map +1 -0
- package/esm/validation/validators/index.d.ts +7 -0
- package/esm/validation/validators/index.d.ts.map +1 -0
- package/esm/warlock-config/default-configurations.d.ts +3 -0
- package/esm/warlock-config/default-configurations.d.ts.map +1 -0
- package/esm/warlock-config/default-configurations.js +8 -0
- package/esm/warlock-config/default-configurations.js.map +1 -0
- package/esm/warlock-config/define-config.d.ts +3 -0
- package/esm/warlock-config/define-config.d.ts.map +1 -0
- package/esm/warlock-config/define-config.js +3 -0
- package/esm/warlock-config/define-config.js.map +1 -0
- package/esm/warlock-config/index.d.ts +4 -0
- package/esm/warlock-config/index.d.ts.map +1 -0
- package/esm/warlock-config/types.d.ts +79 -0
- package/esm/warlock-config/types.d.ts.map +1 -0
- package/esm/warlock-config/warlock-config.manager.d.ts +83 -0
- package/esm/warlock-config/warlock-config.manager.d.ts.map +1 -0
- package/esm/warlock-config/warlock-config.manager.js +141 -0
- package/esm/warlock-config/warlock-config.manager.js.map +1 -0
- package/package.json +66 -71
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeGenerator - Generates TypeScript type definitions from config files
|
|
3
|
+
*
|
|
4
|
+
* Parses source config files using the TypeScript Compiler API to extract
|
|
5
|
+
* keys and generate module augmentation types for IDE autocomplete.
|
|
6
|
+
*
|
|
7
|
+
* Uses manifest-based reconciliation to only regenerate when source files change.
|
|
8
|
+
*/
|
|
9
|
+
export declare class TypeGenerator {
|
|
10
|
+
/**
|
|
11
|
+
* Output directory for generated typings
|
|
12
|
+
*/
|
|
13
|
+
private outputDir;
|
|
14
|
+
/**
|
|
15
|
+
* Path to typings manifest file
|
|
16
|
+
*/
|
|
17
|
+
private manifestPath;
|
|
18
|
+
/**
|
|
19
|
+
* Cached manifest data
|
|
20
|
+
*/
|
|
21
|
+
private manifest;
|
|
22
|
+
/**
|
|
23
|
+
* Cache for config type info and keys
|
|
24
|
+
*/
|
|
25
|
+
private configCache;
|
|
26
|
+
/**
|
|
27
|
+
* Generate all framework type definitions
|
|
28
|
+
*
|
|
29
|
+
* Uses manifest-based reconciliation:
|
|
30
|
+
* - If output files don't exist: full regeneration
|
|
31
|
+
* - If files exist: only regenerate changed configs
|
|
32
|
+
*/
|
|
33
|
+
generateAll(): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Full regeneration of all type files
|
|
36
|
+
*/
|
|
37
|
+
private fullGeneration;
|
|
38
|
+
/**
|
|
39
|
+
* Reconcile: only regenerate changed files
|
|
40
|
+
*/
|
|
41
|
+
private reconcile;
|
|
42
|
+
/**
|
|
43
|
+
* Generate storage driver name types
|
|
44
|
+
*/
|
|
45
|
+
generateStorageTypes(configPath: string): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Check if a file change should trigger type regeneration
|
|
48
|
+
*/
|
|
49
|
+
shouldRegenerateTypes(changedPath: string): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Handle file change - uses incremental update via cache
|
|
52
|
+
*/
|
|
53
|
+
handleFileChange(changedPath: string): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Generate config types - populates cache and writes file
|
|
56
|
+
*/
|
|
57
|
+
generateConfigTypes(): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Write config.d.ts from cached data
|
|
60
|
+
*/
|
|
61
|
+
private writeConfigTypesFromCache;
|
|
62
|
+
/**
|
|
63
|
+
* Load manifest from disk
|
|
64
|
+
*/
|
|
65
|
+
private loadManifest;
|
|
66
|
+
/**
|
|
67
|
+
* Save manifest to disk
|
|
68
|
+
*/
|
|
69
|
+
private saveManifest;
|
|
70
|
+
/**
|
|
71
|
+
* Create empty manifest structure
|
|
72
|
+
*/
|
|
73
|
+
private createEmptyManifest;
|
|
74
|
+
/**
|
|
75
|
+
* Extract BOTH type info AND keys in a single pass
|
|
76
|
+
*
|
|
77
|
+
* This is optimized to create ts.createProgram() only ONCE per file
|
|
78
|
+
* instead of twice (once for type extraction, once for keys).
|
|
79
|
+
* This reduces parsing time by ~50%.
|
|
80
|
+
*
|
|
81
|
+
* @param configPath Absolute path to the config file
|
|
82
|
+
* @param configName Config name (e.g., "auth", "notifications")
|
|
83
|
+
* @returns Combined result with type info and keys
|
|
84
|
+
*/
|
|
85
|
+
private extractConfigInfo;
|
|
86
|
+
/**
|
|
87
|
+
* Extract driver keys from storage config
|
|
88
|
+
*/
|
|
89
|
+
private extractStorageDriverKeys;
|
|
90
|
+
/**
|
|
91
|
+
* Find a config file by name
|
|
92
|
+
*/
|
|
93
|
+
private findConfigFile;
|
|
94
|
+
/**
|
|
95
|
+
* Ensure output directory exists
|
|
96
|
+
*/
|
|
97
|
+
private ensureOutputDir;
|
|
98
|
+
/**
|
|
99
|
+
* Check if a path exists (async wrapper)
|
|
100
|
+
*/
|
|
101
|
+
private exists;
|
|
102
|
+
/**
|
|
103
|
+
* Execute generateAll command using spawn
|
|
104
|
+
*/
|
|
105
|
+
executeGenerateAllCommand(): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Execute a typings generator for the given files
|
|
108
|
+
*/
|
|
109
|
+
executeTypingsGenerator(upcomingFiles: string[]): Promise<void>;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Singleton instance for use throughout dev-server
|
|
113
|
+
*/
|
|
114
|
+
export declare const typeGenerator: TypeGenerator;
|
|
115
|
+
//# sourceMappingURL=type-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-generator.d.ts","sourceRoot":"","sources":["../../src/dev2-server/type-generator.ts"],"names":[],"mappings":"AAiCA;;;;;;;GAOG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,OAAO,CAAC,SAAS,CAA0B;IAE3C;;OAEG;IACH,OAAO,CAAC,YAAY,CAAiD;IAErE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAgC;IAEhD;;OAEG;IACH,OAAO,CAAC,WAAW,CAQf;IAEJ;;;;;;OAMG;IACU,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBzC;;OAEG;YACW,cAAc;IAW5B;;OAEG;YACW,SAAS;IAqDvB;;OAEG;IACU,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CpE;;OAEG;IACI,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAI1D;;OAEG;IACU,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CjE;;OAEG;IACU,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BjD;;OAEG;YACW,yBAAyB;IA4EvC;;OAEG;YACW,YAAY;IAc1B;;OAEG;YACW,YAAY;IAS1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;;;;;;;;;OAUG;YACW,iBAAiB;IA+G/B;;OAEG;YACW,wBAAwB;IAgDtC;;OAEG;YACW,cAAc;IA0B5B;;OAEG;YACW,eAAe;IAI7B;;OAEG;YACW,MAAM;IASpB;;OAEG;IACU,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBvD;;OAEG;IACU,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA+B7E;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
import {env}from'@mongez/dotenv';import {ensureDirectoryAsync}from'@mongez/fs';import {spawn}from'child_process';import {constants}from'fs';import {writeFile,readFile,access}from'fs/promises';import {join,resolve}from'path';import ts from'typescript';import'@warlock.js/logger';import'../database/models/database-log/database-log.js';import'../http/context/request-context.js';import {warlockPath}from'../utils/paths.js';import'@mongez/slug';import'@mongez/supportive-is';import'@mongez/reinforcements';import {devLogInfo,devServeLog,devLogSuccess,devLogError}from'./dev-logger.js';import {filesOrchestrator}from'./files-orchestrator.js';import {Path}from'./path.js';/**
|
|
2
|
+
* TypeGenerator - Generates TypeScript type definitions from config files
|
|
3
|
+
*
|
|
4
|
+
* Parses source config files using the TypeScript Compiler API to extract
|
|
5
|
+
* keys and generate module augmentation types for IDE autocomplete.
|
|
6
|
+
*
|
|
7
|
+
* Uses manifest-based reconciliation to only regenerate when source files change.
|
|
8
|
+
*/
|
|
9
|
+
class TypeGenerator {
|
|
10
|
+
/**
|
|
11
|
+
* Output directory for generated typings
|
|
12
|
+
*/
|
|
13
|
+
outputDir = warlockPath("typings");
|
|
14
|
+
/**
|
|
15
|
+
* Path to typings manifest file
|
|
16
|
+
*/
|
|
17
|
+
manifestPath = join(this.outputDir, "typings-manifest.json");
|
|
18
|
+
/**
|
|
19
|
+
* Cached manifest data
|
|
20
|
+
*/
|
|
21
|
+
manifest = null;
|
|
22
|
+
/**
|
|
23
|
+
* Cache for config type info and keys
|
|
24
|
+
*/
|
|
25
|
+
configCache = new Map();
|
|
26
|
+
/**
|
|
27
|
+
* Generate all framework type definitions
|
|
28
|
+
*
|
|
29
|
+
* Uses manifest-based reconciliation:
|
|
30
|
+
* - If output files don't exist: full regeneration
|
|
31
|
+
* - If files exist: only regenerate changed configs
|
|
32
|
+
*/
|
|
33
|
+
async generateAll() {
|
|
34
|
+
await this.ensureOutputDir();
|
|
35
|
+
const storageFile = join(this.outputDir, "storage.d.ts");
|
|
36
|
+
const configFile = join(this.outputDir, "config.d.ts");
|
|
37
|
+
const [manifestExists, storageExists, configExists] = await Promise.all([
|
|
38
|
+
this.exists(this.manifestPath),
|
|
39
|
+
this.exists(storageFile),
|
|
40
|
+
this.exists(configFile),
|
|
41
|
+
]);
|
|
42
|
+
if (!manifestExists || !storageExists || !configExists) {
|
|
43
|
+
// Full regeneration (first run or files deleted)
|
|
44
|
+
await this.fullGeneration();
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// Load manifest for hash comparison
|
|
48
|
+
await this.loadManifest();
|
|
49
|
+
// Reconciliation: only regenerate changed files
|
|
50
|
+
await this.reconcile();
|
|
51
|
+
}
|
|
52
|
+
await this.saveManifest();
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Full regeneration of all type files
|
|
56
|
+
*/
|
|
57
|
+
async fullGeneration() {
|
|
58
|
+
// Generate storage types
|
|
59
|
+
const storageConfigPath = await this.findConfigFile("storage");
|
|
60
|
+
if (storageConfigPath) {
|
|
61
|
+
this.generateStorageTypes(storageConfigPath);
|
|
62
|
+
}
|
|
63
|
+
// Generate config types
|
|
64
|
+
await this.generateConfigTypes();
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Reconcile: only regenerate changed files
|
|
68
|
+
*/
|
|
69
|
+
async reconcile() {
|
|
70
|
+
const files = filesOrchestrator.getFiles();
|
|
71
|
+
let configChanged = false;
|
|
72
|
+
let unchangedCount = 0;
|
|
73
|
+
// Check storage config
|
|
74
|
+
for (const [path, fileManager] of files) {
|
|
75
|
+
if (path.startsWith("src/config/storage")) {
|
|
76
|
+
const manifestEntry = this.manifest?.storage;
|
|
77
|
+
if (!manifestEntry || manifestEntry.sourceHash !== fileManager.hash) {
|
|
78
|
+
await this.generateStorageTypes(path);
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Check config files
|
|
84
|
+
for (const [path, fileManager] of files) {
|
|
85
|
+
if (!path.startsWith("src/config/"))
|
|
86
|
+
continue;
|
|
87
|
+
if (path.includes("index"))
|
|
88
|
+
continue;
|
|
89
|
+
// Extract config name (remove dir prefix and extension)
|
|
90
|
+
const configName = path.replace("src/config/", "").replace(/\.[^.]+$/, "");
|
|
91
|
+
const manifestEntry = this.manifest?.config[configName];
|
|
92
|
+
if (!manifestEntry || manifestEntry.sourceHash !== fileManager.hash) {
|
|
93
|
+
// File changed or new - regenerate
|
|
94
|
+
configChanged = true;
|
|
95
|
+
const info = await this.extractConfigInfo(fileManager.absolutePath, configName);
|
|
96
|
+
this.configCache.set(configName, {
|
|
97
|
+
sourceHash: fileManager.hash,
|
|
98
|
+
typeName: info.typeName,
|
|
99
|
+
importSource: info.importSource,
|
|
100
|
+
keys: info.keys,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// Unchanged - load from manifest
|
|
105
|
+
unchangedCount++;
|
|
106
|
+
this.configCache.set(configName, manifestEntry);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (configChanged) {
|
|
110
|
+
await this.writeConfigTypesFromCache();
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
devLogInfo(`Config types unchanged (${unchangedCount} configs cached)`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Generate storage driver name types
|
|
118
|
+
*/
|
|
119
|
+
async generateStorageTypes(configPath) {
|
|
120
|
+
try {
|
|
121
|
+
const driverKeys = await this.extractStorageDriverKeys(configPath);
|
|
122
|
+
if (driverKeys.length === 0) {
|
|
123
|
+
devServeLog("⚠️ No storage drivers found in config");
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
// Get file hash from filesOrchestrator
|
|
127
|
+
const fileManager = filesOrchestrator.getFiles().get(configPath);
|
|
128
|
+
const sourceHash = fileManager?.hash || "";
|
|
129
|
+
// Update manifest
|
|
130
|
+
if (!this.manifest) {
|
|
131
|
+
this.manifest = this.createEmptyManifest();
|
|
132
|
+
}
|
|
133
|
+
this.manifest.storage = {
|
|
134
|
+
sourceHash,
|
|
135
|
+
drivers: driverKeys,
|
|
136
|
+
};
|
|
137
|
+
const interfaceContent = driverKeys.map((k) => ` ${k}: true;`).join("\n");
|
|
138
|
+
const content = `// Auto-generated by Warlock.js - DO NOT EDIT
|
|
139
|
+
// Generated from: ${configPath}
|
|
140
|
+
// Regenerates on dev-server start and when storage config changes
|
|
141
|
+
|
|
142
|
+
import "@warlock.js/core";
|
|
143
|
+
|
|
144
|
+
declare module "@warlock.js/core" {
|
|
145
|
+
interface StorageDriverRegistry {
|
|
146
|
+
${interfaceContent}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
`;
|
|
150
|
+
const outputPath = join(this.outputDir, "storage.d.ts");
|
|
151
|
+
await writeFile(outputPath, content, "utf-8");
|
|
152
|
+
devLogSuccess(`Generated storage types: ${driverKeys.join(", ")}`);
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
devServeLog(`⚠️ Failed to generate storage types: ${error}`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Check if a file change should trigger type regeneration
|
|
160
|
+
*/
|
|
161
|
+
shouldRegenerateTypes(changedPath) {
|
|
162
|
+
return changedPath.includes("src/config/") || changedPath.includes("config/");
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Handle file change - uses incremental update via cache
|
|
166
|
+
*/
|
|
167
|
+
async handleFileChange(changedPath) {
|
|
168
|
+
if (!this.shouldRegenerateTypes(changedPath)) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
// Regenerate storage types if storage config changed
|
|
172
|
+
if (changedPath.includes("config/storage")) {
|
|
173
|
+
await this.generateStorageTypes(changedPath);
|
|
174
|
+
await this.saveManifest();
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
// Extract config name from path
|
|
178
|
+
const match = changedPath.match(/config\/([^/]+)\.[^.]+$/);
|
|
179
|
+
if (!match) {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
const configName = match[1];
|
|
183
|
+
if (configName === "index")
|
|
184
|
+
return;
|
|
185
|
+
devLogInfo(`Config changed: ${configName}, updating...`);
|
|
186
|
+
// Get file manager for hash
|
|
187
|
+
const fileManager = filesOrchestrator.getFiles().get(changedPath);
|
|
188
|
+
const sourceHash = fileManager?.hash || Date.now().toString();
|
|
189
|
+
// Update only the changed config in cache (use optimized combined extraction)
|
|
190
|
+
const configDir = join(process.cwd(), "src/config");
|
|
191
|
+
const configPath = join(configDir, `${configName}.ts`);
|
|
192
|
+
const info = await this.extractConfigInfo(configPath, configName);
|
|
193
|
+
this.configCache.set(configName, {
|
|
194
|
+
sourceHash,
|
|
195
|
+
typeName: info.typeName,
|
|
196
|
+
importSource: info.importSource,
|
|
197
|
+
keys: info.keys,
|
|
198
|
+
});
|
|
199
|
+
// Regenerate config.d.ts from cache
|
|
200
|
+
await this.writeConfigTypesFromCache();
|
|
201
|
+
await this.saveManifest();
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Generate config types - populates cache and writes file
|
|
205
|
+
*/
|
|
206
|
+
async generateConfigTypes() {
|
|
207
|
+
try {
|
|
208
|
+
const files = filesOrchestrator.getFiles();
|
|
209
|
+
// Clear and repopulate cache
|
|
210
|
+
this.configCache.clear();
|
|
211
|
+
for (const [path, fileManager] of files) {
|
|
212
|
+
if (!path.startsWith("src/config/"))
|
|
213
|
+
continue;
|
|
214
|
+
if (path.includes("index"))
|
|
215
|
+
continue;
|
|
216
|
+
// Extract config name
|
|
217
|
+
const configName = path.replace("src/config/", "").replace(/\.[^.]+$/, "");
|
|
218
|
+
// Use optimized combined extraction (single ts.createProgram call)
|
|
219
|
+
const info = await this.extractConfigInfo(fileManager.absolutePath, configName);
|
|
220
|
+
this.configCache.set(configName, {
|
|
221
|
+
sourceHash: fileManager.hash,
|
|
222
|
+
typeName: info.typeName,
|
|
223
|
+
importSource: info.importSource,
|
|
224
|
+
keys: info.keys,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
await this.writeConfigTypesFromCache();
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
devServeLog(`⚠️ Failed to generate config types: ${error}`);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Write config.d.ts from cached data
|
|
235
|
+
*/
|
|
236
|
+
async writeConfigTypesFromCache() {
|
|
237
|
+
const configTypeInfos = [];
|
|
238
|
+
const allKeys = [];
|
|
239
|
+
// Update manifest config section
|
|
240
|
+
if (!this.manifest) {
|
|
241
|
+
this.manifest = this.createEmptyManifest();
|
|
242
|
+
}
|
|
243
|
+
this.manifest.config = {};
|
|
244
|
+
for (const [name, data] of this.configCache) {
|
|
245
|
+
configTypeInfos.push({
|
|
246
|
+
name,
|
|
247
|
+
typeName: data.typeName,
|
|
248
|
+
importSource: data.importSource,
|
|
249
|
+
});
|
|
250
|
+
allKeys.push(...data.keys);
|
|
251
|
+
// Store in manifest
|
|
252
|
+
this.manifest.config[name] = data;
|
|
253
|
+
}
|
|
254
|
+
// Group imports by source
|
|
255
|
+
const imports = new Map();
|
|
256
|
+
for (const info of configTypeInfos) {
|
|
257
|
+
if (info.typeName && info.importSource) {
|
|
258
|
+
if (!imports.has(info.importSource)) {
|
|
259
|
+
imports.set(info.importSource, new Set());
|
|
260
|
+
}
|
|
261
|
+
imports.get(info.importSource).add(info.typeName);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
const importStatements = Array.from(imports.entries())
|
|
265
|
+
.map(([source, types]) => `import type { ${Array.from(types).join(", ")} } from "${source}";`)
|
|
266
|
+
.join("\n");
|
|
267
|
+
const configEntries = configTypeInfos
|
|
268
|
+
.map((info) => ` ${info.name}: ${info.typeName || "unknown"};`)
|
|
269
|
+
.join("\n");
|
|
270
|
+
const keyEntries = allKeys.map((key) => ` "${key}": true;`).join("\n");
|
|
271
|
+
const content = `// Auto-generated by Warlock.js - DO NOT EDIT
|
|
272
|
+
// Regenerates on dev-server start and when config files change
|
|
273
|
+
|
|
274
|
+
${importStatements}
|
|
275
|
+
import "@warlock.js/core";
|
|
276
|
+
|
|
277
|
+
declare module "@warlock.js/core" {
|
|
278
|
+
interface ConfigRegistry {
|
|
279
|
+
${configEntries}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
interface ConfigKeyRegistry {
|
|
283
|
+
${keyEntries}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
`;
|
|
287
|
+
const outputPath = join(this.outputDir, "config.d.ts");
|
|
288
|
+
await writeFile(outputPath, content, "utf-8");
|
|
289
|
+
devLogSuccess(`Generated config types: ${this.configCache.size} configs, ${allKeys.length} keys`);
|
|
290
|
+
}
|
|
291
|
+
// ============================================================
|
|
292
|
+
// Manifest Management
|
|
293
|
+
// ============================================================
|
|
294
|
+
/**
|
|
295
|
+
* Load manifest from disk
|
|
296
|
+
*/
|
|
297
|
+
async loadManifest() {
|
|
298
|
+
try {
|
|
299
|
+
if (await this.exists(this.manifestPath)) {
|
|
300
|
+
const content = await readFile(this.manifestPath, "utf-8");
|
|
301
|
+
this.manifest = JSON.parse(content);
|
|
302
|
+
return true;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
catch {
|
|
306
|
+
// Manifest corrupted or missing
|
|
307
|
+
}
|
|
308
|
+
this.manifest = null;
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Save manifest to disk
|
|
313
|
+
*/
|
|
314
|
+
async saveManifest() {
|
|
315
|
+
if (!this.manifest) {
|
|
316
|
+
this.manifest = this.createEmptyManifest();
|
|
317
|
+
}
|
|
318
|
+
this.manifest.lastBuildTime = Date.now();
|
|
319
|
+
await writeFile(this.manifestPath, JSON.stringify(this.manifest, null, 2), "utf-8");
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Create empty manifest structure
|
|
323
|
+
*/
|
|
324
|
+
createEmptyManifest() {
|
|
325
|
+
return {
|
|
326
|
+
version: "1.0.0",
|
|
327
|
+
lastBuildTime: Date.now(),
|
|
328
|
+
storage: null,
|
|
329
|
+
config: {},
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
// ============================================================
|
|
333
|
+
// Type Extraction Methods
|
|
334
|
+
// ============================================================
|
|
335
|
+
/**
|
|
336
|
+
* Extract BOTH type info AND keys in a single pass
|
|
337
|
+
*
|
|
338
|
+
* This is optimized to create ts.createProgram() only ONCE per file
|
|
339
|
+
* instead of twice (once for type extraction, once for keys).
|
|
340
|
+
* This reduces parsing time by ~50%.
|
|
341
|
+
*
|
|
342
|
+
* @param configPath Absolute path to the config file
|
|
343
|
+
* @param configName Config name (e.g., "auth", "notifications")
|
|
344
|
+
* @returns Combined result with type info and keys
|
|
345
|
+
*/
|
|
346
|
+
async extractConfigInfo(configPath, configName) {
|
|
347
|
+
if (!(await this.exists(configPath))) {
|
|
348
|
+
return { typeName: null, importSource: null, keys: [] };
|
|
349
|
+
}
|
|
350
|
+
// Create program ONCE (this is the expensive operation)
|
|
351
|
+
const program = ts.createProgram([configPath], {
|
|
352
|
+
target: ts.ScriptTarget.ESNext,
|
|
353
|
+
module: ts.ModuleKind.ESNext,
|
|
354
|
+
moduleResolution: ts.ModuleResolutionKind.NodeJs,
|
|
355
|
+
});
|
|
356
|
+
const sourceFile = program.getSourceFile(configPath);
|
|
357
|
+
if (!sourceFile) {
|
|
358
|
+
return { typeName: null, importSource: null, keys: [] };
|
|
359
|
+
}
|
|
360
|
+
// === Type Info Extraction ===
|
|
361
|
+
const importedTypes = new Map();
|
|
362
|
+
const localExportedTypes = new Set();
|
|
363
|
+
let foundTypeName = null;
|
|
364
|
+
// === Keys Extraction ===
|
|
365
|
+
const keys = [];
|
|
366
|
+
const visitForTypes = (node) => {
|
|
367
|
+
// Collect imported types
|
|
368
|
+
if (ts.isImportDeclaration(node)) {
|
|
369
|
+
const moduleSpecifier = node.moduleSpecifier;
|
|
370
|
+
if (ts.isStringLiteral(moduleSpecifier)) {
|
|
371
|
+
const source = moduleSpecifier.text;
|
|
372
|
+
const importClause = node.importClause;
|
|
373
|
+
if (importClause?.namedBindings && ts.isNamedImports(importClause.namedBindings)) {
|
|
374
|
+
for (const element of importClause.namedBindings.elements) {
|
|
375
|
+
importedTypes.set(element.name.text, source);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
// Collect locally exported types
|
|
381
|
+
if (ts.isTypeAliasDeclaration(node)) {
|
|
382
|
+
const modifiers = ts.getModifiers(node);
|
|
383
|
+
if (modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword)) {
|
|
384
|
+
localExportedTypes.add(node.name.text);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
// Collect locally exported interfaces
|
|
388
|
+
if (ts.isInterfaceDeclaration(node)) {
|
|
389
|
+
const modifiers = ts.getModifiers(node);
|
|
390
|
+
if (modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword)) {
|
|
391
|
+
localExportedTypes.add(node.name.text);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
// Find type used on config variable + extract keys
|
|
395
|
+
if (ts.isVariableDeclaration(node)) {
|
|
396
|
+
// Type info
|
|
397
|
+
if (node.type && ts.isTypeReferenceNode(node.type)) {
|
|
398
|
+
foundTypeName = node.type.typeName.getText(sourceFile);
|
|
399
|
+
}
|
|
400
|
+
// Keys extraction
|
|
401
|
+
if (node.initializer && ts.isObjectLiteralExpression(node.initializer)) {
|
|
402
|
+
const visitKeys = (objNode, prefix) => {
|
|
403
|
+
for (const prop of objNode.properties) {
|
|
404
|
+
if (ts.isPropertyAssignment(prop) && prop.name) {
|
|
405
|
+
const keyName = prop.name.getText(sourceFile);
|
|
406
|
+
const fullKey = prefix ? `${prefix}.${keyName}` : keyName;
|
|
407
|
+
keys.push(fullKey);
|
|
408
|
+
if (ts.isObjectLiteralExpression(prop.initializer)) {
|
|
409
|
+
visitKeys(prop.initializer, fullKey);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
};
|
|
414
|
+
visitKeys(node.initializer, configName);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
ts.forEachChild(node, visitForTypes);
|
|
418
|
+
};
|
|
419
|
+
ts.forEachChild(sourceFile, visitForTypes);
|
|
420
|
+
// Resolve type info
|
|
421
|
+
let typeName = null;
|
|
422
|
+
let importSource = null;
|
|
423
|
+
if (foundTypeName) {
|
|
424
|
+
if (importedTypes.has(foundTypeName)) {
|
|
425
|
+
typeName = foundTypeName;
|
|
426
|
+
importSource = importedTypes.get(foundTypeName);
|
|
427
|
+
}
|
|
428
|
+
else if (localExportedTypes.has(foundTypeName)) {
|
|
429
|
+
typeName = foundTypeName;
|
|
430
|
+
const relativePath = Path.toRelative(configPath).replace(/\.(ts|tsx)$/, "");
|
|
431
|
+
importSource = `../../${relativePath}`;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
return { typeName, importSource, keys };
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Extract driver keys from storage config
|
|
438
|
+
*/
|
|
439
|
+
async extractStorageDriverKeys(configPath) {
|
|
440
|
+
const absolutePath = resolve(configPath);
|
|
441
|
+
if (!(await this.exists(absolutePath))) {
|
|
442
|
+
devServeLog(`⚠️ Storage config not found: ${absolutePath}`);
|
|
443
|
+
return [];
|
|
444
|
+
}
|
|
445
|
+
const program = ts.createProgram([absolutePath], {
|
|
446
|
+
target: ts.ScriptTarget.ESNext,
|
|
447
|
+
module: ts.ModuleKind.ESNext,
|
|
448
|
+
moduleResolution: ts.ModuleResolutionKind.NodeJs,
|
|
449
|
+
});
|
|
450
|
+
const sourceFile = program.getSourceFile(absolutePath);
|
|
451
|
+
if (!sourceFile) {
|
|
452
|
+
devServeLog(`⚠️ Could not parse storage config: ${absolutePath}`);
|
|
453
|
+
return [];
|
|
454
|
+
}
|
|
455
|
+
const keys = [];
|
|
456
|
+
const visit = (node) => {
|
|
457
|
+
if (ts.isPropertyAssignment(node)) {
|
|
458
|
+
const propName = node.name.getText(sourceFile);
|
|
459
|
+
if (propName === "drivers" && ts.isObjectLiteralExpression(node.initializer)) {
|
|
460
|
+
for (const prop of node.initializer.properties) {
|
|
461
|
+
if (ts.isPropertyAssignment(prop) || ts.isShorthandPropertyAssignment(prop)) {
|
|
462
|
+
const keyName = prop.name?.getText(sourceFile);
|
|
463
|
+
if (keyName) {
|
|
464
|
+
keys.push(keyName);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
ts.forEachChild(node, visit);
|
|
471
|
+
};
|
|
472
|
+
ts.forEachChild(sourceFile, visit);
|
|
473
|
+
return keys;
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Find a config file by name
|
|
477
|
+
*/
|
|
478
|
+
async findConfigFile(configName) {
|
|
479
|
+
const possiblePaths = [`src/config/${configName}.ts`, `config/${configName}.ts`];
|
|
480
|
+
for (const path of possiblePaths) {
|
|
481
|
+
const fullPath = join(process.cwd(), path);
|
|
482
|
+
if (await this.exists(fullPath)) {
|
|
483
|
+
return path;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
try {
|
|
487
|
+
const files = filesOrchestrator.getFiles();
|
|
488
|
+
for (const [filePath] of files) {
|
|
489
|
+
if (filePath.includes(`config/${configName}`)) {
|
|
490
|
+
return filePath;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
catch {
|
|
495
|
+
// Files orchestrator not initialized yet
|
|
496
|
+
}
|
|
497
|
+
return undefined;
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Ensure output directory exists
|
|
501
|
+
*/
|
|
502
|
+
async ensureOutputDir() {
|
|
503
|
+
await ensureDirectoryAsync(this.outputDir);
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* Check if a path exists (async wrapper)
|
|
507
|
+
*/
|
|
508
|
+
async exists(path) {
|
|
509
|
+
try {
|
|
510
|
+
await access(path, constants.F_OK);
|
|
511
|
+
return true;
|
|
512
|
+
}
|
|
513
|
+
catch {
|
|
514
|
+
return false;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
/**
|
|
518
|
+
* Execute generateAll command using spawn
|
|
519
|
+
*/
|
|
520
|
+
async executeGenerateAllCommand() {
|
|
521
|
+
devLogInfo("Checking for types generation");
|
|
522
|
+
const isDevServeCore = env("DEV_SERVER_CORE");
|
|
523
|
+
const childProcess = spawn(isDevServeCore ? "yarn" : "npx", [isDevServeCore ? "cli" : "warlock", "generate.typings"], {
|
|
524
|
+
// const childProcess = spawn("yarn", ["cli", "generate.typings"], {
|
|
525
|
+
stdio: "inherit",
|
|
526
|
+
cwd: process.cwd(),
|
|
527
|
+
shell: true, // Required on Windows to find yarn in PATH
|
|
528
|
+
});
|
|
529
|
+
childProcess.on("exit", (code) => {
|
|
530
|
+
if (code === 0) {
|
|
531
|
+
devLogSuccess("Types generated successfully");
|
|
532
|
+
}
|
|
533
|
+
else {
|
|
534
|
+
devLogError("Failed to generate types");
|
|
535
|
+
}
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
/**
|
|
539
|
+
* Execute a typings generator for the given files
|
|
540
|
+
*/
|
|
541
|
+
async executeTypingsGenerator(upcomingFiles) {
|
|
542
|
+
const uniqueFiles = Array.from(new Set(upcomingFiles));
|
|
543
|
+
const configFilesOnly = uniqueFiles.filter((file) => Path.normalize(file).includes("src/config/"));
|
|
544
|
+
if (configFilesOnly.length === 0)
|
|
545
|
+
return;
|
|
546
|
+
configFilesOnly.map((file) => "./" + Path.toRelative(file));
|
|
547
|
+
const isDevServeCore = env("DEV_SERVER_CORE");
|
|
548
|
+
const childProcess = spawn(isDevServeCore ? "yarn" : "npx", [isDevServeCore ? "cli" : "warlock", "generate.typings"], {
|
|
549
|
+
stdio: "inherit",
|
|
550
|
+
cwd: process.cwd(),
|
|
551
|
+
shell: true, // Required on Windows to find yarn in PATH
|
|
552
|
+
});
|
|
553
|
+
childProcess.on("exit", (code) => {
|
|
554
|
+
if (code === 0) {
|
|
555
|
+
devLogSuccess("Types generated successfully");
|
|
556
|
+
}
|
|
557
|
+
else {
|
|
558
|
+
devLogError("Failed to generate types");
|
|
559
|
+
}
|
|
560
|
+
});
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* Singleton instance for use throughout dev-server
|
|
565
|
+
*/
|
|
566
|
+
const typeGenerator = new TypeGenerator();export{TypeGenerator,typeGenerator};//# sourceMappingURL=type-generator.js.map
|