@nocobase/app-server 0.11.1-alpha.5 → 2.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +295 -0
- package/dist/application/index.d.ts +128 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +386 -0
- package/dist/application/index.js.map +1 -0
- package/dist/caching/config.d.ts +2 -0
- package/dist/caching/config.d.ts.map +1 -0
- package/dist/caching/config.js +2 -0
- package/dist/caching/config.js.map +1 -0
- package/dist/caching/index.d.ts +5 -0
- package/dist/caching/index.d.ts.map +1 -0
- package/dist/caching/index.js +4 -0
- package/dist/caching/index.js.map +1 -0
- package/dist/caching/provider.d.ts +8 -0
- package/dist/caching/provider.d.ts.map +1 -0
- package/dist/caching/provider.js +14 -0
- package/dist/caching/provider.js.map +1 -0
- package/dist/caching/token.d.ts +4 -0
- package/dist/caching/token.d.ts.map +1 -0
- package/dist/caching/token.js +3 -0
- package/dist/caching/token.js.map +1 -0
- package/dist/config/app-config-types.d.ts +44 -0
- package/dist/config/app-config-types.d.ts.map +1 -0
- package/dist/config/app-config-types.js +2 -0
- package/dist/config/app-config-types.js.map +1 -0
- package/dist/config/app-config.d.ts +60 -0
- package/dist/config/app-config.d.ts.map +1 -0
- package/dist/config/app-config.js +247 -0
- package/dist/config/app-config.js.map +1 -0
- package/dist/config/context.d.ts +3 -0
- package/dist/config/context.d.ts.map +1 -0
- package/dist/config/context.js +7 -0
- package/dist/config/context.js.map +1 -0
- package/dist/config/define-app-config.d.ts +71 -0
- package/dist/config/define-app-config.d.ts.map +1 -0
- package/dist/config/define-app-config.js +48 -0
- package/dist/config/define-app-config.js.map +1 -0
- package/dist/config/index.d.ts +13 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +11 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/not-configured.d.ts +23 -0
- package/dist/config/not-configured.d.ts.map +1 -0
- package/dist/config/not-configured.js +31 -0
- package/dist/config/not-configured.js.map +1 -0
- package/dist/config/paths.d.ts +27 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +27 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/placeholder-secret.d.ts +19 -0
- package/dist/config/placeholder-secret.d.ts.map +1 -0
- package/dist/config/placeholder-secret.js +26 -0
- package/dist/config/placeholder-secret.js.map +1 -0
- package/dist/config/runtime-environment.d.ts +11 -0
- package/dist/config/runtime-environment.d.ts.map +1 -0
- package/dist/config/runtime-environment.js +20 -0
- package/dist/config/runtime-environment.js.map +1 -0
- package/dist/config/types.d.ts +12 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/validation.d.ts +36 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +186 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/config/variables.d.ts +57 -0
- package/dist/config/variables.d.ts.map +1 -0
- package/dist/config/variables.js +89 -0
- package/dist/config/variables.js.map +1 -0
- package/dist/database/collections-artifact.d.ts +99 -0
- package/dist/database/collections-artifact.d.ts.map +1 -0
- package/dist/database/collections-artifact.js +397 -0
- package/dist/database/collections-artifact.js.map +1 -0
- package/dist/database/collections-directory.d.ts +36 -0
- package/dist/database/collections-directory.d.ts.map +1 -0
- package/dist/database/collections-directory.js +115 -0
- package/dist/database/collections-directory.js.map +1 -0
- package/dist/database/collections-doctor.d.ts +43 -0
- package/dist/database/collections-doctor.d.ts.map +1 -0
- package/dist/database/collections-doctor.js +88 -0
- package/dist/database/collections-doctor.js.map +1 -0
- package/dist/database/connection-check.d.ts +25 -0
- package/dist/database/connection-check.d.ts.map +1 -0
- package/dist/database/connection-check.js +65 -0
- package/dist/database/connection-check.js.map +1 -0
- package/dist/database/connection-selection.d.ts +16 -0
- package/dist/database/connection-selection.d.ts.map +1 -0
- package/dist/database/connection-selection.js +30 -0
- package/dist/database/connection-selection.js.map +1 -0
- package/dist/database/define-app-database-config.d.ts +49 -0
- package/dist/database/define-app-database-config.d.ts.map +1 -0
- package/dist/database/define-app-database-config.js +73 -0
- package/dist/database/define-app-database-config.js.map +1 -0
- package/dist/database/environment.d.ts +11 -0
- package/dist/database/environment.d.ts.map +1 -0
- package/dist/database/environment.js +49 -0
- package/dist/database/environment.js.map +1 -0
- package/dist/database/index.d.ts +17 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +16 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/manager.d.ts +16 -0
- package/dist/database/manager.d.ts.map +1 -0
- package/dist/database/manager.js +83 -0
- package/dist/database/manager.js.map +1 -0
- package/dist/database/migrator.d.ts +88 -0
- package/dist/database/migrator.d.ts.map +1 -0
- package/dist/database/migrator.js +143 -0
- package/dist/database/migrator.js.map +1 -0
- package/dist/database/ownership.d.ts +6 -0
- package/dist/database/ownership.d.ts.map +1 -0
- package/dist/database/ownership.js +50 -0
- package/dist/database/ownership.js.map +1 -0
- package/dist/database/plan.d.ts +36 -0
- package/dist/database/plan.d.ts.map +1 -0
- package/dist/database/plan.js +136 -0
- package/dist/database/plan.js.map +1 -0
- package/dist/database/provider.d.ts +43 -0
- package/dist/database/provider.d.ts.map +1 -0
- package/dist/database/provider.js +171 -0
- package/dist/database/provider.js.map +1 -0
- package/dist/database/resolve-config.d.ts +42 -0
- package/dist/database/resolve-config.d.ts.map +1 -0
- package/dist/database/resolve-config.js +118 -0
- package/dist/database/resolve-config.js.map +1 -0
- package/dist/database/seeder.d.ts +50 -0
- package/dist/database/seeder.d.ts.map +1 -0
- package/dist/database/seeder.js +117 -0
- package/dist/database/seeder.js.map +1 -0
- package/dist/database/storage.d.ts +10 -0
- package/dist/database/storage.d.ts.map +1 -0
- package/dist/database/storage.js +37 -0
- package/dist/database/storage.js.map +1 -0
- package/dist/database/task-config.d.ts +7 -0
- package/dist/database/task-config.d.ts.map +1 -0
- package/dist/database/task-config.js +19 -0
- package/dist/database/task-config.js.map +1 -0
- package/dist/database/task-container.d.ts +3 -0
- package/dist/database/task-container.d.ts.map +1 -0
- package/dist/database/task-container.js +34 -0
- package/dist/database/task-container.js.map +1 -0
- package/dist/database/tasks.d.ts +104 -0
- package/dist/database/tasks.d.ts.map +1 -0
- package/dist/database/tasks.js +350 -0
- package/dist/database/tasks.js.map +1 -0
- package/dist/database/types.d.ts +92 -0
- package/dist/database/types.d.ts.map +1 -0
- package/dist/database/types.js +2 -0
- package/dist/database/types.js.map +1 -0
- package/dist/drive/config.d.ts +2 -0
- package/dist/drive/config.d.ts.map +1 -0
- package/dist/drive/config.js +2 -0
- package/dist/drive/config.js.map +1 -0
- package/dist/drive/index.d.ts +5 -0
- package/dist/drive/index.d.ts.map +1 -0
- package/dist/drive/index.js +4 -0
- package/dist/drive/index.js.map +1 -0
- package/dist/drive/provider.d.ts +9 -0
- package/dist/drive/provider.d.ts.map +1 -0
- package/dist/drive/provider.js +22 -0
- package/dist/drive/provider.js.map +1 -0
- package/dist/drive/token.d.ts +4 -0
- package/dist/drive/token.d.ts.map +1 -0
- package/dist/drive/token.js +3 -0
- package/dist/drive/token.js.map +1 -0
- package/dist/i18n/index.d.ts +37 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +44 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/id-generator/config.d.ts +2 -0
- package/dist/id-generator/config.d.ts.map +1 -0
- package/dist/id-generator/config.js +2 -0
- package/dist/id-generator/config.js.map +1 -0
- package/dist/id-generator/index.d.ts +5 -0
- package/dist/id-generator/index.d.ts.map +1 -0
- package/dist/id-generator/index.js +4 -0
- package/dist/id-generator/index.js.map +1 -0
- package/dist/id-generator/provider.d.ts +7 -0
- package/dist/id-generator/provider.d.ts.map +1 -0
- package/dist/id-generator/provider.js +11 -0
- package/dist/id-generator/provider.js.map +1 -0
- package/dist/id-generator/token.d.ts +4 -0
- package/dist/id-generator/token.d.ts.map +1 -0
- package/dist/id-generator/token.js +3 -0
- package/dist/id-generator/token.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/config.d.ts +2 -0
- package/dist/jobs/config.d.ts.map +1 -0
- package/dist/jobs/config.js +2 -0
- package/dist/jobs/config.js.map +1 -0
- package/dist/jobs/index.d.ts +4 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +4 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/provider.d.ts +23 -0
- package/dist/jobs/provider.d.ts.map +1 -0
- package/dist/jobs/provider.js +55 -0
- package/dist/jobs/provider.js.map +1 -0
- package/dist/jobs/token.d.ts +8 -0
- package/dist/jobs/token.d.ts.map +1 -0
- package/dist/jobs/token.js +7 -0
- package/dist/jobs/token.js.map +1 -0
- package/dist/logging/config.d.ts +16 -0
- package/dist/logging/config.d.ts.map +1 -0
- package/dist/logging/config.js +26 -0
- package/dist/logging/config.js.map +1 -0
- package/dist/logging/index.d.ts +5 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +5 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/middleware.d.ts +13 -0
- package/dist/logging/middleware.d.ts.map +1 -0
- package/dist/logging/middleware.js +128 -0
- package/dist/logging/middleware.js.map +1 -0
- package/dist/logging/provider.d.ts +9 -0
- package/dist/logging/provider.d.ts.map +1 -0
- package/dist/logging/provider.js +95 -0
- package/dist/logging/provider.js.map +1 -0
- package/dist/logging/token.d.ts +4 -0
- package/dist/logging/token.d.ts.map +1 -0
- package/dist/logging/token.js +3 -0
- package/dist/logging/token.js.map +1 -0
- package/dist/node/config.d.ts +6 -0
- package/dist/node/config.d.ts.map +1 -0
- package/dist/node/config.js +2 -0
- package/dist/node/config.js.map +1 -0
- package/dist/node/index.d.ts +6 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +6 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/not-configured-message.d.ts +10 -0
- package/dist/node/not-configured-message.d.ts.map +1 -0
- package/dist/node/not-configured-message.js +24 -0
- package/dist/node/not-configured-message.js.map +1 -0
- package/dist/node/proxy.d.ts +25 -0
- package/dist/node/proxy.d.ts.map +1 -0
- package/dist/node/proxy.js +229 -0
- package/dist/node/proxy.js.map +1 -0
- package/dist/node/runtime.d.ts +45 -0
- package/dist/node/runtime.d.ts.map +1 -0
- package/dist/node/runtime.js +176 -0
- package/dist/node/runtime.js.map +1 -0
- package/dist/node/scope.d.ts +55 -0
- package/dist/node/scope.d.ts.map +1 -0
- package/dist/node/scope.js +115 -0
- package/dist/node/scope.js.map +1 -0
- package/dist/node/server.d.ts +80 -0
- package/dist/node/server.d.ts.map +1 -0
- package/dist/node/server.js +283 -0
- package/dist/node/server.js.map +1 -0
- package/dist/plugins/define.d.ts +4 -0
- package/dist/plugins/define.d.ts.map +1 -0
- package/dist/plugins/define.js +45 -0
- package/dist/plugins/define.js.map +1 -0
- package/dist/plugins/index.d.ts +27 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +4 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/inspect.d.ts +79 -0
- package/dist/plugins/inspect.d.ts.map +1 -0
- package/dist/plugins/inspect.js +142 -0
- package/dist/plugins/inspect.js.map +1 -0
- package/dist/plugins/resolve.d.ts +14 -0
- package/dist/plugins/resolve.d.ts.map +1 -0
- package/dist/plugins/resolve.js +101 -0
- package/dist/plugins/resolve.js.map +1 -0
- package/dist/plugins/types.d.ts +91 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +2 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/proxy/http-proxy.d.ts +8 -0
- package/dist/proxy/http-proxy.d.ts.map +1 -0
- package/dist/proxy/http-proxy.js +59 -0
- package/dist/proxy/http-proxy.js.map +1 -0
- package/dist/proxy/index.d.ts +3 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +3 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/origin.d.ts +12 -0
- package/dist/proxy/origin.d.ts.map +1 -0
- package/dist/proxy/origin.js +61 -0
- package/dist/proxy/origin.js.map +1 -0
- package/dist/queue/config.d.ts +4 -0
- package/dist/queue/config.d.ts.map +1 -0
- package/dist/queue/config.js +2 -0
- package/dist/queue/config.js.map +1 -0
- package/dist/queue/index.d.ts +4 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/index.js +4 -0
- package/dist/queue/index.js.map +1 -0
- package/dist/queue/provider.d.ts +24 -0
- package/dist/queue/provider.d.ts.map +1 -0
- package/dist/queue/provider.js +57 -0
- package/dist/queue/provider.js.map +1 -0
- package/dist/queue/token.d.ts +9 -0
- package/dist/queue/token.d.ts.map +1 -0
- package/dist/queue/token.js +8 -0
- package/dist/queue/token.js.map +1 -0
- package/dist/realtime/index.d.ts +6 -0
- package/dist/realtime/index.d.ts.map +1 -0
- package/dist/realtime/index.js +6 -0
- package/dist/realtime/index.js.map +1 -0
- package/dist/realtime/provider.d.ts +10 -0
- package/dist/realtime/provider.d.ts.map +1 -0
- package/dist/realtime/provider.js +19 -0
- package/dist/realtime/provider.js.map +1 -0
- package/dist/realtime/service.d.ts +9 -0
- package/dist/realtime/service.d.ts.map +1 -0
- package/dist/realtime/service.js +347 -0
- package/dist/realtime/service.js.map +1 -0
- package/dist/realtime/types.d.ts +74 -0
- package/dist/realtime/types.d.ts.map +1 -0
- package/dist/realtime/types.js +4 -0
- package/dist/realtime/types.js.map +1 -0
- package/dist/realtime/websocket.d.ts +7 -0
- package/dist/realtime/websocket.d.ts.map +1 -0
- package/dist/realtime/websocket.js +57 -0
- package/dist/realtime/websocket.js.map +1 -0
- package/dist/router/api-error.d.ts +171 -0
- package/dist/router/api-error.d.ts.map +1 -0
- package/dist/router/api-error.js +291 -0
- package/dist/router/api-error.js.map +1 -0
- package/dist/router/api-limits.d.ts +80 -0
- package/dist/router/api-limits.d.ts.map +1 -0
- package/dist/router/api-limits.js +281 -0
- package/dist/router/api-limits.js.map +1 -0
- package/dist/router/cli/derive.d.ts +32 -0
- package/dist/router/cli/derive.d.ts.map +1 -0
- package/dist/router/cli/derive.js +548 -0
- package/dist/router/cli/derive.js.map +1 -0
- package/dist/router/cli/index.d.ts +6 -0
- package/dist/router/cli/index.d.ts.map +1 -0
- package/dist/router/cli/index.js +6 -0
- package/dist/router/cli/index.js.map +1 -0
- package/dist/router/cli/reference.d.ts +9 -0
- package/dist/router/cli/reference.d.ts.map +1 -0
- package/dist/router/cli/reference.js +64 -0
- package/dist/router/cli/reference.js.map +1 -0
- package/dist/router/cli/routes.d.ts +9 -0
- package/dist/router/cli/routes.d.ts.map +1 -0
- package/dist/router/cli/routes.js +228 -0
- package/dist/router/cli/routes.js.map +1 -0
- package/dist/router/cli/service.d.ts +50 -0
- package/dist/router/cli/service.d.ts.map +1 -0
- package/dist/router/cli/service.js +104 -0
- package/dist/router/cli/service.js.map +1 -0
- package/dist/router/cli/types.d.ts +278 -0
- package/dist/router/cli/types.d.ts.map +1 -0
- package/dist/router/cli/types.js +18 -0
- package/dist/router/cli/types.js.map +1 -0
- package/dist/router/duplicate-routes.d.ts +25 -0
- package/dist/router/duplicate-routes.d.ts.map +1 -0
- package/dist/router/duplicate-routes.js +51 -0
- package/dist/router/duplicate-routes.js.map +1 -0
- package/dist/router/health.d.ts +7 -0
- package/dist/router/health.d.ts.map +1 -0
- package/dist/router/health.js +48 -0
- package/dist/router/health.js.map +1 -0
- package/dist/router/index.d.ts +26 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +29 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/openapi/components.d.ts +24 -0
- package/dist/router/openapi/components.d.ts.map +1 -0
- package/dist/router/openapi/components.js +128 -0
- package/dist/router/openapi/components.js.map +1 -0
- package/dist/router/openapi/declared.d.ts +19 -0
- package/dist/router/openapi/declared.d.ts.map +1 -0
- package/dist/router/openapi/declared.js +46 -0
- package/dist/router/openapi/declared.js.map +1 -0
- package/dist/router/openapi/describe.d.ts +82 -0
- package/dist/router/openapi/describe.d.ts.map +1 -0
- package/dist/router/openapi/describe.js +207 -0
- package/dist/router/openapi/describe.js.map +1 -0
- package/dist/router/openapi/docs-routes.d.ts +10 -0
- package/dist/router/openapi/docs-routes.d.ts.map +1 -0
- package/dist/router/openapi/docs-routes.js +157 -0
- package/dist/router/openapi/docs-routes.js.map +1 -0
- package/dist/router/openapi/document.d.ts +151 -0
- package/dist/router/openapi/document.d.ts.map +1 -0
- package/dist/router/openapi/document.js +471 -0
- package/dist/router/openapi/document.js.map +1 -0
- package/dist/router/openapi/index.d.ts +7 -0
- package/dist/router/openapi/index.d.ts.map +1 -0
- package/dist/router/openapi/index.js +7 -0
- package/dist/router/openapi/index.js.map +1 -0
- package/dist/router/openapi/repository-document.d.ts +30 -0
- package/dist/router/openapi/repository-document.d.ts.map +1 -0
- package/dist/router/openapi/repository-document.js +812 -0
- package/dist/router/openapi/repository-document.js.map +1 -0
- package/dist/router/openapi/schema.d.ts +30 -0
- package/dist/router/openapi/schema.d.ts.map +1 -0
- package/dist/router/openapi/schema.js +301 -0
- package/dist/router/openapi/schema.js.map +1 -0
- package/dist/router/openapi/service.d.ts +101 -0
- package/dist/router/openapi/service.d.ts.map +1 -0
- package/dist/router/openapi/service.js +162 -0
- package/dist/router/openapi/service.js.map +1 -0
- package/dist/router/repository-constraints.d.ts +15 -0
- package/dist/router/repository-constraints.d.ts.map +1 -0
- package/dist/router/repository-constraints.js +14 -0
- package/dist/router/repository-constraints.js.map +1 -0
- package/dist/router/repository-routes.d.ts +90 -0
- package/dist/router/repository-routes.d.ts.map +1 -0
- package/dist/router/repository-routes.js +452 -0
- package/dist/router/repository-routes.js.map +1 -0
- package/dist/router/routes.d.ts +24 -0
- package/dist/router/routes.d.ts.map +1 -0
- package/dist/router/routes.js +19 -0
- package/dist/router/routes.js.map +1 -0
- package/dist/runtime/application.d.ts +8 -0
- package/dist/runtime/application.d.ts.map +1 -0
- package/dist/runtime/application.js +22 -0
- package/dist/runtime/application.js.map +1 -0
- package/dist/runtime/definition.d.ts +50 -0
- package/dist/runtime/definition.d.ts.map +1 -0
- package/dist/runtime/definition.js +82 -0
- package/dist/runtime/definition.js.map +1 -0
- package/dist/runtime/index.d.ts +8 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +7 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/lifecycle.d.ts +29 -0
- package/dist/runtime/lifecycle.d.ts.map +1 -0
- package/dist/runtime/lifecycle.js +104 -0
- package/dist/runtime/lifecycle.js.map +1 -0
- package/dist/runtime/mount.d.ts +4 -0
- package/dist/runtime/mount.d.ts.map +1 -0
- package/dist/runtime/mount.js +47 -0
- package/dist/runtime/mount.js.map +1 -0
- package/dist/runtime/scope.d.ts +29 -0
- package/dist/runtime/scope.d.ts.map +1 -0
- package/dist/runtime/scope.js +48 -0
- package/dist/runtime/scope.js.map +1 -0
- package/dist/runtime/types.d.ts +55 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +2 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/sample-data/index.d.ts +3 -0
- package/dist/sample-data/index.d.ts.map +1 -0
- package/dist/sample-data/index.js +3 -0
- package/dist/sample-data/index.js.map +1 -0
- package/dist/sample-data/registry.d.ts +4 -0
- package/dist/sample-data/registry.d.ts.map +1 -0
- package/dist/sample-data/registry.js +74 -0
- package/dist/sample-data/registry.js.map +1 -0
- package/dist/sample-data/token.d.ts +64 -0
- package/dist/sample-data/token.d.ts.map +1 -0
- package/dist/sample-data/token.js +7 -0
- package/dist/sample-data/token.js.map +1 -0
- package/dist/secrets/config.d.ts +15 -0
- package/dist/secrets/config.d.ts.map +1 -0
- package/dist/secrets/config.js +43 -0
- package/dist/secrets/config.js.map +1 -0
- package/dist/secrets/index.d.ts +6 -0
- package/dist/secrets/index.d.ts.map +1 -0
- package/dist/secrets/index.js +6 -0
- package/dist/secrets/index.js.map +1 -0
- package/dist/secrets/provider.d.ts +7 -0
- package/dist/secrets/provider.d.ts.map +1 -0
- package/dist/secrets/provider.js +10 -0
- package/dist/secrets/provider.js.map +1 -0
- package/dist/secrets/service.d.ts +64 -0
- package/dist/secrets/service.d.ts.map +1 -0
- package/dist/secrets/service.js +47 -0
- package/dist/secrets/service.js.map +1 -0
- package/dist/secrets/table-store.d.ts +34 -0
- package/dist/secrets/table-store.d.ts.map +1 -0
- package/dist/secrets/table-store.js +118 -0
- package/dist/secrets/table-store.js.map +1 -0
- package/dist/secrets/token.d.ts +4 -0
- package/dist/secrets/token.d.ts.map +1 -0
- package/dist/secrets/token.js +3 -0
- package/dist/secrets/token.js.map +1 -0
- package/dist/session/config.d.ts +10 -0
- package/dist/session/config.d.ts.map +1 -0
- package/dist/session/config.js +2 -0
- package/dist/session/config.js.map +1 -0
- package/dist/session/index.d.ts +4 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +4 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/provider.d.ts +26 -0
- package/dist/session/provider.d.ts.map +1 -0
- package/dist/session/provider.js +69 -0
- package/dist/session/provider.js.map +1 -0
- package/dist/session/token.d.ts +4 -0
- package/dist/session/token.d.ts.map +1 -0
- package/dist/session/token.js +3 -0
- package/dist/session/token.js.map +1 -0
- package/dist/spa/config.d.ts +5 -0
- package/dist/spa/config.d.ts.map +1 -0
- package/dist/spa/config.js +2 -0
- package/dist/spa/config.js.map +1 -0
- package/dist/spa/content-types.d.ts +2 -0
- package/dist/spa/content-types.d.ts.map +1 -0
- package/dist/spa/content-types.js +25 -0
- package/dist/spa/content-types.js.map +1 -0
- package/dist/spa/index.d.ts +9 -0
- package/dist/spa/index.d.ts.map +1 -0
- package/dist/spa/index.js +9 -0
- package/dist/spa/index.js.map +1 -0
- package/dist/spa/provider.d.ts +13 -0
- package/dist/spa/provider.d.ts.map +1 -0
- package/dist/spa/provider.js +90 -0
- package/dist/spa/provider.js.map +1 -0
- package/dist/spa/routes.d.ts +4 -0
- package/dist/spa/routes.d.ts.map +1 -0
- package/dist/spa/routes.js +58 -0
- package/dist/spa/routes.js.map +1 -0
- package/dist/spa/runtime-html.d.ts +14 -0
- package/dist/spa/runtime-html.d.ts.map +1 -0
- package/dist/spa/runtime-html.js +85 -0
- package/dist/spa/runtime-html.js.map +1 -0
- package/dist/spa/serve-index.d.ts +9 -0
- package/dist/spa/serve-index.d.ts.map +1 -0
- package/dist/spa/serve-index.js +12 -0
- package/dist/spa/serve-index.js.map +1 -0
- package/dist/spa/static-assets.d.ts +7 -0
- package/dist/spa/static-assets.d.ts.map +1 -0
- package/dist/spa/static-assets.js +90 -0
- package/dist/spa/static-assets.js.map +1 -0
- package/dist/spa/types.d.ts +23 -0
- package/dist/spa/types.d.ts.map +1 -0
- package/dist/spa/types.js +2 -0
- package/dist/spa/types.js.map +1 -0
- package/dist/support/index.d.ts +4 -0
- package/dist/support/index.d.ts.map +1 -0
- package/dist/support/index.js +4 -0
- package/dist/support/index.js.map +1 -0
- package/dist/support/paths.d.ts +10 -0
- package/dist/support/paths.d.ts.map +1 -0
- package/dist/support/paths.js +25 -0
- package/dist/support/paths.js.map +1 -0
- package/dist/support/redirects.d.ts +3 -0
- package/dist/support/redirects.d.ts.map +1 -0
- package/dist/support/redirects.js +48 -0
- package/dist/support/redirects.js.map +1 -0
- package/dist/support/requests.d.ts +2 -0
- package/dist/support/requests.d.ts.map +1 -0
- package/dist/support/requests.js +13 -0
- package/dist/support/requests.js.map +1 -0
- package/dist/swagger-ui/LICENSE +202 -0
- package/dist/swagger-ui/NOTICE +2 -0
- package/dist/swagger-ui/favicon-16x16.png +0 -0
- package/dist/swagger-ui/favicon-32x32.png +0 -0
- package/dist/swagger-ui/swagger-ui-bundle.js +2 -0
- package/dist/swagger-ui/swagger-ui-bundle.js.LICENSE.txt +129 -0
- package/dist/swagger-ui/swagger-ui.css +3 -0
- package/dist/websocket.d.ts +61 -0
- package/dist/websocket.d.ts.map +1 -0
- package/dist/websocket.js +371 -0
- package/dist/websocket.js.map +1 -0
- package/package.json +193 -12
- package/LICENSE +0 -661
- package/lib/config/cache.d.ts +0 -2
- package/lib/config/cache.js +0 -16
- package/lib/config/database.d.ts +0 -3
- package/lib/config/database.js +0 -25
- package/lib/config/index.d.ts +0 -10
- package/lib/config/index.js +0 -20
- package/lib/config/logger.d.ts +0 -3
- package/lib/config/logger.js +0 -11
- package/lib/config/plugins.d.ts +0 -3
- package/lib/config/plugins.js +0 -8
- package/lib/config/resourcer.d.ts +0 -4
- package/lib/config/resourcer.js +0 -10
- package/lib/index.d.ts +0 -3
- package/lib/index.js +0 -21
- package/src/config/cache.ts +0 -5
- package/src/config/database.ts +0 -21
- package/src/config/index.ts +0 -13
- package/src/config/logger.ts +0 -6
- package/src/config/plugins.ts +0 -3
- package/src/config/resourcer.ts +0 -3
- package/src/index.ts +0 -10
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import { serve } from '@hono/node-server';
|
|
2
|
+
import { acceptWebSocketUpgrade, createWebSocketUpgradeRequest, isWebSocketUpgrade, rejectWebSocketUpgrade, } from '@nocobase/app-websocket';
|
|
3
|
+
export const DEFAULT_HTTP_DRAIN_TIMEOUT_MS = 30_000;
|
|
4
|
+
export const DEFAULT_FORCE_EXIT_TIMEOUT_MS = 35_000;
|
|
5
|
+
/**
|
|
6
|
+
* Total shutdown budget, when the host supplies one. A supervisor that kills
|
|
7
|
+
* the process after a fixed wait — `tsx watch` escalates to SIGKILL after five
|
|
8
|
+
* seconds — makes the 30 second default unreachable, and a hard kill during
|
|
9
|
+
* startup or shutdown leaves the migration lock held.
|
|
10
|
+
*/
|
|
11
|
+
export const SHUTDOWN_TIMEOUT_ENV = 'APP_SHUTDOWN_TIMEOUT_MS';
|
|
12
|
+
/** How much of the budget is reserved for closing what the drain leaves. */
|
|
13
|
+
const SHUTDOWN_FORCE_EXIT_MARGIN_MS = 1_000;
|
|
14
|
+
const MIN_HTTP_DRAIN_TIMEOUT_MS = 250;
|
|
15
|
+
const defaultLogger = {
|
|
16
|
+
error: (message, error) => {
|
|
17
|
+
if (error === undefined) {
|
|
18
|
+
console.error(message);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
console.error(message, error);
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Reads the shutdown budget from the environment. An unset or unusable value
|
|
26
|
+
* keeps the defaults, which suit a deployment behind a load balancer.
|
|
27
|
+
*/
|
|
28
|
+
export function resolveNodeShutdownTimeouts(env) {
|
|
29
|
+
const budget = Number(env[SHUTDOWN_TIMEOUT_ENV]);
|
|
30
|
+
if (!Number.isFinite(budget) || budget <= 0)
|
|
31
|
+
return {};
|
|
32
|
+
return {
|
|
33
|
+
forceExitTimeoutMs: budget,
|
|
34
|
+
httpDrainTimeoutMs: Math.max(budget - SHUTDOWN_FORCE_EXIT_MARGIN_MS, MIN_HTTP_DRAIN_TIMEOUT_MS),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export function startNodeAppServer(app, options) {
|
|
38
|
+
const logger = options.logger ?? defaultLogger;
|
|
39
|
+
return new Promise((resolve, reject) => {
|
|
40
|
+
let listening = false;
|
|
41
|
+
let unregisterShutdownHandlers = () => undefined;
|
|
42
|
+
const server = serve({
|
|
43
|
+
fetch: app.fetch,
|
|
44
|
+
hostname: options.hostname,
|
|
45
|
+
port: options.port,
|
|
46
|
+
}, (info) => {
|
|
47
|
+
listening = true;
|
|
48
|
+
try {
|
|
49
|
+
options.onListen?.(info);
|
|
50
|
+
resolve(server);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
const listenError = toError(error);
|
|
54
|
+
unregisterShutdownHandlers();
|
|
55
|
+
closeNodeServer(server).then(() => reject(listenError), (closeError) => reject(new AggregateError([listenError, closeError], 'Node app server listen callback and cleanup failed', { cause: closeError })));
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
server.on('error', (error) => {
|
|
59
|
+
if (!listening) {
|
|
60
|
+
unregisterShutdownHandlers();
|
|
61
|
+
reject(toError(error));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
logger.error('Node app server failed after it started.', error);
|
|
65
|
+
process.exitCode = 1;
|
|
66
|
+
});
|
|
67
|
+
registerNodeWebSocketUpgradeHandler(app, server, { logger });
|
|
68
|
+
server.once('close', () => app.proxy?.close());
|
|
69
|
+
if (options.registerProcessSignals !== false) {
|
|
70
|
+
unregisterShutdownHandlers = registerNodeShutdownHandlers(app, server, options);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
export function registerNodeWebSocketUpgradeHandler(app, server, options = {}) {
|
|
75
|
+
const logger = options.logger ?? defaultLogger;
|
|
76
|
+
server.on('upgrade', (req, socket, head) => {
|
|
77
|
+
const dispatchPromise = dispatchNodeWebSocket(req, socket, head, app);
|
|
78
|
+
dispatchPromise.catch((error) => {
|
|
79
|
+
logger.error('WebSocket upgrade dispatch failed.', error);
|
|
80
|
+
rejectWebSocketUpgrade(socket, 500);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
export function registerNodeShutdownHandlers(app, server, options = {}) {
|
|
85
|
+
const logger = options.logger ?? defaultLogger;
|
|
86
|
+
let shuttingDown = false;
|
|
87
|
+
let shutdownPromise;
|
|
88
|
+
const handleShutdown = (signal) => {
|
|
89
|
+
if (shuttingDown) {
|
|
90
|
+
logger.error(`Received ${signal} during app server shutdown; forcing exit.`);
|
|
91
|
+
closeAllConnections(server);
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
shuttingDown = true;
|
|
95
|
+
shutdownPromise ??= shutdownNodeAppServer(app, server, signal, options);
|
|
96
|
+
void shutdownPromise
|
|
97
|
+
.catch((error) => {
|
|
98
|
+
logger.error('App server shutdown failed.', error);
|
|
99
|
+
process.exitCode = 1;
|
|
100
|
+
})
|
|
101
|
+
.finally(unregister);
|
|
102
|
+
};
|
|
103
|
+
const handleSigint = () => handleShutdown('SIGINT');
|
|
104
|
+
const handleSigterm = () => handleShutdown('SIGTERM');
|
|
105
|
+
const handleServerClose = () => {
|
|
106
|
+
if (!shuttingDown)
|
|
107
|
+
unregister();
|
|
108
|
+
};
|
|
109
|
+
const unregister = () => {
|
|
110
|
+
process.off('SIGINT', handleSigint);
|
|
111
|
+
process.off('SIGTERM', handleSigterm);
|
|
112
|
+
server.off('close', handleServerClose);
|
|
113
|
+
};
|
|
114
|
+
process.on('SIGINT', handleSigint);
|
|
115
|
+
process.on('SIGTERM', handleSigterm);
|
|
116
|
+
server.once('close', handleServerClose);
|
|
117
|
+
return unregister;
|
|
118
|
+
}
|
|
119
|
+
export const DEFAULT_STARTUP_SIGNALS = [
|
|
120
|
+
'SIGINT',
|
|
121
|
+
'SIGTERM',
|
|
122
|
+
];
|
|
123
|
+
/**
|
|
124
|
+
* Covers the window before the HTTP server owns the signals, which is where
|
|
125
|
+
* startup runs migrations and seeds. Node's default disposition terminates the
|
|
126
|
+
* process on SIGTERM, so without this the task lock is abandoned held and the
|
|
127
|
+
* next start has to wait it out. Recording the signal and letting startup
|
|
128
|
+
* finish releases the lock the ordinary way; the caller then shuts down
|
|
129
|
+
* instead of listening.
|
|
130
|
+
*/
|
|
131
|
+
export function watchStartupShutdownSignals(options = {}) {
|
|
132
|
+
const logger = options.logger ?? defaultLogger;
|
|
133
|
+
const emitter = options.emitter ?? process;
|
|
134
|
+
const forceExit = options.forceExit ?? ((code) => process.exit(code));
|
|
135
|
+
const signals = options.signals ?? DEFAULT_STARTUP_SIGNALS;
|
|
136
|
+
let received;
|
|
137
|
+
const listeners = new Map();
|
|
138
|
+
const dispose = () => {
|
|
139
|
+
for (const [signal, listener] of listeners) {
|
|
140
|
+
emitter.off(signal, listener);
|
|
141
|
+
}
|
|
142
|
+
listeners.clear();
|
|
143
|
+
};
|
|
144
|
+
for (const signal of signals) {
|
|
145
|
+
const listener = () => {
|
|
146
|
+
if (received) {
|
|
147
|
+
logger.error(`Received ${signal} again while the app server was still starting; forcing exit.`);
|
|
148
|
+
forceExit(1);
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
received = signal;
|
|
152
|
+
logger.error(`Received ${signal} while the app server was starting; finishing startup tasks before shutting down.`);
|
|
153
|
+
};
|
|
154
|
+
listeners.set(signal, listener);
|
|
155
|
+
emitter.on(signal, listener);
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
received: () => received,
|
|
159
|
+
dispose,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
export async function shutdownNodeAppServer(app, server, signal, options = {}) {
|
|
163
|
+
const logger = options.logger ?? defaultLogger;
|
|
164
|
+
const forceExitTimeoutMs = options.forceExitTimeoutMs ?? DEFAULT_FORCE_EXIT_TIMEOUT_MS;
|
|
165
|
+
const forceExitTimer = setTimeout(() => {
|
|
166
|
+
logger.error(`App server shutdown after ${signal} exceeded ${forceExitTimeoutMs}ms; forcing exit.`);
|
|
167
|
+
closeAllConnections(server);
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}, forceExitTimeoutMs);
|
|
170
|
+
forceExitTimer.unref();
|
|
171
|
+
try {
|
|
172
|
+
app.proxy?.closeWebSockets();
|
|
173
|
+
await closeNodeServerWithGracePeriod(server, options.httpDrainTimeoutMs ?? DEFAULT_HTTP_DRAIN_TIMEOUT_MS, logger);
|
|
174
|
+
}
|
|
175
|
+
finally {
|
|
176
|
+
try {
|
|
177
|
+
await app.close();
|
|
178
|
+
}
|
|
179
|
+
finally {
|
|
180
|
+
clearTimeout(forceExitTimer);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
export async function closeNodeServerWithGracePeriod(server, timeoutMs, logger = defaultLogger) {
|
|
185
|
+
const closePromise = closeNodeServer(server);
|
|
186
|
+
let timeout;
|
|
187
|
+
let timedOut = false;
|
|
188
|
+
closeIdleConnections(server);
|
|
189
|
+
const timeoutPromise = new Promise((resolve) => {
|
|
190
|
+
timeout = setTimeout(() => {
|
|
191
|
+
timedOut = true;
|
|
192
|
+
logger.error(`HTTP server did not drain within ${timeoutMs}ms; closing active connections.`);
|
|
193
|
+
closeAllConnections(server);
|
|
194
|
+
resolve();
|
|
195
|
+
}, timeoutMs);
|
|
196
|
+
timeout.unref();
|
|
197
|
+
});
|
|
198
|
+
try {
|
|
199
|
+
await Promise.race([closePromise, timeoutPromise]);
|
|
200
|
+
if (timedOut) {
|
|
201
|
+
closePromise.catch((error) => {
|
|
202
|
+
logger.error('HTTP server close failed after the drain timeout.', error);
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
finally {
|
|
207
|
+
if (timeout) {
|
|
208
|
+
clearTimeout(timeout);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
export function closeNodeServer(server) {
|
|
213
|
+
return new Promise((resolve, reject) => {
|
|
214
|
+
server.close((error) => {
|
|
215
|
+
if (error) {
|
|
216
|
+
reject(error);
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
resolve();
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
export async function disposeAfterStartupFailure(dispose, startupError) {
|
|
224
|
+
try {
|
|
225
|
+
await dispose();
|
|
226
|
+
}
|
|
227
|
+
catch (disposeError) {
|
|
228
|
+
throw new AggregateError([startupError, disposeError], 'Failed to start server and dispose resources', { cause: disposeError });
|
|
229
|
+
}
|
|
230
|
+
throw startupError;
|
|
231
|
+
}
|
|
232
|
+
async function dispatchNodeWebSocket(req, socket, head, app) {
|
|
233
|
+
if (!isWebSocketUpgrade(req)) {
|
|
234
|
+
rejectWebSocketUpgrade(socket, 400);
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
if (app.proxy?.matches(new URL(createWebSocketUpgradeRequest(req).url).pathname)) {
|
|
238
|
+
await app.proxy.upgrade(req, socket, head);
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
const websocket = app.websocket;
|
|
242
|
+
if (!websocket) {
|
|
243
|
+
rejectWebSocketUpgrade(socket, 404);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
const signal = 'signal' in app && app.signal instanceof AbortSignal
|
|
247
|
+
? app.signal
|
|
248
|
+
: undefined;
|
|
249
|
+
const request = createWebSocketUpgradeRequest(req, { signal });
|
|
250
|
+
const result = await websocket(request, { signal });
|
|
251
|
+
if (result instanceof Response) {
|
|
252
|
+
rejectWebSocketUpgrade(socket, result.status, result.headers);
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
if (!result) {
|
|
256
|
+
rejectWebSocketUpgrade(socket, 404);
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
acceptWebSocketUpgrade(req, socket, {
|
|
260
|
+
request,
|
|
261
|
+
events: result,
|
|
262
|
+
head,
|
|
263
|
+
signal,
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
function closeIdleConnections(server) {
|
|
267
|
+
if ('closeIdleConnections' in server &&
|
|
268
|
+
typeof server.closeIdleConnections === 'function') {
|
|
269
|
+
server.closeIdleConnections();
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
function closeAllConnections(server) {
|
|
273
|
+
if ('closeAllConnections' in server &&
|
|
274
|
+
typeof server.closeAllConnections === 'function') {
|
|
275
|
+
server.closeAllConnections();
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
function toError(value) {
|
|
279
|
+
return value instanceof Error
|
|
280
|
+
? value
|
|
281
|
+
: new Error(String(value), { cause: value });
|
|
282
|
+
}
|
|
283
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/node/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AppServerPlugin, AppServerPluginDefinition, AppServerPlugins } from './types.js';
|
|
2
|
+
export declare function defineServerPlugin<TConfig = object>(definition: AppServerPluginDefinition<TConfig>): AppServerPlugin<TConfig>;
|
|
3
|
+
export declare function defineServerPlugins(plugins: readonly AppServerPlugin[]): AppServerPlugins;
|
|
4
|
+
//# sourceMappingURL=define.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/plugins/define.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAIpB,wBAAgB,kBAAkB,CAAC,OAAO,GAAG,MAAM,EACjD,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAC7C,eAAe,CAAC,OAAO,CAAC,CA8B1B;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC,gBAAgB,CAYlB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
const PACKAGE_NAME_PATTERN = /^@[a-z0-9][a-z0-9-]*\/[a-z0-9][a-z0-9-]*$/;
|
|
3
|
+
export function defineServerPlugin(definition) {
|
|
4
|
+
const packageName = normalizePackageName(definition.packageName);
|
|
5
|
+
if (typeof definition.baseDir !== 'string' ||
|
|
6
|
+
!path.isAbsolute(definition.baseDir)) {
|
|
7
|
+
throw new Error(`Server plugin "${packageName}" requires an absolute baseDir. Set baseDir relative to the declaring module with import.meta.dirname.`);
|
|
8
|
+
}
|
|
9
|
+
return Object.freeze({
|
|
10
|
+
packageName,
|
|
11
|
+
baseDir: path.normalize(definition.baseDir),
|
|
12
|
+
serviceProviders: Object.freeze([...(definition.serviceProviders ?? [])]),
|
|
13
|
+
routes: Object.freeze([...(definition.routes ?? [])]),
|
|
14
|
+
database: definition.database
|
|
15
|
+
? Object.freeze({ ...definition.database })
|
|
16
|
+
: undefined,
|
|
17
|
+
queue: definition.queue
|
|
18
|
+
? Object.freeze({
|
|
19
|
+
...definition.queue,
|
|
20
|
+
jobs: definition.queue.jobs
|
|
21
|
+
? Object.freeze([...definition.queue.jobs])
|
|
22
|
+
: undefined,
|
|
23
|
+
})
|
|
24
|
+
: undefined,
|
|
25
|
+
locales: definition.locales,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
export function defineServerPlugins(plugins) {
|
|
29
|
+
const seen = new Set();
|
|
30
|
+
for (const plugin of plugins) {
|
|
31
|
+
if (seen.has(plugin.packageName)) {
|
|
32
|
+
throw new Error(`Server plugin "${plugin.packageName}" is registered more than once.`);
|
|
33
|
+
}
|
|
34
|
+
seen.add(plugin.packageName);
|
|
35
|
+
}
|
|
36
|
+
return Object.freeze({ plugins: Object.freeze([...plugins]) });
|
|
37
|
+
}
|
|
38
|
+
function normalizePackageName(packageName) {
|
|
39
|
+
const normalized = packageName.trim();
|
|
40
|
+
if (!PACKAGE_NAME_PATTERN.test(normalized)) {
|
|
41
|
+
throw new Error(`Server plugin package name "${packageName}" must be a valid scoped package name.`);
|
|
42
|
+
}
|
|
43
|
+
return normalized;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=define.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/plugins/define.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,MAAM,oBAAoB,GAAG,2CAA2C,CAAC;AAEzE,MAAM,UAAU,kBAAkB,CAChC,UAA8C;IAE9C,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAEjE,IACE,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ;QACtC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EACpC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,kBAAkB,WAAW,wGAAwG,CACtI,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,WAAW;QACX,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;QAC3C,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QACrD,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC3B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC3C,CAAC,CAAC,SAAS;QACb,KAAK,EAAE,UAAU,CAAC,KAAK;YACrB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,GAAG,UAAU,CAAC,KAAK;gBACnB,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI;oBACzB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3C,CAAC,CAAC,SAAS;aACd,CAAC;YACJ,CAAC,CAAC,SAAS;QACb,OAAO,EAAE,UAAU,CAAC,OAAO;KAC5B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAmC;IAEnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,kBAAkB,MAAM,CAAC,WAAW,iCAAiC,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,+BAA+B,WAAW,wCAAwC,CACnF,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export { defineServerPlugin, defineServerPlugins } from './define.js';
|
|
2
|
+
export { inspectResolvedAppServerPlugins, type AppServerDatabaseSnapshot, type AppServerInspectionIssue, type AppServerInspectionSnapshot, type AppServerJobsSnapshot, type AppServerPluginSnapshot, type AppServerProviderSnapshot, type AppServerRouteSnapshot, } from './inspect.js';
|
|
3
|
+
export { createAppDatabaseTaskContributions, createPluginJobLocations, createPluginMigrationSources, createPluginSeedSources, resolveAppServerPlugins, type ResolveAppServerPluginsOptions, } from './resolve.js';
|
|
4
|
+
export type * from './types.js';
|
|
5
|
+
import type { Hono } from 'hono';
|
|
6
|
+
import type { AppPaths } from '../config/types.js';
|
|
7
|
+
export interface AppPluginRoutesContext<TDeps = unknown, TServices = unknown, TConfig = unknown> {
|
|
8
|
+
readonly app: Hono;
|
|
9
|
+
readonly config: TConfig;
|
|
10
|
+
readonly deps: TDeps;
|
|
11
|
+
readonly services: TServices;
|
|
12
|
+
readonly paths: AppPaths;
|
|
13
|
+
}
|
|
14
|
+
export type AppPluginDisposer = () => void | Promise<void>;
|
|
15
|
+
export interface AppPluginLifecycle {
|
|
16
|
+
registerDisposer(name: string, dispose: AppPluginDisposer): void;
|
|
17
|
+
}
|
|
18
|
+
export interface AppPluginServerContext<TDeps = unknown, TServices = unknown, TConfig = unknown> {
|
|
19
|
+
readonly config: TConfig;
|
|
20
|
+
readonly deps: TDeps;
|
|
21
|
+
readonly services: TServices;
|
|
22
|
+
readonly lifecycle: AppPluginLifecycle;
|
|
23
|
+
readonly paths: AppPaths;
|
|
24
|
+
}
|
|
25
|
+
export type AppPluginBootstrap<TDeps = unknown, TServices = unknown, TConfig = unknown> = (context: AppPluginServerContext<TDeps, TServices, TConfig>) => void;
|
|
26
|
+
export type AppPluginRoutesRegistrar<TDeps = unknown, TServices = unknown, TConfig = unknown> = (context: AppPluginRoutesContext<TDeps, TServices, TConfig>) => void;
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EACL,+BAA+B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,GAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kCAAkC,EAClC,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,8BAA8B,GACpC,MAAM,cAAc,CAAC;AACtB,mBAAmB,YAAY,CAAC;AAEhC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,sBAAsB,CACrC,KAAK,GAAG,OAAO,EACf,SAAS,GAAG,OAAO,EACnB,OAAO,GAAG,OAAO;IAEjB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAClE;AAED,MAAM,WAAW,sBAAsB,CACrC,KAAK,GAAG,OAAO,EACf,SAAS,GAAG,OAAO,EACnB,OAAO,GAAG,OAAO;IAEjB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B;AAED,MAAM,MAAM,kBAAkB,CAC5B,KAAK,GAAG,OAAO,EACf,SAAS,GAAG,OAAO,EACnB,OAAO,GAAG,OAAO,IACf,CAAC,OAAO,EAAE,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAEzE,MAAM,MAAM,wBAAwB,CAClC,KAAK,GAAG,OAAO,EACf,SAAS,GAAG,OAAO,EACnB,OAAO,GAAG,OAAO,IACf,CAAC,OAAO,EAAE,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { defineServerPlugin, defineServerPlugins } from './define.js';
|
|
2
|
+
export { inspectResolvedAppServerPlugins, } from './inspect.js';
|
|
3
|
+
export { createAppDatabaseTaskContributions, createPluginJobLocations, createPluginMigrationSources, createPluginSeedSources, resolveAppServerPlugins, } from './resolve.js';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EACL,+BAA+B,GAQhC,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kCAAkC,EAClC,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,GAExB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { ResolvedAppServerPlugins } from './types.js';
|
|
2
|
+
export interface AppServerInspectionIssue {
|
|
3
|
+
readonly code: 'SERVER_MIGRATIONS_DIRECTORY_MISSING' | 'SERVER_SEEDS_DIRECTORY_MISSING' | 'SERVER_QUEUE_JOBS_DEPRECATED';
|
|
4
|
+
readonly message: string;
|
|
5
|
+
readonly packageName: string;
|
|
6
|
+
/** Only errors make an inspection inconsistent. */
|
|
7
|
+
readonly severity: 'error' | 'warning';
|
|
8
|
+
}
|
|
9
|
+
export interface AppServerProviderSnapshot {
|
|
10
|
+
readonly order: number;
|
|
11
|
+
readonly pluginOrder: number;
|
|
12
|
+
readonly packageName: string;
|
|
13
|
+
readonly constructorName: string;
|
|
14
|
+
}
|
|
15
|
+
export interface AppServerRouteSnapshot {
|
|
16
|
+
readonly order: number;
|
|
17
|
+
readonly pluginOrder: number;
|
|
18
|
+
readonly contributionOrder: number;
|
|
19
|
+
readonly packageName: string;
|
|
20
|
+
readonly scope: 'api' | 'root';
|
|
21
|
+
}
|
|
22
|
+
export interface AppServerLocalesSnapshot {
|
|
23
|
+
readonly order: number;
|
|
24
|
+
readonly pluginOrder: number;
|
|
25
|
+
readonly packageName: string;
|
|
26
|
+
}
|
|
27
|
+
export interface AppServerDatabaseSnapshot {
|
|
28
|
+
readonly packageName: string;
|
|
29
|
+
readonly migrations?: {
|
|
30
|
+
readonly configured: string;
|
|
31
|
+
readonly resolved?: string;
|
|
32
|
+
};
|
|
33
|
+
readonly seeds?: {
|
|
34
|
+
readonly configured: string;
|
|
35
|
+
readonly resolved?: string;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/** A deprecated `queue.jobs` declaration, reported rather than resolved. */
|
|
39
|
+
export interface AppServerJobsSnapshot {
|
|
40
|
+
readonly packageName: string;
|
|
41
|
+
readonly configuredLocations: readonly string[];
|
|
42
|
+
}
|
|
43
|
+
export interface AppServerPluginSnapshot {
|
|
44
|
+
readonly order: number;
|
|
45
|
+
readonly packageName: string;
|
|
46
|
+
readonly version: string;
|
|
47
|
+
readonly rootDir: string;
|
|
48
|
+
readonly baseDir: string;
|
|
49
|
+
readonly contributions: {
|
|
50
|
+
readonly serviceProviders: number;
|
|
51
|
+
readonly routes: number;
|
|
52
|
+
readonly locales: boolean;
|
|
53
|
+
readonly migrations: boolean;
|
|
54
|
+
readonly seeds: boolean;
|
|
55
|
+
/** Deprecated `queue.jobs` locations the plugin still declares; none is loaded. */
|
|
56
|
+
readonly jobLocations: number;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export interface AppServerInspectionSnapshot {
|
|
60
|
+
readonly app: {
|
|
61
|
+
readonly packageName: string;
|
|
62
|
+
};
|
|
63
|
+
readonly plugins: readonly AppServerPluginSnapshot[];
|
|
64
|
+
readonly serviceProviders: readonly AppServerProviderSnapshot[];
|
|
65
|
+
readonly routes: readonly AppServerRouteSnapshot[];
|
|
66
|
+
readonly locales: readonly AppServerLocalesSnapshot[];
|
|
67
|
+
readonly database: readonly AppServerDatabaseSnapshot[];
|
|
68
|
+
readonly jobs: readonly AppServerJobsSnapshot[];
|
|
69
|
+
readonly consistent: boolean;
|
|
70
|
+
readonly issues: readonly AppServerInspectionIssue[];
|
|
71
|
+
readonly suggestions: readonly string[];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Describes imported Server plugin declarations and resolved contribution locations without constructing Providers,
|
|
75
|
+
* running lifecycle code, executing Route factories, or loading locale resources.
|
|
76
|
+
* Importing the declarations remains the caller's responsibility and may execute module initialization code.
|
|
77
|
+
*/
|
|
78
|
+
export declare function inspectResolvedAppServerPlugins(resolved: ResolvedAppServerPlugins): AppServerInspectionSnapshot;
|
|
79
|
+
//# sourceMappingURL=inspect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/plugins/inspect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
/**
|
|
3
|
+
* Describes imported Server plugin declarations and resolved contribution locations without constructing Providers,
|
|
4
|
+
* running lifecycle code, executing Route factories, or loading locale resources.
|
|
5
|
+
* Importing the declarations remains the caller's responsibility and may execute module initialization code.
|
|
6
|
+
*/
|
|
7
|
+
export function inspectResolvedAppServerPlugins(resolved) {
|
|
8
|
+
const serviceProviders = [];
|
|
9
|
+
const routes = [];
|
|
10
|
+
const locales = [];
|
|
11
|
+
const database = [];
|
|
12
|
+
const jobs = [];
|
|
13
|
+
const issues = [];
|
|
14
|
+
let providerOrder = 0;
|
|
15
|
+
let routeOrder = 0;
|
|
16
|
+
const plugins = resolved.plugins.map((plugin, index) => {
|
|
17
|
+
const pluginOrder = index + 1;
|
|
18
|
+
if (plugin.definition.locales) {
|
|
19
|
+
locales.push({
|
|
20
|
+
order: locales.length + 1,
|
|
21
|
+
pluginOrder,
|
|
22
|
+
packageName: plugin.metadata.packageName,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
plugin.definition.serviceProviders.forEach((Provider) => {
|
|
26
|
+
providerOrder += 1;
|
|
27
|
+
serviceProviders.push({
|
|
28
|
+
order: providerOrder,
|
|
29
|
+
pluginOrder,
|
|
30
|
+
packageName: plugin.metadata.packageName,
|
|
31
|
+
constructorName: Provider.name || '(anonymous)',
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
plugin.definition.routes.forEach((route, routeIndex) => {
|
|
35
|
+
routeOrder += 1;
|
|
36
|
+
routes.push({
|
|
37
|
+
order: routeOrder,
|
|
38
|
+
pluginOrder,
|
|
39
|
+
contributionOrder: routeIndex + 1,
|
|
40
|
+
packageName: plugin.metadata.packageName,
|
|
41
|
+
scope: route.scope,
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
const configuredMigrations = plugin.definition.database?.migrations;
|
|
45
|
+
const configuredSeeds = plugin.definition.database?.seeds;
|
|
46
|
+
if (configuredMigrations || configuredSeeds) {
|
|
47
|
+
database.push({
|
|
48
|
+
packageName: plugin.metadata.packageName,
|
|
49
|
+
...(configuredMigrations
|
|
50
|
+
? {
|
|
51
|
+
migrations: {
|
|
52
|
+
configured: configuredMigrations,
|
|
53
|
+
...(plugin.metadata.migrationsDirectory
|
|
54
|
+
? { resolved: plugin.metadata.migrationsDirectory }
|
|
55
|
+
: {}),
|
|
56
|
+
},
|
|
57
|
+
}
|
|
58
|
+
: {}),
|
|
59
|
+
...(configuredSeeds
|
|
60
|
+
? {
|
|
61
|
+
seeds: {
|
|
62
|
+
configured: configuredSeeds,
|
|
63
|
+
...(plugin.metadata.seedsDirectory
|
|
64
|
+
? { resolved: plugin.metadata.seedsDirectory }
|
|
65
|
+
: {}),
|
|
66
|
+
},
|
|
67
|
+
}
|
|
68
|
+
: {}),
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
if (configuredMigrations && !plugin.metadata.migrationsDirectory) {
|
|
72
|
+
issues.push({
|
|
73
|
+
code: 'SERVER_MIGRATIONS_DIRECTORY_MISSING',
|
|
74
|
+
severity: 'error',
|
|
75
|
+
packageName: plugin.metadata.packageName,
|
|
76
|
+
message: `${plugin.metadata.packageName} declares migrations at ${path.resolve(plugin.metadata.baseDir, configuredMigrations)}, but the directory could not be resolved.`,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
if (configuredSeeds && !plugin.metadata.seedsDirectory) {
|
|
80
|
+
issues.push({
|
|
81
|
+
code: 'SERVER_SEEDS_DIRECTORY_MISSING',
|
|
82
|
+
severity: 'error',
|
|
83
|
+
packageName: plugin.metadata.packageName,
|
|
84
|
+
message: `${plugin.metadata.packageName} declares seeds at ${path.resolve(plugin.metadata.baseDir, configuredSeeds)}, but the directory could not be resolved.`,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
const configuredJobs = plugin.definition.queue?.jobs ?? [];
|
|
88
|
+
if (plugin.definition.queue) {
|
|
89
|
+
jobs.push({
|
|
90
|
+
packageName: plugin.metadata.packageName,
|
|
91
|
+
configuredLocations: configuredJobs,
|
|
92
|
+
});
|
|
93
|
+
issues.push({
|
|
94
|
+
code: 'SERVER_QUEUE_JOBS_DEPRECATED',
|
|
95
|
+
severity: 'warning',
|
|
96
|
+
packageName: plugin.metadata.packageName,
|
|
97
|
+
message: `${plugin.metadata.packageName} declares queue.jobs, which is deprecated and ignored: Job modules are no longer discovered.`,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
order: pluginOrder,
|
|
102
|
+
packageName: plugin.metadata.packageName,
|
|
103
|
+
version: plugin.metadata.version,
|
|
104
|
+
rootDir: plugin.metadata.rootDir,
|
|
105
|
+
baseDir: plugin.metadata.baseDir,
|
|
106
|
+
contributions: {
|
|
107
|
+
serviceProviders: plugin.definition.serviceProviders.length,
|
|
108
|
+
routes: plugin.definition.routes.length,
|
|
109
|
+
locales: plugin.definition.locales !== undefined,
|
|
110
|
+
migrations: configuredMigrations !== undefined,
|
|
111
|
+
seeds: configuredSeeds !== undefined,
|
|
112
|
+
jobLocations: configuredJobs.length,
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
});
|
|
116
|
+
return {
|
|
117
|
+
app: { packageName: resolved.appPackageName },
|
|
118
|
+
plugins,
|
|
119
|
+
serviceProviders,
|
|
120
|
+
routes,
|
|
121
|
+
locales,
|
|
122
|
+
database,
|
|
123
|
+
jobs,
|
|
124
|
+
consistent: !issues.some((issue) => issue.severity === 'error'),
|
|
125
|
+
issues,
|
|
126
|
+
suggestions: suggestionsForIssues(issues),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function suggestionsForIssues(issues) {
|
|
130
|
+
const suggestions = new Set();
|
|
131
|
+
for (const issue of issues) {
|
|
132
|
+
if (issue.code === 'SERVER_MIGRATIONS_DIRECTORY_MISSING' ||
|
|
133
|
+
issue.code === 'SERVER_SEEDS_DIRECTORY_MISSING') {
|
|
134
|
+
suggestions.add('Check the plugin database declaration, package files, and resolved installation contents.');
|
|
135
|
+
}
|
|
136
|
+
else if (issue.code === 'SERVER_QUEUE_JOBS_DEPRECATED') {
|
|
137
|
+
suggestions.add("Remove queue from the plugin's defineServerPlugin call, and register queue handlers from a service provider's boot() through queueServiceToken, or move the work to @nocobase/jobs.");
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return [...suggestions];
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=inspect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/plugins/inspect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { MigrationSource, SeedSource } from '@nocobase/db';
|
|
2
|
+
import type { AppDatabaseTaskContributions } from '../database/index.js';
|
|
3
|
+
import type { AppServerPlugins, ResolvedAppPlugin, ResolvedAppServerPlugins } from './types.js';
|
|
4
|
+
export interface ResolveAppServerPluginsOptions {
|
|
5
|
+
readonly defaultAppPackageName?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function resolveAppServerPlugins(rootDir: string, serverPlugins: AppServerPlugins, options?: ResolveAppServerPluginsOptions): ResolvedAppServerPlugins;
|
|
8
|
+
/** The application identity and plugin task sources that database planning needs. */
|
|
9
|
+
export declare function createAppDatabaseTaskContributions(resolved: ResolvedAppServerPlugins): AppDatabaseTaskContributions;
|
|
10
|
+
export declare function createPluginMigrationSources(plugins: readonly ResolvedAppPlugin[]): MigrationSource[];
|
|
11
|
+
export declare function createPluginSeedSources(plugins: readonly ResolvedAppPlugin[]): SeedSource[];
|
|
12
|
+
/** @deprecated Always returns an empty list: Job modules are no longer discovered. */
|
|
13
|
+
export declare function createPluginJobLocations(plugins: readonly ResolvedAppPlugin[]): string[];
|
|
14
|
+
//# sourceMappingURL=resolve.d.ts.map
|