semola 0.5.1 → 0.5.3
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 +144 -29
- package/dist/api/core/index.cjs +206 -0
- package/dist/api/core/index.d.cts +21 -0
- package/dist/api/core/index.d.cts.map +1 -0
- package/dist/api/core/index.d.mts +21 -0
- package/dist/api/core/index.d.mts.map +1 -0
- package/dist/api/core/index.mjs +208 -0
- package/dist/api/core/index.mjs.map +1 -0
- package/dist/api/core/types.d.cts +107 -0
- package/dist/api/core/types.d.cts.map +1 -0
- package/dist/api/core/types.d.mts +107 -0
- package/dist/api/core/types.d.mts.map +1 -0
- package/dist/api/middleware/index.cjs +8 -0
- package/dist/api/middleware/index.d.cts +11 -0
- package/dist/api/middleware/index.d.cts.map +1 -0
- package/dist/api/middleware/index.d.mts +11 -0
- package/dist/api/middleware/index.d.mts.map +1 -0
- package/dist/api/middleware/index.mjs +10 -0
- package/dist/api/middleware/index.mjs.map +1 -0
- package/dist/api/middleware/types.d.cts +16 -0
- package/dist/api/middleware/types.d.cts.map +1 -0
- package/dist/api/middleware/types.d.mts +16 -0
- package/dist/api/middleware/types.d.mts.map +1 -0
- package/dist/api/openapi/index.cjs +254 -0
- package/dist/api/openapi/index.mjs +256 -0
- package/dist/api/openapi/index.mjs.map +1 -0
- package/dist/api/openapi/types.d.cts +60 -0
- package/dist/api/openapi/types.d.cts.map +1 -0
- package/dist/api/openapi/types.d.mts +60 -0
- package/dist/api/openapi/types.d.mts.map +1 -0
- package/dist/api/validation/index.cjs +64 -0
- package/dist/api/validation/index.mjs +61 -0
- package/dist/api/validation/index.mjs.map +1 -0
- package/dist/cache/types.d.cts +17 -0
- package/dist/cache/types.d.cts.map +1 -0
- package/dist/cache/types.d.mts +17 -0
- package/dist/cache/types.d.mts.map +1 -0
- package/dist/cron/builder/index.cjs +166 -0
- package/dist/cron/builder/index.d.cts +28 -0
- package/dist/cron/builder/index.d.cts.map +1 -0
- package/dist/cron/builder/index.d.mts +28 -0
- package/dist/cron/builder/index.d.mts.map +1 -0
- package/dist/cron/builder/index.mjs +163 -0
- package/dist/cron/builder/index.mjs.map +1 -0
- package/dist/cron/builder/types.cjs +27 -0
- package/dist/cron/builder/types.d.cts +79 -0
- package/dist/cron/builder/types.d.cts.map +1 -0
- package/dist/cron/builder/types.d.mts +79 -0
- package/dist/cron/builder/types.d.mts.map +1 -0
- package/dist/cron/builder/types.mjs +28 -0
- package/dist/cron/builder/types.mjs.map +1 -0
- package/dist/cron/core/index.cjs +308 -0
- package/dist/cron/core/index.d.cts +39 -0
- package/dist/cron/core/index.d.cts.map +1 -0
- package/dist/cron/core/index.d.mts +39 -0
- package/dist/cron/core/index.d.mts.map +1 -0
- package/dist/cron/core/index.mjs +310 -0
- package/dist/cron/core/index.mjs.map +1 -0
- package/dist/cron/core/scanner.cjs +237 -0
- package/dist/cron/core/scanner.mjs +238 -0
- package/dist/cron/core/scanner.mjs.map +1 -0
- package/dist/cron/core/types.d.cts +11 -0
- package/dist/cron/core/types.d.cts.map +1 -0
- package/dist/cron/core/types.d.mts +11 -0
- package/dist/cron/core/types.d.mts.map +1 -0
- package/dist/errors/types.d.cts +5 -0
- package/dist/errors/types.d.cts.map +1 -0
- package/dist/errors/types.d.mts +5 -0
- package/dist/errors/types.d.mts.map +1 -0
- package/dist/i18n/types.d.cts +13 -0
- package/dist/i18n/types.d.cts.map +1 -0
- package/dist/i18n/types.d.mts +13 -0
- package/dist/i18n/types.d.mts.map +1 -0
- package/dist/lib/api/index.cjs +5 -0
- package/dist/lib/api/index.d.cts +5 -0
- package/dist/lib/api/index.d.mts +5 -0
- package/dist/lib/api/index.mjs +3 -0
- package/dist/lib/cache/index.cjs +74 -0
- package/dist/lib/cache/index.d.cts +36 -0
- package/dist/lib/cache/index.d.cts.map +1 -0
- package/dist/lib/cache/index.d.mts +36 -0
- package/dist/lib/cache/index.d.mts.map +1 -0
- package/dist/lib/cache/index.mjs +75 -0
- package/dist/lib/cache/index.mjs.map +1 -0
- package/dist/lib/cron/index.cjs +13 -0
- package/dist/lib/cron/index.d.cts +4 -0
- package/dist/lib/cron/index.d.mts +4 -0
- package/dist/lib/cron/index.mjs +4 -0
- package/dist/lib/errors/index.cjs +30 -0
- package/dist/lib/errors/index.d.cts +13 -0
- package/dist/lib/errors/index.d.cts.map +1 -0
- package/dist/lib/errors/index.d.mts +13 -0
- package/dist/lib/errors/index.d.mts.map +1 -0
- package/dist/lib/errors/index.mjs +28 -0
- package/dist/lib/errors/index.mjs.map +1 -0
- package/dist/lib/i18n/index.cjs +42 -0
- package/dist/lib/i18n/index.d.cts +20 -0
- package/dist/lib/i18n/index.d.cts.map +1 -0
- package/dist/lib/i18n/index.d.mts +20 -0
- package/dist/lib/i18n/index.d.mts.map +1 -0
- package/dist/lib/i18n/index.mjs +43 -0
- package/dist/lib/i18n/index.mjs.map +1 -0
- package/dist/lib/logging/index.cjs +18 -0
- package/dist/lib/logging/index.d.cts +7 -0
- package/dist/lib/logging/index.d.mts +7 -0
- package/dist/lib/logging/index.mjs +5 -0
- package/dist/lib/orm/index.cjs +20 -0
- package/dist/lib/orm/index.d.cts +7 -0
- package/dist/lib/orm/index.d.mts +7 -0
- package/dist/lib/orm/index.mjs +6 -0
- package/dist/lib/policy/index.cjs +99 -0
- package/dist/lib/policy/index.d.cts +21 -0
- package/dist/lib/policy/index.d.cts.map +1 -0
- package/dist/lib/policy/index.d.mts +21 -0
- package/dist/lib/policy/index.d.mts.map +1 -0
- package/dist/lib/policy/index.mjs +81 -0
- package/dist/lib/policy/index.mjs.map +1 -0
- package/dist/lib/prompts/index.cjs +409 -0
- package/dist/lib/prompts/index.d.cts +31 -0
- package/dist/lib/prompts/index.d.cts.map +1 -0
- package/dist/lib/prompts/index.d.mts +31 -0
- package/dist/lib/prompts/index.d.mts.map +1 -0
- package/dist/lib/prompts/index.mjs +405 -0
- package/dist/lib/prompts/index.mjs.map +1 -0
- package/dist/lib/pubsub/index.cjs +117 -0
- package/dist/lib/pubsub/index.d.cts +36 -0
- package/dist/lib/pubsub/index.d.cts.map +1 -0
- package/dist/lib/pubsub/index.d.mts +36 -0
- package/dist/lib/pubsub/index.d.mts.map +1 -0
- package/dist/lib/pubsub/index.mjs +118 -0
- package/dist/lib/pubsub/index.mjs.map +1 -0
- package/dist/lib/queue/index.cjs +182 -0
- package/dist/lib/queue/index.d.cts +32 -0
- package/dist/lib/queue/index.d.cts.map +1 -0
- package/dist/lib/queue/index.d.mts +32 -0
- package/dist/lib/queue/index.d.mts.map +1 -0
- package/dist/lib/queue/index.mjs +183 -0
- package/dist/lib/queue/index.mjs.map +1 -0
- package/dist/lib/workflow/index.cjs +534 -0
- package/dist/lib/workflow/index.d.cts +7 -0
- package/dist/lib/workflow/index.d.cts.map +1 -0
- package/dist/lib/workflow/index.d.mts +7 -0
- package/dist/lib/workflow/index.d.mts.map +1 -0
- package/dist/lib/workflow/index.mjs +535 -0
- package/dist/lib/workflow/index.mjs.map +1 -0
- package/dist/logging/core/index.cjs +99 -0
- package/dist/logging/core/index.d.cts +26 -0
- package/dist/logging/core/index.d.cts.map +1 -0
- package/dist/logging/core/index.d.mts +26 -0
- package/dist/logging/core/index.d.mts.map +1 -0
- package/dist/logging/core/index.mjs +99 -0
- package/dist/logging/core/index.mjs.map +1 -0
- package/dist/logging/core/types.cjs +10 -0
- package/dist/logging/core/types.d.cts +22 -0
- package/dist/logging/core/types.d.cts.map +1 -0
- package/dist/logging/core/types.d.mts +22 -0
- package/dist/logging/core/types.d.mts.map +1 -0
- package/dist/logging/core/types.mjs +12 -0
- package/dist/logging/core/types.mjs.map +1 -0
- package/dist/logging/formatter/index.cjs +119 -0
- package/dist/logging/formatter/index.d.cts +27 -0
- package/dist/logging/formatter/index.d.cts.map +1 -0
- package/dist/logging/formatter/index.d.mts +27 -0
- package/dist/logging/formatter/index.d.mts.map +1 -0
- package/dist/logging/formatter/index.mjs +115 -0
- package/dist/logging/formatter/index.mjs.map +1 -0
- package/dist/logging/formatter/types.d.cts +5 -0
- package/dist/logging/formatter/types.d.cts.map +1 -0
- package/dist/logging/formatter/types.d.mts +5 -0
- package/dist/logging/formatter/types.d.mts.map +1 -0
- package/dist/logging/provider/index.cjs +165 -0
- package/dist/logging/provider/index.d.cts +28 -0
- package/dist/logging/provider/index.d.cts.map +1 -0
- package/dist/logging/provider/index.d.mts +28 -0
- package/dist/logging/provider/index.d.mts.map +1 -0
- package/dist/logging/provider/index.mjs +165 -0
- package/dist/logging/provider/index.mjs.map +1 -0
- package/dist/logging/provider/types.d.cts +23 -0
- package/dist/logging/provider/types.d.cts.map +1 -0
- package/dist/logging/provider/types.d.mts +23 -0
- package/dist/logging/provider/types.d.mts.map +1 -0
- package/dist/node_modules/@standard-schema/spec/dist/index.d.cts +80 -0
- package/dist/node_modules/@standard-schema/spec/dist/index.d.cts.map +1 -0
- package/dist/node_modules/@standard-schema/spec/dist/index.d.mts +80 -0
- package/dist/node_modules/@standard-schema/spec/dist/index.d.mts.map +1 -0
- package/dist/orm/column.cjs +137 -0
- package/dist/orm/column.d.cts +121 -0
- package/dist/orm/column.d.cts.map +1 -0
- package/dist/orm/column.d.mts +121 -0
- package/dist/orm/column.d.mts.map +1 -0
- package/dist/orm/column.mjs +132 -0
- package/dist/orm/column.mjs.map +1 -0
- package/dist/orm/dialect/index.cjs +14 -0
- package/dist/orm/dialect/index.mjs +16 -0
- package/dist/orm/dialect/index.mjs.map +1 -0
- package/dist/orm/dialect/mysql.cjs +31 -0
- package/dist/orm/dialect/mysql.mjs +33 -0
- package/dist/orm/dialect/mysql.mjs.map +1 -0
- package/dist/orm/dialect/postgres.cjs +23 -0
- package/dist/orm/dialect/postgres.mjs +25 -0
- package/dist/orm/dialect/postgres.mjs.map +1 -0
- package/dist/orm/dialect/sqlite.cjs +31 -0
- package/dist/orm/dialect/sqlite.mjs +33 -0
- package/dist/orm/dialect/sqlite.mjs.map +1 -0
- package/dist/orm/dialect/utils.cjs +8 -0
- package/dist/orm/dialect/utils.mjs +10 -0
- package/dist/orm/dialect/utils.mjs.map +1 -0
- package/dist/orm/internal/table-columns.cjs +31 -0
- package/dist/orm/internal/table-columns.mjs +32 -0
- package/dist/orm/internal/table-columns.mjs.map +1 -0
- package/dist/orm/internal/table-lookup.cjs +35 -0
- package/dist/orm/internal/table-lookup.mjs +35 -0
- package/dist/orm/internal/table-lookup.mjs.map +1 -0
- package/dist/orm/internal/table-relations.cjs +28 -0
- package/dist/orm/internal/table-relations.mjs +29 -0
- package/dist/orm/internal/table-relations.mjs.map +1 -0
- package/dist/orm/migration/config.cjs +7 -0
- package/dist/orm/migration/config.d.cts +7 -0
- package/dist/orm/migration/config.d.cts.map +1 -0
- package/dist/orm/migration/config.d.mts +7 -0
- package/dist/orm/migration/config.d.mts.map +1 -0
- package/dist/orm/migration/config.mjs +8 -0
- package/dist/orm/migration/config.mjs.map +1 -0
- package/dist/orm/migration/types.d.cts +20 -0
- package/dist/orm/migration/types.d.cts.map +1 -0
- package/dist/orm/migration/types.d.mts +20 -0
- package/dist/orm/migration/types.d.mts.map +1 -0
- package/dist/orm/orm.cjs +41 -0
- package/dist/orm/orm.d.cts +18 -0
- package/dist/orm/orm.d.cts.map +1 -0
- package/dist/orm/orm.d.mts +18 -0
- package/dist/orm/orm.d.mts.map +1 -0
- package/dist/orm/orm.mjs +43 -0
- package/dist/orm/orm.mjs.map +1 -0
- package/dist/orm/relation.cjs +18 -0
- package/dist/orm/relation.d.cts +8 -0
- package/dist/orm/relation.d.cts.map +1 -0
- package/dist/orm/relation.d.mts +8 -0
- package/dist/orm/relation.d.mts.map +1 -0
- package/dist/orm/relation.mjs +19 -0
- package/dist/orm/relation.mjs.map +1 -0
- package/dist/orm/runtime/builders/mutations.cjs +29 -0
- package/dist/orm/runtime/builders/mutations.mjs +28 -0
- package/dist/orm/runtime/builders/mutations.mjs.map +1 -0
- package/dist/orm/runtime/builders/select.cjs +18 -0
- package/dist/orm/runtime/builders/select.mjs +19 -0
- package/dist/orm/runtime/builders/select.mjs.map +1 -0
- package/dist/orm/runtime/client.cjs +90 -0
- package/dist/orm/runtime/client.mjs +92 -0
- package/dist/orm/runtime/client.mjs.map +1 -0
- package/dist/orm/runtime/context.cjs +49 -0
- package/dist/orm/runtime/context.mjs +51 -0
- package/dist/orm/runtime/context.mjs.map +1 -0
- package/dist/orm/runtime/dialect/index.cjs +11 -0
- package/dist/orm/runtime/dialect/index.mjs +13 -0
- package/dist/orm/runtime/dialect/index.mjs.map +1 -0
- package/dist/orm/runtime/dialect/mysql.cjs +95 -0
- package/dist/orm/runtime/dialect/mysql.mjs +97 -0
- package/dist/orm/runtime/dialect/mysql.mjs.map +1 -0
- package/dist/orm/runtime/dialect/postgres.cjs +51 -0
- package/dist/orm/runtime/dialect/postgres.mjs +53 -0
- package/dist/orm/runtime/dialect/postgres.mjs.map +1 -0
- package/dist/orm/runtime/dialect/sqlite.cjs +4 -0
- package/dist/orm/runtime/dialect/sqlite.mjs +7 -0
- package/dist/orm/runtime/dialect/sqlite.mjs.map +1 -0
- package/dist/orm/runtime/errors.cjs +19 -0
- package/dist/orm/runtime/errors.mjs +21 -0
- package/dist/orm/runtime/errors.mjs.map +1 -0
- package/dist/orm/runtime/hydrate/many.cjs +46 -0
- package/dist/orm/runtime/hydrate/many.mjs +48 -0
- package/dist/orm/runtime/hydrate/many.mjs.map +1 -0
- package/dist/orm/runtime/hydrate/one.cjs +38 -0
- package/dist/orm/runtime/hydrate/one.mjs +40 -0
- package/dist/orm/runtime/hydrate/one.mjs.map +1 -0
- package/dist/orm/runtime/hydrate.cjs +49 -0
- package/dist/orm/runtime/hydrate.mjs +51 -0
- package/dist/orm/runtime/hydrate.mjs.map +1 -0
- package/dist/orm/runtime/rows.cjs +30 -0
- package/dist/orm/runtime/rows.mjs +31 -0
- package/dist/orm/runtime/rows.mjs.map +1 -0
- package/dist/orm/runtime/utils.cjs +27 -0
- package/dist/orm/runtime/utils.mjs +27 -0
- package/dist/orm/runtime/utils.mjs.map +1 -0
- package/dist/orm/sql/parse-array.cjs +64 -0
- package/dist/orm/sql/parse-array.mjs +66 -0
- package/dist/orm/sql/parse-array.mjs.map +1 -0
- package/dist/orm/sql/plan/select.cjs +36 -0
- package/dist/orm/sql/plan/select.mjs +38 -0
- package/dist/orm/sql/plan/select.mjs.map +1 -0
- package/dist/orm/sql/plan/where/operators.cjs +95 -0
- package/dist/orm/sql/plan/where/operators.mjs +97 -0
- package/dist/orm/sql/plan/where/operators.mjs.map +1 -0
- package/dist/orm/sql/plan/where.cjs +59 -0
- package/dist/orm/sql/plan/where.mjs +61 -0
- package/dist/orm/sql/plan/where.mjs.map +1 -0
- package/dist/orm/sql/serialize/clauses.cjs +36 -0
- package/dist/orm/sql/serialize/clauses.mjs +37 -0
- package/dist/orm/sql/serialize/clauses.mjs.map +1 -0
- package/dist/orm/sql/serialize/joins.cjs +31 -0
- package/dist/orm/sql/serialize/joins.mjs +33 -0
- package/dist/orm/sql/serialize/joins.mjs.map +1 -0
- package/dist/orm/sql/serialize/values.cjs +30 -0
- package/dist/orm/sql/serialize/values.mjs +32 -0
- package/dist/orm/sql/serialize/values.mjs.map +1 -0
- package/dist/orm/sql/serialize/where/predicate.cjs +73 -0
- package/dist/orm/sql/serialize/where/predicate.mjs +75 -0
- package/dist/orm/sql/serialize/where/predicate.mjs.map +1 -0
- package/dist/orm/sql/serialize/where/tree.cjs +26 -0
- package/dist/orm/sql/serialize/where/tree.mjs +28 -0
- package/dist/orm/sql/serialize/where/tree.mjs.map +1 -0
- package/dist/orm/sql/serialize/where.cjs +10 -0
- package/dist/orm/sql/serialize/where.mjs +12 -0
- package/dist/orm/sql/serialize/where.mjs.map +1 -0
- package/dist/orm/sql/serialize.cjs +24 -0
- package/dist/orm/sql/serialize.mjs +25 -0
- package/dist/orm/sql/serialize.mjs.map +1 -0
- package/dist/orm/table.cjs +12 -0
- package/dist/orm/table.d.cts +12 -0
- package/dist/orm/table.d.cts.map +1 -0
- package/dist/orm/table.d.mts +12 -0
- package/dist/orm/table.d.mts.map +1 -0
- package/dist/orm/table.mjs +14 -0
- package/dist/orm/table.mjs.map +1 -0
- package/dist/orm/types.d.cts +183 -0
- package/dist/orm/types.d.cts.map +1 -0
- package/dist/orm/types.d.mts +183 -0
- package/dist/orm/types.d.mts.map +1 -0
- package/dist/policy/helpers.cjs +206 -0
- package/dist/policy/helpers.d.cts +50 -0
- package/dist/policy/helpers.d.cts.map +1 -0
- package/dist/policy/helpers.d.mts +50 -0
- package/dist/policy/helpers.d.mts.map +1 -0
- package/dist/policy/helpers.mjs +190 -0
- package/dist/policy/helpers.mjs.map +1 -0
- package/dist/policy/types.d.cts +16 -0
- package/dist/policy/types.d.cts.map +1 -0
- package/dist/policy/types.d.mts +16 -0
- package/dist/policy/types.d.mts.map +1 -0
- package/dist/prompts/core/keys.cjs +165 -0
- package/dist/prompts/core/keys.mjs +167 -0
- package/dist/prompts/core/keys.mjs.map +1 -0
- package/dist/prompts/core/runtime.cjs +104 -0
- package/dist/prompts/core/runtime.mjs +106 -0
- package/dist/prompts/core/runtime.mjs.map +1 -0
- package/dist/prompts/core/session.cjs +98 -0
- package/dist/prompts/core/session.mjs +100 -0
- package/dist/prompts/core/session.mjs.map +1 -0
- package/dist/prompts/core/types.d.cts +21 -0
- package/dist/prompts/core/types.d.cts.map +1 -0
- package/dist/prompts/core/types.d.mts +21 -0
- package/dist/prompts/core/types.d.mts.map +1 -0
- package/dist/prompts/types.d.cts +52 -0
- package/dist/prompts/types.d.cts.map +1 -0
- package/dist/prompts/types.d.mts +52 -0
- package/dist/prompts/types.d.mts.map +1 -0
- package/dist/pubsub/types.d.cts +10 -0
- package/dist/pubsub/types.d.cts.map +1 -0
- package/dist/pubsub/types.d.mts +10 -0
- package/dist/pubsub/types.d.mts.map +1 -0
- package/dist/queue/types.d.cts +47 -0
- package/dist/queue/types.d.cts.map +1 -0
- package/dist/queue/types.d.mts +47 -0
- package/dist/queue/types.d.mts.map +1 -0
- package/dist/workflow/types.d.cts +83 -0
- package/dist/workflow/types.d.cts.map +1 -0
- package/dist/workflow/types.d.mts +83 -0
- package/dist/workflow/types.d.mts.map +1 -0
- package/package.json +112 -16
- package/dist/lib/api/core/index.d.ts +0 -15
- package/dist/lib/api/core/index.d.ts.map +0 -1
- package/dist/lib/api/core/index.js +0 -218
- package/dist/lib/api/core/index.js.map +0 -1
- package/dist/lib/api/core/index.test.d.ts +0 -2
- package/dist/lib/api/core/index.test.d.ts.map +0 -1
- package/dist/lib/api/core/index.test.js +0 -219
- package/dist/lib/api/core/index.test.js.map +0 -1
- package/dist/lib/api/core/types.d.ts +0 -109
- package/dist/lib/api/core/types.d.ts.map +0 -1
- package/dist/lib/api/core/types.js +0 -2
- package/dist/lib/api/core/types.js.map +0 -1
- package/dist/lib/api/index.d.ts +0 -5
- package/dist/lib/api/index.d.ts.map +0 -1
- package/dist/lib/api/index.js +0 -3
- package/dist/lib/api/index.js.map +0 -1
- package/dist/lib/api/middleware/index.d.ts +0 -7
- package/dist/lib/api/middleware/index.d.ts.map +0 -1
- package/dist/lib/api/middleware/index.js +0 -7
- package/dist/lib/api/middleware/index.js.map +0 -1
- package/dist/lib/api/middleware/index.test.d.ts +0 -2
- package/dist/lib/api/middleware/index.test.d.ts.map +0 -1
- package/dist/lib/api/middleware/index.test.js +0 -67
- package/dist/lib/api/middleware/index.test.js.map +0 -1
- package/dist/lib/api/middleware/types.d.ts +0 -12
- package/dist/lib/api/middleware/types.d.ts.map +0 -1
- package/dist/lib/api/middleware/types.js +0 -2
- package/dist/lib/api/middleware/types.js.map +0 -1
- package/dist/lib/api/openapi/index.d.ts +0 -31
- package/dist/lib/api/openapi/index.d.ts.map +0 -1
- package/dist/lib/api/openapi/index.js +0 -284
- package/dist/lib/api/openapi/index.js.map +0 -1
- package/dist/lib/api/openapi/index.test.d.ts +0 -2
- package/dist/lib/api/openapi/index.test.d.ts.map +0 -1
- package/dist/lib/api/openapi/index.test.js +0 -359
- package/dist/lib/api/openapi/index.test.js.map +0 -1
- package/dist/lib/api/openapi/types.d.ts +0 -57
- package/dist/lib/api/openapi/types.d.ts.map +0 -1
- package/dist/lib/api/openapi/types.js +0 -5
- package/dist/lib/api/openapi/types.js.map +0 -1
- package/dist/lib/api/validation/index.d.ts +0 -33
- package/dist/lib/api/validation/index.d.ts.map +0 -1
- package/dist/lib/api/validation/index.js +0 -92
- package/dist/lib/api/validation/index.js.map +0 -1
- package/dist/lib/api/validation/index.test.d.ts +0 -2
- package/dist/lib/api/validation/index.test.d.ts.map +0 -1
- package/dist/lib/api/validation/index.test.js +0 -135
- package/dist/lib/api/validation/index.test.js.map +0 -1
- package/dist/lib/cache/index.d.ts +0 -25
- package/dist/lib/cache/index.d.ts.map +0 -1
- package/dist/lib/cache/index.js +0 -62
- package/dist/lib/cache/index.js.map +0 -1
- package/dist/lib/cache/index.test.d.ts +0 -2
- package/dist/lib/cache/index.test.d.ts.map +0 -1
- package/dist/lib/cache/index.test.js +0 -314
- package/dist/lib/cache/index.test.js.map +0 -1
- package/dist/lib/cache/types.d.ts +0 -5
- package/dist/lib/cache/types.d.ts.map +0 -1
- package/dist/lib/cache/types.js +0 -2
- package/dist/lib/cache/types.js.map +0 -1
- package/dist/lib/errors/index.d.ts +0 -9
- package/dist/lib/errors/index.d.ts.map +0 -1
- package/dist/lib/errors/index.js +0 -25
- package/dist/lib/errors/index.js.map +0 -1
- package/dist/lib/errors/index.test.d.ts +0 -2
- package/dist/lib/errors/index.test.d.ts.map +0 -1
- package/dist/lib/errors/index.test.js +0 -197
- package/dist/lib/errors/index.test.js.map +0 -1
- package/dist/lib/errors/types.d.ts +0 -2
- package/dist/lib/errors/types.d.ts.map +0 -1
- package/dist/lib/errors/types.js +0 -2
- package/dist/lib/errors/types.js.map +0 -1
- package/dist/lib/i18n/index.d.ts +0 -18
- package/dist/lib/i18n/index.d.ts.map +0 -1
- package/dist/lib/i18n/index.js +0 -38
- package/dist/lib/i18n/index.js.map +0 -1
- package/dist/lib/i18n/index.test.d.ts +0 -2
- package/dist/lib/i18n/index.test.d.ts.map +0 -1
- package/dist/lib/i18n/index.test.js +0 -402
- package/dist/lib/i18n/index.test.js.map +0 -1
- package/dist/lib/i18n/types.d.ts +0 -15
- package/dist/lib/i18n/types.d.ts.map +0 -1
- package/dist/lib/i18n/types.js +0 -2
- package/dist/lib/i18n/types.js.map +0 -1
- package/dist/lib/policy/index.d.ts +0 -9
- package/dist/lib/policy/index.d.ts.map +0 -1
- package/dist/lib/policy/index.js +0 -51
- package/dist/lib/policy/index.js.map +0 -1
- package/dist/lib/policy/index.test.d.ts +0 -2
- package/dist/lib/policy/index.test.d.ts.map +0 -1
- package/dist/lib/policy/index.test.js +0 -328
- package/dist/lib/policy/index.test.js.map +0 -1
- package/dist/lib/policy/types.d.ts +0 -27
- package/dist/lib/policy/types.d.ts.map +0 -1
- package/dist/lib/policy/types.js +0 -2
- package/dist/lib/policy/types.js.map +0 -1
- package/dist/lib/pubsub/index.d.ts +0 -23
- package/dist/lib/pubsub/index.d.ts.map +0 -1
- package/dist/lib/pubsub/index.js +0 -55
- package/dist/lib/pubsub/index.js.map +0 -1
- package/dist/lib/pubsub/index.test.d.ts +0 -2
- package/dist/lib/pubsub/index.test.d.ts.map +0 -1
- package/dist/lib/pubsub/index.test.js +0 -550
- package/dist/lib/pubsub/index.test.js.map +0 -1
- package/dist/lib/pubsub/types.d.ts +0 -7
- package/dist/lib/pubsub/types.d.ts.map +0 -1
- package/dist/lib/pubsub/types.js +0 -2
- package/dist/lib/pubsub/types.js.map +0 -1
- package/dist/lib/queue/index.d.ts +0 -28
- package/dist/lib/queue/index.d.ts.map +0 -1
- package/dist/lib/queue/index.js +0 -211
- package/dist/lib/queue/index.js.map +0 -1
- package/dist/lib/queue/index.test.d.ts +0 -2
- package/dist/lib/queue/index.test.d.ts.map +0 -1
- package/dist/lib/queue/index.test.js +0 -740
- package/dist/lib/queue/index.test.js.map +0 -1
- package/dist/lib/queue/types.d.ts +0 -52
- package/dist/lib/queue/types.d.ts.map +0 -1
- package/dist/lib/queue/types.js +0 -2
- package/dist/lib/queue/types.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_index = require("../../cron/builder/index.cjs");
|
|
3
|
+
const require_types = require("../../cron/builder/types.cjs");
|
|
4
|
+
const require_index$1 = require("../../cron/core/index.cjs");
|
|
5
|
+
exports.Cron = require_index$1.Cron;
|
|
6
|
+
exports.Month = require_types.Month;
|
|
7
|
+
exports.WeekDay = require_types.WeekDay;
|
|
8
|
+
exports.any = require_index.any;
|
|
9
|
+
exports.cronJobBuilder = require_index.cronJobBuilder;
|
|
10
|
+
exports.list = require_index.list;
|
|
11
|
+
exports.number = require_index.number;
|
|
12
|
+
exports.range = require_index.range;
|
|
13
|
+
exports.step = require_index.step;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Month, WeekDay } from "../../cron/builder/types.cjs";
|
|
2
|
+
import { any, cronJobBuilder, list, number, range, step } from "../../cron/builder/index.cjs";
|
|
3
|
+
import { Cron } from "../../cron/core/index.cjs";
|
|
4
|
+
export { Cron, Month, WeekDay, any, cronJobBuilder, list, number, range, step };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Month, WeekDay } from "../../cron/builder/types.mjs";
|
|
2
|
+
import { any, cronJobBuilder, list, number, range, step } from "../../cron/builder/index.mjs";
|
|
3
|
+
import { Cron } from "../../cron/core/index.mjs";
|
|
4
|
+
export { Cron, Month, WeekDay, any, cronJobBuilder, list, number, range, step };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { any, cronJobBuilder, list, number, range, step } from "../../cron/builder/index.mjs";
|
|
2
|
+
import { Month, WeekDay } from "../../cron/builder/types.mjs";
|
|
3
|
+
import { Cron } from "../../cron/core/index.mjs";
|
|
4
|
+
export { Cron, Month, WeekDay, any, cronJobBuilder, list, number, range, step };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
//#region src/lib/errors/index.ts
|
|
3
|
+
const ok = (data) => {
|
|
4
|
+
return [null, data];
|
|
5
|
+
};
|
|
6
|
+
const err = (type, message) => {
|
|
7
|
+
return [{
|
|
8
|
+
type,
|
|
9
|
+
message
|
|
10
|
+
}, null];
|
|
11
|
+
};
|
|
12
|
+
const mightThrowSync = (fn) => {
|
|
13
|
+
try {
|
|
14
|
+
return [null, fn()];
|
|
15
|
+
} catch (error) {
|
|
16
|
+
return [error, null];
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const mightThrow = async (promise) => {
|
|
20
|
+
try {
|
|
21
|
+
return [null, await promise];
|
|
22
|
+
} catch (error) {
|
|
23
|
+
return [error, null];
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
//#endregion
|
|
27
|
+
exports.err = err;
|
|
28
|
+
exports.mightThrow = mightThrow;
|
|
29
|
+
exports.mightThrowSync = mightThrowSync;
|
|
30
|
+
exports.ok = ok;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CommonError } from "../../errors/types.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/errors/index.d.ts
|
|
4
|
+
declare const ok: <T>(data: T) => readonly [null, T];
|
|
5
|
+
declare const err: <T extends CommonError>(type: T, message: string) => readonly [{
|
|
6
|
+
readonly type: T;
|
|
7
|
+
readonly message: string;
|
|
8
|
+
}, null];
|
|
9
|
+
declare const mightThrowSync: <T, E = Error>(fn: () => T) => readonly [null, T] | readonly [E, null];
|
|
10
|
+
declare const mightThrow: <T, E = Error>(promise: Promise<T>) => Promise<readonly [null, T] | readonly [E, null]>;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { err, mightThrow, mightThrowSync, ok };
|
|
13
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/lib/errors/index.ts"],"mappings":";;;cAEa,EAAA,MAAS,IAAA,EAAM,CAAA,qBAAC,CAAA;AAAA,cAIhB,GAAA,aAAiB,WAAA,EAAa,IAAA,EAAM,CAAA,EAAG,OAAA;EAAA;;;cAIvC,cAAA,UAAyB,KAAA,EACpC,EAAA,QAAU,CAAA,qBACO,CAAA,cAAe,CAAA;AAAA,cASrB,UAAA,UAA2B,KAAA,EACtC,OAAA,EAAS,OAAA,CAAQ,CAAA,MAChB,OAAA,iBAAwB,CAAA,cAAe,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CommonError } from "../../errors/types.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/errors/index.d.ts
|
|
4
|
+
declare const ok: <T>(data: T) => readonly [null, T];
|
|
5
|
+
declare const err: <T extends CommonError>(type: T, message: string) => readonly [{
|
|
6
|
+
readonly type: T;
|
|
7
|
+
readonly message: string;
|
|
8
|
+
}, null];
|
|
9
|
+
declare const mightThrowSync: <T, E = Error>(fn: () => T) => readonly [null, T] | readonly [E, null];
|
|
10
|
+
declare const mightThrow: <T, E = Error>(promise: Promise<T>) => Promise<readonly [null, T] | readonly [E, null]>;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { err, mightThrow, mightThrowSync, ok };
|
|
13
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/lib/errors/index.ts"],"mappings":";;;cAEa,EAAA,MAAS,IAAA,EAAM,CAAA,qBAAC,CAAA;AAAA,cAIhB,GAAA,aAAiB,WAAA,EAAa,IAAA,EAAM,CAAA,EAAG,OAAA;EAAA;;;cAIvC,cAAA,UAAyB,KAAA,EACpC,EAAA,QAAU,CAAA,qBACO,CAAA,cAAe,CAAA;AAAA,cASrB,UAAA,UAA2B,KAAA,EACtC,OAAA,EAAS,OAAA,CAAQ,CAAA,MAChB,OAAA,iBAAwB,CAAA,cAAe,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region src/lib/errors/index.ts
|
|
2
|
+
const ok = (data) => {
|
|
3
|
+
return [null, data];
|
|
4
|
+
};
|
|
5
|
+
const err = (type, message) => {
|
|
6
|
+
return [{
|
|
7
|
+
type,
|
|
8
|
+
message
|
|
9
|
+
}, null];
|
|
10
|
+
};
|
|
11
|
+
const mightThrowSync = (fn) => {
|
|
12
|
+
try {
|
|
13
|
+
return [null, fn()];
|
|
14
|
+
} catch (error) {
|
|
15
|
+
return [error, null];
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const mightThrow = async (promise) => {
|
|
19
|
+
try {
|
|
20
|
+
return [null, await promise];
|
|
21
|
+
} catch (error) {
|
|
22
|
+
return [error, null];
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
//#endregion
|
|
26
|
+
export { err, mightThrow, mightThrowSync, ok };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/lib/errors/index.ts"],"sourcesContent":["import type { CommonError } from \"./types.js\";\n\nexport const ok = <T>(data: T) => {\n return [null, data] as const;\n};\n\nexport const err = <T extends CommonError>(type: T, message: string) => {\n return [{ type, message }, null] as const;\n};\n\nexport const mightThrowSync = <T, E = Error>(\n fn: () => T,\n): readonly [null, T] | readonly [E, null] => {\n try {\n const result = fn();\n return [null, result] as const;\n } catch (error) {\n return [error as E, null] as const;\n }\n};\n\nexport const mightThrow = async <T, E = Error>(\n promise: Promise<T>,\n): Promise<readonly [null, T] | readonly [E, null]> => {\n try {\n const data = await promise;\n return [null, data] as const;\n } catch (error) {\n return [error as E, null] as const;\n }\n};\n"],"mappings":";AAEA,MAAa,MAAS,SAAY;AAChC,QAAO,CAAC,MAAM,KAAK;;AAGrB,MAAa,OAA8B,MAAS,YAAoB;AACtE,QAAO,CAAC;EAAE;EAAM;EAAS,EAAE,KAAK;;AAGlC,MAAa,kBACX,OAC4C;AAC5C,KAAI;AAEF,SAAO,CAAC,MADO,IAAI,CACE;UACd,OAAO;AACd,SAAO,CAAC,OAAY,KAAK;;;AAI7B,MAAa,aAAa,OACxB,YACqD;AACrD,KAAI;AAEF,SAAO,CAAC,MADK,MAAM,QACA;UACZ,OAAO;AACd,SAAO,CAAC,OAAY,KAAK"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
//#region src/lib/i18n/index.ts
|
|
3
|
+
var I18n = class {
|
|
4
|
+
locales;
|
|
5
|
+
currentLocale;
|
|
6
|
+
defaultLocale;
|
|
7
|
+
constructor(config) {
|
|
8
|
+
this.defaultLocale = config.defaultLocale;
|
|
9
|
+
this.currentLocale = config.defaultLocale;
|
|
10
|
+
this.locales = config.locales;
|
|
11
|
+
}
|
|
12
|
+
setLocale(locale) {
|
|
13
|
+
this.currentLocale = locale;
|
|
14
|
+
}
|
|
15
|
+
getLocale() {
|
|
16
|
+
return this.currentLocale;
|
|
17
|
+
}
|
|
18
|
+
translate(key, ...params) {
|
|
19
|
+
const currentTranslations = this.locales[this.currentLocale];
|
|
20
|
+
const defaultTranslations = this.locales[this.defaultLocale];
|
|
21
|
+
const translation = this.getNestedValue(currentTranslations, key) ?? this.getNestedValue(defaultTranslations, key);
|
|
22
|
+
if (typeof translation !== "string") return key;
|
|
23
|
+
if (!translation) return key;
|
|
24
|
+
const paramObj = params[0];
|
|
25
|
+
return this.substituteParams(translation, paramObj);
|
|
26
|
+
}
|
|
27
|
+
getNestedValue(obj, path) {
|
|
28
|
+
return path.split(".").reduce((current, key) => {
|
|
29
|
+
if (typeof current !== "object") return;
|
|
30
|
+
if (current === null) return;
|
|
31
|
+
return current[key];
|
|
32
|
+
}, obj);
|
|
33
|
+
}
|
|
34
|
+
substituteParams(template, params) {
|
|
35
|
+
if (!params) return template;
|
|
36
|
+
return template.replace(/\{(\w+):(\w+)\}/g, (_match, name) => {
|
|
37
|
+
return String(params[name]);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
//#endregion
|
|
42
|
+
exports.I18n = I18n;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BuildParamObject, GetNestedValue, NestedKeyOf } from "../../i18n/types.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/i18n/index.d.ts
|
|
4
|
+
declare class I18n<const TLocales extends Record<string, Record<string, unknown>>, TDefaultLocale extends keyof TLocales> {
|
|
5
|
+
private locales;
|
|
6
|
+
private currentLocale;
|
|
7
|
+
private defaultLocale;
|
|
8
|
+
constructor(config: {
|
|
9
|
+
defaultLocale: TDefaultLocale;
|
|
10
|
+
locales: TLocales;
|
|
11
|
+
});
|
|
12
|
+
setLocale(locale: keyof TLocales): void;
|
|
13
|
+
getLocale(): keyof TLocales;
|
|
14
|
+
translate<TKey extends NestedKeyOf<TLocales[TDefaultLocale]>>(key: TKey, ...params: BuildParamObject<GetNestedValue<TLocales[TDefaultLocale], TKey> extends string ? GetNestedValue<TLocales[TDefaultLocale], TKey> : never> extends Record<string, never> ? [] : [BuildParamObject<GetNestedValue<TLocales[TDefaultLocale], TKey> extends string ? GetNestedValue<TLocales[TDefaultLocale], TKey> : never>]): string;
|
|
15
|
+
private getNestedValue;
|
|
16
|
+
private substituteParams;
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { I18n };
|
|
20
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/lib/i18n/index.ts"],"mappings":";;;cAEa,IAAA,wBACY,MAAA,SAAe,MAAA,iDACT,QAAA;EAAA,QAErB,OAAA;EAAA,QACA,aAAA;EAAA,QACA,aAAA;cAEW,MAAA;IACjB,aAAA,EAAe,cAAA;IACf,OAAA,EAAS,QAAA;EAAA;EAOJ,SAAA,CAAU,MAAA,QAAc,QAAA;EAIxB,SAAA,CAAA,SAAS,QAAA;EAIT,SAAA,cAAuB,WAAA,CAAY,QAAA,CAAS,cAAA,GAAA,CACjD,GAAA,EAAK,IAAA,KACF,MAAA,EAAQ,gBAAA,CACT,cAAA,CAAe,QAAA,CAAS,cAAA,GAAiB,IAAA,mBACrC,cAAA,CAAe,QAAA,CAAS,cAAA,GAAiB,IAAA,mBAErC,MAAA,wBAGJ,gBAAA,CACE,cAAA,CAAe,QAAA,CAAS,cAAA,GAAiB,IAAA,mBACrC,cAAA,CAAe,QAAA,CAAS,cAAA,GAAiB,IAAA;EAAA,QAwB/C,cAAA;EAAA,QAiBA,gBAAA;AAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BuildParamObject, GetNestedValue, NestedKeyOf } from "../../i18n/types.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/i18n/index.d.ts
|
|
4
|
+
declare class I18n<const TLocales extends Record<string, Record<string, unknown>>, TDefaultLocale extends keyof TLocales> {
|
|
5
|
+
private locales;
|
|
6
|
+
private currentLocale;
|
|
7
|
+
private defaultLocale;
|
|
8
|
+
constructor(config: {
|
|
9
|
+
defaultLocale: TDefaultLocale;
|
|
10
|
+
locales: TLocales;
|
|
11
|
+
});
|
|
12
|
+
setLocale(locale: keyof TLocales): void;
|
|
13
|
+
getLocale(): keyof TLocales;
|
|
14
|
+
translate<TKey extends NestedKeyOf<TLocales[TDefaultLocale]>>(key: TKey, ...params: BuildParamObject<GetNestedValue<TLocales[TDefaultLocale], TKey> extends string ? GetNestedValue<TLocales[TDefaultLocale], TKey> : never> extends Record<string, never> ? [] : [BuildParamObject<GetNestedValue<TLocales[TDefaultLocale], TKey> extends string ? GetNestedValue<TLocales[TDefaultLocale], TKey> : never>]): string;
|
|
15
|
+
private getNestedValue;
|
|
16
|
+
private substituteParams;
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { I18n };
|
|
20
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/lib/i18n/index.ts"],"mappings":";;;cAEa,IAAA,wBACY,MAAA,SAAe,MAAA,iDACT,QAAA;EAAA,QAErB,OAAA;EAAA,QACA,aAAA;EAAA,QACA,aAAA;cAEW,MAAA;IACjB,aAAA,EAAe,cAAA;IACf,OAAA,EAAS,QAAA;EAAA;EAOJ,SAAA,CAAU,MAAA,QAAc,QAAA;EAIxB,SAAA,CAAA,SAAS,QAAA;EAIT,SAAA,cAAuB,WAAA,CAAY,QAAA,CAAS,cAAA,GAAA,CACjD,GAAA,EAAK,IAAA,KACF,MAAA,EAAQ,gBAAA,CACT,cAAA,CAAe,QAAA,CAAS,cAAA,GAAiB,IAAA,mBACrC,cAAA,CAAe,QAAA,CAAS,cAAA,GAAiB,IAAA,mBAErC,MAAA,wBAGJ,gBAAA,CACE,cAAA,CAAe,QAAA,CAAS,cAAA,GAAiB,IAAA,mBACrC,cAAA,CAAe,QAAA,CAAS,cAAA,GAAiB,IAAA;EAAA,QAwB/C,cAAA;EAAA,QAiBA,gBAAA;AAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
//#region src/lib/i18n/index.ts
|
|
2
|
+
var I18n = class {
|
|
3
|
+
locales;
|
|
4
|
+
currentLocale;
|
|
5
|
+
defaultLocale;
|
|
6
|
+
constructor(config) {
|
|
7
|
+
this.defaultLocale = config.defaultLocale;
|
|
8
|
+
this.currentLocale = config.defaultLocale;
|
|
9
|
+
this.locales = config.locales;
|
|
10
|
+
}
|
|
11
|
+
setLocale(locale) {
|
|
12
|
+
this.currentLocale = locale;
|
|
13
|
+
}
|
|
14
|
+
getLocale() {
|
|
15
|
+
return this.currentLocale;
|
|
16
|
+
}
|
|
17
|
+
translate(key, ...params) {
|
|
18
|
+
const currentTranslations = this.locales[this.currentLocale];
|
|
19
|
+
const defaultTranslations = this.locales[this.defaultLocale];
|
|
20
|
+
const translation = this.getNestedValue(currentTranslations, key) ?? this.getNestedValue(defaultTranslations, key);
|
|
21
|
+
if (typeof translation !== "string") return key;
|
|
22
|
+
if (!translation) return key;
|
|
23
|
+
const paramObj = params[0];
|
|
24
|
+
return this.substituteParams(translation, paramObj);
|
|
25
|
+
}
|
|
26
|
+
getNestedValue(obj, path) {
|
|
27
|
+
return path.split(".").reduce((current, key) => {
|
|
28
|
+
if (typeof current !== "object") return;
|
|
29
|
+
if (current === null) return;
|
|
30
|
+
return current[key];
|
|
31
|
+
}, obj);
|
|
32
|
+
}
|
|
33
|
+
substituteParams(template, params) {
|
|
34
|
+
if (!params) return template;
|
|
35
|
+
return template.replace(/\{(\w+):(\w+)\}/g, (_match, name) => {
|
|
36
|
+
return String(params[name]);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
//#endregion
|
|
41
|
+
export { I18n };
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/lib/i18n/index.ts"],"sourcesContent":["import type { BuildParamObject, GetNestedValue, NestedKeyOf } from \"./types.js\";\n\nexport class I18n<\n const TLocales extends Record<string, Record<string, unknown>>,\n TDefaultLocale extends keyof TLocales,\n> {\n private locales: TLocales;\n private currentLocale: keyof TLocales;\n private defaultLocale: TDefaultLocale;\n\n public constructor(config: {\n defaultLocale: TDefaultLocale;\n locales: TLocales;\n }) {\n this.defaultLocale = config.defaultLocale;\n this.currentLocale = config.defaultLocale;\n this.locales = config.locales;\n }\n\n public setLocale(locale: keyof TLocales) {\n this.currentLocale = locale;\n }\n\n public getLocale() {\n return this.currentLocale;\n }\n\n public translate<TKey extends NestedKeyOf<TLocales[TDefaultLocale]>>(\n key: TKey,\n ...params: BuildParamObject<\n GetNestedValue<TLocales[TDefaultLocale], TKey> extends string\n ? GetNestedValue<TLocales[TDefaultLocale], TKey>\n : never\n > extends Record<string, never>\n ? []\n : [\n BuildParamObject<\n GetNestedValue<TLocales[TDefaultLocale], TKey> extends string\n ? GetNestedValue<TLocales[TDefaultLocale], TKey>\n : never\n >,\n ]\n ) {\n const currentTranslations = this.locales[this.currentLocale];\n const defaultTranslations = this.locales[this.defaultLocale];\n\n const translation =\n this.getNestedValue(currentTranslations, key) ??\n this.getNestedValue(defaultTranslations, key);\n\n if (typeof translation !== \"string\") {\n return key;\n }\n\n if (!translation) {\n return key;\n }\n\n const paramObj = params[0] as Record<string, unknown> | undefined;\n return this.substituteParams(translation, paramObj);\n }\n\n private getNestedValue(\n obj: Record<string, unknown> | undefined,\n path: string,\n ) {\n return path.split(\".\").reduce((current: unknown, key: string) => {\n if (typeof current !== \"object\") {\n return undefined;\n }\n\n if (current === null) {\n return undefined;\n }\n\n return (current as Record<string, unknown>)[key];\n }, obj);\n }\n\n private substituteParams(template: string, params?: Record<string, unknown>) {\n if (!params) return template;\n\n return template.replace(/\\{(\\w+):(\\w+)\\}/g, (_match, name) => {\n return String(params[name]);\n });\n }\n}\n"],"mappings":";AAEA,IAAa,OAAb,MAGE;CACA;CACA;CACA;CAEA,YAAmB,QAGhB;AACD,OAAK,gBAAgB,OAAO;AAC5B,OAAK,gBAAgB,OAAO;AAC5B,OAAK,UAAU,OAAO;;CAGxB,UAAiB,QAAwB;AACvC,OAAK,gBAAgB;;CAGvB,YAAmB;AACjB,SAAO,KAAK;;CAGd,UACE,KACA,GAAG,QAaH;EACA,MAAM,sBAAsB,KAAK,QAAQ,KAAK;EAC9C,MAAM,sBAAsB,KAAK,QAAQ,KAAK;EAE9C,MAAM,cACJ,KAAK,eAAe,qBAAqB,IAAI,IAC7C,KAAK,eAAe,qBAAqB,IAAI;AAE/C,MAAI,OAAO,gBAAgB,SACzB,QAAO;AAGT,MAAI,CAAC,YACH,QAAO;EAGT,MAAM,WAAW,OAAO;AACxB,SAAO,KAAK,iBAAiB,aAAa,SAAS;;CAGrD,eACE,KACA,MACA;AACA,SAAO,KAAK,MAAM,IAAI,CAAC,QAAQ,SAAkB,QAAgB;AAC/D,OAAI,OAAO,YAAY,SACrB;AAGF,OAAI,YAAY,KACd;AAGF,UAAQ,QAAoC;KAC3C,IAAI;;CAGT,iBAAyB,UAAkB,QAAkC;AAC3E,MAAI,CAAC,OAAQ,QAAO;AAEpB,SAAO,SAAS,QAAQ,qBAAqB,QAAQ,SAAS;AAC5D,UAAO,OAAO,OAAO,MAAM;IAC3B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_index = require("../../logging/formatter/index.cjs");
|
|
3
|
+
const require_index$1 = require("../../logging/core/index.cjs");
|
|
4
|
+
const require_types = require("../../logging/core/types.cjs");
|
|
5
|
+
const require_index$2 = require("../../logging/provider/index.cjs");
|
|
6
|
+
exports.AbstractLogger = require_index$1.AbstractLogger;
|
|
7
|
+
exports.BaseFormatter = require_index.BaseFormatter;
|
|
8
|
+
exports.ConsoleProvider = require_index$2.ConsoleProvider;
|
|
9
|
+
exports.FileProvider = require_index$2.FileProvider;
|
|
10
|
+
exports.Formatter = require_index.Formatter;
|
|
11
|
+
exports.JSONFormatter = require_index.JSONFormatter;
|
|
12
|
+
exports.LogLevel = require_types.LogLevel;
|
|
13
|
+
exports.Logger = require_index$1.Logger;
|
|
14
|
+
exports.LoggerProvider = require_index$2.LoggerProvider;
|
|
15
|
+
exports.dmyFormat = require_index.dmyFormat;
|
|
16
|
+
exports.isoDateFormat = require_index.isoDateFormat;
|
|
17
|
+
exports.isoDateTimeFormat = require_index.isoDateTimeFormat;
|
|
18
|
+
exports.mdyFormat = require_index.mdyFormat;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { LogDataType, LogLevel, LogLevelType, LogMessageType } from "../../logging/core/types.cjs";
|
|
2
|
+
import { DateFmtFnType } from "../../logging/formatter/types.cjs";
|
|
3
|
+
import { BaseFormatter, Formatter, JSONFormatter, dmyFormat, isoDateFormat, isoDateTimeFormat, mdyFormat } from "../../logging/formatter/index.cjs";
|
|
4
|
+
import { FileProviderOptions, ProviderOptions, SizeBasedPolicyType, TimeBasedPolicyType } from "../../logging/provider/types.cjs";
|
|
5
|
+
import { ConsoleProvider, FileProvider, LoggerProvider } from "../../logging/provider/index.cjs";
|
|
6
|
+
import { AbstractLogger, Logger } from "../../logging/core/index.cjs";
|
|
7
|
+
export { AbstractLogger, BaseFormatter, ConsoleProvider, type DateFmtFnType, FileProvider, type FileProviderOptions, Formatter, JSONFormatter, type LogDataType, LogLevel, type LogLevelType, type LogMessageType, Logger, LoggerProvider, type ProviderOptions, type SizeBasedPolicyType, type TimeBasedPolicyType, dmyFormat, isoDateFormat, isoDateTimeFormat, mdyFormat };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { LogDataType, LogLevel, LogLevelType, LogMessageType } from "../../logging/core/types.mjs";
|
|
2
|
+
import { DateFmtFnType } from "../../logging/formatter/types.mjs";
|
|
3
|
+
import { BaseFormatter, Formatter, JSONFormatter, dmyFormat, isoDateFormat, isoDateTimeFormat, mdyFormat } from "../../logging/formatter/index.mjs";
|
|
4
|
+
import { FileProviderOptions, ProviderOptions, SizeBasedPolicyType, TimeBasedPolicyType } from "../../logging/provider/types.mjs";
|
|
5
|
+
import { ConsoleProvider, FileProvider, LoggerProvider } from "../../logging/provider/index.mjs";
|
|
6
|
+
import { AbstractLogger, Logger } from "../../logging/core/index.mjs";
|
|
7
|
+
export { AbstractLogger, BaseFormatter, ConsoleProvider, type DateFmtFnType, FileProvider, type FileProviderOptions, Formatter, JSONFormatter, type LogDataType, LogLevel, type LogLevelType, type LogMessageType, Logger, LoggerProvider, type ProviderOptions, type SizeBasedPolicyType, type TimeBasedPolicyType, dmyFormat, isoDateFormat, isoDateTimeFormat, mdyFormat };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BaseFormatter, Formatter, JSONFormatter, dmyFormat, isoDateFormat, isoDateTimeFormat, mdyFormat } from "../../logging/formatter/index.mjs";
|
|
2
|
+
import { AbstractLogger, Logger } from "../../logging/core/index.mjs";
|
|
3
|
+
import { LogLevel } from "../../logging/core/types.mjs";
|
|
4
|
+
import { ConsoleProvider, FileProvider, LoggerProvider } from "../../logging/provider/index.mjs";
|
|
5
|
+
export { AbstractLogger, BaseFormatter, ConsoleProvider, FileProvider, Formatter, JSONFormatter, LogLevel, Logger, LoggerProvider, dmyFormat, isoDateFormat, isoDateTimeFormat, mdyFormat };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_column = require("../../orm/column.cjs");
|
|
3
|
+
const require_config = require("../../orm/migration/config.cjs");
|
|
4
|
+
const require_orm = require("../../orm/orm.cjs");
|
|
5
|
+
const require_relation = require("../../orm/relation.cjs");
|
|
6
|
+
const require_table = require("../../orm/table.cjs");
|
|
7
|
+
exports.boolean = require_column.boolean;
|
|
8
|
+
exports.createOrm = require_orm.createOrm;
|
|
9
|
+
exports.createTable = require_table.createTable;
|
|
10
|
+
exports.date = require_column.date;
|
|
11
|
+
exports.defineConfig = require_config.defineConfig;
|
|
12
|
+
exports.enumColumn = require_column.enumeration;
|
|
13
|
+
exports.enumeration = require_column.enumeration;
|
|
14
|
+
exports.json = require_column.json;
|
|
15
|
+
exports.jsonb = require_column.jsonb;
|
|
16
|
+
exports.many = require_relation.many;
|
|
17
|
+
exports.number = require_column.number;
|
|
18
|
+
exports.one = require_relation.one;
|
|
19
|
+
exports.string = require_column.string;
|
|
20
|
+
exports.uuid = require_column.uuid;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createTable } from "../../orm/table.cjs";
|
|
2
|
+
import { CreateInput, CreateManyInput, DeleteBuilderInput, DeleteInput, DeleteManyInput, Dialect, DialectAdapter, FindFirstInput, FindManyInput, FindUniqueInput, InsertInput, JoinNode, OrderDirection, SelectInput, SelectPlan, TableRow, TinyTableClient, UpdateBuilderInput, UpdateInput, UpdateManyInput, WhereNode } from "../../orm/types.cjs";
|
|
3
|
+
import { boolean, date, enumeration, json, jsonb, number, string, uuid } from "../../orm/column.cjs";
|
|
4
|
+
import { defineConfig } from "../../orm/migration/config.cjs";
|
|
5
|
+
import { createOrm } from "../../orm/orm.cjs";
|
|
6
|
+
import { many, one } from "../../orm/relation.cjs";
|
|
7
|
+
export { type CreateInput, type CreateManyInput, type DeleteBuilderInput, type DeleteInput, type DeleteManyInput, type Dialect, type DialectAdapter, type FindFirstInput, type FindManyInput, type FindUniqueInput, type InsertInput, type JoinNode, type OrderDirection, type SelectInput, type SelectPlan, type TableRow, type TinyTableClient, type UpdateBuilderInput, type UpdateInput, type UpdateManyInput, type WhereNode, boolean, createOrm, createTable, date, defineConfig, enumeration as enumColumn, enumeration, json, jsonb, many, number, one, string, uuid };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createTable } from "../../orm/table.mjs";
|
|
2
|
+
import { CreateInput, CreateManyInput, DeleteBuilderInput, DeleteInput, DeleteManyInput, Dialect, DialectAdapter, FindFirstInput, FindManyInput, FindUniqueInput, InsertInput, JoinNode, OrderDirection, SelectInput, SelectPlan, TableRow, TinyTableClient, UpdateBuilderInput, UpdateInput, UpdateManyInput, WhereNode } from "../../orm/types.mjs";
|
|
3
|
+
import { boolean, date, enumeration, json, jsonb, number, string, uuid } from "../../orm/column.mjs";
|
|
4
|
+
import { defineConfig } from "../../orm/migration/config.mjs";
|
|
5
|
+
import { createOrm } from "../../orm/orm.mjs";
|
|
6
|
+
import { many, one } from "../../orm/relation.mjs";
|
|
7
|
+
export { type CreateInput, type CreateManyInput, type DeleteBuilderInput, type DeleteInput, type DeleteManyInput, type Dialect, type DialectAdapter, type FindFirstInput, type FindManyInput, type FindUniqueInput, type InsertInput, type JoinNode, type OrderDirection, type SelectInput, type SelectPlan, type TableRow, type TinyTableClient, type UpdateBuilderInput, type UpdateInput, type UpdateManyInput, type WhereNode, boolean, createOrm, createTable, date, defineConfig, enumeration as enumColumn, enumeration, json, jsonb, many, number, one, string, uuid };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { boolean, date, enumeration, json, jsonb, number, string, uuid } from "../../orm/column.mjs";
|
|
2
|
+
import { defineConfig } from "../../orm/migration/config.mjs";
|
|
3
|
+
import { createOrm } from "../../orm/orm.mjs";
|
|
4
|
+
import { many, one } from "../../orm/relation.mjs";
|
|
5
|
+
import { createTable } from "../../orm/table.mjs";
|
|
6
|
+
export { boolean, createOrm, createTable, date, defineConfig, enumeration as enumColumn, enumeration, json, jsonb, many, number, one, string, uuid };
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_helpers = require("../../policy/helpers.cjs");
|
|
3
|
+
//#region src/lib/policy/index.ts
|
|
4
|
+
var Policy = class {
|
|
5
|
+
rules = [];
|
|
6
|
+
allow(params) {
|
|
7
|
+
const actions = this.toActions(params.action);
|
|
8
|
+
for (const action of actions) this.rules.push({
|
|
9
|
+
action,
|
|
10
|
+
conditions: params.conditions,
|
|
11
|
+
inverted: false,
|
|
12
|
+
reason: params.reason
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
forbid(params) {
|
|
16
|
+
const actions = this.toActions(params.action);
|
|
17
|
+
for (const action of actions) this.rules.push({
|
|
18
|
+
action,
|
|
19
|
+
conditions: params.conditions,
|
|
20
|
+
inverted: true,
|
|
21
|
+
reason: params.reason
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
toActions(action) {
|
|
25
|
+
if (Array.isArray(action)) return action;
|
|
26
|
+
return [action];
|
|
27
|
+
}
|
|
28
|
+
can(action, object) {
|
|
29
|
+
const filteredRules = this.rules.filter((rule) => rule.action === action);
|
|
30
|
+
const forbidResult = this.checkForbids(filteredRules, object);
|
|
31
|
+
if (forbidResult) return forbidResult;
|
|
32
|
+
const allowResult = this.checkAllows(filteredRules, object);
|
|
33
|
+
if (allowResult) return allowResult;
|
|
34
|
+
return {
|
|
35
|
+
allowed: false,
|
|
36
|
+
reason: void 0
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
checkForbids(rules, object) {
|
|
40
|
+
for (const rule of rules) {
|
|
41
|
+
if (!rule.inverted) continue;
|
|
42
|
+
if (!rule.conditions || Object.entries(rule.conditions).length === 0) return {
|
|
43
|
+
allowed: false,
|
|
44
|
+
reason: rule.reason
|
|
45
|
+
};
|
|
46
|
+
if (object && this.deepMatch(object, rule.conditions)) return {
|
|
47
|
+
allowed: false,
|
|
48
|
+
reason: rule.reason
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
checkAllows(rules, object) {
|
|
53
|
+
for (const rule of rules) {
|
|
54
|
+
if (rule.inverted) continue;
|
|
55
|
+
if (!rule.conditions || Object.entries(rule.conditions).length === 0) return {
|
|
56
|
+
allowed: true,
|
|
57
|
+
reason: rule.reason
|
|
58
|
+
};
|
|
59
|
+
if (object && this.deepMatch(object, rule.conditions)) return {
|
|
60
|
+
allowed: true,
|
|
61
|
+
reason: rule.reason
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
deepMatch(objectValue, conditionValue) {
|
|
66
|
+
if (typeof objectValue !== "object" || objectValue === null) return false;
|
|
67
|
+
for (const [key, nestedCondition] of Object.entries(conditionValue)) {
|
|
68
|
+
const nestedValue = Reflect.get(objectValue, key);
|
|
69
|
+
if (!this.matchValue(nestedValue, nestedCondition)) return false;
|
|
70
|
+
}
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
matchValue(actual, condition) {
|
|
74
|
+
if (typeof condition !== "object" || condition === null) return false;
|
|
75
|
+
if ("fn" in condition && typeof condition.fn === "function") return condition.fn(actual);
|
|
76
|
+
return this.deepMatch(actual, condition);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
//#endregion
|
|
80
|
+
exports.Policy = Policy;
|
|
81
|
+
exports.and = require_helpers.and;
|
|
82
|
+
exports.endsWith = require_helpers.endsWith;
|
|
83
|
+
exports.eq = require_helpers.eq;
|
|
84
|
+
exports.gt = require_helpers.gt;
|
|
85
|
+
exports.gte = require_helpers.gte;
|
|
86
|
+
exports.has = require_helpers.has;
|
|
87
|
+
exports.hasAny = require_helpers.hasAny;
|
|
88
|
+
exports.hasLength = require_helpers.hasLength;
|
|
89
|
+
exports.includes = require_helpers.includes;
|
|
90
|
+
exports.isDefined = require_helpers.isDefined;
|
|
91
|
+
exports.isEmpty = require_helpers.isEmpty;
|
|
92
|
+
exports.isNullish = require_helpers.isNullish;
|
|
93
|
+
exports.lt = require_helpers.lt;
|
|
94
|
+
exports.lte = require_helpers.lte;
|
|
95
|
+
exports.matches = require_helpers.matches;
|
|
96
|
+
exports.neq = require_helpers.neq;
|
|
97
|
+
exports.not = require_helpers.not;
|
|
98
|
+
exports.or = require_helpers.or;
|
|
99
|
+
exports.startsWith = require_helpers.startsWith;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ConditionHelper, and, endsWith, eq, gt, gte, has, hasAny, hasLength, includes, isDefined, isEmpty, isNullish, lt, lte, matches, neq, not, or, startsWith } from "../../policy/helpers.cjs";
|
|
2
|
+
import { Action, AllowParams, ForbidParams } from "../../policy/types.cjs";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/policy/index.d.ts
|
|
5
|
+
declare class Policy<TEntity extends Record<string, unknown> = Record<string, unknown>> {
|
|
6
|
+
private rules;
|
|
7
|
+
allow(params: AllowParams<TEntity>): void;
|
|
8
|
+
forbid(params: ForbidParams<TEntity>): void;
|
|
9
|
+
private toActions;
|
|
10
|
+
can(action: Action, object?: TEntity): {
|
|
11
|
+
allowed: boolean;
|
|
12
|
+
reason: string | undefined;
|
|
13
|
+
};
|
|
14
|
+
private checkForbids;
|
|
15
|
+
private checkAllows;
|
|
16
|
+
private deepMatch;
|
|
17
|
+
private matchValue;
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
export { type ConditionHelper, Policy, and, endsWith, eq, gt, gte, has, hasAny, hasLength, includes, isDefined, isEmpty, isNullish, lt, lte, matches, neq, not, or, startsWith };
|
|
21
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/lib/policy/index.ts"],"mappings":";;;;cAEa,MAAA,iBACK,MAAA,oBAA0B,MAAA;EAAA,QAElC,KAAA;EAED,KAAA,CAAM,MAAA,EAAQ,WAAA,CAAY,OAAA;EAa1B,MAAA,CAAO,MAAA,EAAQ,YAAA,CAAa,OAAA;EAAA,QAa3B,SAAA;EAQD,GAAA,CAAI,MAAA,EAAQ,MAAA,EAAQ,MAAA,GAAS,OAAA;;;;UAkB5B,YAAA;EAAA,QAgBA,WAAA;EAAA,QAgBA,SAAA;EAAA,QAgBA,UAAA;AAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ConditionHelper, and, endsWith, eq, gt, gte, has, hasAny, hasLength, includes, isDefined, isEmpty, isNullish, lt, lte, matches, neq, not, or, startsWith } from "../../policy/helpers.mjs";
|
|
2
|
+
import { Action, AllowParams, ForbidParams } from "../../policy/types.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/policy/index.d.ts
|
|
5
|
+
declare class Policy<TEntity extends Record<string, unknown> = Record<string, unknown>> {
|
|
6
|
+
private rules;
|
|
7
|
+
allow(params: AllowParams<TEntity>): void;
|
|
8
|
+
forbid(params: ForbidParams<TEntity>): void;
|
|
9
|
+
private toActions;
|
|
10
|
+
can(action: Action, object?: TEntity): {
|
|
11
|
+
allowed: boolean;
|
|
12
|
+
reason: string | undefined;
|
|
13
|
+
};
|
|
14
|
+
private checkForbids;
|
|
15
|
+
private checkAllows;
|
|
16
|
+
private deepMatch;
|
|
17
|
+
private matchValue;
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
export { type ConditionHelper, Policy, and, endsWith, eq, gt, gte, has, hasAny, hasLength, includes, isDefined, isEmpty, isNullish, lt, lte, matches, neq, not, or, startsWith };
|
|
21
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/lib/policy/index.ts"],"mappings":";;;;cAEa,MAAA,iBACK,MAAA,oBAA0B,MAAA;EAAA,QAElC,KAAA;EAED,KAAA,CAAM,MAAA,EAAQ,WAAA,CAAY,OAAA;EAa1B,MAAA,CAAO,MAAA,EAAQ,YAAA,CAAa,OAAA;EAAA,QAa3B,SAAA;EAQD,GAAA,CAAI,MAAA,EAAQ,MAAA,EAAQ,MAAA,GAAS,OAAA;;;;UAkB5B,YAAA;EAAA,QAgBA,WAAA;EAAA,QAgBA,SAAA;EAAA,QAgBA,UAAA;AAAA"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { and, endsWith, eq, gt, gte, has, hasAny, hasLength, includes, isDefined, isEmpty, isNullish, lt, lte, matches, neq, not, or, startsWith } from "../../policy/helpers.mjs";
|
|
2
|
+
//#region src/lib/policy/index.ts
|
|
3
|
+
var Policy = class {
|
|
4
|
+
rules = [];
|
|
5
|
+
allow(params) {
|
|
6
|
+
const actions = this.toActions(params.action);
|
|
7
|
+
for (const action of actions) this.rules.push({
|
|
8
|
+
action,
|
|
9
|
+
conditions: params.conditions,
|
|
10
|
+
inverted: false,
|
|
11
|
+
reason: params.reason
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
forbid(params) {
|
|
15
|
+
const actions = this.toActions(params.action);
|
|
16
|
+
for (const action of actions) this.rules.push({
|
|
17
|
+
action,
|
|
18
|
+
conditions: params.conditions,
|
|
19
|
+
inverted: true,
|
|
20
|
+
reason: params.reason
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
toActions(action) {
|
|
24
|
+
if (Array.isArray(action)) return action;
|
|
25
|
+
return [action];
|
|
26
|
+
}
|
|
27
|
+
can(action, object) {
|
|
28
|
+
const filteredRules = this.rules.filter((rule) => rule.action === action);
|
|
29
|
+
const forbidResult = this.checkForbids(filteredRules, object);
|
|
30
|
+
if (forbidResult) return forbidResult;
|
|
31
|
+
const allowResult = this.checkAllows(filteredRules, object);
|
|
32
|
+
if (allowResult) return allowResult;
|
|
33
|
+
return {
|
|
34
|
+
allowed: false,
|
|
35
|
+
reason: void 0
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
checkForbids(rules, object) {
|
|
39
|
+
for (const rule of rules) {
|
|
40
|
+
if (!rule.inverted) continue;
|
|
41
|
+
if (!rule.conditions || Object.entries(rule.conditions).length === 0) return {
|
|
42
|
+
allowed: false,
|
|
43
|
+
reason: rule.reason
|
|
44
|
+
};
|
|
45
|
+
if (object && this.deepMatch(object, rule.conditions)) return {
|
|
46
|
+
allowed: false,
|
|
47
|
+
reason: rule.reason
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
checkAllows(rules, object) {
|
|
52
|
+
for (const rule of rules) {
|
|
53
|
+
if (rule.inverted) continue;
|
|
54
|
+
if (!rule.conditions || Object.entries(rule.conditions).length === 0) return {
|
|
55
|
+
allowed: true,
|
|
56
|
+
reason: rule.reason
|
|
57
|
+
};
|
|
58
|
+
if (object && this.deepMatch(object, rule.conditions)) return {
|
|
59
|
+
allowed: true,
|
|
60
|
+
reason: rule.reason
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
deepMatch(objectValue, conditionValue) {
|
|
65
|
+
if (typeof objectValue !== "object" || objectValue === null) return false;
|
|
66
|
+
for (const [key, nestedCondition] of Object.entries(conditionValue)) {
|
|
67
|
+
const nestedValue = Reflect.get(objectValue, key);
|
|
68
|
+
if (!this.matchValue(nestedValue, nestedCondition)) return false;
|
|
69
|
+
}
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
matchValue(actual, condition) {
|
|
73
|
+
if (typeof condition !== "object" || condition === null) return false;
|
|
74
|
+
if ("fn" in condition && typeof condition.fn === "function") return condition.fn(actual);
|
|
75
|
+
return this.deepMatch(actual, condition);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
//#endregion
|
|
79
|
+
export { Policy, and, endsWith, eq, gt, gte, has, hasAny, hasLength, includes, isDefined, isEmpty, isNullish, lt, lte, matches, neq, not, or, startsWith };
|
|
80
|
+
|
|
81
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/lib/policy/index.ts"],"sourcesContent":["import type { Action, AllowParams, ForbidParams, Rule } from \"./types.js\";\n\nexport class Policy<\n TEntity extends Record<string, unknown> = Record<string, unknown>,\n> {\n private rules: Rule<TEntity>[] = [];\n\n public allow(params: AllowParams<TEntity>) {\n const actions = this.toActions(params.action);\n\n for (const action of actions) {\n this.rules.push({\n action,\n conditions: params.conditions,\n inverted: false,\n reason: params.reason,\n });\n }\n }\n\n public forbid(params: ForbidParams<TEntity>) {\n const actions = this.toActions(params.action);\n\n for (const action of actions) {\n this.rules.push({\n action,\n conditions: params.conditions,\n inverted: true,\n reason: params.reason,\n });\n }\n }\n\n private toActions(action: Action | Action[]) {\n if (Array.isArray(action)) {\n return action;\n }\n\n return [action];\n }\n\n public can(action: Action, object?: TEntity) {\n const filteredRules = this.rules.filter((rule) => rule.action === action);\n\n const forbidResult = this.checkForbids(filteredRules, object);\n\n if (forbidResult) {\n return forbidResult;\n }\n\n const allowResult = this.checkAllows(filteredRules, object);\n\n if (allowResult) {\n return allowResult;\n }\n\n return { allowed: false, reason: undefined };\n }\n\n private checkForbids(rules: Rule<TEntity>[], object?: TEntity) {\n for (const rule of rules) {\n if (!rule.inverted) {\n continue;\n }\n\n if (!rule.conditions || Object.entries(rule.conditions).length === 0) {\n return { allowed: false, reason: rule.reason };\n }\n\n if (object && this.deepMatch(object, rule.conditions)) {\n return { allowed: false, reason: rule.reason };\n }\n }\n }\n\n private checkAllows(rules: Rule<TEntity>[], object?: TEntity) {\n for (const rule of rules) {\n if (rule.inverted) {\n continue;\n }\n\n if (!rule.conditions || Object.entries(rule.conditions).length === 0) {\n return { allowed: true, reason: rule.reason };\n }\n\n if (object && this.deepMatch(object, rule.conditions)) {\n return { allowed: true, reason: rule.reason };\n }\n }\n }\n\n private deepMatch(objectValue: unknown, conditionValue: object) {\n if (typeof objectValue !== \"object\" || objectValue === null) {\n return false;\n }\n\n for (const [key, nestedCondition] of Object.entries(conditionValue)) {\n const nestedValue = Reflect.get(objectValue, key);\n\n if (!this.matchValue(nestedValue, nestedCondition)) {\n return false;\n }\n }\n\n return true;\n }\n\n private matchValue(actual: unknown, condition: unknown) {\n if (typeof condition !== \"object\" || condition === null) {\n return false;\n }\n\n if (\"fn\" in condition && typeof condition.fn === \"function\") {\n return condition.fn(actual);\n }\n\n return this.deepMatch(actual, condition);\n }\n}\n\nexport type { ConditionHelper } from \"./helpers.js\";\nexport {\n and,\n endsWith,\n eq,\n gt,\n gte,\n has,\n hasAny,\n hasLength,\n includes,\n isDefined,\n isEmpty,\n isNullish,\n lt,\n lte,\n matches,\n neq,\n not,\n or,\n startsWith,\n} from \"./helpers.js\";\n"],"mappings":";;AAEA,IAAa,SAAb,MAEE;CACA,QAAiC,EAAE;CAEnC,MAAa,QAA8B;EACzC,MAAM,UAAU,KAAK,UAAU,OAAO,OAAO;AAE7C,OAAK,MAAM,UAAU,QACnB,MAAK,MAAM,KAAK;GACd;GACA,YAAY,OAAO;GACnB,UAAU;GACV,QAAQ,OAAO;GAChB,CAAC;;CAIN,OAAc,QAA+B;EAC3C,MAAM,UAAU,KAAK,UAAU,OAAO,OAAO;AAE7C,OAAK,MAAM,UAAU,QACnB,MAAK,MAAM,KAAK;GACd;GACA,YAAY,OAAO;GACnB,UAAU;GACV,QAAQ,OAAO;GAChB,CAAC;;CAIN,UAAkB,QAA2B;AAC3C,MAAI,MAAM,QAAQ,OAAO,CACvB,QAAO;AAGT,SAAO,CAAC,OAAO;;CAGjB,IAAW,QAAgB,QAAkB;EAC3C,MAAM,gBAAgB,KAAK,MAAM,QAAQ,SAAS,KAAK,WAAW,OAAO;EAEzE,MAAM,eAAe,KAAK,aAAa,eAAe,OAAO;AAE7D,MAAI,aACF,QAAO;EAGT,MAAM,cAAc,KAAK,YAAY,eAAe,OAAO;AAE3D,MAAI,YACF,QAAO;AAGT,SAAO;GAAE,SAAS;GAAO,QAAQ,KAAA;GAAW;;CAG9C,aAAqB,OAAwB,QAAkB;AAC7D,OAAK,MAAM,QAAQ,OAAO;AACxB,OAAI,CAAC,KAAK,SACR;AAGF,OAAI,CAAC,KAAK,cAAc,OAAO,QAAQ,KAAK,WAAW,CAAC,WAAW,EACjE,QAAO;IAAE,SAAS;IAAO,QAAQ,KAAK;IAAQ;AAGhD,OAAI,UAAU,KAAK,UAAU,QAAQ,KAAK,WAAW,CACnD,QAAO;IAAE,SAAS;IAAO,QAAQ,KAAK;IAAQ;;;CAKpD,YAAoB,OAAwB,QAAkB;AAC5D,OAAK,MAAM,QAAQ,OAAO;AACxB,OAAI,KAAK,SACP;AAGF,OAAI,CAAC,KAAK,cAAc,OAAO,QAAQ,KAAK,WAAW,CAAC,WAAW,EACjE,QAAO;IAAE,SAAS;IAAM,QAAQ,KAAK;IAAQ;AAG/C,OAAI,UAAU,KAAK,UAAU,QAAQ,KAAK,WAAW,CACnD,QAAO;IAAE,SAAS;IAAM,QAAQ,KAAK;IAAQ;;;CAKnD,UAAkB,aAAsB,gBAAwB;AAC9D,MAAI,OAAO,gBAAgB,YAAY,gBAAgB,KACrD,QAAO;AAGT,OAAK,MAAM,CAAC,KAAK,oBAAoB,OAAO,QAAQ,eAAe,EAAE;GACnE,MAAM,cAAc,QAAQ,IAAI,aAAa,IAAI;AAEjD,OAAI,CAAC,KAAK,WAAW,aAAa,gBAAgB,CAChD,QAAO;;AAIX,SAAO;;CAGT,WAAmB,QAAiB,WAAoB;AACtD,MAAI,OAAO,cAAc,YAAY,cAAc,KACjD,QAAO;AAGT,MAAI,QAAQ,aAAa,OAAO,UAAU,OAAO,WAC/C,QAAO,UAAU,GAAG,OAAO;AAG7B,SAAO,KAAK,UAAU,QAAQ,UAAU"}
|