@buenojs/bueno 0.8.8 → 0.8.10
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/index.js +15 -12
- package/dist/modules/index.js +2 -2
- package/dist/template/index.js +13 -10
- package/dist/templates/index.js +13 -10
- package/llms.txt +1 -1
- package/package.json +2 -2
- 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/templates/loader.ts +1 -1
- package/src/templates/renderers/simple.ts +13 -10
- package/src/validation/index.ts +20 -21
- package/tsconfig.json +1 -1
- package/dist/cache/index.d.ts +0 -187
- package/dist/cache/index.d.ts.map +0 -1
- package/dist/cli/bin.d.ts +0 -8
- package/dist/cli/bin.d.ts.map +0 -1
- package/dist/cli/commands/add-frontend.d.ts +0 -7
- package/dist/cli/commands/add-frontend.d.ts.map +0 -1
- package/dist/cli/commands/build.d.ts +0 -7
- package/dist/cli/commands/build.d.ts.map +0 -1
- package/dist/cli/commands/dev.d.ts +0 -7
- package/dist/cli/commands/dev.d.ts.map +0 -1
- package/dist/cli/commands/generate.d.ts +0 -7
- package/dist/cli/commands/generate.d.ts.map +0 -1
- package/dist/cli/commands/help.d.ts +0 -7
- package/dist/cli/commands/help.d.ts.map +0 -1
- package/dist/cli/commands/index.d.ts +0 -59
- package/dist/cli/commands/index.d.ts.map +0 -1
- package/dist/cli/commands/migration.d.ts +0 -7
- package/dist/cli/commands/migration.d.ts.map +0 -1
- package/dist/cli/commands/new.d.ts +0 -7
- package/dist/cli/commands/new.d.ts.map +0 -1
- package/dist/cli/commands/start.d.ts +0 -7
- package/dist/cli/commands/start.d.ts.map +0 -1
- package/dist/cli/core/args.d.ts +0 -61
- package/dist/cli/core/args.d.ts.map +0 -1
- package/dist/cli/core/console.d.ts +0 -135
- package/dist/cli/core/console.d.ts.map +0 -1
- package/dist/cli/core/index.d.ts +0 -10
- package/dist/cli/core/index.d.ts.map +0 -1
- package/dist/cli/core/prompt.d.ts +0 -63
- package/dist/cli/core/prompt.d.ts.map +0 -1
- package/dist/cli/core/spinner.d.ts +0 -111
- package/dist/cli/core/spinner.d.ts.map +0 -1
- package/dist/cli/index.d.ts +0 -47
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/templates/database/index.d.ts +0 -24
- package/dist/cli/templates/database/index.d.ts.map +0 -1
- package/dist/cli/templates/database/mysql.d.ts +0 -6
- package/dist/cli/templates/database/mysql.d.ts.map +0 -1
- package/dist/cli/templates/database/none.d.ts +0 -8
- package/dist/cli/templates/database/none.d.ts.map +0 -1
- package/dist/cli/templates/database/postgresql.d.ts +0 -6
- package/dist/cli/templates/database/postgresql.d.ts.map +0 -1
- package/dist/cli/templates/database/sqlite.d.ts +0 -6
- package/dist/cli/templates/database/sqlite.d.ts.map +0 -1
- package/dist/cli/templates/deploy.d.ts +0 -41
- package/dist/cli/templates/deploy.d.ts.map +0 -1
- package/dist/cli/templates/docker.d.ts +0 -30
- package/dist/cli/templates/docker.d.ts.map +0 -1
- package/dist/cli/templates/frontend/index.d.ts +0 -25
- package/dist/cli/templates/frontend/index.d.ts.map +0 -1
- package/dist/cli/templates/frontend/none.d.ts +0 -8
- package/dist/cli/templates/frontend/none.d.ts.map +0 -1
- package/dist/cli/templates/frontend/react.d.ts +0 -6
- package/dist/cli/templates/frontend/react.d.ts.map +0 -1
- package/dist/cli/templates/frontend/solid.d.ts +0 -6
- package/dist/cli/templates/frontend/solid.d.ts.map +0 -1
- package/dist/cli/templates/frontend/svelte.d.ts +0 -6
- package/dist/cli/templates/frontend/svelte.d.ts.map +0 -1
- package/dist/cli/templates/frontend/vue.d.ts +0 -6
- package/dist/cli/templates/frontend/vue.d.ts.map +0 -1
- package/dist/cli/templates/generators/index.d.ts +0 -29
- package/dist/cli/templates/generators/index.d.ts.map +0 -1
- package/dist/cli/templates/generators/types.d.ts +0 -32
- package/dist/cli/templates/generators/types.d.ts.map +0 -1
- package/dist/cli/templates/index.d.ts +0 -12
- package/dist/cli/templates/index.d.ts.map +0 -1
- package/dist/cli/templates/project/api.d.ts +0 -6
- package/dist/cli/templates/project/api.d.ts.map +0 -1
- package/dist/cli/templates/project/default.d.ts +0 -6
- package/dist/cli/templates/project/default.d.ts.map +0 -1
- package/dist/cli/templates/project/fullstack.d.ts +0 -14
- package/dist/cli/templates/project/fullstack.d.ts.map +0 -1
- package/dist/cli/templates/project/index.d.ts +0 -26
- package/dist/cli/templates/project/index.d.ts.map +0 -1
- package/dist/cli/templates/project/minimal.d.ts +0 -6
- package/dist/cli/templates/project/minimal.d.ts.map +0 -1
- package/dist/cli/templates/project/types.d.ts +0 -80
- package/dist/cli/templates/project/types.d.ts.map +0 -1
- package/dist/cli/templates/project/website.d.ts +0 -8
- package/dist/cli/templates/project/website.d.ts.map +0 -1
- package/dist/cli/utils/fs.d.ts +0 -137
- package/dist/cli/utils/fs.d.ts.map +0 -1
- package/dist/cli/utils/index.d.ts +0 -9
- package/dist/cli/utils/index.d.ts.map +0 -1
- package/dist/cli/utils/strings.d.ts +0 -86
- package/dist/cli/utils/strings.d.ts.map +0 -1
- package/dist/cli/utils/version.d.ts +0 -15
- package/dist/cli/utils/version.d.ts.map +0 -1
- package/dist/config/env-validation.d.ts +0 -49
- package/dist/config/env-validation.d.ts.map +0 -1
- package/dist/config/env.d.ts +0 -167
- package/dist/config/env.d.ts.map +0 -1
- package/dist/config/index.d.ts +0 -168
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/loader.d.ts +0 -81
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/merge.d.ts +0 -66
- package/dist/config/merge.d.ts.map +0 -1
- package/dist/config/types.d.ts +0 -322
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/validation.d.ts +0 -100
- package/dist/config/validation.d.ts.map +0 -1
- package/dist/container/forward-ref.d.ts +0 -116
- package/dist/container/forward-ref.d.ts.map +0 -1
- package/dist/container/index.d.ts +0 -95
- package/dist/container/index.d.ts.map +0 -1
- package/dist/context/index.d.ts +0 -143
- package/dist/context/index.d.ts.map +0 -1
- package/dist/database/index.d.ts +0 -219
- package/dist/database/index.d.ts.map +0 -1
- package/dist/database/migrations/index.d.ts +0 -146
- package/dist/database/migrations/index.d.ts.map +0 -1
- package/dist/database/orm/builder.d.ts +0 -122
- package/dist/database/orm/builder.d.ts.map +0 -1
- package/dist/database/orm/casts/index.d.ts +0 -16
- package/dist/database/orm/casts/index.d.ts.map +0 -1
- package/dist/database/orm/casts/types.d.ts +0 -16
- package/dist/database/orm/casts/types.d.ts.map +0 -1
- package/dist/database/orm/compiler.d.ts +0 -90
- package/dist/database/orm/compiler.d.ts.map +0 -1
- package/dist/database/orm/hooks/index.d.ts +0 -53
- package/dist/database/orm/hooks/index.d.ts.map +0 -1
- package/dist/database/orm/index.d.ts +0 -21
- package/dist/database/orm/index.d.ts.map +0 -1
- package/dist/database/orm/model-registry.d.ts +0 -33
- package/dist/database/orm/model-registry.d.ts.map +0 -1
- package/dist/database/orm/model.d.ts +0 -245
- package/dist/database/orm/model.d.ts.map +0 -1
- package/dist/database/orm/relationships/base.d.ts +0 -69
- package/dist/database/orm/relationships/base.d.ts.map +0 -1
- package/dist/database/orm/relationships/belongs-to-many.d.ts +0 -47
- package/dist/database/orm/relationships/belongs-to-many.d.ts.map +0 -1
- package/dist/database/orm/relationships/belongs-to.d.ts +0 -17
- package/dist/database/orm/relationships/belongs-to.d.ts.map +0 -1
- package/dist/database/orm/relationships/has-many.d.ts +0 -14
- package/dist/database/orm/relationships/has-many.d.ts.map +0 -1
- package/dist/database/orm/relationships/has-one.d.ts +0 -14
- package/dist/database/orm/relationships/has-one.d.ts.map +0 -1
- package/dist/database/orm/relationships/index.d.ts +0 -10
- package/dist/database/orm/relationships/index.d.ts.map +0 -1
- package/dist/database/orm/scopes/index.d.ts +0 -36
- package/dist/database/orm/scopes/index.d.ts.map +0 -1
- package/dist/database/schema/index.d.ts +0 -155
- package/dist/database/schema/index.d.ts.map +0 -1
- package/dist/events/__tests__/event-system.test.d.ts +0 -2
- package/dist/events/__tests__/event-system.test.d.ts.map +0 -1
- package/dist/events/config.d.ts +0 -16
- package/dist/events/config.d.ts.map +0 -1
- package/dist/events/example-usage.d.ts +0 -12
- package/dist/events/example-usage.d.ts.map +0 -1
- package/dist/events/index.d.ts +0 -27
- package/dist/events/index.d.ts.map +0 -1
- package/dist/events/manager.d.ts +0 -33
- package/dist/events/manager.d.ts.map +0 -1
- package/dist/events/registry.d.ts +0 -31
- package/dist/events/registry.d.ts.map +0 -1
- package/dist/events/types.d.ts +0 -105
- package/dist/events/types.d.ts.map +0 -1
- package/dist/frontend/api-routes.d.ts +0 -189
- package/dist/frontend/api-routes.d.ts.map +0 -1
- package/dist/frontend/bundler.d.ts +0 -99
- package/dist/frontend/bundler.d.ts.map +0 -1
- package/dist/frontend/console-client.d.ts +0 -11
- package/dist/frontend/console-client.d.ts.map +0 -1
- package/dist/frontend/console-stream.d.ts +0 -138
- package/dist/frontend/console-stream.d.ts.map +0 -1
- package/dist/frontend/dev-server.d.ts +0 -174
- package/dist/frontend/dev-server.d.ts.map +0 -1
- package/dist/frontend/file-router.d.ts +0 -170
- package/dist/frontend/file-router.d.ts.map +0 -1
- package/dist/frontend/frameworks/index.d.ts +0 -41
- package/dist/frontend/frameworks/index.d.ts.map +0 -1
- package/dist/frontend/frameworks/react.d.ts +0 -32
- package/dist/frontend/frameworks/react.d.ts.map +0 -1
- package/dist/frontend/frameworks/solid.d.ts +0 -42
- package/dist/frontend/frameworks/solid.d.ts.map +0 -1
- package/dist/frontend/frameworks/svelte.d.ts +0 -57
- package/dist/frontend/frameworks/svelte.d.ts.map +0 -1
- package/dist/frontend/frameworks/vue.d.ts +0 -36
- package/dist/frontend/frameworks/vue.d.ts.map +0 -1
- package/dist/frontend/hmr-client.d.ts +0 -22
- package/dist/frontend/hmr-client.d.ts.map +0 -1
- package/dist/frontend/hmr.d.ts +0 -185
- package/dist/frontend/hmr.d.ts.map +0 -1
- package/dist/frontend/index.d.ts +0 -34
- package/dist/frontend/index.d.ts.map +0 -1
- package/dist/frontend/islands.d.ts +0 -135
- package/dist/frontend/islands.d.ts.map +0 -1
- package/dist/frontend/isr.d.ts +0 -143
- package/dist/frontend/isr.d.ts.map +0 -1
- package/dist/frontend/layout.d.ts +0 -140
- package/dist/frontend/layout.d.ts.map +0 -1
- package/dist/frontend/ssr/react.d.ts +0 -118
- package/dist/frontend/ssr/react.d.ts.map +0 -1
- package/dist/frontend/ssr/solid.d.ts +0 -141
- package/dist/frontend/ssr/solid.d.ts.map +0 -1
- package/dist/frontend/ssr/svelte.d.ts +0 -158
- package/dist/frontend/ssr/svelte.d.ts.map +0 -1
- package/dist/frontend/ssr/vue.d.ts +0 -161
- package/dist/frontend/ssr/vue.d.ts.map +0 -1
- package/dist/frontend/ssr.d.ts +0 -147
- package/dist/frontend/ssr.d.ts.map +0 -1
- package/dist/frontend/types.d.ts +0 -1902
- package/dist/frontend/types.d.ts.map +0 -1
- package/dist/graphql/built-in-engine.d.ts +0 -36
- package/dist/graphql/built-in-engine.d.ts.map +0 -1
- package/dist/graphql/context-builder.d.ts +0 -44
- package/dist/graphql/context-builder.d.ts.map +0 -1
- package/dist/graphql/decorators.d.ts +0 -162
- package/dist/graphql/decorators.d.ts.map +0 -1
- package/dist/graphql/execution-pipeline.d.ts +0 -67
- package/dist/graphql/execution-pipeline.d.ts.map +0 -1
- package/dist/graphql/graphql-module.d.ts +0 -70
- package/dist/graphql/graphql-module.d.ts.map +0 -1
- package/dist/graphql/index.d.ts +0 -48
- package/dist/graphql/index.d.ts.map +0 -1
- package/dist/graphql/metadata.d.ts +0 -37
- package/dist/graphql/metadata.d.ts.map +0 -1
- package/dist/graphql/schema-builder.d.ts +0 -34
- package/dist/graphql/schema-builder.d.ts.map +0 -1
- package/dist/graphql/subscription-handler.d.ts +0 -47
- package/dist/graphql/subscription-handler.d.ts.map +0 -1
- package/dist/graphql/types.d.ts +0 -252
- package/dist/graphql/types.d.ts.map +0 -1
- package/dist/health/index.d.ts +0 -176
- package/dist/health/index.d.ts.map +0 -1
- package/dist/i18n/engine.d.ts +0 -105
- package/dist/i18n/engine.d.ts.map +0 -1
- package/dist/i18n/index.d.ts +0 -13
- package/dist/i18n/index.d.ts.map +0 -1
- package/dist/i18n/loader.d.ts +0 -79
- package/dist/i18n/loader.d.ts.map +0 -1
- package/dist/i18n/middleware.d.ts +0 -96
- package/dist/i18n/middleware.d.ts.map +0 -1
- package/dist/i18n/negotiator.d.ts +0 -84
- package/dist/i18n/negotiator.d.ts.map +0 -1
- package/dist/i18n/types.d.ts +0 -129
- package/dist/i18n/types.d.ts.map +0 -1
- package/dist/index.d.ts +0 -48
- package/dist/index.d.ts.map +0 -1
- package/dist/jobs/drivers/memory.d.ts +0 -38
- package/dist/jobs/drivers/memory.d.ts.map +0 -1
- package/dist/jobs/drivers/redis.d.ts +0 -34
- package/dist/jobs/drivers/redis.d.ts.map +0 -1
- package/dist/jobs/index.d.ts +0 -12
- package/dist/jobs/index.d.ts.map +0 -1
- package/dist/jobs/queue.d.ts +0 -93
- package/dist/jobs/queue.d.ts.map +0 -1
- package/dist/jobs/types.d.ts +0 -193
- package/dist/jobs/types.d.ts.map +0 -1
- package/dist/jobs/worker.d.ts +0 -91
- package/dist/jobs/worker.d.ts.map +0 -1
- package/dist/lock/index.d.ts +0 -141
- package/dist/lock/index.d.ts.map +0 -1
- package/dist/logger/index.d.ts +0 -156
- package/dist/logger/index.d.ts.map +0 -1
- package/dist/logger/transports/index.d.ts +0 -371
- package/dist/logger/transports/index.d.ts.map +0 -1
- package/dist/metrics/index.d.ts +0 -163
- package/dist/metrics/index.d.ts.map +0 -1
- package/dist/middleware/built-in.d.ts +0 -50
- package/dist/middleware/built-in.d.ts.map +0 -1
- package/dist/middleware/index.d.ts +0 -40
- package/dist/middleware/index.d.ts.map +0 -1
- package/dist/migrations/index.d.ts +0 -10
- package/dist/migrations/index.d.ts.map +0 -1
- package/dist/modules/filters.d.ts +0 -150
- package/dist/modules/filters.d.ts.map +0 -1
- package/dist/modules/guards.d.ts +0 -188
- package/dist/modules/guards.d.ts.map +0 -1
- package/dist/modules/index.d.ts +0 -266
- package/dist/modules/index.d.ts.map +0 -1
- package/dist/modules/interceptors.d.ts +0 -242
- package/dist/modules/interceptors.d.ts.map +0 -1
- package/dist/modules/lazy.d.ts +0 -187
- package/dist/modules/lazy.d.ts.map +0 -1
- package/dist/modules/lifecycle.d.ts +0 -221
- package/dist/modules/lifecycle.d.ts.map +0 -1
- package/dist/modules/metadata.d.ts +0 -32
- package/dist/modules/metadata.d.ts.map +0 -1
- package/dist/modules/pipes.d.ts +0 -287
- package/dist/modules/pipes.d.ts.map +0 -1
- package/dist/notification/channels/base.d.ts +0 -32
- package/dist/notification/channels/base.d.ts.map +0 -1
- package/dist/notification/channels/email.d.ts +0 -37
- package/dist/notification/channels/email.d.ts.map +0 -1
- package/dist/notification/channels/push.d.ts +0 -37
- package/dist/notification/channels/push.d.ts.map +0 -1
- package/dist/notification/channels/sms.d.ts +0 -37
- package/dist/notification/channels/sms.d.ts.map +0 -1
- package/dist/notification/channels/whatsapp.d.ts +0 -37
- package/dist/notification/channels/whatsapp.d.ts.map +0 -1
- package/dist/notification/index.d.ts +0 -15
- package/dist/notification/index.d.ts.map +0 -1
- package/dist/notification/service.d.ts +0 -100
- package/dist/notification/service.d.ts.map +0 -1
- package/dist/notification/types.d.ts +0 -253
- package/dist/notification/types.d.ts.map +0 -1
- package/dist/observability/__tests__/observability.test.d.ts +0 -2
- package/dist/observability/__tests__/observability.test.d.ts.map +0 -1
- package/dist/observability/breadcrumbs.d.ts +0 -48
- package/dist/observability/breadcrumbs.d.ts.map +0 -1
- package/dist/observability/index.d.ts +0 -95
- package/dist/observability/index.d.ts.map +0 -1
- package/dist/observability/interceptor.d.ts +0 -19
- package/dist/observability/interceptor.d.ts.map +0 -1
- package/dist/observability/service.d.ts +0 -101
- package/dist/observability/service.d.ts.map +0 -1
- package/dist/observability/trace.d.ts +0 -21
- package/dist/observability/trace.d.ts.map +0 -1
- package/dist/observability/types.d.ts +0 -172
- package/dist/observability/types.d.ts.map +0 -1
- package/dist/openapi/__tests__/decorators.test.d.ts +0 -2
- package/dist/openapi/__tests__/decorators.test.d.ts.map +0 -1
- package/dist/openapi/__tests__/document-builder.test.d.ts +0 -2
- package/dist/openapi/__tests__/document-builder.test.d.ts.map +0 -1
- package/dist/openapi/__tests__/route-scanner.test.d.ts +0 -2
- package/dist/openapi/__tests__/route-scanner.test.d.ts.map +0 -1
- package/dist/openapi/__tests__/schema-generator.test.d.ts +0 -2
- package/dist/openapi/__tests__/schema-generator.test.d.ts.map +0 -1
- package/dist/openapi/decorators.d.ts +0 -173
- package/dist/openapi/decorators.d.ts.map +0 -1
- package/dist/openapi/document-builder.d.ts +0 -82
- package/dist/openapi/document-builder.d.ts.map +0 -1
- package/dist/openapi/index.d.ts +0 -48
- package/dist/openapi/index.d.ts.map +0 -1
- package/dist/openapi/metadata.d.ts +0 -36
- package/dist/openapi/metadata.d.ts.map +0 -1
- package/dist/openapi/route-scanner.d.ts +0 -34
- package/dist/openapi/route-scanner.d.ts.map +0 -1
- package/dist/openapi/schema-generator.d.ts +0 -53
- package/dist/openapi/schema-generator.d.ts.map +0 -1
- package/dist/openapi/swagger-module.d.ts +0 -57
- package/dist/openapi/swagger-module.d.ts.map +0 -1
- package/dist/openapi/types.d.ts +0 -344
- package/dist/openapi/types.d.ts.map +0 -1
- package/dist/orm/index.d.ts +0 -10
- package/dist/orm/index.d.ts.map +0 -1
- package/dist/router/index.d.ts +0 -73
- package/dist/router/index.d.ts.map +0 -1
- package/dist/router/linear.d.ts +0 -54
- package/dist/router/linear.d.ts.map +0 -1
- package/dist/router/regex.d.ts +0 -49
- package/dist/router/regex.d.ts.map +0 -1
- package/dist/router/tree.d.ts +0 -112
- package/dist/router/tree.d.ts.map +0 -1
- package/dist/rpc/index.d.ts +0 -321
- package/dist/rpc/index.d.ts.map +0 -1
- package/dist/schema/index.d.ts +0 -10
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/security/index.d.ts +0 -126
- package/dist/security/index.d.ts.map +0 -1
- package/dist/ssg/index.d.ts +0 -73
- package/dist/ssg/index.d.ts.map +0 -1
- package/dist/storage/index.d.ts +0 -99
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/telemetry/index.d.ts +0 -376
- package/dist/telemetry/index.d.ts.map +0 -1
- package/dist/template/index.d.ts +0 -7
- package/dist/template/index.d.ts.map +0 -1
- package/dist/templates/engine.d.ts +0 -60
- package/dist/templates/engine.d.ts.map +0 -1
- package/dist/templates/index.d.ts +0 -9
- package/dist/templates/index.d.ts.map +0 -1
- package/dist/templates/loader.d.ts +0 -45
- package/dist/templates/loader.d.ts.map +0 -1
- package/dist/templates/renderers/markdown.d.ts +0 -46
- package/dist/templates/renderers/markdown.d.ts.map +0 -1
- package/dist/templates/renderers/simple.d.ts +0 -35
- package/dist/templates/renderers/simple.d.ts.map +0 -1
- package/dist/templates/types.d.ts +0 -138
- package/dist/templates/types.d.ts.map +0 -1
- package/dist/testing/index.d.ts +0 -539
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -116
- package/dist/types/index.d.ts.map +0 -1
- package/dist/validation/index.d.ts +0 -89
- package/dist/validation/index.d.ts.map +0 -1
- package/dist/validation/schemas.d.ts +0 -243
- package/dist/validation/schemas.d.ts.map +0 -1
- package/dist/websocket/index.d.ts +0 -252
- package/dist/websocket/index.d.ts.map +0 -1
package/dist/frontend/hmr.d.ts
DELETED
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hot Module Replacement (HMR) Implementation
|
|
3
|
-
*
|
|
4
|
-
* Provides live updates without full page refreshes for a better developer experience.
|
|
5
|
-
* Supports React Fast Refresh, Vue Hot Component Replacement, Svelte HMR, and Solid Hot Reloading.
|
|
6
|
-
*
|
|
7
|
-
* @module frontend/hmr
|
|
8
|
-
*/
|
|
9
|
-
import type { FrontendFramework, HMRConfig, HMRUpdate, HMRUpdateError } from "./types.js";
|
|
10
|
-
/**
|
|
11
|
-
* Manages Hot Module Replacement for the development server.
|
|
12
|
-
*
|
|
13
|
-
* Features:
|
|
14
|
-
* - WebSocket server for client communication
|
|
15
|
-
* - File watching with dependency tracking
|
|
16
|
-
* - Framework-specific HMR support (React, Vue, Svelte, Solid)
|
|
17
|
-
* - Debounced file change handling
|
|
18
|
-
* - Error overlay support
|
|
19
|
-
*/
|
|
20
|
-
export declare class HMRManager {
|
|
21
|
-
private config;
|
|
22
|
-
private logger;
|
|
23
|
-
private clients;
|
|
24
|
-
private dependencyGraph;
|
|
25
|
-
private pendingUpdates;
|
|
26
|
-
private debounceTimer;
|
|
27
|
-
private framework;
|
|
28
|
-
private devServerPort;
|
|
29
|
-
private watcher;
|
|
30
|
-
constructor(framework: FrontendFramework, devServerPort: number, config?: Partial<HMRConfig>);
|
|
31
|
-
/**
|
|
32
|
-
* Normalize partial config to full config with defaults
|
|
33
|
-
*/
|
|
34
|
-
private normalizeConfig;
|
|
35
|
-
/**
|
|
36
|
-
* Get the HMR client script for injection
|
|
37
|
-
*/
|
|
38
|
-
getClientScript(): string;
|
|
39
|
-
/**
|
|
40
|
-
* Get the WebSocket URL for HMR
|
|
41
|
-
*/
|
|
42
|
-
getWebSocketUrl(): string;
|
|
43
|
-
/**
|
|
44
|
-
* Get the HMR port
|
|
45
|
-
*/
|
|
46
|
-
getPort(): number;
|
|
47
|
-
/**
|
|
48
|
-
* Check if HMR is enabled
|
|
49
|
-
*/
|
|
50
|
-
isEnabled(): boolean;
|
|
51
|
-
/**
|
|
52
|
-
* Handle WebSocket upgrade request
|
|
53
|
-
*/
|
|
54
|
-
handleUpgrade(request: Request): WebSocket | null;
|
|
55
|
-
/**
|
|
56
|
-
* Handle fetch requests for WebSocket server
|
|
57
|
-
*/
|
|
58
|
-
private handleWebSocketFetch;
|
|
59
|
-
/**
|
|
60
|
-
* Handle WebSocket connection open
|
|
61
|
-
*/
|
|
62
|
-
private handleWebSocketOpen;
|
|
63
|
-
/**
|
|
64
|
-
* Handle WebSocket connection close
|
|
65
|
-
*/
|
|
66
|
-
private handleWebSocketClose;
|
|
67
|
-
/**
|
|
68
|
-
* Handle WebSocket message from client
|
|
69
|
-
*/
|
|
70
|
-
private handleWebSocketMessage;
|
|
71
|
-
/**
|
|
72
|
-
* Send message to a WebSocket client
|
|
73
|
-
*/
|
|
74
|
-
private sendToClient;
|
|
75
|
-
/**
|
|
76
|
-
* Broadcast update to all connected clients
|
|
77
|
-
*/
|
|
78
|
-
broadcastUpdate(update: HMRUpdate): void;
|
|
79
|
-
/**
|
|
80
|
-
* Start file watching
|
|
81
|
-
*/
|
|
82
|
-
startWatching(rootDir: string): void;
|
|
83
|
-
/**
|
|
84
|
-
* Stop file watching
|
|
85
|
-
*/
|
|
86
|
-
stopWatching(): void;
|
|
87
|
-
/**
|
|
88
|
-
* Handle a file change event
|
|
89
|
-
*/
|
|
90
|
-
private handleFileChange;
|
|
91
|
-
/**
|
|
92
|
-
* Check if a file should be ignored
|
|
93
|
-
*/
|
|
94
|
-
private shouldIgnoreFile;
|
|
95
|
-
/**
|
|
96
|
-
* Schedule debounced update processing
|
|
97
|
-
*/
|
|
98
|
-
private scheduleDebouncedUpdate;
|
|
99
|
-
/**
|
|
100
|
-
* Process all pending file updates
|
|
101
|
-
*/
|
|
102
|
-
private processPendingUpdates;
|
|
103
|
-
/**
|
|
104
|
-
* Determine the type of update needed
|
|
105
|
-
*/
|
|
106
|
-
private determineUpdateType;
|
|
107
|
-
/**
|
|
108
|
-
* Handle module accepted from client
|
|
109
|
-
*/
|
|
110
|
-
private handleModuleAccepted;
|
|
111
|
-
/**
|
|
112
|
-
* Register a file in the dependency graph
|
|
113
|
-
*/
|
|
114
|
-
registerFile(filePath: string, imports?: string[]): void;
|
|
115
|
-
/**
|
|
116
|
-
* Get files that depend on a given file
|
|
117
|
-
*/
|
|
118
|
-
getDependents(filePath: string): string[];
|
|
119
|
-
/**
|
|
120
|
-
* Get files that a file imports
|
|
121
|
-
*/
|
|
122
|
-
getImports(filePath: string): string[];
|
|
123
|
-
/**
|
|
124
|
-
* Broadcast an error to all clients
|
|
125
|
-
*/
|
|
126
|
-
broadcastError(error: Error | HMRUpdateError): void;
|
|
127
|
-
/**
|
|
128
|
-
* Generate a unique client ID
|
|
129
|
-
*/
|
|
130
|
-
private generateClientId;
|
|
131
|
-
/**
|
|
132
|
-
* Generate a file ID from a file path
|
|
133
|
-
*/
|
|
134
|
-
private generateFileId;
|
|
135
|
-
/**
|
|
136
|
-
* Get the number of connected clients
|
|
137
|
-
*/
|
|
138
|
-
getClientCount(): number;
|
|
139
|
-
/**
|
|
140
|
-
* Get all connected client IDs
|
|
141
|
-
*/
|
|
142
|
-
getClientIds(): string[];
|
|
143
|
-
/**
|
|
144
|
-
* Disconnect all clients
|
|
145
|
-
*/
|
|
146
|
-
disconnectAll(): void;
|
|
147
|
-
/**
|
|
148
|
-
* Stop the HMR manager
|
|
149
|
-
*/
|
|
150
|
-
stop(): void;
|
|
151
|
-
/**
|
|
152
|
-
* Get framework-specific HMR runtime code
|
|
153
|
-
*/
|
|
154
|
-
getFrameworkRuntime(): string;
|
|
155
|
-
/**
|
|
156
|
-
* React Fast Refresh runtime
|
|
157
|
-
*/
|
|
158
|
-
private getReactRuntime;
|
|
159
|
-
/**
|
|
160
|
-
* Vue HMR runtime
|
|
161
|
-
*/
|
|
162
|
-
private getVueRuntime;
|
|
163
|
-
/**
|
|
164
|
-
* Svelte HMR runtime
|
|
165
|
-
*/
|
|
166
|
-
private getSvelteRuntime;
|
|
167
|
-
/**
|
|
168
|
-
* Solid HMR runtime
|
|
169
|
-
*/
|
|
170
|
-
private getSolidRuntime;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Create an HMR manager
|
|
174
|
-
*/
|
|
175
|
-
export declare function createHMRManager(framework: FrontendFramework, devServerPort: number, config?: Partial<HMRConfig>): HMRManager;
|
|
176
|
-
/**
|
|
177
|
-
* Check if a file is an HMR boundary
|
|
178
|
-
* (a file that can accept hot updates without propagating to parents)
|
|
179
|
-
*/
|
|
180
|
-
export declare function isHMRBoundary(filePath: string, content: string): boolean;
|
|
181
|
-
/**
|
|
182
|
-
* Parse imports from a file's content
|
|
183
|
-
*/
|
|
184
|
-
export declare function parseImports(content: string, filePath: string): string[];
|
|
185
|
-
//# sourceMappingURL=hmr.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../../src/frontend/hmr.ts"],"names":[],"mappings":"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"}
|
package/dist/frontend/index.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Frontend Integration Module
|
|
3
|
-
*
|
|
4
|
-
* Provides development server, framework detection, bundler, and frontend-related
|
|
5
|
-
* capabilities for the Bueno Framework.
|
|
6
|
-
*
|
|
7
|
-
* @module frontend
|
|
8
|
-
*/
|
|
9
|
-
export type { FrontendFramework, FrameworkDetectionMode, DevServerConfig, PartialDevServerConfig, DevServerState, RequestInfo, FileResolution, PackageDependencies, FrameworkDetectionResult, TransformResult, TransformOptions, DevServerMiddleware, DevServerEvent, DevServerEventListener, ErrorResponse, HMRClient, HMRUpdateError, HMRUpdate, HMRConfig, HMRDependencyNode, HMRModuleUpdate, HMRClientMessage, HMRServerMessage, FileChangeEvent, ConsoleMessageType, ConsoleMessage, ConsoleStreamConfig, PartialConsoleStreamConfig, ConsoleStreamClient, ConsoleClientMessage, ConsoleServerMessage, BuildPlugin, SourcemapOption, BuildTarget, OutputFormat, BundlerConfig, PartialBundlerConfig, BuildOutput, BuildError, BuildWarning, BuildResult, FrameworkBuildConfig, BuildManifest, BundleAnalysis, BuildWatchCallback, BundlerState, SSRElement, SSRContext, RenderResult, SSRPage, SSRConfig, PartialSSRConfig, FrameworkSSRRenderer, SSRHydrationData, SSRError, SSRRenderOptions, PreloadLink, } from "./types.js";
|
|
10
|
-
export { DevServer, createDevServer } from "./dev-server.js";
|
|
11
|
-
export { HMRManager, createHMRManager, isHMRBoundary, parseImports, } from "./hmr.js";
|
|
12
|
-
export { HMR_CLIENT_SCRIPT, getHMRClientScript, injectHMRScript, } from "./hmr-client.js";
|
|
13
|
-
export { ConsoleStreamManager, createConsoleStreamManager, injectConsoleScript, } from "./console-stream.js";
|
|
14
|
-
export { CONSOLE_CLIENT_SCRIPT, getConsoleClientScript, } from "./console-client.js";
|
|
15
|
-
export { Bundler, createBundler, build } from "./bundler.js";
|
|
16
|
-
export { getReactBuildConfig, isReactComponent, getReactRefreshPreamble, reactFrameworkMeta, getVueBuildConfig, isVueComponent, isVueJsx, getVueBlockTypes, vueFrameworkMeta, getSvelteBuildConfig, isSvelteComponent, getSveltePreprocessConfig, getSvelteCompilerOptions, svelteFrameworkMeta, getSolidBuildConfig, isSolidComponent, getSolidRefreshPreamble, getSolidTransformOptions, solidFrameworkMeta, getFrameworkConfig, getFrameworkMeta, detectFrameworkFromExtension, getAllSupportedExtensions, isSupportedExtension, } from "./frameworks/index.js";
|
|
17
|
-
export type { FrameworkMeta } from "./frameworks/index.js";
|
|
18
|
-
export { SSRRenderer, createSSRRenderer, createSSRContext, serializeHydrationData, deserializeHydrationData, generateHTML, createPreloadLink, mergeHeadElements, createReactSSRRenderer, createVueSSRRenderer, createSvelteSSRRenderer, createSolidSSRRenderer, } from "./ssr.js";
|
|
19
|
-
export type { ReactSSRRenderer, VueSSRRenderer, SvelteSSRRenderer, SolidSSRRenderer, } from "./ssr.js";
|
|
20
|
-
export { resetHead as resetReactHead, getHeadElements as getReactHeadElements, addHeadElement as addReactHeadElement, title as reactTitle, meta as reactMeta, link as reactLink, script as reactScript, style as reactStyle, ReactHelmet, helmet, ssrElementToString as reactSsrElementToString, } from "./ssr/react.js";
|
|
21
|
-
export { resetHead as resetVueHead, getHeadElements as getVueHeadElements, addHeadElement as addVueHeadElement, VueMeta, vueMeta, ssrElementToString as vueSsrElementToString, useHead as useVueHead, createVueSSRContext, } from "./ssr/vue.js";
|
|
22
|
-
export { resetHead as resetSvelteHead, getHeadElements as getSvelteHeadElements, addHeadElement as addSvelteHeadElement, getHeadString as getSvelteHeadString, SvelteHead, svelteHead, ssrElementToString as svelteSsrElementToString, loadSvelteComponent, createSvelteSSRContext, SveltePageStore, getPageStore, } from "./ssr/svelte.js";
|
|
23
|
-
export { resetHead as resetSolidHead, getHeadElements as getSolidHeadElements, addHeadElement as addSolidHeadElement, SolidMeta, solidMeta, ssrElementToString as solidSsrElementToString, createSolidSSRContext, createRouteData, SolidResource, createSolidResource, NO_HYDRATE, noHydrate, } from "./ssr/solid.js";
|
|
24
|
-
export type { ISRCacheEntry, ISRPageConfig, ISRConfig, PartialISRConfig, ISRRevalidationResult, ISRStats, } from "./types.js";
|
|
25
|
-
export { ISRManager, createISRManager, parseRevalidateHeader, generateCacheControlHeader, shouldRegenerate, } from "./isr.js";
|
|
26
|
-
export type { IslandHydrationStrategy, IslandConfig, IslandDefinition, IslandRegistry, IslandRenderResult, IslandState, IslandHydrationScript, } from "./types.js";
|
|
27
|
-
export { IslandManager, createIslandManager, defineIsland, isIslandElement, getIslandData, getIslandAttributes, createIslandElement, parseIslandsFromHTML, getHydrationPriority, sortIslandsByPriority, } from "./islands.js";
|
|
28
|
-
export type { RouteType, RouteDefinition, DynamicRoute, RouteMatch, RouteHandler, RouteMiddleware, FileRouterConfig, PartialFileRouterConfig, FileRouteOptions, } from "./types.js";
|
|
29
|
-
export { FileRouter, createFileRouter, isDynamicRoute, isCatchAllRoute, getRouteParams, normalizeRoutePath, compareRouteSpecificity, } from "./file-router.js";
|
|
30
|
-
export type { LayoutDefinition, LayoutNode, LayoutTree, LayoutProps, LayoutRenderer, LayoutMiddleware, LayoutConfig, PartialLayoutConfig, LayoutRenderResult, LayoutSegment, } from "./types.js";
|
|
31
|
-
export { LayoutManager, createLayoutManager, isLayoutFile, getLayoutSegmentFromPath, buildLayoutProps, createLayoutSegment, mergeLayoutHead, layoutTreeToString, } from "./layout.js";
|
|
32
|
-
export type { HTTPMethod, APIRouteDefinition, APIRouteHandler, APIResponse, APIMiddleware, APIContext, APIRouteModule, APIRouteConfig, PartialAPIRouteConfig, } from "./types.js";
|
|
33
|
-
export { APIRouteManager, createAPIRouteManager, json, text, html, redirect, error, notFound, unauthorized, forbidden, badRequest, created, noContent, isAPIRouteFile, isMiddlewareFile, getModuleMethods, } from "./api-routes.js";
|
|
34
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/frontend/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Island Architecture Implementation
|
|
3
|
-
*
|
|
4
|
-
* Provides partial hydration capabilities:
|
|
5
|
-
* - Mark components as interactive islands
|
|
6
|
-
* - Framework-agnostic island definitions
|
|
7
|
-
* - Lazy/eager/visible hydration strategies
|
|
8
|
-
* - State serialization for islands
|
|
9
|
-
*/
|
|
10
|
-
import type { FrontendFramework, IslandConfig, IslandDefinition, IslandHydrationStrategy, IslandRenderResult, IslandState, SSRElement } from "./types.js";
|
|
11
|
-
/**
|
|
12
|
-
* Island Manager handles partial hydration of components
|
|
13
|
-
*
|
|
14
|
-
* Features:
|
|
15
|
-
* - Register interactive components as islands
|
|
16
|
-
* - Multiple hydration strategies (lazy, eager, visible, idle)
|
|
17
|
-
* - Framework-agnostic island definitions
|
|
18
|
-
* - State serialization for client hydration
|
|
19
|
-
*/
|
|
20
|
-
export declare class IslandManager {
|
|
21
|
-
private registry;
|
|
22
|
-
private logger;
|
|
23
|
-
private islandCounter;
|
|
24
|
-
private framework;
|
|
25
|
-
constructor(framework: FrontendFramework);
|
|
26
|
-
/**
|
|
27
|
-
* Register an island component
|
|
28
|
-
*/
|
|
29
|
-
register(definition: IslandDefinition): string;
|
|
30
|
-
/**
|
|
31
|
-
* Register multiple islands
|
|
32
|
-
*/
|
|
33
|
-
registerAll(definitions: IslandDefinition[]): string[];
|
|
34
|
-
/**
|
|
35
|
-
* Unregister an island
|
|
36
|
-
*/
|
|
37
|
-
unregister(id: string): boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Get island by ID
|
|
40
|
-
*/
|
|
41
|
-
getIsland(id: string): IslandDefinition | undefined;
|
|
42
|
-
/**
|
|
43
|
-
* Get all registered islands
|
|
44
|
-
*/
|
|
45
|
-
getAllIslands(): IslandDefinition[];
|
|
46
|
-
/**
|
|
47
|
-
* Render an island to HTML
|
|
48
|
-
*/
|
|
49
|
-
renderIsland(componentName: string, props?: Record<string, unknown>, options?: Partial<IslandConfig>): IslandRenderResult;
|
|
50
|
-
/**
|
|
51
|
-
* Render island with SSR content
|
|
52
|
-
*/
|
|
53
|
-
renderIslandSSR(componentName: string, ssrContent: string, props?: Record<string, unknown>, options?: Partial<IslandConfig>): IslandRenderResult;
|
|
54
|
-
/**
|
|
55
|
-
* Find island by component name
|
|
56
|
-
*/
|
|
57
|
-
private findIslandByComponent;
|
|
58
|
-
/**
|
|
59
|
-
* Generate placeholder content
|
|
60
|
-
*/
|
|
61
|
-
private generatePlaceholder;
|
|
62
|
-
/**
|
|
63
|
-
* Escape HTML in JSON string
|
|
64
|
-
*/
|
|
65
|
-
private escapeHtml;
|
|
66
|
-
/**
|
|
67
|
-
* Get hydration script for all islands
|
|
68
|
-
*/
|
|
69
|
-
getHydrationScript(): string;
|
|
70
|
-
/**
|
|
71
|
-
* Get client island script (minimal)
|
|
72
|
-
*/
|
|
73
|
-
getClientScript(): string;
|
|
74
|
-
/**
|
|
75
|
-
* Get island count
|
|
76
|
-
*/
|
|
77
|
-
getIslandCount(): number;
|
|
78
|
-
/**
|
|
79
|
-
* Clear all islands
|
|
80
|
-
*/
|
|
81
|
-
clear(): void;
|
|
82
|
-
/**
|
|
83
|
-
* Get framework
|
|
84
|
-
*/
|
|
85
|
-
getFramework(): FrontendFramework;
|
|
86
|
-
/**
|
|
87
|
-
* Set framework
|
|
88
|
-
*/
|
|
89
|
-
setFramework(framework: FrontendFramework): void;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Create an island manager
|
|
93
|
-
*/
|
|
94
|
-
export declare function createIslandManager(framework: FrontendFramework): IslandManager;
|
|
95
|
-
/**
|
|
96
|
-
* Create an island definition
|
|
97
|
-
*/
|
|
98
|
-
export declare function defineIsland(component: string, entry: string, options?: Partial<IslandDefinition>): IslandDefinition;
|
|
99
|
-
/**
|
|
100
|
-
* Element-like interface for DOM elements (for type checking without DOM lib)
|
|
101
|
-
*/
|
|
102
|
-
interface ElementLike {
|
|
103
|
-
hasAttribute(name: string): boolean;
|
|
104
|
-
getAttribute(name: string): string | null;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Check if an element is an island
|
|
108
|
-
*/
|
|
109
|
-
export declare function isIslandElement(element: ElementLike): boolean;
|
|
110
|
-
/**
|
|
111
|
-
* Get island data from element
|
|
112
|
-
*/
|
|
113
|
-
export declare function getIslandData(element: ElementLike): IslandState | null;
|
|
114
|
-
/**
|
|
115
|
-
* Generate island wrapper attributes
|
|
116
|
-
*/
|
|
117
|
-
export declare function getIslandAttributes(id: string, component: string, props: Record<string, unknown>, strategy?: IslandHydrationStrategy): Record<string, string>;
|
|
118
|
-
/**
|
|
119
|
-
* Create island SSR element
|
|
120
|
-
*/
|
|
121
|
-
export declare function createIslandElement(id: string, component: string, props: Record<string, unknown>, strategy?: IslandHydrationStrategy, children?: SSRElement[]): SSRElement;
|
|
122
|
-
/**
|
|
123
|
-
* Parse islands from HTML string
|
|
124
|
-
*/
|
|
125
|
-
export declare function parseIslandsFromHTML(html: string): IslandState[];
|
|
126
|
-
/**
|
|
127
|
-
* Get hydration priority
|
|
128
|
-
*/
|
|
129
|
-
export declare function getHydrationPriority(strategy: IslandHydrationStrategy): number;
|
|
130
|
-
/**
|
|
131
|
-
* Sort islands by hydration priority
|
|
132
|
-
*/
|
|
133
|
-
export declare function sortIslandsByPriority(islands: IslandDefinition[]): IslandDefinition[];
|
|
134
|
-
export {};
|
|
135
|
-
//# sourceMappingURL=islands.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"islands.d.ts","sourceRoot":"","sources":["../../src/frontend/islands.ts"],"names":[],"mappings":"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"}
|
package/dist/frontend/isr.d.ts
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Incremental Static Regeneration (ISR) Implementation
|
|
3
|
-
*
|
|
4
|
-
* Provides ISR capabilities that extend SSG with:
|
|
5
|
-
* - Time-based revalidation
|
|
6
|
-
* - On-demand revalidation
|
|
7
|
-
* - Stale-while-revalidate strategy
|
|
8
|
-
* - Distributed cache support via Bun.redis
|
|
9
|
-
*/
|
|
10
|
-
import { type SSRRenderer } from "./ssr.js";
|
|
11
|
-
import type { ISRCacheEntry, ISRConfig, ISRPageConfig, ISRRevalidationResult, ISRStats, PartialISRConfig } from "./types.js";
|
|
12
|
-
import type { RenderResult } from "./types.js";
|
|
13
|
-
/**
|
|
14
|
-
* ISR Manager handles incremental static regeneration
|
|
15
|
-
*
|
|
16
|
-
* Features:
|
|
17
|
-
* - Time-based revalidation with configurable TTL
|
|
18
|
-
* - Stale-while-revalidate for instant responses
|
|
19
|
-
* - On-demand revalidation via API or webhook
|
|
20
|
-
* - Distributed cache support via Redis
|
|
21
|
-
*/
|
|
22
|
-
export declare class ISRManager {
|
|
23
|
-
private config;
|
|
24
|
-
private logger;
|
|
25
|
-
private cache;
|
|
26
|
-
private pendingRegenerations;
|
|
27
|
-
private ssrRenderer;
|
|
28
|
-
private stats;
|
|
29
|
-
constructor(config: PartialISRConfig);
|
|
30
|
-
/**
|
|
31
|
-
* Normalize partial config to full config with defaults
|
|
32
|
-
*/
|
|
33
|
-
private normalizeConfig;
|
|
34
|
-
/**
|
|
35
|
-
* Set the SSR renderer
|
|
36
|
-
*/
|
|
37
|
-
setSSRRenderer(renderer: SSRRenderer): void;
|
|
38
|
-
/**
|
|
39
|
-
* Get a page from cache or render it
|
|
40
|
-
*/
|
|
41
|
-
getPage(url: string, request: Request, pageConfig?: ISRPageConfig): Promise<RenderResult>;
|
|
42
|
-
/**
|
|
43
|
-
* Render a page using SSR
|
|
44
|
-
*/
|
|
45
|
-
private renderPage;
|
|
46
|
-
/**
|
|
47
|
-
* Trigger background revalidation
|
|
48
|
-
*/
|
|
49
|
-
private triggerBackgroundRevalidation;
|
|
50
|
-
/**
|
|
51
|
-
* Revalidate a page
|
|
52
|
-
*/
|
|
53
|
-
revalidatePage(url: string, request: Request, pageConfig?: ISRPageConfig): Promise<ISRRevalidationResult>;
|
|
54
|
-
/**
|
|
55
|
-
* Invalidate a specific page
|
|
56
|
-
*/
|
|
57
|
-
invalidatePage(url: string): Promise<boolean>;
|
|
58
|
-
/**
|
|
59
|
-
* Invalidate multiple pages by pattern
|
|
60
|
-
*/
|
|
61
|
-
invalidatePattern(pattern: string | RegExp): Promise<number>;
|
|
62
|
-
/**
|
|
63
|
-
* Invalidate all pages
|
|
64
|
-
*/
|
|
65
|
-
invalidateAll(): Promise<void>;
|
|
66
|
-
/**
|
|
67
|
-
* Get cache entry
|
|
68
|
-
*/
|
|
69
|
-
private getCacheEntry;
|
|
70
|
-
/**
|
|
71
|
-
* Set cache entry
|
|
72
|
-
*/
|
|
73
|
-
private setCacheEntry;
|
|
74
|
-
/**
|
|
75
|
-
* Evict oldest entries when cache is full
|
|
76
|
-
*/
|
|
77
|
-
private evictOldestEntries;
|
|
78
|
-
/**
|
|
79
|
-
* Generate cache key from URL
|
|
80
|
-
*/
|
|
81
|
-
private getCacheKey;
|
|
82
|
-
/**
|
|
83
|
-
* Get ISR statistics
|
|
84
|
-
*/
|
|
85
|
-
getStats(): ISRStats;
|
|
86
|
-
/**
|
|
87
|
-
* Get all cached URLs
|
|
88
|
-
*/
|
|
89
|
-
getCachedUrls(): string[];
|
|
90
|
-
/**
|
|
91
|
-
* Check if a page is cached
|
|
92
|
-
*/
|
|
93
|
-
isCached(url: string): boolean;
|
|
94
|
-
/**
|
|
95
|
-
* Get cache entry info
|
|
96
|
-
*/
|
|
97
|
-
getCacheInfo(url: string): Promise<{
|
|
98
|
-
cached: boolean;
|
|
99
|
-
timestamp?: number;
|
|
100
|
-
age?: number;
|
|
101
|
-
revalidate?: number;
|
|
102
|
-
tags?: string[];
|
|
103
|
-
} | null>;
|
|
104
|
-
/**
|
|
105
|
-
* Revalidate pages by tag
|
|
106
|
-
*/
|
|
107
|
-
revalidateTag(tag: string): Promise<number>;
|
|
108
|
-
/**
|
|
109
|
-
* Prune expired entries
|
|
110
|
-
*/
|
|
111
|
-
pruneExpired(): number;
|
|
112
|
-
/**
|
|
113
|
-
* Get configuration
|
|
114
|
-
*/
|
|
115
|
-
getConfig(): ISRConfig;
|
|
116
|
-
/**
|
|
117
|
-
* Check if ISR is enabled
|
|
118
|
-
*/
|
|
119
|
-
isEnabled(): boolean;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Create an ISR manager
|
|
123
|
-
*/
|
|
124
|
-
export declare function createISRManager(config: PartialISRConfig): ISRManager;
|
|
125
|
-
/**
|
|
126
|
-
* Parse revalidation header
|
|
127
|
-
* Supports formats like:
|
|
128
|
-
* - "60" (seconds)
|
|
129
|
-
* - "60, stale-while-revalidate=30"
|
|
130
|
-
*/
|
|
131
|
-
export declare function parseRevalidateHeader(header: string): {
|
|
132
|
-
revalidate: number;
|
|
133
|
-
staleWhileRevalidate: number;
|
|
134
|
-
};
|
|
135
|
-
/**
|
|
136
|
-
* Generate Cache-Control header for ISR
|
|
137
|
-
*/
|
|
138
|
-
export declare function generateCacheControlHeader(revalidate: number, staleWhileRevalidate: number): string;
|
|
139
|
-
/**
|
|
140
|
-
* Check if a page should be regenerated
|
|
141
|
-
*/
|
|
142
|
-
export declare function shouldRegenerate(entry: ISRCacheEntry, revalidate: number, staleWhileRevalidate: number): boolean;
|
|
143
|
-
//# sourceMappingURL=isr.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isr.d.ts","sourceRoot":"","sources":["../../src/frontend/isr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Layout Nesting Implementation
|
|
3
|
-
*
|
|
4
|
-
* Provides Next.js-style layout nesting:
|
|
5
|
-
* - _layout.tsx convention for nested layouts
|
|
6
|
-
* - Layout inheritance down directory tree
|
|
7
|
-
* - Layout state preservation on navigation
|
|
8
|
-
* - Per-segment layouts
|
|
9
|
-
*/
|
|
10
|
-
import type { LayoutConfig, LayoutDefinition, LayoutNode, LayoutProps, LayoutRenderResult, LayoutSegment, PartialLayoutConfig } from "./types.js";
|
|
11
|
-
import type { SSRContext, SSRElement } from "./types.js";
|
|
12
|
-
/**
|
|
13
|
-
* Layout Manager handles nested layout resolution and rendering
|
|
14
|
-
*
|
|
15
|
-
* Features:
|
|
16
|
-
* - _layout.tsx convention
|
|
17
|
-
* - Layout inheritance down directory tree
|
|
18
|
-
* - Layout state preservation
|
|
19
|
-
* - Per-segment layouts
|
|
20
|
-
*/
|
|
21
|
-
export declare class LayoutManager {
|
|
22
|
-
private config;
|
|
23
|
-
private logger;
|
|
24
|
-
private layouts;
|
|
25
|
-
private layoutTree;
|
|
26
|
-
constructor(config?: PartialLayoutConfig);
|
|
27
|
-
/**
|
|
28
|
-
* Normalize partial config to full config with defaults
|
|
29
|
-
*/
|
|
30
|
-
private normalizeConfig;
|
|
31
|
-
/**
|
|
32
|
-
* Initialize the layout manager by scanning for layout files
|
|
33
|
-
*/
|
|
34
|
-
init(): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Scan for layout files in the pages directory
|
|
37
|
-
*/
|
|
38
|
-
private scanLayoutFiles;
|
|
39
|
-
/**
|
|
40
|
-
* Process a single layout file
|
|
41
|
-
*/
|
|
42
|
-
private processLayoutFile;
|
|
43
|
-
/**
|
|
44
|
-
* Get layout segment from file path
|
|
45
|
-
*/
|
|
46
|
-
private getLayoutSegment;
|
|
47
|
-
/**
|
|
48
|
-
* Calculate depth of layout segment
|
|
49
|
-
*/
|
|
50
|
-
private calculateDepth;
|
|
51
|
-
/**
|
|
52
|
-
* Generate unique layout ID
|
|
53
|
-
*/
|
|
54
|
-
private generateLayoutId;
|
|
55
|
-
/**
|
|
56
|
-
* Build the layout tree from collected layouts
|
|
57
|
-
*/
|
|
58
|
-
private buildLayoutTree;
|
|
59
|
-
/**
|
|
60
|
-
* Build a layout tree node
|
|
61
|
-
*/
|
|
62
|
-
private buildTreeNode;
|
|
63
|
-
/**
|
|
64
|
-
* Check if a segment is a direct child of another
|
|
65
|
-
*/
|
|
66
|
-
private isDirectChild;
|
|
67
|
-
/**
|
|
68
|
-
* Get layout chain for a route
|
|
69
|
-
*/
|
|
70
|
-
getLayoutChain(routePath: string): LayoutDefinition[];
|
|
71
|
-
/**
|
|
72
|
-
* Get route segments from path
|
|
73
|
-
*/
|
|
74
|
-
private getRouteSegments;
|
|
75
|
-
/**
|
|
76
|
-
* Load layout module
|
|
77
|
-
*/
|
|
78
|
-
private loadLayoutModule;
|
|
79
|
-
/**
|
|
80
|
-
* Render layouts with nested content
|
|
81
|
-
*/
|
|
82
|
-
renderLayouts(routePath: string, content: string, context: SSRContext): Promise<LayoutRenderResult>;
|
|
83
|
-
/**
|
|
84
|
-
* Get layout for a segment
|
|
85
|
-
*/
|
|
86
|
-
getLayout(segment: string): LayoutDefinition | undefined;
|
|
87
|
-
/**
|
|
88
|
-
* Get all layouts
|
|
89
|
-
*/
|
|
90
|
-
getAllLayouts(): LayoutDefinition[];
|
|
91
|
-
/**
|
|
92
|
-
* Get layout tree
|
|
93
|
-
*/
|
|
94
|
-
getLayoutTree(): LayoutNode | null;
|
|
95
|
-
/**
|
|
96
|
-
* Check if a route has a layout
|
|
97
|
-
*/
|
|
98
|
-
hasLayout(routePath: string): boolean;
|
|
99
|
-
/**
|
|
100
|
-
* Get layout depth for a route
|
|
101
|
-
*/
|
|
102
|
-
getLayoutDepth(routePath: string): number;
|
|
103
|
-
/**
|
|
104
|
-
* Reload layouts (for hot reload)
|
|
105
|
-
*/
|
|
106
|
-
reload(): Promise<void>;
|
|
107
|
-
/**
|
|
108
|
-
* Get configuration
|
|
109
|
-
*/
|
|
110
|
-
getConfig(): LayoutConfig;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Create a layout manager
|
|
114
|
-
*/
|
|
115
|
-
export declare function createLayoutManager(config?: PartialLayoutConfig): LayoutManager;
|
|
116
|
-
/**
|
|
117
|
-
* Check if a file is a layout file
|
|
118
|
-
*/
|
|
119
|
-
export declare function isLayoutFile(filename: string): boolean;
|
|
120
|
-
/**
|
|
121
|
-
* Get layout segment from file path
|
|
122
|
-
*/
|
|
123
|
-
export declare function getLayoutSegmentFromPath(filePath: string): string;
|
|
124
|
-
/**
|
|
125
|
-
* Build layout props for a page
|
|
126
|
-
*/
|
|
127
|
-
export declare function buildLayoutProps(children: string, context: SSRContext): LayoutProps;
|
|
128
|
-
/**
|
|
129
|
-
* Create a layout segment
|
|
130
|
-
*/
|
|
131
|
-
export declare function createLayoutSegment(path: string, params?: Record<string, string>): LayoutSegment;
|
|
132
|
-
/**
|
|
133
|
-
* Merge layout head elements
|
|
134
|
-
*/
|
|
135
|
-
export declare function mergeLayoutHead(...heads: SSRElement[][]): SSRElement[];
|
|
136
|
-
/**
|
|
137
|
-
* Render layout tree to string (for debugging)
|
|
138
|
-
*/
|
|
139
|
-
export declare function layoutTreeToString(node: LayoutNode, indent?: number): string;
|
|
140
|
-
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/frontend/layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EACX,YAAY,EACZ,gBAAgB,EAEhB,UAAU,EACV,WAAW,EACX,kBAAkB,EAElB,aAAa,EAEb,mBAAmB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAgB,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AASvE;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,UAAU,CAA2B;gBAEjC,MAAM,GAAE,mBAAwB;IAS5C;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B;;OAEG;YACW,eAAe;IAe7B;;OAEG;YACW,iBAAiB;IAkB/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAkBrD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;YACW,gBAAgB;IAY9B;;OAEG;IACG,aAAa,CAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,GACjB,OAAO,CAAC,kBAAkB,CAAC;IAqD9B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIxD;;OAEG;IACH,aAAa,IAAI,gBAAgB,EAAE;IAInC;;OAEG;IACH,aAAa,IAAI,UAAU,GAAG,IAAI;IAIlC;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAarC;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIzC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B;;OAEG;IACH,SAAS,IAAI,YAAY;CAGzB;AAID;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,MAAM,GAAE,mBAAwB,GAC9B,aAAa,CAEf;AAID;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CASjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,GACjB,WAAW,CAOb;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACjC,aAAa,CAMf;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,GAAG,UAAU,EAAE,CAetE;AAsBD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,SAAI,GAAG,MAAM,CASvE"}
|