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,97 @@
|
|
|
1
|
+
import { getPrimaryKeyColumn } from "../../internal/table-lookup.mjs";
|
|
2
|
+
import { expectSingleRow, mergeRows, toWhereInput } from "../utils.mjs";
|
|
3
|
+
import { SQL } from "bun";
|
|
4
|
+
//#region src/lib/orm/runtime/dialect/mysql.ts
|
|
5
|
+
function createMysqlRuntimeDialect() {
|
|
6
|
+
return {
|
|
7
|
+
async create(context, input) {
|
|
8
|
+
const primaryKey = getPrimaryKeyColumn(context.table);
|
|
9
|
+
const selectCreatedRow = async (whereData) => {
|
|
10
|
+
return expectSingleRow(await context.selectRows({
|
|
11
|
+
where: toWhereInput(whereData),
|
|
12
|
+
limit: 1
|
|
13
|
+
}), "Insert returned no rows");
|
|
14
|
+
};
|
|
15
|
+
const selectLastInsertId = async () => {
|
|
16
|
+
const rows = await context.executeOrThrow(context.runner`SELECT LAST_INSERT_ID() AS insertId`);
|
|
17
|
+
if (!Array.isArray(rows)) return;
|
|
18
|
+
const firstRow = rows[0];
|
|
19
|
+
if (typeof firstRow !== "object") return;
|
|
20
|
+
if (firstRow === null) return;
|
|
21
|
+
return Reflect.get(firstRow, "insertId");
|
|
22
|
+
};
|
|
23
|
+
const insertResult = await context.executeOrThrow(context.insert({ data: input.data }));
|
|
24
|
+
if (!primaryKey) return selectCreatedRow(input.data);
|
|
25
|
+
const selectCreatedRowByPrimaryKey = async (value) => {
|
|
26
|
+
const whereByPk = {};
|
|
27
|
+
Reflect.set(whereByPk, primaryKey.jsKey, value);
|
|
28
|
+
return selectCreatedRow(whereByPk);
|
|
29
|
+
};
|
|
30
|
+
const providedPkValue = Reflect.get(input.data, primaryKey.jsKey);
|
|
31
|
+
if (providedPkValue !== null && providedPkValue !== void 0) return selectCreatedRowByPrimaryKey(providedPkValue);
|
|
32
|
+
let insertedPkValue;
|
|
33
|
+
if (typeof insertResult === "object") {
|
|
34
|
+
if (insertResult !== null) insertedPkValue = Reflect.get(insertResult, "insertId");
|
|
35
|
+
}
|
|
36
|
+
if (insertedPkValue === null || insertedPkValue === void 0) insertedPkValue = await selectLastInsertId();
|
|
37
|
+
if (insertedPkValue === null || insertedPkValue === void 0) throw new Error("Insert returned no primary key");
|
|
38
|
+
return selectCreatedRowByPrimaryKey(insertedPkValue);
|
|
39
|
+
},
|
|
40
|
+
async createMany(context, input) {
|
|
41
|
+
if (input.data.length === 0) return {
|
|
42
|
+
count: 0,
|
|
43
|
+
rows: []
|
|
44
|
+
};
|
|
45
|
+
const rows = input.data.map((item) => context.mapSqlRow(item));
|
|
46
|
+
await context.executeOrThrow(context.insertMany(rows, false));
|
|
47
|
+
return {
|
|
48
|
+
count: rows.length,
|
|
49
|
+
rows: []
|
|
50
|
+
};
|
|
51
|
+
},
|
|
52
|
+
async updateMany(context, input) {
|
|
53
|
+
if (context.runner instanceof SQL) return context.executeOrThrow(context.runner.begin(async (tx) => {
|
|
54
|
+
const txContext = context.withRunner(tx);
|
|
55
|
+
const beforeRows = await txContext.selectRows({ where: input.where });
|
|
56
|
+
await txContext.executeOrThrow(txContext.update({
|
|
57
|
+
where: input.where,
|
|
58
|
+
data: input.data
|
|
59
|
+
}));
|
|
60
|
+
return {
|
|
61
|
+
count: beforeRows.length,
|
|
62
|
+
rows: mergeRows(beforeRows, input.data)
|
|
63
|
+
};
|
|
64
|
+
}));
|
|
65
|
+
const beforeRows = await context.selectRows({ where: input.where });
|
|
66
|
+
await context.executeOrThrow(context.update({
|
|
67
|
+
where: input.where,
|
|
68
|
+
data: input.data
|
|
69
|
+
}));
|
|
70
|
+
return {
|
|
71
|
+
count: beforeRows.length,
|
|
72
|
+
rows: mergeRows(beforeRows, input.data)
|
|
73
|
+
};
|
|
74
|
+
},
|
|
75
|
+
async deleteMany(context, input) {
|
|
76
|
+
if (context.runner instanceof SQL) return context.executeOrThrow(context.runner.begin(async (tx) => {
|
|
77
|
+
const txContext = context.withRunner(tx);
|
|
78
|
+
const beforeRows = await txContext.selectRows({ where: input.where });
|
|
79
|
+
await txContext.executeOrThrow(txContext.deleteByWhere({ where: input.where }));
|
|
80
|
+
return {
|
|
81
|
+
count: beforeRows.length,
|
|
82
|
+
rows: beforeRows
|
|
83
|
+
};
|
|
84
|
+
}));
|
|
85
|
+
const rows = await context.selectRows({ where: input.where });
|
|
86
|
+
await context.executeOrThrow(context.deleteByWhere({ where: input.where }));
|
|
87
|
+
return {
|
|
88
|
+
count: rows.length,
|
|
89
|
+
rows
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//#endregion
|
|
95
|
+
export { createMysqlRuntimeDialect };
|
|
96
|
+
|
|
97
|
+
//# sourceMappingURL=mysql.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mysql.mjs","names":[],"sources":["../../../../src/lib/orm/runtime/dialect/mysql.ts"],"sourcesContent":["import { SQL } from \"bun\";\nimport { getPrimaryKeyColumn } from \"../../internal/table.js\";\nimport type { ColDefs, RelationDefs } from \"../../types.js\";\nimport type { RuntimeDialect } from \"./types.js\";\nimport { expectSingleRow, mergeRows, toWhereInput } from \"./utils.js\";\n\nexport function createMysqlRuntimeDialect<\n T extends ColDefs,\n TRels extends RelationDefs,\n>(): RuntimeDialect<T, TRels> {\n return {\n async create(context, input) {\n const primaryKey = getPrimaryKeyColumn(context.table);\n\n const selectCreatedRow = async (whereData: Record<string, unknown>) => {\n const rows = await context.selectRows({\n where: toWhereInput<T>(whereData),\n limit: 1,\n });\n\n return expectSingleRow(rows, \"Insert returned no rows\");\n };\n\n const selectLastInsertId = async () => {\n const rows = await context.executeOrThrow(\n context.runner`SELECT LAST_INSERT_ID() AS insertId`,\n );\n\n if (!Array.isArray(rows)) {\n return undefined;\n }\n\n const firstRow = rows[0];\n\n if (typeof firstRow !== \"object\") {\n return undefined;\n }\n\n if (firstRow === null) {\n return undefined;\n }\n\n return Reflect.get(firstRow, \"insertId\");\n };\n\n const insertResult = await context.executeOrThrow(\n context.insert({ data: input.data }),\n );\n\n if (!primaryKey) {\n return selectCreatedRow(input.data);\n }\n\n const selectCreatedRowByPrimaryKey = async (value: unknown) => {\n const whereByPk: Record<string, unknown> = {};\n Reflect.set(whereByPk, primaryKey.jsKey, value);\n\n return selectCreatedRow(whereByPk);\n };\n\n const providedPkValue = Reflect.get(input.data, primaryKey.jsKey);\n\n if (providedPkValue !== null && providedPkValue !== undefined) {\n return selectCreatedRowByPrimaryKey(providedPkValue);\n }\n\n let insertedPkValue: unknown;\n\n if (typeof insertResult === \"object\") {\n if (insertResult !== null) {\n insertedPkValue = Reflect.get(insertResult, \"insertId\");\n }\n }\n\n if (insertedPkValue === null || insertedPkValue === undefined) {\n insertedPkValue = await selectLastInsertId();\n }\n\n if (insertedPkValue === null || insertedPkValue === undefined) {\n throw new Error(\"Insert returned no primary key\");\n }\n\n return selectCreatedRowByPrimaryKey(insertedPkValue);\n },\n\n async createMany(context, input) {\n if (input.data.length === 0) {\n return { count: 0, rows: [] };\n }\n\n const rows = input.data.map((item) =>\n context.mapSqlRow(item as Record<string, unknown>),\n );\n\n await context.executeOrThrow(context.insertMany(rows, false));\n\n return {\n count: rows.length,\n rows: [],\n };\n },\n\n async updateMany(context, input) {\n if (context.runner instanceof SQL) {\n return context.executeOrThrow(\n context.runner.begin(async (tx) => {\n const txContext = context.withRunner(tx);\n const beforeRows = await txContext.selectRows({\n where: input.where,\n });\n\n await txContext.executeOrThrow(\n txContext.update({ where: input.where, data: input.data }),\n );\n\n return {\n count: beforeRows.length,\n rows: mergeRows(\n beforeRows,\n input.data as Partial<Record<string, unknown>>,\n ),\n };\n }),\n );\n }\n\n const beforeRows = await context.selectRows({ where: input.where });\n\n await context.executeOrThrow(\n context.update({ where: input.where, data: input.data }),\n );\n\n return {\n count: beforeRows.length,\n rows: mergeRows(\n beforeRows,\n input.data as Partial<Record<string, unknown>>,\n ),\n };\n },\n\n async deleteMany(context, input) {\n if (context.runner instanceof SQL) {\n return context.executeOrThrow(\n context.runner.begin(async (tx) => {\n const txContext = context.withRunner(tx);\n const beforeRows = await txContext.selectRows({\n where: input.where,\n });\n\n await txContext.executeOrThrow(\n txContext.deleteByWhere({ where: input.where }),\n );\n\n return {\n count: beforeRows.length,\n rows: beforeRows,\n };\n }),\n );\n }\n\n const rows = await context.selectRows({ where: input.where });\n\n await context.executeOrThrow(\n context.deleteByWhere({ where: input.where }),\n );\n\n return {\n count: rows.length,\n rows,\n };\n },\n };\n}\n"],"mappings":";;;;AAMA,SAAgB,4BAGc;AAC5B,QAAO;EACL,MAAM,OAAO,SAAS,OAAO;GAC3B,MAAM,aAAa,oBAAoB,QAAQ,MAAM;GAErD,MAAM,mBAAmB,OAAO,cAAuC;AAMrE,WAAO,gBALM,MAAM,QAAQ,WAAW;KACpC,OAAO,aAAgB,UAAU;KACjC,OAAO;KACR,CAAC,EAE2B,0BAA0B;;GAGzD,MAAM,qBAAqB,YAAY;IACrC,MAAM,OAAO,MAAM,QAAQ,eACzB,QAAQ,MAAM,sCACf;AAED,QAAI,CAAC,MAAM,QAAQ,KAAK,CACtB;IAGF,MAAM,WAAW,KAAK;AAEtB,QAAI,OAAO,aAAa,SACtB;AAGF,QAAI,aAAa,KACf;AAGF,WAAO,QAAQ,IAAI,UAAU,WAAW;;GAG1C,MAAM,eAAe,MAAM,QAAQ,eACjC,QAAQ,OAAO,EAAE,MAAM,MAAM,MAAM,CAAC,CACrC;AAED,OAAI,CAAC,WACH,QAAO,iBAAiB,MAAM,KAAK;GAGrC,MAAM,+BAA+B,OAAO,UAAmB;IAC7D,MAAM,YAAqC,EAAE;AAC7C,YAAQ,IAAI,WAAW,WAAW,OAAO,MAAM;AAE/C,WAAO,iBAAiB,UAAU;;GAGpC,MAAM,kBAAkB,QAAQ,IAAI,MAAM,MAAM,WAAW,MAAM;AAEjE,OAAI,oBAAoB,QAAQ,oBAAoB,KAAA,EAClD,QAAO,6BAA6B,gBAAgB;GAGtD,IAAI;AAEJ,OAAI,OAAO,iBAAiB;QACtB,iBAAiB,KACnB,mBAAkB,QAAQ,IAAI,cAAc,WAAW;;AAI3D,OAAI,oBAAoB,QAAQ,oBAAoB,KAAA,EAClD,mBAAkB,MAAM,oBAAoB;AAG9C,OAAI,oBAAoB,QAAQ,oBAAoB,KAAA,EAClD,OAAM,IAAI,MAAM,iCAAiC;AAGnD,UAAO,6BAA6B,gBAAgB;;EAGtD,MAAM,WAAW,SAAS,OAAO;AAC/B,OAAI,MAAM,KAAK,WAAW,EACxB,QAAO;IAAE,OAAO;IAAG,MAAM,EAAE;IAAE;GAG/B,MAAM,OAAO,MAAM,KAAK,KAAK,SAC3B,QAAQ,UAAU,KAAgC,CACnD;AAED,SAAM,QAAQ,eAAe,QAAQ,WAAW,MAAM,MAAM,CAAC;AAE7D,UAAO;IACL,OAAO,KAAK;IACZ,MAAM,EAAE;IACT;;EAGH,MAAM,WAAW,SAAS,OAAO;AAC/B,OAAI,QAAQ,kBAAkB,IAC5B,QAAO,QAAQ,eACb,QAAQ,OAAO,MAAM,OAAO,OAAO;IACjC,MAAM,YAAY,QAAQ,WAAW,GAAG;IACxC,MAAM,aAAa,MAAM,UAAU,WAAW,EAC5C,OAAO,MAAM,OACd,CAAC;AAEF,UAAM,UAAU,eACd,UAAU,OAAO;KAAE,OAAO,MAAM;KAAO,MAAM,MAAM;KAAM,CAAC,CAC3D;AAED,WAAO;KACL,OAAO,WAAW;KAClB,MAAM,UACJ,YACA,MAAM,KACP;KACF;KACD,CACH;GAGH,MAAM,aAAa,MAAM,QAAQ,WAAW,EAAE,OAAO,MAAM,OAAO,CAAC;AAEnE,SAAM,QAAQ,eACZ,QAAQ,OAAO;IAAE,OAAO,MAAM;IAAO,MAAM,MAAM;IAAM,CAAC,CACzD;AAED,UAAO;IACL,OAAO,WAAW;IAClB,MAAM,UACJ,YACA,MAAM,KACP;IACF;;EAGH,MAAM,WAAW,SAAS,OAAO;AAC/B,OAAI,QAAQ,kBAAkB,IAC5B,QAAO,QAAQ,eACb,QAAQ,OAAO,MAAM,OAAO,OAAO;IACjC,MAAM,YAAY,QAAQ,WAAW,GAAG;IACxC,MAAM,aAAa,MAAM,UAAU,WAAW,EAC5C,OAAO,MAAM,OACd,CAAC;AAEF,UAAM,UAAU,eACd,UAAU,cAAc,EAAE,OAAO,MAAM,OAAO,CAAC,CAChD;AAED,WAAO;KACL,OAAO,WAAW;KAClB,MAAM;KACP;KACD,CACH;GAGH,MAAM,OAAO,MAAM,QAAQ,WAAW,EAAE,OAAO,MAAM,OAAO,CAAC;AAE7D,SAAM,QAAQ,eACZ,QAAQ,cAAc,EAAE,OAAO,MAAM,OAAO,CAAC,CAC9C;AAED,UAAO;IACL,OAAO,KAAK;IACZ;IACD;;EAEJ"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
const require_utils = require("../utils.cjs");
|
|
2
|
+
//#region src/lib/orm/runtime/dialect/postgres.ts
|
|
3
|
+
function createPostgresRuntimeDialect() {
|
|
4
|
+
return {
|
|
5
|
+
async create(context, input) {
|
|
6
|
+
const rows = await context.executeOrThrow(context.insertReturning({
|
|
7
|
+
data: input.data,
|
|
8
|
+
returning: true
|
|
9
|
+
}));
|
|
10
|
+
return require_utils.expectSingleRow(context.normalizeResultRows(rows), "Insert returned no rows");
|
|
11
|
+
},
|
|
12
|
+
async createMany(context, input) {
|
|
13
|
+
if (input.data.length === 0) return {
|
|
14
|
+
count: 0,
|
|
15
|
+
rows: []
|
|
16
|
+
};
|
|
17
|
+
const rows = input.data.map((item) => context.mapSqlRow(item));
|
|
18
|
+
const createdRows = await context.executeOrThrow(context.insertManyReturning(rows));
|
|
19
|
+
const normalizedRows = context.normalizeResultRows(createdRows);
|
|
20
|
+
return {
|
|
21
|
+
count: normalizedRows.length,
|
|
22
|
+
rows: normalizedRows
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
async updateMany(context, input) {
|
|
26
|
+
const rows = await context.executeOrThrow(context.updateReturning({
|
|
27
|
+
where: input.where,
|
|
28
|
+
data: input.data,
|
|
29
|
+
returning: true
|
|
30
|
+
}));
|
|
31
|
+
const normalizedRows = context.normalizeResultRows(rows);
|
|
32
|
+
return {
|
|
33
|
+
count: normalizedRows.length,
|
|
34
|
+
rows: normalizedRows
|
|
35
|
+
};
|
|
36
|
+
},
|
|
37
|
+
async deleteMany(context, input) {
|
|
38
|
+
const rows = await context.executeOrThrow(context.deleteReturning({
|
|
39
|
+
where: input.where,
|
|
40
|
+
returning: true
|
|
41
|
+
}));
|
|
42
|
+
const normalizedRows = context.normalizeResultRows(rows);
|
|
43
|
+
return {
|
|
44
|
+
count: normalizedRows.length,
|
|
45
|
+
rows: normalizedRows
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
exports.createPostgresRuntimeDialect = createPostgresRuntimeDialect;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { expectSingleRow } from "../utils.mjs";
|
|
2
|
+
//#region src/lib/orm/runtime/dialect/postgres.ts
|
|
3
|
+
function createPostgresRuntimeDialect() {
|
|
4
|
+
return {
|
|
5
|
+
async create(context, input) {
|
|
6
|
+
const rows = await context.executeOrThrow(context.insertReturning({
|
|
7
|
+
data: input.data,
|
|
8
|
+
returning: true
|
|
9
|
+
}));
|
|
10
|
+
return expectSingleRow(context.normalizeResultRows(rows), "Insert returned no rows");
|
|
11
|
+
},
|
|
12
|
+
async createMany(context, input) {
|
|
13
|
+
if (input.data.length === 0) return {
|
|
14
|
+
count: 0,
|
|
15
|
+
rows: []
|
|
16
|
+
};
|
|
17
|
+
const rows = input.data.map((item) => context.mapSqlRow(item));
|
|
18
|
+
const createdRows = await context.executeOrThrow(context.insertManyReturning(rows));
|
|
19
|
+
const normalizedRows = context.normalizeResultRows(createdRows);
|
|
20
|
+
return {
|
|
21
|
+
count: normalizedRows.length,
|
|
22
|
+
rows: normalizedRows
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
async updateMany(context, input) {
|
|
26
|
+
const rows = await context.executeOrThrow(context.updateReturning({
|
|
27
|
+
where: input.where,
|
|
28
|
+
data: input.data,
|
|
29
|
+
returning: true
|
|
30
|
+
}));
|
|
31
|
+
const normalizedRows = context.normalizeResultRows(rows);
|
|
32
|
+
return {
|
|
33
|
+
count: normalizedRows.length,
|
|
34
|
+
rows: normalizedRows
|
|
35
|
+
};
|
|
36
|
+
},
|
|
37
|
+
async deleteMany(context, input) {
|
|
38
|
+
const rows = await context.executeOrThrow(context.deleteReturning({
|
|
39
|
+
where: input.where,
|
|
40
|
+
returning: true
|
|
41
|
+
}));
|
|
42
|
+
const normalizedRows = context.normalizeResultRows(rows);
|
|
43
|
+
return {
|
|
44
|
+
count: normalizedRows.length,
|
|
45
|
+
rows: normalizedRows
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
export { createPostgresRuntimeDialect };
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=postgres.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres.mjs","names":[],"sources":["../../../../src/lib/orm/runtime/dialect/postgres.ts"],"sourcesContent":["import type { ColDefs, RelationDefs } from \"../../types.js\";\nimport type { RuntimeDialect } from \"./types.js\";\nimport { expectSingleRow } from \"./utils.js\";\n\nexport function createPostgresRuntimeDialect<\n T extends ColDefs,\n TRels extends RelationDefs,\n>(): RuntimeDialect<T, TRels> {\n return {\n async create(context, input) {\n const rows = await context.executeOrThrow(\n context.insertReturning({ data: input.data, returning: true }),\n );\n\n return expectSingleRow(\n context.normalizeResultRows(rows),\n \"Insert returned no rows\",\n );\n },\n\n async createMany(context, input) {\n if (input.data.length === 0) {\n return { count: 0, rows: [] };\n }\n\n const rows = input.data.map((item) =>\n context.mapSqlRow(item as Record<string, unknown>),\n );\n\n const createdRows = await context.executeOrThrow(\n context.insertManyReturning(rows),\n );\n\n const normalizedRows = context.normalizeResultRows(createdRows);\n\n return {\n count: normalizedRows.length,\n rows: normalizedRows,\n };\n },\n\n async updateMany(context, input) {\n const rows = await context.executeOrThrow(\n context.updateReturning({\n where: input.where,\n data: input.data,\n returning: true,\n }),\n );\n\n const normalizedRows = context.normalizeResultRows(rows);\n\n return {\n count: normalizedRows.length,\n rows: normalizedRows,\n };\n },\n\n async deleteMany(context, input) {\n const rows = await context.executeOrThrow(\n context.deleteReturning({ where: input.where, returning: true }),\n );\n\n const normalizedRows = context.normalizeResultRows(rows);\n\n return {\n count: normalizedRows.length,\n rows: normalizedRows,\n };\n },\n };\n}\n"],"mappings":";;AAIA,SAAgB,+BAGc;AAC5B,QAAO;EACL,MAAM,OAAO,SAAS,OAAO;GAC3B,MAAM,OAAO,MAAM,QAAQ,eACzB,QAAQ,gBAAgB;IAAE,MAAM,MAAM;IAAM,WAAW;IAAM,CAAC,CAC/D;AAED,UAAO,gBACL,QAAQ,oBAAoB,KAAK,EACjC,0BACD;;EAGH,MAAM,WAAW,SAAS,OAAO;AAC/B,OAAI,MAAM,KAAK,WAAW,EACxB,QAAO;IAAE,OAAO;IAAG,MAAM,EAAE;IAAE;GAG/B,MAAM,OAAO,MAAM,KAAK,KAAK,SAC3B,QAAQ,UAAU,KAAgC,CACnD;GAED,MAAM,cAAc,MAAM,QAAQ,eAChC,QAAQ,oBAAoB,KAAK,CAClC;GAED,MAAM,iBAAiB,QAAQ,oBAAoB,YAAY;AAE/D,UAAO;IACL,OAAO,eAAe;IACtB,MAAM;IACP;;EAGH,MAAM,WAAW,SAAS,OAAO;GAC/B,MAAM,OAAO,MAAM,QAAQ,eACzB,QAAQ,gBAAgB;IACtB,OAAO,MAAM;IACb,MAAM,MAAM;IACZ,WAAW;IACZ,CAAC,CACH;GAED,MAAM,iBAAiB,QAAQ,oBAAoB,KAAK;AAExD,UAAO;IACL,OAAO,eAAe;IACtB,MAAM;IACP;;EAGH,MAAM,WAAW,SAAS,OAAO;GAC/B,MAAM,OAAO,MAAM,QAAQ,eACzB,QAAQ,gBAAgB;IAAE,OAAO,MAAM;IAAO,WAAW;IAAM,CAAC,CACjE;GAED,MAAM,iBAAiB,QAAQ,oBAAoB,KAAK;AAExD,UAAO;IACL,OAAO,eAAe;IACtB,MAAM;IACP;;EAEJ"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createPostgresRuntimeDialect } from "./postgres.mjs";
|
|
2
|
+
//#region src/lib/orm/runtime/dialect/sqlite.ts
|
|
3
|
+
const createSqliteRuntimeDialect = createPostgresRuntimeDialect;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { createSqliteRuntimeDialect };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=sqlite.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite.mjs","names":[],"sources":["../../../../src/lib/orm/runtime/dialect/sqlite.ts"],"sourcesContent":["import { createPostgresRuntimeDialect } from \"./postgres.js\";\n\nexport const createSqliteRuntimeDialect = createPostgresRuntimeDialect;\n"],"mappings":";;AAEA,MAAa,6BAA6B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const require_lib_errors_index = require("../../lib/errors/index.cjs");
|
|
2
|
+
require("../dialect/utils.cjs");
|
|
3
|
+
//#region src/lib/orm/runtime/errors.ts
|
|
4
|
+
function toOrmErrorMessage(errorValue) {
|
|
5
|
+
if (errorValue instanceof Error) return errorValue.message;
|
|
6
|
+
if (typeof errorValue === "object" && errorValue !== null) {
|
|
7
|
+
const message = Reflect.get(errorValue, "message");
|
|
8
|
+
if (typeof message === "string") return message;
|
|
9
|
+
}
|
|
10
|
+
return "Unknown ORM error";
|
|
11
|
+
}
|
|
12
|
+
async function executeOrThrow(promise) {
|
|
13
|
+
const [error, data] = await require_lib_errors_index.mightThrow(promise);
|
|
14
|
+
if (error !== null) throw new Error(toOrmErrorMessage(error));
|
|
15
|
+
if (data === null) throw new Error("ORM operation returned no data");
|
|
16
|
+
return data;
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
exports.executeOrThrow = executeOrThrow;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { mightThrow } from "../../lib/errors/index.mjs";
|
|
2
|
+
import "../dialect/utils.mjs";
|
|
3
|
+
//#region src/lib/orm/runtime/errors.ts
|
|
4
|
+
function toOrmErrorMessage(errorValue) {
|
|
5
|
+
if (errorValue instanceof Error) return errorValue.message;
|
|
6
|
+
if (typeof errorValue === "object" && errorValue !== null) {
|
|
7
|
+
const message = Reflect.get(errorValue, "message");
|
|
8
|
+
if (typeof message === "string") return message;
|
|
9
|
+
}
|
|
10
|
+
return "Unknown ORM error";
|
|
11
|
+
}
|
|
12
|
+
async function executeOrThrow(promise) {
|
|
13
|
+
const [error, data] = await mightThrow(promise);
|
|
14
|
+
if (error !== null) throw new Error(toOrmErrorMessage(error));
|
|
15
|
+
if (data === null) throw new Error("ORM operation returned no data");
|
|
16
|
+
return data;
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { executeOrThrow };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=errors.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.mjs","names":[],"sources":["../../../src/lib/orm/runtime/errors.ts"],"sourcesContent":["import { mightThrow } from \"../../errors/index.js\";\n\nexport { inferDialectFromUrl } from \"../dialect/utils.js\";\n\nfunction toOrmErrorMessage(errorValue: unknown) {\n if (errorValue instanceof Error) {\n return errorValue.message;\n }\n\n if (typeof errorValue === \"object\" && errorValue !== null) {\n const message = Reflect.get(errorValue, \"message\");\n\n if (typeof message === \"string\") {\n return message;\n }\n }\n\n return \"Unknown ORM error\";\n}\n\nexport async function executeOrThrow<T>(promise: Promise<T>) {\n const [error, data] = await mightThrow(promise);\n\n if (error !== null) {\n throw new Error(toOrmErrorMessage(error));\n }\n\n if (data === null) {\n throw new Error(\"ORM operation returned no data\");\n }\n\n return data;\n}\n"],"mappings":";;;AAIA,SAAS,kBAAkB,YAAqB;AAC9C,KAAI,sBAAsB,MACxB,QAAO,WAAW;AAGpB,KAAI,OAAO,eAAe,YAAY,eAAe,MAAM;EACzD,MAAM,UAAU,QAAQ,IAAI,YAAY,UAAU;AAElD,MAAI,OAAO,YAAY,SACrB,QAAO;;AAIX,QAAO;;AAGT,eAAsB,eAAkB,SAAqB;CAC3D,MAAM,CAAC,OAAO,QAAQ,MAAM,WAAW,QAAQ;AAE/C,KAAI,UAAU,KACZ,OAAM,IAAI,MAAM,kBAAkB,MAAM,CAAC;AAG3C,KAAI,SAAS,KACX,OAAM,IAAI,MAAM,iCAAiC;AAGnD,QAAO"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const require_table_lookup = require("../../internal/table-lookup.cjs");
|
|
2
|
+
const require_table_relations = require("../../internal/table-relations.cjs");
|
|
3
|
+
//#region src/lib/orm/runtime/hydrate/many.ts
|
|
4
|
+
async function hydrateManyRelation(options) {
|
|
5
|
+
const { rows, relationKey, relationForeignKey, table, targetTable, basePk, allRelations, allTables, selectWhereIn } = options;
|
|
6
|
+
let foreignKeySqlName = relationForeignKey;
|
|
7
|
+
if (!foreignKeySqlName) foreignKeySqlName = require_table_relations.findManyForeignKeyByReference(targetTable, basePk.col);
|
|
8
|
+
if (!foreignKeySqlName) foreignKeySqlName = require_table_relations.inferManyForeignKeyFromInverse(table, targetTable, allRelations, allTables);
|
|
9
|
+
if (!foreignKeySqlName) {
|
|
10
|
+
for (const row of rows) Reflect.set(row, relationKey, []);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const targetFk = require_table_lookup.findColumnBySqlName(targetTable, foreignKeySqlName);
|
|
14
|
+
if (!targetFk) {
|
|
15
|
+
for (const row of rows) Reflect.set(row, relationKey, []);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const baseIds = [];
|
|
19
|
+
for (const row of rows) {
|
|
20
|
+
const id = Reflect.get(row, basePk.jsKey);
|
|
21
|
+
if (id === null || id === void 0) continue;
|
|
22
|
+
baseIds.push(id);
|
|
23
|
+
}
|
|
24
|
+
const targetRows = await selectWhereIn(targetTable, targetFk.col.meta.sqlName, baseIds);
|
|
25
|
+
const grouped = /* @__PURE__ */ new Map();
|
|
26
|
+
for (const targetRow of targetRows) {
|
|
27
|
+
const sourceId = Reflect.get(targetRow, targetFk.jsKey);
|
|
28
|
+
if (sourceId === null || sourceId === void 0) continue;
|
|
29
|
+
const existing = grouped.get(sourceId);
|
|
30
|
+
if (!existing) {
|
|
31
|
+
grouped.set(sourceId, [targetRow]);
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
existing.push(targetRow);
|
|
35
|
+
}
|
|
36
|
+
for (const row of rows) {
|
|
37
|
+
const id = Reflect.get(row, basePk.jsKey);
|
|
38
|
+
if (id === null || id === void 0) {
|
|
39
|
+
Reflect.set(row, relationKey, []);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
Reflect.set(row, relationKey, grouped.get(id) ?? []);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
exports.hydrateManyRelation = hydrateManyRelation;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { findColumnBySqlName } from "../../internal/table-lookup.mjs";
|
|
2
|
+
import { findManyForeignKeyByReference, inferManyForeignKeyFromInverse } from "../../internal/table-relations.mjs";
|
|
3
|
+
//#region src/lib/orm/runtime/hydrate/many.ts
|
|
4
|
+
async function hydrateManyRelation(options) {
|
|
5
|
+
const { rows, relationKey, relationForeignKey, table, targetTable, basePk, allRelations, allTables, selectWhereIn } = options;
|
|
6
|
+
let foreignKeySqlName = relationForeignKey;
|
|
7
|
+
if (!foreignKeySqlName) foreignKeySqlName = findManyForeignKeyByReference(targetTable, basePk.col);
|
|
8
|
+
if (!foreignKeySqlName) foreignKeySqlName = inferManyForeignKeyFromInverse(table, targetTable, allRelations, allTables);
|
|
9
|
+
if (!foreignKeySqlName) {
|
|
10
|
+
for (const row of rows) Reflect.set(row, relationKey, []);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const targetFk = findColumnBySqlName(targetTable, foreignKeySqlName);
|
|
14
|
+
if (!targetFk) {
|
|
15
|
+
for (const row of rows) Reflect.set(row, relationKey, []);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const baseIds = [];
|
|
19
|
+
for (const row of rows) {
|
|
20
|
+
const id = Reflect.get(row, basePk.jsKey);
|
|
21
|
+
if (id === null || id === void 0) continue;
|
|
22
|
+
baseIds.push(id);
|
|
23
|
+
}
|
|
24
|
+
const targetRows = await selectWhereIn(targetTable, targetFk.col.meta.sqlName, baseIds);
|
|
25
|
+
const grouped = /* @__PURE__ */ new Map();
|
|
26
|
+
for (const targetRow of targetRows) {
|
|
27
|
+
const sourceId = Reflect.get(targetRow, targetFk.jsKey);
|
|
28
|
+
if (sourceId === null || sourceId === void 0) continue;
|
|
29
|
+
const existing = grouped.get(sourceId);
|
|
30
|
+
if (!existing) {
|
|
31
|
+
grouped.set(sourceId, [targetRow]);
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
existing.push(targetRow);
|
|
35
|
+
}
|
|
36
|
+
for (const row of rows) {
|
|
37
|
+
const id = Reflect.get(row, basePk.jsKey);
|
|
38
|
+
if (id === null || id === void 0) {
|
|
39
|
+
Reflect.set(row, relationKey, []);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
Reflect.set(row, relationKey, grouped.get(id) ?? []);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
export { hydrateManyRelation };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=many.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"many.mjs","names":[],"sources":["../../../../src/lib/orm/runtime/hydrate/many.ts"],"sourcesContent":["import type { getPrimaryKeyColumn } from \"../../internal/table.js\";\nimport {\n findColumnBySqlName,\n findManyForeignKeyByReference,\n inferManyForeignKeyFromInverse,\n} from \"../../internal/table.js\";\nimport type { Table } from \"../../table.js\";\nimport type { ColDefs, RelationDefs, TableRow } from \"../../types.js\";\nimport type { SelectWhereIn } from \"./types.js\";\n\nexport async function hydrateManyRelation<T extends ColDefs>(options: {\n rows: TableRow<T>[];\n relationKey: string;\n relationForeignKey: string | undefined;\n table: Table<T>;\n targetTable: Table<ColDefs>;\n basePk: NonNullable<ReturnType<typeof getPrimaryKeyColumn>>;\n allRelations: Partial<Record<string, RelationDefs>>;\n allTables: Record<string, Table<ColDefs>>;\n selectWhereIn: SelectWhereIn;\n}) {\n const {\n rows,\n relationKey,\n relationForeignKey,\n table,\n targetTable,\n basePk,\n allRelations,\n allTables,\n selectWhereIn,\n } = options;\n\n let foreignKeySqlName: string | null | undefined = relationForeignKey;\n\n if (!foreignKeySqlName) {\n foreignKeySqlName = findManyForeignKeyByReference(targetTable, basePk.col);\n }\n\n if (!foreignKeySqlName) {\n foreignKeySqlName = inferManyForeignKeyFromInverse(\n table,\n targetTable,\n allRelations,\n allTables,\n );\n }\n\n if (!foreignKeySqlName) {\n for (const row of rows) {\n Reflect.set(row as Record<string, unknown>, relationKey, []);\n }\n\n return;\n }\n\n const targetFk = findColumnBySqlName(targetTable, foreignKeySqlName);\n\n if (!targetFk) {\n for (const row of rows) {\n Reflect.set(row as Record<string, unknown>, relationKey, []);\n }\n\n return;\n }\n\n const baseIds: unknown[] = [];\n\n for (const row of rows) {\n const id = Reflect.get(row as Record<string, unknown>, basePk.jsKey);\n\n if (id === null || id === undefined) {\n continue;\n }\n\n baseIds.push(id);\n }\n\n const targetRows = await selectWhereIn(\n targetTable,\n targetFk.col.meta.sqlName,\n baseIds,\n );\n\n const grouped = new Map<unknown, Record<string, unknown>[]>();\n\n for (const targetRow of targetRows) {\n const sourceId = Reflect.get(targetRow, targetFk.jsKey);\n\n if (sourceId === null || sourceId === undefined) {\n continue;\n }\n\n const existing = grouped.get(sourceId);\n\n if (!existing) {\n grouped.set(sourceId, [targetRow]);\n continue;\n }\n\n existing.push(targetRow);\n }\n\n for (const row of rows) {\n const id = Reflect.get(row as Record<string, unknown>, basePk.jsKey);\n\n if (id === null || id === undefined) {\n Reflect.set(row as Record<string, unknown>, relationKey, []);\n continue;\n }\n\n Reflect.set(\n row as Record<string, unknown>,\n relationKey,\n grouped.get(id) ?? [],\n );\n }\n}\n"],"mappings":";;;AAUA,eAAsB,oBAAuC,SAU1D;CACD,MAAM,EACJ,MACA,aACA,oBACA,OACA,aACA,QACA,cACA,WACA,kBACE;CAEJ,IAAI,oBAA+C;AAEnD,KAAI,CAAC,kBACH,qBAAoB,8BAA8B,aAAa,OAAO,IAAI;AAG5E,KAAI,CAAC,kBACH,qBAAoB,+BAClB,OACA,aACA,cACA,UACD;AAGH,KAAI,CAAC,mBAAmB;AACtB,OAAK,MAAM,OAAO,KAChB,SAAQ,IAAI,KAAgC,aAAa,EAAE,CAAC;AAG9D;;CAGF,MAAM,WAAW,oBAAoB,aAAa,kBAAkB;AAEpE,KAAI,CAAC,UAAU;AACb,OAAK,MAAM,OAAO,KAChB,SAAQ,IAAI,KAAgC,aAAa,EAAE,CAAC;AAG9D;;CAGF,MAAM,UAAqB,EAAE;AAE7B,MAAK,MAAM,OAAO,MAAM;EACtB,MAAM,KAAK,QAAQ,IAAI,KAAgC,OAAO,MAAM;AAEpE,MAAI,OAAO,QAAQ,OAAO,KAAA,EACxB;AAGF,UAAQ,KAAK,GAAG;;CAGlB,MAAM,aAAa,MAAM,cACvB,aACA,SAAS,IAAI,KAAK,SAClB,QACD;CAED,MAAM,0BAAU,IAAI,KAAyC;AAE7D,MAAK,MAAM,aAAa,YAAY;EAClC,MAAM,WAAW,QAAQ,IAAI,WAAW,SAAS,MAAM;AAEvD,MAAI,aAAa,QAAQ,aAAa,KAAA,EACpC;EAGF,MAAM,WAAW,QAAQ,IAAI,SAAS;AAEtC,MAAI,CAAC,UAAU;AACb,WAAQ,IAAI,UAAU,CAAC,UAAU,CAAC;AAClC;;AAGF,WAAS,KAAK,UAAU;;AAG1B,MAAK,MAAM,OAAO,MAAM;EACtB,MAAM,KAAK,QAAQ,IAAI,KAAgC,OAAO,MAAM;AAEpE,MAAI,OAAO,QAAQ,OAAO,KAAA,GAAW;AACnC,WAAQ,IAAI,KAAgC,aAAa,EAAE,CAAC;AAC5D;;AAGF,UAAQ,IACN,KACA,aACA,QAAQ,IAAI,GAAG,IAAI,EAAE,CACtB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const require_table_lookup = require("../../internal/table-lookup.cjs");
|
|
2
|
+
//#region src/lib/orm/runtime/hydrate/one.ts
|
|
3
|
+
async function hydrateOneRelation(options) {
|
|
4
|
+
const { rows, relationKey, relationForeignKey, table, targetTable, selectWhereIn } = options;
|
|
5
|
+
const targetPk = require_table_lookup.getPrimaryKeyColumn(targetTable);
|
|
6
|
+
if (!targetPk) {
|
|
7
|
+
for (const row of rows) Reflect.set(row, relationKey, null);
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const sourceFk = require_table_lookup.findColumnBySqlName(table, relationForeignKey);
|
|
11
|
+
if (!sourceFk) {
|
|
12
|
+
for (const row of rows) Reflect.set(row, relationKey, null);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const fkValues = /* @__PURE__ */ new Set();
|
|
16
|
+
for (const row of rows) {
|
|
17
|
+
const value = Reflect.get(row, sourceFk.jsKey);
|
|
18
|
+
if (value === null || value === void 0) continue;
|
|
19
|
+
fkValues.add(value);
|
|
20
|
+
}
|
|
21
|
+
const targetRows = await selectWhereIn(targetTable, targetPk.col.meta.sqlName, Array.from(fkValues));
|
|
22
|
+
const byPk = /* @__PURE__ */ new Map();
|
|
23
|
+
for (const targetRow of targetRows) {
|
|
24
|
+
const key = Reflect.get(targetRow, targetPk.jsKey);
|
|
25
|
+
if (key === null || key === void 0) continue;
|
|
26
|
+
byPk.set(key, targetRow);
|
|
27
|
+
}
|
|
28
|
+
for (const row of rows) {
|
|
29
|
+
const sourceKey = Reflect.get(row, sourceFk.jsKey);
|
|
30
|
+
if (sourceKey === null || sourceKey === void 0) {
|
|
31
|
+
Reflect.set(row, relationKey, null);
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
Reflect.set(row, relationKey, byPk.get(sourceKey) ?? null);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
exports.hydrateOneRelation = hydrateOneRelation;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { findColumnBySqlName, getPrimaryKeyColumn } from "../../internal/table-lookup.mjs";
|
|
2
|
+
//#region src/lib/orm/runtime/hydrate/one.ts
|
|
3
|
+
async function hydrateOneRelation(options) {
|
|
4
|
+
const { rows, relationKey, relationForeignKey, table, targetTable, selectWhereIn } = options;
|
|
5
|
+
const targetPk = getPrimaryKeyColumn(targetTable);
|
|
6
|
+
if (!targetPk) {
|
|
7
|
+
for (const row of rows) Reflect.set(row, relationKey, null);
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const sourceFk = findColumnBySqlName(table, relationForeignKey);
|
|
11
|
+
if (!sourceFk) {
|
|
12
|
+
for (const row of rows) Reflect.set(row, relationKey, null);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const fkValues = /* @__PURE__ */ new Set();
|
|
16
|
+
for (const row of rows) {
|
|
17
|
+
const value = Reflect.get(row, sourceFk.jsKey);
|
|
18
|
+
if (value === null || value === void 0) continue;
|
|
19
|
+
fkValues.add(value);
|
|
20
|
+
}
|
|
21
|
+
const targetRows = await selectWhereIn(targetTable, targetPk.col.meta.sqlName, Array.from(fkValues));
|
|
22
|
+
const byPk = /* @__PURE__ */ new Map();
|
|
23
|
+
for (const targetRow of targetRows) {
|
|
24
|
+
const key = Reflect.get(targetRow, targetPk.jsKey);
|
|
25
|
+
if (key === null || key === void 0) continue;
|
|
26
|
+
byPk.set(key, targetRow);
|
|
27
|
+
}
|
|
28
|
+
for (const row of rows) {
|
|
29
|
+
const sourceKey = Reflect.get(row, sourceFk.jsKey);
|
|
30
|
+
if (sourceKey === null || sourceKey === void 0) {
|
|
31
|
+
Reflect.set(row, relationKey, null);
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
Reflect.set(row, relationKey, byPk.get(sourceKey) ?? null);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { hydrateOneRelation };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=one.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"one.mjs","names":[],"sources":["../../../../src/lib/orm/runtime/hydrate/one.ts"],"sourcesContent":["import {\n findColumnBySqlName,\n getPrimaryKeyColumn,\n} from \"../../internal/table.js\";\nimport type { Table } from \"../../table.js\";\nimport type { ColDefs, TableRow } from \"../../types.js\";\nimport type { SelectWhereIn } from \"./types.js\";\n\nexport async function hydrateOneRelation<T extends ColDefs>(options: {\n rows: TableRow<T>[];\n relationKey: string;\n relationForeignKey: string;\n table: Table<T>;\n targetTable: Table<ColDefs>;\n selectWhereIn: SelectWhereIn;\n}) {\n const {\n rows,\n relationKey,\n relationForeignKey,\n table,\n targetTable,\n selectWhereIn,\n } = options;\n\n const targetPk = getPrimaryKeyColumn(targetTable);\n\n if (!targetPk) {\n for (const row of rows) {\n Reflect.set(row as Record<string, unknown>, relationKey, null);\n }\n\n return;\n }\n\n const sourceFk = findColumnBySqlName(table, relationForeignKey);\n\n if (!sourceFk) {\n for (const row of rows) {\n Reflect.set(row as Record<string, unknown>, relationKey, null);\n }\n\n return;\n }\n\n const fkValues = new Set<unknown>();\n\n for (const row of rows) {\n const value = Reflect.get(row as Record<string, unknown>, sourceFk.jsKey);\n\n if (value === null || value === undefined) {\n continue;\n }\n\n fkValues.add(value);\n }\n\n const targetRows = await selectWhereIn(\n targetTable,\n targetPk.col.meta.sqlName,\n Array.from(fkValues),\n );\n\n const byPk = new Map<unknown, Record<string, unknown>>();\n\n for (const targetRow of targetRows) {\n const key = Reflect.get(targetRow, targetPk.jsKey);\n\n if (key === null || key === undefined) {\n continue;\n }\n\n byPk.set(key, targetRow);\n }\n\n for (const row of rows) {\n const sourceKey = Reflect.get(\n row as Record<string, unknown>,\n sourceFk.jsKey,\n );\n\n if (sourceKey === null || sourceKey === undefined) {\n Reflect.set(row as Record<string, unknown>, relationKey, null);\n continue;\n }\n\n Reflect.set(\n row as Record<string, unknown>,\n relationKey,\n byPk.get(sourceKey) ?? null,\n );\n }\n}\n"],"mappings":";;AAQA,eAAsB,mBAAsC,SAOzD;CACD,MAAM,EACJ,MACA,aACA,oBACA,OACA,aACA,kBACE;CAEJ,MAAM,WAAW,oBAAoB,YAAY;AAEjD,KAAI,CAAC,UAAU;AACb,OAAK,MAAM,OAAO,KAChB,SAAQ,IAAI,KAAgC,aAAa,KAAK;AAGhE;;CAGF,MAAM,WAAW,oBAAoB,OAAO,mBAAmB;AAE/D,KAAI,CAAC,UAAU;AACb,OAAK,MAAM,OAAO,KAChB,SAAQ,IAAI,KAAgC,aAAa,KAAK;AAGhE;;CAGF,MAAM,2BAAW,IAAI,KAAc;AAEnC,MAAK,MAAM,OAAO,MAAM;EACtB,MAAM,QAAQ,QAAQ,IAAI,KAAgC,SAAS,MAAM;AAEzE,MAAI,UAAU,QAAQ,UAAU,KAAA,EAC9B;AAGF,WAAS,IAAI,MAAM;;CAGrB,MAAM,aAAa,MAAM,cACvB,aACA,SAAS,IAAI,KAAK,SAClB,MAAM,KAAK,SAAS,CACrB;CAED,MAAM,uBAAO,IAAI,KAAuC;AAExD,MAAK,MAAM,aAAa,YAAY;EAClC,MAAM,MAAM,QAAQ,IAAI,WAAW,SAAS,MAAM;AAElD,MAAI,QAAQ,QAAQ,QAAQ,KAAA,EAC1B;AAGF,OAAK,IAAI,KAAK,UAAU;;AAG1B,MAAK,MAAM,OAAO,MAAM;EACtB,MAAM,YAAY,QAAQ,IACxB,KACA,SAAS,MACV;AAED,MAAI,cAAc,QAAQ,cAAc,KAAA,GAAW;AACjD,WAAQ,IAAI,KAAgC,aAAa,KAAK;AAC9D;;AAGF,UAAQ,IACN,KACA,aACA,KAAK,IAAI,UAAU,IAAI,KACxB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const require_table_columns = require("../internal/table-columns.cjs");
|
|
2
|
+
const require_table_lookup = require("../internal/table-lookup.cjs");
|
|
3
|
+
const require_many = require("./hydrate/many.cjs");
|
|
4
|
+
const require_one = require("./hydrate/one.cjs");
|
|
5
|
+
//#region src/lib/orm/runtime/hydrate.ts
|
|
6
|
+
function createRelationHydrator(context) {
|
|
7
|
+
const selectWhereIn = async (targetTable, sqlColumnName, values) => {
|
|
8
|
+
if (values.length === 0) return [];
|
|
9
|
+
const columns = require_table_columns.buildSelectColumns(context.sql, targetTable);
|
|
10
|
+
const rows = await context.executeOrThrow(context.sql`SELECT ${columns} FROM ${context.sql(targetTable.tableName)} WHERE ${context.sql(targetTable.tableName)}.${context.sql(sqlColumnName)} IN ${context.sql(values)}`);
|
|
11
|
+
return context.normalizeRowsForTable(targetTable, rows);
|
|
12
|
+
};
|
|
13
|
+
return async (rows, include) => {
|
|
14
|
+
if (!include) return rows;
|
|
15
|
+
const basePk = require_table_lookup.getPrimaryKeyColumn(context.table);
|
|
16
|
+
if (!basePk) return rows;
|
|
17
|
+
for (const [relationKey, enabled] of Object.entries(include)) {
|
|
18
|
+
if (enabled !== true) continue;
|
|
19
|
+
const relation = context.relations[relationKey];
|
|
20
|
+
if (!relation) continue;
|
|
21
|
+
const targetTable = relation.table();
|
|
22
|
+
if (relation.kind === "one") {
|
|
23
|
+
await require_one.hydrateOneRelation({
|
|
24
|
+
rows,
|
|
25
|
+
relationKey,
|
|
26
|
+
relationForeignKey: relation.foreignKey,
|
|
27
|
+
table: context.table,
|
|
28
|
+
targetTable,
|
|
29
|
+
selectWhereIn
|
|
30
|
+
});
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
await require_many.hydrateManyRelation({
|
|
34
|
+
rows,
|
|
35
|
+
relationKey,
|
|
36
|
+
relationForeignKey: relation.foreignKey,
|
|
37
|
+
table: context.table,
|
|
38
|
+
targetTable,
|
|
39
|
+
basePk,
|
|
40
|
+
allRelations: context.allRelations,
|
|
41
|
+
allTables: context.allTables,
|
|
42
|
+
selectWhereIn
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return rows;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
exports.createRelationHydrator = createRelationHydrator;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { buildSelectColumns } from "../internal/table-columns.mjs";
|
|
2
|
+
import { getPrimaryKeyColumn } from "../internal/table-lookup.mjs";
|
|
3
|
+
import { hydrateManyRelation } from "./hydrate/many.mjs";
|
|
4
|
+
import { hydrateOneRelation } from "./hydrate/one.mjs";
|
|
5
|
+
//#region src/lib/orm/runtime/hydrate.ts
|
|
6
|
+
function createRelationHydrator(context) {
|
|
7
|
+
const selectWhereIn = async (targetTable, sqlColumnName, values) => {
|
|
8
|
+
if (values.length === 0) return [];
|
|
9
|
+
const columns = buildSelectColumns(context.sql, targetTable);
|
|
10
|
+
const rows = await context.executeOrThrow(context.sql`SELECT ${columns} FROM ${context.sql(targetTable.tableName)} WHERE ${context.sql(targetTable.tableName)}.${context.sql(sqlColumnName)} IN ${context.sql(values)}`);
|
|
11
|
+
return context.normalizeRowsForTable(targetTable, rows);
|
|
12
|
+
};
|
|
13
|
+
return async (rows, include) => {
|
|
14
|
+
if (!include) return rows;
|
|
15
|
+
const basePk = getPrimaryKeyColumn(context.table);
|
|
16
|
+
if (!basePk) return rows;
|
|
17
|
+
for (const [relationKey, enabled] of Object.entries(include)) {
|
|
18
|
+
if (enabled !== true) continue;
|
|
19
|
+
const relation = context.relations[relationKey];
|
|
20
|
+
if (!relation) continue;
|
|
21
|
+
const targetTable = relation.table();
|
|
22
|
+
if (relation.kind === "one") {
|
|
23
|
+
await hydrateOneRelation({
|
|
24
|
+
rows,
|
|
25
|
+
relationKey,
|
|
26
|
+
relationForeignKey: relation.foreignKey,
|
|
27
|
+
table: context.table,
|
|
28
|
+
targetTable,
|
|
29
|
+
selectWhereIn
|
|
30
|
+
});
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
await hydrateManyRelation({
|
|
34
|
+
rows,
|
|
35
|
+
relationKey,
|
|
36
|
+
relationForeignKey: relation.foreignKey,
|
|
37
|
+
table: context.table,
|
|
38
|
+
targetTable,
|
|
39
|
+
basePk,
|
|
40
|
+
allRelations: context.allRelations,
|
|
41
|
+
allTables: context.allTables,
|
|
42
|
+
selectWhereIn
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return rows;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
export { createRelationHydrator };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=hydrate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydrate.mjs","names":[],"sources":["../../../src/lib/orm/runtime/hydrate.ts"],"sourcesContent":["import { buildSelectColumns, getPrimaryKeyColumn } from \"../internal/table.js\";\nimport type { Table } from \"../table.js\";\nimport type {\n ColDefs,\n FindManyInput,\n RelationDefs,\n TableRow,\n} from \"../types.js\";\nimport { hydrateManyRelation } from \"./hydrate/many.js\";\nimport { hydrateOneRelation } from \"./hydrate/one.js\";\nimport type { HydratorContext } from \"./hydrate/types.js\";\n\nexport function createRelationHydrator<\n T extends ColDefs,\n TRels extends RelationDefs,\n>(context: HydratorContext<T, TRels>) {\n const selectWhereIn = async (\n targetTable: Table<ColDefs>,\n sqlColumnName: string,\n values: unknown[],\n ) => {\n if (values.length === 0) {\n return [];\n }\n\n const columns = buildSelectColumns(context.sql, targetTable);\n const rows = await context.executeOrThrow(\n context.sql`SELECT ${columns} FROM ${context.sql(targetTable.tableName)} WHERE ${context.sql(targetTable.tableName)}.${context.sql(sqlColumnName)} IN ${context.sql(values)}`,\n );\n\n return context.normalizeRowsForTable(\n targetTable,\n rows as Record<string, unknown>[],\n );\n };\n\n return async (\n rows: TableRow<T>[],\n include: FindManyInput<T, TRels>[\"include\"] | undefined,\n ) => {\n if (!include) {\n return rows;\n }\n\n const basePk = getPrimaryKeyColumn(context.table);\n\n if (!basePk) {\n return rows;\n }\n\n for (const [relationKey, enabled] of Object.entries(include)) {\n if (enabled !== true) {\n continue;\n }\n\n const relation = context.relations[relationKey as keyof TRels];\n\n if (!relation) {\n continue;\n }\n\n const targetTable = relation.table();\n\n if (relation.kind === \"one\") {\n await hydrateOneRelation({\n rows,\n relationKey,\n relationForeignKey: relation.foreignKey,\n table: context.table,\n targetTable,\n selectWhereIn,\n });\n\n continue;\n }\n\n await hydrateManyRelation({\n rows,\n relationKey,\n relationForeignKey: relation.foreignKey,\n table: context.table,\n targetTable,\n basePk,\n allRelations: context.allRelations,\n allTables: context.allTables,\n selectWhereIn,\n });\n }\n\n return rows;\n };\n}\n"],"mappings":";;;;;AAYA,SAAgB,uBAGd,SAAoC;CACpC,MAAM,gBAAgB,OACpB,aACA,eACA,WACG;AACH,MAAI,OAAO,WAAW,EACpB,QAAO,EAAE;EAGX,MAAM,UAAU,mBAAmB,QAAQ,KAAK,YAAY;EAC5D,MAAM,OAAO,MAAM,QAAQ,eACzB,QAAQ,GAAG,UAAU,QAAQ,QAAQ,QAAQ,IAAI,YAAY,UAAU,CAAC,SAAS,QAAQ,IAAI,YAAY,UAAU,CAAC,GAAG,QAAQ,IAAI,cAAc,CAAC,MAAM,QAAQ,IAAI,OAAO,GAC5K;AAED,SAAO,QAAQ,sBACb,aACA,KACD;;AAGH,QAAO,OACL,MACA,YACG;AACH,MAAI,CAAC,QACH,QAAO;EAGT,MAAM,SAAS,oBAAoB,QAAQ,MAAM;AAEjD,MAAI,CAAC,OACH,QAAO;AAGT,OAAK,MAAM,CAAC,aAAa,YAAY,OAAO,QAAQ,QAAQ,EAAE;AAC5D,OAAI,YAAY,KACd;GAGF,MAAM,WAAW,QAAQ,UAAU;AAEnC,OAAI,CAAC,SACH;GAGF,MAAM,cAAc,SAAS,OAAO;AAEpC,OAAI,SAAS,SAAS,OAAO;AAC3B,UAAM,mBAAmB;KACvB;KACA;KACA,oBAAoB,SAAS;KAC7B,OAAO,QAAQ;KACf;KACA;KACD,CAAC;AAEF;;AAGF,SAAM,oBAAoB;IACxB;IACA;IACA,oBAAoB,SAAS;IAC7B,OAAO,QAAQ;IACf;IACA;IACA,cAAc,QAAQ;IACtB,WAAW,QAAQ;IACnB;IACD,CAAC;;AAGJ,SAAO"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const require_parse_array = require("../sql/parse-array.cjs");
|
|
2
|
+
//#region src/lib/orm/runtime/rows.ts
|
|
3
|
+
function normalizeRecordForTable(table, row) {
|
|
4
|
+
let normalized = null;
|
|
5
|
+
for (const jsKey in table.columns) {
|
|
6
|
+
const col = table.columns[jsKey];
|
|
7
|
+
if (!col) continue;
|
|
8
|
+
if (!col.meta.isSqlArray) continue;
|
|
9
|
+
const value = Reflect.get(row, jsKey);
|
|
10
|
+
if (Array.isArray(value)) continue;
|
|
11
|
+
if (typeof value !== "string") continue;
|
|
12
|
+
const parsed = require_parse_array.parsePostgresArrayLiteral(value);
|
|
13
|
+
if (!parsed) continue;
|
|
14
|
+
if (!normalized) normalized = { ...row };
|
|
15
|
+
normalized[jsKey] = parsed;
|
|
16
|
+
}
|
|
17
|
+
if (!normalized) return row;
|
|
18
|
+
return normalized;
|
|
19
|
+
}
|
|
20
|
+
function normalizeRows(dialect, table, rows) {
|
|
21
|
+
if (dialect !== "postgres") return rows;
|
|
22
|
+
return rows.map((row) => normalizeRecordForTable(table, row));
|
|
23
|
+
}
|
|
24
|
+
function normalizeRowsForTable(dialect, table, rows) {
|
|
25
|
+
if (dialect !== "postgres") return rows;
|
|
26
|
+
return rows.map((row) => normalizeRecordForTable(table, row));
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
exports.normalizeRows = normalizeRows;
|
|
30
|
+
exports.normalizeRowsForTable = normalizeRowsForTable;
|