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,232 @@
|
|
|
1
|
+
import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '../../column-builder.js';
|
|
2
|
+
import type { ColumnBaseConfig } from '../../column.js';
|
|
3
|
+
import { entityKind } from '../../entity.js';
|
|
4
|
+
import type { AnyPgTable } from '../table.js';
|
|
5
|
+
import type { SQL } from '../../sql/sql.js';
|
|
6
|
+
import { type Equal, getColumnNameAndConfig } from '../../utils.js';
|
|
7
|
+
import { PgColumn, PgColumnBuilder } from './common.js';
|
|
8
|
+
|
|
9
|
+
export type ConvertCustomConfig<TName extends string, T extends Partial<CustomTypeValues>> =
|
|
10
|
+
& {
|
|
11
|
+
name: TName;
|
|
12
|
+
dataType: 'custom';
|
|
13
|
+
columnType: 'PgCustomColumn';
|
|
14
|
+
data: T['data'];
|
|
15
|
+
driverParam: T['driverData'];
|
|
16
|
+
enumValues: undefined;
|
|
17
|
+
}
|
|
18
|
+
& (T['notNull'] extends true ? { notNull: true } : {})
|
|
19
|
+
& (T['default'] extends true ? { hasDefault: true } : {});
|
|
20
|
+
|
|
21
|
+
export interface PgCustomColumnInnerConfig {
|
|
22
|
+
customTypeValues: CustomTypeValues;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export class PgCustomColumnBuilder<T extends ColumnBuilderBaseConfig<'custom', 'PgCustomColumn'>>
|
|
26
|
+
extends PgColumnBuilder<
|
|
27
|
+
T,
|
|
28
|
+
{
|
|
29
|
+
fieldConfig: CustomTypeValues['config'];
|
|
30
|
+
customTypeParams: CustomTypeParams<any>;
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
pgColumnBuilderBrand: 'PgCustomColumnBuilderBrand';
|
|
34
|
+
}
|
|
35
|
+
>
|
|
36
|
+
{
|
|
37
|
+
static override readonly [entityKind]: string = 'PgCustomColumnBuilder';
|
|
38
|
+
|
|
39
|
+
constructor(
|
|
40
|
+
name: T['name'],
|
|
41
|
+
fieldConfig: CustomTypeValues['config'],
|
|
42
|
+
customTypeParams: CustomTypeParams<any>,
|
|
43
|
+
) {
|
|
44
|
+
super(name, 'custom', 'PgCustomColumn');
|
|
45
|
+
this.config.fieldConfig = fieldConfig;
|
|
46
|
+
this.config.customTypeParams = customTypeParams;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** @internal */
|
|
50
|
+
build<TTableName extends string>(
|
|
51
|
+
table: AnyPgTable<{ name: TTableName }>,
|
|
52
|
+
): PgCustomColumn<MakeColumnConfig<T, TTableName>> {
|
|
53
|
+
return new PgCustomColumn<MakeColumnConfig<T, TTableName>>(
|
|
54
|
+
table,
|
|
55
|
+
this.config as ColumnBuilderRuntimeConfig<any, any>,
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export class PgCustomColumn<T extends ColumnBaseConfig<'custom', 'PgCustomColumn'>> extends PgColumn<T> {
|
|
61
|
+
static override readonly [entityKind]: string = 'PgCustomColumn';
|
|
62
|
+
|
|
63
|
+
private sqlName: string;
|
|
64
|
+
private mapTo?: ((value: T['data']) => T['driverParam']) | undefined;
|
|
65
|
+
private mapFrom?: ((value: T['driverParam']) => T['data']) | undefined;
|
|
66
|
+
|
|
67
|
+
constructor(
|
|
68
|
+
table: AnyPgTable<{ name: T['tableName'] }>,
|
|
69
|
+
config: PgCustomColumnBuilder<T>['config'],
|
|
70
|
+
) {
|
|
71
|
+
super(table, config);
|
|
72
|
+
this.sqlName = config.customTypeParams.dataType(config.fieldConfig);
|
|
73
|
+
this.mapTo = config.customTypeParams.toDriver;
|
|
74
|
+
this.mapFrom = config.customTypeParams.fromDriver;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
getSQLType(): string {
|
|
78
|
+
return this.sqlName;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
override mapFromDriverValue(value: T['driverParam']): T['data'] {
|
|
82
|
+
return typeof this.mapFrom === 'function' ? this.mapFrom(value) : value as T['data'];
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
override mapToDriverValue(value: T['data']): T['driverParam'] {
|
|
86
|
+
return typeof this.mapTo === 'function' ? this.mapTo(value) : value as T['data'];
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export type CustomTypeValues = {
|
|
91
|
+
/**
|
|
92
|
+
* Required type for custom column, that will infer proper type model
|
|
93
|
+
*
|
|
94
|
+
* Examples:
|
|
95
|
+
*
|
|
96
|
+
* If you want your column to be `string` type after selecting/or on inserting - use `data: string`. Like `text`, `varchar`
|
|
97
|
+
*
|
|
98
|
+
* If you want your column to be `number` type after selecting/or on inserting - use `data: number`. Like `integer`
|
|
99
|
+
*/
|
|
100
|
+
data: unknown;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Type helper, that represents what type database driver is accepting for specific database data type
|
|
104
|
+
*/
|
|
105
|
+
driverData?: unknown;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* What config type should be used for {@link CustomTypeParams} `dataType` generation
|
|
109
|
+
*/
|
|
110
|
+
config?: Record<string, any>;
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Whether the config argument should be required or not
|
|
114
|
+
* @default false
|
|
115
|
+
*/
|
|
116
|
+
configRequired?: boolean;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* If your custom data type should be notNull by default you can use `notNull: true`
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* const customSerial = customType<{ data: number, notNull: true, default: true }>({
|
|
123
|
+
* dataType() {
|
|
124
|
+
* return 'serial';
|
|
125
|
+
* },
|
|
126
|
+
* });
|
|
127
|
+
*/
|
|
128
|
+
notNull?: boolean;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* If your custom data type has default you can use `default: true`
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* const customSerial = customType<{ data: number, notNull: true, default: true }>({
|
|
135
|
+
* dataType() {
|
|
136
|
+
* return 'serial';
|
|
137
|
+
* },
|
|
138
|
+
* });
|
|
139
|
+
*/
|
|
140
|
+
default?: boolean;
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
export interface CustomTypeParams<T extends CustomTypeValues> {
|
|
144
|
+
/**
|
|
145
|
+
* Database data type string representation, that is used for migrations
|
|
146
|
+
* @example
|
|
147
|
+
* ```
|
|
148
|
+
* `jsonb`, `text`
|
|
149
|
+
* ```
|
|
150
|
+
*
|
|
151
|
+
* If database data type needs additional params you can use them from `config` param
|
|
152
|
+
* @example
|
|
153
|
+
* ```
|
|
154
|
+
* `varchar(256)`, `numeric(2,3)`
|
|
155
|
+
* ```
|
|
156
|
+
*
|
|
157
|
+
* To make `config` be of specific type please use config generic in {@link CustomTypeValues}
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* Usage example
|
|
161
|
+
* ```
|
|
162
|
+
* dataType() {
|
|
163
|
+
* return 'boolean';
|
|
164
|
+
* },
|
|
165
|
+
* ```
|
|
166
|
+
* Or
|
|
167
|
+
* ```
|
|
168
|
+
* dataType(config) {
|
|
169
|
+
* return typeof config.length !== 'undefined' ? `varchar(${config.length})` : `varchar`;
|
|
170
|
+
* }
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
dataType: (config: T['config'] | (Equal<T['configRequired'], true> extends true ? never : undefined)) => string;
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Optional mapping function, between user input and driver
|
|
177
|
+
* @example
|
|
178
|
+
* For example, when using jsonb we need to map JS/TS object to string before writing to database
|
|
179
|
+
* ```
|
|
180
|
+
* toDriver(value: TData): string {
|
|
181
|
+
* return JSON.stringify(value);
|
|
182
|
+
* }
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
toDriver?: (value: T['data']) => T['driverData'] | SQL;
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Optional mapping function, that is responsible for data mapping from database to JS/TS code
|
|
189
|
+
* @example
|
|
190
|
+
* For example, when using timestamp we need to map string Date representation to JS Date
|
|
191
|
+
* ```
|
|
192
|
+
* fromDriver(value: string): Date {
|
|
193
|
+
* return new Date(value);
|
|
194
|
+
* },
|
|
195
|
+
* ```
|
|
196
|
+
*/
|
|
197
|
+
fromDriver?: (value: T['driverData']) => T['data'];
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Custom pg database data type generator
|
|
202
|
+
*/
|
|
203
|
+
export function customType<T extends CustomTypeValues = CustomTypeValues>(
|
|
204
|
+
customTypeParams: CustomTypeParams<T>,
|
|
205
|
+
): Equal<T['configRequired'], true> extends true ? {
|
|
206
|
+
<TConfig extends Record<string, any> & T['config']>(
|
|
207
|
+
fieldConfig: TConfig,
|
|
208
|
+
): PgCustomColumnBuilder<ConvertCustomConfig<'', T>>;
|
|
209
|
+
<TName extends string>(
|
|
210
|
+
dbName: TName,
|
|
211
|
+
fieldConfig: T['config'],
|
|
212
|
+
): PgCustomColumnBuilder<ConvertCustomConfig<TName, T>>;
|
|
213
|
+
}
|
|
214
|
+
: {
|
|
215
|
+
(): PgCustomColumnBuilder<ConvertCustomConfig<'', T>>;
|
|
216
|
+
<TConfig extends Record<string, any> & T['config']>(
|
|
217
|
+
fieldConfig?: TConfig,
|
|
218
|
+
): PgCustomColumnBuilder<ConvertCustomConfig<'', T>>;
|
|
219
|
+
<TName extends string>(
|
|
220
|
+
dbName: TName,
|
|
221
|
+
fieldConfig?: T['config'],
|
|
222
|
+
): PgCustomColumnBuilder<ConvertCustomConfig<TName, T>>;
|
|
223
|
+
}
|
|
224
|
+
{
|
|
225
|
+
return <TName extends string>(
|
|
226
|
+
a?: TName | T['config'],
|
|
227
|
+
b?: T['config'],
|
|
228
|
+
): PgCustomColumnBuilder<ConvertCustomConfig<TName, T>> => {
|
|
229
|
+
const { name, config } = getColumnNameAndConfig<T['config']>(a, b);
|
|
230
|
+
return new PgCustomColumnBuilder(name as ConvertCustomConfig<TName, T>['name'], config, customTypeParams);
|
|
231
|
+
};
|
|
232
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ColumnBuilderBaseConfig, ColumnDataType } from '../../column-builder.js';
|
|
2
|
+
import { entityKind } from '../../entity.js';
|
|
3
|
+
import { sql } from '../../sql/sql.js';
|
|
4
|
+
import { PgColumnBuilder } from './common.js';
|
|
5
|
+
|
|
6
|
+
export abstract class PgDateColumnBaseBuilder<
|
|
7
|
+
T extends ColumnBuilderBaseConfig<ColumnDataType, string>,
|
|
8
|
+
TRuntimeConfig extends object = object,
|
|
9
|
+
> extends PgColumnBuilder<T, TRuntimeConfig> {
|
|
10
|
+
static override readonly [entityKind]: string = 'PgDateColumnBaseBuilder';
|
|
11
|
+
|
|
12
|
+
defaultNow() {
|
|
13
|
+
return this.default(sql`now()`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '../../column-builder.js';
|
|
2
|
+
import type { ColumnBaseConfig } from '../../column.js';
|
|
3
|
+
import { entityKind } from '../../entity.js';
|
|
4
|
+
import type { AnyPgTable } from '../table.js';
|
|
5
|
+
import { type Equal, getColumnNameAndConfig } from '../../utils.js';
|
|
6
|
+
import { PgColumn } from './common.js';
|
|
7
|
+
import { PgDateColumnBaseBuilder } from './date.common.js';
|
|
8
|
+
|
|
9
|
+
export type PgDateBuilderInitial<TName extends string> = PgDateBuilder<{
|
|
10
|
+
name: TName;
|
|
11
|
+
dataType: 'date';
|
|
12
|
+
columnType: 'PgDate';
|
|
13
|
+
data: Date;
|
|
14
|
+
driverParam: string;
|
|
15
|
+
enumValues: undefined;
|
|
16
|
+
}>;
|
|
17
|
+
|
|
18
|
+
export class PgDateBuilder<T extends ColumnBuilderBaseConfig<'date', 'PgDate'>> extends PgDateColumnBaseBuilder<T> {
|
|
19
|
+
static override readonly [entityKind]: string = 'PgDateBuilder';
|
|
20
|
+
|
|
21
|
+
constructor(name: T['name']) {
|
|
22
|
+
super(name, 'date', 'PgDate');
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** @internal */
|
|
26
|
+
override build<TTableName extends string>(
|
|
27
|
+
table: AnyPgTable<{ name: TTableName }>,
|
|
28
|
+
): PgDate<MakeColumnConfig<T, TTableName>> {
|
|
29
|
+
return new PgDate<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export class PgDate<T extends ColumnBaseConfig<'date', 'PgDate'>> extends PgColumn<T> {
|
|
34
|
+
static override readonly [entityKind]: string = 'PgDate';
|
|
35
|
+
|
|
36
|
+
getSQLType(): string {
|
|
37
|
+
return 'date';
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
override mapFromDriverValue(value: string | Date): Date {
|
|
41
|
+
if (typeof value === 'string') return new Date(value);
|
|
42
|
+
|
|
43
|
+
return value;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
override mapToDriverValue(value: Date): string {
|
|
47
|
+
return value.toISOString();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export type PgDateStringBuilderInitial<TName extends string> = PgDateStringBuilder<{
|
|
52
|
+
name: TName;
|
|
53
|
+
dataType: 'string';
|
|
54
|
+
columnType: 'PgDateString';
|
|
55
|
+
data: string;
|
|
56
|
+
driverParam: string;
|
|
57
|
+
enumValues: undefined;
|
|
58
|
+
}>;
|
|
59
|
+
|
|
60
|
+
export class PgDateStringBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgDateString'>>
|
|
61
|
+
extends PgDateColumnBaseBuilder<T>
|
|
62
|
+
{
|
|
63
|
+
static override readonly [entityKind]: string = 'PgDateStringBuilder';
|
|
64
|
+
|
|
65
|
+
constructor(name: T['name']) {
|
|
66
|
+
super(name, 'string', 'PgDateString');
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** @internal */
|
|
70
|
+
override build<TTableName extends string>(
|
|
71
|
+
table: AnyPgTable<{ name: TTableName }>,
|
|
72
|
+
): PgDateString<MakeColumnConfig<T, TTableName>> {
|
|
73
|
+
return new PgDateString<MakeColumnConfig<T, TTableName>>(
|
|
74
|
+
table,
|
|
75
|
+
this.config as ColumnBuilderRuntimeConfig<any, any>,
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export class PgDateString<T extends ColumnBaseConfig<'string', 'PgDateString'>> extends PgColumn<T> {
|
|
81
|
+
static override readonly [entityKind]: string = 'PgDateString';
|
|
82
|
+
|
|
83
|
+
getSQLType(): string {
|
|
84
|
+
return 'date';
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
override mapFromDriverValue(value: Date | string): string {
|
|
88
|
+
if (typeof value === 'string') return value;
|
|
89
|
+
|
|
90
|
+
return value.toISOString().slice(0, -14);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export interface PgDateConfig<T extends 'date' | 'string' = 'date' | 'string'> {
|
|
95
|
+
mode: T;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export function date(): PgDateStringBuilderInitial<''>;
|
|
99
|
+
export function date<TMode extends PgDateConfig['mode'] & {}>(
|
|
100
|
+
config?: PgDateConfig<TMode>,
|
|
101
|
+
): Equal<TMode, 'date'> extends true ? PgDateBuilderInitial<''> : PgDateStringBuilderInitial<''>;
|
|
102
|
+
export function date<TName extends string, TMode extends PgDateConfig['mode'] & {}>(
|
|
103
|
+
name: TName,
|
|
104
|
+
config?: PgDateConfig<TMode>,
|
|
105
|
+
): Equal<TMode, 'date'> extends true ? PgDateBuilderInitial<TName> : PgDateStringBuilderInitial<TName>;
|
|
106
|
+
export function date(a?: string | PgDateConfig, b?: PgDateConfig) {
|
|
107
|
+
const { name, config } = getColumnNameAndConfig<PgDateConfig>(a, b);
|
|
108
|
+
if (config?.mode === 'date') {
|
|
109
|
+
return new PgDateBuilder(name);
|
|
110
|
+
}
|
|
111
|
+
return new PgDateStringBuilder(name);
|
|
112
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '../../column-builder.js';
|
|
2
|
+
import type { ColumnBaseConfig } from '../../column.js';
|
|
3
|
+
import { entityKind } from '../../entity.js';
|
|
4
|
+
import type { AnyPgTable } from '../table.js';
|
|
5
|
+
import { PgColumn, PgColumnBuilder } from './common.js';
|
|
6
|
+
|
|
7
|
+
export type PgDoublePrecisionBuilderInitial<TName extends string> = PgDoublePrecisionBuilder<{
|
|
8
|
+
name: TName;
|
|
9
|
+
dataType: 'number';
|
|
10
|
+
columnType: 'PgDoublePrecision';
|
|
11
|
+
data: number;
|
|
12
|
+
driverParam: string | number;
|
|
13
|
+
enumValues: undefined;
|
|
14
|
+
}>;
|
|
15
|
+
|
|
16
|
+
export class PgDoublePrecisionBuilder<T extends ColumnBuilderBaseConfig<'number', 'PgDoublePrecision'>>
|
|
17
|
+
extends PgColumnBuilder<T>
|
|
18
|
+
{
|
|
19
|
+
static override readonly [entityKind]: string = 'PgDoublePrecisionBuilder';
|
|
20
|
+
|
|
21
|
+
constructor(name: T['name']) {
|
|
22
|
+
super(name, 'number', 'PgDoublePrecision');
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** @internal */
|
|
26
|
+
override build<TTableName extends string>(
|
|
27
|
+
table: AnyPgTable<{ name: TTableName }>,
|
|
28
|
+
): PgDoublePrecision<MakeColumnConfig<T, TTableName>> {
|
|
29
|
+
return new PgDoublePrecision<MakeColumnConfig<T, TTableName>>(
|
|
30
|
+
table,
|
|
31
|
+
this.config as ColumnBuilderRuntimeConfig<any, any>,
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export class PgDoublePrecision<T extends ColumnBaseConfig<'number', 'PgDoublePrecision'>> extends PgColumn<T> {
|
|
37
|
+
static override readonly [entityKind]: string = 'PgDoublePrecision';
|
|
38
|
+
|
|
39
|
+
getSQLType(): string {
|
|
40
|
+
return 'double precision';
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
override mapFromDriverValue(value: string | number): number {
|
|
44
|
+
if (typeof value === 'string') {
|
|
45
|
+
return Number.parseFloat(value);
|
|
46
|
+
}
|
|
47
|
+
return value;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export function doublePrecision(): PgDoublePrecisionBuilderInitial<''>;
|
|
52
|
+
export function doublePrecision<TName extends string>(name: TName): PgDoublePrecisionBuilderInitial<TName>;
|
|
53
|
+
export function doublePrecision(name?: string) {
|
|
54
|
+
return new PgDoublePrecisionBuilder(name ?? '');
|
|
55
|
+
}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '../../column-builder.js';
|
|
2
|
+
import type { ColumnBaseConfig } from '../../column.js';
|
|
3
|
+
import { entityKind } from '../../entity.js';
|
|
4
|
+
import type { AnyPgTable } from '../table.js';
|
|
5
|
+
import type { NonArray, Writable } from '../../utils.js';
|
|
6
|
+
import { PgColumn, PgColumnBuilder } from './common.js';
|
|
7
|
+
|
|
8
|
+
// Enum as ts enum
|
|
9
|
+
|
|
10
|
+
export type PgEnumObjectColumnBuilderInitial<TName extends string, TValues extends object> = PgEnumObjectColumnBuilder<{
|
|
11
|
+
name: TName;
|
|
12
|
+
dataType: 'string';
|
|
13
|
+
columnType: 'PgEnumObjectColumn';
|
|
14
|
+
data: TValues[keyof TValues];
|
|
15
|
+
enumValues: string[];
|
|
16
|
+
driverParam: string;
|
|
17
|
+
}>;
|
|
18
|
+
|
|
19
|
+
export interface PgEnumObject<TValues extends object> {
|
|
20
|
+
(): PgEnumObjectColumnBuilderInitial<'', TValues>;
|
|
21
|
+
<TName extends string>(name: TName): PgEnumObjectColumnBuilderInitial<TName, TValues>;
|
|
22
|
+
<TName extends string>(name?: TName): PgEnumObjectColumnBuilderInitial<TName, TValues>;
|
|
23
|
+
|
|
24
|
+
readonly enumName: string;
|
|
25
|
+
readonly enumValues: string[];
|
|
26
|
+
readonly schema: string | undefined;
|
|
27
|
+
/** @internal */
|
|
28
|
+
[isPgEnumSym]: true;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export class PgEnumObjectColumnBuilder<
|
|
32
|
+
T extends ColumnBuilderBaseConfig<'string', 'PgEnumObjectColumn'> & { enumValues: string[] },
|
|
33
|
+
> extends PgColumnBuilder<T, { enum: PgEnumObject<any> }> {
|
|
34
|
+
static override readonly [entityKind]: string = 'PgEnumObjectColumnBuilder';
|
|
35
|
+
|
|
36
|
+
constructor(name: T['name'], enumInstance: PgEnumObject<any>) {
|
|
37
|
+
super(name, 'string', 'PgEnumObjectColumn');
|
|
38
|
+
this.config.enum = enumInstance;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** @internal */
|
|
42
|
+
override build<TTableName extends string>(
|
|
43
|
+
table: AnyPgTable<{ name: TTableName }>,
|
|
44
|
+
): PgEnumObjectColumn<MakeColumnConfig<T, TTableName>> {
|
|
45
|
+
return new PgEnumObjectColumn<MakeColumnConfig<T, TTableName>>(
|
|
46
|
+
table,
|
|
47
|
+
this.config as ColumnBuilderRuntimeConfig<any, any>,
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export class PgEnumObjectColumn<T extends ColumnBaseConfig<'string', 'PgEnumObjectColumn'> & { enumValues: object }>
|
|
53
|
+
extends PgColumn<T, { enum: PgEnumObject<object> }>
|
|
54
|
+
{
|
|
55
|
+
static override readonly [entityKind]: string = 'PgEnumObjectColumn';
|
|
56
|
+
|
|
57
|
+
readonly enum;
|
|
58
|
+
override readonly enumValues = this.config.enum.enumValues;
|
|
59
|
+
|
|
60
|
+
constructor(
|
|
61
|
+
table: AnyPgTable<{ name: T['tableName'] }>,
|
|
62
|
+
config: PgEnumObjectColumnBuilder<T>['config'],
|
|
63
|
+
) {
|
|
64
|
+
super(table, config);
|
|
65
|
+
this.enum = config.enum;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
getSQLType(): string {
|
|
69
|
+
return this.enum.enumName;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Enum as string union
|
|
74
|
+
|
|
75
|
+
export type PgEnumColumnBuilderInitial<TName extends string, TValues extends [string, ...string[]]> =
|
|
76
|
+
PgEnumColumnBuilder<{
|
|
77
|
+
name: TName;
|
|
78
|
+
dataType: 'string';
|
|
79
|
+
columnType: 'PgEnumColumn';
|
|
80
|
+
data: TValues[number];
|
|
81
|
+
enumValues: TValues;
|
|
82
|
+
driverParam: string;
|
|
83
|
+
}>;
|
|
84
|
+
|
|
85
|
+
const isPgEnumSym = Symbol.for('drizzle:isPgEnum');
|
|
86
|
+
export interface PgEnum<TValues extends [string, ...string[]]> {
|
|
87
|
+
(): PgEnumColumnBuilderInitial<'', TValues>;
|
|
88
|
+
<TName extends string>(name: TName): PgEnumColumnBuilderInitial<TName, TValues>;
|
|
89
|
+
<TName extends string>(name?: TName): PgEnumColumnBuilderInitial<TName, TValues>;
|
|
90
|
+
|
|
91
|
+
readonly enumName: string;
|
|
92
|
+
readonly enumValues: TValues;
|
|
93
|
+
readonly schema: string | undefined;
|
|
94
|
+
/** @internal */
|
|
95
|
+
[isPgEnumSym]: true;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export function isPgEnum(obj: unknown): obj is PgEnum<[string, ...string[]]> {
|
|
99
|
+
return !!obj && typeof obj === 'function' && isPgEnumSym in obj && obj[isPgEnumSym] === true;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export class PgEnumColumnBuilder<
|
|
103
|
+
T extends ColumnBuilderBaseConfig<'string', 'PgEnumColumn'> & { enumValues: [string, ...string[]] },
|
|
104
|
+
> extends PgColumnBuilder<T, { enum: PgEnum<T['enumValues']> }> {
|
|
105
|
+
static override readonly [entityKind]: string = 'PgEnumColumnBuilder';
|
|
106
|
+
|
|
107
|
+
constructor(name: T['name'], enumInstance: PgEnum<T['enumValues']>) {
|
|
108
|
+
super(name, 'string', 'PgEnumColumn');
|
|
109
|
+
this.config.enum = enumInstance;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/** @internal */
|
|
113
|
+
override build<TTableName extends string>(
|
|
114
|
+
table: AnyPgTable<{ name: TTableName }>,
|
|
115
|
+
): PgEnumColumn<MakeColumnConfig<T, TTableName>> {
|
|
116
|
+
return new PgEnumColumn<MakeColumnConfig<T, TTableName>>(
|
|
117
|
+
table,
|
|
118
|
+
this.config as ColumnBuilderRuntimeConfig<any, any>,
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export class PgEnumColumn<T extends ColumnBaseConfig<'string', 'PgEnumColumn'> & { enumValues: [string, ...string[]] }>
|
|
124
|
+
extends PgColumn<T, { enum: PgEnum<T['enumValues']> }>
|
|
125
|
+
{
|
|
126
|
+
static override readonly [entityKind]: string = 'PgEnumColumn';
|
|
127
|
+
|
|
128
|
+
readonly enum = this.config.enum;
|
|
129
|
+
override readonly enumValues = this.config.enum.enumValues;
|
|
130
|
+
|
|
131
|
+
constructor(
|
|
132
|
+
table: AnyPgTable<{ name: T['tableName'] }>,
|
|
133
|
+
config: PgEnumColumnBuilder<T>['config'],
|
|
134
|
+
) {
|
|
135
|
+
super(table, config);
|
|
136
|
+
this.enum = config.enum;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
getSQLType(): string {
|
|
140
|
+
return this.enum.enumName;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export function pgEnum<U extends string, T extends Readonly<[U, ...U[]]>>(
|
|
145
|
+
enumName: string,
|
|
146
|
+
values: T | Writable<T>,
|
|
147
|
+
): PgEnum<Writable<T>>;
|
|
148
|
+
|
|
149
|
+
export function pgEnum<E extends Record<string, string>>(
|
|
150
|
+
enumName: string,
|
|
151
|
+
enumObj: NonArray<E>,
|
|
152
|
+
): PgEnumObject<E>;
|
|
153
|
+
|
|
154
|
+
export function pgEnum(
|
|
155
|
+
enumName: any,
|
|
156
|
+
input: any,
|
|
157
|
+
): any {
|
|
158
|
+
return Array.isArray(input)
|
|
159
|
+
? pgEnumWithSchema(enumName, [...input] as [string, ...string[]], undefined)
|
|
160
|
+
: pgEnumObjectWithSchema(enumName, input, undefined);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/** @internal */
|
|
164
|
+
export function pgEnumWithSchema<U extends string, T extends Readonly<[U, ...U[]]>>(
|
|
165
|
+
enumName: string,
|
|
166
|
+
values: T | Writable<T>,
|
|
167
|
+
schema?: string,
|
|
168
|
+
): PgEnum<Writable<T>> {
|
|
169
|
+
const enumInstance: PgEnum<Writable<T>> = Object.assign(
|
|
170
|
+
<TName extends string>(name?: TName): PgEnumColumnBuilderInitial<TName, Writable<T>> =>
|
|
171
|
+
new PgEnumColumnBuilder(name ?? '' as TName, enumInstance),
|
|
172
|
+
{
|
|
173
|
+
enumName,
|
|
174
|
+
enumValues: values,
|
|
175
|
+
schema,
|
|
176
|
+
[isPgEnumSym]: true,
|
|
177
|
+
} as const,
|
|
178
|
+
);
|
|
179
|
+
|
|
180
|
+
return enumInstance;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/** @internal */
|
|
184
|
+
export function pgEnumObjectWithSchema<T extends object>(
|
|
185
|
+
enumName: string,
|
|
186
|
+
values: T,
|
|
187
|
+
schema?: string,
|
|
188
|
+
): PgEnumObject<T> {
|
|
189
|
+
const enumInstance: PgEnumObject<T> = Object.assign(
|
|
190
|
+
<TName extends string>(name?: TName): PgEnumObjectColumnBuilderInitial<TName, T> =>
|
|
191
|
+
new PgEnumObjectColumnBuilder(name ?? '' as TName, enumInstance),
|
|
192
|
+
{
|
|
193
|
+
enumName,
|
|
194
|
+
enumValues: Object.values(values),
|
|
195
|
+
schema,
|
|
196
|
+
[isPgEnumSym]: true,
|
|
197
|
+
} as const,
|
|
198
|
+
);
|
|
199
|
+
|
|
200
|
+
return enumInstance;
|
|
201
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export * from './bigint.js';
|
|
2
|
+
export * from './bigserial.js';
|
|
3
|
+
export * from './boolean.js';
|
|
4
|
+
export * from './char.js';
|
|
5
|
+
export * from './cidr.js';
|
|
6
|
+
export * from './common.js';
|
|
7
|
+
export * from './custom.js';
|
|
8
|
+
export * from './date.js';
|
|
9
|
+
export * from './double-precision.js';
|
|
10
|
+
export * from './enum.js';
|
|
11
|
+
export * from './inet.js';
|
|
12
|
+
export * from './int.common.js';
|
|
13
|
+
export * from './integer.js';
|
|
14
|
+
export * from './interval.js';
|
|
15
|
+
export * from './json.js';
|
|
16
|
+
export * from './jsonb.js';
|
|
17
|
+
export * from './line.js';
|
|
18
|
+
export * from './macaddr.js';
|
|
19
|
+
export * from './macaddr8.js';
|
|
20
|
+
export * from './numeric.js';
|
|
21
|
+
export * from './point.js';
|
|
22
|
+
export * from './postgis_extension/geometry.js';
|
|
23
|
+
export * from './real.js';
|
|
24
|
+
export * from './serial.js';
|
|
25
|
+
export * from './smallint.js';
|
|
26
|
+
export * from './smallserial.js';
|
|
27
|
+
export * from './text.js';
|
|
28
|
+
export * from './time.js';
|
|
29
|
+
export * from './timestamp.js';
|
|
30
|
+
export * from './uuid.js';
|
|
31
|
+
export * from './varchar.js';
|
|
32
|
+
export * from './vector_extension/bit.js';
|
|
33
|
+
export * from './vector_extension/halfvec.js';
|
|
34
|
+
export * from './vector_extension/sparsevec.js';
|
|
35
|
+
export * from './vector_extension/vector.js';
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '../../column-builder.js';
|
|
2
|
+
import type { ColumnBaseConfig } from '../../column.js';
|
|
3
|
+
import { entityKind } from '../../entity.js';
|
|
4
|
+
import type { AnyPgTable } from '../table.js';
|
|
5
|
+
import { PgColumn, PgColumnBuilder } from './common.js';
|
|
6
|
+
|
|
7
|
+
export type PgInetBuilderInitial<TName extends string> = PgInetBuilder<{
|
|
8
|
+
name: TName;
|
|
9
|
+
dataType: 'string';
|
|
10
|
+
columnType: 'PgInet';
|
|
11
|
+
data: string;
|
|
12
|
+
driverParam: string;
|
|
13
|
+
enumValues: undefined;
|
|
14
|
+
}>;
|
|
15
|
+
|
|
16
|
+
export class PgInetBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgInet'>> extends PgColumnBuilder<T> {
|
|
17
|
+
static override readonly [entityKind]: string = 'PgInetBuilder';
|
|
18
|
+
|
|
19
|
+
constructor(name: T['name']) {
|
|
20
|
+
super(name, 'string', 'PgInet');
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** @internal */
|
|
24
|
+
override build<TTableName extends string>(
|
|
25
|
+
table: AnyPgTable<{ name: TTableName }>,
|
|
26
|
+
): PgInet<MakeColumnConfig<T, TTableName>> {
|
|
27
|
+
return new PgInet<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export class PgInet<T extends ColumnBaseConfig<'string', 'PgInet'>> extends PgColumn<T> {
|
|
32
|
+
static override readonly [entityKind]: string = 'PgInet';
|
|
33
|
+
|
|
34
|
+
getSQLType(): string {
|
|
35
|
+
return 'inet';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function inet(): PgInetBuilderInitial<''>;
|
|
40
|
+
export function inet<TName extends string>(name: TName): PgInetBuilderInitial<TName>;
|
|
41
|
+
export function inet(name?: string) {
|
|
42
|
+
return new PgInetBuilder(name ?? '');
|
|
43
|
+
}
|