@voyant-travel/db 0.108.0
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/LICENSE +201 -0
- package/README.md +60 -0
- package/dist/aggregate-snapshots.d.ts +66 -0
- package/dist/aggregate-snapshots.d.ts.map +1 -0
- package/dist/aggregate-snapshots.js +110 -0
- package/dist/aggregate-snapshots.js.map +1 -0
- package/dist/columns/collection.d.ts +37 -0
- package/dist/columns/collection.d.ts.map +1 -0
- package/dist/columns/collection.js +44 -0
- package/dist/columns/collection.js.map +1 -0
- package/dist/columns/cruise.d.ts +26 -0
- package/dist/columns/cruise.d.ts.map +1 -0
- package/dist/columns/cruise.js +31 -0
- package/dist/columns/cruise.js.map +1 -0
- package/dist/columns/departure-sub-tables.d.ts +179 -0
- package/dist/columns/departure-sub-tables.d.ts.map +1 -0
- package/dist/columns/departure-sub-tables.js +214 -0
- package/dist/columns/departure-sub-tables.js.map +1 -0
- package/dist/columns/departure.d.ts +20 -0
- package/dist/columns/departure.d.ts.map +1 -0
- package/dist/columns/departure.js +23 -0
- package/dist/columns/departure.js.map +1 -0
- package/dist/columns/destinations.d.ts +21 -0
- package/dist/columns/destinations.d.ts.map +1 -0
- package/dist/columns/destinations.js +24 -0
- package/dist/columns/destinations.js.map +1 -0
- package/dist/columns/index.d.ts +31 -0
- package/dist/columns/index.d.ts.map +1 -0
- package/dist/columns/index.js +57 -0
- package/dist/columns/index.js.map +1 -0
- package/dist/columns/itinerary-sub-tables.d.ts +177 -0
- package/dist/columns/itinerary-sub-tables.d.ts.map +1 -0
- package/dist/columns/itinerary-sub-tables.js +122 -0
- package/dist/columns/itinerary-sub-tables.js.map +1 -0
- package/dist/columns/itinerary.d.ts +17 -0
- package/dist/columns/itinerary.d.ts.map +1 -0
- package/dist/columns/itinerary.js +20 -0
- package/dist/columns/itinerary.js.map +1 -0
- package/dist/columns/lodging.d.ts +143 -0
- package/dist/columns/lodging.d.ts.map +1 -0
- package/dist/columns/lodging.js +164 -0
- package/dist/columns/lodging.js.map +1 -0
- package/dist/columns/offers.d.ts +31 -0
- package/dist/columns/offers.d.ts.map +1 -0
- package/dist/columns/offers.js +43 -0
- package/dist/columns/offers.js.map +1 -0
- package/dist/columns/pricing.d.ts +60 -0
- package/dist/columns/pricing.d.ts.map +1 -0
- package/dist/columns/pricing.js +71 -0
- package/dist/columns/pricing.js.map +1 -0
- package/dist/columns/product-accommodation.d.ts +99 -0
- package/dist/columns/product-accommodation.d.ts.map +1 -0
- package/dist/columns/product-accommodation.js +65 -0
- package/dist/columns/product-accommodation.js.map +1 -0
- package/dist/columns/product-addons.d.ts +18 -0
- package/dist/columns/product-addons.d.ts.map +1 -0
- package/dist/columns/product-addons.js +21 -0
- package/dist/columns/product-addons.js.map +1 -0
- package/dist/columns/product-availability-states.d.ts +65 -0
- package/dist/columns/product-availability-states.d.ts.map +1 -0
- package/dist/columns/product-availability-states.js +81 -0
- package/dist/columns/product-availability-states.js.map +1 -0
- package/dist/columns/product-availability.d.ts +21 -0
- package/dist/columns/product-availability.d.ts.map +1 -0
- package/dist/columns/product-availability.js +24 -0
- package/dist/columns/product-availability.js.map +1 -0
- package/dist/columns/product-booking-rules.d.ts +45 -0
- package/dist/columns/product-booking-rules.d.ts.map +1 -0
- package/dist/columns/product-booking-rules.js +55 -0
- package/dist/columns/product-booking-rules.js.map +1 -0
- package/dist/columns/product-category-assignments.d.ts +17 -0
- package/dist/columns/product-category-assignments.d.ts.map +1 -0
- package/dist/columns/product-category-assignments.js +20 -0
- package/dist/columns/product-category-assignments.js.map +1 -0
- package/dist/columns/product-extensions.d.ts +24 -0
- package/dist/columns/product-extensions.d.ts.map +1 -0
- package/dist/columns/product-extensions.js +27 -0
- package/dist/columns/product-extensions.js.map +1 -0
- package/dist/columns/product-media.d.ts +19 -0
- package/dist/columns/product-media.d.ts.map +1 -0
- package/dist/columns/product-media.js +22 -0
- package/dist/columns/product-media.js.map +1 -0
- package/dist/columns/product-overrides.d.ts +19 -0
- package/dist/columns/product-overrides.d.ts.map +1 -0
- package/dist/columns/product-overrides.js +22 -0
- package/dist/columns/product-overrides.js.map +1 -0
- package/dist/columns/product-preferences.d.ts +51 -0
- package/dist/columns/product-preferences.d.ts.map +1 -0
- package/dist/columns/product-preferences.js +59 -0
- package/dist/columns/product-preferences.js.map +1 -0
- package/dist/columns/product-publish-settings.d.ts +18 -0
- package/dist/columns/product-publish-settings.d.ts.map +1 -0
- package/dist/columns/product-publish-settings.js +21 -0
- package/dist/columns/product-publish-settings.js.map +1 -0
- package/dist/columns/product-rate-plans.d.ts +28 -0
- package/dist/columns/product-rate-plans.d.ts.map +1 -0
- package/dist/columns/product-rate-plans.js +33 -0
- package/dist/columns/product-rate-plans.js.map +1 -0
- package/dist/columns/product-translations.d.ts +24 -0
- package/dist/columns/product-translations.d.ts.map +1 -0
- package/dist/columns/product-translations.js +27 -0
- package/dist/columns/product-translations.js.map +1 -0
- package/dist/columns/product-versions.d.ts +19 -0
- package/dist/columns/product-versions.d.ts.map +1 -0
- package/dist/columns/product-versions.js +22 -0
- package/dist/columns/product-versions.js.map +1 -0
- package/dist/columns/product-visibility.d.ts +16 -0
- package/dist/columns/product-visibility.d.ts.map +1 -0
- package/dist/columns/product-visibility.js +19 -0
- package/dist/columns/product-visibility.js.map +1 -0
- package/dist/columns/product.d.ts +56 -0
- package/dist/columns/product.d.ts.map +1 -0
- package/dist/columns/product.js +44 -0
- package/dist/columns/product.js.map +1 -0
- package/dist/columns/room.d.ts +117 -0
- package/dist/columns/room.d.ts.map +1 -0
- package/dist/columns/room.js +86 -0
- package/dist/columns/room.js.map +1 -0
- package/dist/columns/ship.d.ts +22 -0
- package/dist/columns/ship.d.ts.map +1 -0
- package/dist/columns/ship.js +25 -0
- package/dist/columns/ship.js.map +1 -0
- package/dist/columns/tags.d.ts +33 -0
- package/dist/columns/tags.d.ts.map +1 -0
- package/dist/columns/tags.js +38 -0
- package/dist/columns/tags.js.map +1 -0
- package/dist/columns/transport.d.ts +53 -0
- package/dist/columns/transport.d.ts.map +1 -0
- package/dist/columns/transport.js +62 -0
- package/dist/columns/transport.js.map +1 -0
- package/dist/connection-config.d.ts +101 -0
- package/dist/connection-config.d.ts.map +1 -0
- package/dist/connection-config.js +106 -0
- package/dist/connection-config.js.map +1 -0
- package/dist/crud.d.ts +87 -0
- package/dist/crud.d.ts.map +1 -0
- package/dist/crud.js +190 -0
- package/dist/crud.js.map +1 -0
- package/dist/helpers.d.ts +33 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +49 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +109 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +155 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +5 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/typeid-column.d.ts +75 -0
- package/dist/lib/typeid-column.d.ts.map +1 -0
- package/dist/lib/typeid-column.js +92 -0
- package/dist/lib/typeid-column.js.map +1 -0
- package/dist/lib/typeid-core.d.ts +36 -0
- package/dist/lib/typeid-core.d.ts.map +1 -0
- package/dist/lib/typeid-core.js +67 -0
- package/dist/lib/typeid-core.js.map +1 -0
- package/dist/lib/typeid-prefixes.d.ts +342 -0
- package/dist/lib/typeid-prefixes.d.ts.map +1 -0
- package/dist/lib/typeid-prefixes.js +379 -0
- package/dist/lib/typeid-prefixes.js.map +1 -0
- package/dist/lib/typeid-schemas.d.ts +206 -0
- package/dist/lib/typeid-schemas.d.ts.map +1 -0
- package/dist/lib/typeid-schemas.js +207 -0
- package/dist/lib/typeid-schemas.js.map +1 -0
- package/dist/lib/typeid-zod.d.ts +16 -0
- package/dist/lib/typeid-zod.d.ts.map +1 -0
- package/dist/lib/typeid-zod.js +29 -0
- package/dist/lib/typeid-zod.js.map +1 -0
- package/dist/lib/typeid.d.ts +2 -0
- package/dist/lib/typeid.d.ts.map +1 -0
- package/dist/lib/typeid.js +6 -0
- package/dist/lib/typeid.js.map +1 -0
- package/dist/lifecycle.d.ts +24 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +30 -0
- package/dist/lifecycle.js.map +1 -0
- package/dist/links.d.ts +22 -0
- package/dist/links.d.ts.map +1 -0
- package/dist/links.js +281 -0
- package/dist/links.js.map +1 -0
- package/dist/operators.d.ts +9 -0
- package/dist/operators.d.ts.map +1 -0
- package/dist/operators.js +9 -0
- package/dist/operators.js.map +1 -0
- package/dist/outbox.d.ts +87 -0
- package/dist/outbox.d.ts.map +1 -0
- package/dist/outbox.js +245 -0
- package/dist/outbox.js.map +1 -0
- package/dist/primitives/catalog-schemas.d.ts +101 -0
- package/dist/primitives/catalog-schemas.d.ts.map +1 -0
- package/dist/primitives/catalog-schemas.js +69 -0
- package/dist/primitives/catalog-schemas.js.map +1 -0
- package/dist/primitives/catalog.d.ts +47 -0
- package/dist/primitives/catalog.d.ts.map +1 -0
- package/dist/primitives/catalog.js +94 -0
- package/dist/primitives/catalog.js.map +1 -0
- package/dist/primitives/index.d.ts +4 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/index.js +4 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/primitives/offers.d.ts +224 -0
- package/dist/primitives/offers.d.ts.map +1 -0
- package/dist/primitives/offers.js +132 -0
- package/dist/primitives/offers.js.map +1 -0
- package/dist/queries/index.d.ts +18 -0
- package/dist/queries/index.d.ts.map +1 -0
- package/dist/queries/index.js +30 -0
- package/dist/queries/index.js.map +1 -0
- package/dist/runtime/index.d.ts +4 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +5 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/locks.d.ts +5 -0
- package/dist/runtime/locks.d.ts.map +1 -0
- package/dist/runtime/locks.js +36 -0
- package/dist/runtime/locks.js.map +1 -0
- package/dist/schema/00_ensure_schemas.d.ts +5 -0
- package/dist/schema/00_ensure_schemas.d.ts.map +1 -0
- package/dist/schema/00_ensure_schemas.js +6 -0
- package/dist/schema/00_ensure_schemas.js.map +1 -0
- package/dist/schema/aggregate-snapshots.d.ts +97 -0
- package/dist/schema/aggregate-snapshots.d.ts.map +1 -0
- package/dist/schema/aggregate-snapshots.js +27 -0
- package/dist/schema/aggregate-snapshots.js.map +1 -0
- package/dist/schema/iam/apikey.d.ts +396 -0
- package/dist/schema/iam/apikey.d.ts.map +1 -0
- package/dist/schema/iam/apikey.js +41 -0
- package/dist/schema/iam/apikey.js.map +1 -0
- package/dist/schema/iam/auth.d.ts +1026 -0
- package/dist/schema/iam/auth.d.ts.map +1 -0
- package/dist/schema/iam/auth.js +138 -0
- package/dist/schema/iam/auth.js.map +1 -0
- package/dist/schema/iam/cloud_auth.d.ts +446 -0
- package/dist/schema/iam/cloud_auth.d.ts.map +1 -0
- package/dist/schema/iam/cloud_auth.js +46 -0
- package/dist/schema/iam/cloud_auth.js.map +1 -0
- package/dist/schema/iam/index.d.ts +8 -0
- package/dist/schema/iam/index.d.ts.map +1 -0
- package/dist/schema/iam/index.js +8 -0
- package/dist/schema/iam/index.js.map +1 -0
- package/dist/schema/iam/invitations.d.ts +173 -0
- package/dist/schema/iam/invitations.d.ts.map +1 -0
- package/dist/schema/iam/invitations.js +27 -0
- package/dist/schema/iam/invitations.js.map +1 -0
- package/dist/schema/iam/kms.d.ts +53 -0
- package/dist/schema/iam/kms.d.ts.map +1 -0
- package/dist/schema/iam/kms.js +40 -0
- package/dist/schema/iam/kms.js.map +1 -0
- package/dist/schema/iam/roles.d.ts +12 -0
- package/dist/schema/iam/roles.d.ts.map +1 -0
- package/dist/schema/iam/roles.js +12 -0
- package/dist/schema/iam/roles.js.map +1 -0
- package/dist/schema/iam/user_profiles.d.ts +442 -0
- package/dist/schema/iam/user_profiles.d.ts.map +1 -0
- package/dist/schema/iam/user_profiles.js +125 -0
- package/dist/schema/iam/user_profiles.js.map +1 -0
- package/dist/schema/index.d.ts +5 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +5 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/infra/domains.d.ts +609 -0
- package/dist/schema/infra/domains.d.ts.map +1 -0
- package/dist/schema/infra/domains.js +108 -0
- package/dist/schema/infra/domains.js.map +1 -0
- package/dist/schema/infra/email_domain_records.d.ts +255 -0
- package/dist/schema/infra/email_domain_records.d.ts.map +1 -0
- package/dist/schema/infra/email_domain_records.js +65 -0
- package/dist/schema/infra/email_domain_records.js.map +1 -0
- package/dist/schema/infra/event_outbox.d.ts +232 -0
- package/dist/schema/infra/event_outbox.d.ts.map +1 -0
- package/dist/schema/infra/event_outbox.js +59 -0
- package/dist/schema/infra/event_outbox.js.map +1 -0
- package/dist/schema/infra/idempotency_keys.d.ts +186 -0
- package/dist/schema/infra/idempotency_keys.d.ts.map +1 -0
- package/dist/schema/infra/idempotency_keys.js +40 -0
- package/dist/schema/infra/idempotency_keys.js.map +1 -0
- package/dist/schema/infra/index.d.ts +9 -0
- package/dist/schema/infra/index.d.ts.map +1 -0
- package/dist/schema/infra/index.js +10 -0
- package/dist/schema/infra/index.js.map +1 -0
- package/dist/schema/infra/public_document_delivery_grants.d.ts +356 -0
- package/dist/schema/infra/public_document_delivery_grants.d.ts.map +1 -0
- package/dist/schema/infra/public_document_delivery_grants.js +36 -0
- package/dist/schema/infra/public_document_delivery_grants.js.map +1 -0
- package/dist/schema/infra/rate_limit_buckets.d.ts +138 -0
- package/dist/schema/infra/rate_limit_buckets.d.ts.map +1 -0
- package/dist/schema/infra/rate_limit_buckets.js +52 -0
- package/dist/schema/infra/rate_limit_buckets.js.map +1 -0
- package/dist/schema/infra/webhook_deliveries.d.ts +572 -0
- package/dist/schema/infra/webhook_deliveries.d.ts.map +1 -0
- package/dist/schema/infra/webhook_deliveries.js +136 -0
- package/dist/schema/infra/webhook_deliveries.js.map +1 -0
- package/dist/schema/infra/webhook_subscriptions.d.ts +284 -0
- package/dist/schema/infra/webhook_subscriptions.d.ts.map +1 -0
- package/dist/schema/infra/webhook_subscriptions.js +64 -0
- package/dist/schema/infra/webhook_subscriptions.js.map +1 -0
- package/dist/schema/infra/write_intents.d.ts +185 -0
- package/dist/schema/infra/write_intents.d.ts.map +1 -0
- package/dist/schema/infra/write_intents.js +50 -0
- package/dist/schema/infra/write_intents.js.map +1 -0
- package/dist/schema/voyant/bookings.d.ts +2 -0
- package/dist/schema/voyant/bookings.d.ts.map +1 -0
- package/dist/schema/voyant/bookings.js +2 -0
- package/dist/schema/voyant/bookings.js.map +1 -0
- package/dist/schema/voyant/finance.d.ts +2 -0
- package/dist/schema/voyant/finance.d.ts.map +1 -0
- package/dist/schema/voyant/finance.js +2 -0
- package/dist/schema/voyant/finance.js.map +1 -0
- package/dist/test-utils.d.ts +17 -0
- package/dist/test-utils.d.ts.map +1 -0
- package/dist/test-utils.js +56 -0
- package/dist/test-utils.js.map +1 -0
- package/dist/transaction-capability.d.ts +11 -0
- package/dist/transaction-capability.d.ts.map +1 -0
- package/dist/transaction-capability.js +17 -0
- package/dist/transaction-capability.js.map +1 -0
- package/dist/transaction.d.ts +31 -0
- package/dist/transaction.d.ts.map +1 -0
- package/dist/transaction.js +72 -0
- package/dist/transaction.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +2 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +19 -0
- package/dist/utils.js.map +1 -0
- package/dist/write-intents.d.ts +51 -0
- package/dist/write-intents.d.ts.map +1 -0
- package/dist/write-intents.js +95 -0
- package/dist/write-intents.js.map +1 -0
- package/package.json +306 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { boolean, char, date, integer, numeric, text, timestamp, uuid } from "drizzle-orm/pg-core";
|
|
2
|
+
/**
|
|
3
|
+
* Room-related columns shared between db-main and db-marketplace
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Core columns for product_room_specs (room_types) table
|
|
7
|
+
*/
|
|
8
|
+
export function productRoomSpecsCoreColumns() {
|
|
9
|
+
return {
|
|
10
|
+
code: text("code"),
|
|
11
|
+
name: text("name").notNull(),
|
|
12
|
+
occupancy: text("occupancy").notNull(),
|
|
13
|
+
attributes: text("attributes").notNull().default("{}"),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Core columns for product_room_listings (room_profiles) table
|
|
18
|
+
*/
|
|
19
|
+
export function productRoomListingsCoreColumns() {
|
|
20
|
+
return {
|
|
21
|
+
slug: text("slug"),
|
|
22
|
+
title: text("title").notNull(),
|
|
23
|
+
description: text("description"),
|
|
24
|
+
occupancy: text("occupancy")
|
|
25
|
+
.notNull()
|
|
26
|
+
.default('{"adults_min":1,"adults_max":2,"children_max":0}'),
|
|
27
|
+
bedsCount: integer("beds_count"),
|
|
28
|
+
bedConfig: text("bed_config").array().default([]),
|
|
29
|
+
amenities: text("amenities").array().default([]),
|
|
30
|
+
attributes: text("attributes").notNull().default("{}"),
|
|
31
|
+
sort: integer("sort").default(0),
|
|
32
|
+
createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(),
|
|
33
|
+
updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow(),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Core columns for product_room_listing_media (room_profile_media) table
|
|
38
|
+
*/
|
|
39
|
+
export function productRoomListingMediaCoreColumns() {
|
|
40
|
+
return {
|
|
41
|
+
url: text("url"),
|
|
42
|
+
kind: text("kind"),
|
|
43
|
+
alt: text("alt"),
|
|
44
|
+
sort: integer("sort").default(0),
|
|
45
|
+
createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Core columns for room_prices table
|
|
50
|
+
*/
|
|
51
|
+
export function roomPricesCoreColumns() {
|
|
52
|
+
return {
|
|
53
|
+
date: date("date").notNull(),
|
|
54
|
+
price: numeric("price", { precision: 12, scale: 2 }).notNull(),
|
|
55
|
+
priceChild: numeric("price_child", { precision: 12, scale: 2 }),
|
|
56
|
+
extraAdult: numeric("extra_adult", { precision: 12, scale: 2 }),
|
|
57
|
+
minStay: integer("min_stay"),
|
|
58
|
+
closedToArrival: boolean("closed_to_arrival"),
|
|
59
|
+
closedToDeparture: boolean("closed_to_departure"),
|
|
60
|
+
updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow(),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Core columns for product_room_availability (room_availability) table
|
|
65
|
+
*/
|
|
66
|
+
export function productRoomAvailabilityCoreColumns() {
|
|
67
|
+
return {
|
|
68
|
+
date: date("date").notNull(),
|
|
69
|
+
roomsTotal: integer("rooms_total"),
|
|
70
|
+
roomsAvailable: integer("rooms_available"),
|
|
71
|
+
updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow(),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Core columns for product_room_spec_rate_plans (room_rate_plans) table
|
|
76
|
+
*/
|
|
77
|
+
export function productRoomSpecRatePlansCoreColumns() {
|
|
78
|
+
return {
|
|
79
|
+
name: text("name").notNull(),
|
|
80
|
+
board: text("board"),
|
|
81
|
+
currency: char("currency", { length: 3 }).notNull(),
|
|
82
|
+
cancellationPolicyId: uuid("cancellation_policy_id"),
|
|
83
|
+
restrictions: text("restrictions").default("{}"),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=room.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"room.js","sourceRoot":"","sources":["../../src/columns/room.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core ship columns shared between db-main.cruise.ships
|
|
3
|
+
* and db-marketplace.marketplace.publication_ships.
|
|
4
|
+
*
|
|
5
|
+
* Use spread operator to include in table definitions:
|
|
6
|
+
* @example
|
|
7
|
+
* const shipsTable = pgTable("ships", {
|
|
8
|
+
* id: typeId("ships"),
|
|
9
|
+
* ...shipCoreColumns(),
|
|
10
|
+
* // Add table-specific columns...
|
|
11
|
+
* })
|
|
12
|
+
*/
|
|
13
|
+
export declare function shipCoreColumns(): {
|
|
14
|
+
name: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"name", [string, ...string[]]>>;
|
|
15
|
+
description: import("drizzle-orm/pg-core").PgTextBuilderInitial<"description", [string, ...string[]]>;
|
|
16
|
+
yearBuilt: import("drizzle-orm/pg-core").PgIntegerBuilderInitial<"year_built">;
|
|
17
|
+
yearRefurbished: import("drizzle-orm/pg-core").PgIntegerBuilderInitial<"year_refurbished">;
|
|
18
|
+
capacity: import("drizzle-orm/pg-core").PgIntegerBuilderInitial<"capacity">;
|
|
19
|
+
crewSize: import("drizzle-orm/pg-core").PgIntegerBuilderInitial<"crew_size">;
|
|
20
|
+
amenities: import("drizzle-orm/pg-core").PgJsonbBuilderInitial<"amenities">;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=ship.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ship.d.ts","sourceRoot":"","sources":["../../src/columns/ship.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe;;;;;;;;EAU9B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { integer, jsonb, text } from "drizzle-orm/pg-core";
|
|
2
|
+
/**
|
|
3
|
+
* Core ship columns shared between db-main.cruise.ships
|
|
4
|
+
* and db-marketplace.marketplace.publication_ships.
|
|
5
|
+
*
|
|
6
|
+
* Use spread operator to include in table definitions:
|
|
7
|
+
* @example
|
|
8
|
+
* const shipsTable = pgTable("ships", {
|
|
9
|
+
* id: typeId("ships"),
|
|
10
|
+
* ...shipCoreColumns(),
|
|
11
|
+
* // Add table-specific columns...
|
|
12
|
+
* })
|
|
13
|
+
*/
|
|
14
|
+
export function shipCoreColumns() {
|
|
15
|
+
return {
|
|
16
|
+
name: text("name").notNull(),
|
|
17
|
+
description: text("description"),
|
|
18
|
+
yearBuilt: integer("year_built"),
|
|
19
|
+
yearRefurbished: integer("year_refurbished"),
|
|
20
|
+
capacity: integer("capacity"),
|
|
21
|
+
crewSize: integer("crew_size"),
|
|
22
|
+
amenities: jsonb("amenities"),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ship.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ship.js","sourceRoot":"","sources":["../../src/columns/ship.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE1D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;QAC5B,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;QAChC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC;QAChC,eAAe,EAAE,OAAO,CAAC,kBAAkB,CAAC;QAC5C,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;QAC7B,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC;QAC9B,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC;KAC9B,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tag-related columns shared between db-main and db-marketplace
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Core columns for shared tags table (legacy)
|
|
6
|
+
* @deprecated Use entityTagColumns() for entity-specific tags
|
|
7
|
+
*/
|
|
8
|
+
export declare function tagsCoreColumns(): {
|
|
9
|
+
name: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"name", [string, ...string[]]>>;
|
|
10
|
+
slug: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"slug", [string, ...string[]]>>;
|
|
11
|
+
createdAt: import("drizzle-orm").HasDefault<import("drizzle-orm/pg-core").PgTimestampBuilderInitial<"created_at">>;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Columns for entity-specific tag tables (Shopify model)
|
|
15
|
+
*
|
|
16
|
+
* Each entity type (people, organizations, products, collections)
|
|
17
|
+
* has its own tags table with these columns plus an entity reference.
|
|
18
|
+
*
|
|
19
|
+
* Usage:
|
|
20
|
+
* ```ts
|
|
21
|
+
* export const personTagsTable = coreSchema.table("person_tags", {
|
|
22
|
+
* id: typeId("person_tags"),
|
|
23
|
+
* personId: typeIdRef("person_id").notNull().references(() => peopleTable.id, { onDelete: "cascade" }),
|
|
24
|
+
* ...entityTagColumns(),
|
|
25
|
+
* })
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function entityTagColumns(): {
|
|
29
|
+
name: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"name", [string, ...string[]]>>;
|
|
30
|
+
slug: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"slug", [string, ...string[]]>>;
|
|
31
|
+
createdAt: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTimestampBuilderInitial<"created_at">>>;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=tags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../src/columns/tags.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,eAAe;;;;EAM9B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB;;;;EAM/B"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { text, timestamp } from "drizzle-orm/pg-core";
|
|
2
|
+
/**
|
|
3
|
+
* Tag-related columns shared between db-main and db-marketplace
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Core columns for shared tags table (legacy)
|
|
7
|
+
* @deprecated Use entityTagColumns() for entity-specific tags
|
|
8
|
+
*/
|
|
9
|
+
export function tagsCoreColumns() {
|
|
10
|
+
return {
|
|
11
|
+
name: text("name").notNull(),
|
|
12
|
+
slug: text("slug").notNull(),
|
|
13
|
+
createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Columns for entity-specific tag tables (Shopify model)
|
|
18
|
+
*
|
|
19
|
+
* Each entity type (people, organizations, products, collections)
|
|
20
|
+
* has its own tags table with these columns plus an entity reference.
|
|
21
|
+
*
|
|
22
|
+
* Usage:
|
|
23
|
+
* ```ts
|
|
24
|
+
* export const personTagsTable = coreSchema.table("person_tags", {
|
|
25
|
+
* id: typeId("person_tags"),
|
|
26
|
+
* personId: typeIdRef("person_id").notNull().references(() => peopleTable.id, { onDelete: "cascade" }),
|
|
27
|
+
* ...entityTagColumns(),
|
|
28
|
+
* })
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export function entityTagColumns() {
|
|
32
|
+
return {
|
|
33
|
+
name: text("name").notNull(),
|
|
34
|
+
slug: text("slug").notNull(),
|
|
35
|
+
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../src/columns/tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AAEH;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;QAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;QAC5B,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE;KACxE,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;QAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;QAC5B,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;KAClF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transport configs core columns - shared between db-main and db-marketplace.
|
|
3
|
+
* Contains common transport configuration data.
|
|
4
|
+
*/
|
|
5
|
+
export declare function transportConfigsCoreColumns(): {
|
|
6
|
+
key: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"key", [string, ...string[]]>>;
|
|
7
|
+
name: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"name", [string, ...string[]]>>;
|
|
8
|
+
description: import("drizzle-orm/pg-core").PgTextBuilderInitial<"description", [string, ...string[]]>;
|
|
9
|
+
createdAt: import("drizzle-orm").HasDefault<import("drizzle-orm/pg-core").PgTimestampBuilderInitial<"created_at">>;
|
|
10
|
+
updatedAt: import("drizzle-orm").HasDefault<import("drizzle-orm/pg-core").PgTimestampBuilderInitial<"updated_at">>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Transport config legs core columns - shared between db-main and db-marketplace.
|
|
14
|
+
* Contains transport segment configuration data.
|
|
15
|
+
*/
|
|
16
|
+
export declare function transportConfigLegsCoreColumns(): {
|
|
17
|
+
seq: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgIntegerBuilderInitial<"seq">>>;
|
|
18
|
+
modeKey: import("drizzle-orm/pg-core").PgTextBuilderInitial<"mode_key", [string, ...string[]]>;
|
|
19
|
+
airlineCode: import("drizzle-orm/pg-core").PgTextBuilderInitial<"airline_code", [string, ...string[]]>;
|
|
20
|
+
fromPlaceId: import("drizzle-orm/pg-core").PgTextBuilderInitial<"from_place_id", [string, ...string[]]>;
|
|
21
|
+
toPlaceId: import("drizzle-orm/pg-core").PgTextBuilderInitial<"to_place_id", [string, ...string[]]>;
|
|
22
|
+
cabinClass: import("drizzle-orm/pg-core").PgTextBuilderInitial<"cabin_class", [string, ...string[]]>;
|
|
23
|
+
fareClassCode: import("drizzle-orm/pg-core").PgTextBuilderInitial<"fare_class_code", [string, ...string[]]>;
|
|
24
|
+
durationMinutes: import("drizzle-orm/pg-core").PgIntegerBuilderInitial<"duration_minutes">;
|
|
25
|
+
luggage: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"luggage", [string, ...string[]]>>>;
|
|
26
|
+
flightNumber: import("drizzle-orm/pg-core").PgTextBuilderInitial<"flight_number", [string, ...string[]]>;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Transport addons core columns - shared between db-main and db-marketplace.
|
|
30
|
+
* Contains transport addon data.
|
|
31
|
+
*/
|
|
32
|
+
export declare function transportAddonsCoreColumns(): {
|
|
33
|
+
name: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"name", [string, ...string[]]>>;
|
|
34
|
+
pricing: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"pricing", [string, ...string[]]>>;
|
|
35
|
+
required: import("drizzle-orm").HasDefault<import("drizzle-orm/pg-core").PgBooleanBuilderInitial<"required">>;
|
|
36
|
+
selectable: import("drizzle-orm").HasDefault<import("drizzle-orm/pg-core").PgBooleanBuilderInitial<"selectable">>;
|
|
37
|
+
createdAt: import("drizzle-orm").HasDefault<import("drizzle-orm/pg-core").PgTimestampBuilderInitial<"created_at">>;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Transport fare classes core columns - shared between db-main and db-marketplace.
|
|
41
|
+
* Contains fare class reference data.
|
|
42
|
+
*/
|
|
43
|
+
export declare function transportFareClassesCoreColumns(): {
|
|
44
|
+
code: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"code", [string, ...string[]]>>;
|
|
45
|
+
name: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"name", [string, ...string[]]>>;
|
|
46
|
+
refundability: import("drizzle-orm/pg-core").PgTextBuilderInitial<"refundability", [string, ...string[]]>;
|
|
47
|
+
changeRules: import("drizzle-orm/pg-core").PgJsonbBuilderInitial<"change_rules">;
|
|
48
|
+
combinability: import("drizzle-orm/pg-core").PgJsonbBuilderInitial<"combinability">;
|
|
49
|
+
baggage: import("drizzle-orm/pg-core").PgJsonbBuilderInitial<"baggage">;
|
|
50
|
+
notes: import("drizzle-orm/pg-core").PgTextBuilderInitial<"notes", [string, ...string[]]>;
|
|
51
|
+
createdAt: import("drizzle-orm").NotNull<import("drizzle-orm").HasDefault<import("drizzle-orm/pg-core").PgTimestampBuilderInitial<"created_at">>>;
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/columns/transport.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,2BAA2B;;;;;;EAQ1C;AAED;;;GAGG;AACH,wBAAgB,8BAA8B;;;;;;;;;;;EAa7C;AAED;;;GAGG;AACH,wBAAgB,0BAA0B;;;;;;EAQzC;AAED;;;GAGG;AACH,wBAAgB,+BAA+B;;;;;;;;;EAW9C"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { boolean, integer, jsonb, text, timestamp } from "drizzle-orm/pg-core";
|
|
2
|
+
/**
|
|
3
|
+
* Transport configs core columns - shared between db-main and db-marketplace.
|
|
4
|
+
* Contains common transport configuration data.
|
|
5
|
+
*/
|
|
6
|
+
export function transportConfigsCoreColumns() {
|
|
7
|
+
return {
|
|
8
|
+
key: text("key").notNull(),
|
|
9
|
+
name: text("name").notNull(),
|
|
10
|
+
description: text("description"),
|
|
11
|
+
createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(),
|
|
12
|
+
updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow(),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Transport config legs core columns - shared between db-main and db-marketplace.
|
|
17
|
+
* Contains transport segment configuration data.
|
|
18
|
+
*/
|
|
19
|
+
export function transportConfigLegsCoreColumns() {
|
|
20
|
+
return {
|
|
21
|
+
seq: integer("seq").notNull().default(1),
|
|
22
|
+
modeKey: text("mode_key"),
|
|
23
|
+
airlineCode: text("airline_code"),
|
|
24
|
+
fromPlaceId: text("from_place_id"),
|
|
25
|
+
toPlaceId: text("to_place_id"),
|
|
26
|
+
cabinClass: text("cabin_class"),
|
|
27
|
+
fareClassCode: text("fare_class_code"),
|
|
28
|
+
durationMinutes: integer("duration_minutes"),
|
|
29
|
+
luggage: text("luggage").notNull().default("{}"),
|
|
30
|
+
flightNumber: text("flight_number"),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Transport addons core columns - shared between db-main and db-marketplace.
|
|
35
|
+
* Contains transport addon data.
|
|
36
|
+
*/
|
|
37
|
+
export function transportAddonsCoreColumns() {
|
|
38
|
+
return {
|
|
39
|
+
name: text("name").notNull(),
|
|
40
|
+
pricing: text("pricing").notNull(),
|
|
41
|
+
required: boolean("required").default(false),
|
|
42
|
+
selectable: boolean("selectable").default(true),
|
|
43
|
+
createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Transport fare classes core columns - shared between db-main and db-marketplace.
|
|
48
|
+
* Contains fare class reference data.
|
|
49
|
+
*/
|
|
50
|
+
export function transportFareClassesCoreColumns() {
|
|
51
|
+
return {
|
|
52
|
+
code: text("code").notNull(),
|
|
53
|
+
name: text("name").notNull(),
|
|
54
|
+
refundability: text("refundability"),
|
|
55
|
+
changeRules: jsonb("change_rules"),
|
|
56
|
+
combinability: jsonb("combinability"),
|
|
57
|
+
baggage: jsonb("baggage"),
|
|
58
|
+
notes: text("notes"),
|
|
59
|
+
createdAt: timestamp("created_at", { withTimezone: true }).defaultNow().notNull(),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/columns/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE9E;;;GAGG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;QAC1B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;QAC5B,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;QAChC,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE;QACvE,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE;KACxE,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,8BAA8B;IAC5C,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;QACzB,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;QACjC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC;QAClC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC;QAC9B,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC;QAC/B,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC;QACtC,eAAe,EAAE,OAAO,CAAC,kBAAkB,CAAC;QAC5C,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAChD,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC;KACpC,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;QAC5B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;QAClC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5C,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAC/C,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE;KACxE,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;QAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;QAC5B,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC;QACpC,WAAW,EAAE,KAAK,CAAC,cAAc,CAAC;QAClC,aAAa,EAAE,KAAK,CAAC,eAAe,CAAC;QACrC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;QACzB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;QACpB,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;KAClF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { PoolConfig } from "@neondatabase/serverless";
|
|
2
|
+
/**
|
|
3
|
+
* Timeout knobs applied across `createDbClient` adapters. All values are
|
|
4
|
+
* milliseconds. Pass `false` to disable a specific timeout entirely.
|
|
5
|
+
*
|
|
6
|
+
* Adapter coverage:
|
|
7
|
+
* - `serverless` (Neon WebSocket `Pool`): `statementMs` → `statement_timeout`
|
|
8
|
+
* (server-side), `queryMs` → `query_timeout` (client-side backstop),
|
|
9
|
+
* `connectMs` → `connectionTimeoutMillis`.
|
|
10
|
+
* - `node` (postgres-js): `statementMs` → `connection.statement_timeout`
|
|
11
|
+
* (server-side startup parameter), `connectMs` → `connect_timeout`
|
|
12
|
+
* (rounded up to whole seconds). `queryMs` has no postgres-js equivalent
|
|
13
|
+
* and is ignored.
|
|
14
|
+
* - `edge` (neon-http): per-query timeouts are not configurable on the Neon
|
|
15
|
+
* HTTP client; queries rely on the server-side default `statement_timeout`
|
|
16
|
+
* and the Workers runtime's own request limits. All fields are ignored.
|
|
17
|
+
*/
|
|
18
|
+
export interface DbTimeoutOptions {
|
|
19
|
+
/**
|
|
20
|
+
* Server-side `statement_timeout` in ms. Default `10_000`.
|
|
21
|
+
* `false` disables it (server default applies).
|
|
22
|
+
*/
|
|
23
|
+
statementMs?: number | false;
|
|
24
|
+
/**
|
|
25
|
+
* Client-side query timeout in ms (serverless `Pool` only). Default
|
|
26
|
+
* `15_000`. `false` disables it.
|
|
27
|
+
*/
|
|
28
|
+
queryMs?: number | false;
|
|
29
|
+
/**
|
|
30
|
+
* Connection-establishment timeout in ms. Default `10_000`.
|
|
31
|
+
* `false` disables it.
|
|
32
|
+
*/
|
|
33
|
+
connectMs?: number | false;
|
|
34
|
+
}
|
|
35
|
+
/** Default timeouts applied when no override is provided. */
|
|
36
|
+
export declare const DEFAULT_DB_TIMEOUTS: {
|
|
37
|
+
readonly statementMs: 10000;
|
|
38
|
+
readonly queryMs: 15000;
|
|
39
|
+
readonly connectMs: 10000;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Build the `PoolConfig` for the `serverless` adapter (Neon WebSocket Pool).
|
|
43
|
+
*
|
|
44
|
+
* Defaults are applied first and caller-supplied `pool` values spread after,
|
|
45
|
+
* so explicit pool config always wins. `connectionString` is pinned last and
|
|
46
|
+
* cannot be overridden through `pool`.
|
|
47
|
+
*
|
|
48
|
+
* Why BOTH `statement_timeout` and `query_timeout`: `statement_timeout` is a
|
|
49
|
+
* Postgres startup parameter, and transaction-mode poolers (PgBouncer — which
|
|
50
|
+
* Neon's `-pooler` endpoints run) may ignore startup parameters because the
|
|
51
|
+
* pooled server session is shared across clients. `query_timeout` is enforced
|
|
52
|
+
* client-side by node-postgres, so it acts as the backstop that still fires
|
|
53
|
+
* when the pooler swallowed `statement_timeout`.
|
|
54
|
+
*/
|
|
55
|
+
export declare function resolveServerlessPoolConfig(connectionString: string, options?: {
|
|
56
|
+
pool?: Omit<PoolConfig, "connectionString">;
|
|
57
|
+
timeouts?: DbTimeoutOptions;
|
|
58
|
+
}): PoolConfig;
|
|
59
|
+
/**
|
|
60
|
+
* Options accepted by postgres-js that the `node` adapter configures.
|
|
61
|
+
* Kept structural (instead of importing postgres-js `Options`) so the
|
|
62
|
+
* resolver stays a pure, dependency-free function that's easy to test.
|
|
63
|
+
*/
|
|
64
|
+
export interface NodePostgresOptions {
|
|
65
|
+
max?: number;
|
|
66
|
+
/** Connection-establishment timeout in SECONDS (postgres-js convention). */
|
|
67
|
+
connect_timeout?: number;
|
|
68
|
+
/** Startup parameters sent to Postgres; `statement_timeout` is in ms. */
|
|
69
|
+
connection?: {
|
|
70
|
+
statement_timeout: number;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Build the postgres-js options object for the `node` adapter.
|
|
75
|
+
*
|
|
76
|
+
* - `statementMs` → `connection.statement_timeout` (ms, server-side).
|
|
77
|
+
* - `connectMs` → `connect_timeout` (postgres-js takes seconds; rounded up).
|
|
78
|
+
* - `queryMs` is ignored — postgres-js has no client-side per-query timeout.
|
|
79
|
+
*/
|
|
80
|
+
export declare function resolveNodePostgresOptions(options?: {
|
|
81
|
+
max?: number;
|
|
82
|
+
timeouts?: DbTimeoutOptions;
|
|
83
|
+
}): NodePostgresOptions;
|
|
84
|
+
/** Whether the connection string targets a Neon host (`*.neon.tech` etc.). */
|
|
85
|
+
export declare function isNeonConnectionString(connectionString: string): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Whether the connection string targets Neon's pooled (PgBouncer) endpoint —
|
|
88
|
+
* the host contains the `-pooler` infix. Returns `false` for non-Neon hosts.
|
|
89
|
+
*
|
|
90
|
+
* Per-request pools (the `serverless` adapter on Workers) should always use
|
|
91
|
+
* the `-pooler` host: the direct endpoint has a low `max_connections`
|
|
92
|
+
* ceiling that per-request pools exhaust quickly.
|
|
93
|
+
*/
|
|
94
|
+
export declare function isPooledNeonConnectionString(connectionString: string): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Warn (once per unique connection string per process) when a per-request
|
|
97
|
+
* pool is created against Neon's DIRECT endpoint instead of the `-pooler`
|
|
98
|
+
* host. Never warns for localhost or non-Neon hosts, and never throws.
|
|
99
|
+
*/
|
|
100
|
+
export declare function warnIfDirectNeonEndpoint(connectionString: string): void;
|
|
101
|
+
//# sourceMappingURL=connection-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-config.d.ts","sourceRoot":"","sources":["../src/connection-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;CAC3B;AAED,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB;;;;CAItB,CAAA;AAEV;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAA;IAC3C,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAC5B,GACA,UAAU,CAiBZ;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,yEAAyE;IACzE,UAAU,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAA;CAC3C;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,CAAC,EAAE;IACnD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAC5B,GAAG,mBAAmB,CAetB;AAUD,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAGxE;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAK9E;AAID;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAevE"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/** Default timeouts applied when no override is provided. */
|
|
2
|
+
export const DEFAULT_DB_TIMEOUTS = {
|
|
3
|
+
statementMs: 10_000,
|
|
4
|
+
queryMs: 15_000,
|
|
5
|
+
connectMs: 10_000,
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Build the `PoolConfig` for the `serverless` adapter (Neon WebSocket Pool).
|
|
9
|
+
*
|
|
10
|
+
* Defaults are applied first and caller-supplied `pool` values spread after,
|
|
11
|
+
* so explicit pool config always wins. `connectionString` is pinned last and
|
|
12
|
+
* cannot be overridden through `pool`.
|
|
13
|
+
*
|
|
14
|
+
* Why BOTH `statement_timeout` and `query_timeout`: `statement_timeout` is a
|
|
15
|
+
* Postgres startup parameter, and transaction-mode poolers (PgBouncer — which
|
|
16
|
+
* Neon's `-pooler` endpoints run) may ignore startup parameters because the
|
|
17
|
+
* pooled server session is shared across clients. `query_timeout` is enforced
|
|
18
|
+
* client-side by node-postgres, so it acts as the backstop that still fires
|
|
19
|
+
* when the pooler swallowed `statement_timeout`.
|
|
20
|
+
*/
|
|
21
|
+
export function resolveServerlessPoolConfig(connectionString, options) {
|
|
22
|
+
const statementMs = options?.timeouts?.statementMs ?? DEFAULT_DB_TIMEOUTS.statementMs;
|
|
23
|
+
const queryMs = options?.timeouts?.queryMs ?? DEFAULT_DB_TIMEOUTS.queryMs;
|
|
24
|
+
const connectMs = options?.timeouts?.connectMs ?? DEFAULT_DB_TIMEOUTS.connectMs;
|
|
25
|
+
const defaults = {};
|
|
26
|
+
if (statementMs !== false) {
|
|
27
|
+
defaults.statement_timeout = statementMs;
|
|
28
|
+
}
|
|
29
|
+
if (queryMs !== false) {
|
|
30
|
+
defaults.query_timeout = queryMs;
|
|
31
|
+
}
|
|
32
|
+
if (connectMs !== false) {
|
|
33
|
+
defaults.connectionTimeoutMillis = connectMs;
|
|
34
|
+
}
|
|
35
|
+
return { ...defaults, ...options?.pool, connectionString };
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Build the postgres-js options object for the `node` adapter.
|
|
39
|
+
*
|
|
40
|
+
* - `statementMs` → `connection.statement_timeout` (ms, server-side).
|
|
41
|
+
* - `connectMs` → `connect_timeout` (postgres-js takes seconds; rounded up).
|
|
42
|
+
* - `queryMs` is ignored — postgres-js has no client-side per-query timeout.
|
|
43
|
+
*/
|
|
44
|
+
export function resolveNodePostgresOptions(options) {
|
|
45
|
+
const statementMs = options?.timeouts?.statementMs ?? DEFAULT_DB_TIMEOUTS.statementMs;
|
|
46
|
+
const connectMs = options?.timeouts?.connectMs ?? DEFAULT_DB_TIMEOUTS.connectMs;
|
|
47
|
+
const config = {};
|
|
48
|
+
if (options?.max !== undefined) {
|
|
49
|
+
config.max = options.max;
|
|
50
|
+
}
|
|
51
|
+
if (connectMs !== false) {
|
|
52
|
+
config.connect_timeout = Math.ceil(connectMs / 1000);
|
|
53
|
+
}
|
|
54
|
+
if (statementMs !== false) {
|
|
55
|
+
config.connection = { statement_timeout: statementMs };
|
|
56
|
+
}
|
|
57
|
+
return config;
|
|
58
|
+
}
|
|
59
|
+
function hostnameOf(connectionString) {
|
|
60
|
+
try {
|
|
61
|
+
return new URL(connectionString).hostname || null;
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** Whether the connection string targets a Neon host (`*.neon.tech` etc.). */
|
|
68
|
+
export function isNeonConnectionString(connectionString) {
|
|
69
|
+
const host = hostnameOf(connectionString);
|
|
70
|
+
return host !== null && (host.endsWith(".neon.tech") || host.includes(".neon."));
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Whether the connection string targets Neon's pooled (PgBouncer) endpoint —
|
|
74
|
+
* the host contains the `-pooler` infix. Returns `false` for non-Neon hosts.
|
|
75
|
+
*
|
|
76
|
+
* Per-request pools (the `serverless` adapter on Workers) should always use
|
|
77
|
+
* the `-pooler` host: the direct endpoint has a low `max_connections`
|
|
78
|
+
* ceiling that per-request pools exhaust quickly.
|
|
79
|
+
*/
|
|
80
|
+
export function isPooledNeonConnectionString(connectionString) {
|
|
81
|
+
if (!isNeonConnectionString(connectionString)) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
return hostnameOf(connectionString)?.includes("-pooler") ?? false;
|
|
85
|
+
}
|
|
86
|
+
const warnedDirectNeonEndpoints = new Set();
|
|
87
|
+
/**
|
|
88
|
+
* Warn (once per unique connection string per process) when a per-request
|
|
89
|
+
* pool is created against Neon's DIRECT endpoint instead of the `-pooler`
|
|
90
|
+
* host. Never warns for localhost or non-Neon hosts, and never throws.
|
|
91
|
+
*/
|
|
92
|
+
export function warnIfDirectNeonEndpoint(connectionString) {
|
|
93
|
+
if (!isNeonConnectionString(connectionString) || isPooledNeonConnectionString(connectionString)) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (warnedDirectNeonEndpoints.has(connectionString)) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
warnedDirectNeonEndpoints.add(connectionString);
|
|
100
|
+
console.warn("[@voyant-travel/db] The serverless adapter is connecting to a Neon DIRECT endpoint " +
|
|
101
|
+
`(${hostnameOf(connectionString) ?? "unknown host"}). Direct endpoints have a low ` +
|
|
102
|
+
"max_connections ceiling that per-request pools exhaust quickly. Use the pooled " +
|
|
103
|
+
'endpoint instead (the host containing "-pooler", e.g. ' +
|
|
104
|
+
'"...-pooler.region.aws.neon.tech").');
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=connection-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-config.js","sourceRoot":"","sources":["../src/connection-config.ts"],"names":[],"mappings":"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"}
|