@gettersethya/mira 0.1.0-alpha.2 → 0.1.0-alpha.21
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 +174 -0
- package/dist/src/app/app.d.ts +45 -26
- package/dist/src/app/app.d.ts.map +1 -1
- package/dist/src/app/app.js +138 -41
- package/dist/src/app/app.js.map +1 -1
- package/dist/src/app/builder.d.ts +56 -15
- package/dist/src/app/builder.d.ts.map +1 -1
- package/dist/src/app/builder.js +56 -4
- package/dist/src/app/builder.js.map +1 -1
- package/dist/src/app/define-rule.d.ts +70 -0
- package/dist/src/app/define-rule.d.ts.map +1 -0
- package/dist/src/app/define-rule.js +42 -0
- package/dist/src/app/define-rule.js.map +1 -0
- package/dist/src/app/index.d.ts +8 -3
- package/dist/src/app/index.d.ts.map +1 -1
- package/dist/src/app/index.js +3 -0
- package/dist/src/app/index.js.map +1 -1
- package/dist/src/app/plugin.d.ts +83 -0
- package/dist/src/app/plugin.d.ts.map +1 -0
- package/dist/src/app/plugin.js +20 -0
- package/dist/src/app/plugin.js.map +1 -0
- package/dist/src/app/types.d.ts +4 -4
- package/dist/src/app/types.d.ts.map +1 -1
- package/dist/src/cache/cached-collection.d.ts +7 -5
- package/dist/src/cache/cached-collection.d.ts.map +1 -1
- package/dist/src/cache/cached-collection.js +8 -5
- package/dist/src/cache/cached-collection.js.map +1 -1
- package/dist/src/cache/collection-cache.d.ts +1 -1
- package/dist/src/cache/collection-cache.d.ts.map +1 -1
- package/dist/src/cache/collection-cache.js +1 -1
- package/dist/src/cache/collection-cache.js.map +1 -1
- package/dist/src/cache/ctx-key.d.ts +15 -0
- package/dist/src/cache/ctx-key.d.ts.map +1 -0
- package/dist/src/cache/ctx-key.js +37 -0
- package/dist/src/cache/ctx-key.js.map +1 -0
- package/dist/src/cache/index.d.ts +2 -1
- package/dist/src/cache/index.d.ts.map +1 -1
- package/dist/src/cache/index.js +2 -1
- package/dist/src/cache/index.js.map +1 -1
- package/dist/src/collection-service/collection-service.d.ts +7 -5
- package/dist/src/collection-service/collection-service.d.ts.map +1 -1
- package/dist/src/collection-service/collection-service.js +201 -51
- package/dist/src/collection-service/collection-service.js.map +1 -1
- package/dist/src/collection-service/context.d.ts +2 -0
- package/dist/src/collection-service/context.d.ts.map +1 -1
- package/dist/src/collection-service/decode.d.ts +4 -2
- package/dist/src/collection-service/decode.d.ts.map +1 -1
- package/dist/src/collection-service/decode.js +32 -16
- package/dist/src/collection-service/decode.js.map +1 -1
- package/dist/src/collection-service/errors.d.ts +1 -1
- package/dist/src/collection-service/errors.d.ts.map +1 -1
- package/dist/src/collection-service/errors.js +1 -1
- package/dist/src/collection-service/errors.js.map +1 -1
- package/dist/src/collection-service/index.d.ts +1 -1
- package/dist/src/collection-service/index.d.ts.map +1 -1
- package/dist/src/collection-service/index.js.map +1 -1
- package/dist/src/collection-service/input-schema.d.ts +5 -4
- package/dist/src/collection-service/input-schema.d.ts.map +1 -1
- package/dist/src/collection-service/input-schema.js +31 -18
- package/dist/src/collection-service/input-schema.js.map +1 -1
- package/dist/src/collection-service/where.d.ts +14 -2
- package/dist/src/collection-service/where.d.ts.map +1 -1
- package/dist/src/collection-service/where.js +35 -1
- package/dist/src/collection-service/where.js.map +1 -1
- package/dist/src/config/config.d.ts +4 -4
- package/dist/src/config/config.d.ts.map +1 -1
- package/dist/src/config/config.js +34 -5
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/types.d.ts +9 -0
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/cron/cron-service.d.ts +14 -0
- package/dist/src/cron/cron-service.d.ts.map +1 -0
- package/dist/src/cron/cron-service.js +135 -0
- package/dist/src/cron/cron-service.js.map +1 -0
- package/dist/src/cron/index.d.ts +4 -0
- package/dist/src/cron/index.d.ts.map +1 -0
- package/dist/src/cron/index.js +3 -0
- package/dist/src/cron/index.js.map +1 -0
- package/dist/src/cron/persistence.d.ts +22 -0
- package/dist/src/cron/persistence.d.ts.map +1 -0
- package/dist/src/cron/persistence.js +48 -0
- package/dist/src/cron/persistence.js.map +1 -0
- package/dist/src/cron/types.d.ts +51 -0
- package/dist/src/cron/types.d.ts.map +1 -0
- package/dist/src/cron/types.js +4 -0
- package/dist/src/cron/types.js.map +1 -0
- package/dist/src/crypto/crypto.d.ts +3 -2
- package/dist/src/crypto/crypto.d.ts.map +1 -1
- package/dist/src/crypto/crypto.js +1 -1
- package/dist/src/crypto/crypto.js.map +1 -1
- package/dist/src/crypto/node.d.ts.map +1 -1
- package/dist/src/crypto/node.js.map +1 -1
- package/dist/src/databases/sqlite.d.ts.map +1 -1
- package/dist/src/databases/sqlite.js +2 -2
- package/dist/src/databases/sqlite.js.map +1 -1
- package/dist/src/dialect/dialect-sqlite.d.ts +9 -0
- package/dist/src/dialect/dialect-sqlite.d.ts.map +1 -0
- package/dist/src/dialect/dialect-sqlite.js +109 -0
- package/dist/src/dialect/dialect-sqlite.js.map +1 -0
- package/dist/src/dialect/dialect.d.ts +26 -0
- package/dist/src/dialect/dialect.d.ts.map +1 -0
- package/dist/src/dialect/dialect.js +5 -0
- package/dist/src/dialect/dialect.js.map +1 -0
- package/dist/src/hooks/hook-collection.d.ts +5 -0
- package/dist/src/hooks/hook-collection.d.ts.map +1 -0
- package/dist/src/hooks/hook-collection.js +77 -0
- package/dist/src/hooks/hook-collection.js.map +1 -0
- package/dist/src/hooks/hook-service.d.ts +38 -0
- package/dist/src/hooks/hook-service.d.ts.map +1 -0
- package/dist/src/hooks/hook-service.js +150 -0
- package/dist/src/hooks/hook-service.js.map +1 -0
- package/dist/src/hooks/index.d.ts +4 -0
- package/dist/src/hooks/index.d.ts.map +1 -0
- package/dist/src/hooks/index.js +3 -0
- package/dist/src/hooks/index.js.map +1 -0
- package/dist/src/hooks/types.d.ts +74 -0
- package/dist/src/hooks/types.d.ts.map +1 -0
- package/dist/src/hooks/types.js +2 -0
- package/dist/src/hooks/types.js.map +1 -0
- package/dist/src/http/auth-node.d.ts.map +1 -1
- package/dist/src/http/auth-node.js +1 -1
- package/dist/src/http/auth-node.js.map +1 -1
- package/dist/src/http/auth.d.ts +3 -1
- package/dist/src/http/auth.d.ts.map +1 -1
- package/dist/src/http/auth.js +12 -2
- package/dist/src/http/auth.js.map +1 -1
- package/dist/src/http/cors.d.ts +94 -0
- package/dist/src/http/cors.d.ts.map +1 -0
- package/dist/src/http/cors.js +57 -0
- package/dist/src/http/cors.js.map +1 -0
- package/dist/src/http/errors.d.ts +1 -1
- package/dist/src/http/errors.d.ts.map +1 -1
- package/dist/src/http/errors.js +7 -7
- package/dist/src/http/errors.js.map +1 -1
- package/dist/src/http/file-serve.d.ts +4 -4
- package/dist/src/http/file-serve.d.ts.map +1 -1
- package/dist/src/http/file-serve.js +39 -34
- package/dist/src/http/file-serve.js.map +1 -1
- package/dist/src/http/file-token.d.ts +4 -3
- package/dist/src/http/file-token.d.ts.map +1 -1
- package/dist/src/http/file-token.js +19 -17
- package/dist/src/http/file-token.js.map +1 -1
- package/dist/src/http/files.d.ts +3 -3
- package/dist/src/http/files.d.ts.map +1 -1
- package/dist/src/http/files.js +5 -5
- package/dist/src/http/files.js.map +1 -1
- package/dist/src/http/index.d.ts +8 -5
- package/dist/src/http/index.d.ts.map +1 -1
- package/dist/src/http/index.js +5 -3
- package/dist/src/http/index.js.map +1 -1
- package/dist/src/http/ip-middleware.d.ts +3 -2
- package/dist/src/http/ip-middleware.d.ts.map +1 -1
- package/dist/src/http/ip-middleware.js +7 -4
- package/dist/src/http/ip-middleware.js.map +1 -1
- package/dist/src/http/params.d.ts +3 -3
- package/dist/src/http/params.d.ts.map +1 -1
- package/dist/src/http/params.js +2 -2
- package/dist/src/http/params.js.map +1 -1
- package/dist/src/http/port-retry.d.ts +18 -0
- package/dist/src/http/port-retry.d.ts.map +1 -0
- package/dist/src/http/port-retry.js +43 -0
- package/dist/src/http/port-retry.js.map +1 -0
- package/dist/src/http/router.d.ts +10 -7
- package/dist/src/http/router.d.ts.map +1 -1
- package/dist/src/http/router.js +184 -63
- package/dist/src/http/router.js.map +1 -1
- package/dist/src/http/schema.d.ts +5 -0
- package/dist/src/http/schema.d.ts.map +1 -0
- package/dist/src/http/schema.js +18 -0
- package/dist/src/http/schema.js.map +1 -0
- package/dist/src/http/server-factory-node.d.ts.map +1 -1
- package/dist/src/http/server-factory-node.js +1 -1
- package/dist/src/http/server-factory-node.js.map +1 -1
- package/dist/src/http/server-factory.d.ts +3 -3
- package/dist/src/http/server-factory.d.ts.map +1 -1
- package/dist/src/http/server-factory.js +1 -1
- package/dist/src/http/server-factory.js.map +1 -1
- package/dist/src/http/telemetry-routes.d.ts +5 -0
- package/dist/src/http/telemetry-routes.d.ts.map +1 -0
- package/dist/src/http/telemetry-routes.js +220 -0
- package/dist/src/http/telemetry-routes.js.map +1 -0
- package/dist/src/index.d.ts +18 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +14 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/migrator/dialect-sqlite.d.ts.map +1 -1
- package/dist/src/migrator/dialect-sqlite.js +7 -1
- package/dist/src/migrator/dialect-sqlite.js.map +1 -1
- package/dist/src/migrator/index.d.ts +4 -4
- package/dist/src/migrator/index.d.ts.map +1 -1
- package/dist/src/migrator/index.js +2 -2
- package/dist/src/migrator/index.js.map +1 -1
- package/dist/src/migrator/migrator.d.ts +8 -8
- package/dist/src/migrator/migrator.d.ts.map +1 -1
- package/dist/src/migrator/migrator.js +16 -13
- package/dist/src/migrator/migrator.js.map +1 -1
- package/dist/src/migrator/schema-diff.d.ts +2 -2
- package/dist/src/migrator/schema-diff.d.ts.map +1 -1
- package/dist/src/migrator/schema-diff.js.map +1 -1
- package/dist/src/migrator/types.d.ts +5 -5
- package/dist/src/migrator/types.d.ts.map +1 -1
- package/dist/src/migrator/types.js +6 -7
- package/dist/src/migrator/types.js.map +1 -1
- package/dist/src/platforms/node.d.ts +1 -1
- package/dist/src/platforms/node.d.ts.map +1 -1
- package/dist/src/platforms/node.js +1 -1
- package/dist/src/platforms/node.js.map +1 -1
- package/dist/src/repository/id.d.ts +1 -1
- package/dist/src/repository/id.d.ts.map +1 -1
- package/dist/src/repository/id.js +15 -3
- package/dist/src/repository/id.js.map +1 -1
- package/dist/src/repository/repository.d.ts +3 -2
- package/dist/src/repository/repository.d.ts.map +1 -1
- package/dist/src/repository/repository.js +11 -7
- package/dist/src/repository/repository.js.map +1 -1
- package/dist/src/rule/compiler.d.ts.map +1 -1
- package/dist/src/rule/compiler.js +2 -0
- package/dist/src/rule/compiler.js.map +1 -1
- package/dist/src/rule/enforcer.d.ts.map +1 -1
- package/dist/src/rule/enforcer.js.map +1 -1
- package/dist/src/storage/index.d.ts +1 -1
- package/dist/src/storage/index.d.ts.map +1 -1
- package/dist/src/storage/index.js +1 -1
- package/dist/src/storage/index.js.map +1 -1
- package/dist/src/storage/local-preset.d.ts.map +1 -1
- package/dist/src/storage/local-preset.js.map +1 -1
- package/dist/src/storage/storage.d.ts +2 -2
- package/dist/src/storage/storage.d.ts.map +1 -1
- package/dist/src/storage/storage.js +8 -26
- package/dist/src/storage/storage.js.map +1 -1
- package/dist/src/telemetry/collections.d.ts +4 -0
- package/dist/src/telemetry/collections.d.ts.map +1 -0
- package/dist/src/telemetry/collections.js +19 -0
- package/dist/src/telemetry/collections.js.map +1 -0
- package/dist/src/telemetry/index.d.ts +17 -3
- package/dist/src/telemetry/index.d.ts.map +1 -1
- package/dist/src/telemetry/index.js +15 -5
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/logger.d.ts +29 -2
- package/dist/src/telemetry/logger.d.ts.map +1 -1
- package/dist/src/telemetry/logger.js +52 -15
- package/dist/src/telemetry/logger.js.map +1 -1
- package/dist/src/telemetry/sqlite-logger.d.ts +36 -0
- package/dist/src/telemetry/sqlite-logger.d.ts.map +1 -0
- package/dist/src/telemetry/sqlite-logger.js +193 -0
- package/dist/src/telemetry/sqlite-logger.js.map +1 -0
- package/dist/src/telemetry/telemetry-sql-client.d.ts +11 -0
- package/dist/src/telemetry/telemetry-sql-client.d.ts.map +1 -0
- package/dist/src/telemetry/telemetry-sql-client.js +8 -0
- package/dist/src/telemetry/telemetry-sql-client.js.map +1 -0
- package/dist/src/telemetry/tracer.d.ts +16 -1
- package/dist/src/telemetry/tracer.d.ts.map +1 -1
- package/dist/src/telemetry/tracer.js +87 -70
- package/dist/src/telemetry/tracer.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +11 -0
- package/dist/src/telemetry/types.d.ts.map +1 -0
- package/dist/src/telemetry/types.js +2 -0
- package/dist/src/telemetry/types.js.map +1 -0
- package/dist/src/thumbnail/index.d.ts +2 -2
- package/dist/src/thumbnail/index.d.ts.map +1 -1
- package/dist/src/thumbnail/index.js +1 -1
- package/dist/src/thumbnail/index.js.map +1 -1
- package/dist/src/thumbnail/photon.d.ts.map +1 -1
- package/dist/src/thumbnail/photon.js +1 -1
- package/dist/src/thumbnail/photon.js.map +1 -1
- package/dist/src/thumbnail/types.d.ts +1 -1
- package/dist/src/thumbnail/types.d.ts.map +1 -1
- package/dist/src/thumbnail/types.js +2 -2
- package/dist/src/thumbnail/types.js.map +1 -1
- package/dist/tests/app/app.test.js +101 -26
- package/dist/tests/app/app.test.js.map +1 -1
- package/dist/tests/app/builder.test.js +77 -9
- package/dist/tests/app/builder.test.js.map +1 -1
- package/dist/tests/app/define-rule.test.d.ts +2 -0
- package/dist/tests/app/define-rule.test.d.ts.map +1 -0
- package/dist/tests/app/define-rule.test.js +147 -0
- package/dist/tests/app/define-rule.test.js.map +1 -0
- package/dist/tests/cache/cached-collection.test.js +200 -40
- package/dist/tests/cache/cached-collection.test.js.map +1 -1
- package/dist/tests/cache/collection-cache.test.js +1 -1
- package/dist/tests/cache/collection-cache.test.js.map +1 -1
- package/dist/tests/collection-service/auth-credentials.test.d.ts +2 -0
- package/dist/tests/collection-service/auth-credentials.test.d.ts.map +1 -0
- package/dist/tests/collection-service/auth-credentials.test.js +172 -0
- package/dist/tests/collection-service/auth-credentials.test.js.map +1 -0
- package/dist/tests/collection-service/collection-service.test.js +374 -174
- package/dist/tests/collection-service/collection-service.test.js.map +1 -1
- package/dist/tests/collection-service/decode.test.d.ts +2 -0
- package/dist/tests/collection-service/decode.test.d.ts.map +1 -0
- package/dist/tests/collection-service/decode.test.js +37 -0
- package/dist/tests/collection-service/decode.test.js.map +1 -0
- package/dist/tests/collection-service/input-schema.test.js +162 -95
- package/dist/tests/collection-service/input-schema.test.js.map +1 -1
- package/dist/tests/config/config.test.js +15 -4
- package/dist/tests/config/config.test.js.map +1 -1
- package/dist/tests/cron/cron-integration.test.d.ts +2 -0
- package/dist/tests/cron/cron-integration.test.d.ts.map +1 -0
- package/dist/tests/cron/cron-integration.test.js +109 -0
- package/dist/tests/cron/cron-integration.test.js.map +1 -0
- package/dist/tests/cron/cron-persistence.test.d.ts +2 -0
- package/dist/tests/cron/cron-persistence.test.d.ts.map +1 -0
- package/dist/tests/cron/cron-persistence.test.js +123 -0
- package/dist/tests/cron/cron-persistence.test.js.map +1 -0
- package/dist/tests/cron/cron-service.test.d.ts +2 -0
- package/dist/tests/cron/cron-service.test.d.ts.map +1 -0
- package/dist/tests/cron/cron-service.test.js +124 -0
- package/dist/tests/cron/cron-service.test.js.map +1 -0
- package/dist/tests/crypto/crypto.test.js +2 -2
- package/dist/tests/crypto/crypto.test.js.map +1 -1
- package/dist/tests/hooks/hook-collection.test.d.ts +2 -0
- package/dist/tests/hooks/hook-collection.test.d.ts.map +1 -0
- package/dist/tests/hooks/hook-collection.test.js +110 -0
- package/dist/tests/hooks/hook-collection.test.js.map +1 -0
- package/dist/tests/hooks/hook-service.test.d.ts +2 -0
- package/dist/tests/hooks/hook-service.test.d.ts.map +1 -0
- package/dist/tests/hooks/hook-service.test.js +220 -0
- package/dist/tests/hooks/hook-service.test.js.map +1 -0
- package/dist/tests/http/cors.test.d.ts +2 -0
- package/dist/tests/http/cors.test.d.ts.map +1 -0
- package/dist/tests/http/cors.test.js +211 -0
- package/dist/tests/http/cors.test.js.map +1 -0
- package/dist/tests/http/file-serve.test.js +63 -54
- package/dist/tests/http/file-serve.test.js.map +1 -1
- package/dist/tests/http/file-token.test.js +69 -51
- package/dist/tests/http/file-token.test.js.map +1 -1
- package/dist/tests/http/ip-middleware.test.js +13 -13
- package/dist/tests/http/ip-middleware.test.js.map +1 -1
- package/dist/tests/http/port-retry.test.d.ts +2 -0
- package/dist/tests/http/port-retry.test.d.ts.map +1 -0
- package/dist/tests/http/port-retry.test.js +52 -0
- package/dist/tests/http/port-retry.test.js.map +1 -0
- package/dist/tests/http/router.test.js +260 -85
- package/dist/tests/http/router.test.js.map +1 -1
- package/dist/tests/migrator/dialect-sqlite.test.js +1 -1
- package/dist/tests/migrator/dialect-sqlite.test.js.map +1 -1
- package/dist/tests/migrator/integration.test.js +6 -6
- package/dist/tests/migrator/integration.test.js.map +1 -1
- package/dist/tests/migrator/migrator.test.js +5 -5
- package/dist/tests/migrator/migrator.test.js.map +1 -1
- package/dist/tests/migrator/schema-diff.test.js.map +1 -1
- package/dist/tests/repository/repository.test.js +71 -8
- package/dist/tests/repository/repository.test.js.map +1 -1
- package/dist/tests/rule/compiler.test.js +1 -1
- package/dist/tests/rule/compiler.test.js.map +1 -1
- package/dist/tests/rule/enforcer.test.js +9 -9
- package/dist/tests/rule/enforcer.test.js.map +1 -1
- package/dist/tests/storage/storage.test.js +15 -15
- package/dist/tests/storage/storage.test.js.map +1 -1
- package/dist/tests/telemetry/collections.test.d.ts +2 -0
- package/dist/tests/telemetry/collections.test.d.ts.map +1 -0
- package/dist/tests/telemetry/collections.test.js +67 -0
- package/dist/tests/telemetry/collections.test.js.map +1 -0
- package/dist/tests/telemetry/instrumentation.test.js +27 -20
- package/dist/tests/telemetry/instrumentation.test.js.map +1 -1
- package/dist/tests/telemetry/logger.test.js +38 -6
- package/dist/tests/telemetry/logger.test.js.map +1 -1
- package/dist/tests/telemetry/sqlite-logger.test.d.ts +2 -0
- package/dist/tests/telemetry/sqlite-logger.test.d.ts.map +1 -0
- package/dist/tests/telemetry/sqlite-logger.test.js +272 -0
- package/dist/tests/telemetry/sqlite-logger.test.js.map +1 -0
- package/dist/tests/telemetry/telemetry-routes.test.d.ts +2 -0
- package/dist/tests/telemetry/telemetry-routes.test.d.ts.map +1 -0
- package/dist/tests/telemetry/telemetry-routes.test.js +154 -0
- package/dist/tests/telemetry/telemetry-routes.test.js.map +1 -0
- package/dist/tests/telemetry/tracer.test.js +41 -4
- package/dist/tests/telemetry/tracer.test.js.map +1 -1
- package/dist/tests/thumbnail/photon.test.js +35 -35
- package/dist/tests/thumbnail/photon.test.js.map +1 -1
- package/dist/tests/thumbnail/thumbnail.test.js +7 -7
- package/dist/tests/thumbnail/thumbnail.test.js.map +1 -1
- package/package.json +9 -9
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import type { Layer } from "effect";
|
|
2
1
|
import type { AnyCollectionDef } from "@gettersethya/mira-client";
|
|
3
|
-
import type {
|
|
2
|
+
import type { Layer } from "effect";
|
|
3
|
+
import type { CronDef } from "../cron/types.js";
|
|
4
|
+
import type { CorsConfig } from "../http/cors.js";
|
|
4
5
|
import { MiraApp } from "./app.js";
|
|
6
|
+
import type { RuleBinding } from "./define-rule.js";
|
|
7
|
+
import type { MiraDatabase, MiraPlatform, MiraStorage, PlatformServices } from "./types.js";
|
|
5
8
|
/**
|
|
6
9
|
* Configuration object for `MiraApp`. Constructed by `MiraBuilder` after all
|
|
7
|
-
* required steps are called.
|
|
8
|
-
* to `ConsoleTelemetryLayer
|
|
10
|
+
* required steps are called. `telemetry` and `cors` are defaulted when unset —
|
|
11
|
+
* `telemetry` to `ConsoleTelemetryLayer`, `cors` to `defaultCorsConfig`
|
|
12
|
+
* (permissive).
|
|
9
13
|
*
|
|
10
14
|
* @see MiraBuilder — builds this config
|
|
11
15
|
*/
|
|
@@ -14,7 +18,10 @@ export interface MiraAppConfig {
|
|
|
14
18
|
database: MiraDatabase;
|
|
15
19
|
storage: MiraStorage;
|
|
16
20
|
collections: ReadonlyArray<AnyCollectionDef>;
|
|
17
|
-
|
|
21
|
+
rules?: ReadonlyArray<RuleBinding>;
|
|
22
|
+
crons: ReadonlyArray<CronDef<any>>;
|
|
23
|
+
telemetry: Layer.Layer<never, never, PlatformServices>;
|
|
24
|
+
cors: CorsConfig;
|
|
18
25
|
}
|
|
19
26
|
/**
|
|
20
27
|
* Phantom-type builder for constructing a `MiraApp`.
|
|
@@ -31,6 +38,9 @@ export interface MiraAppConfig {
|
|
|
31
38
|
*
|
|
32
39
|
* Optional step: `.telemetry(l)` — custom telemetry layer
|
|
33
40
|
*
|
|
41
|
+
* Optional step: `.cors(c)` — CORS configuration (defaults to permissive,
|
|
42
|
+
* so a separately-hosted frontend works with zero config)
|
|
43
|
+
*
|
|
34
44
|
* @example
|
|
35
45
|
* const app = Mira.builder()
|
|
36
46
|
* .platform(NodePlatform)
|
|
@@ -43,7 +53,7 @@ export interface MiraAppConfig {
|
|
|
43
53
|
* @see MiraApp — the assembled application
|
|
44
54
|
* @see Mira.builder — entry point
|
|
45
55
|
*/
|
|
46
|
-
export declare class MiraBuilder<Has extends string = never> {
|
|
56
|
+
export declare class MiraBuilder<Has extends string = never, R = never> {
|
|
47
57
|
#private;
|
|
48
58
|
constructor(config?: Partial<MiraAppConfig>);
|
|
49
59
|
/** @internal for tests only */
|
|
@@ -56,7 +66,7 @@ export declare class MiraBuilder<Has extends string = never> {
|
|
|
56
66
|
* @param p - A MiraPlatform preset (e.g., NodePlatform)
|
|
57
67
|
* @returns A new builder with "platform" added to the phantom type
|
|
58
68
|
*/
|
|
59
|
-
platform(p: MiraPlatform): MiraBuilder<Has | "platform">;
|
|
69
|
+
platform(p: MiraPlatform): MiraBuilder<Has | "platform", R>;
|
|
60
70
|
/**
|
|
61
71
|
* Set the database backend.
|
|
62
72
|
* Required step. The database provides SqlClient and Dialect implementations.
|
|
@@ -64,7 +74,7 @@ export declare class MiraBuilder<Has extends string = never> {
|
|
|
64
74
|
* @param d - A MiraDatabase preset (e.g., SqliteDatabase({ filename: "data.db" }))
|
|
65
75
|
* @returns A new builder with "database" added to the phantom type
|
|
66
76
|
*/
|
|
67
|
-
database(d: MiraDatabase): MiraBuilder<Has | "database">;
|
|
77
|
+
database(d: MiraDatabase): MiraBuilder<Has | "database", R>;
|
|
68
78
|
/**
|
|
69
79
|
* Set the file storage backend.
|
|
70
80
|
* Required step. Storage provides FileStorage for file upload/download operations.
|
|
@@ -72,24 +82,55 @@ export declare class MiraBuilder<Has extends string = never> {
|
|
|
72
82
|
* @param s - A MiraStorage preset (e.g., LocalFileStorage({ directory: "./uploads" }))
|
|
73
83
|
* @returns A new builder with "storage" added to the phantom type
|
|
74
84
|
*/
|
|
75
|
-
storage(s: MiraStorage): MiraBuilder<Has | "storage">;
|
|
85
|
+
storage(s: MiraStorage): MiraBuilder<Has | "storage", R>;
|
|
76
86
|
/**
|
|
77
87
|
* Set the collection definitions.
|
|
78
|
-
* Required step. The collections define the schema
|
|
88
|
+
* Required step. The collections define the schema for all entities.
|
|
79
89
|
*
|
|
80
90
|
* @param c - Array of collection definitions from BaseCollection.define(), AuthCollection.define(),
|
|
81
91
|
* or ViewCollection.define()
|
|
82
92
|
* @returns A new builder with "collections" added to the phantom type
|
|
83
93
|
*/
|
|
84
|
-
collections(c: ReadonlyArray<AnyCollectionDef>): MiraBuilder<Has | "collections">;
|
|
94
|
+
collections(c: ReadonlyArray<AnyCollectionDef>): MiraBuilder<Has | "collections", R>;
|
|
95
|
+
/**
|
|
96
|
+
* Set rule bindings for collections (optional).
|
|
97
|
+
* Rules are defined server-only via `Mira.defineRule()` and are merged onto
|
|
98
|
+
* collection schemas at build time. Collections without rules deny all actions.
|
|
99
|
+
*
|
|
100
|
+
* @param r - Array of RuleBinding from Mira.defineRule(collection, cb)
|
|
101
|
+
* @returns A new builder (same phantom type — rules is optional)
|
|
102
|
+
*/
|
|
103
|
+
rules(r: ReadonlyArray<RuleBinding>): MiraBuilder<Has, R>;
|
|
104
|
+
/**
|
|
105
|
+
* Set cron job definitions (optional).
|
|
106
|
+
* Crons are started as scoped fibers on boot and run on their schedule until the server stops.
|
|
107
|
+
*
|
|
108
|
+
* @param c - Array of CronDef objects with name, schedule, and handler
|
|
109
|
+
* @returns A new builder (same phantom type — crons is optional)
|
|
110
|
+
*/
|
|
111
|
+
crons<R2>(c: ReadonlyArray<CronDef<R2>>): MiraBuilder<Has, R | R2>;
|
|
85
112
|
/**
|
|
86
113
|
* Set a custom telemetry layer (optional).
|
|
87
|
-
* Defaults to `ConsoleTelemetryLayer` (prints JSON trace lines to stdout)
|
|
114
|
+
* Defaults to `ConsoleTelemetryLayer` (prints JSON trace lines to stdout),
|
|
115
|
+
* or `makeConsoleTelemetryLayer({ pretty: true })` for Chalk-colored output.
|
|
88
116
|
*
|
|
89
|
-
* @param l - A Layer providing telemetry services
|
|
117
|
+
* @param l - A Layer providing telemetry services (may require platform services)
|
|
90
118
|
* @returns A new builder with "telemetry" added to the phantom type
|
|
91
119
|
*/
|
|
92
|
-
telemetry(l: Layer.Layer<never, never,
|
|
120
|
+
telemetry(l: Layer.Layer<never, never, PlatformServices>): MiraBuilder<Has | "telemetry", R>;
|
|
121
|
+
/**
|
|
122
|
+
* Set the CORS configuration (optional).
|
|
123
|
+
* Defaults to `defaultCorsConfig` — every requesting origin is reflected and
|
|
124
|
+
* credentials are allowed, so a frontend hosted on another origin works
|
|
125
|
+
* (including cookie sessions) without any configuration. This default is
|
|
126
|
+
* development-first; pass explicit `allowedOrigins` to lock the API down.
|
|
127
|
+
*
|
|
128
|
+
* @param c - A CorsConfig (see `@/http/cors.js`)
|
|
129
|
+
* @returns A new builder (same phantom type — cors is optional)
|
|
130
|
+
*
|
|
131
|
+
* @throws If `credentials: true` is combined with a wildcard origin
|
|
132
|
+
*/
|
|
133
|
+
cors(c: CorsConfig): MiraBuilder<Has, R>;
|
|
93
134
|
/**
|
|
94
135
|
* Build the MiraApp from the accumulated configuration.
|
|
95
136
|
* Only compiles when all required steps (platform, database, storage, collections)
|
|
@@ -101,6 +142,6 @@ export declare class MiraBuilder<Has extends string = never> {
|
|
|
101
142
|
* @throws If build() is called before all required steps are completed
|
|
102
143
|
* (caught at compile time by the phantom type)
|
|
103
144
|
*/
|
|
104
|
-
build(this: MiraBuilder<"platform" | "database" | "storage" | "collections">): MiraApp
|
|
145
|
+
build(this: MiraBuilder<"platform" | "database" | "storage" | "collections", R>): MiraApp<R>;
|
|
105
146
|
}
|
|
106
147
|
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/app/builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/app/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAIhD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE3F;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,YAAY,CAAA;IACtB,QAAQ,EAAE,YAAY,CAAA;IACtB,OAAO,EAAE,WAAW,CAAA;IACpB,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;IAC5C,KAAK,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAClC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IAClC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAA;IACtD,IAAI,EAAE,UAAU,CAAA;CACjB;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,WAAW,CAAC,GAAG,SAAS,MAAM,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK;;gBAGhD,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM;IAI/C,+BAA+B;IAC/B,iBAAiB,IAAI,OAAO,CAAC,aAAa,CAAC;IAK3C;;;;;;;OAOG;IACH,QAAQ,CAAC,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC,GAAG,GAAG,UAAU,EAAE,CAAC,CAAC;IAI3D;;;;;;OAMG;IACH,QAAQ,CAAC,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC,GAAG,GAAG,UAAU,EAAE,CAAC,CAAC;IAI3D;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC,GAAG,GAAG,SAAS,EAAE,CAAC,CAAC;IAIxD;;;;;;;OAOG;IACH,WAAW,CAAC,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,WAAW,CAAC,GAAG,GAAG,aAAa,EAAE,CAAC,CAAC;IAIpF;;;;;;;OAOG;IACH,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;IAWzD;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAIlE;;;;;;;OAOG;IACH,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,GAAG,WAAW,CAAC,GAAG,GAAG,WAAW,EAAE,CAAC,CAAC;IAI5F;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;IAKxC;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAgB7F"}
|
package/dist/src/app/builder.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assertValidCorsConfig, defaultCorsConfig } from "../http/cors.js";
|
|
1
2
|
import { ConsoleTelemetryLayer } from "../telemetry/index.js";
|
|
2
3
|
import { MiraApp } from "./app.js";
|
|
3
4
|
function isMiraAppConfig(config) {
|
|
@@ -21,6 +22,9 @@ function isMiraAppConfig(config) {
|
|
|
21
22
|
*
|
|
22
23
|
* Optional step: `.telemetry(l)` — custom telemetry layer
|
|
23
24
|
*
|
|
25
|
+
* Optional step: `.cors(c)` — CORS configuration (defaults to permissive,
|
|
26
|
+
* so a separately-hosted frontend works with zero config)
|
|
27
|
+
*
|
|
24
28
|
* @example
|
|
25
29
|
* const app = Mira.builder()
|
|
26
30
|
* .platform(NodePlatform)
|
|
@@ -75,7 +79,7 @@ export class MiraBuilder {
|
|
|
75
79
|
}
|
|
76
80
|
/**
|
|
77
81
|
* Set the collection definitions.
|
|
78
|
-
* Required step. The collections define the schema
|
|
82
|
+
* Required step. The collections define the schema for all entities.
|
|
79
83
|
*
|
|
80
84
|
* @param c - Array of collection definitions from BaseCollection.define(), AuthCollection.define(),
|
|
81
85
|
* or ViewCollection.define()
|
|
@@ -84,16 +88,61 @@ export class MiraBuilder {
|
|
|
84
88
|
collections(c) {
|
|
85
89
|
return new MiraBuilder({ ...this.#config, collections: c });
|
|
86
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Set rule bindings for collections (optional).
|
|
93
|
+
* Rules are defined server-only via `Mira.defineRule()` and are merged onto
|
|
94
|
+
* collection schemas at build time. Collections without rules deny all actions.
|
|
95
|
+
*
|
|
96
|
+
* @param r - Array of RuleBinding from Mira.defineRule(collection, cb)
|
|
97
|
+
* @returns A new builder (same phantom type — rules is optional)
|
|
98
|
+
*/
|
|
99
|
+
rules(r) {
|
|
100
|
+
const seen = new Set();
|
|
101
|
+
for (const rb of r) {
|
|
102
|
+
if (seen.has(rb.collectionName)) {
|
|
103
|
+
throw new Error(`Duplicate rule binding for collection "${rb.collectionName}". Each collection may have at most one RuleBinding.`);
|
|
104
|
+
}
|
|
105
|
+
seen.add(rb.collectionName);
|
|
106
|
+
}
|
|
107
|
+
return new MiraBuilder({ ...this.#config, rules: r });
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Set cron job definitions (optional).
|
|
111
|
+
* Crons are started as scoped fibers on boot and run on their schedule until the server stops.
|
|
112
|
+
*
|
|
113
|
+
* @param c - Array of CronDef objects with name, schedule, and handler
|
|
114
|
+
* @returns A new builder (same phantom type — crons is optional)
|
|
115
|
+
*/
|
|
116
|
+
crons(c) {
|
|
117
|
+
return new MiraBuilder({ ...this.#config, crons: c });
|
|
118
|
+
}
|
|
87
119
|
/**
|
|
88
120
|
* Set a custom telemetry layer (optional).
|
|
89
|
-
* Defaults to `ConsoleTelemetryLayer` (prints JSON trace lines to stdout)
|
|
121
|
+
* Defaults to `ConsoleTelemetryLayer` (prints JSON trace lines to stdout),
|
|
122
|
+
* or `makeConsoleTelemetryLayer({ pretty: true })` for Chalk-colored output.
|
|
90
123
|
*
|
|
91
|
-
* @param l - A Layer providing telemetry services
|
|
124
|
+
* @param l - A Layer providing telemetry services (may require platform services)
|
|
92
125
|
* @returns A new builder with "telemetry" added to the phantom type
|
|
93
126
|
*/
|
|
94
127
|
telemetry(l) {
|
|
95
128
|
return new MiraBuilder({ ...this.#config, telemetry: l });
|
|
96
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Set the CORS configuration (optional).
|
|
132
|
+
* Defaults to `defaultCorsConfig` — every requesting origin is reflected and
|
|
133
|
+
* credentials are allowed, so a frontend hosted on another origin works
|
|
134
|
+
* (including cookie sessions) without any configuration. This default is
|
|
135
|
+
* development-first; pass explicit `allowedOrigins` to lock the API down.
|
|
136
|
+
*
|
|
137
|
+
* @param c - A CorsConfig (see `@/http/cors.js`)
|
|
138
|
+
* @returns A new builder (same phantom type — cors is optional)
|
|
139
|
+
*
|
|
140
|
+
* @throws If `credentials: true` is combined with a wildcard origin
|
|
141
|
+
*/
|
|
142
|
+
cors(c) {
|
|
143
|
+
assertValidCorsConfig(c);
|
|
144
|
+
return new MiraBuilder({ ...this.#config, cors: c });
|
|
145
|
+
}
|
|
97
146
|
/**
|
|
98
147
|
* Build the MiraApp from the accumulated configuration.
|
|
99
148
|
* Only compiles when all required steps (platform, database, storage, collections)
|
|
@@ -115,7 +164,10 @@ export class MiraBuilder {
|
|
|
115
164
|
database: config.database,
|
|
116
165
|
storage: config.storage,
|
|
117
166
|
collections: config.collections,
|
|
118
|
-
|
|
167
|
+
rules: config.rules ?? [],
|
|
168
|
+
crons: config.crons ?? [],
|
|
169
|
+
telemetry: config.telemetry ?? ConsoleTelemetryLayer,
|
|
170
|
+
cors: config.cors ?? defaultCorsConfig
|
|
119
171
|
});
|
|
120
172
|
}
|
|
121
173
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/app/builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/app/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { FieldDef, FieldsMap, RuleMap } from "@gettersethya/mira-client";
|
|
2
|
+
import type { FieldOperand, RuleBuilder } from "@gettersethya/mira-client";
|
|
3
|
+
type BaseSystemFieldDefs = {
|
|
4
|
+
id: FieldDef & {
|
|
5
|
+
kind: "text";
|
|
6
|
+
};
|
|
7
|
+
created: FieldDef & {
|
|
8
|
+
kind: "date";
|
|
9
|
+
};
|
|
10
|
+
updated: FieldDef & {
|
|
11
|
+
kind: "date";
|
|
12
|
+
};
|
|
13
|
+
seqId: FieldDef & {
|
|
14
|
+
kind: "seqId";
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
type AuthSystemFieldDefs = {
|
|
18
|
+
id: FieldDef & {
|
|
19
|
+
kind: "text";
|
|
20
|
+
};
|
|
21
|
+
email: FieldDef & {
|
|
22
|
+
kind: "email";
|
|
23
|
+
};
|
|
24
|
+
emailVerified: FieldDef & {
|
|
25
|
+
kind: "boolean";
|
|
26
|
+
};
|
|
27
|
+
created: FieldDef & {
|
|
28
|
+
kind: "date";
|
|
29
|
+
};
|
|
30
|
+
updated: FieldDef & {
|
|
31
|
+
kind: "date";
|
|
32
|
+
};
|
|
33
|
+
seqId: FieldDef & {
|
|
34
|
+
kind: "seqId";
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export interface RuleBinding {
|
|
38
|
+
readonly _tag: "RuleBinding";
|
|
39
|
+
readonly collectionName: string;
|
|
40
|
+
readonly ruleMap: RuleMap;
|
|
41
|
+
}
|
|
42
|
+
export type ViewRuleMap = {
|
|
43
|
+
list?: RuleMap["list"];
|
|
44
|
+
view?: RuleMap["view"];
|
|
45
|
+
};
|
|
46
|
+
export declare function defineRule<F extends FieldsMap>(collection: {
|
|
47
|
+
name: string;
|
|
48
|
+
fields: F;
|
|
49
|
+
schema: {
|
|
50
|
+
"x-collection-kind": "auth";
|
|
51
|
+
};
|
|
52
|
+
}, cb: (R: RuleBuilder<F & AuthSystemFieldDefs> & {
|
|
53
|
+
selfId(): FieldOperand<any, string>;
|
|
54
|
+
}) => RuleMap): RuleBinding;
|
|
55
|
+
export declare function defineRule<F extends FieldsMap>(collection: {
|
|
56
|
+
name: string;
|
|
57
|
+
fields: F;
|
|
58
|
+
schema: {
|
|
59
|
+
"x-collection-kind": "view";
|
|
60
|
+
};
|
|
61
|
+
}, cb: (R: RuleBuilder<F>) => ViewRuleMap): RuleBinding;
|
|
62
|
+
export declare function defineRule<F extends FieldsMap>(collection: {
|
|
63
|
+
name: string;
|
|
64
|
+
fields: F;
|
|
65
|
+
schema: {
|
|
66
|
+
"x-collection-kind": "base";
|
|
67
|
+
};
|
|
68
|
+
}, cb: (R: RuleBuilder<F & BaseSystemFieldDefs>) => RuleMap): RuleBinding;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=define-rule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-rule.d.ts","sourceRoot":"","sources":["../../../src/app/define-rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAC,SAAS,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAC,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAGzE,KAAK,mBAAmB,GAAG;IACzB,EAAE,EAAO,QAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACpC,OAAO,EAAE,QAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACpC,OAAO,EAAE,QAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACpC,KAAK,EAAI,QAAQ,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAA;CACtC,CAAA;AAED,KAAK,mBAAmB,GAAG;IACzB,EAAE,EAAa,QAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1C,KAAK,EAAU,QAAQ,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAA;IAC3C,aAAa,EAAE,QAAQ,GAAG;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAA;IAC7C,OAAO,EAAQ,QAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1C,OAAO,EAAQ,QAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1C,KAAK,EAAU,QAAQ,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAA;CAC5C,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CACvB,CAAA;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,EAC5C,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE;QAAE,mBAAmB,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAChF,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,mBAAmB,CAAC,GAAG;IAAE,MAAM,IAAI,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;CAAE,KAAK,OAAO,GACjG,WAAW,CAAA;AAEd,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,EAC5C,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE;QAAE,mBAAmB,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAChF,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,GACrC,WAAW,CAAA;AAEd,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,EAC5C,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE;QAAE,mBAAmB,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAChF,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,mBAAmB,CAAC,KAAK,OAAO,GACvD,WAAW,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { makeRuleBuilder, toChainable } from "@gettersethya/mira-client";
|
|
2
|
+
export function defineRule(collection, cb) {
|
|
3
|
+
const kind = collection.schema["x-collection-kind"];
|
|
4
|
+
if (kind === "auth") {
|
|
5
|
+
const authBuilder = {
|
|
6
|
+
...makeRuleBuilder(),
|
|
7
|
+
selfId() {
|
|
8
|
+
return toChainable({ kind: "authId", collection: collection.name });
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
const result = cb(authBuilder);
|
|
12
|
+
const ruleMap = {
|
|
13
|
+
...(result.list !== undefined ? { list: result.list } : {}),
|
|
14
|
+
...(result.view !== undefined ? { view: result.view } : {}),
|
|
15
|
+
...(result.create !== undefined ? { create: result.create } : {}),
|
|
16
|
+
...(result.update !== undefined ? { update: result.update } : {}),
|
|
17
|
+
...(result.delete !== undefined ? { delete: result.delete } : {}),
|
|
18
|
+
...(result.manage !== undefined ? { manage: result.manage } : {}),
|
|
19
|
+
};
|
|
20
|
+
return { _tag: "RuleBinding", collectionName: collection.name, ruleMap };
|
|
21
|
+
}
|
|
22
|
+
if (kind === "view") {
|
|
23
|
+
const viewBuilder = makeRuleBuilder();
|
|
24
|
+
const result = cb(viewBuilder);
|
|
25
|
+
const ruleMap = {
|
|
26
|
+
...(result.list !== undefined ? { list: result.list } : {}),
|
|
27
|
+
...(result.view !== undefined ? { view: result.view } : {}),
|
|
28
|
+
};
|
|
29
|
+
return { _tag: "RuleBinding", collectionName: collection.name, ruleMap };
|
|
30
|
+
}
|
|
31
|
+
const baseBuilder = makeRuleBuilder();
|
|
32
|
+
const result = cb(baseBuilder);
|
|
33
|
+
const ruleMap = {
|
|
34
|
+
...(result.list !== undefined ? { list: result.list } : {}),
|
|
35
|
+
...(result.view !== undefined ? { view: result.view } : {}),
|
|
36
|
+
...(result.create !== undefined ? { create: result.create } : {}),
|
|
37
|
+
...(result.update !== undefined ? { update: result.update } : {}),
|
|
38
|
+
...(result.delete !== undefined ? { delete: result.delete } : {}),
|
|
39
|
+
};
|
|
40
|
+
return { _tag: "RuleBinding", collectionName: collection.name, ruleMap };
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=define-rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-rule.js","sourceRoot":"","sources":["../../../src/app/define-rule.ts"],"names":[],"mappings":"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"}
|
package/dist/src/app/index.d.ts
CHANGED
|
@@ -23,9 +23,14 @@
|
|
|
23
23
|
*/
|
|
24
24
|
import { MiraBuilder } from "./builder.js";
|
|
25
25
|
export declare const Mira: {
|
|
26
|
-
builder: () => MiraBuilder<never>;
|
|
26
|
+
builder: () => MiraBuilder<never, never>;
|
|
27
27
|
};
|
|
28
|
-
export type {
|
|
29
|
-
export
|
|
28
|
+
export type { MiraApp, ServeOptions } from "./app.js";
|
|
29
|
+
export { applyRulesToCollections } from "./app.js";
|
|
30
30
|
export { MiraBuilder } from "./builder.js";
|
|
31
|
+
export type { RuleBinding } from "./define-rule.js";
|
|
32
|
+
export { defineRule } from "./define-rule.js";
|
|
33
|
+
export type { ListHook, ListSuccessHook, RecordHook, RecordSuccessHook } from "./plugin.js";
|
|
34
|
+
export { MiraPlugin, onCollection, onCollectionSuccess } from "./plugin.js";
|
|
35
|
+
export type { MiraDatabase, MiraPlatform, MiraStorage, PlatformServices } from "./types.js";
|
|
31
36
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,eAAO,MAAM,IAAI;;CAEhB,CAAA;AAED,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,eAAO,MAAM,IAAI;;CAEhB,CAAA;AAED,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC1F,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAC3E,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/src/app/index.js
CHANGED
|
@@ -25,5 +25,8 @@ import { MiraBuilder } from "./builder.js";
|
|
|
25
25
|
export const Mira = {
|
|
26
26
|
builder: () => new MiraBuilder(),
|
|
27
27
|
};
|
|
28
|
+
export { applyRulesToCollections } from "./app.js";
|
|
28
29
|
export { MiraBuilder } from "./builder.js";
|
|
30
|
+
export { defineRule } from "./define-rule.js";
|
|
31
|
+
export { MiraPlugin, onCollection, onCollectionSuccess } from "./plugin.js";
|
|
29
32
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/app/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,WAAW,EAAE;CACjC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/app/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,WAAW,EAAE;CACjC,CAAA;AAGD,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { AnyCollectionDef } from "@gettersethya/mira-client";
|
|
2
|
+
import type { Effect, Layer } from "effect";
|
|
3
|
+
import type { HttpRouter } from "effect/http";
|
|
4
|
+
import type { CollectionService } from "../collection-service/collection-service.js";
|
|
5
|
+
import type { AppConfig } from "../config/index.js";
|
|
6
|
+
import type { CronDef } from "../cron/types.js";
|
|
7
|
+
import type { CronContext, CronErrorContext, CronFinishedContext, CronResultContext, HookErrorContext, ListHookContext, ListResultContext, RecordHookContext, RecordResultContext, ViewHookContext, ViewResultContext } from "../hooks/types.js";
|
|
8
|
+
import type { Repository } from "../repository/index.js";
|
|
9
|
+
import type { PlatformServices } from "./types.js";
|
|
10
|
+
export interface RecordHook<T> {
|
|
11
|
+
readonly collections?: ReadonlyArray<string>;
|
|
12
|
+
readonly handler: (ctx: T) => Effect.Effect<T, never, never>;
|
|
13
|
+
}
|
|
14
|
+
export interface RecordSuccessHook<T> {
|
|
15
|
+
readonly collections?: ReadonlyArray<string>;
|
|
16
|
+
readonly handler: (ctx: T) => Effect.Effect<void, never, never>;
|
|
17
|
+
}
|
|
18
|
+
export interface ListHook<T> {
|
|
19
|
+
readonly collections?: ReadonlyArray<string>;
|
|
20
|
+
readonly handler: (ctx: T) => Effect.Effect<T, never, never>;
|
|
21
|
+
}
|
|
22
|
+
export interface ListSuccessHook<T> {
|
|
23
|
+
readonly collections?: ReadonlyArray<string>;
|
|
24
|
+
readonly handler: (ctx: T) => Effect.Effect<void, never, never>;
|
|
25
|
+
}
|
|
26
|
+
export interface CronHook<T> {
|
|
27
|
+
readonly crons?: ReadonlyArray<string>;
|
|
28
|
+
readonly handler: (ctx: T) => Effect.Effect<T, never, never>;
|
|
29
|
+
}
|
|
30
|
+
export interface CronObserverHook<T> {
|
|
31
|
+
readonly crons?: ReadonlyArray<string>;
|
|
32
|
+
readonly handler: (ctx: T) => Effect.Effect<void, never, never>;
|
|
33
|
+
}
|
|
34
|
+
export declare const onCollection: <T>(collections: ReadonlyArray<string>, handler: (ctx: T) => Effect.Effect<T, never, never>) => RecordHook<T>;
|
|
35
|
+
export declare const onCollectionSuccess: <T>(collections: ReadonlyArray<string>, handler: (ctx: T) => Effect.Effect<void, never, never>) => RecordSuccessHook<T>;
|
|
36
|
+
export interface MiraPlugin<R = never> {
|
|
37
|
+
readonly onBootstrap?: () => Effect.Effect<void, never, AppConfig | CollectionService>;
|
|
38
|
+
readonly onServe?: () => Effect.Effect<void, never, never>;
|
|
39
|
+
readonly onTerminate?: () => Effect.Effect<void, never, never>;
|
|
40
|
+
readonly onRecordCreate?: RecordHook<RecordHookContext>;
|
|
41
|
+
readonly onRecordCreateExecute?: RecordHook<RecordHookContext>;
|
|
42
|
+
readonly onRecordCreateSuccess?: RecordSuccessHook<RecordResultContext>;
|
|
43
|
+
readonly onRecordCreateError?: RecordSuccessHook<HookErrorContext>;
|
|
44
|
+
readonly onRecordUpdate?: RecordHook<RecordHookContext>;
|
|
45
|
+
readonly onRecordUpdateExecute?: RecordHook<RecordHookContext>;
|
|
46
|
+
readonly onRecordUpdateSuccess?: RecordSuccessHook<RecordResultContext>;
|
|
47
|
+
readonly onRecordUpdateError?: RecordSuccessHook<HookErrorContext>;
|
|
48
|
+
readonly onRecordDelete?: RecordHook<RecordHookContext>;
|
|
49
|
+
readonly onRecordDeleteExecute?: RecordHook<RecordHookContext>;
|
|
50
|
+
readonly onRecordDeleteSuccess?: RecordSuccessHook<RecordResultContext>;
|
|
51
|
+
readonly onRecordDeleteError?: RecordSuccessHook<HookErrorContext>;
|
|
52
|
+
readonly onRecordList?: ListHook<ListHookContext>;
|
|
53
|
+
readonly onRecordListSuccess?: ListSuccessHook<ListResultContext>;
|
|
54
|
+
readonly onRecordListError?: ListSuccessHook<HookErrorContext>;
|
|
55
|
+
readonly onRecordView?: ListHook<ViewHookContext>;
|
|
56
|
+
readonly onRecordViewSuccess?: ListSuccessHook<ViewResultContext>;
|
|
57
|
+
readonly onRecordViewError?: ListSuccessHook<HookErrorContext>;
|
|
58
|
+
readonly crons?: ReadonlyArray<CronDef<R>>;
|
|
59
|
+
readonly onCronStart?: CronHook<CronContext>;
|
|
60
|
+
readonly onCronExecute?: CronHook<CronContext>;
|
|
61
|
+
readonly onCronFinished?: CronObserverHook<CronFinishedContext>;
|
|
62
|
+
readonly onCronSuccess?: CronObserverHook<CronResultContext>;
|
|
63
|
+
readonly onCronError?: CronObserverHook<CronErrorContext>;
|
|
64
|
+
readonly layer?: Layer.Layer<never, never, PlatformServices | AppConfig | Repository | CollectionService>;
|
|
65
|
+
readonly routes?: ReadonlyArray<HttpRouter.Route<never, R>>;
|
|
66
|
+
readonly collections?: ReadonlyArray<AnyCollectionDef>;
|
|
67
|
+
/**
|
|
68
|
+
* Auth collections whose authenticated tokens are granted `admin: true` on the
|
|
69
|
+
* request context, bypassing all rule enforcement on the generic
|
|
70
|
+
* `/api/collections/*` and file routes. Declared by admin plugins (e.g. the
|
|
71
|
+
* dashboard declares its superadmin collection here). These definitions are
|
|
72
|
+
* also automatically added to the app's collection set, so a plugin only needs
|
|
73
|
+
* to list its admin collection once. An app with no such plugin has no admin
|
|
74
|
+
* bypass and enforces rules for everyone.
|
|
75
|
+
*/
|
|
76
|
+
readonly adminCollections?: ReadonlyArray<AnyCollectionDef>;
|
|
77
|
+
}
|
|
78
|
+
export declare const MiraPlugin: {
|
|
79
|
+
define: <R = never>(opts: MiraPlugin<R>) => MiraPlugin<R>;
|
|
80
|
+
fromLayer: (layer: Layer.Layer<never, never, never>) => MiraPlugin<never>;
|
|
81
|
+
isMiraPlugin: (ext: unknown) => ext is MiraPlugin<any>;
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/app/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const onCollection = (collections, handler) => ({ collections, handler });
|
|
2
|
+
export const onCollectionSuccess = (collections, handler) => ({ collections, handler });
|
|
3
|
+
export const MiraPlugin = {
|
|
4
|
+
define: (opts) => {
|
|
5
|
+
const instance = { _tag: "MiraPlugin", ...opts };
|
|
6
|
+
return instance;
|
|
7
|
+
},
|
|
8
|
+
fromLayer: (layer) => {
|
|
9
|
+
const instance = { _tag: "MiraPlugin", layer };
|
|
10
|
+
return instance;
|
|
11
|
+
},
|
|
12
|
+
isMiraPlugin: (ext) => {
|
|
13
|
+
if (typeof ext !== "object" || ext === null)
|
|
14
|
+
return false;
|
|
15
|
+
if (!("_tag" in ext))
|
|
16
|
+
return false;
|
|
17
|
+
return ext._tag === "MiraPlugin";
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/app/plugin.ts"],"names":[],"mappings":"AAqDA,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,WAAkC,EAClC,OAAmD,EACpC,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;AAE9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAkC,EAClC,OAAsD,EAChC,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;AAwDrD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,CAAY,IAAmB,EAAiB,EAAE;QACxD,MAAM,QAAQ,GAA0B,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,CAAA;QACvE,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,SAAS,EAAE,CAAC,KAAuC,EAAqB,EAAE;QACxE,MAAM,QAAQ,GAA8B,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAA;QACzE,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,YAAY,EAAE,CAAC,GAAY,EAA0B,EAAE;QACrD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,KAAK,CAAA;QACzD,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC;YAAE,OAAO,KAAK,CAAA;QAClC,OAAO,GAAG,CAAC,IAAI,KAAK,YAAY,CAAA;IAClC,CAAC;CACF,CAAA"}
|
package/dist/src/app/types.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { FileSystem, Path } from "
|
|
1
|
+
import type { FileSystem, Path } from "effect";
|
|
2
2
|
import type { Effect, Layer } from "effect";
|
|
3
|
-
import type { SqlClient } from "
|
|
3
|
+
import type { SqlClient } from "effect/sql";
|
|
4
|
+
import type { CryptoService } from "../crypto/crypto.js";
|
|
5
|
+
import type { Dialect } from "../dialect/dialect.js";
|
|
4
6
|
import type { AuthService } from "../http/auth.js";
|
|
5
7
|
import type { HttpServerFactory } from "../http/server-factory.js";
|
|
6
|
-
import type { CryptoService } from "../crypto/crypto.js";
|
|
7
|
-
import type { Dialect } from "../migrator/dialect.js";
|
|
8
8
|
import type { FileStorage } from "../storage/storage.js";
|
|
9
9
|
/**
|
|
10
10
|
* Services that a platform preset must provide.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/app/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/app/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,UAAU,CAAC,UAAU,GACrB,IAAI,CAAC,IAAI,GACT,iBAAiB,GACjB,WAAW,CAAA;AAEf;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,GAAG,OAAO,CAAA;AAE5D;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACpC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,CAAA;CAC9D;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;CACrC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;CAC1E"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { SqlClient } from "@effect/sql";
|
|
2
|
-
import { Layer } from "effect";
|
|
3
1
|
import type { AnyCollectionDef } from "@gettersethya/mira-client";
|
|
4
|
-
import {
|
|
2
|
+
import { Layer } from "effect";
|
|
3
|
+
import type { SqlClient } from "effect/sql";
|
|
5
4
|
import { CollectionService } from "../collection-service/collection-service.js";
|
|
6
|
-
import {
|
|
5
|
+
import type { Dialect } from "../dialect/dialect.js";
|
|
6
|
+
import type { AuthService } from "../http/auth.js";
|
|
7
|
+
import type { Repository } from "../repository/repository.js";
|
|
8
|
+
import type { FileStorage } from "../storage/storage.js";
|
|
7
9
|
import type { CollectionCacheConfigValues } from "./types.js";
|
|
8
10
|
/**
|
|
9
11
|
* Create a cached `CollectionService` layer that wraps the standard collection service.
|
|
@@ -26,5 +28,5 @@ import type { CollectionCacheConfigValues } from "./types.js";
|
|
|
26
28
|
* @see CollectionService — the service tag
|
|
27
29
|
* @see makeCollectionServiceLayer — the underlying uncached service
|
|
28
30
|
*/
|
|
29
|
-
export declare function makeCachedCollectionServiceLayer(allCollections: ReadonlyArray<AnyCollectionDef>, config?: CollectionCacheConfigValues): Layer.Layer<CollectionService, never, Repository | SqlClient.SqlClient | FileStorage>;
|
|
31
|
+
export declare function makeCachedCollectionServiceLayer(allCollections: ReadonlyArray<AnyCollectionDef>, config?: CollectionCacheConfigValues): Layer.Layer<CollectionService, never, Repository | SqlClient.SqlClient | FileStorage | Dialect | AuthService>;
|
|
30
32
|
//# sourceMappingURL=cached-collection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cached-collection.d.ts","sourceRoot":"","sources":["../../../src/cache/cached-collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cached-collection.d.ts","sourceRoot":"","sources":["../../../src/cache/cached-collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAGjE,OAAO,EAAU,KAAK,EAAU,MAAM,QAAQ,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,OAAO,EAAE,iBAAiB,EAA8B,MAAM,4CAA4C,CAAA;AAC1G,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIvD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AA2D7D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gCAAgC,CAC9C,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,EAC/C,MAAM,GAAE,2BAA2C,GAClD,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC,CAwF/G"}
|