@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/events/types.d.ts
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
export interface Event {
|
|
2
|
-
id: string;
|
|
3
|
-
name: string;
|
|
4
|
-
timestamp: Date;
|
|
5
|
-
data: Record<string, any>;
|
|
6
|
-
context?: EventContext;
|
|
7
|
-
}
|
|
8
|
-
export interface EventContext {
|
|
9
|
-
userId?: string;
|
|
10
|
-
sessionId?: string;
|
|
11
|
-
requestId?: string;
|
|
12
|
-
ipAddress?: string;
|
|
13
|
-
userAgent?: string;
|
|
14
|
-
}
|
|
15
|
-
export interface EventListener {
|
|
16
|
-
id: string;
|
|
17
|
-
name: string;
|
|
18
|
-
handler: EventHandler;
|
|
19
|
-
filter?: EventFilter;
|
|
20
|
-
priority?: number;
|
|
21
|
-
once?: boolean;
|
|
22
|
-
}
|
|
23
|
-
export type EventHandler = (event: Event) => Promise<void> | void;
|
|
24
|
-
export type EventFilter = (event: Event) => boolean;
|
|
25
|
-
export interface EventCategory {
|
|
26
|
-
name: string;
|
|
27
|
-
description: string;
|
|
28
|
-
events: string[];
|
|
29
|
-
}
|
|
30
|
-
export interface EventManagerConfig {
|
|
31
|
-
maxListeners?: number;
|
|
32
|
-
eventCategories?: EventCategory[];
|
|
33
|
-
middleware?: EventMiddleware[];
|
|
34
|
-
}
|
|
35
|
-
export type EventMiddleware = (event: Event, next: () => Promise<void>) => Promise<void>;
|
|
36
|
-
export interface EventRegistry {
|
|
37
|
-
registerEvent(event: Event): void;
|
|
38
|
-
getEvent(id: string): Event | undefined;
|
|
39
|
-
getEventsByCategory(category: string): Event[];
|
|
40
|
-
getAllEvents(): Event[];
|
|
41
|
-
}
|
|
42
|
-
export interface EventManager {
|
|
43
|
-
emit(event: Event): Promise<void>;
|
|
44
|
-
emitSync(event: Event): void;
|
|
45
|
-
on(event: string, listener: EventHandler): () => void;
|
|
46
|
-
once(event: string, listener: EventHandler): () => void;
|
|
47
|
-
off(event: string, listener: EventHandler): void;
|
|
48
|
-
addListener(listener: EventListener): void;
|
|
49
|
-
removeListener(listener: EventListener): void;
|
|
50
|
-
addFilter(filter: EventFilter): void;
|
|
51
|
-
removeFilter(filter: EventFilter): void;
|
|
52
|
-
addMiddleware(middleware: EventMiddleware): void;
|
|
53
|
-
removeMiddleware(middleware: EventMiddleware): void;
|
|
54
|
-
getListeners(event: string): EventListener[];
|
|
55
|
-
hasListeners(event: string): boolean;
|
|
56
|
-
clearListeners(event?: string): void;
|
|
57
|
-
getEventCategories(): EventCategory[];
|
|
58
|
-
registerEventCategory(category: EventCategory): void;
|
|
59
|
-
}
|
|
60
|
-
export interface EventError extends Error {
|
|
61
|
-
event: Event;
|
|
62
|
-
originalError?: Error;
|
|
63
|
-
}
|
|
64
|
-
export interface EventStats {
|
|
65
|
-
totalEvents: number;
|
|
66
|
-
eventsPerSecond: number;
|
|
67
|
-
listenersCount: number;
|
|
68
|
-
errorsCount: number;
|
|
69
|
-
averageProcessingTime: number;
|
|
70
|
-
}
|
|
71
|
-
export interface EventOptions {
|
|
72
|
-
context?: EventContext;
|
|
73
|
-
timestamp?: Date;
|
|
74
|
-
id?: string;
|
|
75
|
-
}
|
|
76
|
-
export interface EventListenerOptions {
|
|
77
|
-
priority?: number;
|
|
78
|
-
once?: boolean;
|
|
79
|
-
filter?: EventFilter;
|
|
80
|
-
}
|
|
81
|
-
export interface EventManagerOptions {
|
|
82
|
-
maxListeners?: number;
|
|
83
|
-
eventCategories?: EventCategory[];
|
|
84
|
-
middleware?: EventMiddleware[];
|
|
85
|
-
errorHandling?: "throw" | "log" | "ignore";
|
|
86
|
-
}
|
|
87
|
-
export interface EventRegistryOptions {
|
|
88
|
-
maxEvents?: number;
|
|
89
|
-
retentionPeriod?: number;
|
|
90
|
-
cleanupInterval?: number;
|
|
91
|
-
}
|
|
92
|
-
export interface EventManagerState {
|
|
93
|
-
listeners: Map<string, EventListener[]>;
|
|
94
|
-
filters: EventFilter[];
|
|
95
|
-
middleware: EventMiddleware[];
|
|
96
|
-
categories: EventCategory[];
|
|
97
|
-
stats: EventStats;
|
|
98
|
-
config: EventManagerConfig;
|
|
99
|
-
}
|
|
100
|
-
export interface EventRegistryState {
|
|
101
|
-
events: Map<string, Event>;
|
|
102
|
-
categories: Map<string, EventCategory>;
|
|
103
|
-
config: EventRegistryOptions;
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* API Routes Implementation
|
|
3
|
-
*
|
|
4
|
-
* Provides Next.js-style API routes:
|
|
5
|
-
* - pages/api/ directory for API endpoints
|
|
6
|
-
* - HTTP method handlers (GET, POST, PUT, PATCH, DELETE, etc.)
|
|
7
|
-
* - Request context with params, query, body
|
|
8
|
-
* - Middleware support via _middleware.ts
|
|
9
|
-
* - Type-safe response helpers
|
|
10
|
-
*/
|
|
11
|
-
import type { APIRouteConfig, APIRouteDefinition, APIRouteModule, HTTPMethod, PartialAPIRouteConfig } from "./types.js";
|
|
12
|
-
/**
|
|
13
|
-
* API Route Manager handles API endpoint registration and routing
|
|
14
|
-
*
|
|
15
|
-
* Features:
|
|
16
|
-
* - pages/api/ directory scanning
|
|
17
|
-
* - HTTP method handlers
|
|
18
|
-
* - Request context with params, query, body
|
|
19
|
-
* - Middleware support
|
|
20
|
-
* - Type-safe response helpers
|
|
21
|
-
*/
|
|
22
|
-
export declare class APIRouteManager {
|
|
23
|
-
private config;
|
|
24
|
-
private logger;
|
|
25
|
-
private routes;
|
|
26
|
-
private middlewares;
|
|
27
|
-
private modules;
|
|
28
|
-
constructor(config?: PartialAPIRouteConfig);
|
|
29
|
-
/**
|
|
30
|
-
* Normalize partial config to full config with defaults
|
|
31
|
-
*/
|
|
32
|
-
private normalizeConfig;
|
|
33
|
-
/**
|
|
34
|
-
* Initialize the API route manager by scanning for API files
|
|
35
|
-
*/
|
|
36
|
-
init(): Promise<void>;
|
|
37
|
-
/**
|
|
38
|
-
* Scan the API directory for route files
|
|
39
|
-
*/
|
|
40
|
-
private scanAPIDirectory;
|
|
41
|
-
/**
|
|
42
|
-
* Process a single API file
|
|
43
|
-
*/
|
|
44
|
-
private processAPIFile;
|
|
45
|
-
/**
|
|
46
|
-
* Load middlewares from _middleware.ts files
|
|
47
|
-
*/
|
|
48
|
-
private loadMiddlewares;
|
|
49
|
-
/**
|
|
50
|
-
* Get middleware segment from file path
|
|
51
|
-
*/
|
|
52
|
-
private getMiddlewareSegment;
|
|
53
|
-
/**
|
|
54
|
-
* Convert file path to API route path
|
|
55
|
-
*/
|
|
56
|
-
private filePathToRoute;
|
|
57
|
-
/**
|
|
58
|
-
* Parse route parameters from path
|
|
59
|
-
*/
|
|
60
|
-
private parseRouteParams;
|
|
61
|
-
/**
|
|
62
|
-
* Convert route path to regex
|
|
63
|
-
*/
|
|
64
|
-
private routeToRegex;
|
|
65
|
-
/**
|
|
66
|
-
* Generate unique route ID
|
|
67
|
-
*/
|
|
68
|
-
private generateRouteId;
|
|
69
|
-
/**
|
|
70
|
-
* Load API module
|
|
71
|
-
*/
|
|
72
|
-
private loadModule;
|
|
73
|
-
/**
|
|
74
|
-
* Match a request to an API route
|
|
75
|
-
*/
|
|
76
|
-
match(method: string, pathname: string): {
|
|
77
|
-
route: APIRouteDefinition;
|
|
78
|
-
params: Record<string, string>;
|
|
79
|
-
} | null;
|
|
80
|
-
/**
|
|
81
|
-
* Handle incoming API request
|
|
82
|
-
*/
|
|
83
|
-
handle(request: Request): Promise<Response>;
|
|
84
|
-
/**
|
|
85
|
-
* Check if a route exists (any method)
|
|
86
|
-
*/
|
|
87
|
-
private routeExists;
|
|
88
|
-
/**
|
|
89
|
-
* Create API context from request
|
|
90
|
-
*/
|
|
91
|
-
private createContext;
|
|
92
|
-
/**
|
|
93
|
-
* Parse cookies from header
|
|
94
|
-
*/
|
|
95
|
-
private parseCookies;
|
|
96
|
-
/**
|
|
97
|
-
* Get middlewares for a path
|
|
98
|
-
*/
|
|
99
|
-
private getMiddlewaresForPath;
|
|
100
|
-
/**
|
|
101
|
-
* Run request through middlewares and handler
|
|
102
|
-
*/
|
|
103
|
-
private runWithMiddleware;
|
|
104
|
-
/**
|
|
105
|
-
* Normalize response to Response object
|
|
106
|
-
*/
|
|
107
|
-
private normalizeResponse;
|
|
108
|
-
/**
|
|
109
|
-
* Create JSON response
|
|
110
|
-
*/
|
|
111
|
-
private jsonResponse;
|
|
112
|
-
/**
|
|
113
|
-
* Get all routes
|
|
114
|
-
*/
|
|
115
|
-
getRoutes(): APIRouteDefinition[];
|
|
116
|
-
/**
|
|
117
|
-
* Get route by path
|
|
118
|
-
*/
|
|
119
|
-
getRoute(path: string): APIRouteDefinition | undefined;
|
|
120
|
-
/**
|
|
121
|
-
* Reload routes (for hot reload)
|
|
122
|
-
*/
|
|
123
|
-
reload(): Promise<void>;
|
|
124
|
-
/**
|
|
125
|
-
* Get configuration
|
|
126
|
-
*/
|
|
127
|
-
getConfig(): APIRouteConfig;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Create an API route manager
|
|
131
|
-
*/
|
|
132
|
-
export declare function createAPIRouteManager(config?: PartialAPIRouteConfig): APIRouteManager;
|
|
133
|
-
/**
|
|
134
|
-
* Create a JSON response
|
|
135
|
-
*/
|
|
136
|
-
export declare function json(data: unknown, status?: number, headers?: Record<string, string>): Response;
|
|
137
|
-
/**
|
|
138
|
-
* Create a text response
|
|
139
|
-
*/
|
|
140
|
-
export declare function text(data: string, status?: number, headers?: Record<string, string>): Response;
|
|
141
|
-
/**
|
|
142
|
-
* Create an HTML response
|
|
143
|
-
*/
|
|
144
|
-
export declare function html(data: string, status?: number, headers?: Record<string, string>): Response;
|
|
145
|
-
/**
|
|
146
|
-
* Create a redirect response
|
|
147
|
-
*/
|
|
148
|
-
export declare function redirect(url: string, status?: number): Response;
|
|
149
|
-
/**
|
|
150
|
-
* Create an error response
|
|
151
|
-
*/
|
|
152
|
-
export declare function error(message: string, status?: number): Response;
|
|
153
|
-
/**
|
|
154
|
-
* Create a 404 Not Found response
|
|
155
|
-
*/
|
|
156
|
-
export declare function notFound(message?: string): Response;
|
|
157
|
-
/**
|
|
158
|
-
* Create a 401 Unauthorized response
|
|
159
|
-
*/
|
|
160
|
-
export declare function unauthorized(message?: string): Response;
|
|
161
|
-
/**
|
|
162
|
-
* Create a 403 Forbidden response
|
|
163
|
-
*/
|
|
164
|
-
export declare function forbidden(message?: string): Response;
|
|
165
|
-
/**
|
|
166
|
-
* Create a 400 Bad Request response
|
|
167
|
-
*/
|
|
168
|
-
export declare function badRequest(message?: string): Response;
|
|
169
|
-
/**
|
|
170
|
-
* Create a 201 Created response
|
|
171
|
-
*/
|
|
172
|
-
export declare function created(data: unknown): Response;
|
|
173
|
-
/**
|
|
174
|
-
* Create a 204 No Content response
|
|
175
|
-
*/
|
|
176
|
-
export declare function noContent(): Response;
|
|
177
|
-
/**
|
|
178
|
-
* Check if a file is an API route file
|
|
179
|
-
*/
|
|
180
|
-
export declare function isAPIRouteFile(filename: string): boolean;
|
|
181
|
-
/**
|
|
182
|
-
* Check if a file is a middleware file
|
|
183
|
-
*/
|
|
184
|
-
export declare function isMiddlewareFile(filename: string): boolean;
|
|
185
|
-
/**
|
|
186
|
-
* Get HTTP methods from module
|
|
187
|
-
*/
|
|
188
|
-
export declare function getModuleMethods(module: APIRouteModule): HTTPMethod[];
|
|
189
|
-
//# sourceMappingURL=api-routes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-routes.d.ts","sourceRoot":"","sources":["../../src/frontend/api-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Production Bundler Implementation
|
|
3
|
-
*
|
|
4
|
-
* Provides zero-config bundling using Bun's native Bun.build() API.
|
|
5
|
-
* Supports React, Vue, Svelte, and Solid frameworks with automatic detection.
|
|
6
|
-
*
|
|
7
|
-
* Features:
|
|
8
|
-
* - Auto framework detection from package.json
|
|
9
|
-
* - Code splitting by route
|
|
10
|
-
* - CSS extraction and optimization
|
|
11
|
-
* - Asset optimization
|
|
12
|
-
* - Source map generation
|
|
13
|
-
* - Build manifest for SSR integration
|
|
14
|
-
*/
|
|
15
|
-
import type { BuildResult, BuildWatchCallback, BundleAnalysis, BundlerConfig, BundlerState, FrameworkBuildConfig, FrontendFramework, PartialBundlerConfig } from "./types.js";
|
|
16
|
-
export declare class Bundler {
|
|
17
|
-
private config;
|
|
18
|
-
private state;
|
|
19
|
-
private logger;
|
|
20
|
-
private watcher;
|
|
21
|
-
constructor(config: PartialBundlerConfig);
|
|
22
|
-
/**
|
|
23
|
-
* Normalize partial config to full config with defaults
|
|
24
|
-
*/
|
|
25
|
-
private normalizeConfig;
|
|
26
|
-
/**
|
|
27
|
-
* Get current bundler state
|
|
28
|
-
*/
|
|
29
|
-
getState(): BundlerState;
|
|
30
|
-
/**
|
|
31
|
-
* Get bundler configuration
|
|
32
|
-
*/
|
|
33
|
-
getConfig(): BundlerConfig;
|
|
34
|
-
/**
|
|
35
|
-
* Get detected framework
|
|
36
|
-
*/
|
|
37
|
-
getFramework(): FrontendFramework;
|
|
38
|
-
/**
|
|
39
|
-
* Get framework-specific build configuration
|
|
40
|
-
*/
|
|
41
|
-
getFrameworkConfig(framework: FrontendFramework): FrameworkBuildConfig;
|
|
42
|
-
/**
|
|
43
|
-
* Build for production
|
|
44
|
-
*/
|
|
45
|
-
build(): Promise<BuildResult>;
|
|
46
|
-
/**
|
|
47
|
-
* Watch mode for development
|
|
48
|
-
*/
|
|
49
|
-
watch(callback: BuildWatchCallback): void;
|
|
50
|
-
/**
|
|
51
|
-
* Stop watch mode
|
|
52
|
-
*/
|
|
53
|
-
stopWatch(): void;
|
|
54
|
-
/**
|
|
55
|
-
* Analyze bundle size
|
|
56
|
-
*/
|
|
57
|
-
analyze(): Promise<BundleAnalysis>;
|
|
58
|
-
/**
|
|
59
|
-
* Collect environment variables with the configured prefix
|
|
60
|
-
*/
|
|
61
|
-
private collectEnvVars;
|
|
62
|
-
/**
|
|
63
|
-
* Parse build error from Bun build log
|
|
64
|
-
*/
|
|
65
|
-
private parseBuildError;
|
|
66
|
-
/**
|
|
67
|
-
* Parse build warning from Bun build log
|
|
68
|
-
*/
|
|
69
|
-
private parseBuildWarning;
|
|
70
|
-
/**
|
|
71
|
-
* Process build outputs from Bun.build result
|
|
72
|
-
*/
|
|
73
|
-
private processBuildOutputs;
|
|
74
|
-
/**
|
|
75
|
-
* Get output file type
|
|
76
|
-
*/
|
|
77
|
-
private getOutputType;
|
|
78
|
-
/**
|
|
79
|
-
* Extract content hash from filename
|
|
80
|
-
*/
|
|
81
|
-
private extractHash;
|
|
82
|
-
/**
|
|
83
|
-
* Generate build manifest for SSR integration
|
|
84
|
-
*/
|
|
85
|
-
private generateManifest;
|
|
86
|
-
/**
|
|
87
|
-
* Check if a file change is relevant to the build
|
|
88
|
-
*/
|
|
89
|
-
private isRelevantFile;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Create a bundler instance
|
|
93
|
-
*/
|
|
94
|
-
export declare function createBundler(config: PartialBundlerConfig): Bundler;
|
|
95
|
-
/**
|
|
96
|
-
* Quick build function for simple use cases
|
|
97
|
-
*/
|
|
98
|
-
export declare function build(entryPoints: string | string[], options?: Partial<Omit<PartialBundlerConfig, "entryPoints">>): Promise<BuildResult>;
|
|
99
|
-
//# sourceMappingURL=bundler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../../src/frontend/bundler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,KAAK,EAIX,WAAW,EAEX,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,oBAAoB,EAEpB,iBAAiB,EAEjB,oBAAoB,EACpB,MAAM,YAAY,CAAC;AA6EpB,qBAAa,OAAO;IACnB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAA0B;gBAE7B,MAAM,EAAE,oBAAoB;IAsCxC;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;OAEG;IACH,QAAQ,IAAI,YAAY;IAIxB;;OAEG;IACH,SAAS,IAAI,aAAa;IAI1B;;OAEG;IACH,YAAY,IAAI,iBAAiB;IAIjC;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,oBAAoB;IAItE;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IA8InC;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAuCzC;;OAEG;IACH,SAAS,IAAI,IAAI;IASjB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAuExC;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;YACW,gBAAgB;IA8D9B;;OAEG;IACH,OAAO,CAAC,cAAc;CAmBtB;AAID;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAEnE;AAID;;GAEG;AACH,wBAAsB,KAAK,CAC1B,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC,GAC1D,OAAO,CAAC,WAAW,CAAC,CAMtB"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Client-side Console Interception Script
|
|
3
|
-
*
|
|
4
|
-
* This script is injected into the browser to capture console.* calls
|
|
5
|
-
* and send them to the server via WebSocket for terminal output.
|
|
6
|
-
*
|
|
7
|
-
* @module frontend/console-client
|
|
8
|
-
*/
|
|
9
|
-
export declare const CONSOLE_CLIENT_SCRIPT = "\n(function() {\n\t'use strict';\n\n\t// Configuration\n\tconst WS_PORT = typeof CONSOLE_PORT !== 'undefined' ? CONSOLE_PORT : 3002;\n\tconst WS_URL = 'ws://localhost:' + WS_PORT + '/_console';\n\tconst MAX_ARGS_LENGTH = 10; // Maximum number of args to send\n\tconst MAX_STRING_LENGTH = 10000; // Maximum string length before truncation\n\tconst MAX_OBJECT_DEPTH = 5; // Maximum depth for object serialization\n\tconst RECONNECT_DELAY = 1000; // Delay before reconnecting (ms)\n\tconst MAX_RECONNECT_ATTEMPTS = 10; // Maximum reconnection attempts\n\n\t// State\n\tlet ws = null;\n\tlet clientId = null;\n\tlet reconnectAttempts = 0;\n\tlet isConnected = false;\n\tlet messageQueue = [];\n\tlet originalConsole = {};\n\n\t// Console methods to intercept\n\tconst CONSOLE_METHODS = ['log', 'info', 'warn', 'error', 'debug', 'trace', 'table'];\n\n\t/**\n\t * Serialize a value for transmission\n\t * Handles circular references and truncates large values\n\t */\n\tfunction serializeValue(value, depth, seen) {\n\t\tdepth = depth || 0;\n\t\tseen = seen || new WeakSet();\n\n\t\t// Handle depth limit\n\t\tif (depth > MAX_OBJECT_DEPTH) {\n\t\t\treturn { __type: 'truncated', reason: 'max-depth' };\n\t\t}\n\n\t\t// Handle null and undefined\n\t\tif (value === null) return null;\n\t\tif (value === undefined) return { __type: 'undefined' };\n\n\t\t// Handle primitives\n\t\tif (typeof value === 'string') {\n\t\t\tif (value.length > MAX_STRING_LENGTH) {\n\t\t\t\treturn value.substring(0, MAX_STRING_LENGTH) + '... [truncated]';\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tif (typeof value === 'number') {\n\t\t\tif (Number.isNaN(value)) return { __type: 'NaN' };\n\t\t\tif (!Number.isFinite(value)) return { __type: 'Infinity', negative: value < 0 };\n\t\t\treturn value;\n\t\t}\n\t\tif (typeof value === 'boolean') return value;\n\t\tif (typeof value === 'symbol') return { __type: 'symbol', value: value.toString() };\n\t\tif (typeof value === 'function') return { __type: 'function', name: value.name || 'anonymous' };\n\t\tif (typeof value === 'bigint') return { __type: 'bigint', value: value.toString() };\n\n\t\t// Handle circular references\n\t\tif (typeof value === 'object') {\n\t\t\tif (seen.has(value)) {\n\t\t\t\treturn { __type: 'circular' };\n\t\t\t}\n\t\t\tseen.add(value);\n\t\t}\n\n\t\t// Handle Error objects\n\t\tif (value instanceof Error) {\n\t\t\treturn {\n\t\t\t\t__type: 'Error',\n\t\t\t\tname: value.name,\n\t\t\t\tmessage: value.message,\n\t\t\t\tstack: value.stack\n\t\t\t};\n\t\t}\n\n\t\t// Handle Date objects\n\t\tif (value instanceof Date) {\n\t\t\treturn { __type: 'Date', value: value.toISOString() };\n\t\t}\n\n\t\t// Handle RegExp\n\t\tif (value instanceof RegExp) {\n\t\t\treturn { __type: 'RegExp', value: value.toString() };\n\t\t}\n\n\t\t// Handle Map\n\t\tif (value instanceof Map) {\n\t\t\tconst entries = [];\n\t\t\tlet count = 0;\n\t\t\tfor (const [k, v] of value) {\n\t\t\t\tif (count++ >= 20) break; // Limit entries\n\t\t\t\tentries.push([serializeValue(k, depth + 1, seen), serializeValue(v, depth + 1, seen)]);\n\t\t\t}\n\t\t\treturn { __type: 'Map', entries: entries, size: value.size };\n\t\t}\n\n\t\t// Handle Set\n\t\tif (value instanceof Set) {\n\t\t\tconst values = [];\n\t\t\tlet count = 0;\n\t\t\tfor (const v of value) {\n\t\t\t\tif (count++ >= 20) break; // Limit values\n\t\t\t\tvalues.push(serializeValue(v, depth + 1, seen));\n\t\t\t}\n\t\t\treturn { __type: 'Set', values: values, size: value.size };\n\t\t}\n\n\t\t// Handle Array\n\t\tif (Array.isArray(value)) {\n\t\t\tconst arr = [];\n\t\t\tconst len = Math.min(value.length, 100); // Limit array length\n\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\tarr.push(serializeValue(value[i], depth + 1, seen));\n\t\t\t}\n\t\t\tif (value.length > len) {\n\t\t\t\tarr.push({ __type: 'truncated', count: value.length - len });\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\n\t\t// Handle ArrayBuffer / TypedArray\n\t\tif (value instanceof ArrayBuffer) {\n\t\t\treturn { __type: 'ArrayBuffer', byteLength: value.byteLength };\n\t\t}\n\t\tif (ArrayBuffer.isView(value)) {\n\t\t\treturn { \n\t\t\t\t__type: 'TypedArray', \n\t\t\t\tconstructor: value.constructor.name,\n\t\t\t\tlength: value.length,\n\t\t\t\tbyteLength: value.byteLength\n\t\t\t};\n\t\t}\n\n\t\t// Handle DOM elements (simplified)\n\t\tif (typeof Element !== 'undefined' && value instanceof Element) {\n\t\t\treturn {\n\t\t\t\t__type: 'Element',\n\t\t\t\ttagName: value.tagName,\n\t\t\t\tid: value.id,\n\t\t\t\tclassName: value.className\n\t\t\t};\n\t\t}\n\n\t\t// Handle plain objects\n\t\ttry {\n\t\t\tconst obj = {};\n\t\t\tconst keys = Object.keys(value).slice(0, 50); // Limit keys\n\t\t\tfor (const key of keys) {\n\t\t\t\tobj[key] = serializeValue(value[key], depth + 1, seen);\n\t\t\t}\n\t\t\tconst symbolKeys = Object.getOwnPropertySymbols(value).slice(0, 10);\n\t\t\tfor (const sym of symbolKeys) {\n\t\t\t\tobj['Symbol(' + sym.toString() + ')'] = serializeValue(value[sym], depth + 1, seen);\n\t\t\t}\n\t\t\treturn obj;\n\t\t} catch (e) {\n\t\t\treturn { __type: 'unserializable', error: String(e) };\n\t\t}\n\t}\n\n\t/**\n\t * Parse stack trace to extract file, line, column\n\t */\n\tfunction parseStackTrace(stack) {\n\t\tif (!stack) return null;\n\n\t\t// Get the first non-console line from the stack\n\t\tconst lines = stack.split('\\n');\n\t\t\n\t\tfor (const line of lines) {\n\t\t\t// Skip internal console-stream lines\n\t\t\tif (line.includes('/_console') || line.includes('console-client')) continue;\n\t\t\t\n\t\t\t// Match various stack trace formats\n\t\t\t// Chrome: \" at functionName (file:line:col)\"\n\t\t\t// Firefox: \"functionName@file:line:col\"\n\t\t\t// Safari: \"functionName@file:line:col\"\n\t\t\t\n\t\t\tconst chromeMatch = line.match(/at\\s+(?:(.+?)\\s+\\()?(.+?):(\\d+):(\\d+)\\)?/);\n\t\t\tif (chromeMatch) {\n\t\t\t\treturn {\n\t\t\t\t\tfile: chromeMatch[2],\n\t\t\t\t\tline: parseInt(chromeMatch[3], 10),\n\t\t\t\t\tcolumn: parseInt(chromeMatch[4], 10)\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst firefoxMatch = line.match(/(?:([^@]+)@)?(.+?):(\\d+):(\\d+)/);\n\t\t\tif (firefoxMatch) {\n\t\t\t\treturn {\n\t\t\t\t\tfile: firefoxMatch[2],\n\t\t\t\t\tline: parseInt(firefoxMatch[3], 10),\n\t\t\t\t\tcolumn: parseInt(firefoxMatch[4], 10)\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Get caller location from stack trace\n\t */\n\tfunction getCallerLocation() {\n\t\ttry {\n\t\t\tthrow new Error();\n\t\t} catch (e) {\n\t\t\treturn parseStackTrace(e.stack);\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Send a console message to the server\n\t */\n\tfunction sendConsoleMessage(type, args) {\n\t\tconst location = getCallerLocation();\n\t\t\n\t\tconst message = {\n\t\t\ttype: 'console',\n\t\t\tconsoleType: type,\n\t\t\targs: Array.from(args).slice(0, MAX_ARGS_LENGTH).map(function(arg) {\n\t\t\t\treturn serializeValue(arg, 0, new WeakSet());\n\t\t\t}),\n\t\t\ttimestamp: Date.now(),\n\t\t\turl: window.location.href\n\t\t};\n\n\t\t// Add location info\n\t\tif (location) {\n\t\t\tmessage.file = location.file;\n\t\t\tmessage.line = location.line;\n\t\t\tmessage.column = location.column;\n\t\t}\n\n\t\t// Add stack trace for errors\n\t\tif (type === 'error' && args[0] instanceof Error) {\n\t\t\tmessage.stack = args[0].stack;\n\t\t}\n\t\tif (type === 'trace') {\n\t\t\ttry {\n\t\t\t\tmessage.stack = new Error().stack;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// Send or queue the message\n\t\tif (isConnected && ws && ws.readyState === WebSocket.OPEN) {\n\t\t\tws.send(JSON.stringify(message));\n\t\t} else {\n\t\t\tmessageQueue.push(message);\n\t\t\t// Limit queue size\n\t\t\tif (messageQueue.length > 100) {\n\t\t\t\tmessageQueue.shift();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Intercept console methods\n\t */\n\tfunction interceptConsole() {\n\t\tCONSOLE_METHODS.forEach(function(method) {\n\t\t\toriginalConsole[method] = console[method];\n\t\t\t\n\t\t\tconsole[method] = function() {\n\t\t\t\t// Call original method first\n\t\t\t\ttry {\n\t\t\t\t\toriginalConsole[method].apply(console, arguments);\n\t\t\t\t} catch (e) {}\n\n\t\t\t\t// Send to server\n\t\t\t\ttry {\n\t\t\t\t\tsendConsoleMessage(method, arguments);\n\t\t\t\t} catch (e) {}\n\t\t\t};\n\t\t});\n\t}\n\n\t/**\n\t * Restore original console methods\n\t */\n\tfunction restoreConsole() {\n\t\tCONSOLE_METHODS.forEach(function(method) {\n\t\t\tif (originalConsole[method]) {\n\t\t\t\tconsole[method] = originalConsole[method];\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Process queued messages\n\t */\n\tfunction processQueue() {\n\t\twhile (messageQueue.length > 0 && ws && ws.readyState === WebSocket.OPEN) {\n\t\t\tconst message = messageQueue.shift();\n\t\t\tws.send(JSON.stringify(message));\n\t\t}\n\t}\n\n\t/**\n\t * Connect to WebSocket server\n\t */\n\tfunction connect() {\n\t\tif (ws && (ws.readyState === WebSocket.CONNECTING || ws.readyState === WebSocket.OPEN)) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tws = new WebSocket(WS_URL);\n\n\t\t\tws.onopen = function() {\n\t\t\t\tisConnected = true;\n\t\t\t\treconnectAttempts = 0;\n\t\t\t\toriginalConsole.log && originalConsole.log('[Console Stream] Connected to server');\n\t\t\t\tprocessQueue();\n\t\t\t};\n\n\t\t\tws.onclose = function() {\n\t\t\t\tisConnected = false;\n\t\t\t\tws = null;\n\n\t\t\t\t// Attempt to reconnect\n\t\t\t\tif (reconnectAttempts < MAX_RECONNECT_ATTEMPTS) {\n\t\t\t\t\treconnectAttempts++;\n\t\t\t\t\tsetTimeout(connect, RECONNECT_DELAY * reconnectAttempts);\n\t\t\t\t} else {\n\t\t\t\t\toriginalConsole.warn && originalConsole.warn('[Console Stream] Max reconnection attempts reached');\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tws.onerror = function(error) {\n\t\t\t\toriginalConsole.error && originalConsole.error('[Console Stream] WebSocket error', error);\n\t\t\t};\n\n\t\t\tws.onmessage = function(event) {\n\t\t\t\ttry {\n\t\t\t\t\tconst data = JSON.parse(event.data);\n\t\t\t\t\tif (data.type === 'connected') {\n\t\t\t\t\t\tclientId = data.clientId;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t};\n\t\t} catch (e) {\n\t\t\toriginalConsole.error && originalConsole.error('[Console Stream] Failed to connect', e);\n\t\t}\n\t}\n\n\t/**\n\t * Initialize console streaming\n\t */\n\tfunction init() {\n\t\t// Don't initialize in iframes unless specifically enabled\n\t\tif (window !== window.top && !window.__CONSOLE_STREAM_ENABLED__) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Don't initialize in service workers\n\t\tif (typeof ServiceWorkerGlobalScope !== 'undefined' && self instanceof ServiceWorkerGlobalScope) {\n\t\t\treturn;\n\t\t}\n\n\t\tinterceptConsole();\n\t\tconnect();\n\n\t\t// Handle page unload\n\t\twindow.addEventListener('beforeunload', function() {\n\t\t\tif (ws) {\n\t\t\t\tws.close();\n\t\t\t}\n\t\t});\n\n\t\t// Handle visibility change for reconnection\n\t\tdocument.addEventListener('visibilitychange', function() {\n\t\t\tif (document.visibilityState === 'visible' && (!ws || ws.readyState !== WebSocket.OPEN)) {\n\t\t\t\tconnect();\n\t\t\t}\n\t\t});\n\t}\n\n\t// Start initialization\n\tif (document.readyState === 'loading') {\n\t\tdocument.addEventListener('DOMContentLoaded', init);\n\t} else {\n\t\tinit();\n\t}\n\n\t// Expose for debugging\n\twindow.__CONSOLE_STREAM__ = {\n\t\tconnect: connect,\n\t\tdisconnect: function() {\n\t\t\tif (ws) ws.close();\n\t\t},\n\t\trestore: restoreConsole,\n\t\tgetClientId: function() { return clientId; },\n\t\tisConnected: function() { return isConnected; }\n\t};\n})();\n";
|
|
10
|
-
export declare function getConsoleClientScript(port: number): string;
|
|
11
|
-
//# sourceMappingURL=console-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"console-client.d.ts","sourceRoot":"","sources":["../../src/frontend/console-client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,eAAO,MAAM,qBAAqB,gpWA8YjC,CAAC;AAGF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK3D"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Browser Console Streaming Implementation
|
|
3
|
-
*
|
|
4
|
-
* Captures console.* calls from the browser and streams them to the terminal,
|
|
5
|
-
* providing a unified debugging experience.
|
|
6
|
-
*
|
|
7
|
-
* @module frontend/console-stream
|
|
8
|
-
*/
|
|
9
|
-
import type { PartialConsoleStreamConfig } from "./types.js";
|
|
10
|
-
/**
|
|
11
|
-
* Manages browser console streaming to the terminal.
|
|
12
|
-
*
|
|
13
|
-
* Features:
|
|
14
|
-
* - WebSocket server for receiving console messages from browser
|
|
15
|
-
* - Color-coded terminal output
|
|
16
|
-
* - File:line clickable links for VSCode
|
|
17
|
-
* - Object/array pretty printing
|
|
18
|
-
* - Stack traces for errors
|
|
19
|
-
* - Source map support for original file references
|
|
20
|
-
*/
|
|
21
|
-
export declare class ConsoleStreamManager {
|
|
22
|
-
private config;
|
|
23
|
-
private logger;
|
|
24
|
-
private clients;
|
|
25
|
-
private devServerPort;
|
|
26
|
-
private port;
|
|
27
|
-
private server;
|
|
28
|
-
constructor(devServerPort: number, config?: PartialConsoleStreamConfig);
|
|
29
|
-
/**
|
|
30
|
-
* Normalize partial config to full config with defaults
|
|
31
|
-
*/
|
|
32
|
-
private normalizeConfig;
|
|
33
|
-
/**
|
|
34
|
-
* Get the console client script for injection
|
|
35
|
-
*/
|
|
36
|
-
getClientScript(): string;
|
|
37
|
-
/**
|
|
38
|
-
* Get the WebSocket URL for console streaming
|
|
39
|
-
*/
|
|
40
|
-
getWebSocketUrl(): string;
|
|
41
|
-
/**
|
|
42
|
-
* Get the console stream port
|
|
43
|
-
*/
|
|
44
|
-
getPort(): number;
|
|
45
|
-
/**
|
|
46
|
-
* Check if console streaming is enabled
|
|
47
|
-
*/
|
|
48
|
-
isEnabled(): boolean;
|
|
49
|
-
/**
|
|
50
|
-
* Start the console stream WebSocket server
|
|
51
|
-
*/
|
|
52
|
-
start(): void;
|
|
53
|
-
/**
|
|
54
|
-
* Stop the console stream server
|
|
55
|
-
*/
|
|
56
|
-
stop(): void;
|
|
57
|
-
/**
|
|
58
|
-
* Handle fetch requests for WebSocket server
|
|
59
|
-
*/
|
|
60
|
-
private handleFetch;
|
|
61
|
-
/**
|
|
62
|
-
* Handle WebSocket connection open
|
|
63
|
-
*/
|
|
64
|
-
private handleOpen;
|
|
65
|
-
/**
|
|
66
|
-
* Handle WebSocket connection close
|
|
67
|
-
*/
|
|
68
|
-
private handleClose;
|
|
69
|
-
/**
|
|
70
|
-
* Handle WebSocket message from client
|
|
71
|
-
*/
|
|
72
|
-
private handleMessage;
|
|
73
|
-
/**
|
|
74
|
-
* Send message to a WebSocket client
|
|
75
|
-
*/
|
|
76
|
-
private sendToClient;
|
|
77
|
-
/**
|
|
78
|
-
* Process and display a console message
|
|
79
|
-
*/
|
|
80
|
-
private processConsoleMessage;
|
|
81
|
-
/**
|
|
82
|
-
* Format a console message for terminal output
|
|
83
|
-
*/
|
|
84
|
-
private formatMessage;
|
|
85
|
-
/**
|
|
86
|
-
* Format timestamp for display
|
|
87
|
-
*/
|
|
88
|
-
private formatTimestamp;
|
|
89
|
-
/**
|
|
90
|
-
* Format console arguments for display
|
|
91
|
-
*/
|
|
92
|
-
private formatArgs;
|
|
93
|
-
/**
|
|
94
|
-
* Format a single value for display
|
|
95
|
-
*/
|
|
96
|
-
private formatValue;
|
|
97
|
-
/**
|
|
98
|
-
* Format console.table output
|
|
99
|
-
*/
|
|
100
|
-
private formatTable;
|
|
101
|
-
/**
|
|
102
|
-
* Format file link for VSCode clickable links
|
|
103
|
-
*/
|
|
104
|
-
private formatFileLink;
|
|
105
|
-
/**
|
|
106
|
-
* Format stack trace for display
|
|
107
|
-
*/
|
|
108
|
-
private formatStackTrace;
|
|
109
|
-
/**
|
|
110
|
-
* Output formatted message to terminal
|
|
111
|
-
*/
|
|
112
|
-
private output;
|
|
113
|
-
/**
|
|
114
|
-
* Generate a unique client ID
|
|
115
|
-
*/
|
|
116
|
-
private generateClientId;
|
|
117
|
-
/**
|
|
118
|
-
* Get the number of connected clients
|
|
119
|
-
*/
|
|
120
|
-
getClientCount(): number;
|
|
121
|
-
/**
|
|
122
|
-
* Get all connected client IDs
|
|
123
|
-
*/
|
|
124
|
-
getClientIds(): string[];
|
|
125
|
-
/**
|
|
126
|
-
* Disconnect all clients
|
|
127
|
-
*/
|
|
128
|
-
disconnectAll(): void;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Create a console stream manager
|
|
132
|
-
*/
|
|
133
|
-
export declare function createConsoleStreamManager(devServerPort: number, config?: PartialConsoleStreamConfig): ConsoleStreamManager;
|
|
134
|
-
/**
|
|
135
|
-
* Inject console client script into HTML
|
|
136
|
-
*/
|
|
137
|
-
export declare function injectConsoleScript(html: string, port: number): string;
|
|
138
|
-
//# sourceMappingURL=console-stream.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"console-stream.d.ts","sourceRoot":"","sources":["../../src/frontend/console-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAOX,0BAA0B,EAC1B,MAAM,YAAY,CAAC;AAkCpB;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAA6C;gBAE/C,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,0BAA0B;IAWtE;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,KAAK,IAAI,IAAI;IAuBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAgBZ;;OAEG;IACH,OAAO,CAAC,WAAW;IAmBnB;;OAEG;IACH,OAAO,CAAC,UAAU;IAmBlB;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAsBrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;OAEG;IACH,OAAO,CAAC,aAAa;IA4CrB;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,UAAU;IAalB;;OAEG;IACH,OAAO,CAAC,WAAW;IAyFnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsDnB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,OAAO,CAAC,MAAM;IAad;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,aAAa,IAAI,IAAI;CAUrB;AAID;;GAEG;AACH,wBAAgB,0BAA0B,CACzC,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,0BAA0B,GACjC,oBAAoB,CAEtB;AAID;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAuBtE"}
|