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
|
@@ -1,359 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from "bun:test";
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
import { Middleware } from "../middleware/index.js";
|
|
4
|
-
import { generateOpenApiSpec } from "./index.js";
|
|
5
|
-
describe("OpenAPI Generation", () => {
|
|
6
|
-
test("should generate a valid base spec with info", async () => {
|
|
7
|
-
const spec = await generateOpenApiSpec({
|
|
8
|
-
title: "Test API",
|
|
9
|
-
version: "1.2.3",
|
|
10
|
-
description: "A simple description",
|
|
11
|
-
routes: [],
|
|
12
|
-
});
|
|
13
|
-
expect(spec.openapi).toBe("3.1.0");
|
|
14
|
-
expect(spec.info.title).toBe("Test API");
|
|
15
|
-
expect(spec.info.version).toBe("1.2.3");
|
|
16
|
-
expect(spec.info.description).toBe("A simple description");
|
|
17
|
-
});
|
|
18
|
-
test("should convert routes with request and response schemas", async () => {
|
|
19
|
-
const spec = await generateOpenApiSpec({
|
|
20
|
-
title: "API",
|
|
21
|
-
version: "1.0.0",
|
|
22
|
-
routes: [
|
|
23
|
-
{
|
|
24
|
-
path: "/users",
|
|
25
|
-
method: "POST",
|
|
26
|
-
request: {
|
|
27
|
-
body: z.object({ name: z.string() }),
|
|
28
|
-
query: z.object({ age: z.string().optional() }),
|
|
29
|
-
},
|
|
30
|
-
response: {
|
|
31
|
-
201: z.object({ id: z.string() }),
|
|
32
|
-
},
|
|
33
|
-
handler: () => { },
|
|
34
|
-
summary: "Create User",
|
|
35
|
-
},
|
|
36
|
-
],
|
|
37
|
-
});
|
|
38
|
-
const route = spec.paths["/users"]?.post;
|
|
39
|
-
expect(route?.summary).toBe("Create User");
|
|
40
|
-
// Check parameters (query)
|
|
41
|
-
expect(route?.parameters).toContainEqual(expect.objectContaining({ name: "age", in: "query" }));
|
|
42
|
-
// Check request body
|
|
43
|
-
expect(route?.requestBody?.content["application/json"]?.schema).toMatchObject({
|
|
44
|
-
type: "object",
|
|
45
|
-
properties: { name: { type: "string" } },
|
|
46
|
-
});
|
|
47
|
-
// Check responses
|
|
48
|
-
expect(route?.responses["201"]?.content?.["application/json"]?.schema).toMatchObject({
|
|
49
|
-
type: "object",
|
|
50
|
-
properties: { id: { type: "string" } },
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
test("should handle path parameters correctly", async () => {
|
|
54
|
-
const spec = await generateOpenApiSpec({
|
|
55
|
-
title: "API",
|
|
56
|
-
version: "1.0.0",
|
|
57
|
-
routes: [
|
|
58
|
-
{
|
|
59
|
-
path: "/users/:userId",
|
|
60
|
-
method: "GET",
|
|
61
|
-
request: {
|
|
62
|
-
params: z.object({ userId: z.string() }),
|
|
63
|
-
},
|
|
64
|
-
handler: () => { },
|
|
65
|
-
},
|
|
66
|
-
],
|
|
67
|
-
});
|
|
68
|
-
// Normalized path from :param to {param}
|
|
69
|
-
expect(spec.paths["/users/{userId}"]).toBeDefined();
|
|
70
|
-
const operation = spec.paths["/users/{userId}"]?.get;
|
|
71
|
-
expect(operation?.parameters).toContainEqual(expect.objectContaining({ name: "userId", in: "path", required: true }));
|
|
72
|
-
});
|
|
73
|
-
test("should merge schemas from middlewares", async () => {
|
|
74
|
-
const authMw = new Middleware({
|
|
75
|
-
request: { headers: z.object({ authorization: z.string() }) },
|
|
76
|
-
handler: () => ({}),
|
|
77
|
-
});
|
|
78
|
-
const spec = await generateOpenApiSpec({
|
|
79
|
-
title: "API",
|
|
80
|
-
version: "1.0.0",
|
|
81
|
-
globalMiddlewares: [authMw],
|
|
82
|
-
routes: [
|
|
83
|
-
{
|
|
84
|
-
path: "/me",
|
|
85
|
-
method: "GET",
|
|
86
|
-
handler: () => { },
|
|
87
|
-
},
|
|
88
|
-
],
|
|
89
|
-
});
|
|
90
|
-
const parameters = spec.paths["/me"]?.get?.parameters;
|
|
91
|
-
expect(parameters).toContainEqual(expect.objectContaining({ name: "authorization", in: "header" }));
|
|
92
|
-
});
|
|
93
|
-
test("should include security schemes if provided", async () => {
|
|
94
|
-
const securitySchemes = {
|
|
95
|
-
bearerAuth: {
|
|
96
|
-
type: "http",
|
|
97
|
-
scheme: "bearer",
|
|
98
|
-
bearerFormat: "JWT",
|
|
99
|
-
},
|
|
100
|
-
};
|
|
101
|
-
const spec = await generateOpenApiSpec({
|
|
102
|
-
title: "API",
|
|
103
|
-
version: "1.0.0",
|
|
104
|
-
securitySchemes,
|
|
105
|
-
routes: [],
|
|
106
|
-
});
|
|
107
|
-
expect(spec.components?.securitySchemes).toEqual(securitySchemes);
|
|
108
|
-
});
|
|
109
|
-
test("should apply URL prefixing to paths", async () => {
|
|
110
|
-
const spec = await generateOpenApiSpec({
|
|
111
|
-
title: "API",
|
|
112
|
-
version: "1.0.0",
|
|
113
|
-
prefix: "/v1",
|
|
114
|
-
routes: [
|
|
115
|
-
{
|
|
116
|
-
path: "/health",
|
|
117
|
-
method: "GET",
|
|
118
|
-
handler: () => { },
|
|
119
|
-
},
|
|
120
|
-
],
|
|
121
|
-
});
|
|
122
|
-
expect(spec.paths["/v1/health"]).toBeDefined();
|
|
123
|
-
});
|
|
124
|
-
test("should handle all HTTP methods", async () => {
|
|
125
|
-
const spec = await generateOpenApiSpec({
|
|
126
|
-
title: "API",
|
|
127
|
-
version: "1.0.0",
|
|
128
|
-
routes: [
|
|
129
|
-
{ path: "/resource", method: "GET", handler: () => { } },
|
|
130
|
-
{ path: "/resource", method: "POST", handler: () => { } },
|
|
131
|
-
{ path: "/resource", method: "PUT", handler: () => { } },
|
|
132
|
-
{ path: "/resource", method: "PATCH", handler: () => { } },
|
|
133
|
-
{ path: "/resource", method: "DELETE", handler: () => { } },
|
|
134
|
-
],
|
|
135
|
-
});
|
|
136
|
-
const resourcePath = spec.paths["/resource"];
|
|
137
|
-
expect(resourcePath?.get).toBeDefined();
|
|
138
|
-
expect(resourcePath?.post).toBeDefined();
|
|
139
|
-
expect(resourcePath?.put).toBeDefined();
|
|
140
|
-
expect(resourcePath?.patch).toBeDefined();
|
|
141
|
-
expect(resourcePath?.delete).toBeDefined();
|
|
142
|
-
});
|
|
143
|
-
test("should handle headers and cookies as parameters", async () => {
|
|
144
|
-
const spec = await generateOpenApiSpec({
|
|
145
|
-
title: "API",
|
|
146
|
-
version: "1.0.0",
|
|
147
|
-
routes: [
|
|
148
|
-
{
|
|
149
|
-
path: "/session",
|
|
150
|
-
method: "POST",
|
|
151
|
-
request: {
|
|
152
|
-
headers: z.object({ "x-api-key": z.string() }),
|
|
153
|
-
cookies: z.object({ sessionId: z.string() }),
|
|
154
|
-
body: z.object({ data: z.string() }),
|
|
155
|
-
},
|
|
156
|
-
handler: () => { },
|
|
157
|
-
},
|
|
158
|
-
],
|
|
159
|
-
});
|
|
160
|
-
const parameters = spec.paths["/session"]?.post?.parameters;
|
|
161
|
-
expect(parameters).toContainEqual(expect.objectContaining({ name: "x-api-key", in: "header" }));
|
|
162
|
-
expect(parameters).toContainEqual(expect.objectContaining({ name: "sessionId", in: "cookie" }));
|
|
163
|
-
});
|
|
164
|
-
test("should handle multiple path parameters", async () => {
|
|
165
|
-
const spec = await generateOpenApiSpec({
|
|
166
|
-
title: "API",
|
|
167
|
-
version: "1.0.0",
|
|
168
|
-
routes: [
|
|
169
|
-
{
|
|
170
|
-
path: "/users/:userId/posts/:postId",
|
|
171
|
-
method: "GET",
|
|
172
|
-
request: {
|
|
173
|
-
params: z.object({ userId: z.string(), postId: z.string() }),
|
|
174
|
-
},
|
|
175
|
-
handler: () => { },
|
|
176
|
-
},
|
|
177
|
-
],
|
|
178
|
-
});
|
|
179
|
-
expect(spec.paths["/users/{userId}/posts/{postId}"]).toBeDefined();
|
|
180
|
-
const parameters = spec.paths["/users/{userId}/posts/{postId}"]?.get?.parameters;
|
|
181
|
-
expect(parameters).toContainEqual(expect.objectContaining({ name: "userId", in: "path", required: true }));
|
|
182
|
-
expect(parameters).toContainEqual(expect.objectContaining({ name: "postId", in: "path", required: true }));
|
|
183
|
-
});
|
|
184
|
-
test("should handle route-level middlewares", async () => {
|
|
185
|
-
const validationMw = new Middleware({
|
|
186
|
-
request: { body: z.object({ validated: z.boolean() }) },
|
|
187
|
-
handler: () => ({}),
|
|
188
|
-
});
|
|
189
|
-
const spec = await generateOpenApiSpec({
|
|
190
|
-
title: "API",
|
|
191
|
-
version: "1.0.0",
|
|
192
|
-
routes: [
|
|
193
|
-
{
|
|
194
|
-
path: "/data",
|
|
195
|
-
method: "POST",
|
|
196
|
-
middlewares: [validationMw],
|
|
197
|
-
handler: () => { },
|
|
198
|
-
},
|
|
199
|
-
],
|
|
200
|
-
});
|
|
201
|
-
const requestBody = spec.paths["/data"]?.post?.requestBody;
|
|
202
|
-
expect(requestBody?.content["application/json"]?.schema).toMatchObject({
|
|
203
|
-
type: "object",
|
|
204
|
-
properties: { validated: { type: "boolean" } },
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
test("should include operation metadata", async () => {
|
|
208
|
-
const spec = await generateOpenApiSpec({
|
|
209
|
-
title: "API",
|
|
210
|
-
version: "1.0.0",
|
|
211
|
-
routes: [
|
|
212
|
-
{
|
|
213
|
-
path: "/items",
|
|
214
|
-
method: "GET",
|
|
215
|
-
summary: "List Items",
|
|
216
|
-
description: "Returns a list of all items",
|
|
217
|
-
operationId: "listItems",
|
|
218
|
-
tags: ["items", "public"],
|
|
219
|
-
handler: () => { },
|
|
220
|
-
},
|
|
221
|
-
],
|
|
222
|
-
});
|
|
223
|
-
const operation = spec.paths["/items"]?.get;
|
|
224
|
-
expect(operation?.summary).toBe("List Items");
|
|
225
|
-
expect(operation?.description).toBe("Returns a list of all items");
|
|
226
|
-
expect(operation?.operationId).toBe("listItems");
|
|
227
|
-
expect(operation?.tags).toEqual(["items", "public"]);
|
|
228
|
-
});
|
|
229
|
-
test("should include servers configuration", async () => {
|
|
230
|
-
const spec = await generateOpenApiSpec({
|
|
231
|
-
title: "API",
|
|
232
|
-
version: "1.0.0",
|
|
233
|
-
servers: [
|
|
234
|
-
{ url: "https://api.example.com", description: "Production" },
|
|
235
|
-
{ url: "https://staging-api.example.com", description: "Staging" },
|
|
236
|
-
],
|
|
237
|
-
routes: [],
|
|
238
|
-
});
|
|
239
|
-
expect(spec.servers).toHaveLength(2);
|
|
240
|
-
expect(spec.servers?.[0]).toEqual({
|
|
241
|
-
url: "https://api.example.com",
|
|
242
|
-
description: "Production",
|
|
243
|
-
});
|
|
244
|
-
});
|
|
245
|
-
test("should handle multiple response status codes", async () => {
|
|
246
|
-
const spec = await generateOpenApiSpec({
|
|
247
|
-
title: "API",
|
|
248
|
-
version: "1.0.0",
|
|
249
|
-
routes: [
|
|
250
|
-
{
|
|
251
|
-
path: "/resource",
|
|
252
|
-
method: "GET",
|
|
253
|
-
response: {
|
|
254
|
-
200: z.object({ data: z.string() }),
|
|
255
|
-
404: z.object({ error: z.string() }),
|
|
256
|
-
500: z.object({ message: z.string() }),
|
|
257
|
-
},
|
|
258
|
-
handler: () => { },
|
|
259
|
-
},
|
|
260
|
-
],
|
|
261
|
-
});
|
|
262
|
-
const responses = spec.paths["/resource"]?.get?.responses;
|
|
263
|
-
expect(responses?.["200"]).toBeDefined();
|
|
264
|
-
expect(responses?.["404"]).toBeDefined();
|
|
265
|
-
expect(responses?.["500"]).toBeDefined();
|
|
266
|
-
});
|
|
267
|
-
test("should mark required parameters correctly", async () => {
|
|
268
|
-
const spec = await generateOpenApiSpec({
|
|
269
|
-
title: "API",
|
|
270
|
-
version: "1.0.0",
|
|
271
|
-
routes: [
|
|
272
|
-
{
|
|
273
|
-
path: "/search",
|
|
274
|
-
method: "GET",
|
|
275
|
-
request: {
|
|
276
|
-
query: z.object({
|
|
277
|
-
q: z.string(),
|
|
278
|
-
limit: z.number().optional(),
|
|
279
|
-
}),
|
|
280
|
-
},
|
|
281
|
-
handler: () => { },
|
|
282
|
-
},
|
|
283
|
-
],
|
|
284
|
-
});
|
|
285
|
-
const parameters = spec.paths["/search"]?.get?.parameters;
|
|
286
|
-
const qParam = parameters?.find((p) => p.name === "q");
|
|
287
|
-
const limitParam = parameters?.find((p) => p.name === "limit");
|
|
288
|
-
expect(qParam?.required).toBe(true);
|
|
289
|
-
expect(limitParam?.required).toBe(false);
|
|
290
|
-
});
|
|
291
|
-
test("should handle same path with different methods", async () => {
|
|
292
|
-
const spec = await generateOpenApiSpec({
|
|
293
|
-
title: "API",
|
|
294
|
-
version: "1.0.0",
|
|
295
|
-
routes: [
|
|
296
|
-
{
|
|
297
|
-
path: "/users/:id",
|
|
298
|
-
method: "GET",
|
|
299
|
-
request: { params: z.object({ id: z.string() }) },
|
|
300
|
-
handler: () => { },
|
|
301
|
-
},
|
|
302
|
-
{
|
|
303
|
-
path: "/users/:id",
|
|
304
|
-
method: "PUT",
|
|
305
|
-
request: {
|
|
306
|
-
params: z.object({ id: z.string() }),
|
|
307
|
-
body: z.object({ name: z.string() }),
|
|
308
|
-
},
|
|
309
|
-
handler: () => { },
|
|
310
|
-
},
|
|
311
|
-
{
|
|
312
|
-
path: "/users/:id",
|
|
313
|
-
method: "DELETE",
|
|
314
|
-
request: { params: z.object({ id: z.string() }) },
|
|
315
|
-
handler: () => { },
|
|
316
|
-
},
|
|
317
|
-
],
|
|
318
|
-
});
|
|
319
|
-
const userPath = spec.paths["/users/{id}"];
|
|
320
|
-
expect(userPath?.get).toBeDefined();
|
|
321
|
-
expect(userPath?.put).toBeDefined();
|
|
322
|
-
expect(userPath?.delete).toBeDefined();
|
|
323
|
-
});
|
|
324
|
-
test("should handle empty routes array", async () => {
|
|
325
|
-
const spec = await generateOpenApiSpec({
|
|
326
|
-
title: "API",
|
|
327
|
-
version: "1.0.0",
|
|
328
|
-
routes: [],
|
|
329
|
-
});
|
|
330
|
-
expect(spec.paths).toEqual({});
|
|
331
|
-
expect(spec.info.title).toBe("API");
|
|
332
|
-
});
|
|
333
|
-
test("should merge multiple global middlewares", async () => {
|
|
334
|
-
const authMw = new Middleware({
|
|
335
|
-
request: { headers: z.object({ authorization: z.string() }) },
|
|
336
|
-
handler: () => ({}),
|
|
337
|
-
});
|
|
338
|
-
const queryMw = new Middleware({
|
|
339
|
-
request: { query: z.object({ page: z.string() }) },
|
|
340
|
-
handler: () => ({}),
|
|
341
|
-
});
|
|
342
|
-
const spec = await generateOpenApiSpec({
|
|
343
|
-
title: "API",
|
|
344
|
-
version: "1.0.0",
|
|
345
|
-
globalMiddlewares: [authMw, queryMw],
|
|
346
|
-
routes: [
|
|
347
|
-
{
|
|
348
|
-
path: "/protected",
|
|
349
|
-
method: "GET",
|
|
350
|
-
handler: () => { },
|
|
351
|
-
},
|
|
352
|
-
],
|
|
353
|
-
});
|
|
354
|
-
const parameters = spec.paths["/protected"]?.get?.parameters;
|
|
355
|
-
expect(parameters).toContainEqual(expect.objectContaining({ name: "authorization", in: "header" }));
|
|
356
|
-
expect(parameters).toContainEqual(expect.objectContaining({ name: "page", in: "query" }));
|
|
357
|
-
});
|
|
358
|
-
});
|
|
359
|
-
//# sourceMappingURL=index.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/lib/api/openapi/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
export type OpenApiSpec = {
|
|
2
|
-
openapi: string;
|
|
3
|
-
info: {
|
|
4
|
-
title: string;
|
|
5
|
-
description?: string;
|
|
6
|
-
version: string;
|
|
7
|
-
};
|
|
8
|
-
servers?: Array<{
|
|
9
|
-
url: string;
|
|
10
|
-
description?: string;
|
|
11
|
-
}>;
|
|
12
|
-
paths: Record<string, OpenApiPath>;
|
|
13
|
-
components?: {
|
|
14
|
-
schemas?: Record<string, unknown>;
|
|
15
|
-
responses?: Record<string, unknown>;
|
|
16
|
-
parameters?: Record<string, unknown>;
|
|
17
|
-
requestBodies?: Record<string, unknown>;
|
|
18
|
-
securitySchemes?: Record<string, unknown>;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
export type OpenApiPath = {
|
|
22
|
-
[method: string]: OpenApiOperation;
|
|
23
|
-
};
|
|
24
|
-
export type OpenApiOperation = {
|
|
25
|
-
summary?: string;
|
|
26
|
-
description?: string;
|
|
27
|
-
operationId?: string;
|
|
28
|
-
tags?: string[];
|
|
29
|
-
parameters?: OpenApiParameter[];
|
|
30
|
-
requestBody?: OpenApiRequestBody;
|
|
31
|
-
responses: Record<string, OpenApiResponse>;
|
|
32
|
-
security?: Array<Record<string, string[]>>;
|
|
33
|
-
};
|
|
34
|
-
export type OpenApiParameter = {
|
|
35
|
-
name: string;
|
|
36
|
-
in: "path" | "query" | "header" | "cookie";
|
|
37
|
-
required?: boolean;
|
|
38
|
-
schema: unknown;
|
|
39
|
-
description?: string;
|
|
40
|
-
};
|
|
41
|
-
export type OpenApiRequestBody = {
|
|
42
|
-
required?: boolean;
|
|
43
|
-
content: {
|
|
44
|
-
[mediaType: string]: {
|
|
45
|
-
schema: unknown;
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
export type OpenApiResponse = {
|
|
50
|
-
description: string;
|
|
51
|
-
content?: {
|
|
52
|
-
[mediaType: string]: {
|
|
53
|
-
schema: unknown;
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
};
|
|
57
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/api/openapi/types.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC3C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG;YACnB,MAAM,EAAE,OAAO,CAAC;SACjB,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE;QACR,CAAC,SAAS,EAAE,MAAM,GAAG;YACnB,MAAM,EAAE,OAAO,CAAC;SACjB,CAAC;KACH,CAAC;CACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/lib/api/openapi/types.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,qEAAqE;AACrE,8EAA8E"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { StandardSchemaV1 } from "@standard-schema/spec";
|
|
2
|
-
export declare const validateSchema: <T>(schema: StandardSchemaV1, data: unknown) => Promise<readonly [null, T] | readonly [{
|
|
3
|
-
readonly type: "ValidationError";
|
|
4
|
-
readonly message: string;
|
|
5
|
-
}, null]>;
|
|
6
|
-
export type BodyCache = {
|
|
7
|
-
parsed: boolean;
|
|
8
|
-
value: unknown;
|
|
9
|
-
};
|
|
10
|
-
export declare const validateBody: (req: Request, bodySchema?: StandardSchemaV1, bodyCache?: BodyCache) => Promise<readonly [{
|
|
11
|
-
readonly type: "ValidationError";
|
|
12
|
-
readonly message: string;
|
|
13
|
-
}, null] | readonly [null, unknown] | readonly [{
|
|
14
|
-
readonly type: "ParseError";
|
|
15
|
-
readonly message: string;
|
|
16
|
-
}, null]>;
|
|
17
|
-
export declare const validateQuery: (req: Request, querySchema?: StandardSchemaV1) => Promise<readonly [{
|
|
18
|
-
readonly type: "ValidationError";
|
|
19
|
-
readonly message: string;
|
|
20
|
-
}, null] | readonly [null, unknown]>;
|
|
21
|
-
export declare const validateHeaders: (req: Request, headersSchema?: StandardSchemaV1) => Promise<readonly [{
|
|
22
|
-
readonly type: "ValidationError";
|
|
23
|
-
readonly message: string;
|
|
24
|
-
}, null] | readonly [null, unknown]>;
|
|
25
|
-
export declare const validateCookies: (req: Request, cookiesSchema?: StandardSchemaV1) => Promise<readonly [{
|
|
26
|
-
readonly type: "ValidationError";
|
|
27
|
-
readonly message: string;
|
|
28
|
-
}, null] | readonly [null, unknown]>;
|
|
29
|
-
export declare const validateParams: (req: Bun.BunRequest, paramsSchema?: StandardSchemaV1) => Promise<readonly [{
|
|
30
|
-
readonly type: "ValidationError";
|
|
31
|
-
readonly message: string;
|
|
32
|
-
}, null] | readonly [null, unknown]>;
|
|
33
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/api/validation/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,eAAO,MAAM,cAAc,GAAU,CAAC,EACpC,QAAQ,gBAAgB,EACxB,MAAM,OAAO;;;SAqBd,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAG5D,eAAO,MAAM,YAAY,GACvB,KAAK,OAAO,EACZ,aAAa,gBAAgB,EAC7B,YAAY,SAAS;;;;;;SA4BtB,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,KAAK,OAAO,EACZ,cAAc,gBAAgB;;;oCAkC/B,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,KAAK,OAAO,EACZ,gBAAgB,gBAAgB;;;oCAajC,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,KAAK,OAAO,EACZ,gBAAgB,gBAAgB;;;oCAYjC,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,KAAK,GAAG,CAAC,UAAU,EACnB,eAAe,gBAAgB;;;oCAOhC,CAAC"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { err, mightThrow, ok } from "../../errors/index.js";
|
|
2
|
-
export const validateSchema = async (schema, data) => {
|
|
3
|
-
const result = await schema["~standard"].validate(data);
|
|
4
|
-
if (!result.issues) {
|
|
5
|
-
return ok(result.value);
|
|
6
|
-
}
|
|
7
|
-
const issues = result.issues.map((issue) => {
|
|
8
|
-
let path = "unknown";
|
|
9
|
-
if (Array.isArray(issue.path)) {
|
|
10
|
-
path = issue.path.map(String).join(".");
|
|
11
|
-
}
|
|
12
|
-
return `${path}: ${issue.message ?? "validation failed"}`;
|
|
13
|
-
});
|
|
14
|
-
const message = issues.join(", ");
|
|
15
|
-
return err("ValidationError", message);
|
|
16
|
-
};
|
|
17
|
-
// Body cache prevents re-parsing JSON when multiple middlewares validate the same body
|
|
18
|
-
export const validateBody = async (req, bodySchema, bodyCache) => {
|
|
19
|
-
if (!bodySchema) {
|
|
20
|
-
return ok(true);
|
|
21
|
-
}
|
|
22
|
-
const contentType = req.headers.get("content-type") ?? "";
|
|
23
|
-
if (!contentType.includes("application/json")) {
|
|
24
|
-
return ok(undefined);
|
|
25
|
-
}
|
|
26
|
-
if (bodyCache?.parsed) {
|
|
27
|
-
return validateSchema(bodySchema, bodyCache.value);
|
|
28
|
-
}
|
|
29
|
-
const [parseError, parsedBody] = await mightThrow(req.json());
|
|
30
|
-
if (parseError) {
|
|
31
|
-
return err("ParseError", "Invalid JSON body");
|
|
32
|
-
}
|
|
33
|
-
if (bodyCache) {
|
|
34
|
-
bodyCache.parsed = true;
|
|
35
|
-
bodyCache.value = parsedBody;
|
|
36
|
-
}
|
|
37
|
-
return validateSchema(bodySchema, parsedBody);
|
|
38
|
-
};
|
|
39
|
-
export const validateQuery = async (req, querySchema) => {
|
|
40
|
-
if (!querySchema) {
|
|
41
|
-
return ok(true);
|
|
42
|
-
}
|
|
43
|
-
const qIndex = req.url.indexOf("?");
|
|
44
|
-
if (qIndex === -1) {
|
|
45
|
-
return validateSchema(querySchema, {});
|
|
46
|
-
}
|
|
47
|
-
// Handle both query strings and URL fragments
|
|
48
|
-
const hashIndex = req.url.indexOf("#", qIndex + 1);
|
|
49
|
-
const queryString = hashIndex === -1
|
|
50
|
-
? req.url.slice(qIndex + 1)
|
|
51
|
-
: req.url.slice(qIndex + 1, hashIndex);
|
|
52
|
-
const searchParams = new URLSearchParams(queryString);
|
|
53
|
-
const queryParams = {};
|
|
54
|
-
for (const key of searchParams.keys()) {
|
|
55
|
-
const values = searchParams.getAll(key);
|
|
56
|
-
const [firstValue] = values;
|
|
57
|
-
if (values.length === 1) {
|
|
58
|
-
queryParams[key] = firstValue;
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
queryParams[key] = values;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return validateSchema(querySchema, queryParams);
|
|
65
|
-
};
|
|
66
|
-
export const validateHeaders = async (req, headersSchema) => {
|
|
67
|
-
if (!headersSchema) {
|
|
68
|
-
return ok(true);
|
|
69
|
-
}
|
|
70
|
-
const headers = {};
|
|
71
|
-
req.headers.forEach((value, key) => {
|
|
72
|
-
headers[key] = value;
|
|
73
|
-
});
|
|
74
|
-
return validateSchema(headersSchema, headers);
|
|
75
|
-
};
|
|
76
|
-
export const validateCookies = async (req, cookiesSchema) => {
|
|
77
|
-
if (!cookiesSchema) {
|
|
78
|
-
return ok(true);
|
|
79
|
-
}
|
|
80
|
-
// Use Bun's native CookieMap for efficient cookie parsing
|
|
81
|
-
const cookieHeader = req.headers.get("cookie") ?? "";
|
|
82
|
-
const cookieMap = new Bun.CookieMap(cookieHeader);
|
|
83
|
-
const cookies = Object.fromEntries(cookieMap);
|
|
84
|
-
return validateSchema(cookiesSchema, cookies);
|
|
85
|
-
};
|
|
86
|
-
export const validateParams = async (req, paramsSchema) => {
|
|
87
|
-
if (!paramsSchema) {
|
|
88
|
-
return ok(true);
|
|
89
|
-
}
|
|
90
|
-
return validateSchema(paramsSchema, req.params);
|
|
91
|
-
};
|
|
92
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/api/validation/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,MAAwB,EACxB,IAAa,EACb,EAAE;IACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAExD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC,MAAM,CAAC,KAAU,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,IAAI,IAAI,GAAG,SAAS,CAAC;QAErB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,OAAO,IAAI,mBAAmB,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAElC,OAAO,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC,CAAC;AAIF,uFAAuF;AACvF,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,GAAY,EACZ,UAA6B,EAC7B,SAAqB,EACrB,EAAE;IACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAE1D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;QACtB,OAAO,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAE9D,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,OAAO,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,GAAY,EACZ,WAA8B,EAC9B,EAAE;IACF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,OAAO,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,8CAA8C;IAC9C,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IACnD,MAAM,WAAW,GACf,SAAS,KAAK,CAAC,CAAC;QACd,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,WAAW,GAAsC,EAAE,CAAC;IAE1D,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;QAE5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,WAAW,CAAC,GAAG,CAAC,GAAG,UAAoB,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,GAAY,EACZ,aAAgC,EAChC,EAAE;IACF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACjC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,GAAY,EACZ,aAAgC,EAChC,EAAE;IACF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,0DAA0D;IAC1D,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAE9C,OAAO,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,GAAmB,EACnB,YAA+B,EAC/B,EAAE;IACF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,cAAc,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../../src/lib/api/validation/index.test.ts"],"names":[],"mappings":""}
|