@buenojs/bueno 0.8.9 → 0.8.11
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 +1 -1
- package/dist/cache/index.d.ts +187 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +595 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cli/bin.d.ts +8 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +9 -9
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/commands/add-frontend.d.ts +7 -0
- package/dist/cli/commands/add-frontend.d.ts.map +1 -0
- package/dist/cli/commands/add-frontend.js +376 -0
- package/dist/cli/commands/add-frontend.js.map +1 -0
- package/dist/cli/commands/build.d.ts +7 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +347 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +7 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +205 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +7 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +491 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/help.d.ts +7 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +51 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/index.d.ts +59 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +77 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/migration.d.ts +7 -0
- package/dist/cli/commands/migration.d.ts.map +1 -0
- package/dist/cli/commands/migration.js +295 -0
- package/dist/cli/commands/migration.js.map +1 -0
- package/dist/cli/commands/new.d.ts +7 -0
- package/dist/cli/commands/new.d.ts.map +1 -0
- package/dist/cli/commands/new.js +641 -0
- package/dist/cli/commands/new.js.map +1 -0
- package/dist/cli/commands/start.d.ts +7 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +171 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/core/args.d.ts +61 -0
- package/dist/cli/core/args.d.ts.map +1 -0
- package/dist/cli/core/args.js +224 -0
- package/dist/cli/core/args.js.map +1 -0
- package/dist/cli/core/console.d.ts +135 -0
- package/dist/cli/core/console.d.ts.map +1 -0
- package/dist/cli/core/console.js +268 -0
- package/dist/cli/core/console.js.map +1 -0
- package/dist/cli/core/index.d.ts +10 -0
- package/dist/cli/core/index.d.ts.map +1 -0
- package/dist/cli/core/index.js +10 -0
- package/dist/cli/core/index.js.map +1 -0
- package/dist/cli/core/prompt.d.ts +63 -0
- package/dist/cli/core/prompt.d.ts.map +1 -0
- package/dist/cli/core/prompt.js +338 -0
- package/dist/cli/core/prompt.js.map +1 -0
- package/dist/cli/core/spinner.d.ts +111 -0
- package/dist/cli/core/spinner.d.ts.map +1 -0
- package/dist/cli/core/spinner.js +208 -0
- package/dist/cli/core/spinner.js.map +1 -0
- package/dist/cli/index.d.ts +47 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +127 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/templates/database/index.d.ts +24 -0
- package/dist/cli/templates/database/index.d.ts.map +1 -0
- package/dist/cli/templates/database/index.js +49 -0
- package/dist/cli/templates/database/index.js.map +1 -0
- package/dist/cli/templates/database/mysql.d.ts +6 -0
- package/dist/cli/templates/database/mysql.d.ts.map +1 -0
- package/dist/cli/templates/database/mysql.js +12 -0
- package/dist/cli/templates/database/mysql.js.map +1 -0
- package/dist/cli/templates/database/none.d.ts +8 -0
- package/dist/cli/templates/database/none.d.ts.map +1 -0
- package/dist/cli/templates/database/none.js +14 -0
- package/dist/cli/templates/database/none.js.map +1 -0
- package/dist/cli/templates/database/postgresql.d.ts +6 -0
- package/dist/cli/templates/database/postgresql.d.ts.map +1 -0
- package/dist/cli/templates/database/postgresql.js +12 -0
- package/dist/cli/templates/database/postgresql.js.map +1 -0
- package/dist/cli/templates/database/sqlite.d.ts +6 -0
- package/dist/cli/templates/database/sqlite.d.ts.map +1 -0
- package/dist/cli/templates/database/sqlite.js +12 -0
- package/dist/cli/templates/database/sqlite.js.map +1 -0
- package/dist/cli/templates/deploy.d.ts +41 -0
- package/dist/cli/templates/deploy.d.ts.map +1 -0
- package/dist/cli/templates/deploy.js +278 -0
- package/dist/cli/templates/deploy.js.map +1 -0
- package/dist/cli/templates/docker.d.ts +30 -0
- package/dist/cli/templates/docker.d.ts.map +1 -0
- package/dist/cli/templates/docker.js +298 -0
- package/dist/cli/templates/docker.js.map +1 -0
- package/dist/cli/templates/frontend/index.d.ts +25 -0
- package/dist/cli/templates/frontend/index.d.ts.map +1 -0
- package/dist/cli/templates/frontend/index.js +40 -0
- package/dist/cli/templates/frontend/index.js.map +1 -0
- package/dist/cli/templates/frontend/none.d.ts +8 -0
- package/dist/cli/templates/frontend/none.d.ts.map +1 -0
- package/dist/cli/templates/frontend/none.js +15 -0
- package/dist/cli/templates/frontend/none.js.map +1 -0
- package/dist/cli/templates/frontend/react.d.ts +6 -0
- package/dist/cli/templates/frontend/react.d.ts.map +1 -0
- package/dist/cli/templates/frontend/react.js +139 -0
- package/dist/cli/templates/frontend/react.js.map +1 -0
- package/dist/cli/templates/frontend/solid.d.ts +6 -0
- package/dist/cli/templates/frontend/solid.d.ts.map +1 -0
- package/dist/cli/templates/frontend/solid.js +133 -0
- package/dist/cli/templates/frontend/solid.js.map +1 -0
- package/dist/cli/templates/frontend/svelte.d.ts +6 -0
- package/dist/cli/templates/frontend/svelte.d.ts.map +1 -0
- package/dist/cli/templates/frontend/svelte.js +130 -0
- package/dist/cli/templates/frontend/svelte.js.map +1 -0
- package/dist/cli/templates/frontend/vue.d.ts +6 -0
- package/dist/cli/templates/frontend/vue.d.ts.map +1 -0
- package/dist/cli/templates/frontend/vue.js +129 -0
- package/dist/cli/templates/frontend/vue.js.map +1 -0
- package/dist/cli/templates/generators/index.d.ts +29 -0
- package/dist/cli/templates/generators/index.d.ts.map +1 -0
- package/dist/cli/templates/generators/index.js +308 -0
- package/dist/cli/templates/generators/index.js.map +1 -0
- package/dist/cli/templates/generators/types.d.ts +32 -0
- package/dist/cli/templates/generators/types.d.ts.map +1 -0
- package/dist/cli/templates/generators/types.js +21 -0
- package/dist/cli/templates/generators/types.js.map +1 -0
- package/dist/cli/templates/index.d.ts +12 -0
- package/dist/cli/templates/index.d.ts.map +1 -0
- package/dist/cli/templates/index.js +18 -0
- package/dist/cli/templates/index.js.map +1 -0
- package/dist/cli/templates/project/api.d.ts +6 -0
- package/dist/cli/templates/project/api.d.ts.map +1 -0
- package/dist/cli/templates/project/api.js +79 -0
- package/dist/cli/templates/project/api.js.map +1 -0
- package/dist/cli/templates/project/default.d.ts +6 -0
- package/dist/cli/templates/project/default.d.ts.map +1 -0
- package/dist/cli/templates/project/default.js +136 -0
- package/dist/cli/templates/project/default.js.map +1 -0
- package/dist/cli/templates/project/fullstack.d.ts +14 -0
- package/dist/cli/templates/project/fullstack.d.ts.map +1 -0
- package/dist/cli/templates/project/fullstack.js +19 -0
- package/dist/cli/templates/project/fullstack.js.map +1 -0
- package/dist/cli/templates/project/index.d.ts +26 -0
- package/dist/cli/templates/project/index.d.ts.map +1 -0
- package/dist/cli/templates/project/index.js +60 -0
- package/dist/cli/templates/project/index.js.map +1 -0
- package/dist/cli/templates/project/minimal.d.ts +6 -0
- package/dist/cli/templates/project/minimal.d.ts.map +1 -0
- package/dist/cli/templates/project/minimal.js +43 -0
- package/dist/cli/templates/project/minimal.js.map +1 -0
- package/dist/cli/templates/project/types.d.ts +80 -0
- package/dist/cli/templates/project/types.d.ts.map +1 -0
- package/dist/cli/templates/project/types.js +7 -0
- package/dist/cli/templates/project/types.js.map +1 -0
- package/dist/cli/templates/project/website.d.ts +8 -0
- package/dist/cli/templates/project/website.d.ts.map +1 -0
- package/dist/cli/templates/project/website.js +312 -0
- package/dist/cli/templates/project/website.js.map +1 -0
- package/dist/cli/utils/fs.d.ts +137 -0
- package/dist/cli/utils/fs.d.ts.map +1 -0
- package/dist/cli/utils/fs.js +350 -0
- package/dist/cli/utils/fs.js.map +1 -0
- package/dist/cli/utils/index.d.ts +9 -0
- package/dist/cli/utils/index.d.ts.map +1 -0
- package/dist/cli/utils/index.js +9 -0
- package/dist/cli/utils/index.js.map +1 -0
- package/dist/cli/utils/strings.d.ts +86 -0
- package/dist/cli/utils/strings.d.ts.map +1 -0
- package/dist/cli/utils/strings.js +190 -0
- package/dist/cli/utils/strings.js.map +1 -0
- package/dist/cli/utils/version.d.ts +15 -0
- package/dist/cli/utils/version.d.ts.map +1 -0
- package/dist/cli/utils/version.js +38 -0
- package/dist/cli/utils/version.js.map +1 -0
- package/dist/config/env-validation.d.ts +49 -0
- package/dist/config/env-validation.d.ts.map +1 -0
- package/dist/config/env-validation.js +77 -0
- package/dist/config/env-validation.js.map +1 -0
- package/dist/config/env.d.ts +167 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +392 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/index.d.ts +168 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +329 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +81 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +242 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/merge.d.ts +66 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/merge.js +226 -0
- package/dist/config/merge.js.map +1 -0
- package/dist/config/types.d.ts +322 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +443 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/validation.d.ts +100 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +548 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/container/forward-ref.d.ts +116 -0
- package/dist/container/forward-ref.d.ts.map +1 -0
- package/dist/container/forward-ref.js +105 -0
- package/dist/container/forward-ref.js.map +1 -0
- package/dist/container/index.d.ts +95 -0
- package/dist/container/index.d.ts.map +1 -0
- package/dist/container/index.js.map +1 -0
- package/dist/context/index.d.ts +143 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js.map +1 -0
- package/dist/database/index.d.ts +219 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/migrations/index.d.ts +151 -0
- package/dist/database/migrations/index.d.ts.map +1 -0
- package/dist/database/migrations/index.js +258 -0
- package/dist/database/migrations/index.js.map +1 -0
- package/dist/database/orm/builder.d.ts +122 -0
- package/dist/database/orm/builder.d.ts.map +1 -0
- package/dist/database/orm/builder.js +355 -0
- package/dist/database/orm/builder.js.map +1 -0
- package/dist/database/orm/casts/index.d.ts +16 -0
- package/dist/database/orm/casts/index.d.ts.map +1 -0
- package/dist/database/orm/casts/index.js +131 -0
- package/dist/database/orm/casts/index.js.map +1 -0
- package/dist/database/orm/casts/types.d.ts +16 -0
- package/dist/database/orm/casts/types.d.ts.map +1 -0
- package/dist/database/orm/casts/types.js +5 -0
- package/dist/database/orm/casts/types.js.map +1 -0
- package/dist/database/orm/compiler.d.ts +90 -0
- package/dist/database/orm/compiler.d.ts.map +1 -0
- package/dist/database/orm/compiler.js +218 -0
- package/dist/database/orm/compiler.js.map +1 -0
- package/dist/database/orm/hooks/index.d.ts +53 -0
- package/dist/database/orm/hooks/index.d.ts.map +1 -0
- package/dist/database/orm/hooks/index.js +81 -0
- package/dist/database/orm/hooks/index.js.map +1 -0
- package/dist/database/orm/index.d.ts +21 -0
- package/dist/database/orm/index.d.ts.map +1 -0
- package/dist/database/orm/index.js +23 -0
- package/dist/database/orm/index.js.map +1 -0
- package/dist/database/orm/model-registry.d.ts +33 -0
- package/dist/database/orm/model-registry.d.ts.map +1 -0
- package/dist/database/orm/model-registry.js +49 -0
- package/dist/database/orm/model-registry.js.map +1 -0
- package/dist/database/orm/model.d.ts +245 -0
- package/dist/database/orm/model.d.ts.map +1 -0
- package/dist/database/orm/model.js +599 -0
- package/dist/database/orm/model.js.map +1 -0
- package/dist/database/orm/relationships/base.d.ts +69 -0
- package/dist/database/orm/relationships/base.d.ts.map +1 -0
- package/dist/database/orm/relationships/base.js +84 -0
- package/dist/database/orm/relationships/base.js.map +1 -0
- package/dist/database/orm/relationships/belongs-to-many.d.ts +47 -0
- package/dist/database/orm/relationships/belongs-to-many.d.ts.map +1 -0
- package/dist/database/orm/relationships/belongs-to-many.js +136 -0
- package/dist/database/orm/relationships/belongs-to-many.js.map +1 -0
- package/dist/database/orm/relationships/belongs-to.d.ts +17 -0
- package/dist/database/orm/relationships/belongs-to.d.ts.map +1 -0
- package/dist/database/orm/relationships/belongs-to.js +38 -0
- package/dist/database/orm/relationships/belongs-to.js.map +1 -0
- package/dist/database/orm/relationships/has-many.d.ts +14 -0
- package/dist/database/orm/relationships/has-many.d.ts.map +1 -0
- package/dist/database/orm/relationships/has-many.js +35 -0
- package/dist/database/orm/relationships/has-many.js.map +1 -0
- package/dist/database/orm/relationships/has-one.d.ts +14 -0
- package/dist/database/orm/relationships/has-one.d.ts.map +1 -0
- package/dist/database/orm/relationships/has-one.js +32 -0
- package/dist/database/orm/relationships/has-one.js.map +1 -0
- package/dist/database/orm/relationships/index.d.ts +10 -0
- package/dist/database/orm/relationships/index.d.ts.map +1 -0
- package/dist/database/orm/relationships/index.js +9 -0
- package/dist/database/orm/relationships/index.js.map +1 -0
- package/dist/database/orm/scopes/index.d.ts +36 -0
- package/dist/database/orm/scopes/index.d.ts.map +1 -0
- package/dist/database/orm/scopes/index.js +47 -0
- package/dist/database/orm/scopes/index.js.map +1 -0
- package/dist/database/schema/index.d.ts +155 -0
- package/dist/database/schema/index.d.ts.map +1 -0
- package/dist/database/schema/index.js +401 -0
- package/dist/database/schema/index.js.map +1 -0
- package/dist/frontend/api-routes.d.ts +189 -0
- package/dist/frontend/api-routes.d.ts.map +1 -0
- package/dist/frontend/api-routes.js +548 -0
- package/dist/frontend/api-routes.js.map +1 -0
- package/dist/frontend/bundler.d.ts +99 -0
- package/dist/frontend/bundler.d.ts.map +1 -0
- package/dist/frontend/bundler.js +555 -0
- package/dist/frontend/bundler.js.map +1 -0
- package/dist/frontend/console-client.d.ts +11 -0
- package/dist/frontend/console-client.d.ts.map +1 -0
- package/dist/frontend/console-client.js +414 -0
- package/dist/frontend/console-client.js.map +1 -0
- package/dist/frontend/console-stream.d.ts +138 -0
- package/dist/frontend/console-stream.d.ts.map +1 -0
- package/dist/frontend/console-stream.js +535 -0
- package/dist/frontend/console-stream.js.map +1 -0
- package/dist/frontend/dev-server.d.ts +174 -0
- package/dist/frontend/dev-server.d.ts.map +1 -0
- package/dist/frontend/dev-server.js +735 -0
- package/dist/frontend/dev-server.js.map +1 -0
- package/dist/frontend/file-router.d.ts +170 -0
- package/dist/frontend/file-router.d.ts.map +1 -0
- package/dist/frontend/file-router.js +531 -0
- package/dist/frontend/file-router.js.map +1 -0
- package/dist/frontend/frameworks/index.d.ts +41 -0
- package/dist/frontend/frameworks/index.d.ts.map +1 -0
- package/dist/frontend/frameworks/index.js +87 -0
- package/dist/frontend/frameworks/index.js.map +1 -0
- package/dist/frontend/frameworks/react.d.ts +32 -0
- package/dist/frontend/frameworks/react.d.ts.map +1 -0
- package/dist/frontend/frameworks/react.js +66 -0
- package/dist/frontend/frameworks/react.js.map +1 -0
- package/dist/frontend/frameworks/solid.d.ts +42 -0
- package/dist/frontend/frameworks/solid.d.ts.map +1 -0
- package/dist/frontend/frameworks/solid.js +84 -0
- package/dist/frontend/frameworks/solid.js.map +1 -0
- package/dist/frontend/frameworks/svelte.d.ts +57 -0
- package/dist/frontend/frameworks/svelte.d.ts.map +1 -0
- package/dist/frontend/frameworks/svelte.js +90 -0
- package/dist/frontend/frameworks/svelte.js.map +1 -0
- package/dist/frontend/frameworks/vue.d.ts +36 -0
- package/dist/frontend/frameworks/vue.d.ts.map +1 -0
- package/dist/frontend/frameworks/vue.js +72 -0
- package/dist/frontend/frameworks/vue.js.map +1 -0
- package/dist/frontend/hmr-client.d.ts +22 -0
- package/dist/frontend/hmr-client.d.ts.map +1 -0
- package/dist/frontend/hmr-client.js +654 -0
- package/dist/frontend/hmr-client.js.map +1 -0
- package/dist/frontend/hmr.d.ts +185 -0
- package/dist/frontend/hmr.d.ts.map +1 -0
- package/dist/frontend/hmr.js +619 -0
- package/dist/frontend/hmr.js.map +1 -0
- package/dist/frontend/index.d.ts +34 -0
- package/dist/frontend/index.d.ts.map +1 -0
- package/dist/frontend/index.js.map +1 -0
- package/dist/frontend/islands.d.ts +135 -0
- package/dist/frontend/islands.d.ts.map +1 -0
- package/dist/frontend/islands.js +455 -0
- package/dist/frontend/islands.js.map +1 -0
- package/dist/frontend/isr.d.ts +143 -0
- package/dist/frontend/isr.d.ts.map +1 -0
- package/dist/frontend/isr.js +440 -0
- package/dist/frontend/isr.js.map +1 -0
- package/dist/frontend/layout.d.ts +140 -0
- package/dist/frontend/layout.d.ts.map +1 -0
- package/dist/frontend/layout.js +392 -0
- package/dist/frontend/layout.js.map +1 -0
- package/dist/frontend/ssr/react.d.ts +118 -0
- package/dist/frontend/ssr/react.d.ts.map +1 -0
- package/dist/frontend/ssr/react.js +373 -0
- package/dist/frontend/ssr/react.js.map +1 -0
- package/dist/frontend/ssr/solid.d.ts +141 -0
- package/dist/frontend/ssr/solid.d.ts.map +1 -0
- package/dist/frontend/ssr/solid.js +440 -0
- package/dist/frontend/ssr/solid.js.map +1 -0
- package/dist/frontend/ssr/svelte.d.ts +158 -0
- package/dist/frontend/ssr/svelte.d.ts.map +1 -0
- package/dist/frontend/ssr/svelte.js +439 -0
- package/dist/frontend/ssr/svelte.js.map +1 -0
- package/dist/frontend/ssr/vue.d.ts +161 -0
- package/dist/frontend/ssr/vue.d.ts.map +1 -0
- package/dist/frontend/ssr/vue.js +385 -0
- package/dist/frontend/ssr/vue.js.map +1 -0
- package/dist/frontend/ssr.d.ts +147 -0
- package/dist/frontend/ssr.d.ts.map +1 -0
- package/dist/frontend/ssr.js +609 -0
- package/dist/frontend/ssr.js.map +1 -0
- package/dist/frontend/types.d.ts +1902 -0
- package/dist/frontend/types.d.ts.map +1 -0
- package/dist/frontend/types.js +8 -0
- package/dist/frontend/types.js.map +1 -0
- package/dist/graphql/built-in-engine.d.ts +36 -0
- package/dist/graphql/built-in-engine.d.ts.map +1 -0
- package/dist/graphql/built-in-engine.js +443 -0
- package/dist/graphql/built-in-engine.js.map +1 -0
- package/dist/graphql/context-builder.d.ts +44 -0
- package/dist/graphql/context-builder.d.ts.map +1 -0
- package/dist/graphql/context-builder.js +91 -0
- package/dist/graphql/context-builder.js.map +1 -0
- package/dist/graphql/decorators.d.ts +162 -0
- package/dist/graphql/decorators.d.ts.map +1 -0
- package/dist/graphql/decorators.js +291 -0
- package/dist/graphql/decorators.js.map +1 -0
- package/dist/graphql/execution-pipeline.d.ts +67 -0
- package/dist/graphql/execution-pipeline.d.ts.map +1 -0
- package/dist/graphql/execution-pipeline.js +127 -0
- package/dist/graphql/execution-pipeline.js.map +1 -0
- package/dist/graphql/graphql-module.d.ts +70 -0
- package/dist/graphql/graphql-module.d.ts.map +1 -0
- package/dist/graphql/graphql-module.js +442 -0
- package/dist/graphql/graphql-module.js.map +1 -0
- package/dist/graphql/index.d.ts +48 -0
- package/dist/graphql/index.d.ts.map +1 -0
- package/dist/graphql/index.js.map +1 -0
- package/dist/graphql/metadata.d.ts +37 -0
- package/dist/graphql/metadata.d.ts.map +1 -0
- package/dist/graphql/metadata.js +130 -0
- package/dist/graphql/metadata.js.map +1 -0
- package/dist/graphql/schema-builder.d.ts +34 -0
- package/dist/graphql/schema-builder.d.ts.map +1 -0
- package/dist/graphql/schema-builder.js +251 -0
- package/dist/graphql/schema-builder.js.map +1 -0
- package/dist/graphql/subscription-handler.d.ts +47 -0
- package/dist/graphql/subscription-handler.d.ts.map +1 -0
- package/dist/graphql/subscription-handler.js +201 -0
- package/dist/graphql/subscription-handler.js.map +1 -0
- package/dist/graphql/types.d.ts +252 -0
- package/dist/graphql/types.d.ts.map +1 -0
- package/dist/graphql/types.js +28 -0
- package/dist/graphql/types.js.map +1 -0
- package/dist/health/index.d.ts +176 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js.map +1 -0
- package/dist/i18n/engine.d.ts +105 -0
- package/dist/i18n/engine.d.ts.map +1 -0
- package/dist/i18n/engine.js +248 -0
- package/dist/i18n/engine.js.map +1 -0
- package/dist/i18n/index.d.ts +13 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/loader.d.ts +79 -0
- package/dist/i18n/loader.d.ts.map +1 -0
- package/dist/i18n/loader.js +192 -0
- package/dist/i18n/loader.js.map +1 -0
- package/dist/i18n/middleware.d.ts +96 -0
- package/dist/i18n/middleware.d.ts.map +1 -0
- package/dist/i18n/middleware.js +126 -0
- package/dist/i18n/middleware.js.map +1 -0
- package/dist/i18n/negotiator.d.ts +84 -0
- package/dist/i18n/negotiator.d.ts.map +1 -0
- package/dist/i18n/negotiator.js +139 -0
- package/dist/i18n/negotiator.js.map +1 -0
- package/dist/i18n/types.d.ts +129 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +8 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/drivers/memory.d.ts +38 -0
- package/dist/jobs/drivers/memory.d.ts.map +1 -0
- package/dist/jobs/drivers/memory.js +246 -0
- package/dist/jobs/drivers/memory.js.map +1 -0
- package/dist/jobs/drivers/redis.d.ts +34 -0
- package/dist/jobs/drivers/redis.d.ts.map +1 -0
- package/dist/jobs/drivers/redis.js +355 -0
- package/dist/jobs/drivers/redis.js.map +1 -0
- package/dist/jobs/index.d.ts +12 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/queue.d.ts +93 -0
- package/dist/jobs/queue.d.ts.map +1 -0
- package/dist/jobs/queue.js +233 -0
- package/dist/jobs/queue.js.map +1 -0
- package/dist/jobs/types.d.ts +193 -0
- package/dist/jobs/types.d.ts.map +1 -0
- package/dist/jobs/types.js +8 -0
- package/dist/jobs/types.js.map +1 -0
- package/dist/jobs/worker.d.ts +91 -0
- package/dist/jobs/worker.d.ts.map +1 -0
- package/dist/jobs/worker.js +300 -0
- package/dist/jobs/worker.js.map +1 -0
- package/dist/lock/index.d.ts +141 -0
- package/dist/lock/index.d.ts.map +1 -0
- package/dist/lock/index.js.map +1 -0
- package/dist/logger/index.d.ts +156 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/transports/index.d.ts +371 -0
- package/dist/logger/transports/index.d.ts.map +1 -0
- package/dist/logger/transports/index.js +740 -0
- package/dist/logger/transports/index.js.map +1 -0
- package/dist/metrics/index.d.ts +163 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/middleware/built-in.d.ts +50 -0
- package/dist/middleware/built-in.d.ts.map +1 -0
- package/dist/middleware/built-in.js +220 -0
- package/dist/middleware/built-in.js.map +1 -0
- package/dist/middleware/index.d.ts +40 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/migrations/index.d.ts +48 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +3 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/modules/filters.d.ts +150 -0
- package/dist/modules/filters.d.ts.map +1 -0
- package/dist/modules/filters.js +338 -0
- package/dist/modules/filters.js.map +1 -0
- package/dist/modules/guards.d.ts +188 -0
- package/dist/modules/guards.d.ts.map +1 -0
- package/dist/modules/guards.js +278 -0
- package/dist/modules/guards.js.map +1 -0
- package/dist/modules/index.d.ts +266 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/modules/interceptors.d.ts +242 -0
- package/dist/modules/interceptors.d.ts.map +1 -0
- package/dist/modules/interceptors.js +407 -0
- package/dist/modules/interceptors.js.map +1 -0
- package/dist/modules/lazy.d.ts +187 -0
- package/dist/modules/lazy.d.ts.map +1 -0
- package/dist/modules/lazy.js +305 -0
- package/dist/modules/lazy.js.map +1 -0
- package/dist/modules/lifecycle.d.ts +221 -0
- package/dist/modules/lifecycle.d.ts.map +1 -0
- package/dist/modules/lifecycle.js +314 -0
- package/dist/modules/lifecycle.js.map +1 -0
- package/dist/modules/metadata.d.ts +32 -0
- package/dist/modules/metadata.d.ts.map +1 -0
- package/dist/modules/metadata.js +59 -0
- package/dist/modules/metadata.js.map +1 -0
- package/dist/modules/pipes.d.ts +287 -0
- package/dist/modules/pipes.d.ts.map +1 -0
- package/dist/modules/pipes.js +443 -0
- package/dist/modules/pipes.js.map +1 -0
- package/dist/notification/channels/base.d.ts +32 -0
- package/dist/notification/channels/base.d.ts.map +1 -0
- package/dist/notification/channels/base.js +37 -0
- package/dist/notification/channels/base.js.map +1 -0
- package/dist/notification/channels/email.d.ts +37 -0
- package/dist/notification/channels/email.d.ts.map +1 -0
- package/dist/notification/channels/email.js +85 -0
- package/dist/notification/channels/email.js.map +1 -0
- package/dist/notification/channels/push.d.ts +37 -0
- package/dist/notification/channels/push.d.ts.map +1 -0
- package/dist/notification/channels/push.js +84 -0
- package/dist/notification/channels/push.js.map +1 -0
- package/dist/notification/channels/sms.d.ts +37 -0
- package/dist/notification/channels/sms.d.ts.map +1 -0
- package/dist/notification/channels/sms.js +83 -0
- package/dist/notification/channels/sms.js.map +1 -0
- package/dist/notification/channels/whatsapp.d.ts +37 -0
- package/dist/notification/channels/whatsapp.d.ts.map +1 -0
- package/dist/notification/channels/whatsapp.js +81 -0
- package/dist/notification/channels/whatsapp.js.map +1 -0
- package/dist/notification/index.d.ts +15 -0
- package/dist/notification/index.d.ts.map +1 -0
- package/dist/notification/index.js.map +1 -0
- package/dist/notification/service.d.ts +100 -0
- package/dist/notification/service.d.ts.map +1 -0
- package/dist/notification/service.js +279 -0
- package/dist/notification/service.js.map +1 -0
- package/dist/notification/types.d.ts +253 -0
- package/dist/notification/types.d.ts.map +1 -0
- package/dist/notification/types.js +14 -0
- package/dist/notification/types.js.map +1 -0
- package/dist/observability/__tests__/observability.test.d.ts +2 -0
- package/dist/observability/__tests__/observability.test.d.ts.map +1 -0
- package/dist/observability/__tests__/observability.test.js +404 -0
- package/dist/observability/__tests__/observability.test.js.map +1 -0
- package/dist/observability/breadcrumbs.d.ts +48 -0
- package/dist/observability/breadcrumbs.d.ts.map +1 -0
- package/dist/observability/breadcrumbs.js +97 -0
- package/dist/observability/breadcrumbs.js.map +1 -0
- package/dist/observability/index.d.ts +95 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/interceptor.d.ts +19 -0
- package/dist/observability/interceptor.d.ts.map +1 -0
- package/dist/observability/interceptor.js +67 -0
- package/dist/observability/interceptor.js.map +1 -0
- package/dist/observability/service.d.ts +101 -0
- package/dist/observability/service.d.ts.map +1 -0
- package/dist/observability/service.js +249 -0
- package/dist/observability/service.js.map +1 -0
- package/dist/observability/trace.d.ts +21 -0
- package/dist/observability/trace.d.ts.map +1 -0
- package/dist/observability/trace.js +35 -0
- package/dist/observability/trace.js.map +1 -0
- package/dist/observability/types.d.ts +172 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +8 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/openapi/decorators.d.ts +173 -0
- package/dist/openapi/decorators.d.ts.map +1 -0
- package/dist/openapi/decorators.js +276 -0
- package/dist/openapi/decorators.js.map +1 -0
- package/dist/openapi/document-builder.d.ts +82 -0
- package/dist/openapi/document-builder.d.ts.map +1 -0
- package/dist/openapi/document-builder.js +228 -0
- package/dist/openapi/document-builder.js.map +1 -0
- package/dist/openapi/index.d.ts +48 -0
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js.map +1 -0
- package/dist/openapi/metadata.d.ts +36 -0
- package/dist/openapi/metadata.d.ts.map +1 -0
- package/dist/openapi/metadata.js +78 -0
- package/dist/openapi/metadata.js.map +1 -0
- package/dist/openapi/route-scanner.d.ts +34 -0
- package/dist/openapi/route-scanner.d.ts.map +1 -0
- package/dist/openapi/route-scanner.js +174 -0
- package/dist/openapi/route-scanner.js.map +1 -0
- package/dist/openapi/schema-generator.d.ts +53 -0
- package/dist/openapi/schema-generator.d.ts.map +1 -0
- package/dist/openapi/schema-generator.js +236 -0
- package/dist/openapi/schema-generator.js.map +1 -0
- package/dist/openapi/swagger-module.d.ts +57 -0
- package/dist/openapi/swagger-module.d.ts.map +1 -0
- package/dist/openapi/swagger-module.js +143 -0
- package/dist/openapi/swagger-module.js.map +1 -0
- package/dist/openapi/types.d.ts +344 -0
- package/dist/openapi/types.d.ts.map +1 -0
- package/dist/openapi/types.js +7 -0
- package/dist/openapi/types.js.map +1 -0
- package/dist/orm/index.d.ts +10 -0
- package/dist/orm/index.d.ts.map +1 -0
- package/dist/orm/index.js.map +1 -0
- package/dist/router/index.d.ts +73 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/linear.d.ts +54 -0
- package/dist/router/linear.d.ts.map +1 -0
- package/dist/router/linear.js +261 -0
- package/dist/router/linear.js.map +1 -0
- package/dist/router/regex.d.ts +49 -0
- package/dist/router/regex.d.ts.map +1 -0
- package/dist/router/regex.js +201 -0
- package/dist/router/regex.js.map +1 -0
- package/dist/router/tree.d.ts +112 -0
- package/dist/router/tree.d.ts.map +1 -0
- package/dist/router/tree.js +360 -0
- package/dist/router/tree.js.map +1 -0
- package/dist/rpc/index.d.ts +321 -0
- package/dist/rpc/index.d.ts.map +1 -0
- package/dist/rpc/index.js.map +1 -0
- package/dist/schema/index.d.ts +10 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/security/index.d.ts +126 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +309 -0
- package/dist/security/index.js.map +1 -0
- package/dist/ssg/index.d.ts +73 -0
- package/dist/ssg/index.d.ts.map +1 -0
- package/dist/ssg/index.js +464 -0
- package/dist/ssg/index.js.map +1 -0
- package/dist/storage/index.d.ts +99 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +338 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/telemetry/index.d.ts +376 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/template/index.d.ts +7 -0
- package/dist/template/index.d.ts.map +1 -0
- package/dist/template/index.js.map +1 -0
- package/dist/templates/engine.d.ts +60 -0
- package/dist/templates/engine.d.ts.map +1 -0
- package/dist/templates/engine.js +177 -0
- package/dist/templates/engine.js.map +1 -0
- package/dist/templates/index.d.ts +9 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/loader.d.ts +45 -0
- package/dist/templates/loader.d.ts.map +1 -0
- package/dist/templates/loader.js +274 -0
- package/dist/templates/loader.js.map +1 -0
- package/dist/templates/renderers/markdown.d.ts +46 -0
- package/dist/templates/renderers/markdown.d.ts.map +1 -0
- package/dist/templates/renderers/markdown.js +181 -0
- package/dist/templates/renderers/markdown.js.map +1 -0
- package/dist/templates/renderers/simple.d.ts +35 -0
- package/dist/templates/renderers/simple.d.ts.map +1 -0
- package/dist/templates/renderers/simple.js +245 -0
- package/dist/templates/renderers/simple.js.map +1 -0
- package/dist/templates/types.d.ts +138 -0
- package/dist/templates/types.d.ts.map +1 -0
- package/dist/templates/types.js +8 -0
- package/dist/templates/types.js.map +1 -0
- package/dist/testing/index.d.ts +539 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/types/index.d.ts +116 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js.map +1 -0
- package/dist/validation/index.d.ts +89 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +276 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/schemas.d.ts +283 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/validation/schemas.js +407 -0
- package/dist/validation/schemas.js.map +1 -0
- package/dist/websocket/index.d.ts +252 -0
- package/dist/websocket/index.d.ts.map +1 -0
- package/dist/websocket/index.js +749 -0
- package/dist/websocket/index.js.map +1 -0
- package/llms.txt +1 -1
- package/package.json +3 -3
- package/src/cli/commands/new.ts +1 -1
- package/src/cli/templates/frontend/react.ts +1 -1
- package/src/cli/templates/frontend/solid.ts +1 -1
- package/src/cli/templates/frontend/svelte.ts +1 -1
- package/src/cli/templates/frontend/vue.ts +1 -1
- package/src/cli/templates/project/default.ts +1 -1
- package/src/cli/templates/project/website.ts +3 -3
- package/src/database/migrations/index.ts +8 -0
- package/src/migrations/index.ts +40 -1
- package/src/types/index.ts +1 -1
- package/tsconfig.json +2 -6
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lifecycle Hooks System
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive lifecycle management for the Bueno framework module system.
|
|
5
|
+
* Provides hooks for module initialization, application bootstrap, and shutdown.
|
|
6
|
+
*/
|
|
7
|
+
import type { Context } from "../context";
|
|
8
|
+
/**
|
|
9
|
+
* Hook called when a module is initialized.
|
|
10
|
+
* Called after the module's providers are registered.
|
|
11
|
+
*/
|
|
12
|
+
export interface OnModuleInit {
|
|
13
|
+
onModuleInit(): void | Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Hook called when the application has fully bootstrapped.
|
|
17
|
+
* Called after all controllers are registered.
|
|
18
|
+
*/
|
|
19
|
+
export interface OnApplicationBootstrap {
|
|
20
|
+
onApplicationBootstrap(): void | Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Hook called when a module is being destroyed.
|
|
24
|
+
* Called during the shutdown process.
|
|
25
|
+
*/
|
|
26
|
+
export interface OnModuleDestroy {
|
|
27
|
+
onModuleDestroy(): void | Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Hook called before the application shuts down.
|
|
31
|
+
* Called when a shutdown signal is received (SIGTERM, SIGINT).
|
|
32
|
+
*/
|
|
33
|
+
export interface BeforeApplicationShutdown {
|
|
34
|
+
beforeApplicationShutdown(signal?: string): void | Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Hook called when the application is shutting down.
|
|
38
|
+
* Called at the end of the shutdown process.
|
|
39
|
+
*/
|
|
40
|
+
export interface OnApplicationShutdown {
|
|
41
|
+
onApplicationShutdown(signal?: string): void | Promise<void>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Hook called before a request is handled.
|
|
45
|
+
*/
|
|
46
|
+
export interface OnBeforeRequest {
|
|
47
|
+
onBeforeRequest(context: Context): void | Promise<void>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Hook called after a request is handled.
|
|
51
|
+
*/
|
|
52
|
+
export interface OnAfterRequest {
|
|
53
|
+
onAfterRequest(context: Context, response: Response): void | Promise<void>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Hook called when a request throws an error.
|
|
57
|
+
*/
|
|
58
|
+
export interface OnRequestError {
|
|
59
|
+
onRequestError(context: Context, error: Error): void | Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Check if an instance implements OnModuleInit
|
|
63
|
+
*/
|
|
64
|
+
export declare function isOnModuleInit(instance: unknown): instance is OnModuleInit;
|
|
65
|
+
/**
|
|
66
|
+
* Check if an instance implements OnApplicationBootstrap
|
|
67
|
+
*/
|
|
68
|
+
export declare function isOnApplicationBootstrap(instance: unknown): instance is OnApplicationBootstrap;
|
|
69
|
+
/**
|
|
70
|
+
* Check if an instance implements OnModuleDestroy
|
|
71
|
+
*/
|
|
72
|
+
export declare function isOnModuleDestroy(instance: unknown): instance is OnModuleDestroy;
|
|
73
|
+
/**
|
|
74
|
+
* Check if an instance implements BeforeApplicationShutdown
|
|
75
|
+
*/
|
|
76
|
+
export declare function isBeforeApplicationShutdown(instance: unknown): instance is BeforeApplicationShutdown;
|
|
77
|
+
/**
|
|
78
|
+
* Check if an instance implements OnApplicationShutdown
|
|
79
|
+
*/
|
|
80
|
+
export declare function isOnApplicationShutdown(instance: unknown): instance is OnApplicationShutdown;
|
|
81
|
+
/**
|
|
82
|
+
* Check if an instance implements OnBeforeRequest
|
|
83
|
+
*/
|
|
84
|
+
export declare function isOnBeforeRequest(instance: unknown): instance is OnBeforeRequest;
|
|
85
|
+
/**
|
|
86
|
+
* Check if an instance implements OnAfterRequest
|
|
87
|
+
*/
|
|
88
|
+
export declare function isOnAfterRequest(instance: unknown): instance is OnAfterRequest;
|
|
89
|
+
/**
|
|
90
|
+
* Check if an instance implements OnRequestError
|
|
91
|
+
*/
|
|
92
|
+
export declare function isOnRequestError(instance: unknown): instance is OnRequestError;
|
|
93
|
+
/**
|
|
94
|
+
* Manager for lifecycle hooks.
|
|
95
|
+
* Handles registration and execution of lifecycle hooks in the correct order.
|
|
96
|
+
*/
|
|
97
|
+
export declare class LifecycleHookManager {
|
|
98
|
+
private instancesWithModuleInit;
|
|
99
|
+
private instancesWithBootstrap;
|
|
100
|
+
private instancesWithModuleDestroy;
|
|
101
|
+
private instancesWithBeforeShutdown;
|
|
102
|
+
private instancesWithShutdown;
|
|
103
|
+
private instancesWithBeforeRequest;
|
|
104
|
+
private instancesWithAfterRequest;
|
|
105
|
+
private instancesWithRequestError;
|
|
106
|
+
/**
|
|
107
|
+
* Register an instance with lifecycle hooks.
|
|
108
|
+
* The instance will be checked for all lifecycle hook interfaces.
|
|
109
|
+
*/
|
|
110
|
+
registerInstance(instance: unknown): void;
|
|
111
|
+
/**
|
|
112
|
+
* Register multiple instances with lifecycle hooks.
|
|
113
|
+
*/
|
|
114
|
+
registerInstances(instances: unknown[]): void;
|
|
115
|
+
/**
|
|
116
|
+
* Execute onModuleInit hooks for all registered instances.
|
|
117
|
+
* Called after providers are registered.
|
|
118
|
+
*/
|
|
119
|
+
executeOnModuleInit(): Promise<void>;
|
|
120
|
+
/**
|
|
121
|
+
* Execute onApplicationBootstrap hooks for all registered instances.
|
|
122
|
+
* Called after controllers are registered.
|
|
123
|
+
*/
|
|
124
|
+
executeOnApplicationBootstrap(): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Execute beforeApplicationShutdown hooks for all registered instances.
|
|
127
|
+
* Called when a shutdown signal is received.
|
|
128
|
+
*/
|
|
129
|
+
executeBeforeApplicationShutdown(signal?: string): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* Execute onModuleDestroy hooks for all registered instances.
|
|
132
|
+
* Called during the shutdown process.
|
|
133
|
+
*/
|
|
134
|
+
executeOnModuleDestroy(): Promise<void>;
|
|
135
|
+
/**
|
|
136
|
+
* Execute onApplicationShutdown hooks for all registered instances.
|
|
137
|
+
* Called at the end of the shutdown process.
|
|
138
|
+
*/
|
|
139
|
+
executeOnApplicationShutdown(signal?: string): Promise<void>;
|
|
140
|
+
/**
|
|
141
|
+
* Execute onBeforeRequest hooks for all registered instances.
|
|
142
|
+
*/
|
|
143
|
+
executeOnBeforeRequest(context: Context): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* Execute onAfterRequest hooks for all registered instances.
|
|
146
|
+
*/
|
|
147
|
+
executeOnAfterRequest(context: Context, response: Response): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* Execute onRequestError hooks for all registered instances.
|
|
150
|
+
*/
|
|
151
|
+
executeOnRequestError(context: Context, error: Error): Promise<void>;
|
|
152
|
+
/**
|
|
153
|
+
* Check if there are any registered instances with lifecycle hooks.
|
|
154
|
+
*/
|
|
155
|
+
hasRegisteredHooks(): boolean;
|
|
156
|
+
/**
|
|
157
|
+
* Get count of registered instances for each hook type.
|
|
158
|
+
*/
|
|
159
|
+
getHookCounts(): {
|
|
160
|
+
onModuleInit: number;
|
|
161
|
+
onApplicationBootstrap: number;
|
|
162
|
+
onModuleDestroy: number;
|
|
163
|
+
beforeApplicationShutdown: number;
|
|
164
|
+
onApplicationShutdown: number;
|
|
165
|
+
onBeforeRequest: number;
|
|
166
|
+
onAfterRequest: number;
|
|
167
|
+
onRequestError: number;
|
|
168
|
+
};
|
|
169
|
+
/**
|
|
170
|
+
* Clear all registered instances.
|
|
171
|
+
* Useful for testing or when resetting the application.
|
|
172
|
+
*/
|
|
173
|
+
clear(): void;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Handler for graceful shutdown signals.
|
|
177
|
+
*/
|
|
178
|
+
export declare class ShutdownSignalHandler {
|
|
179
|
+
private isShuttingDown;
|
|
180
|
+
private signalListeners;
|
|
181
|
+
/**
|
|
182
|
+
* Register a listener for shutdown signals.
|
|
183
|
+
*/
|
|
184
|
+
onSignal(listener: (signal: string) => Promise<void>): void;
|
|
185
|
+
/**
|
|
186
|
+
* Remove a listener for shutdown signals.
|
|
187
|
+
*/
|
|
188
|
+
offSignal(listener: (signal: string) => Promise<void>): void;
|
|
189
|
+
/**
|
|
190
|
+
* Start listening for shutdown signals (SIGTERM, SIGINT).
|
|
191
|
+
*/
|
|
192
|
+
startListening(): void;
|
|
193
|
+
/**
|
|
194
|
+
* Stop listening for shutdown signals.
|
|
195
|
+
*/
|
|
196
|
+
stopListening(): void;
|
|
197
|
+
/**
|
|
198
|
+
* Handle a shutdown signal.
|
|
199
|
+
*/
|
|
200
|
+
private handleSignal;
|
|
201
|
+
/**
|
|
202
|
+
* Check if the application is shutting down.
|
|
203
|
+
*/
|
|
204
|
+
isShuttingDownNow(): boolean;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Combined interface for all application lifecycle hooks.
|
|
208
|
+
*/
|
|
209
|
+
export interface ApplicationLifecycle extends OnModuleInit, OnApplicationBootstrap, OnModuleDestroy, BeforeApplicationShutdown, OnApplicationShutdown {
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Combined interface for all request lifecycle hooks.
|
|
213
|
+
*/
|
|
214
|
+
export interface RequestLifecycle extends OnBeforeRequest, OnAfterRequest, OnRequestError {
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Combined interface for all lifecycle hooks.
|
|
218
|
+
*/
|
|
219
|
+
export interface FullLifecycle extends ApplicationLifecycle, RequestLifecycle {
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/modules/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI1C;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACtC,sBAAsB,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,eAAe,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACzC,yBAAyB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACrC,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAID;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE;AAID;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAO1E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,OAAO,GACf,QAAQ,IAAI,sBAAsB,CAQpC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,OAAO,GACf,QAAQ,IAAI,eAAe,CAO7B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,OAAO,GACf,QAAQ,IAAI,yBAAyB,CAQvC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,OAAO,GACf,QAAQ,IAAI,qBAAqB,CAQnC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,OAAO,GACf,QAAQ,IAAI,eAAe,CAO7B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,OAAO,GACf,QAAQ,IAAI,cAAc,CAO5B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,OAAO,GACf,QAAQ,IAAI,cAAc,CAO5B;AAID;;;GAGG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,uBAAuB,CAAsB;IACrD,OAAO,CAAC,sBAAsB,CAAgC;IAC9D,OAAO,CAAC,0BAA0B,CAAyB;IAC3D,OAAO,CAAC,2BAA2B,CAAmC;IACtE,OAAO,CAAC,qBAAqB,CAA+B;IAC5D,OAAO,CAAC,0BAA0B,CAAyB;IAC3D,OAAO,CAAC,yBAAyB,CAAwB;IACzD,OAAO,CAAC,yBAAyB,CAAwB;IAEzD;;;OAGG;IACH,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IA2BzC;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI;IAQ7C;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAM1C;;;OAGG;IACG,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC;IAMpD;;;OAGG;IACG,gCAAgC,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtE;;;OAGG;IACG,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7C;;;OAGG;IACG,4BAA4B,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlE;;OAEG;IACG,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7D;;OAEG;IACG,qBAAqB,CAC1B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;IAMhB;;OAEG;IACG,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1E;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAa7B;;OAEG;IACH,aAAa,IAAI;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,eAAe,EAAE,MAAM,CAAC;QACxB,yBAAyB,EAAE,MAAM,CAAC;QAClC,qBAAqB,EAAE,MAAM,CAAC;QAC9B,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;KACvB;IAaD;;;OAGG;IACH,KAAK,IAAI,IAAI;CAUb;AAID;;GAEG;AACH,qBAAa,qBAAqB;IACjC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,eAAe,CAAgD;IAEvE;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI3D;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAO5D;;OAEG;IACH,cAAc,IAAI,IAAI;IAKtB;;OAEG;IACH,aAAa,IAAI,IAAI;IAKrB;;OAEG;YACW,YAAY;IAqB1B;;OAEG;IACH,iBAAiB,IAAI,OAAO;CAG5B;AAID;;GAEG;AACH,MAAM,WAAW,oBAChB,SAAQ,YAAY,EACnB,sBAAsB,EACtB,eAAe,EACf,yBAAyB,EACzB,qBAAqB;CAAG;AAE1B;;GAEG;AACH,MAAM,WAAW,gBAChB,SAAQ,eAAe,EACtB,cAAc,EACd,cAAc;CAAG;AAEnB;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,oBAAoB,EAAE,gBAAgB;CAAG"}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lifecycle Hooks System
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive lifecycle management for the Bueno framework module system.
|
|
5
|
+
* Provides hooks for module initialization, application bootstrap, and shutdown.
|
|
6
|
+
*/
|
|
7
|
+
// ============= Type Guards =============
|
|
8
|
+
/**
|
|
9
|
+
* Check if an instance implements OnModuleInit
|
|
10
|
+
*/
|
|
11
|
+
export function isOnModuleInit(instance) {
|
|
12
|
+
return (typeof instance === "object" &&
|
|
13
|
+
instance !== null &&
|
|
14
|
+
"onModuleInit" in instance &&
|
|
15
|
+
typeof instance.onModuleInit === "function");
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Check if an instance implements OnApplicationBootstrap
|
|
19
|
+
*/
|
|
20
|
+
export function isOnApplicationBootstrap(instance) {
|
|
21
|
+
return (typeof instance === "object" &&
|
|
22
|
+
instance !== null &&
|
|
23
|
+
"onApplicationBootstrap" in instance &&
|
|
24
|
+
typeof instance.onApplicationBootstrap ===
|
|
25
|
+
"function");
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Check if an instance implements OnModuleDestroy
|
|
29
|
+
*/
|
|
30
|
+
export function isOnModuleDestroy(instance) {
|
|
31
|
+
return (typeof instance === "object" &&
|
|
32
|
+
instance !== null &&
|
|
33
|
+
"onModuleDestroy" in instance &&
|
|
34
|
+
typeof instance.onModuleDestroy === "function");
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Check if an instance implements BeforeApplicationShutdown
|
|
38
|
+
*/
|
|
39
|
+
export function isBeforeApplicationShutdown(instance) {
|
|
40
|
+
return (typeof instance === "object" &&
|
|
41
|
+
instance !== null &&
|
|
42
|
+
"beforeApplicationShutdown" in instance &&
|
|
43
|
+
typeof instance.beforeApplicationShutdown ===
|
|
44
|
+
"function");
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Check if an instance implements OnApplicationShutdown
|
|
48
|
+
*/
|
|
49
|
+
export function isOnApplicationShutdown(instance) {
|
|
50
|
+
return (typeof instance === "object" &&
|
|
51
|
+
instance !== null &&
|
|
52
|
+
"onApplicationShutdown" in instance &&
|
|
53
|
+
typeof instance.onApplicationShutdown ===
|
|
54
|
+
"function");
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Check if an instance implements OnBeforeRequest
|
|
58
|
+
*/
|
|
59
|
+
export function isOnBeforeRequest(instance) {
|
|
60
|
+
return (typeof instance === "object" &&
|
|
61
|
+
instance !== null &&
|
|
62
|
+
"onBeforeRequest" in instance &&
|
|
63
|
+
typeof instance.onBeforeRequest === "function");
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check if an instance implements OnAfterRequest
|
|
67
|
+
*/
|
|
68
|
+
export function isOnAfterRequest(instance) {
|
|
69
|
+
return (typeof instance === "object" &&
|
|
70
|
+
instance !== null &&
|
|
71
|
+
"onAfterRequest" in instance &&
|
|
72
|
+
typeof instance.onAfterRequest === "function");
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Check if an instance implements OnRequestError
|
|
76
|
+
*/
|
|
77
|
+
export function isOnRequestError(instance) {
|
|
78
|
+
return (typeof instance === "object" &&
|
|
79
|
+
instance !== null &&
|
|
80
|
+
"onRequestError" in instance &&
|
|
81
|
+
typeof instance.onRequestError === "function");
|
|
82
|
+
}
|
|
83
|
+
// ============= Lifecycle Hook Manager =============
|
|
84
|
+
/**
|
|
85
|
+
* Manager for lifecycle hooks.
|
|
86
|
+
* Handles registration and execution of lifecycle hooks in the correct order.
|
|
87
|
+
*/
|
|
88
|
+
export class LifecycleHookManager {
|
|
89
|
+
instancesWithModuleInit = [];
|
|
90
|
+
instancesWithBootstrap = [];
|
|
91
|
+
instancesWithModuleDestroy = [];
|
|
92
|
+
instancesWithBeforeShutdown = [];
|
|
93
|
+
instancesWithShutdown = [];
|
|
94
|
+
instancesWithBeforeRequest = [];
|
|
95
|
+
instancesWithAfterRequest = [];
|
|
96
|
+
instancesWithRequestError = [];
|
|
97
|
+
/**
|
|
98
|
+
* Register an instance with lifecycle hooks.
|
|
99
|
+
* The instance will be checked for all lifecycle hook interfaces.
|
|
100
|
+
*/
|
|
101
|
+
registerInstance(instance) {
|
|
102
|
+
if (isOnModuleInit(instance)) {
|
|
103
|
+
this.instancesWithModuleInit.push(instance);
|
|
104
|
+
}
|
|
105
|
+
if (isOnApplicationBootstrap(instance)) {
|
|
106
|
+
this.instancesWithBootstrap.push(instance);
|
|
107
|
+
}
|
|
108
|
+
if (isOnModuleDestroy(instance)) {
|
|
109
|
+
this.instancesWithModuleDestroy.push(instance);
|
|
110
|
+
}
|
|
111
|
+
if (isBeforeApplicationShutdown(instance)) {
|
|
112
|
+
this.instancesWithBeforeShutdown.push(instance);
|
|
113
|
+
}
|
|
114
|
+
if (isOnApplicationShutdown(instance)) {
|
|
115
|
+
this.instancesWithShutdown.push(instance);
|
|
116
|
+
}
|
|
117
|
+
if (isOnBeforeRequest(instance)) {
|
|
118
|
+
this.instancesWithBeforeRequest.push(instance);
|
|
119
|
+
}
|
|
120
|
+
if (isOnAfterRequest(instance)) {
|
|
121
|
+
this.instancesWithAfterRequest.push(instance);
|
|
122
|
+
}
|
|
123
|
+
if (isOnRequestError(instance)) {
|
|
124
|
+
this.instancesWithRequestError.push(instance);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Register multiple instances with lifecycle hooks.
|
|
129
|
+
*/
|
|
130
|
+
registerInstances(instances) {
|
|
131
|
+
for (const instance of instances) {
|
|
132
|
+
this.registerInstance(instance);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// ============= Application Lifecycle Execution =============
|
|
136
|
+
/**
|
|
137
|
+
* Execute onModuleInit hooks for all registered instances.
|
|
138
|
+
* Called after providers are registered.
|
|
139
|
+
*/
|
|
140
|
+
async executeOnModuleInit() {
|
|
141
|
+
for (const instance of this.instancesWithModuleInit) {
|
|
142
|
+
await instance.onModuleInit();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Execute onApplicationBootstrap hooks for all registered instances.
|
|
147
|
+
* Called after controllers are registered.
|
|
148
|
+
*/
|
|
149
|
+
async executeOnApplicationBootstrap() {
|
|
150
|
+
for (const instance of this.instancesWithBootstrap) {
|
|
151
|
+
await instance.onApplicationBootstrap();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Execute beforeApplicationShutdown hooks for all registered instances.
|
|
156
|
+
* Called when a shutdown signal is received.
|
|
157
|
+
*/
|
|
158
|
+
async executeBeforeApplicationShutdown(signal) {
|
|
159
|
+
for (const instance of this.instancesWithBeforeShutdown) {
|
|
160
|
+
await instance.beforeApplicationShutdown(signal);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Execute onModuleDestroy hooks for all registered instances.
|
|
165
|
+
* Called during the shutdown process.
|
|
166
|
+
*/
|
|
167
|
+
async executeOnModuleDestroy() {
|
|
168
|
+
for (const instance of this.instancesWithModuleDestroy) {
|
|
169
|
+
await instance.onModuleDestroy();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Execute onApplicationShutdown hooks for all registered instances.
|
|
174
|
+
* Called at the end of the shutdown process.
|
|
175
|
+
*/
|
|
176
|
+
async executeOnApplicationShutdown(signal) {
|
|
177
|
+
for (const instance of this.instancesWithShutdown) {
|
|
178
|
+
await instance.onApplicationShutdown(signal);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// ============= Request Lifecycle Execution =============
|
|
182
|
+
/**
|
|
183
|
+
* Execute onBeforeRequest hooks for all registered instances.
|
|
184
|
+
*/
|
|
185
|
+
async executeOnBeforeRequest(context) {
|
|
186
|
+
for (const instance of this.instancesWithBeforeRequest) {
|
|
187
|
+
await instance.onBeforeRequest(context);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Execute onAfterRequest hooks for all registered instances.
|
|
192
|
+
*/
|
|
193
|
+
async executeOnAfterRequest(context, response) {
|
|
194
|
+
for (const instance of this.instancesWithAfterRequest) {
|
|
195
|
+
await instance.onAfterRequest(context, response);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Execute onRequestError hooks for all registered instances.
|
|
200
|
+
*/
|
|
201
|
+
async executeOnRequestError(context, error) {
|
|
202
|
+
for (const instance of this.instancesWithRequestError) {
|
|
203
|
+
await instance.onRequestError(context, error);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// ============= Utility Methods =============
|
|
207
|
+
/**
|
|
208
|
+
* Check if there are any registered instances with lifecycle hooks.
|
|
209
|
+
*/
|
|
210
|
+
hasRegisteredHooks() {
|
|
211
|
+
return (this.instancesWithModuleInit.length > 0 ||
|
|
212
|
+
this.instancesWithBootstrap.length > 0 ||
|
|
213
|
+
this.instancesWithModuleDestroy.length > 0 ||
|
|
214
|
+
this.instancesWithBeforeShutdown.length > 0 ||
|
|
215
|
+
this.instancesWithShutdown.length > 0 ||
|
|
216
|
+
this.instancesWithBeforeRequest.length > 0 ||
|
|
217
|
+
this.instancesWithAfterRequest.length > 0 ||
|
|
218
|
+
this.instancesWithRequestError.length > 0);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Get count of registered instances for each hook type.
|
|
222
|
+
*/
|
|
223
|
+
getHookCounts() {
|
|
224
|
+
return {
|
|
225
|
+
onModuleInit: this.instancesWithModuleInit.length,
|
|
226
|
+
onApplicationBootstrap: this.instancesWithBootstrap.length,
|
|
227
|
+
onModuleDestroy: this.instancesWithModuleDestroy.length,
|
|
228
|
+
beforeApplicationShutdown: this.instancesWithBeforeShutdown.length,
|
|
229
|
+
onApplicationShutdown: this.instancesWithShutdown.length,
|
|
230
|
+
onBeforeRequest: this.instancesWithBeforeRequest.length,
|
|
231
|
+
onAfterRequest: this.instancesWithAfterRequest.length,
|
|
232
|
+
onRequestError: this.instancesWithRequestError.length,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Clear all registered instances.
|
|
237
|
+
* Useful for testing or when resetting the application.
|
|
238
|
+
*/
|
|
239
|
+
clear() {
|
|
240
|
+
this.instancesWithModuleInit = [];
|
|
241
|
+
this.instancesWithBootstrap = [];
|
|
242
|
+
this.instancesWithModuleDestroy = [];
|
|
243
|
+
this.instancesWithBeforeShutdown = [];
|
|
244
|
+
this.instancesWithShutdown = [];
|
|
245
|
+
this.instancesWithBeforeRequest = [];
|
|
246
|
+
this.instancesWithAfterRequest = [];
|
|
247
|
+
this.instancesWithRequestError = [];
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
// ============= Shutdown Signal Handler =============
|
|
251
|
+
/**
|
|
252
|
+
* Handler for graceful shutdown signals.
|
|
253
|
+
*/
|
|
254
|
+
export class ShutdownSignalHandler {
|
|
255
|
+
isShuttingDown = false;
|
|
256
|
+
signalListeners = [];
|
|
257
|
+
/**
|
|
258
|
+
* Register a listener for shutdown signals.
|
|
259
|
+
*/
|
|
260
|
+
onSignal(listener) {
|
|
261
|
+
this.signalListeners.push(listener);
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Remove a listener for shutdown signals.
|
|
265
|
+
*/
|
|
266
|
+
offSignal(listener) {
|
|
267
|
+
const index = this.signalListeners.indexOf(listener);
|
|
268
|
+
if (index > -1) {
|
|
269
|
+
this.signalListeners.splice(index, 1);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Start listening for shutdown signals (SIGTERM, SIGINT).
|
|
274
|
+
*/
|
|
275
|
+
startListening() {
|
|
276
|
+
process.on("SIGTERM", () => this.handleSignal("SIGTERM"));
|
|
277
|
+
process.on("SIGINT", () => this.handleSignal("SIGINT"));
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Stop listening for shutdown signals.
|
|
281
|
+
*/
|
|
282
|
+
stopListening() {
|
|
283
|
+
process.off("SIGTERM", () => this.handleSignal("SIGTERM"));
|
|
284
|
+
process.off("SIGINT", () => this.handleSignal("SIGINT"));
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Handle a shutdown signal.
|
|
288
|
+
*/
|
|
289
|
+
async handleSignal(signal) {
|
|
290
|
+
if (this.isShuttingDown) {
|
|
291
|
+
console.log(`Already shutting down, ignoring ${signal}`);
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
this.isShuttingDown = true;
|
|
295
|
+
console.log(`\nReceived ${signal}, starting graceful shutdown...`);
|
|
296
|
+
for (const listener of this.signalListeners) {
|
|
297
|
+
try {
|
|
298
|
+
await listener(signal);
|
|
299
|
+
}
|
|
300
|
+
catch (error) {
|
|
301
|
+
console.error("Error during shutdown:", error);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
// Exit with success code
|
|
305
|
+
process.exit(0);
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Check if the application is shutting down.
|
|
309
|
+
*/
|
|
310
|
+
isShuttingDownNow() {
|
|
311
|
+
return this.isShuttingDown;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/modules/lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata Storage
|
|
3
|
+
*
|
|
4
|
+
* Isolated metadata storage and decorators to avoid circular dependencies.
|
|
5
|
+
* This module has no dependencies on other module files.
|
|
6
|
+
*/
|
|
7
|
+
import type { Provider, Token } from "../container";
|
|
8
|
+
type Constructor = new (...args: unknown[]) => unknown;
|
|
9
|
+
export interface ModuleMetadata {
|
|
10
|
+
imports?: Constructor[];
|
|
11
|
+
providers?: Provider[];
|
|
12
|
+
controllers?: Constructor[];
|
|
13
|
+
exports?: Token[];
|
|
14
|
+
}
|
|
15
|
+
export declare function setMetadata(target: Constructor, key: string, value: unknown): void;
|
|
16
|
+
export declare function getMetadata<T>(target: Constructor, key: string): T | undefined;
|
|
17
|
+
export declare function setPrototypeMetadata(target: object, key: string, value: unknown): void;
|
|
18
|
+
export declare function getPrototypeMetadata<T>(target: object, key: string): T | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Mark a class as injectable
|
|
21
|
+
*/
|
|
22
|
+
export declare function Injectable(): ClassDecorator;
|
|
23
|
+
/**
|
|
24
|
+
* Mark a class as a controller with a base path
|
|
25
|
+
*/
|
|
26
|
+
export declare function Controller(path?: string): ClassDecorator;
|
|
27
|
+
/**
|
|
28
|
+
* Define a module with metadata
|
|
29
|
+
*/
|
|
30
|
+
export declare function Module(metadata: ModuleMetadata): ClassDecorator;
|
|
31
|
+
export type { Constructor };
|
|
32
|
+
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/modules/metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAGpD,KAAK,WAAW,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAIvD,MAAM,WAAW,cAAc;IAC9B,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;CAClB;AAOD,wBAAgB,WAAW,CAC1B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACZ,IAAI,CAKN;AAED,wBAAgB,WAAW,CAAC,CAAC,EAC5B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,GACT,CAAC,GAAG,SAAS,CAEf;AAKD,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACZ,IAAI,CAKN;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACT,CAAC,GAAG,SAAS,CAEf;AAID;;GAEG;AACH,wBAAgB,UAAU,IAAI,cAAc,CAK3C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,SAAK,GAAG,cAAc,CAMpD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc,CAK/D;AAGD,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata Storage
|
|
3
|
+
*
|
|
4
|
+
* Isolated metadata storage and decorators to avoid circular dependencies.
|
|
5
|
+
* This module has no dependencies on other module files.
|
|
6
|
+
*/
|
|
7
|
+
// ============= Metadata Storage =============
|
|
8
|
+
// Simple metadata storage without Reflect.metadata
|
|
9
|
+
const metadataStore = new WeakMap();
|
|
10
|
+
export function setMetadata(target, key, value) {
|
|
11
|
+
if (!metadataStore.has(target)) {
|
|
12
|
+
metadataStore.set(target, new Map());
|
|
13
|
+
}
|
|
14
|
+
metadataStore.get(target)?.set(key, value);
|
|
15
|
+
}
|
|
16
|
+
export function getMetadata(target, key) {
|
|
17
|
+
return metadataStore.get(target)?.get(key);
|
|
18
|
+
}
|
|
19
|
+
// Prototype metadata for method decorators
|
|
20
|
+
const prototypeMetadataStore = new WeakMap();
|
|
21
|
+
export function setPrototypeMetadata(target, key, value) {
|
|
22
|
+
if (!prototypeMetadataStore.has(target)) {
|
|
23
|
+
prototypeMetadataStore.set(target, new Map());
|
|
24
|
+
}
|
|
25
|
+
prototypeMetadataStore.get(target)?.set(key, value);
|
|
26
|
+
}
|
|
27
|
+
export function getPrototypeMetadata(target, key) {
|
|
28
|
+
return prototypeMetadataStore.get(target)?.get(key);
|
|
29
|
+
}
|
|
30
|
+
// ============= Decorators =============
|
|
31
|
+
/**
|
|
32
|
+
* Mark a class as injectable
|
|
33
|
+
*/
|
|
34
|
+
export function Injectable() {
|
|
35
|
+
return (target) => {
|
|
36
|
+
setMetadata(target, "injectable", true);
|
|
37
|
+
return target;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Mark a class as a controller with a base path
|
|
42
|
+
*/
|
|
43
|
+
export function Controller(path = "") {
|
|
44
|
+
return (target) => {
|
|
45
|
+
setMetadata(target, "controller", true);
|
|
46
|
+
setMetadata(target, "path", path);
|
|
47
|
+
return target;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Define a module with metadata
|
|
52
|
+
*/
|
|
53
|
+
export function Module(metadata) {
|
|
54
|
+
return (target) => {
|
|
55
|
+
setMetadata(target, "module", metadata);
|
|
56
|
+
return target;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/modules/metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,+CAA+C;AAE/C,mDAAmD;AACnD,MAAM,aAAa,GAAG,IAAI,OAAO,EAAqC,CAAC;AAEvE,MAAM,UAAU,WAAW,CAC1B,MAAmB,EACnB,GAAW,EACX,KAAc;IAEd,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,WAAW,CAC1B,MAAmB,EACnB,GAAW;IAEX,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAkB,CAAC;AAC7D,CAAC;AAED,2CAA2C;AAC3C,MAAM,sBAAsB,GAAG,IAAI,OAAO,EAAgC,CAAC;AAE3E,MAAM,UAAU,oBAAoB,CACnC,MAAc,EACd,GAAW,EACX,KAAc;IAEd,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,sBAAsB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,oBAAoB,CACnC,MAAc,EACd,GAAW;IAEX,OAAO,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAkB,CAAC;AACtE,CAAC;AAED,yCAAyC;AAEzC;;GAEG;AACH,MAAM,UAAU,UAAU;IACzB,OAAO,CAA6B,MAAiB,EAAa,EAAE;QACnE,WAAW,CAAC,MAAgC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAI,GAAG,EAAE;IACnC,OAAO,CAA6B,MAAiB,EAAa,EAAE;QACnE,WAAW,CAAC,MAAgC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QAClE,WAAW,CAAC,MAAgC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,QAAwB;IAC9C,OAAO,CAA6B,MAAiB,EAAa,EAAE;QACnE,WAAW,CAAC,MAAgC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;AACH,CAAC"}
|