exisjs 0.6.1 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -3
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +2 -8
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +33 -44
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/exports.d.ts.map +1 -1
- package/dist/cli/commands/exports.js +5 -32
- package/dist/cli/commands/exports.js.map +1 -1
- package/dist/cli/commands/generate.d.ts +2 -13
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +27 -60
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +4 -4
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +2 -6
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/index.js +11 -23
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/routes.d.ts.map +1 -1
- package/dist/cli/routes.js +20 -8
- package/dist/cli/routes.js.map +1 -1
- package/dist/config/config.d.ts +2 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +7 -5
- package/dist/config/config.js.map +1 -1
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +3 -2
- package/dist/config/env.js.map +1 -1
- package/dist/config/types.d.ts +7 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/decorators/constants.d.ts +9 -2
- package/dist/decorators/constants.d.ts.map +1 -1
- package/dist/decorators/constants.js +3 -2
- package/dist/decorators/constants.js.map +1 -1
- package/dist/decorators/core/metadata.d.ts +31 -0
- package/dist/decorators/core/metadata.d.ts.map +1 -1
- package/dist/decorators/core/metadata.js +110 -1
- package/dist/decorators/core/metadata.js.map +1 -1
- package/dist/decorators/core.d.ts +19 -4
- package/dist/decorators/core.d.ts.map +1 -1
- package/dist/decorators/core.js +29 -4
- package/dist/decorators/core.js.map +1 -1
- package/dist/decorators/middleware.d.ts +17 -17
- package/dist/decorators/middleware.d.ts.map +1 -1
- package/dist/decorators/middleware.js +111 -208
- package/dist/decorators/middleware.js.map +1 -1
- package/dist/decorators/params.d.ts +54 -12
- package/dist/decorators/params.d.ts.map +1 -1
- package/dist/decorators/params.js +40 -20
- package/dist/decorators/params.js.map +1 -1
- package/dist/decorators/routing.d.ts +0 -2
- package/dist/decorators/routing.d.ts.map +1 -1
- package/dist/decorators/routing.js +3 -4
- package/dist/decorators/routing.js.map +1 -1
- package/dist/di/container.d.ts +5 -1
- package/dist/di/container.d.ts.map +1 -1
- package/dist/di/container.js +56 -8
- package/dist/di/container.js.map +1 -1
- package/dist/di/decorators.d.ts +30 -0
- package/dist/di/decorators.d.ts.map +1 -0
- package/dist/di/decorators.js +59 -0
- package/dist/di/decorators.js.map +1 -0
- package/dist/di/index.d.ts +1 -0
- package/dist/di/index.d.ts.map +1 -1
- package/dist/di/index.js +4 -1
- package/dist/di/index.js.map +1 -1
- package/dist/docs/ARCHITECTURE.md +46 -285
- package/dist/docs/BENCHMARKS.md +5 -5
- package/dist/docs/README.md +8 -11
- package/dist/docs/content/boundaries.mdx +151 -0
- package/dist/docs/content/cli/commands.mdx +66 -104
- package/dist/docs/content/cli/overview.mdx +37 -47
- package/dist/docs/content/cli/usage.mdx +29 -15
- package/dist/docs/content/decorators.mdx +142 -81
- package/dist/docs/content/installation.mdx +20 -1
- package/dist/docs/content/middleware.mdx +65 -291
- package/dist/docs/content/modules.mdx +22 -1
- package/dist/docs/content/providers.mdx +33 -1
- package/dist/docs/content/security.mdx +44 -246
- package/dist/docs/content/structure.mdx +227 -100
- package/dist/docs/content/validation.mdx +0 -17
- package/dist/docs/reference/decorators.mdx +34 -216
- package/dist/docs/reference/di.mdx +35 -11
- package/dist/docs/reference/logger.mdx +100 -0
- package/dist/docs/reference/middleware.mdx +41 -217
- package/dist/docs/reference/router.mdx +9 -9
- package/dist/docs/reference/validator.mdx +2 -5
- package/dist/error/errors.d.ts.map +1 -1
- package/dist/error/errors.js +19 -5
- package/dist/error/errors.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/start-server.js +10 -0
- package/dist/lib/start-server.js.map +1 -1
- package/dist/logger/index.d.ts +81 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +142 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/middleware/dedupe.d.ts +1 -1
- package/dist/middleware/dedupe.js +1 -1
- package/dist/middleware/middleware.d.ts +3 -5
- package/dist/middleware/middleware.d.ts.map +1 -1
- package/dist/middleware/middleware.js +2 -6
- package/dist/middleware/middleware.js.map +1 -1
- package/dist/middleware/rate-limit.d.ts +0 -2
- package/dist/middleware/rate-limit.d.ts.map +1 -1
- package/dist/middleware/rate-limit.js +2 -14
- package/dist/middleware/rate-limit.js.map +1 -1
- package/dist/module/index.d.ts +2 -0
- package/dist/module/index.d.ts.map +1 -1
- package/dist/module/index.js +3 -1
- package/dist/module/index.js.map +1 -1
- package/dist/plugin/manager.d.ts +1 -1
- package/dist/plugin/manager.d.ts.map +1 -1
- package/dist/plugin/manager.js +47 -0
- package/dist/plugin/manager.js.map +1 -1
- package/dist/router/{gateway.d.ts → boundary.d.ts} +21 -13
- package/dist/router/boundary.d.ts.map +1 -0
- package/dist/router/boundary.js +11 -0
- package/dist/router/boundary.js.map +1 -0
- package/dist/router/controller-registrar.d.ts.map +1 -1
- package/dist/router/controller-registrar.js +33 -6
- package/dist/router/controller-registrar.js.map +1 -1
- package/dist/router/index.d.ts +3 -6
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +3 -7
- package/dist/router/index.js.map +1 -1
- package/dist/router/route-builder.d.ts +0 -28
- package/dist/router/route-builder.d.ts.map +1 -1
- package/dist/router/route-builder.js +2 -5
- package/dist/router/route-builder.js.map +1 -1
- package/dist/router/route-scanner.d.ts +1 -2
- package/dist/router/route-scanner.d.ts.map +1 -1
- package/dist/router/route-scanner.js +225 -203
- package/dist/router/route-scanner.js.map +1 -1
- package/dist/router/router.d.ts +4 -6
- package/dist/router/router.d.ts.map +1 -1
- package/dist/router/router.js +36 -72
- package/dist/router/router.js.map +1 -1
- package/dist/router/types.d.ts +2 -6
- package/dist/router/types.d.ts.map +1 -1
- package/dist/server/{bun-adapter.d.ts → adapters/bun-adapter.d.ts} +1 -1
- package/dist/server/adapters/bun-adapter.d.ts.map +1 -0
- package/dist/server/{bun-adapter.js → adapters/bun-adapter.js} +2 -24
- package/dist/server/adapters/bun-adapter.js.map +1 -0
- package/dist/server/{uws-adapter.d.ts → adapters/uws-adapter.d.ts} +1 -1
- package/dist/server/adapters/uws-adapter.d.ts.map +1 -0
- package/dist/server/{uws-adapter.js → adapters/uws-adapter.js} +1 -28
- package/dist/server/adapters/uws-adapter.js.map +1 -0
- package/dist/server/app.d.ts +10 -31
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +20 -135
- package/dist/server/app.js.map +1 -1
- package/dist/server/bootstrapper.d.ts +4 -15
- package/dist/server/bootstrapper.d.ts.map +1 -1
- package/dist/server/bootstrapper.js +30 -229
- package/dist/server/bootstrapper.js.map +1 -1
- package/dist/server/define.d.ts +2 -2
- package/dist/server/define.d.ts.map +1 -1
- package/dist/server/define.js +3 -3
- package/dist/server/define.js.map +1 -1
- package/dist/server/engines/bun-engine.d.ts +16 -0
- package/dist/server/engines/bun-engine.d.ts.map +1 -0
- package/dist/server/engines/bun-engine.js +41 -0
- package/dist/server/engines/bun-engine.js.map +1 -0
- package/dist/server/engines/engine.d.ts +16 -0
- package/dist/server/engines/engine.d.ts.map +1 -0
- package/dist/{queue/types.js → server/engines/engine.js} +1 -1
- package/dist/server/engines/engine.js.map +1 -0
- package/dist/server/engines/node-engine.d.ts +22 -0
- package/dist/server/engines/node-engine.d.ts.map +1 -0
- package/dist/server/engines/node-engine.js +130 -0
- package/dist/server/engines/node-engine.js.map +1 -0
- package/dist/server/engines/uws-engine.d.ts +16 -0
- package/dist/server/engines/uws-engine.d.ts.map +1 -0
- package/dist/server/engines/uws-engine.js +48 -0
- package/dist/server/engines/uws-engine.js.map +1 -0
- package/dist/server/request-handler.d.ts +0 -1
- package/dist/server/request-handler.d.ts.map +1 -1
- package/dist/server/request-handler.js +74 -48
- package/dist/server/request-handler.js.map +1 -1
- package/dist/server/request.d.ts +0 -8
- package/dist/server/request.d.ts.map +1 -1
- package/dist/server/request.js +0 -16
- package/dist/server/request.js.map +1 -1
- package/dist/server/response.d.ts.map +1 -1
- package/dist/server/response.js +2 -1
- package/dist/server/response.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +0 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/time.d.ts +6 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +15 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/validator/index.d.ts +1 -7
- package/dist/validator/index.d.ts.map +1 -1
- package/dist/validator/index.js +1 -5
- package/dist/validator/index.js.map +1 -1
- package/dist/validator/tex-types.d.ts +15 -2
- package/dist/validator/tex-types.d.ts.map +1 -1
- package/dist/validator/tex-types.js +8 -0
- package/dist/validator/tex-types.js.map +1 -1
- package/dist/validator/tex.d.ts.map +1 -1
- package/dist/validator/tex.js +21 -2
- package/dist/validator/tex.js.map +1 -1
- package/package.json +9 -151
- package/dist/adapters/aws-lambda.d.ts +0 -21
- package/dist/adapters/aws-lambda.d.ts.map +0 -1
- package/dist/adapters/aws-lambda.js +0 -125
- package/dist/adapters/aws-lambda.js.map +0 -1
- package/dist/adapters/bun.d.ts +0 -9
- package/dist/adapters/bun.d.ts.map +0 -1
- package/dist/adapters/bun.js +0 -23
- package/dist/adapters/bun.js.map +0 -1
- package/dist/adapters/cloudflare.d.ts +0 -10
- package/dist/adapters/cloudflare.d.ts.map +0 -1
- package/dist/adapters/cloudflare.js +0 -22
- package/dist/adapters/cloudflare.js.map +0 -1
- package/dist/adapters/deno.d.ts +0 -7
- package/dist/adapters/deno.d.ts.map +0 -1
- package/dist/adapters/deno.js +0 -21
- package/dist/adapters/deno.js.map +0 -1
- package/dist/adapters/fastly.d.ts +0 -6
- package/dist/adapters/fastly.d.ts.map +0 -1
- package/dist/adapters/fastly.js +0 -20
- package/dist/adapters/fastly.js.map +0 -1
- package/dist/adapters/fetch.d.ts +0 -30
- package/dist/adapters/fetch.d.ts.map +0 -1
- package/dist/adapters/fetch.js +0 -119
- package/dist/adapters/fetch.js.map +0 -1
- package/dist/adapters/index.d.ts +0 -9
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js +0 -28
- package/dist/adapters/index.js.map +0 -1
- package/dist/adapters/netlify.d.ts +0 -8
- package/dist/adapters/netlify.d.ts.map +0 -1
- package/dist/adapters/netlify.js +0 -20
- package/dist/adapters/netlify.js.map +0 -1
- package/dist/adapters/vercel.d.ts +0 -17
- package/dist/adapters/vercel.d.ts.map +0 -1
- package/dist/adapters/vercel.js +0 -23
- package/dist/adapters/vercel.js.map +0 -1
- package/dist/auth/index.d.ts +0 -8
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js +0 -49
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/jwt.d.ts +0 -20
- package/dist/auth/jwt.d.ts.map +0 -1
- package/dist/auth/jwt.js +0 -59
- package/dist/auth/jwt.js.map +0 -1
- package/dist/auth/oauth/core.d.ts +0 -96
- package/dist/auth/oauth/core.d.ts.map +0 -1
- package/dist/auth/oauth/core.js +0 -203
- package/dist/auth/oauth/core.js.map +0 -1
- package/dist/auth/oauth/index.d.ts +0 -45
- package/dist/auth/oauth/index.d.ts.map +0 -1
- package/dist/auth/oauth/index.js +0 -64
- package/dist/auth/oauth/index.js.map +0 -1
- package/dist/auth/oauth/middleware.d.ts +0 -63
- package/dist/auth/oauth/middleware.d.ts.map +0 -1
- package/dist/auth/oauth/middleware.js +0 -164
- package/dist/auth/oauth/middleware.js.map +0 -1
- package/dist/auth/oauth/providers/custom.d.ts +0 -41
- package/dist/auth/oauth/providers/custom.d.ts.map +0 -1
- package/dist/auth/oauth/providers/custom.js +0 -204
- package/dist/auth/oauth/providers/custom.js.map +0 -1
- package/dist/auth/oauth/providers/discord.d.ts +0 -23
- package/dist/auth/oauth/providers/discord.d.ts.map +0 -1
- package/dist/auth/oauth/providers/discord.js +0 -130
- package/dist/auth/oauth/providers/discord.js.map +0 -1
- package/dist/auth/oauth/providers/facebook.d.ts +0 -28
- package/dist/auth/oauth/providers/facebook.d.ts.map +0 -1
- package/dist/auth/oauth/providers/facebook.js +0 -124
- package/dist/auth/oauth/providers/facebook.js.map +0 -1
- package/dist/auth/oauth/providers/github.d.ts +0 -25
- package/dist/auth/oauth/providers/github.d.ts.map +0 -1
- package/dist/auth/oauth/providers/github.js +0 -132
- package/dist/auth/oauth/providers/github.js.map +0 -1
- package/dist/auth/oauth/providers/google.d.ts +0 -23
- package/dist/auth/oauth/providers/google.d.ts.map +0 -1
- package/dist/auth/oauth/providers/google.js +0 -134
- package/dist/auth/oauth/providers/google.js.map +0 -1
- package/dist/auth/oauth/providers/microsoft.d.ts +0 -28
- package/dist/auth/oauth/providers/microsoft.d.ts.map +0 -1
- package/dist/auth/oauth/providers/microsoft.js +0 -136
- package/dist/auth/oauth/providers/microsoft.js.map +0 -1
- package/dist/auth/oauth/types.d.ts +0 -158
- package/dist/auth/oauth/types.d.ts.map +0 -1
- package/dist/auth/oauth/types.js +0 -4
- package/dist/auth/oauth/types.js.map +0 -1
- package/dist/auth/password.d.ts +0 -25
- package/dist/auth/password.d.ts.map +0 -1
- package/dist/auth/password.js +0 -93
- package/dist/auth/password.js.map +0 -1
- package/dist/auth/rbac.d.ts +0 -10
- package/dist/auth/rbac.d.ts.map +0 -1
- package/dist/auth/rbac.js +0 -34
- package/dist/auth/rbac.js.map +0 -1
- package/dist/auth/session.d.ts +0 -26
- package/dist/auth/session.d.ts.map +0 -1
- package/dist/auth/session.js +0 -134
- package/dist/auth/session.js.map +0 -1
- package/dist/cache/index.d.ts +0 -4
- package/dist/cache/index.d.ts.map +0 -1
- package/dist/cache/index.js +0 -25
- package/dist/cache/index.js.map +0 -1
- package/dist/cache/store.d.ts +0 -58
- package/dist/cache/store.d.ts.map +0 -1
- package/dist/cache/store.js +0 -298
- package/dist/cache/store.js.map +0 -1
- package/dist/cron/parser.d.ts +0 -2
- package/dist/cron/parser.d.ts.map +0 -1
- package/dist/cron/parser.js +0 -52
- package/dist/cron/parser.js.map +0 -1
- package/dist/cron/scheduler.d.ts +0 -23
- package/dist/cron/scheduler.d.ts.map +0 -1
- package/dist/cron/scheduler.js +0 -114
- package/dist/cron/scheduler.js.map +0 -1
- package/dist/database/adapters/mongodb.d.ts +0 -58
- package/dist/database/adapters/mongodb.d.ts.map +0 -1
- package/dist/database/adapters/mongodb.js +0 -264
- package/dist/database/adapters/mongodb.js.map +0 -1
- package/dist/database/adapters/mysql.d.ts +0 -27
- package/dist/database/adapters/mysql.d.ts.map +0 -1
- package/dist/database/adapters/mysql.js +0 -188
- package/dist/database/adapters/mysql.js.map +0 -1
- package/dist/database/adapters/postgres.d.ts +0 -28
- package/dist/database/adapters/postgres.d.ts.map +0 -1
- package/dist/database/adapters/postgres.js +0 -174
- package/dist/database/adapters/postgres.js.map +0 -1
- package/dist/database/adapters/sqlite.d.ts +0 -27
- package/dist/database/adapters/sqlite.d.ts.map +0 -1
- package/dist/database/adapters/sqlite.js +0 -149
- package/dist/database/adapters/sqlite.js.map +0 -1
- package/dist/database/index.d.ts +0 -42
- package/dist/database/index.d.ts.map +0 -1
- package/dist/database/index.js +0 -58
- package/dist/database/index.js.map +0 -1
- package/dist/database/manager.d.ts +0 -141
- package/dist/database/manager.d.ts.map +0 -1
- package/dist/database/manager.js +0 -337
- package/dist/database/manager.js.map +0 -1
- package/dist/database/migration.d.ts +0 -57
- package/dist/database/migration.d.ts.map +0 -1
- package/dist/database/migration.js +0 -329
- package/dist/database/migration.js.map +0 -1
- package/dist/database/query-builder.d.ts +0 -95
- package/dist/database/query-builder.d.ts.map +0 -1
- package/dist/database/query-builder.js +0 -404
- package/dist/database/query-builder.js.map +0 -1
- package/dist/database/sql/index.d.ts +0 -18
- package/dist/database/sql/index.d.ts.map +0 -1
- package/dist/database/sql/index.js +0 -74
- package/dist/database/sql/index.js.map +0 -1
- package/dist/database/sql/schema.d.ts +0 -38
- package/dist/database/sql/schema.d.ts.map +0 -1
- package/dist/database/sql/schema.js +0 -80
- package/dist/database/sql/schema.js.map +0 -1
- package/dist/database/synchronizer.d.ts +0 -12
- package/dist/database/synchronizer.d.ts.map +0 -1
- package/dist/database/synchronizer.js +0 -82
- package/dist/database/synchronizer.js.map +0 -1
- package/dist/database/types.d.ts +0 -184
- package/dist/database/types.d.ts.map +0 -1
- package/dist/database/types.js +0 -4
- package/dist/database/types.js.map +0 -1
- package/dist/dataloader/dataloader.d.ts +0 -23
- package/dist/dataloader/dataloader.d.ts.map +0 -1
- package/dist/dataloader/dataloader.js +0 -98
- package/dist/dataloader/dataloader.js.map +0 -1
- package/dist/dataloader/index.d.ts +0 -3
- package/dist/dataloader/index.d.ts.map +0 -1
- package/dist/dataloader/index.js +0 -19
- package/dist/dataloader/index.js.map +0 -1
- package/dist/dataloader/registry.d.ts +0 -17
- package/dist/dataloader/registry.d.ts.map +0 -1
- package/dist/dataloader/registry.js +0 -47
- package/dist/dataloader/registry.js.map +0 -1
- package/dist/dev/dep-graph.d.ts +0 -2
- package/dist/dev/dep-graph.d.ts.map +0 -1
- package/dist/dev/dep-graph.js +0 -111
- package/dist/dev/dep-graph.js.map +0 -1
- package/dist/dev/hot-reload.d.ts +0 -30
- package/dist/dev/hot-reload.d.ts.map +0 -1
- package/dist/dev/hot-reload.js +0 -262
- package/dist/dev/hot-reload.js.map +0 -1
- package/dist/docs/content/adapters.mdx +0 -199
- package/dist/docs/content/cache.mdx +0 -239
- package/dist/docs/content/circuit-breaker.mdx +0 -130
- package/dist/docs/content/cron.mdx +0 -109
- package/dist/docs/content/database.mdx +0 -278
- package/dist/docs/content/gateways.mdx +0 -376
- package/dist/docs/content/oauth.mdx +0 -179
- package/dist/docs/content/queues.mdx +0 -177
- package/dist/docs/content/rpc.mdx +0 -146
- package/dist/docs/content/sse.mdx +0 -159
- package/dist/docs/content/websockets.mdx +0 -289
- package/dist/docs/integrations/README.md +0 -23
- package/dist/docs/integrations/jwt.mdx +0 -151
- package/dist/docs/integrations/mongo.mdx +0 -183
- package/dist/docs/integrations/observability.mdx +0 -125
- package/dist/docs/integrations/openai.mdx +0 -108
- package/dist/docs/integrations/postgres.mdx +0 -190
- package/dist/docs/integrations/posthog.mdx +0 -122
- package/dist/docs/integrations/redis.mdx +0 -141
- package/dist/docs/integrations/resend.mdx +0 -117
- package/dist/docs/integrations/s3.mdx +0 -122
- package/dist/docs/integrations/swagger.mdx +0 -113
- package/dist/docs/reference/adapters.mdx +0 -130
- package/dist/docs/reference/auth.mdx +0 -183
- package/dist/docs/reference/cache.mdx +0 -132
- package/dist/docs/reference/circuit-breaker.mdx +0 -71
- package/dist/docs/reference/queue.mdx +0 -155
- package/dist/docs/reference/storage.mdx +0 -116
- package/dist/docs/reference/swagger.mdx +0 -132
- package/dist/integrations/drizzle.d.ts +0 -10
- package/dist/integrations/drizzle.d.ts.map +0 -1
- package/dist/integrations/drizzle.js +0 -34
- package/dist/integrations/drizzle.js.map +0 -1
- package/dist/integrations/jwt.d.ts +0 -12
- package/dist/integrations/jwt.d.ts.map +0 -1
- package/dist/integrations/jwt.js +0 -29
- package/dist/integrations/jwt.js.map +0 -1
- package/dist/integrations/mongodb.d.ts +0 -13
- package/dist/integrations/mongodb.d.ts.map +0 -1
- package/dist/integrations/mongodb.js +0 -48
- package/dist/integrations/mongodb.js.map +0 -1
- package/dist/integrations/mongoose.d.ts +0 -13
- package/dist/integrations/mongoose.d.ts.map +0 -1
- package/dist/integrations/mongoose.js +0 -84
- package/dist/integrations/mongoose.js.map +0 -1
- package/dist/integrations/openai.d.ts +0 -12
- package/dist/integrations/openai.d.ts.map +0 -1
- package/dist/integrations/openai.js +0 -47
- package/dist/integrations/openai.js.map +0 -1
- package/dist/integrations/postgres.d.ts +0 -13
- package/dist/integrations/postgres.d.ts.map +0 -1
- package/dist/integrations/postgres.js +0 -55
- package/dist/integrations/postgres.js.map +0 -1
- package/dist/integrations/posthog.d.ts +0 -13
- package/dist/integrations/posthog.d.ts.map +0 -1
- package/dist/integrations/posthog.js +0 -49
- package/dist/integrations/posthog.js.map +0 -1
- package/dist/integrations/prisma.d.ts +0 -10
- package/dist/integrations/prisma.d.ts.map +0 -1
- package/dist/integrations/prisma.js +0 -39
- package/dist/integrations/prisma.js.map +0 -1
- package/dist/integrations/redis.d.ts +0 -12
- package/dist/integrations/redis.d.ts.map +0 -1
- package/dist/integrations/redis.js +0 -48
- package/dist/integrations/redis.js.map +0 -1
- package/dist/integrations/resend.d.ts +0 -12
- package/dist/integrations/resend.d.ts.map +0 -1
- package/dist/integrations/resend.js +0 -47
- package/dist/integrations/resend.js.map +0 -1
- package/dist/integrations/s3.d.ts +0 -15
- package/dist/integrations/s3.d.ts.map +0 -1
- package/dist/integrations/s3.js +0 -60
- package/dist/integrations/s3.js.map +0 -1
- package/dist/integrations/supabase.d.ts +0 -13
- package/dist/integrations/supabase.d.ts.map +0 -1
- package/dist/integrations/supabase.js +0 -51
- package/dist/integrations/supabase.js.map +0 -1
- package/dist/middleware/cache.d.ts +0 -21
- package/dist/middleware/cache.d.ts.map +0 -1
- package/dist/middleware/cache.js +0 -156
- package/dist/middleware/cache.js.map +0 -1
- package/dist/observability/health.d.ts +0 -23
- package/dist/observability/health.d.ts.map +0 -1
- package/dist/observability/health.js +0 -49
- package/dist/observability/health.js.map +0 -1
- package/dist/observability/index.d.ts +0 -4
- package/dist/observability/index.d.ts.map +0 -1
- package/dist/observability/index.js +0 -10
- package/dist/observability/index.js.map +0 -1
- package/dist/observability/metrics.d.ts +0 -6
- package/dist/observability/metrics.d.ts.map +0 -1
- package/dist/observability/metrics.js +0 -60
- package/dist/observability/metrics.js.map +0 -1
- package/dist/observability/otel.d.ts +0 -27
- package/dist/observability/otel.d.ts.map +0 -1
- package/dist/observability/otel.js +0 -45
- package/dist/observability/otel.js.map +0 -1
- package/dist/observability/prometheus.d.ts +0 -30
- package/dist/observability/prometheus.d.ts.map +0 -1
- package/dist/observability/prometheus.js +0 -31
- package/dist/observability/prometheus.js.map +0 -1
- package/dist/queue/client.d.ts +0 -13
- package/dist/queue/client.d.ts.map +0 -1
- package/dist/queue/client.js +0 -83
- package/dist/queue/client.js.map +0 -1
- package/dist/queue/drivers/MemoryDriver.d.ts +0 -21
- package/dist/queue/drivers/MemoryDriver.d.ts.map +0 -1
- package/dist/queue/drivers/MemoryDriver.js +0 -176
- package/dist/queue/drivers/MemoryDriver.js.map +0 -1
- package/dist/queue/drivers/RedisDriver.d.ts +0 -19
- package/dist/queue/drivers/RedisDriver.d.ts.map +0 -1
- package/dist/queue/drivers/RedisDriver.js +0 -130
- package/dist/queue/drivers/RedisDriver.js.map +0 -1
- package/dist/queue/index.d.ts +0 -18
- package/dist/queue/index.d.ts.map +0 -1
- package/dist/queue/index.js +0 -37
- package/dist/queue/index.js.map +0 -1
- package/dist/queue/manager.d.ts +0 -18
- package/dist/queue/manager.d.ts.map +0 -1
- package/dist/queue/manager.js +0 -59
- package/dist/queue/manager.js.map +0 -1
- package/dist/queue/types.d.ts +0 -55
- package/dist/queue/types.d.ts.map +0 -1
- package/dist/queue/types.js.map +0 -1
- package/dist/queue/worker.d.ts +0 -18
- package/dist/queue/worker.d.ts.map +0 -1
- package/dist/queue/worker.js +0 -176
- package/dist/queue/worker.js.map +0 -1
- package/dist/router/gateway.d.ts.map +0 -1
- package/dist/router/gateway.js +0 -11
- package/dist/router/gateway.js.map +0 -1
- package/dist/server/bun-adapter.d.ts.map +0 -1
- package/dist/server/bun-adapter.js.map +0 -1
- package/dist/server/sse.d.ts +0 -16
- package/dist/server/sse.d.ts.map +0 -1
- package/dist/server/sse.js +0 -51
- package/dist/server/sse.js.map +0 -1
- package/dist/server/uws-adapter.d.ts.map +0 -1
- package/dist/server/uws-adapter.js.map +0 -1
- package/dist/storage/index.d.ts +0 -15
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/storage/index.js +0 -7
- package/dist/storage/index.js.map +0 -1
- package/dist/swagger/index.d.ts +0 -9
- package/dist/swagger/index.d.ts.map +0 -1
- package/dist/swagger/index.js +0 -165
- package/dist/swagger/index.js.map +0 -1
- package/dist/threads/pool.d.ts +0 -14
- package/dist/threads/pool.d.ts.map +0 -1
- package/dist/threads/pool.js +0 -93
- package/dist/threads/pool.js.map +0 -1
- package/dist/threads/worker-runner.d.ts +0 -2
- package/dist/threads/worker-runner.d.ts.map +0 -1
- package/dist/threads/worker-runner.js +0 -71
- package/dist/threads/worker-runner.js.map +0 -1
- package/dist/validator/validator.d.ts +0 -360
- package/dist/validator/validator.d.ts.map +0 -1
- package/dist/validator/validator.js +0 -931
- package/dist/validator/validator.js.map +0 -1
- package/dist/websocket/orchestrator.d.ts +0 -11
- package/dist/websocket/orchestrator.d.ts.map +0 -1
- package/dist/websocket/orchestrator.js +0 -238
- package/dist/websocket/orchestrator.js.map +0 -1
- package/dist/websocket/server.d.ts +0 -66
- package/dist/websocket/server.d.ts.map +0 -1
- package/dist/websocket/server.js +0 -158
- package/dist/websocket/server.js.map +0 -1
- package/dist/websocket/socket.d.ts +0 -119
- package/dist/websocket/socket.d.ts.map +0 -1
- package/dist/websocket/socket.js +0 -242
- package/dist/websocket/socket.js.map +0 -1
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Built-in OAuth provider identifiers.
|
|
3
|
-
*/
|
|
4
|
-
export type OAuthProvider = 'google' | 'github' | 'microsoft' | 'discord' | 'facebook' | (string & {});
|
|
5
|
-
/**
|
|
6
|
-
* Configuration for an OAuth provider.
|
|
7
|
-
*/
|
|
8
|
-
export interface OAuthProviderConfig {
|
|
9
|
-
/** OAuth client ID (from the provider's developer console) */
|
|
10
|
-
clientId: string;
|
|
11
|
-
/** OAuth client secret */
|
|
12
|
-
clientSecret: string;
|
|
13
|
-
/** The URL the provider redirects to after authentication */
|
|
14
|
-
redirectUri: string;
|
|
15
|
-
/** OAuth scopes to request */
|
|
16
|
-
scopes?: string[];
|
|
17
|
-
/**
|
|
18
|
-
* Microsoft-specific: the tenant ID.
|
|
19
|
-
* Use 'common' for multi-tenant, 'organizations' for work accounts, or a specific tenant ID.
|
|
20
|
-
* Default: 'common'
|
|
21
|
-
*/
|
|
22
|
-
tenant?: string;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Token response from an OAuth provider.
|
|
26
|
-
*/
|
|
27
|
-
export interface OAuthTokens {
|
|
28
|
-
/** The access token used to call provider APIs */
|
|
29
|
-
accessToken: string;
|
|
30
|
-
/** The refresh token for obtaining new access tokens (if granted) */
|
|
31
|
-
refreshToken?: string;
|
|
32
|
-
/** Token expiry time in seconds */
|
|
33
|
-
expiresIn?: number;
|
|
34
|
-
/** Token type (usually 'Bearer') */
|
|
35
|
-
tokenType: string;
|
|
36
|
-
/** OpenID Connect ID token (JWT, if using openid scope) */
|
|
37
|
-
idToken?: string;
|
|
38
|
-
/** The scopes that were actually granted by the provider */
|
|
39
|
-
scope?: string;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Normalized user profile across all providers.
|
|
43
|
-
* Guarantees a consistent shape regardless of which provider is used.
|
|
44
|
-
*/
|
|
45
|
-
export interface OAuthUserProfile {
|
|
46
|
-
/** User's unique ID on the provider */
|
|
47
|
-
id: string;
|
|
48
|
-
/** User's email address */
|
|
49
|
-
email: string;
|
|
50
|
-
/** Whether the provider has verified the email */
|
|
51
|
-
emailVerified: boolean;
|
|
52
|
-
/** User's display name */
|
|
53
|
-
name: string;
|
|
54
|
-
/** User's first name (if available) */
|
|
55
|
-
firstName?: string;
|
|
56
|
-
/** User's last name (if available) */
|
|
57
|
-
lastName?: string;
|
|
58
|
-
/** URL to the user's avatar/profile picture */
|
|
59
|
-
avatar?: string;
|
|
60
|
-
/** Which OAuth provider this profile came from */
|
|
61
|
-
provider: OAuthProvider;
|
|
62
|
-
/** The full raw response from the provider's user info endpoint */
|
|
63
|
-
raw: Record<string, unknown>;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* The contract that every OAuth provider adapter must implement.
|
|
67
|
-
*/
|
|
68
|
-
export interface OAuthProviderAdapter {
|
|
69
|
-
/** Provider identifier */
|
|
70
|
-
readonly name: OAuthProvider;
|
|
71
|
-
/**
|
|
72
|
-
* Generate the authorization URL that the user is redirected to.
|
|
73
|
-
* @param state CSRF state token
|
|
74
|
-
* @param codeVerifier PKCE code verifier (if using PKCE)
|
|
75
|
-
*/
|
|
76
|
-
getAuthorizationUrl(state: string, codeVerifier?: string): string;
|
|
77
|
-
/**
|
|
78
|
-
* Exchange an authorization code for tokens.
|
|
79
|
-
* @param code The authorization code from the callback
|
|
80
|
-
* @param codeVerifier PKCE code verifier (if using PKCE)
|
|
81
|
-
*/
|
|
82
|
-
exchangeCode(code: string, codeVerifier?: string): Promise<OAuthTokens>;
|
|
83
|
-
/**
|
|
84
|
-
* Fetch the authenticated user's profile from the provider.
|
|
85
|
-
* @param tokens The tokens obtained from exchangeCode
|
|
86
|
-
*/
|
|
87
|
-
getUserProfile(tokens: OAuthTokens): Promise<OAuthUserProfile>;
|
|
88
|
-
/**
|
|
89
|
-
* Refresh an expired access token using a refresh token.
|
|
90
|
-
* @param refreshToken The refresh token
|
|
91
|
-
*/
|
|
92
|
-
refreshToken(refreshToken: string): Promise<OAuthTokens>;
|
|
93
|
-
/**
|
|
94
|
-
* Revoke a token (access or refresh).
|
|
95
|
-
* @param token The token to revoke
|
|
96
|
-
*/
|
|
97
|
-
revokeToken(token: string): Promise<void>;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Configuration for the OAuth middleware.
|
|
101
|
-
*/
|
|
102
|
-
export interface OAuthCallbackOptions {
|
|
103
|
-
/**
|
|
104
|
-
* Called when authentication succeeds.
|
|
105
|
-
* Use this to create/update the user in your database, set session data, etc.
|
|
106
|
-
*/
|
|
107
|
-
onSuccess: (req: import('../../types').Request, res: import('../../types').Response, profile: OAuthUserProfile, tokens: OAuthTokens) => void | Promise<void>;
|
|
108
|
-
/**
|
|
109
|
-
* Called when authentication fails.
|
|
110
|
-
* Use this to redirect to an error page, log the error, etc.
|
|
111
|
-
*/
|
|
112
|
-
onError?: (req: import('../../types').Request, res: import('../../types').Response, error: Error) => void | Promise<void>;
|
|
113
|
-
/**
|
|
114
|
-
* Name of the session key to store OAuth state. Default: '_exis_oauth_state'
|
|
115
|
-
*/
|
|
116
|
-
stateKey?: string;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Configuration for a custom OAuth provider.
|
|
120
|
-
*/
|
|
121
|
-
export interface CustomOAuthProviderConfig extends OAuthProviderConfig {
|
|
122
|
-
/** A unique name for this custom provider */
|
|
123
|
-
name: string;
|
|
124
|
-
/** The authorization endpoint URL */
|
|
125
|
-
authUrl: string;
|
|
126
|
-
/** The token exchange endpoint URL */
|
|
127
|
-
tokenUrl: string;
|
|
128
|
-
/** The user info endpoint URL */
|
|
129
|
-
userInfoUrl: string;
|
|
130
|
-
/**
|
|
131
|
-
* Map the raw user info response to a normalized OAuthUserProfile.
|
|
132
|
-
* If not provided, the raw response is used as-is with best-effort field mapping.
|
|
133
|
-
*/
|
|
134
|
-
mapProfile?: (raw: Record<string, unknown>) => Omit<OAuthUserProfile, 'provider' | 'raw'>;
|
|
135
|
-
/** The revocation endpoint URL (optional) */
|
|
136
|
-
revokeUrl?: string;
|
|
137
|
-
/**
|
|
138
|
-
* How to send the client credentials during token exchange.
|
|
139
|
-
* 'body' sends them as POST body parameters.
|
|
140
|
-
* 'header' sends them as a Basic auth header.
|
|
141
|
-
* Default: 'body'
|
|
142
|
-
*/
|
|
143
|
-
authMethod?: 'body' | 'header';
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Internal state stored during the OAuth flow.
|
|
147
|
-
*/
|
|
148
|
-
export interface OAuthFlowState {
|
|
149
|
-
/** CSRF state token */
|
|
150
|
-
state: string;
|
|
151
|
-
/** PKCE code verifier */
|
|
152
|
-
codeVerifier?: string;
|
|
153
|
-
/** Provider being used */
|
|
154
|
-
provider: OAuthProvider;
|
|
155
|
-
/** Timestamp when the state was created */
|
|
156
|
-
createdAt: number;
|
|
157
|
-
}
|
|
158
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/auth/oauth/types.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/oauth/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/auth/oauth/types.ts"],"names":[],"mappings":";AAAA,mFAAmF"}
|
package/dist/auth/password.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export interface HashOptions {
|
|
2
|
-
/** The length of the salt in bytes. Default: 16 */
|
|
3
|
-
saltLength?: number;
|
|
4
|
-
/** The length of the derived key in bytes. Default: 64 */
|
|
5
|
-
keyLength?: number;
|
|
6
|
-
/** CPU/memory cost parameter (N). Must be a power of 2 greater than 1. Default: 16384 */
|
|
7
|
-
cost?: number;
|
|
8
|
-
/** Block size parameter (r). Default: 8 */
|
|
9
|
-
blockSize?: number;
|
|
10
|
-
/** Parallelization parameter (p). Default: 1 */
|
|
11
|
-
parallelization?: number;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Hash a password using scrypt.
|
|
15
|
-
* Returns a string formatted as: `scrypt:N:r:p:keylen:salt:hash`
|
|
16
|
-
* This ensures the options are securely stored alongside the hash for future verification.
|
|
17
|
-
*/
|
|
18
|
-
export declare function hashPassword(password: string, options?: HashOptions): Promise<string>;
|
|
19
|
-
/**
|
|
20
|
-
* Verify a password against a stored scrypt hash.
|
|
21
|
-
* @param password The plaintext password to verify.
|
|
22
|
-
* @param storedHash The stored hash string generated by `hashPassword`.
|
|
23
|
-
*/
|
|
24
|
-
export declare function verifyPassword(password: string, storedHash: string): Promise<boolean>;
|
|
25
|
-
//# sourceMappingURL=password.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/auth/password.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAUD;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,CAajB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAwClB"}
|
package/dist/auth/password.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.hashPassword = hashPassword;
|
|
4
|
-
exports.verifyPassword = verifyPassword;
|
|
5
|
-
const node_crypto_1 = require("node:crypto");
|
|
6
|
-
const scryptAsync = (password, salt, keylen, options) => {
|
|
7
|
-
return new Promise((resolve, reject) => {
|
|
8
|
-
if (options) {
|
|
9
|
-
(0, node_crypto_1.scrypt)(password, salt, keylen, options, (err, derivedKey) => {
|
|
10
|
-
if (err)
|
|
11
|
-
reject(err);
|
|
12
|
-
else
|
|
13
|
-
resolve(derivedKey);
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
(0, node_crypto_1.scrypt)(password, salt, keylen, (err, derivedKey) => {
|
|
18
|
-
if (err)
|
|
19
|
-
reject(err);
|
|
20
|
-
else
|
|
21
|
-
resolve(derivedKey);
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
const DEFAULT_OPTIONS = {
|
|
27
|
-
saltLength: 16,
|
|
28
|
-
keyLength: 64,
|
|
29
|
-
cost: 16384,
|
|
30
|
-
blockSize: 8,
|
|
31
|
-
parallelization: 1,
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* Hash a password using scrypt.
|
|
35
|
-
* Returns a string formatted as: `scrypt:N:r:p:keylen:salt:hash`
|
|
36
|
-
* This ensures the options are securely stored alongside the hash for future verification.
|
|
37
|
-
*/
|
|
38
|
-
async function hashPassword(password, options) {
|
|
39
|
-
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
40
|
-
const salt = (0, node_crypto_1.randomBytes)(opts.saltLength).toString('hex');
|
|
41
|
-
const derivedKey = (await scryptAsync(password, salt, opts.keyLength, {
|
|
42
|
-
N: opts.cost,
|
|
43
|
-
r: opts.blockSize,
|
|
44
|
-
p: opts.parallelization,
|
|
45
|
-
}));
|
|
46
|
-
// Store the parameters used to create the hash so we can verify it later
|
|
47
|
-
// Format: scrypt:cost:blockSize:parallelization:keyLength:salt:hash
|
|
48
|
-
return `scrypt:${opts.cost}:${opts.blockSize}:${opts.parallelization}:${opts.keyLength}:${salt}:${derivedKey.toString('hex')}`;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Verify a password against a stored scrypt hash.
|
|
52
|
-
* @param password The plaintext password to verify.
|
|
53
|
-
* @param storedHash The stored hash string generated by `hashPassword`.
|
|
54
|
-
*/
|
|
55
|
-
async function verifyPassword(password, storedHash) {
|
|
56
|
-
if (!password || !storedHash || typeof storedHash !== 'string') {
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
// Backwards compatibility with the old simple format `salt:hash`
|
|
60
|
-
const parts = storedHash.split(':');
|
|
61
|
-
if (parts.length === 2) {
|
|
62
|
-
const [salt, key] = parts;
|
|
63
|
-
if (!salt || !key)
|
|
64
|
-
return false;
|
|
65
|
-
const keyBuffer = Buffer.from(key, 'hex');
|
|
66
|
-
const derivedKey = (await scryptAsync(password, salt, 64));
|
|
67
|
-
if (keyBuffer.length !== derivedKey.length)
|
|
68
|
-
return false;
|
|
69
|
-
return (0, node_crypto_1.timingSafeEqual)(keyBuffer, derivedKey);
|
|
70
|
-
}
|
|
71
|
-
// New format: scrypt:N:r:p:keylen:salt:hash
|
|
72
|
-
if (parts.length === 7 && parts[0] === 'scrypt') {
|
|
73
|
-
const cost = parseInt(parts[1], 10);
|
|
74
|
-
const blockSize = parseInt(parts[2], 10);
|
|
75
|
-
const parallelization = parseInt(parts[3], 10);
|
|
76
|
-
const keyLength = parseInt(parts[4], 10);
|
|
77
|
-
const salt = parts[5];
|
|
78
|
-
const key = parts[6];
|
|
79
|
-
if (!salt || !key)
|
|
80
|
-
return false;
|
|
81
|
-
const keyBuffer = Buffer.from(key, 'hex');
|
|
82
|
-
const derivedKey = (await scryptAsync(password, salt, keyLength, {
|
|
83
|
-
N: cost,
|
|
84
|
-
r: blockSize,
|
|
85
|
-
p: parallelization,
|
|
86
|
-
}));
|
|
87
|
-
if (keyBuffer.length !== derivedKey.length)
|
|
88
|
-
return false;
|
|
89
|
-
return (0, node_crypto_1.timingSafeEqual)(keyBuffer, derivedKey);
|
|
90
|
-
}
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=password.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/auth/password.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/rbac.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Request, Response, NextFunction } from '../types';
|
|
2
|
-
/**
|
|
3
|
-
* Middleware that ensures the authenticated user has one of the required roles.
|
|
4
|
-
* Expects `req.user` to be populated (e.g., by a previous session or JWT middleware),
|
|
5
|
-
* and expects `req.user.role` to be a string or array of strings.
|
|
6
|
-
*
|
|
7
|
-
* @param allowedRoles A single role string or an array of allowed roles.
|
|
8
|
-
*/
|
|
9
|
-
export declare function requireRole(allowedRoles: string | string[]): (req: Request, res: Response, next: NextFunction) => void;
|
|
10
|
-
//# sourceMappingURL=rbac.d.ts.map
|
package/dist/auth/rbac.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../src/auth/rbac.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE/D;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,IAGjD,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UA8BxD"}
|
package/dist/auth/rbac.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.requireRole = requireRole;
|
|
4
|
-
const errors_1 = require("../error/errors");
|
|
5
|
-
/**
|
|
6
|
-
* Middleware that ensures the authenticated user has one of the required roles.
|
|
7
|
-
* Expects `req.user` to be populated (e.g., by a previous session or JWT middleware),
|
|
8
|
-
* and expects `req.user.role` to be a string or array of strings.
|
|
9
|
-
*
|
|
10
|
-
* @param allowedRoles A single role string or an array of allowed roles.
|
|
11
|
-
*/
|
|
12
|
-
function requireRole(allowedRoles) {
|
|
13
|
-
const roles = Array.isArray(allowedRoles) ? allowedRoles : [allowedRoles];
|
|
14
|
-
return (req, res, next) => {
|
|
15
|
-
// 1. Ensure user is authenticated
|
|
16
|
-
if (!req.user) {
|
|
17
|
-
return next(errors_1.HttpError.unauthorized('Authentication required to access this resource'));
|
|
18
|
-
}
|
|
19
|
-
// 2. Ensure user has a role property
|
|
20
|
-
if (!req.user.role) {
|
|
21
|
-
return next(errors_1.HttpError.forbidden('Access denied: No role assigned'));
|
|
22
|
-
}
|
|
23
|
-
const userRoles = Array.isArray(req.user.role)
|
|
24
|
-
? req.user.role
|
|
25
|
-
: [req.user.role];
|
|
26
|
-
// 3. Check for intersection between user roles and allowed roles
|
|
27
|
-
const hasRole = userRoles.some((role) => roles.includes(role));
|
|
28
|
-
if (!hasRole) {
|
|
29
|
-
return next(errors_1.HttpError.forbidden('Access denied: Insufficient permissions'));
|
|
30
|
-
}
|
|
31
|
-
next();
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=rbac.js.map
|
package/dist/auth/rbac.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rbac.js","sourceRoot":"","sources":["../../src/auth/rbac.ts"],"names":[],"mappings":";;AAUA,kCAiCC;AA3CD,4CAA2C;AAG3C;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,YAA+B;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IAEzE,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACzD,kCAAkC;QAClC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,IAAI,CACT,kBAAS,CAAC,YAAY,CACpB,iDAAiD,CAClD,CACF,CAAA;QACH,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,kBAAS,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC,CAAA;QACrE,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5C,CAAC,CAAE,GAAG,CAAC,IAAI,CAAC,IAAiB;YAC7B,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAc,CAAC,CAAA;QAE7B,iEAAiE;QACjE,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAE9D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CACT,kBAAS,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAC/D,CAAA;QACH,CAAC;QAED,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;AACH,CAAC"}
|
package/dist/auth/session.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { Request, Response, NextFunction } from '../types';
|
|
2
|
-
export type SessionData = Record<string, unknown>;
|
|
3
|
-
export interface SessionStore {
|
|
4
|
-
get(sessionId: string): Promise<SessionData | null> | SessionData | null;
|
|
5
|
-
set(sessionId: string, data: SessionData, ttl?: number): Promise<void> | void;
|
|
6
|
-
destroy(sessionId: string): Promise<void> | void;
|
|
7
|
-
}
|
|
8
|
-
export declare class MemorySessionStore implements SessionStore {
|
|
9
|
-
private nativeStore;
|
|
10
|
-
private fallbackSessions;
|
|
11
|
-
private isFallback;
|
|
12
|
-
constructor();
|
|
13
|
-
get(sessionId: string): SessionData | null;
|
|
14
|
-
set(sessionId: string, data: SessionData, ttl?: number): void;
|
|
15
|
-
destroy(sessionId: string): void;
|
|
16
|
-
}
|
|
17
|
-
export interface SessionOptions {
|
|
18
|
-
secret: string;
|
|
19
|
-
store?: SessionStore;
|
|
20
|
-
cookieName?: string;
|
|
21
|
-
ttl?: number;
|
|
22
|
-
secure?: boolean;
|
|
23
|
-
sameSite?: 'Strict' | 'Lax' | 'None';
|
|
24
|
-
}
|
|
25
|
-
export declare function session(options: SessionOptions): (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
26
|
-
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/auth/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE/D,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEjD,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,WAAW,GAAG,IAAI,CAAA;IACxE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC7E,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACjD;AAED,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,gBAAgB,CAGrB;IACH,OAAO,CAAC,UAAU,CAAQ;;IAY1B,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAoB1C,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,GAAE,MAAqB,GAAG,IAAI;IAY3E,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAQjC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;CACrC;AAuBD,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,IAW/B,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,mBAqD9D"}
|
package/dist/auth/session.js
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MemorySessionStore = void 0;
|
|
4
|
-
exports.session = session;
|
|
5
|
-
const node_crypto_1 = require("node:crypto");
|
|
6
|
-
class MemorySessionStore {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.fallbackSessions = new Map();
|
|
9
|
-
this.isFallback = false;
|
|
10
|
-
try {
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
12
|
-
const { NativeSessionStore } = require('@exisjs/rs');
|
|
13
|
-
this.nativeStore = new NativeSessionStore();
|
|
14
|
-
}
|
|
15
|
-
catch {
|
|
16
|
-
this.isFallback = true;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
get(sessionId) {
|
|
20
|
-
if (!this.isFallback) {
|
|
21
|
-
const dataStr = this.nativeStore.get(sessionId);
|
|
22
|
-
if (!dataStr)
|
|
23
|
-
return null;
|
|
24
|
-
try {
|
|
25
|
-
return JSON.parse(dataStr);
|
|
26
|
-
}
|
|
27
|
-
catch {
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
const session = this.fallbackSessions.get(sessionId);
|
|
32
|
-
if (!session)
|
|
33
|
-
return null;
|
|
34
|
-
if (session.expiresAt < Date.now()) {
|
|
35
|
-
this.fallbackSessions.delete(sessionId);
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
return session.data;
|
|
39
|
-
}
|
|
40
|
-
set(sessionId, data, ttl = 86400 * 1000) {
|
|
41
|
-
if (!this.isFallback) {
|
|
42
|
-
this.nativeStore.set(sessionId, JSON.stringify(data), ttl);
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
this.fallbackSessions.set(sessionId, {
|
|
46
|
-
data,
|
|
47
|
-
expiresAt: Date.now() + ttl,
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
destroy(sessionId) {
|
|
51
|
-
if (!this.isFallback) {
|
|
52
|
-
this.nativeStore.destroy(sessionId);
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
this.fallbackSessions.delete(sessionId);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
exports.MemorySessionStore = MemorySessionStore;
|
|
59
|
-
function signCookie(val, secret) {
|
|
60
|
-
const signature = (0, node_crypto_1.createHmac)('sha256', secret).update(val).digest('base64url');
|
|
61
|
-
return `${val}.${signature}`;
|
|
62
|
-
}
|
|
63
|
-
function unsignCookie(val, secret) {
|
|
64
|
-
const parts = val.split('.');
|
|
65
|
-
if (parts.length !== 2)
|
|
66
|
-
return false;
|
|
67
|
-
const [str, signature] = parts;
|
|
68
|
-
const expectedSignature = (0, node_crypto_1.createHmac)('sha256', secret)
|
|
69
|
-
.update(str)
|
|
70
|
-
.digest('base64url');
|
|
71
|
-
const sigBuf = Buffer.from(signature);
|
|
72
|
-
const expectedBuf = Buffer.from(expectedSignature);
|
|
73
|
-
if (sigBuf.length !== expectedBuf.length)
|
|
74
|
-
return false;
|
|
75
|
-
if (!(0, node_crypto_1.timingSafeEqual)(sigBuf, expectedBuf))
|
|
76
|
-
return false;
|
|
77
|
-
return str;
|
|
78
|
-
}
|
|
79
|
-
function session(options) {
|
|
80
|
-
if (!options.secret || options.secret.length < 32) {
|
|
81
|
-
throw new Error('session options.secret must be at least 32 characters long');
|
|
82
|
-
}
|
|
83
|
-
const store = options.store || new MemorySessionStore();
|
|
84
|
-
const cookieName = options.cookieName || 'exis_sid';
|
|
85
|
-
const ttl = options.ttl || 86400 * 1000; // 1 day
|
|
86
|
-
return async (req, res, next) => {
|
|
87
|
-
let sessionId;
|
|
88
|
-
// 1. Try to get session ID from cookie
|
|
89
|
-
const cookieVal = req.cookies?.[cookieName];
|
|
90
|
-
if (cookieVal) {
|
|
91
|
-
const unsigned = unsignCookie(cookieVal, options.secret);
|
|
92
|
-
if (unsigned) {
|
|
93
|
-
sessionId = unsigned;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
// 2. Load session data or create new
|
|
97
|
-
let sessionData = {};
|
|
98
|
-
if (sessionId) {
|
|
99
|
-
const data = await store.get(sessionId);
|
|
100
|
-
if (data) {
|
|
101
|
-
sessionData = data;
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
sessionId = undefined; // Invalid or expired
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
if (!sessionId) {
|
|
108
|
-
sessionId = (0, node_crypto_1.randomBytes)(24).toString('base64url');
|
|
109
|
-
// Only set cookie if we created a new session ID
|
|
110
|
-
res.cookie(cookieName, signCookie(sessionId, options.secret), {
|
|
111
|
-
maxAge: ttl / 1000,
|
|
112
|
-
httpOnly: true,
|
|
113
|
-
secure: options.secure ?? process.env.NODE_ENV === 'production',
|
|
114
|
-
sameSite: options.sameSite ?? 'Lax',
|
|
115
|
-
path: '/',
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
// 3. Attach session to request
|
|
119
|
-
req.session = sessionData;
|
|
120
|
-
const initialState = JSON.stringify(sessionData);
|
|
121
|
-
// 4. Hook into res.raw.end to save the session automatically
|
|
122
|
-
const originalEnd = res.raw.end.bind(res.raw);
|
|
123
|
-
res.raw.end = function (...args) {
|
|
124
|
-
if (JSON.stringify(sessionData) !== initialState) {
|
|
125
|
-
store.set(sessionId, sessionData, ttl);
|
|
126
|
-
}
|
|
127
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
128
|
-
// @ts-ignore
|
|
129
|
-
return originalEnd(...args);
|
|
130
|
-
};
|
|
131
|
-
next();
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
//# sourceMappingURL=session.js.map
|
package/dist/auth/session.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/auth/session.ts"],"names":[],"mappings":"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"}
|
package/dist/cache/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAEA,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9D;AAED,cAAc,qBAAqB,CAAA;AACnC,cAAc,SAAS,CAAA"}
|
package/dist/cache/index.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.revalidateTag = revalidateTag;
|
|
18
|
-
const store_1 = require("./store");
|
|
19
|
-
async function revalidateTag(tag) {
|
|
20
|
-
const store = (0, store_1.getCacheStore)();
|
|
21
|
-
await store.revalidateTag(tag);
|
|
22
|
-
}
|
|
23
|
-
__exportStar(require("../middleware/cache"), exports);
|
|
24
|
-
__exportStar(require("./store"), exports);
|
|
25
|
-
//# sourceMappingURL=index.js.map
|
package/dist/cache/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,sCAGC;AALD,mCAAuC;AAEhC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,MAAM,KAAK,GAAG,IAAA,qBAAa,GAAE,CAAA;IAC7B,MAAM,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;AAChC,CAAC;AAED,sDAAmC;AACnC,0CAAuB"}
|
package/dist/cache/store.d.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
export interface CacheItem {
|
|
2
|
-
data: any;
|
|
3
|
-
tags: string[];
|
|
4
|
-
createdAt: number;
|
|
5
|
-
}
|
|
6
|
-
export interface CacheStore {
|
|
7
|
-
get(key: string): Promise<CacheItem | null>;
|
|
8
|
-
set(key: string, data: any, tags: string[], ttlMs?: number): Promise<void>;
|
|
9
|
-
revalidateTag(tag: string): Promise<void>;
|
|
10
|
-
getTags(): Promise<Record<string, number>>;
|
|
11
|
-
}
|
|
12
|
-
export declare class FileSystemCacheStore implements CacheStore {
|
|
13
|
-
private cacheDir;
|
|
14
|
-
private tagsPath;
|
|
15
|
-
constructor(cwd: string);
|
|
16
|
-
private ensureDir;
|
|
17
|
-
private hashKey;
|
|
18
|
-
getTags(): Promise<Record<string, number>>;
|
|
19
|
-
get(key: string): Promise<CacheItem | null>;
|
|
20
|
-
set(key: string, data: any, tags: string[], _ttlMs?: number): Promise<void>;
|
|
21
|
-
revalidateTag(tag: string): Promise<void>;
|
|
22
|
-
}
|
|
23
|
-
export declare class MemoryCacheStore implements CacheStore {
|
|
24
|
-
private cache;
|
|
25
|
-
private isWorker;
|
|
26
|
-
constructor(capacity?: number);
|
|
27
|
-
get(key: string): Promise<CacheItem | null>;
|
|
28
|
-
set(key: string, data: any, tags: string[], _ttlMs?: number): Promise<void>;
|
|
29
|
-
revalidateTag(tag: string): Promise<void>;
|
|
30
|
-
getTags(): Promise<Record<string, number>>;
|
|
31
|
-
}
|
|
32
|
-
export interface MinimalRedisClient {
|
|
33
|
-
get(key: string): Promise<string | null>;
|
|
34
|
-
set(key: string, value: string, mode: string, duration: number): Promise<unknown>;
|
|
35
|
-
del(key: string): Promise<number>;
|
|
36
|
-
flushdb(): Promise<unknown>;
|
|
37
|
-
}
|
|
38
|
-
export declare class RedisCacheStore implements CacheStore {
|
|
39
|
-
private client;
|
|
40
|
-
private prefix;
|
|
41
|
-
constructor(client: MinimalRedisClient, prefix?: string);
|
|
42
|
-
getTags(): Promise<Record<string, number>>;
|
|
43
|
-
get(key: string): Promise<CacheItem | null>;
|
|
44
|
-
set(key: string, data: any, tags: string[], ttlMs?: number): Promise<void>;
|
|
45
|
-
revalidateTag(tag: string): Promise<void>;
|
|
46
|
-
}
|
|
47
|
-
export declare class TieredCacheStore implements CacheStore {
|
|
48
|
-
private local;
|
|
49
|
-
private remote;
|
|
50
|
-
constructor(local: CacheStore, remote: CacheStore);
|
|
51
|
-
get(key: string): Promise<CacheItem | null>;
|
|
52
|
-
set(key: string, data: any, tags: string[], ttlMs?: number): Promise<void>;
|
|
53
|
-
revalidateTag(tag: string): Promise<void>;
|
|
54
|
-
getTags(): Promise<Record<string, number>>;
|
|
55
|
-
}
|
|
56
|
-
export declare function getCacheStore(): CacheStore;
|
|
57
|
-
export declare function setCacheStore(store: CacheStore): void;
|
|
58
|
-
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/cache/store.ts"],"names":[],"mappings":"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"}
|