@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,300 @@
|
|
|
1
|
+
import events from'@mongez/events';import {debounce}from'@mongez/reinforcements';import {devLogSuccess}from'./dev-logger.js';import {FILE_PROCESSING_BATCH_SIZE}from'./flags.js';import {clearFileExistsCache}from'./parse-imports.js';import {Path}from'./path.js';/**
|
|
2
|
+
* FileEventHandler - Handles runtime file system events
|
|
3
|
+
*
|
|
4
|
+
* This class receives file system events (add, change, delete) from the
|
|
5
|
+
* FilesWatcher and processes them in batches for optimal performance.
|
|
6
|
+
*
|
|
7
|
+
* ## Batching Strategy
|
|
8
|
+
*
|
|
9
|
+
* Events are collected and processed after a debounce period (150ms).
|
|
10
|
+
* This batching is crucial when:
|
|
11
|
+
* - Multiple files are created at once (e.g., VSCode extension creating a module)
|
|
12
|
+
* - A file save triggers multiple filesystem events
|
|
13
|
+
* - Large refactoring operations affect many files
|
|
14
|
+
*
|
|
15
|
+
* ## Processing Order
|
|
16
|
+
*
|
|
17
|
+
* 1. **Added files** - Processed first so they're available for imports
|
|
18
|
+
* 2. **Changed files** - Can reference newly added files
|
|
19
|
+
* 3. **Deleted files** - Processed last, dependents are notified
|
|
20
|
+
*
|
|
21
|
+
* ## Batch Add Strategy
|
|
22
|
+
*
|
|
23
|
+
* When multiple files are added (e.g., creating a Warlock module), they're
|
|
24
|
+
* processed using a two-phase approach with topological sorting:
|
|
25
|
+
*
|
|
26
|
+
* 1. **Parse Phase**: All files are parsed to discover dependencies
|
|
27
|
+
* 2. **Sort Phase**: Files are topologically sorted by dependencies
|
|
28
|
+
* 3. **Complete Phase**: Files are finalized in dependency order
|
|
29
|
+
*
|
|
30
|
+
* This ensures that when file A imports file B, file B is processed first.
|
|
31
|
+
*
|
|
32
|
+
* @class FileEventHandler
|
|
33
|
+
*/
|
|
34
|
+
class FileEventHandler {
|
|
35
|
+
fileOperations;
|
|
36
|
+
manifest;
|
|
37
|
+
dependencyGraph;
|
|
38
|
+
files;
|
|
39
|
+
/**
|
|
40
|
+
* Pending file change events (relative paths)
|
|
41
|
+
*/
|
|
42
|
+
pendingChanges = new Set();
|
|
43
|
+
/**
|
|
44
|
+
* Pending file add events (relative paths)
|
|
45
|
+
*/
|
|
46
|
+
pendingAdds = new Set();
|
|
47
|
+
/**
|
|
48
|
+
* Pending file delete events (relative paths)
|
|
49
|
+
*/
|
|
50
|
+
pendingDeletes = new Set();
|
|
51
|
+
/**
|
|
52
|
+
* Debounced batch processor
|
|
53
|
+
* Waits 150ms after the last event before processing
|
|
54
|
+
*/
|
|
55
|
+
processPendingEvents = debounce(async () => {
|
|
56
|
+
await this.processBatch();
|
|
57
|
+
}, 150);
|
|
58
|
+
/**
|
|
59
|
+
* Creates a new FileEventHandler
|
|
60
|
+
*
|
|
61
|
+
* @param fileOperations - FileOperations instance for file lifecycle management
|
|
62
|
+
* @param manifest - ManifestManager for persisting file metadata
|
|
63
|
+
* @param dependencyGraph - DependencyGraph for tracking dependencies
|
|
64
|
+
* @param files - Map of all tracked FileManager instances
|
|
65
|
+
*/
|
|
66
|
+
constructor(fileOperations, manifest, dependencyGraph, files) {
|
|
67
|
+
this.fileOperations = fileOperations;
|
|
68
|
+
this.manifest = manifest;
|
|
69
|
+
this.dependencyGraph = dependencyGraph;
|
|
70
|
+
this.files = files;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Handle a file change event from the file watcher
|
|
74
|
+
*
|
|
75
|
+
* The event is queued and will be processed in the next batch.
|
|
76
|
+
*
|
|
77
|
+
* @param absolutePath - Absolute path to the changed file
|
|
78
|
+
*/
|
|
79
|
+
handleFileChange(absolutePath) {
|
|
80
|
+
const relativePath = Path.toRelative(absolutePath);
|
|
81
|
+
this.pendingChanges.add(relativePath);
|
|
82
|
+
this.processPendingEvents();
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Handle a file add event from the file watcher
|
|
86
|
+
*
|
|
87
|
+
* The event is queued and will be processed in the next batch.
|
|
88
|
+
*
|
|
89
|
+
* @param absolutePath - Absolute path to the new file
|
|
90
|
+
*/
|
|
91
|
+
handleFileAdd(absolutePath) {
|
|
92
|
+
const relativePath = Path.toRelative(absolutePath);
|
|
93
|
+
this.pendingAdds.add(relativePath);
|
|
94
|
+
this.processPendingEvents();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Handle a file delete event from the file watcher
|
|
98
|
+
*
|
|
99
|
+
* The event is queued and will be processed in the next batch.
|
|
100
|
+
*
|
|
101
|
+
* @param absolutePath - Absolute path to the deleted file
|
|
102
|
+
*/
|
|
103
|
+
handleFileDelete(absolutePath) {
|
|
104
|
+
const relativePath = Path.toRelative(absolutePath);
|
|
105
|
+
this.pendingDeletes.add(relativePath);
|
|
106
|
+
this.processPendingEvents();
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Process all pending events in a batch
|
|
110
|
+
*
|
|
111
|
+
* Events are processed in order: adds → changes → deletes
|
|
112
|
+
* After processing, the dependency graph and manifest are updated.
|
|
113
|
+
*
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
116
|
+
async processBatch() {
|
|
117
|
+
// Snapshot pending events
|
|
118
|
+
const changes = Array.from(this.pendingChanges);
|
|
119
|
+
const adds = Array.from(this.pendingAdds);
|
|
120
|
+
const deletes = Array.from(this.pendingDeletes);
|
|
121
|
+
// Clear pending sets
|
|
122
|
+
this.pendingChanges.clear();
|
|
123
|
+
this.pendingAdds.clear();
|
|
124
|
+
this.pendingDeletes.clear();
|
|
125
|
+
// Skip if nothing to process
|
|
126
|
+
if (changes.length === 0 && adds.length === 0 && deletes.length === 0) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
// For batch operations, add extra delay to let filesystem settle
|
|
130
|
+
const totalFiles = adds.length + changes.length;
|
|
131
|
+
if (totalFiles > 1) {
|
|
132
|
+
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
133
|
+
clearFileExistsCache();
|
|
134
|
+
}
|
|
135
|
+
// Process in order: adds first, then changes, then deletes
|
|
136
|
+
await this.processBatchAdds(adds);
|
|
137
|
+
await this.processBatchChanges(changes);
|
|
138
|
+
await this.processBatchDeletes(deletes);
|
|
139
|
+
// Update dependency graph and manifest once
|
|
140
|
+
this.fileOperations.updateFileDependents();
|
|
141
|
+
this.fileOperations.syncFilesToManifest();
|
|
142
|
+
await this.manifest.save();
|
|
143
|
+
// Trigger batch completion event (for HMR/reload execution)
|
|
144
|
+
events.trigger("dev-server:batch-complete", {
|
|
145
|
+
added: adds,
|
|
146
|
+
changed: changes,
|
|
147
|
+
deleted: deletes,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Process a batch of changed files
|
|
152
|
+
*
|
|
153
|
+
* Each file is updated (reprocessed if content changed).
|
|
154
|
+
* Processing is done in parallel batches for performance.
|
|
155
|
+
*
|
|
156
|
+
* @param relativePaths - Array of relative paths to changed files
|
|
157
|
+
* @internal
|
|
158
|
+
*/
|
|
159
|
+
async processBatchChanges(relativePaths) {
|
|
160
|
+
if (relativePaths.length === 0)
|
|
161
|
+
return;
|
|
162
|
+
const BATCH_SIZE = FILE_PROCESSING_BATCH_SIZE;
|
|
163
|
+
for (let i = 0; i < relativePaths.length; i += BATCH_SIZE) {
|
|
164
|
+
const batch = relativePaths.slice(i, i + BATCH_SIZE);
|
|
165
|
+
await Promise.all(batch.map(async (relativePath) => {
|
|
166
|
+
await this.fileOperations.updateFile(relativePath);
|
|
167
|
+
}));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Process a batch of added files using topological sort
|
|
172
|
+
*
|
|
173
|
+
* This method uses a two-phase approach:
|
|
174
|
+
* 1. Parse all files to discover dependencies
|
|
175
|
+
* 2. Complete files in topological order (dependencies first)
|
|
176
|
+
*
|
|
177
|
+
* This ensures that when file A imports file B (both in the batch),
|
|
178
|
+
* file B is fully processed before file A tries to resolve the import.
|
|
179
|
+
*
|
|
180
|
+
* @param relativePaths - Array of relative paths to new files
|
|
181
|
+
* @internal
|
|
182
|
+
*/
|
|
183
|
+
async processBatchAdds(relativePaths) {
|
|
184
|
+
if (relativePaths.length === 0)
|
|
185
|
+
return;
|
|
186
|
+
const batchSet = new Set(relativePaths);
|
|
187
|
+
// PHASE 1: Parse all files in parallel to discover dependencies
|
|
188
|
+
const parsedFiles = await Promise.all(relativePaths.map(async (relativePath) => {
|
|
189
|
+
try {
|
|
190
|
+
return await this.fileOperations.parseNewFile(relativePath);
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
}));
|
|
196
|
+
// Filter out nulls (files that couldn't be parsed)
|
|
197
|
+
const validFiles = parsedFiles.filter((f) => f !== null);
|
|
198
|
+
// PHASE 2: Topological sort for proper dependency order
|
|
199
|
+
const orderedFiles = this.topologicalSort(validFiles, batchSet);
|
|
200
|
+
// PHASE 3: Complete processing in dependency order
|
|
201
|
+
for (const file of orderedFiles) {
|
|
202
|
+
try {
|
|
203
|
+
await this.fileOperations.finalizeNewFile(file);
|
|
204
|
+
devLogSuccess(`Added file: ${file.relativePath}`);
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
// File may have issues, but we continue with others
|
|
208
|
+
console.error(`Failed to add file ${file.relativePath}:`, error);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Topologically sort files by their dependencies
|
|
214
|
+
*
|
|
215
|
+
* Uses Kahn's algorithm to produce an ordering where files with
|
|
216
|
+
* no batch dependencies come first, and files that depend on other
|
|
217
|
+
* batch files come after their dependencies.
|
|
218
|
+
*
|
|
219
|
+
* @param files - Array of FileManager instances to sort
|
|
220
|
+
* @param batchSet - Set of relative paths in this batch (for filtering deps)
|
|
221
|
+
* @returns Files in topological order (dependencies first)
|
|
222
|
+
*
|
|
223
|
+
* @example
|
|
224
|
+
* ```typescript
|
|
225
|
+
* // If A imports B, and B imports C, result will be: [C, B, A]
|
|
226
|
+
* const ordered = this.topologicalSort([fileA, fileB, fileC], batchSet);
|
|
227
|
+
* ```
|
|
228
|
+
*
|
|
229
|
+
* @internal
|
|
230
|
+
*/
|
|
231
|
+
topologicalSort(files, batchSet) {
|
|
232
|
+
const fileMap = new Map();
|
|
233
|
+
const inDegree = new Map();
|
|
234
|
+
const graph = new Map();
|
|
235
|
+
// Initialize data structures
|
|
236
|
+
for (const file of files) {
|
|
237
|
+
fileMap.set(file.relativePath, file);
|
|
238
|
+
inDegree.set(file.relativePath, 0);
|
|
239
|
+
graph.set(file.relativePath, []);
|
|
240
|
+
}
|
|
241
|
+
// Build graph: for each file, record which files depend on it
|
|
242
|
+
for (const file of files) {
|
|
243
|
+
for (const dep of file.dependencies) {
|
|
244
|
+
// Only consider dependencies that are in this batch
|
|
245
|
+
if (batchSet.has(dep) && fileMap.has(dep)) {
|
|
246
|
+
// dep → file (file depends on dep)
|
|
247
|
+
graph.get(dep).push(file.relativePath);
|
|
248
|
+
inDegree.set(file.relativePath, (inDegree.get(file.relativePath) || 0) + 1);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// Kahn's algorithm: start with files that have no batch dependencies
|
|
253
|
+
const queue = [];
|
|
254
|
+
for (const file of files) {
|
|
255
|
+
if (inDegree.get(file.relativePath) === 0) {
|
|
256
|
+
queue.push(file);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
const result = [];
|
|
260
|
+
while (queue.length > 0) {
|
|
261
|
+
const file = queue.shift();
|
|
262
|
+
result.push(file);
|
|
263
|
+
// For each file that depends on this one, reduce its in-degree
|
|
264
|
+
for (const dependentPath of graph.get(file.relativePath) || []) {
|
|
265
|
+
const newDegree = (inDegree.get(dependentPath) || 0) - 1;
|
|
266
|
+
inDegree.set(dependentPath, newDegree);
|
|
267
|
+
if (newDegree === 0) {
|
|
268
|
+
const dependentFile = fileMap.get(dependentPath);
|
|
269
|
+
if (dependentFile) {
|
|
270
|
+
queue.push(dependentFile);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
// Handle any remaining files (cycles or isolated)
|
|
276
|
+
// These are added at the end to ensure all files are processed
|
|
277
|
+
for (const file of files) {
|
|
278
|
+
if (!result.includes(file)) {
|
|
279
|
+
result.push(file);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return result;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Process a batch of deleted files
|
|
286
|
+
*
|
|
287
|
+
* Each file is removed from the system and its dependents are notified.
|
|
288
|
+
*
|
|
289
|
+
* @param relativePaths - Array of relative paths to deleted files
|
|
290
|
+
* @internal
|
|
291
|
+
*/
|
|
292
|
+
async processBatchDeletes(relativePaths) {
|
|
293
|
+
if (relativePaths.length === 0)
|
|
294
|
+
return;
|
|
295
|
+
for (const relativePath of relativePaths) {
|
|
296
|
+
await this.fileOperations.deleteFile(relativePath);
|
|
297
|
+
devLogSuccess(`Deleted file: ${relativePath}`);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}export{FileEventHandler};//# sourceMappingURL=file-event-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-event-handler.js","sources":["../../src/dev2-server/file-event-handler.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
import { type FileOperations } from "./file-operations";
|
|
2
|
+
import type { FileManifest, FileState, FileType, LayerType } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Options for the process() method
|
|
5
|
+
*/
|
|
6
|
+
export interface ProcessOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Force reprocessing even if file hasn't changed
|
|
9
|
+
* @default false
|
|
10
|
+
*/
|
|
11
|
+
force?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Whether to transform imports to cache paths
|
|
14
|
+
* Set to false during batch operations where imports are transformed later
|
|
15
|
+
* @default true
|
|
16
|
+
*/
|
|
17
|
+
transformImports?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Whether to save to cache after processing
|
|
20
|
+
* Set to false if you need to do additional transformations before saving
|
|
21
|
+
* @default true
|
|
22
|
+
*/
|
|
23
|
+
saveToCache?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* FileManager - Manages the lifecycle of a single source file
|
|
27
|
+
*
|
|
28
|
+
* ## Lifecycle States
|
|
29
|
+
*
|
|
30
|
+
* ```
|
|
31
|
+
* idle → loading → parsed → transpiled → ready
|
|
32
|
+
* ↑ │
|
|
33
|
+
* └──────────── (file changed) ──────────┘
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* ## Processing Pipeline
|
|
37
|
+
*
|
|
38
|
+
* All file processing flows through a unified pipeline:
|
|
39
|
+
* 1. **Load** - Read source from disk
|
|
40
|
+
* 2. **Hash** - Calculate content hash for change detection
|
|
41
|
+
* 3. **Parse** - Discover imports and dependencies
|
|
42
|
+
* 4. **Transpile** - Convert TypeScript to JavaScript
|
|
43
|
+
* 5. **Transform** - Rewrite import paths to cache locations
|
|
44
|
+
* 6. **Save** - Write transformed code to cache (ONCE)
|
|
45
|
+
*
|
|
46
|
+
* ## Usage Examples
|
|
47
|
+
*
|
|
48
|
+
* ```typescript
|
|
49
|
+
* // Standard processing (full pipeline)
|
|
50
|
+
* const file = new FileManager(absolutePath, filesMap, fileOps);
|
|
51
|
+
* await file.process();
|
|
52
|
+
*
|
|
53
|
+
* // Batch processing (parse first, complete later)
|
|
54
|
+
* await file.parse();
|
|
55
|
+
* // ... after dependencies are ready ...
|
|
56
|
+
* await file.complete();
|
|
57
|
+
*
|
|
58
|
+
* // Check for changes and reprocess if needed
|
|
59
|
+
* const changed = await file.process(); // returns false if unchanged
|
|
60
|
+
*
|
|
61
|
+
* // Force reprocessing
|
|
62
|
+
* await file.process({ force: true });
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* @class FileManager
|
|
66
|
+
*/
|
|
67
|
+
export declare class FileManager {
|
|
68
|
+
readonly absolutePath: string;
|
|
69
|
+
files: Map<string, FileManager>;
|
|
70
|
+
fileOperations: FileOperations;
|
|
71
|
+
/**
|
|
72
|
+
* Relative path from the project root directory
|
|
73
|
+
* Used as the primary identifier for files throughout the system
|
|
74
|
+
* @example "src/app/users/controllers/get-user.controller.ts"
|
|
75
|
+
*/
|
|
76
|
+
relativePath: string;
|
|
77
|
+
/**
|
|
78
|
+
* Unix timestamp of the last modification time
|
|
79
|
+
* Used with hash for change detection
|
|
80
|
+
*/
|
|
81
|
+
lastModified: number;
|
|
82
|
+
/**
|
|
83
|
+
* SHA-256 hash of the source content
|
|
84
|
+
* Primary mechanism for detecting file changes
|
|
85
|
+
*/
|
|
86
|
+
hash: string;
|
|
87
|
+
/**
|
|
88
|
+
* Original TypeScript/JavaScript source code
|
|
89
|
+
* Loaded from disk during processing
|
|
90
|
+
*/
|
|
91
|
+
source: string;
|
|
92
|
+
/**
|
|
93
|
+
* Transpiled JavaScript code with transformed imports
|
|
94
|
+
* This is the final output that gets saved to cache and loaded at runtime
|
|
95
|
+
*/
|
|
96
|
+
transpiled: string;
|
|
97
|
+
/**
|
|
98
|
+
* Set of relative paths that this file depends on (imports)
|
|
99
|
+
* Used to build the dependency graph for HMR invalidation
|
|
100
|
+
* @example Set(["src/app/users/models/user.model.ts", "src/config/database.ts"])
|
|
101
|
+
*/
|
|
102
|
+
dependencies: Set<string>;
|
|
103
|
+
/**
|
|
104
|
+
* Map of original import specifiers to resolved absolute paths
|
|
105
|
+
* Key: the exact import string from source (e.g., "./user.model")
|
|
106
|
+
* Value: resolved absolute path (e.g., "D:/project/src/app/users/models/user.model.ts")
|
|
107
|
+
*
|
|
108
|
+
* Used during import transformation to rewrite paths to cache locations
|
|
109
|
+
*/
|
|
110
|
+
importMap: Map<string, string>;
|
|
111
|
+
/**
|
|
112
|
+
* Set of relative paths that depend on this file
|
|
113
|
+
* Populated from the dependency graph after initial processing
|
|
114
|
+
* Used to determine what needs reloading when this file changes
|
|
115
|
+
*/
|
|
116
|
+
dependents: Set<string>;
|
|
117
|
+
/**
|
|
118
|
+
* Version number incremented on each change
|
|
119
|
+
* Used for cache busting in dynamic imports
|
|
120
|
+
*/
|
|
121
|
+
version: number;
|
|
122
|
+
/**
|
|
123
|
+
* Semantic type of the file based on its path/content
|
|
124
|
+
* Used to determine reload behavior and special handling
|
|
125
|
+
*/
|
|
126
|
+
type: FileType | undefined;
|
|
127
|
+
/**
|
|
128
|
+
* Reload layer: HMR (hot module replacement) or FSR (full server restart)
|
|
129
|
+
* Determines how changes to this file are applied at runtime
|
|
130
|
+
*/
|
|
131
|
+
layer: LayerType | undefined;
|
|
132
|
+
/**
|
|
133
|
+
* Path to the cached transpiled file (relative to .warlock/cache/)
|
|
134
|
+
* @example "src-app-users-controllers-get-user.controller.js"
|
|
135
|
+
*/
|
|
136
|
+
cachePath: string;
|
|
137
|
+
/**
|
|
138
|
+
* Cleanup function called before the file is unloaded
|
|
139
|
+
* Set by module loader for files that export cleanup handlers
|
|
140
|
+
*/
|
|
141
|
+
cleanup?: (() => void)[] | (() => void);
|
|
142
|
+
/**
|
|
143
|
+
* Whether imports have been transformed to cache paths
|
|
144
|
+
* Prevents double transformation and tracks processing state
|
|
145
|
+
*/
|
|
146
|
+
importsTransformed: boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Whether this file contains only type definitions (no runtime code)
|
|
149
|
+
* Type-only files are excluded from circular dependency detection
|
|
150
|
+
*/
|
|
151
|
+
isTypeOnlyFile: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Current processing state of the file
|
|
154
|
+
*
|
|
155
|
+
* - `idle`: Initial state, no processing started
|
|
156
|
+
* - `loading`: Reading source from disk
|
|
157
|
+
* - `parsed`: Source loaded and imports discovered
|
|
158
|
+
* - `transpiled`: TypeScript compiled to JavaScript
|
|
159
|
+
* - `ready`: Fully processed and available for use
|
|
160
|
+
* - `updating`: Being reprocessed after a change
|
|
161
|
+
* - `deleted`: File has been removed from disk
|
|
162
|
+
*/
|
|
163
|
+
state: FileState;
|
|
164
|
+
/**
|
|
165
|
+
* Creates a new FileManager instance
|
|
166
|
+
*
|
|
167
|
+
* @param absolutePath - Full filesystem path to the source file
|
|
168
|
+
* @param files - Map of all tracked files (for import resolution)
|
|
169
|
+
* @param fileOperations - FileOperations instance (for adding missing dependencies)
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```typescript
|
|
173
|
+
* const fileManager = new FileManager(
|
|
174
|
+
* "D:/project/src/app/users/controllers/get-user.controller.ts",
|
|
175
|
+
* filesMap,
|
|
176
|
+
* fileOperations
|
|
177
|
+
* );
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
constructor(absolutePath: string, files: Map<string, FileManager>, fileOperations: FileOperations);
|
|
181
|
+
/**
|
|
182
|
+
* Initialize the file manager from disk or manifest cache
|
|
183
|
+
*
|
|
184
|
+
* This is the primary entry point for file initialization.
|
|
185
|
+
* If manifest data is provided, it will attempt to use cached data
|
|
186
|
+
* and only reprocess if the file has changed.
|
|
187
|
+
*
|
|
188
|
+
* @param fileManifest - Optional cached manifest data from previous build
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```typescript
|
|
192
|
+
* // Fresh initialization (no cache)
|
|
193
|
+
* await fileManager.init();
|
|
194
|
+
*
|
|
195
|
+
* // Initialize with cached manifest data
|
|
196
|
+
* await fileManager.init(manifestEntry);
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
init(fileManifest?: Partial<FileManifest>): Promise<void>;
|
|
200
|
+
/**
|
|
201
|
+
* Get the cache path as a file:// URL for dynamic import
|
|
202
|
+
* Includes cache busting query parameter based on version
|
|
203
|
+
*
|
|
204
|
+
* @returns File URL ready for dynamic import, or empty string if no cache
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* ```typescript
|
|
208
|
+
* const module = await import(fileManager.cachePathUrl);
|
|
209
|
+
* ```
|
|
210
|
+
*/
|
|
211
|
+
get cachePathUrl(): string;
|
|
212
|
+
/**
|
|
213
|
+
* Process the file through the unified pipeline
|
|
214
|
+
*
|
|
215
|
+
* This is the core method that handles all file processing.
|
|
216
|
+
* It implements a single-pass pipeline that:
|
|
217
|
+
* 1. Loads source from disk
|
|
218
|
+
* 2. Checks if content changed (skip if unchanged)
|
|
219
|
+
* 3. Parses imports to discover dependencies
|
|
220
|
+
* 4. Ensures all dependencies exist
|
|
221
|
+
* 5. Transpiles TypeScript to JavaScript
|
|
222
|
+
* 6. Transforms imports to cache paths
|
|
223
|
+
* 7. Saves to cache (ONCE - no duplicate writes)
|
|
224
|
+
*
|
|
225
|
+
* @param options - Processing options
|
|
226
|
+
* @param options.force - Force reprocessing even if unchanged
|
|
227
|
+
* @param options.transformImports - Whether to transform import paths (default: true)
|
|
228
|
+
* @param options.saveToCache - Whether to save to cache file (default: true)
|
|
229
|
+
*
|
|
230
|
+
* @returns True if file was processed, false if unchanged and skipped
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* ```typescript
|
|
234
|
+
* // Normal processing
|
|
235
|
+
* const changed = await fileManager.process();
|
|
236
|
+
*
|
|
237
|
+
* // Force reprocess
|
|
238
|
+
* await fileManager.process({ force: true });
|
|
239
|
+
*
|
|
240
|
+
* // Batch mode: transform imports later
|
|
241
|
+
* await fileManager.process({ transformImports: false });
|
|
242
|
+
* ```
|
|
243
|
+
*/
|
|
244
|
+
process(options?: ProcessOptions): Promise<boolean>;
|
|
245
|
+
/**
|
|
246
|
+
* Parse the file to discover dependencies (Phase 1 of batch processing)
|
|
247
|
+
*
|
|
248
|
+
* This method only performs the first half of processing:
|
|
249
|
+
* - Loads source from disk
|
|
250
|
+
* - Calculates hash
|
|
251
|
+
* - Parses imports to discover dependencies
|
|
252
|
+
* - Sets up file metadata
|
|
253
|
+
*
|
|
254
|
+
* Use this for batch file operations where you need to know
|
|
255
|
+
* dependencies before deciding processing order.
|
|
256
|
+
*
|
|
257
|
+
* **Important**: After calling parse(), you must call complete()
|
|
258
|
+
* to finish processing and make the file usable.
|
|
259
|
+
*
|
|
260
|
+
* @example
|
|
261
|
+
* ```typescript
|
|
262
|
+
* // Batch processing pattern
|
|
263
|
+
* const files = await Promise.all(
|
|
264
|
+
* paths.map(async (path) => {
|
|
265
|
+
* const file = new FileManager(path, filesMap, fileOps);
|
|
266
|
+
* await file.parse();
|
|
267
|
+
* return file;
|
|
268
|
+
* })
|
|
269
|
+
* );
|
|
270
|
+
*
|
|
271
|
+
* // Order by dependencies, then complete
|
|
272
|
+
* for (const file of orderedFiles) {
|
|
273
|
+
* await file.complete();
|
|
274
|
+
* }
|
|
275
|
+
* ```
|
|
276
|
+
*/
|
|
277
|
+
parse(): Promise<void>;
|
|
278
|
+
/**
|
|
279
|
+
* Complete file processing after parse() (Phase 2 of batch processing)
|
|
280
|
+
*
|
|
281
|
+
* This method completes the processing pipeline:
|
|
282
|
+
* - Ensures dependencies exist
|
|
283
|
+
* - Transpiles TypeScript to JavaScript
|
|
284
|
+
* - Transforms imports to cache paths
|
|
285
|
+
* - Saves to cache
|
|
286
|
+
*
|
|
287
|
+
* **Important**: This must be called after parse() to finish processing.
|
|
288
|
+
* The file is not usable until complete() has been called.
|
|
289
|
+
*
|
|
290
|
+
* @example
|
|
291
|
+
* ```typescript
|
|
292
|
+
* await file.parse();
|
|
293
|
+
* // ... after dependencies are ready ...
|
|
294
|
+
* await file.complete();
|
|
295
|
+
* // File is now ready for use
|
|
296
|
+
* ```
|
|
297
|
+
*/
|
|
298
|
+
complete(): Promise<void>;
|
|
299
|
+
/**
|
|
300
|
+
* Update the file after a change during development
|
|
301
|
+
*
|
|
302
|
+
* This is a convenience method that delegates to process().
|
|
303
|
+
* It checks if the file has actually changed and only reprocesses if needed.
|
|
304
|
+
*
|
|
305
|
+
* @returns True if file was reprocessed, false if unchanged
|
|
306
|
+
*
|
|
307
|
+
* @example
|
|
308
|
+
* ```typescript
|
|
309
|
+
* // Called by file watcher
|
|
310
|
+
* const changed = await fileManager.update();
|
|
311
|
+
* if (changed) {
|
|
312
|
+
* console.log("File was updated");
|
|
313
|
+
* }
|
|
314
|
+
* ```
|
|
315
|
+
*/
|
|
316
|
+
update(): Promise<boolean>;
|
|
317
|
+
/**
|
|
318
|
+
* Force reprocess the file regardless of hash match
|
|
319
|
+
*
|
|
320
|
+
* Use this when:
|
|
321
|
+
* - A dependency that was previously missing is now available
|
|
322
|
+
* - Import transformation needs to be redone
|
|
323
|
+
* - Cache is corrupted or missing
|
|
324
|
+
*
|
|
325
|
+
* @example
|
|
326
|
+
* ```typescript
|
|
327
|
+
* // After a missing dependency is added
|
|
328
|
+
* await fileManager.forceReprocess();
|
|
329
|
+
* ```
|
|
330
|
+
*/
|
|
331
|
+
forceReprocess(): Promise<void>;
|
|
332
|
+
/**
|
|
333
|
+
* Initialize from cached manifest data
|
|
334
|
+
*
|
|
335
|
+
* Attempts to use cached data from a previous build.
|
|
336
|
+
* If the file has changed (hash mismatch) or cache is missing,
|
|
337
|
+
* falls back to full processing.
|
|
338
|
+
*
|
|
339
|
+
* @param fileManifest - Cached manifest entry
|
|
340
|
+
* @internal
|
|
341
|
+
*/
|
|
342
|
+
protected initFromManifest(fileManifest: Partial<FileManifest>): Promise<void>;
|
|
343
|
+
/**
|
|
344
|
+
* Detect the file type and reload layer based on path patterns
|
|
345
|
+
*
|
|
346
|
+
* File types determine special handling:
|
|
347
|
+
* - `main`: Application entry point
|
|
348
|
+
* - `config`: Configuration files
|
|
349
|
+
* - `route`: Route definitions
|
|
350
|
+
* - `controller`: HTTP controllers
|
|
351
|
+
* - `service`: Business logic services
|
|
352
|
+
* - `model`: Database models
|
|
353
|
+
* - `event`: Event handlers
|
|
354
|
+
* - `other`: Everything else
|
|
355
|
+
*
|
|
356
|
+
* Layers determine reload behavior:
|
|
357
|
+
* - `HMR`: Hot module replacement (instant reload)
|
|
358
|
+
* - `FSR`: Full server restart (required for some changes)
|
|
359
|
+
*
|
|
360
|
+
* @internal
|
|
361
|
+
*/
|
|
362
|
+
protected detectFileTypeAndLayer(): void;
|
|
363
|
+
/**
|
|
364
|
+
* Export file data as a manifest entry for caching
|
|
365
|
+
*
|
|
366
|
+
* The manifest stores metadata about each file to enable:
|
|
367
|
+
* - Fast startup by skipping unchanged files
|
|
368
|
+
* - Dependency tracking across restarts
|
|
369
|
+
* - Cache validation via hash comparison
|
|
370
|
+
*
|
|
371
|
+
* Note: Source code and transpiled output are NOT stored in manifest.
|
|
372
|
+
* - Source is always read from disk
|
|
373
|
+
* - Transpiled code is stored in .warlock/cache/
|
|
374
|
+
*
|
|
375
|
+
* @returns Manifest entry for this file
|
|
376
|
+
*
|
|
377
|
+
* @example
|
|
378
|
+
* ```typescript
|
|
379
|
+
* const entry = fileManager.toManifest();
|
|
380
|
+
* manifest.setFile(fileManager.relativePath, entry);
|
|
381
|
+
* ```
|
|
382
|
+
*/
|
|
383
|
+
toManifest(): FileManifest;
|
|
384
|
+
}
|
|
385
|
+
//# sourceMappingURL=file-manager.d.ts.map
|