pipework 0.252.0 → 0.252.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/package.json +4 -3
- package/src/async/jobs/abortable-delay.ts +18 -0
- package/src/async/jobs/claims.ts +52 -0
- package/src/async/jobs/cron.ts +179 -0
- package/src/async/jobs/errors.ts +56 -0
- package/src/async/jobs/exclusion.ts +117 -0
- package/src/async/jobs/execute.ts +219 -0
- package/src/async/jobs/index.ts +10 -0
- package/src/async/jobs/listener.ts +135 -0
- package/src/async/jobs/namespace.ts +20 -0
- package/src/async/jobs/queue-door.ts +44 -0
- package/src/async/jobs/queue.ts +1012 -0
- package/src/async/jobs/run-script.ts +67 -0
- package/src/async/jobs/scheduler.ts +218 -0
- package/src/async/jobs/schedules-table.ts +37 -0
- package/src/async/jobs/serialize-error.ts +48 -0
- package/src/async/jobs/table.ts +191 -0
- package/src/async/pipeline/define.ts +53 -0
- package/src/async/pipeline/errors.ts +35 -0
- package/src/async/pipeline/execute.ts +53 -0
- package/src/async/pipeline/index.ts +13 -0
- package/src/async/pipeline/namespace.ts +12 -0
- package/src/async/pipeline/resume.ts +67 -0
- package/src/async/pipeline/run-steps.ts +98 -0
- package/src/async/pipeline/types.ts +57 -0
- package/src/async/state-machine/define.ts +64 -0
- package/src/async/state-machine/errors.ts +29 -0
- package/src/async/state-machine/index.ts +3 -0
- package/src/async/state-machine/namespace.ts +12 -0
- package/src/async/state-machine/transition.ts +90 -0
- package/src/async/state-machine/types.ts +37 -0
- package/src/async/steps/errors.ts +31 -0
- package/src/async/steps/graph.ts +1214 -0
- package/src/async/steps/hash.ts +40 -0
- package/src/async/steps/index.ts +7 -0
- package/src/async/steps/namespace.ts +7 -0
- package/src/async/steps/table.ts +97 -0
- package/src/async/steps/types.ts +318 -0
- package/src/audit/chain/index.ts +9 -0
- package/src/audit/chain/install.ts +113 -0
- package/src/audit/chain/retire.ts +52 -0
- package/src/audit/chain/verify.ts +257 -0
- package/src/audit/query/cursor.ts +37 -0
- package/src/audit/query/index.ts +9 -0
- package/src/audit/query/query.ts +223 -0
- package/src/audit/schema/audit-record-fields.ts +68 -0
- package/src/audit/schema/audit-record.ts +23 -0
- package/src/auth/auth/audit.ts +31 -0
- package/src/auth/auth/chain.ts +84 -0
- package/src/auth/auth/cookie.ts +136 -0
- package/src/auth/auth/email-links.ts +311 -0
- package/src/auth/auth/guard.ts +128 -0
- package/src/auth/auth/index.ts +18 -0
- package/src/auth/auth/multi-org.ts +337 -0
- package/src/auth/auth/namespace.ts +34 -0
- package/src/auth/auth/parse-expiry.ts +13 -0
- package/src/auth/auth/passwords.ts +110 -0
- package/src/auth/auth/schema.ts +110 -0
- package/src/auth/auth/sessions.ts +565 -0
- package/src/auth/auth/sign-in.ts +156 -0
- package/src/auth/auth/signing-keys.ts +69 -0
- package/src/auth/auth/types.ts +26 -0
- package/src/auth/auth/uuid.ts +10 -0
- package/src/auth/rbac/cache.ts +55 -0
- package/src/auth/rbac/check.ts +30 -0
- package/src/auth/rbac/create.ts +35 -0
- package/src/auth/rbac/index.ts +5 -0
- package/src/auth/rbac/middleware.ts +20 -0
- package/src/auth/rbac/namespace.ts +15 -0
- package/src/auth/rbac/resolve.ts +31 -0
- package/src/auth/rbac/schema.sql +31 -0
- package/src/auth/rbac/seed.ts +67 -0
- package/src/auth/rbac/tables.ts +32 -0
- package/src/auth/rbac/types.ts +65 -0
- package/src/auth/tenant/extract.ts +33 -0
- package/src/auth/tenant/in-tenant.ts +49 -0
- package/src/auth/tenant/index.ts +7 -0
- package/src/auth/tenant/namespace.ts +23 -0
- package/src/auth/tenant/propagate.ts +20 -0
- package/src/auth/tenant/rls.ts +120 -0
- package/src/auth/tenant/scope.ts +33 -0
- package/src/auth/tenant/scoped-db.ts +581 -0
- package/src/auth/tenant/types.ts +14 -0
- package/src/auth/tenant/validate.ts +27 -0
- package/src/cli/commands/add.ts +158 -0
- package/src/cli/commands/alerts.ts +98 -0
- package/src/cli/commands/check.ts +1418 -0
- package/src/cli/commands/codemod.ts +78 -0
- package/src/cli/commands/db.ts +356 -0
- package/src/cli/commands/dev.ts +101 -0
- package/src/cli/commands/generate.ts +75 -0
- package/src/cli/commands/init.ts +36 -0
- package/src/cli/commands/install.ts +28 -0
- package/src/cli/commands/lint.ts +62 -0
- package/src/cli/commands/migrate.ts +132 -0
- package/src/cli/commands/openapi.ts +63 -0
- package/src/cli/commands/remove.ts +72 -0
- package/src/cli/commands/run.ts +50 -0
- package/src/cli/commands/scope.ts +54 -0
- package/src/cli/commands/serve.ts +68 -0
- package/src/cli/commands/shard.ts +31 -0
- package/src/cli/commands/shared/config-pipework-version.ts +28 -0
- package/src/cli/commands/shared/find-config.ts +22 -0
- package/src/cli/commands/shared/load-config.ts +35 -0
- package/src/cli/commands/shared/pnpm-install.ts +95 -0
- package/src/cli/commands/shared/report-removed.ts +8 -0
- package/src/cli/commands/sync.ts +32 -0
- package/src/cli/commands/test.ts +307 -0
- package/src/cli/commands/upgrade.ts +48 -0
- package/src/cli/dev-bootstrap.ts +24 -0
- package/src/cli/errors.ts +10 -0
- package/src/cli/index.ts +303 -0
- package/src/cli/output.ts +17 -0
- package/src/cli/port.ts +15 -0
- package/src/cli/surface-kinds.ts +20 -0
- package/src/client/index.ts +4 -0
- package/src/client/poll.ts +130 -0
- package/src/client/report-fault.ts +119 -0
- package/src/core/config/app-pool.ts +19 -0
- package/src/core/config/aws-env.ts +29 -0
- package/src/core/config/base-dir.ts +24 -0
- package/src/core/config/discover.ts +64 -0
- package/src/core/config/env-resolve.ts +87 -0
- package/src/core/config/env-types.ts +116 -0
- package/src/core/config/env.ts +55 -0
- package/src/core/config/errors.ts +9 -0
- package/src/core/config/import-config.ts +40 -0
- package/src/core/config/index.ts +8 -0
- package/src/core/config/load.ts +417 -0
- package/src/core/config/namespace.ts +14 -0
- package/src/core/config/resolve.ts +195 -0
- package/src/core/config/schema.ts +488 -0
- package/src/core/config/statement-observer.ts +48 -0
- package/src/core/config/ts-inline-hooks.ts +75 -0
- package/src/core/config/ts-register.ts +4 -0
- package/src/core/config/ts-resolve-hooks.ts +101 -0
- package/src/core/errors/base.ts +49 -0
- package/src/core/errors/http.ts +146 -0
- package/src/core/errors/index.ts +2 -0
- package/src/core/errors/namespace.ts +31 -0
- package/src/core/lifecycle/drain.ts +33 -0
- package/src/core/lifecycle/health.ts +72 -0
- package/src/core/lifecycle/index.ts +4 -0
- package/src/core/lifecycle/namespace.ts +7 -0
- package/src/core/lifecycle/startup.ts +102 -0
- package/src/core/lifecycle/types.ts +36 -0
- package/src/core/logging/context.ts +60 -0
- package/src/core/logging/error-chain.ts +68 -0
- package/src/core/logging/index.ts +5 -0
- package/src/core/logging/logger.ts +65 -0
- package/src/core/logging/namespace.ts +16 -0
- package/src/core/logging/proxy.ts +22 -0
- package/src/core/logging/redact-match.ts +24 -0
- package/src/core/logging/types.ts +47 -0
- package/src/core/pipework.ts +566 -0
- package/src/core/runtime/broker.ts +69 -0
- package/src/core/surface/http.ts +133 -0
- package/src/core/surface/index.ts +11 -0
- package/src/core/surface/job-timeout.ts +40 -0
- package/src/core/surface/namespace.ts +13 -0
- package/src/core/surface/script.ts +33 -0
- package/src/core/surface/start.ts +142 -0
- package/src/core/surface/types.ts +225 -0
- package/src/core/surface/validate.ts +88 -0
- package/src/core/surface/worker.ts +528 -0
- package/src/core/validation/connectivity.ts +49 -0
- package/src/core/validation/domain.ts +99 -0
- package/src/core/validation/index.ts +5 -0
- package/src/core/validation/queue-tables.ts +312 -0
- package/src/core/validation/rls-role.ts +138 -0
- package/src/core/validation/startup.ts +51 -0
- package/src/core/validation/surfaces.ts +65 -0
- package/src/core/validation/types.ts +25 -0
- package/src/data/db/advisory-lock.ts +55 -0
- package/src/data/db/aggregates.ts +172 -0
- package/src/data/db/array-elements.ts +111 -0
- package/src/data/db/bulk-set.ts +53 -0
- package/src/data/db/col/index.ts +14 -0
- package/src/data/db/composed.ts +53 -0
- package/src/data/db/db.ts +276 -0
- package/src/data/db/excluded.ts +16 -0
- package/src/data/db/expressions.ts +473 -0
- package/src/data/db/filter.ts +90 -0
- package/src/data/db/function-source.ts +114 -0
- package/src/data/db/identifiers.ts +16 -0
- package/src/data/db/idx/index.ts +9 -0
- package/src/data/db/in-list.ts +49 -0
- package/src/data/db/index.ts +9 -0
- package/src/data/db/insert-split.ts +137 -0
- package/src/data/db/instrumentation.ts +82 -0
- package/src/data/db/maintenance.ts +28 -0
- package/src/data/db/namespace.ts +107 -0
- package/src/data/db/owner-labels.ts +9 -0
- package/src/data/db/pool.ts +187 -0
- package/src/data/db/query-label.ts +13 -0
- package/src/data/db/query-watch.ts +116 -0
- package/src/data/db/raw-client-warning.ts +37 -0
- package/src/data/db/readonly.ts +23 -0
- package/src/data/db/reservation.ts +151 -0
- package/src/data/db/schema-features.ts +14 -0
- package/src/data/db/serializable.ts +83 -0
- package/src/data/db/sql.ts +1 -0
- package/src/data/db/timeouts.ts +76 -0
- package/src/data/db/types.ts +18 -0
- package/src/data/db/unbound.ts +33 -0
- package/src/data/db/values.ts +29 -0
- package/src/data/domain/brand.ts +15 -0
- package/src/data/domain/build-factory.ts +193 -0
- package/src/data/domain/build-schema.ts +161 -0
- package/src/data/domain/build-table.ts +355 -0
- package/src/data/domain/define.ts +239 -0
- package/src/data/domain/external-registry.ts +34 -0
- package/src/data/domain/external.ts +77 -0
- package/src/data/domain/field.ts +279 -0
- package/src/data/domain/index.ts +13 -0
- package/src/data/domain/naming.ts +6 -0
- package/src/data/domain/projections.ts +57 -0
- package/src/data/domain/trace-safe-projection.ts +31 -0
- package/src/data/domain/traits.ts +108 -0
- package/src/data/domain/types.ts +289 -0
- package/src/data/jsonb/composed.ts +18 -0
- package/src/data/jsonb/index.ts +1 -0
- package/src/data/jsonb/namespace.ts +30 -0
- package/src/data/jsonb/query.ts +86 -0
- package/src/data/migrate/append-only-generate.ts +47 -0
- package/src/data/migrate/applied.ts +47 -0
- package/src/data/migrate/apply.ts +309 -0
- package/src/data/migrate/check.ts +119 -0
- package/src/data/migrate/diff.ts +357 -0
- package/src/data/migrate/door-generate.ts +130 -0
- package/src/data/migrate/framework-rls.ts +58 -0
- package/src/data/migrate/generate.ts +201 -0
- package/src/data/migrate/history.ts +215 -0
- package/src/data/migrate/index.ts +9 -0
- package/src/data/migrate/internal-definitions.ts +175 -0
- package/src/data/migrate/post-process.ts +73 -0
- package/src/data/migrate/pragma.ts +73 -0
- package/src/data/migrate/provision-framework.ts +147 -0
- package/src/data/migrate/rls-generate.ts +61 -0
- package/src/data/migrate/run.ts +124 -0
- package/src/data/migrate/safety.ts +167 -0
- package/src/data/migrate/snapshot.ts +368 -0
- package/src/data/migrate/sql-emit.ts +392 -0
- package/src/data/migrate/statements.ts +312 -0
- package/src/data/query/alias.ts +126 -0
- package/src/data/query/batch.ts +8 -0
- package/src/data/query/cache/core/cache.ts +78 -0
- package/src/data/query/cache/core/index.ts +1 -0
- package/src/data/query/cache/core/types.ts +29 -0
- package/src/data/query/cache/readme.md +230 -0
- package/src/data/query/casing.ts +76 -0
- package/src/data/query/collation.ts +11 -0
- package/src/data/query/column-builder.ts +370 -0
- package/src/data/query/column.ts +150 -0
- package/src/data/query/entity.ts +42 -0
- package/src/data/query/errors.ts +33 -0
- package/src/data/query/index.ts +14 -0
- package/src/data/query/logger.ts +47 -0
- package/src/data/query/operations.ts +45 -0
- package/src/data/query/pg-core/alias.ts +12 -0
- package/src/data/query/pg-core/checks.ts +32 -0
- package/src/data/query/pg-core/columns/all.ts +71 -0
- package/src/data/query/pg-core/columns/bigint.ts +110 -0
- package/src/data/query/pg-core/columns/bigserial.ts +128 -0
- package/src/data/query/pg-core/columns/boolean.ts +43 -0
- package/src/data/query/pg-core/columns/char.ts +85 -0
- package/src/data/query/pg-core/columns/cidr.ts +43 -0
- package/src/data/query/pg-core/columns/common.ts +366 -0
- package/src/data/query/pg-core/columns/custom.ts +232 -0
- package/src/data/query/pg-core/columns/date.common.ts +15 -0
- package/src/data/query/pg-core/columns/date.ts +112 -0
- package/src/data/query/pg-core/columns/double-precision.ts +55 -0
- package/src/data/query/pg-core/columns/enum.ts +201 -0
- package/src/data/query/pg-core/columns/index.ts +35 -0
- package/src/data/query/pg-core/columns/inet.ts +43 -0
- package/src/data/query/pg-core/columns/int.common.ts +57 -0
- package/src/data/query/pg-core/columns/integer.ts +53 -0
- package/src/data/query/pg-core/columns/interval.ts +83 -0
- package/src/data/query/pg-core/columns/json.ts +58 -0
- package/src/data/query/pg-core/columns/jsonb.ts +56 -0
- package/src/data/query/pg-core/columns/line.ts +117 -0
- package/src/data/query/pg-core/columns/macaddr.ts +43 -0
- package/src/data/query/pg-core/columns/macaddr8.ts +43 -0
- package/src/data/query/pg-core/columns/numeric.ts +227 -0
- package/src/data/query/pg-core/columns/point.ts +127 -0
- package/src/data/query/pg-core/columns/postgis_extension/geometry.ts +119 -0
- package/src/data/query/pg-core/columns/postgis_extension/utils.ts +47 -0
- package/src/data/query/pg-core/columns/real.ts +58 -0
- package/src/data/query/pg-core/columns/serial.ts +55 -0
- package/src/data/query/pg-core/columns/smallint.ts +53 -0
- package/src/data/query/pg-core/columns/smallserial.ts +60 -0
- package/src/data/query/pg-core/columns/text.ts +67 -0
- package/src/data/query/pg-core/columns/time.ts +72 -0
- package/src/data/query/pg-core/columns/timestamp.ts +163 -0
- package/src/data/query/pg-core/columns/uuid.ts +51 -0
- package/src/data/query/pg-core/columns/varchar.ts +89 -0
- package/src/data/query/pg-core/columns/vector_extension/bit.ts +68 -0
- package/src/data/query/pg-core/columns/vector_extension/halfvec.ts +80 -0
- package/src/data/query/pg-core/columns/vector_extension/sparsevec.ts +67 -0
- package/src/data/query/pg-core/columns/vector_extension/vector.ts +80 -0
- package/src/data/query/pg-core/db.ts +674 -0
- package/src/data/query/pg-core/dialect.ts +1404 -0
- package/src/data/query/pg-core/expressions.ts +25 -0
- package/src/data/query/pg-core/foreign-keys.ts +130 -0
- package/src/data/query/pg-core/index.ts +21 -0
- package/src/data/query/pg-core/indexes.ts +276 -0
- package/src/data/query/pg-core/policies.ts +56 -0
- package/src/data/query/pg-core/primary-keys.ts +62 -0
- package/src/data/query/pg-core/query-builders/count.ts +86 -0
- package/src/data/query/pg-core/query-builders/delete.ts +293 -0
- package/src/data/query/pg-core/query-builders/index.ts +7 -0
- package/src/data/query/pg-core/query-builders/insert.ts +452 -0
- package/src/data/query/pg-core/query-builders/query-builder.ts +123 -0
- package/src/data/query/pg-core/query-builders/query.ts +157 -0
- package/src/data/query/pg-core/query-builders/raw.ts +49 -0
- package/src/data/query/pg-core/query-builders/refresh-materialized-view.ts +108 -0
- package/src/data/query/pg-core/query-builders/select.ts +1346 -0
- package/src/data/query/pg-core/query-builders/select.types.ts +437 -0
- package/src/data/query/pg-core/query-builders/update.ts +626 -0
- package/src/data/query/pg-core/roles.ts +41 -0
- package/src/data/query/pg-core/schema.ts +72 -0
- package/src/data/query/pg-core/sequence.ts +41 -0
- package/src/data/query/pg-core/session.ts +292 -0
- package/src/data/query/pg-core/subquery.ts +46 -0
- package/src/data/query/pg-core/table.ts +252 -0
- package/src/data/query/pg-core/unique-constraint.ts +73 -0
- package/src/data/query/pg-core/utils/array.ts +95 -0
- package/src/data/query/pg-core/utils/index.ts +1 -0
- package/src/data/query/pg-core/utils.ts +104 -0
- package/src/data/query/pg-core/view-base.ts +14 -0
- package/src/data/query/pg-core/view-common.ts +1 -0
- package/src/data/query/pg-core/view.ts +435 -0
- package/src/data/query/pg-core/with-builder.ts +41 -0
- package/src/data/query/postgres-js/README.md +46 -0
- package/src/data/query/postgres-js/array-parser.ts +45 -0
- package/src/data/query/postgres-js/driver-error-boundary.ts +149 -0
- package/src/data/query/postgres-js/driver.ts +163 -0
- package/src/data/query/postgres-js/index.ts +2 -0
- package/src/data/query/postgres-js/session.ts +234 -0
- package/src/data/query/primary-key.ts +11 -0
- package/src/data/query/query-builders/query-builder.ts +19 -0
- package/src/data/query/query-builders/select.types.ts +175 -0
- package/src/data/query/query-promise.ts +35 -0
- package/src/data/query/relations.ts +725 -0
- package/src/data/query/runnable-query.ts +12 -0
- package/src/data/query/selection-proxy.ts +121 -0
- package/src/data/query/session.ts +8 -0
- package/src/data/query/sql/expressions/conditions.ts +741 -0
- package/src/data/query/sql/expressions/index.ts +2 -0
- package/src/data/query/sql/expressions/select.ts +45 -0
- package/src/data/query/sql/functions/aggregate.ts +129 -0
- package/src/data/query/sql/functions/index.ts +2 -0
- package/src/data/query/sql/functions/vector.ts +178 -0
- package/src/data/query/sql/index.ts +3 -0
- package/src/data/query/sql/sql.ts +794 -0
- package/src/data/query/subquery.ts +53 -0
- package/src/data/query/table.ts +208 -0
- package/src/data/query/table.utils.ts +2 -0
- package/src/data/query/tracing-utils.ts +3 -0
- package/src/data/query/tracing.ts +11 -0
- package/src/data/query/utils.ts +357 -0
- package/src/data/query/version.ts +4 -0
- package/src/data/query/view-common.ts +1 -0
- package/src/data/schema/branded.ts +13 -0
- package/src/data/schema/generated/coerce.ts +5 -0
- package/src/data/schema/generated/combinator.ts +6 -0
- package/src/data/schema/generated/encoding.ts +5 -0
- package/src/data/schema/generated/error.ts +6 -0
- package/src/data/schema/generated/format.ts +5 -0
- package/src/data/schema/generated/type-constructor.ts +10 -0
- package/src/data/schema/generated/type.ts +6 -0
- package/src/data/schema/index.ts +6 -0
- package/src/data/schema/json-schema.ts +33 -0
- package/src/data/schema/namespace.ts +55 -0
- package/src/data/schema/parse.ts +39 -0
- package/src/data/schema/types.ts +39 -0
- package/src/data/temporal/append-only.ts +134 -0
- package/src/data/temporal/close.ts +27 -0
- package/src/data/temporal/columns.ts +10 -0
- package/src/data/temporal/definition-queries.ts +70 -0
- package/src/data/temporal/errors.ts +10 -0
- package/src/data/temporal/get-current.ts +22 -0
- package/src/data/temporal/index.ts +9 -0
- package/src/data/temporal/namespace.ts +36 -0
- package/src/data/temporal/query.ts +25 -0
- package/src/data/temporal/resolve.ts +17 -0
- package/src/data/temporal/revise.ts +67 -0
- package/src/data/temporal/types.ts +22 -0
- package/src/data/valve/artifact.ts +33 -0
- package/src/data/valve/contract-diff.ts +21 -0
- package/src/data/valve/cross.ts +57 -0
- package/src/data/valve/crossing-ledger.ts +50 -0
- package/src/data/valve/decision.ts +44 -0
- package/src/data/valve/durable-crossing.ts +52 -0
- package/src/data/valve/execute-crossing.ts +77 -0
- package/src/data/valve/faucet.ts +56 -0
- package/src/data/valve/gate.ts +114 -0
- package/src/data/valve/graph.ts +77 -0
- package/src/data/valve/index.ts +53 -0
- package/src/data/valve/namespace.ts +57 -0
- package/src/data/valve/registry.ts +50 -0
- package/src/data/valve/schema/valve-crossing-fields.ts +23 -0
- package/src/data/valve/schema/valve-crossing.ts +9 -0
- package/src/data/valve/supply.ts +154 -0
- package/src/data/valve/types.ts +143 -0
- package/src/data/vector/columns.ts +27 -0
- package/src/data/vector/index.ts +4 -0
- package/src/data/vector/namespace.ts +33 -0
- package/src/data/vector/query.ts +85 -0
- package/src/data/vector/validate.ts +16 -0
- package/src/data/write/audit/actor.ts +15 -0
- package/src/data/write/audit/audit-columns.ts +18 -0
- package/src/data/write/audit/audit-select.ts +111 -0
- package/src/data/write/audit/bound-transaction.ts +14 -0
- package/src/data/write/audit/cte-compile.ts +32 -0
- package/src/data/write/audit/decode-returning.ts +47 -0
- package/src/data/write/audit/final-select.ts +43 -0
- package/src/data/write/audit/infra-audit.ts +36 -0
- package/src/data/write/audit/primary-key.ts +65 -0
- package/src/data/write/audit/projection.ts +41 -0
- package/src/data/write/audit/read-touches.ts +86 -0
- package/src/data/write/audit/touch-match.ts +78 -0
- package/src/data/write/audit/verb-delete.ts +62 -0
- package/src/data/write/audit/verb-insert.ts +36 -0
- package/src/data/write/audit/verb-select.ts +47 -0
- package/src/data/write/audit/verb-update.ts +60 -0
- package/src/data/write/audit/verb-upsert.ts +104 -0
- package/src/data/write/conflict.ts +43 -0
- package/src/data/write/delete.ts +38 -0
- package/src/data/write/execute.ts +243 -0
- package/src/data/write/index.ts +11 -0
- package/src/data/write/insert.ts +63 -0
- package/src/data/write/state.ts +43 -0
- package/src/data/write/update.ts +54 -0
- package/src/data/write/upsert.ts +58 -0
- package/src/data/write/values.ts +19 -0
- package/src/index.ts +230 -0
- package/src/infra/access-links/code.ts +70 -0
- package/src/infra/access-links/handle.ts +892 -0
- package/src/infra/access-links/index.ts +9 -0
- package/src/infra/access-links/namespace.ts +30 -0
- package/src/infra/access-links/person-check.ts +177 -0
- package/src/infra/access-links/schema.ts +71 -0
- package/src/infra/alerts/async-sources.ts +231 -0
- package/src/infra/alerts/audit.ts +36 -0
- package/src/infra/alerts/beat.ts +123 -0
- package/src/infra/alerts/client-faults.ts +111 -0
- package/src/infra/alerts/faults.ts +156 -0
- package/src/infra/alerts/handle.ts +778 -0
- package/src/infra/alerts/http.ts +192 -0
- package/src/infra/alerts/index.ts +12 -0
- package/src/infra/alerts/infra-sources.ts +180 -0
- package/src/infra/alerts/namespace.ts +81 -0
- package/src/infra/alerts/redact.ts +21 -0
- package/src/infra/alerts/request-faults.ts +41 -0
- package/src/infra/alerts/schema.ts +124 -0
- package/src/infra/alerts/sinks.ts +125 -0
- package/src/infra/alerts/source-options.ts +26 -0
- package/src/infra/alerts/sources.ts +503 -0
- package/src/infra/alerts/subsystem-sources.ts +137 -0
- package/src/infra/audit/emit.ts +87 -0
- package/src/infra/audit/index.ts +2 -0
- package/src/infra/audit/namespace.ts +22 -0
- package/src/infra/audit/schema.sql +35 -0
- package/src/infra/audit/types.ts +18 -0
- package/src/infra/aws/credentials.ts +147 -0
- package/src/infra/aws/sigv4.ts +140 -0
- package/src/infra/cache/create.ts +58 -0
- package/src/infra/cache/entry.ts +81 -0
- package/src/infra/cache/index.ts +4 -0
- package/src/infra/cache/namespace.ts +10 -0
- package/src/infra/cache/tenant.ts +93 -0
- package/src/infra/cache/types.ts +24 -0
- package/src/infra/crawl/audit.ts +35 -0
- package/src/infra/crawl/errors.ts +25 -0
- package/src/infra/crawl/handle.ts +693 -0
- package/src/infra/crawl/index.ts +9 -0
- package/src/infra/crawl/links.ts +160 -0
- package/src/infra/crawl/namespace.ts +36 -0
- package/src/infra/crawl/robots.ts +100 -0
- package/src/infra/crawl/schema.ts +89 -0
- package/src/infra/credit-line/handle.ts +883 -0
- package/src/infra/credit-line/index.ts +6 -0
- package/src/infra/credit-line/namespace.ts +7 -0
- package/src/infra/credit-line/schema.ts +96 -0
- package/src/infra/credits/handle.ts +706 -0
- package/src/infra/credits/index.ts +5 -0
- package/src/infra/credits/namespace.ts +7 -0
- package/src/infra/credits/schema.ts +83 -0
- package/src/infra/email/audit.ts +36 -0
- package/src/infra/email/inbound.ts +622 -0
- package/src/infra/email/index.ts +11 -0
- package/src/infra/email/mail.ts +517 -0
- package/src/infra/email/mime.ts +447 -0
- package/src/infra/email/namespace.ts +22 -0
- package/src/infra/email/providers.ts +111 -0
- package/src/infra/email/schema.ts +96 -0
- package/src/infra/email/sns.ts +200 -0
- package/src/infra/email/unsubscribe.ts +44 -0
- package/src/infra/fetch/address.ts +88 -0
- package/src/infra/fetch/connect-retry.ts +87 -0
- package/src/infra/fetch/handle.ts +329 -0
- package/src/infra/fetch/index.ts +7 -0
- package/src/infra/fetch/namespace.ts +70 -0
- package/src/infra/idempotency/index.ts +3 -0
- package/src/infra/idempotency/middleware.ts +87 -0
- package/src/infra/idempotency/store.ts +92 -0
- package/src/infra/idempotency/types.ts +30 -0
- package/src/infra/join-requests/handle.ts +312 -0
- package/src/infra/join-requests/index.ts +2 -0
- package/src/infra/join-requests/namespace.ts +7 -0
- package/src/infra/join-requests/schema.ts +33 -0
- package/src/infra/outbox/core.ts +165 -0
- package/src/infra/quota/errors.ts +32 -0
- package/src/infra/quota/handle.ts +215 -0
- package/src/infra/quota/index.ts +5 -0
- package/src/infra/quota/namespace.ts +7 -0
- package/src/infra/quota/schema.ts +15 -0
- package/src/infra/storage/backend.ts +34 -0
- package/src/infra/storage/handle.ts +513 -0
- package/src/infra/storage/index.ts +9 -0
- package/src/infra/storage/local.ts +104 -0
- package/src/infra/storage/namespace.ts +13 -0
- package/src/infra/storage/s3.ts +257 -0
- package/src/infra/storage/schema.ts +24 -0
- package/src/infra/support/handle.ts +854 -0
- package/src/infra/support/http.ts +229 -0
- package/src/infra/support/index.ts +7 -0
- package/src/infra/support/namespace.ts +12 -0
- package/src/infra/support/schema.ts +96 -0
- package/src/infra/webhook/inbound.ts +45 -0
- package/src/infra/webhook/index.ts +5 -0
- package/src/infra/webhook/namespace.ts +24 -0
- package/src/infra/webhook/outbound.ts +315 -0
- package/src/infra/webhook/sign.ts +32 -0
- package/src/infra/webhook/verify.ts +82 -0
- package/src/invariants/assert.ts +26 -0
- package/src/invariants/index.ts +1 -0
- package/src/lint/config.ts +56 -0
- package/src/lint/doctrine.ts +163 -0
- package/src/lint/include.ts +97 -0
- package/src/lint/index.ts +3 -0
- package/src/lint/preset.ts +10 -0
- package/src/lint/resolver.ts +218 -0
- package/src/lint/rules/no-reexports.ts +46 -0
- package/src/request/behavior/audited.ts +85 -0
- package/src/request/behavior/cached.ts +62 -0
- package/src/request/behavior/compose.ts +28 -0
- package/src/request/behavior/index.ts +5 -0
- package/src/request/behavior/namespace.ts +16 -0
- package/src/request/behavior/types.ts +26 -0
- package/src/request/behavior/versioned.ts +54 -0
- package/src/request/context/create.ts +103 -0
- package/src/request/context/guard.ts +49 -0
- package/src/request/context/index.ts +4 -0
- package/src/request/context/run-in-transaction.ts +200 -0
- package/src/request/context/store.ts +28 -0
- package/src/request/context/types.ts +50 -0
- package/src/request/di/builder.ts +535 -0
- package/src/request/di/index.ts +8 -0
- package/src/request/di/resolve.ts +271 -0
- package/src/request/di/types.ts +262 -0
- package/src/request/fitting/namespace.ts +7 -0
- package/src/request/fixture/batch.ts +71 -0
- package/src/request/fixture/builder.ts +26 -0
- package/src/request/fixture/errors.ts +10 -0
- package/src/request/fixture/index.ts +8 -0
- package/src/request/fixture/namespace.ts +23 -0
- package/src/request/fixture/paginate.ts +44 -0
- package/src/request/fixture/to-handlers.ts +260 -0
- package/src/request/fixture/types.ts +79 -0
- package/src/request/flow/act-as.ts +78 -0
- package/src/request/flow/namespace.ts +17 -0
- package/src/request/http/error-step.ts +42 -0
- package/src/request/http/file.ts +141 -0
- package/src/request/http/index.ts +4 -0
- package/src/request/http/middleware.ts +141 -0
- package/src/request/http/namespace.ts +5 -0
- package/src/request/http/rate-limit-classes.ts +170 -0
- package/src/request/http/response.ts +82 -0
- package/src/request/http/server.ts +916 -0
- package/src/request/http/sniff.ts +261 -0
- package/src/request/http/types.ts +250 -0
- package/src/request/http/upload.ts +284 -0
- package/src/request/internal/text.ts +6 -0
- package/src/request/openapi/generate.ts +205 -0
- package/src/request/openapi/index.ts +2 -0
- package/src/request/openapi/namespace.ts +7 -0
- package/src/test/auth.ts +13 -0
- package/src/test/auto-setup.ts +45 -0
- package/src/test/context.ts +91 -0
- package/src/test/crawl-fixture.ts +157 -0
- package/src/test/discover-fork.ts +17 -0
- package/src/test/fingerprint.ts +135 -0
- package/src/test/globals.d.ts +7 -0
- package/src/test/index.ts +19 -0
- package/src/test/namespace.ts +87 -0
- package/src/test/plugin.ts +189 -0
- package/src/test/progress.ts +185 -0
- package/src/test/reap-after-run.ts +28 -0
- package/src/test/reap.ts +286 -0
- package/src/test/reset.ts +253 -0
- package/src/test/savepoints.ts +172 -0
- package/src/test/setup.ts +1422 -0
- package/src/test/system-channel.ts +50 -0
- package/src/test/vitest-plugin.ts +142 -0
- package/src/test/vitest-workspace.ts +507 -0
- package/src/test/vitest.ts +333 -0
- package/src/test/watch.ts +105 -0
- package/src/trace/capture/bounded-serializer.ts +146 -0
- package/src/trace/cardinality/analyze.ts +173 -0
- package/src/trace/cardinality/branch-context.ts +214 -0
- package/src/trace/cardinality/check.ts +33 -0
- package/src/trace/cardinality/classify-edge.ts +64 -0
- package/src/trace/cardinality/structural-max.ts +107 -0
- package/src/trace/check/coverage-check.ts +188 -0
- package/src/trace/check/flow-check.ts +103 -0
- package/src/trace/check/flow-step-site.ts +234 -0
- package/src/trace/check/io-pattern.ts +116 -0
- package/src/trace/codemod/add-cardinality.ts +152 -0
- package/src/trace/codemod/run.ts +80 -0
- package/src/trace/entry/child-trace.ts +21 -0
- package/src/trace/entry/close-trace.ts +87 -0
- package/src/trace/entry/finalize-trace.ts +28 -0
- package/src/trace/entry/open-trace.ts +138 -0
- package/src/trace/entry/parent-trace.ts +20 -0
- package/src/trace/entry/parse-traceparent.ts +39 -0
- package/src/trace/entry/process-start.ts +38 -0
- package/src/trace/entry/trace-context.ts +26 -0
- package/src/trace/entry/tracing-enabled.ts +10 -0
- package/src/trace/external/record.ts +195 -0
- package/src/trace/external/report.ts +66 -0
- package/src/trace/namespace.ts +19 -0
- package/src/trace/partition/day.ts +47 -0
- package/src/trace/partition/index.ts +14 -0
- package/src/trace/partition/partition-name.ts +23 -0
- package/src/trace/partition/plan.ts +82 -0
- package/src/trace/partition/schedule.ts +26 -0
- package/src/trace/partition/startup-hook.ts +39 -0
- package/src/trace/partition/sync.ts +154 -0
- package/src/trace/partition/tables.ts +53 -0
- package/src/trace/read/tree.ts +83 -0
- package/src/trace/retain/copy-on-error.ts +76 -0
- package/src/trace/runtime/expire-stale-traces.ts +54 -0
- package/src/trace/runtime/flow-step.ts +147 -0
- package/src/trace/runtime/flush-steps.ts +31 -0
- package/src/trace/runtime/pending-writes.ts +54 -0
- package/src/trace/runtime/step-buffer.ts +298 -0
- package/src/trace/runtime/step-error.ts +21 -0
- package/src/trace/runtime/step-meta.ts +55 -0
- package/src/trace/runtime/thenable.ts +12 -0
- package/src/trace/runtime/truncate-trace.ts +62 -0
- package/src/trace/schema/trace-fields.ts +52 -0
- package/src/trace/schema/trace-retained.ts +22 -0
- package/src/trace/schema/trace-step-fields.ts +44 -0
- package/src/trace/schema/trace-step-retained.ts +25 -0
- package/src/trace/schema/trace-step.ts +18 -0
- package/src/trace/schema/trace.ts +12 -0
- package/src/trace/transformer/apply.ts +79 -0
- package/src/trace/transformer/build-meta-literal.ts +30 -0
- package/src/trace/transformer/find-flow-step-sites.ts +85 -0
- package/src/trace/transformer/inject-flow-step-import.ts +39 -0
- package/src/trace/transformer/transform-error.ts +14 -0
- package/src/trace/transformer/transform-flow-steps.ts +123 -0
- package/src/trace/transformer/wrap-function-declaration.ts +62 -0
- package/src/trace/transformer/wrap-variable-declaration.ts +67 -0
- package/src/workspace/affected.ts +110 -0
- package/src/workspace/changed-files.ts +163 -0
- package/src/workspace/check-deps.ts +213 -0
- package/src/workspace/checksum.ts +20 -0
- package/src/workspace/dependency-graph.ts +67 -0
- package/src/workspace/detect-pipework-copies.ts +93 -0
- package/src/workspace/discover.ts +206 -0
- package/src/workspace/generate.ts +401 -0
- package/src/workspace/index.ts +7 -0
- package/src/workspace/module-imports-pipework.ts +39 -0
- package/src/workspace/module-package-name.ts +12 -0
- package/src/workspace/scrub-git-env.ts +23 -0
- package/src/workspace/source-paths.ts +36 -0
- package/src/workspace/sync.ts +182 -0
- package/dist/REFERENCE.md +0 -1477
- package/dist/infra/access-links/rate-limit.d.ts +0 -10
- package/dist/infra/access-links/rate-limit.d.ts.map +0 -1
- package/dist/infra/access-links/rate-limit.js +0 -28
- package/dist/infra/access-links/rate-limit.js.map +0 -1
- package/dist/infra/email/sigv4.d.ts +0 -24
- package/dist/infra/email/sigv4.d.ts.map +0 -1
- package/dist/infra/email/sigv4.js +0 -55
- package/dist/infra/email/sigv4.js.map +0 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { entityKind } from './entity.js';
|
|
2
|
+
import type { SQL, SQLWrapper } from './sql/sql.js';
|
|
3
|
+
|
|
4
|
+
export interface Subquery<
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6
|
+
TAlias extends string = string,
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
8
|
+
TSelectedFields extends Record<string, unknown> = Record<string, unknown>,
|
|
9
|
+
> extends SQLWrapper {
|
|
10
|
+
// SQLWrapper runtime implementation is defined in 'sql/sql.ts'
|
|
11
|
+
}
|
|
12
|
+
export class Subquery<
|
|
13
|
+
TAlias extends string = string,
|
|
14
|
+
TSelectedFields extends Record<string, unknown> = Record<string, unknown>,
|
|
15
|
+
> implements SQLWrapper {
|
|
16
|
+
static readonly [entityKind]: string = 'Subquery';
|
|
17
|
+
|
|
18
|
+
declare _: {
|
|
19
|
+
brand: 'Subquery';
|
|
20
|
+
sql: SQL;
|
|
21
|
+
selectedFields: TSelectedFields;
|
|
22
|
+
alias: TAlias;
|
|
23
|
+
isWith: boolean;
|
|
24
|
+
usedTables?: string[];
|
|
25
|
+
/** CTE fence: `true` renders `as materialized`, `false` renders `as not materialized`, unset renders plain `as`. */
|
|
26
|
+
materialized?: boolean;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
constructor(sql: SQL, fields: TSelectedFields, alias: string, isWith = false, usedTables: string[] = [], materialized?: boolean) {
|
|
30
|
+
this._ = {
|
|
31
|
+
brand: 'Subquery',
|
|
32
|
+
sql,
|
|
33
|
+
selectedFields: fields as TSelectedFields,
|
|
34
|
+
alias: alias as TAlias,
|
|
35
|
+
isWith,
|
|
36
|
+
usedTables,
|
|
37
|
+
...(materialized === undefined ? {} : { materialized }),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// getSQL(): SQL<unknown> {
|
|
42
|
+
// return new SQL([this]);
|
|
43
|
+
// }
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export class WithSubquery<
|
|
47
|
+
TAlias extends string = string,
|
|
48
|
+
TSelection extends Record<string, unknown> = Record<string, unknown>,
|
|
49
|
+
> extends Subquery<TAlias, TSelection> {
|
|
50
|
+
static override readonly [entityKind]: string = 'WithSubquery';
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export type WithSubqueryWithoutSelection<TAlias extends string> = WithSubquery<TAlias, {}>;
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import type { Column, GetColumnData } from './column.js';
|
|
2
|
+
import { entityKind } from './entity.js';
|
|
3
|
+
import type { OptionalKeyOnly, RequiredKeyOnly } from './operations.js';
|
|
4
|
+
import type { SQLWrapper } from './sql/sql.js';
|
|
5
|
+
import { TableName } from './table.utils.js';
|
|
6
|
+
import type { Simplify, Update } from './utils.js';
|
|
7
|
+
|
|
8
|
+
export interface TableConfig<TColumn extends Column = Column<any>> {
|
|
9
|
+
name: string;
|
|
10
|
+
schema: string | undefined;
|
|
11
|
+
columns: Record<string, TColumn>;
|
|
12
|
+
dialect: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export type UpdateTableConfig<T extends TableConfig, TUpdate extends Partial<TableConfig>> = Required<
|
|
16
|
+
Update<T, TUpdate>
|
|
17
|
+
>;
|
|
18
|
+
|
|
19
|
+
/** @internal */
|
|
20
|
+
export const Schema = Symbol.for('drizzle:Schema');
|
|
21
|
+
|
|
22
|
+
/** @internal */
|
|
23
|
+
export const Columns = Symbol.for('drizzle:Columns');
|
|
24
|
+
|
|
25
|
+
/** @internal */
|
|
26
|
+
export const ExtraConfigColumns = Symbol.for('drizzle:ExtraConfigColumns');
|
|
27
|
+
|
|
28
|
+
/** @internal */
|
|
29
|
+
export const OriginalName = Symbol.for('drizzle:OriginalName');
|
|
30
|
+
|
|
31
|
+
/** @internal */
|
|
32
|
+
export const BaseName = Symbol.for('drizzle:BaseName');
|
|
33
|
+
|
|
34
|
+
/** @internal */
|
|
35
|
+
export const IsAlias = Symbol.for('drizzle:IsAlias');
|
|
36
|
+
|
|
37
|
+
/** @internal */
|
|
38
|
+
export const ExtraConfigBuilder = Symbol.for('drizzle:ExtraConfigBuilder');
|
|
39
|
+
|
|
40
|
+
const IsDrizzleTable = Symbol.for('drizzle:IsDrizzleTable');
|
|
41
|
+
|
|
42
|
+
export interface Table<
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
44
|
+
T extends TableConfig = TableConfig,
|
|
45
|
+
> extends SQLWrapper {
|
|
46
|
+
// SQLWrapper runtime implementation is defined in 'sql/sql.ts'
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export class Table<T extends TableConfig = TableConfig> implements SQLWrapper {
|
|
50
|
+
static readonly [entityKind]: string = 'Table';
|
|
51
|
+
|
|
52
|
+
declare readonly _: {
|
|
53
|
+
readonly brand: 'Table';
|
|
54
|
+
readonly config: T;
|
|
55
|
+
readonly name: T['name'];
|
|
56
|
+
readonly schema: T['schema'];
|
|
57
|
+
readonly columns: T['columns'];
|
|
58
|
+
readonly inferSelect: InferSelectModel<Table<T>>;
|
|
59
|
+
readonly inferInsert: InferInsertModel<Table<T>>;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
declare readonly $inferSelect: InferSelectModel<Table<T>>;
|
|
63
|
+
declare readonly $inferInsert: InferInsertModel<Table<T>>;
|
|
64
|
+
|
|
65
|
+
/** @internal */
|
|
66
|
+
static readonly Symbol = {
|
|
67
|
+
Name: TableName as typeof TableName,
|
|
68
|
+
Schema: Schema as typeof Schema,
|
|
69
|
+
OriginalName: OriginalName as typeof OriginalName,
|
|
70
|
+
Columns: Columns as typeof Columns,
|
|
71
|
+
ExtraConfigColumns: ExtraConfigColumns as typeof ExtraConfigColumns,
|
|
72
|
+
BaseName: BaseName as typeof BaseName,
|
|
73
|
+
IsAlias: IsAlias as typeof IsAlias,
|
|
74
|
+
ExtraConfigBuilder: ExtraConfigBuilder as typeof ExtraConfigBuilder,
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @internal
|
|
79
|
+
* Can be changed if the table is aliased.
|
|
80
|
+
*/
|
|
81
|
+
[TableName]: string;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @internal
|
|
85
|
+
* Used to store the original name of the table, before any aliasing.
|
|
86
|
+
*/
|
|
87
|
+
[OriginalName]: string;
|
|
88
|
+
|
|
89
|
+
/** @internal */
|
|
90
|
+
[Schema]: string | undefined;
|
|
91
|
+
|
|
92
|
+
/** @internal */
|
|
93
|
+
[Columns]!: T['columns'];
|
|
94
|
+
|
|
95
|
+
/** @internal */
|
|
96
|
+
[ExtraConfigColumns]!: Record<string, unknown>;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* @internal
|
|
100
|
+
* Used to store the table name before the transformation via the `tableCreator` functions.
|
|
101
|
+
*/
|
|
102
|
+
[BaseName]: string;
|
|
103
|
+
|
|
104
|
+
/** @internal */
|
|
105
|
+
[IsAlias] = false;
|
|
106
|
+
|
|
107
|
+
/** @internal */
|
|
108
|
+
[IsDrizzleTable] = true;
|
|
109
|
+
|
|
110
|
+
/** @internal */
|
|
111
|
+
[ExtraConfigBuilder]: ((self: any) => Record<string, unknown> | unknown[]) | undefined = undefined;
|
|
112
|
+
|
|
113
|
+
constructor(name: string, schema: string | undefined, baseName: string) {
|
|
114
|
+
this[TableName] = this[OriginalName] = name;
|
|
115
|
+
this[Schema] = schema;
|
|
116
|
+
this[BaseName] = baseName;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export function isTable(table: unknown): table is Table {
|
|
121
|
+
return typeof table === 'object' && table !== null && IsDrizzleTable in table;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Any table with a specified boundary.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
```ts
|
|
129
|
+
// Any table with a specific name
|
|
130
|
+
type AnyUsersTable = AnyTable<{ name: 'users' }>;
|
|
131
|
+
```
|
|
132
|
+
*
|
|
133
|
+
* To describe any table with any config, simply use `Table` without any type arguments, like this:
|
|
134
|
+
*
|
|
135
|
+
```ts
|
|
136
|
+
function needsTable(table: Table) {
|
|
137
|
+
...
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
*/
|
|
141
|
+
export type AnyTable<TPartial extends Partial<TableConfig>> = Table<UpdateTableConfig<TableConfig, TPartial>>;
|
|
142
|
+
|
|
143
|
+
export function getTableName<T extends Table>(table: T): T['_']['name'] {
|
|
144
|
+
return table[TableName];
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export function getTableUniqueName<T extends Table>(table: T): `${T['_']['schema']}.${T['_']['name']}` {
|
|
148
|
+
return `${table[Schema] ?? 'public'}.${table[TableName]}`;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export type MapColumnName<TName extends string, TColumn extends Column, TDBColumNames extends boolean> =
|
|
152
|
+
TDBColumNames extends true ? TColumn['_']['name']
|
|
153
|
+
: TName;
|
|
154
|
+
|
|
155
|
+
export type InferModelFromColumns<
|
|
156
|
+
TColumns extends Record<string, Column>,
|
|
157
|
+
TInferMode extends 'select' | 'insert' = 'select',
|
|
158
|
+
TConfig extends { dbColumnNames: boolean; override?: boolean } = { dbColumnNames: false; override: false },
|
|
159
|
+
> = Simplify<
|
|
160
|
+
TInferMode extends 'insert' ?
|
|
161
|
+
& {
|
|
162
|
+
[
|
|
163
|
+
Key in keyof TColumns & string as RequiredKeyOnly<
|
|
164
|
+
MapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,
|
|
165
|
+
TColumns[Key]
|
|
166
|
+
>
|
|
167
|
+
]: GetColumnData<TColumns[Key], 'query'>;
|
|
168
|
+
}
|
|
169
|
+
& {
|
|
170
|
+
[
|
|
171
|
+
Key in keyof TColumns & string as OptionalKeyOnly<
|
|
172
|
+
MapColumnName<Key, TColumns[Key], TConfig['dbColumnNames']>,
|
|
173
|
+
TColumns[Key],
|
|
174
|
+
TConfig['override']
|
|
175
|
+
>
|
|
176
|
+
]?: GetColumnData<TColumns[Key], 'query'> | undefined;
|
|
177
|
+
}
|
|
178
|
+
: {
|
|
179
|
+
[
|
|
180
|
+
Key in keyof TColumns & string as MapColumnName<
|
|
181
|
+
Key,
|
|
182
|
+
TColumns[Key],
|
|
183
|
+
TConfig['dbColumnNames']
|
|
184
|
+
>
|
|
185
|
+
]: GetColumnData<TColumns[Key], 'query'>;
|
|
186
|
+
}
|
|
187
|
+
>;
|
|
188
|
+
|
|
189
|
+
/** @deprecated Use one of the alternatives: {@link InferSelectModel} / {@link InferInsertModel}, or `table.$inferSelect` / `table.$inferInsert`
|
|
190
|
+
*/
|
|
191
|
+
export type InferModel<
|
|
192
|
+
TTable extends Table,
|
|
193
|
+
TInferMode extends 'select' | 'insert' = 'select',
|
|
194
|
+
TConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },
|
|
195
|
+
> = InferModelFromColumns<TTable['_']['columns'], TInferMode, TConfig>;
|
|
196
|
+
|
|
197
|
+
export type InferSelectModel<
|
|
198
|
+
TTable extends Table,
|
|
199
|
+
TConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },
|
|
200
|
+
> = InferModelFromColumns<TTable['_']['columns'], 'select', TConfig>;
|
|
201
|
+
|
|
202
|
+
export type InferInsertModel<
|
|
203
|
+
TTable extends Table,
|
|
204
|
+
TConfig extends { dbColumnNames: boolean; override?: boolean } = { dbColumnNames: false; override: false },
|
|
205
|
+
> = InferModelFromColumns<TTable['_']['columns'], 'insert', TConfig>;
|
|
206
|
+
|
|
207
|
+
export type InferEnum<T> = T extends { enumValues: readonly (infer U)[] } ? U
|
|
208
|
+
: never;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** @internal */
|
|
2
|
+
interface Span {
|
|
3
|
+
setAttributes(attributes: Record<string, string>): void;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
/** @internal */
|
|
7
|
+
export const tracer = {
|
|
8
|
+
startActiveSpan<F extends (span?: Span) => unknown>(_name: string, fn: F): ReturnType<F> {
|
|
9
|
+
return fn() as ReturnType<F>;
|
|
10
|
+
},
|
|
11
|
+
};
|
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
import type { Cache } from './cache/core/cache.js';
|
|
2
|
+
import type { AnyColumn } from './column.js';
|
|
3
|
+
import { Column } from './column.js';
|
|
4
|
+
import { is } from './entity.js';
|
|
5
|
+
import type { Logger } from './logger.js';
|
|
6
|
+
import type { SelectedFieldsOrdered } from './operations.js';
|
|
7
|
+
import type { TableLike } from './query-builders/select.types.js';
|
|
8
|
+
import { Param, SQL, View } from './sql/sql.js';
|
|
9
|
+
import type { DriverValueDecoder } from './sql/sql.js';
|
|
10
|
+
import { Subquery } from './subquery.js';
|
|
11
|
+
import { getTableName, Table } from './table.js';
|
|
12
|
+
import { ViewBaseConfig } from './view-common.js';
|
|
13
|
+
|
|
14
|
+
/** @internal */
|
|
15
|
+
export function mapResultRow<TResult>(
|
|
16
|
+
columns: SelectedFieldsOrdered<AnyColumn>,
|
|
17
|
+
row: unknown[],
|
|
18
|
+
joinsNotNullableMap: Record<string, boolean> | undefined,
|
|
19
|
+
): TResult {
|
|
20
|
+
// Key -> nested object key, value -> table name if all fields in the nested object are from the same table, false otherwise
|
|
21
|
+
const nullifyMap: Record<string, string | false> = {};
|
|
22
|
+
|
|
23
|
+
const result = columns.reduce<Record<string, any>>(
|
|
24
|
+
(result, { path, field }, columnIndex) => {
|
|
25
|
+
let decoder: DriverValueDecoder<unknown, unknown>;
|
|
26
|
+
if (is(field, Column)) {
|
|
27
|
+
decoder = field;
|
|
28
|
+
} else if (is(field, SQL)) {
|
|
29
|
+
decoder = field.decoder;
|
|
30
|
+
} else if (is(field, Subquery)) {
|
|
31
|
+
decoder = field._.sql.decoder;
|
|
32
|
+
} else {
|
|
33
|
+
decoder = field.sql.decoder;
|
|
34
|
+
}
|
|
35
|
+
let node = result;
|
|
36
|
+
for (const [pathChunkIndex, pathChunk] of path.entries()) {
|
|
37
|
+
if (pathChunkIndex < path.length - 1) {
|
|
38
|
+
if (!(pathChunk in node)) {
|
|
39
|
+
node[pathChunk] = {};
|
|
40
|
+
}
|
|
41
|
+
node = node[pathChunk];
|
|
42
|
+
} else {
|
|
43
|
+
const rawValue = row[columnIndex]!;
|
|
44
|
+
const value = node[pathChunk] = rawValue === null ? null : decoder.mapFromDriverValue(rawValue);
|
|
45
|
+
|
|
46
|
+
if (joinsNotNullableMap && is(field, Column) && path.length === 2) {
|
|
47
|
+
const objectName = path[0]!;
|
|
48
|
+
if (!(objectName in nullifyMap)) {
|
|
49
|
+
nullifyMap[objectName] = value === null ? getTableName(field.table) : false;
|
|
50
|
+
} else if (
|
|
51
|
+
typeof nullifyMap[objectName] === 'string' && nullifyMap[objectName] !== getTableName(field.table)
|
|
52
|
+
) {
|
|
53
|
+
nullifyMap[objectName] = false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
},
|
|
60
|
+
{},
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
// Nullify all nested objects from nullifyMap that are nullable
|
|
64
|
+
if (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {
|
|
65
|
+
for (const [objectName, tableName] of Object.entries(nullifyMap)) {
|
|
66
|
+
if (typeof tableName === 'string' && !joinsNotNullableMap[tableName]) {
|
|
67
|
+
result[objectName] = null;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return result as TResult;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** @internal */
|
|
76
|
+
export function orderSelectedFields<TColumn extends AnyColumn>(
|
|
77
|
+
fields: Record<string, unknown>,
|
|
78
|
+
pathPrefix?: string[],
|
|
79
|
+
): SelectedFieldsOrdered<TColumn> {
|
|
80
|
+
return Object.entries(fields).reduce<SelectedFieldsOrdered<AnyColumn>>((result, [name, field]) => {
|
|
81
|
+
if (typeof name !== 'string') {
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const newPath = pathPrefix ? [...pathPrefix, name] : [name];
|
|
86
|
+
if (is(field, Column) || is(field, SQL) || is(field, SQL.Aliased) || is(field, Subquery)) {
|
|
87
|
+
result.push({ path: newPath, field });
|
|
88
|
+
} else if (is(field, Table)) {
|
|
89
|
+
result.push(...orderSelectedFields(field[Table.Symbol.Columns], newPath));
|
|
90
|
+
} else {
|
|
91
|
+
result.push(...orderSelectedFields(field as Record<string, unknown>, newPath));
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}, []) as SelectedFieldsOrdered<TColumn>;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export function haveSameKeys(left: Record<string, unknown>, right: Record<string, unknown>) {
|
|
98
|
+
const leftKeys = Object.keys(left);
|
|
99
|
+
const rightKeys = Object.keys(right);
|
|
100
|
+
|
|
101
|
+
if (leftKeys.length !== rightKeys.length) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
for (const [index, key] of leftKeys.entries()) {
|
|
106
|
+
if (key !== rightKeys[index]) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/** @internal */
|
|
115
|
+
export function mapUpdateSet(table: Table, values: Record<string, unknown>): UpdateSet {
|
|
116
|
+
const columns = table[Table.Symbol.Columns];
|
|
117
|
+
|
|
118
|
+
const entries: [string, UpdateSet[string]][] = Object.entries(values)
|
|
119
|
+
.filter(([, value]) => value !== undefined)
|
|
120
|
+
.map(([key, value]) => {
|
|
121
|
+
// A key with no column of that name would be dropped by buildUpdateSet, which
|
|
122
|
+
// walks the table's columns rather than this object: the write would vanish and
|
|
123
|
+
// the statement would still report rows updated. Refuse it here instead.
|
|
124
|
+
if (!(key in columns)) {
|
|
125
|
+
throw new Error(
|
|
126
|
+
`Cannot set "${key}" on "${getTableName(table)}": the table has no such column. `
|
|
127
|
+
+ `It has: ${Object.keys(columns).join(', ')}. `
|
|
128
|
+
+ `A column added by a migration must be added to the table definition before it can be written.`,
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// eslint-disable-next-line unicorn/prefer-ternary
|
|
133
|
+
if (is(value, SQL) || is(value, Column)) {
|
|
134
|
+
return [key, value];
|
|
135
|
+
} else {
|
|
136
|
+
return [key, new Param(value, columns[key])];
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
if (entries.length === 0) {
|
|
141
|
+
throw new Error('No values to set');
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return Object.fromEntries(entries);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export type UpdateSet = Record<string, SQL | Param | AnyColumn | null | undefined>;
|
|
148
|
+
|
|
149
|
+
export type OneOrMany<T> = T | T[];
|
|
150
|
+
|
|
151
|
+
export type Update<T, TUpdate> =
|
|
152
|
+
& {
|
|
153
|
+
[K in Exclude<keyof T, keyof TUpdate>]: T[K];
|
|
154
|
+
}
|
|
155
|
+
& TUpdate;
|
|
156
|
+
|
|
157
|
+
export type Simplify<T> =
|
|
158
|
+
& {
|
|
159
|
+
// @ts-ignore - "Type parameter 'K' has a circular constraint", not sure why
|
|
160
|
+
[K in keyof T]: T[K];
|
|
161
|
+
}
|
|
162
|
+
& {};
|
|
163
|
+
|
|
164
|
+
export type Not<T extends boolean> = T extends true ? false : true;
|
|
165
|
+
|
|
166
|
+
export type IsNever<T> = [T] extends [never] ? true : false;
|
|
167
|
+
|
|
168
|
+
export type IsUnion<T, U extends T = T> = (T extends any ? (U extends T ? false : true) : never) extends false ? false
|
|
169
|
+
: true;
|
|
170
|
+
|
|
171
|
+
export type SingleKeyObject<T, TError extends string, K = keyof T> = IsNever<K> extends true ? never
|
|
172
|
+
: IsUnion<K> extends true ? DrizzleTypeError<TError>
|
|
173
|
+
: T;
|
|
174
|
+
|
|
175
|
+
export type FromSingleKeyObject<T, Result, TError extends string, K = keyof T> = IsNever<K> extends true ? never
|
|
176
|
+
: IsUnion<K> extends true ? DrizzleTypeError<TError>
|
|
177
|
+
: Result;
|
|
178
|
+
|
|
179
|
+
export type SimplifyMappedType<T> = [T] extends [unknown] ? T : never;
|
|
180
|
+
|
|
181
|
+
export type ShallowRecord<K extends keyof any, T> = SimplifyMappedType<{ [P in K]: T }>;
|
|
182
|
+
|
|
183
|
+
export type Assume<T, U> = T extends U ? T : U;
|
|
184
|
+
|
|
185
|
+
export type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;
|
|
186
|
+
|
|
187
|
+
export interface DrizzleTypeError<T extends string> {
|
|
188
|
+
$drizzleTypeError: T;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export type ValueOrArray<T> = T | T[];
|
|
192
|
+
|
|
193
|
+
/** @internal */
|
|
194
|
+
export function applyMixins(baseClass: any, extendedClasses: any[]) {
|
|
195
|
+
for (const extendedClass of extendedClasses) {
|
|
196
|
+
for (const name of Object.getOwnPropertyNames(extendedClass.prototype)) {
|
|
197
|
+
if (name === 'constructor') continue;
|
|
198
|
+
|
|
199
|
+
Object.defineProperty(
|
|
200
|
+
baseClass.prototype,
|
|
201
|
+
name,
|
|
202
|
+
Object.getOwnPropertyDescriptor(extendedClass.prototype, name) || Object.create(null),
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
export type Or<T1, T2> = T1 extends true ? true : T2 extends true ? true : false;
|
|
209
|
+
|
|
210
|
+
export type IfThenElse<If, Then, Else> = If extends true ? Then : Else;
|
|
211
|
+
|
|
212
|
+
export type PromiseOf<T> = T extends Promise<infer U> ? U : T;
|
|
213
|
+
|
|
214
|
+
export type Writable<T> = {
|
|
215
|
+
-readonly [P in keyof T]: T[P];
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
export type NonArray<T> = T extends any[] ? never : T;
|
|
219
|
+
|
|
220
|
+
export function getTableColumns<T extends Table>(table: T): T['_']['columns'] {
|
|
221
|
+
return table[Table.Symbol.Columns];
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
export function getViewSelectedFields<T extends View>(view: T): T['_']['selectedFields'] {
|
|
225
|
+
return view[ViewBaseConfig].selectedFields;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/** @internal */
|
|
229
|
+
export function getTableLikeName(table: TableLike): string | undefined {
|
|
230
|
+
return is(table, Subquery)
|
|
231
|
+
? table._.alias
|
|
232
|
+
: is(table, View)
|
|
233
|
+
? table[ViewBaseConfig].name
|
|
234
|
+
: is(table, SQL)
|
|
235
|
+
? undefined
|
|
236
|
+
: table[Table.Symbol.IsAlias]
|
|
237
|
+
? table[Table.Symbol.Name]
|
|
238
|
+
: table[Table.Symbol.BaseName];
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export type ColumnsWithTable<
|
|
242
|
+
TTableName extends string,
|
|
243
|
+
TForeignTableName extends string,
|
|
244
|
+
TColumns extends AnyColumn<{ tableName: TTableName }>[],
|
|
245
|
+
> = { [Key in keyof TColumns]: AnyColumn<{ tableName: TForeignTableName }> };
|
|
246
|
+
|
|
247
|
+
export type Casing = 'snake_case' | 'camelCase';
|
|
248
|
+
|
|
249
|
+
export interface DrizzleConfig<TSchema extends Record<string, unknown> = Record<string, never>> {
|
|
250
|
+
logger?: boolean | Logger;
|
|
251
|
+
schema?: TSchema;
|
|
252
|
+
casing?: Casing;
|
|
253
|
+
cache?: Cache;
|
|
254
|
+
/** Wraps every statement the postgres-js session runs; see `StatementWatch`. */
|
|
255
|
+
statementWatch?: import('./postgres-js/session.js').StatementWatch;
|
|
256
|
+
}
|
|
257
|
+
export type ValidateShape<T, ValidShape, TResult = T> = T extends ValidShape
|
|
258
|
+
? Exclude<keyof T, keyof ValidShape> extends never ? TResult
|
|
259
|
+
: DrizzleTypeError<
|
|
260
|
+
`Invalid key(s): ${Exclude<(keyof T) & (string | number | bigint | boolean | null | undefined), keyof ValidShape>}`
|
|
261
|
+
>
|
|
262
|
+
: never;
|
|
263
|
+
|
|
264
|
+
export type KnownKeysOnly<T, U> = {
|
|
265
|
+
[K in keyof T]: K extends keyof U ? T[K] : never;
|
|
266
|
+
};
|
|
267
|
+
|
|
268
|
+
export type IsAny<T> = 0 extends (1 & T) ? true : false;
|
|
269
|
+
|
|
270
|
+
/** @internal */
|
|
271
|
+
export function getColumnNameAndConfig<
|
|
272
|
+
TConfig extends Record<string, any> | undefined,
|
|
273
|
+
>(a: string | TConfig | undefined, b: TConfig | undefined) {
|
|
274
|
+
return {
|
|
275
|
+
name: typeof a === 'string' && a.length > 0 ? a : '' as string,
|
|
276
|
+
config: typeof a === 'object' ? a : b as TConfig,
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
export type IfNotImported<T, Y, N> = unknown extends T ? Y : N;
|
|
281
|
+
|
|
282
|
+
export type ImportTypeError<TPackageName extends string> =
|
|
283
|
+
`Please install \`${TPackageName}\` to allow Drizzle ORM to connect to the database`;
|
|
284
|
+
|
|
285
|
+
export type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Keys extends any
|
|
286
|
+
? Required<Pick<T, Keys>> & Partial<Omit<T, Keys>>
|
|
287
|
+
: never;
|
|
288
|
+
|
|
289
|
+
type ExpectedConfigShape = {
|
|
290
|
+
logger?: boolean | {
|
|
291
|
+
logQuery(query: string, params: unknown[]): void;
|
|
292
|
+
};
|
|
293
|
+
schema?: Record<string, never>;
|
|
294
|
+
casing?: 'snake_case' | 'camelCase';
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
// If this errors, you must update config shape checker function with new config specs
|
|
298
|
+
const _: DrizzleConfig = {} as ExpectedConfigShape;
|
|
299
|
+
const __: ExpectedConfigShape = {} as DrizzleConfig;
|
|
300
|
+
|
|
301
|
+
export function isConfig(data: any): boolean {
|
|
302
|
+
if (typeof data !== 'object' || data === null) return false;
|
|
303
|
+
|
|
304
|
+
if (data.constructor.name !== 'Object') return false;
|
|
305
|
+
|
|
306
|
+
if ('logger' in data) {
|
|
307
|
+
const type = typeof data['logger'];
|
|
308
|
+
if (
|
|
309
|
+
type !== 'boolean' && (type !== 'object' || typeof data['logger']['logQuery'] !== 'function')
|
|
310
|
+
&& type !== 'undefined'
|
|
311
|
+
) return false;
|
|
312
|
+
|
|
313
|
+
return true;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
if ('schema' in data) {
|
|
317
|
+
const type = typeof data['schema'];
|
|
318
|
+
if (type !== 'object' && type !== 'undefined') return false;
|
|
319
|
+
|
|
320
|
+
return true;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
if ('casing' in data) {
|
|
324
|
+
const type = typeof data['casing'];
|
|
325
|
+
if (type !== 'string' && type !== 'undefined') return false;
|
|
326
|
+
|
|
327
|
+
return true;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
if ('mode' in data) {
|
|
331
|
+
if (data['mode'] !== 'default' || data['mode'] !== 'planetscale' || data['mode'] !== undefined) return false;
|
|
332
|
+
|
|
333
|
+
return true;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
if ('connection' in data) {
|
|
337
|
+
const type = typeof data['connection'];
|
|
338
|
+
if (type !== 'string' && type !== 'object' && type !== 'undefined') return false;
|
|
339
|
+
|
|
340
|
+
return true;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
if ('client' in data) {
|
|
344
|
+
const type = typeof data['client'];
|
|
345
|
+
if (type !== 'object' && type !== 'function' && type !== 'undefined') return false;
|
|
346
|
+
|
|
347
|
+
return true;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
if (Object.keys(data).length === 0) return true;
|
|
351
|
+
|
|
352
|
+
return false;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
export type NeonAuthToken = string | (() => string | Promise<string>);
|
|
356
|
+
|
|
357
|
+
export const textDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const ViewBaseConfig = Symbol.for('drizzle:ViewBaseConfig');
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from 'zod/v4'
|
|
2
|
+
|
|
3
|
+
export function branded<T extends z.ZodType, B extends string>(
|
|
4
|
+
schema: T,
|
|
5
|
+
_brand: B,
|
|
6
|
+
refine?: (value: z.infer<T>) => boolean,
|
|
7
|
+
message?: string,
|
|
8
|
+
) {
|
|
9
|
+
const refined = refine
|
|
10
|
+
? schema.refine(refine, { message: message ?? `Invalid ${_brand}` })
|
|
11
|
+
: schema
|
|
12
|
+
return refined.brand<B>()
|
|
13
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Auto-generated by scaffold-namespace — do not edit re-export lines
|
|
2
|
+
// Run: node scripts/scaffold-namespace.js generate manifests/zod--v4.json
|
|
3
|
+
// Manual symbols are not included — they live in separate files.
|
|
4
|
+
|
|
5
|
+
export type { catch } from 'zod/v4'
|
|
6
|
+
export { _default, check, codec, describe, discriminatedUnion, exactOptional, intersection, invertCodec, keyof, looseObject, looseRecord, meta, nonoptional, nullable, nullish, optional, partialRecord, pipe, prefault, preprocess, readonly, refine, strictObject, superRefine, templateLiteral, transform, union, xor } from 'zod/v4'
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Auto-generated by scaffold-namespace — do not edit re-export lines
|
|
2
|
+
// Run: node scripts/scaffold-namespace.js generate manifests/zod--v4.json
|
|
3
|
+
// Manual symbols are not included — they live in separate files.
|
|
4
|
+
|
|
5
|
+
export { decode, decodeAsync, encode, encodeAsync, safeDecode, safeDecodeAsync, safeEncode, safeEncodeAsync } from 'zod/v4'
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Auto-generated by scaffold-namespace — do not edit re-export lines
|
|
2
|
+
// Run: node scripts/scaffold-namespace.js generate manifests/zod--v4.json
|
|
3
|
+
// Manual symbols are not included — they live in separate files.
|
|
4
|
+
|
|
5
|
+
export type { flattenError, formatError, prettifyError, treeifyError } from 'zod/v4'
|
|
6
|
+
export { getErrorMap, setErrorMap } from 'zod/v4'
|