@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.
Files changed (336) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +60 -0
  3. package/dist/aggregate-snapshots.d.ts +66 -0
  4. package/dist/aggregate-snapshots.d.ts.map +1 -0
  5. package/dist/aggregate-snapshots.js +110 -0
  6. package/dist/aggregate-snapshots.js.map +1 -0
  7. package/dist/columns/collection.d.ts +37 -0
  8. package/dist/columns/collection.d.ts.map +1 -0
  9. package/dist/columns/collection.js +44 -0
  10. package/dist/columns/collection.js.map +1 -0
  11. package/dist/columns/cruise.d.ts +26 -0
  12. package/dist/columns/cruise.d.ts.map +1 -0
  13. package/dist/columns/cruise.js +31 -0
  14. package/dist/columns/cruise.js.map +1 -0
  15. package/dist/columns/departure-sub-tables.d.ts +179 -0
  16. package/dist/columns/departure-sub-tables.d.ts.map +1 -0
  17. package/dist/columns/departure-sub-tables.js +214 -0
  18. package/dist/columns/departure-sub-tables.js.map +1 -0
  19. package/dist/columns/departure.d.ts +20 -0
  20. package/dist/columns/departure.d.ts.map +1 -0
  21. package/dist/columns/departure.js +23 -0
  22. package/dist/columns/departure.js.map +1 -0
  23. package/dist/columns/destinations.d.ts +21 -0
  24. package/dist/columns/destinations.d.ts.map +1 -0
  25. package/dist/columns/destinations.js +24 -0
  26. package/dist/columns/destinations.js.map +1 -0
  27. package/dist/columns/index.d.ts +31 -0
  28. package/dist/columns/index.d.ts.map +1 -0
  29. package/dist/columns/index.js +57 -0
  30. package/dist/columns/index.js.map +1 -0
  31. package/dist/columns/itinerary-sub-tables.d.ts +177 -0
  32. package/dist/columns/itinerary-sub-tables.d.ts.map +1 -0
  33. package/dist/columns/itinerary-sub-tables.js +122 -0
  34. package/dist/columns/itinerary-sub-tables.js.map +1 -0
  35. package/dist/columns/itinerary.d.ts +17 -0
  36. package/dist/columns/itinerary.d.ts.map +1 -0
  37. package/dist/columns/itinerary.js +20 -0
  38. package/dist/columns/itinerary.js.map +1 -0
  39. package/dist/columns/lodging.d.ts +143 -0
  40. package/dist/columns/lodging.d.ts.map +1 -0
  41. package/dist/columns/lodging.js +164 -0
  42. package/dist/columns/lodging.js.map +1 -0
  43. package/dist/columns/offers.d.ts +31 -0
  44. package/dist/columns/offers.d.ts.map +1 -0
  45. package/dist/columns/offers.js +43 -0
  46. package/dist/columns/offers.js.map +1 -0
  47. package/dist/columns/pricing.d.ts +60 -0
  48. package/dist/columns/pricing.d.ts.map +1 -0
  49. package/dist/columns/pricing.js +71 -0
  50. package/dist/columns/pricing.js.map +1 -0
  51. package/dist/columns/product-accommodation.d.ts +99 -0
  52. package/dist/columns/product-accommodation.d.ts.map +1 -0
  53. package/dist/columns/product-accommodation.js +65 -0
  54. package/dist/columns/product-accommodation.js.map +1 -0
  55. package/dist/columns/product-addons.d.ts +18 -0
  56. package/dist/columns/product-addons.d.ts.map +1 -0
  57. package/dist/columns/product-addons.js +21 -0
  58. package/dist/columns/product-addons.js.map +1 -0
  59. package/dist/columns/product-availability-states.d.ts +65 -0
  60. package/dist/columns/product-availability-states.d.ts.map +1 -0
  61. package/dist/columns/product-availability-states.js +81 -0
  62. package/dist/columns/product-availability-states.js.map +1 -0
  63. package/dist/columns/product-availability.d.ts +21 -0
  64. package/dist/columns/product-availability.d.ts.map +1 -0
  65. package/dist/columns/product-availability.js +24 -0
  66. package/dist/columns/product-availability.js.map +1 -0
  67. package/dist/columns/product-booking-rules.d.ts +45 -0
  68. package/dist/columns/product-booking-rules.d.ts.map +1 -0
  69. package/dist/columns/product-booking-rules.js +55 -0
  70. package/dist/columns/product-booking-rules.js.map +1 -0
  71. package/dist/columns/product-category-assignments.d.ts +17 -0
  72. package/dist/columns/product-category-assignments.d.ts.map +1 -0
  73. package/dist/columns/product-category-assignments.js +20 -0
  74. package/dist/columns/product-category-assignments.js.map +1 -0
  75. package/dist/columns/product-extensions.d.ts +24 -0
  76. package/dist/columns/product-extensions.d.ts.map +1 -0
  77. package/dist/columns/product-extensions.js +27 -0
  78. package/dist/columns/product-extensions.js.map +1 -0
  79. package/dist/columns/product-media.d.ts +19 -0
  80. package/dist/columns/product-media.d.ts.map +1 -0
  81. package/dist/columns/product-media.js +22 -0
  82. package/dist/columns/product-media.js.map +1 -0
  83. package/dist/columns/product-overrides.d.ts +19 -0
  84. package/dist/columns/product-overrides.d.ts.map +1 -0
  85. package/dist/columns/product-overrides.js +22 -0
  86. package/dist/columns/product-overrides.js.map +1 -0
  87. package/dist/columns/product-preferences.d.ts +51 -0
  88. package/dist/columns/product-preferences.d.ts.map +1 -0
  89. package/dist/columns/product-preferences.js +59 -0
  90. package/dist/columns/product-preferences.js.map +1 -0
  91. package/dist/columns/product-publish-settings.d.ts +18 -0
  92. package/dist/columns/product-publish-settings.d.ts.map +1 -0
  93. package/dist/columns/product-publish-settings.js +21 -0
  94. package/dist/columns/product-publish-settings.js.map +1 -0
  95. package/dist/columns/product-rate-plans.d.ts +28 -0
  96. package/dist/columns/product-rate-plans.d.ts.map +1 -0
  97. package/dist/columns/product-rate-plans.js +33 -0
  98. package/dist/columns/product-rate-plans.js.map +1 -0
  99. package/dist/columns/product-translations.d.ts +24 -0
  100. package/dist/columns/product-translations.d.ts.map +1 -0
  101. package/dist/columns/product-translations.js +27 -0
  102. package/dist/columns/product-translations.js.map +1 -0
  103. package/dist/columns/product-versions.d.ts +19 -0
  104. package/dist/columns/product-versions.d.ts.map +1 -0
  105. package/dist/columns/product-versions.js +22 -0
  106. package/dist/columns/product-versions.js.map +1 -0
  107. package/dist/columns/product-visibility.d.ts +16 -0
  108. package/dist/columns/product-visibility.d.ts.map +1 -0
  109. package/dist/columns/product-visibility.js +19 -0
  110. package/dist/columns/product-visibility.js.map +1 -0
  111. package/dist/columns/product.d.ts +56 -0
  112. package/dist/columns/product.d.ts.map +1 -0
  113. package/dist/columns/product.js +44 -0
  114. package/dist/columns/product.js.map +1 -0
  115. package/dist/columns/room.d.ts +117 -0
  116. package/dist/columns/room.d.ts.map +1 -0
  117. package/dist/columns/room.js +86 -0
  118. package/dist/columns/room.js.map +1 -0
  119. package/dist/columns/ship.d.ts +22 -0
  120. package/dist/columns/ship.d.ts.map +1 -0
  121. package/dist/columns/ship.js +25 -0
  122. package/dist/columns/ship.js.map +1 -0
  123. package/dist/columns/tags.d.ts +33 -0
  124. package/dist/columns/tags.d.ts.map +1 -0
  125. package/dist/columns/tags.js +38 -0
  126. package/dist/columns/tags.js.map +1 -0
  127. package/dist/columns/transport.d.ts +53 -0
  128. package/dist/columns/transport.d.ts.map +1 -0
  129. package/dist/columns/transport.js +62 -0
  130. package/dist/columns/transport.js.map +1 -0
  131. package/dist/connection-config.d.ts +101 -0
  132. package/dist/connection-config.d.ts.map +1 -0
  133. package/dist/connection-config.js +106 -0
  134. package/dist/connection-config.js.map +1 -0
  135. package/dist/crud.d.ts +87 -0
  136. package/dist/crud.d.ts.map +1 -0
  137. package/dist/crud.js +190 -0
  138. package/dist/crud.js.map +1 -0
  139. package/dist/helpers.d.ts +33 -0
  140. package/dist/helpers.d.ts.map +1 -0
  141. package/dist/helpers.js +49 -0
  142. package/dist/helpers.js.map +1 -0
  143. package/dist/index.d.ts +109 -0
  144. package/dist/index.d.ts.map +1 -0
  145. package/dist/index.js +155 -0
  146. package/dist/index.js.map +1 -0
  147. package/dist/lib/index.d.ts +3 -0
  148. package/dist/lib/index.d.ts.map +1 -0
  149. package/dist/lib/index.js +5 -0
  150. package/dist/lib/index.js.map +1 -0
  151. package/dist/lib/typeid-column.d.ts +75 -0
  152. package/dist/lib/typeid-column.d.ts.map +1 -0
  153. package/dist/lib/typeid-column.js +92 -0
  154. package/dist/lib/typeid-column.js.map +1 -0
  155. package/dist/lib/typeid-core.d.ts +36 -0
  156. package/dist/lib/typeid-core.d.ts.map +1 -0
  157. package/dist/lib/typeid-core.js +67 -0
  158. package/dist/lib/typeid-core.js.map +1 -0
  159. package/dist/lib/typeid-prefixes.d.ts +342 -0
  160. package/dist/lib/typeid-prefixes.d.ts.map +1 -0
  161. package/dist/lib/typeid-prefixes.js +379 -0
  162. package/dist/lib/typeid-prefixes.js.map +1 -0
  163. package/dist/lib/typeid-schemas.d.ts +206 -0
  164. package/dist/lib/typeid-schemas.d.ts.map +1 -0
  165. package/dist/lib/typeid-schemas.js +207 -0
  166. package/dist/lib/typeid-schemas.js.map +1 -0
  167. package/dist/lib/typeid-zod.d.ts +16 -0
  168. package/dist/lib/typeid-zod.d.ts.map +1 -0
  169. package/dist/lib/typeid-zod.js +29 -0
  170. package/dist/lib/typeid-zod.js.map +1 -0
  171. package/dist/lib/typeid.d.ts +2 -0
  172. package/dist/lib/typeid.d.ts.map +1 -0
  173. package/dist/lib/typeid.js +6 -0
  174. package/dist/lib/typeid.js.map +1 -0
  175. package/dist/lifecycle.d.ts +24 -0
  176. package/dist/lifecycle.d.ts.map +1 -0
  177. package/dist/lifecycle.js +30 -0
  178. package/dist/lifecycle.js.map +1 -0
  179. package/dist/links.d.ts +22 -0
  180. package/dist/links.d.ts.map +1 -0
  181. package/dist/links.js +281 -0
  182. package/dist/links.js.map +1 -0
  183. package/dist/operators.d.ts +9 -0
  184. package/dist/operators.d.ts.map +1 -0
  185. package/dist/operators.js +9 -0
  186. package/dist/operators.js.map +1 -0
  187. package/dist/outbox.d.ts +87 -0
  188. package/dist/outbox.d.ts.map +1 -0
  189. package/dist/outbox.js +245 -0
  190. package/dist/outbox.js.map +1 -0
  191. package/dist/primitives/catalog-schemas.d.ts +101 -0
  192. package/dist/primitives/catalog-schemas.d.ts.map +1 -0
  193. package/dist/primitives/catalog-schemas.js +69 -0
  194. package/dist/primitives/catalog-schemas.js.map +1 -0
  195. package/dist/primitives/catalog.d.ts +47 -0
  196. package/dist/primitives/catalog.d.ts.map +1 -0
  197. package/dist/primitives/catalog.js +94 -0
  198. package/dist/primitives/catalog.js.map +1 -0
  199. package/dist/primitives/index.d.ts +4 -0
  200. package/dist/primitives/index.d.ts.map +1 -0
  201. package/dist/primitives/index.js +4 -0
  202. package/dist/primitives/index.js.map +1 -0
  203. package/dist/primitives/offers.d.ts +224 -0
  204. package/dist/primitives/offers.d.ts.map +1 -0
  205. package/dist/primitives/offers.js +132 -0
  206. package/dist/primitives/offers.js.map +1 -0
  207. package/dist/queries/index.d.ts +18 -0
  208. package/dist/queries/index.d.ts.map +1 -0
  209. package/dist/queries/index.js +30 -0
  210. package/dist/queries/index.js.map +1 -0
  211. package/dist/runtime/index.d.ts +4 -0
  212. package/dist/runtime/index.d.ts.map +1 -0
  213. package/dist/runtime/index.js +5 -0
  214. package/dist/runtime/index.js.map +1 -0
  215. package/dist/runtime/locks.d.ts +5 -0
  216. package/dist/runtime/locks.d.ts.map +1 -0
  217. package/dist/runtime/locks.js +36 -0
  218. package/dist/runtime/locks.js.map +1 -0
  219. package/dist/schema/00_ensure_schemas.d.ts +5 -0
  220. package/dist/schema/00_ensure_schemas.d.ts.map +1 -0
  221. package/dist/schema/00_ensure_schemas.js +6 -0
  222. package/dist/schema/00_ensure_schemas.js.map +1 -0
  223. package/dist/schema/aggregate-snapshots.d.ts +97 -0
  224. package/dist/schema/aggregate-snapshots.d.ts.map +1 -0
  225. package/dist/schema/aggregate-snapshots.js +27 -0
  226. package/dist/schema/aggregate-snapshots.js.map +1 -0
  227. package/dist/schema/iam/apikey.d.ts +396 -0
  228. package/dist/schema/iam/apikey.d.ts.map +1 -0
  229. package/dist/schema/iam/apikey.js +41 -0
  230. package/dist/schema/iam/apikey.js.map +1 -0
  231. package/dist/schema/iam/auth.d.ts +1026 -0
  232. package/dist/schema/iam/auth.d.ts.map +1 -0
  233. package/dist/schema/iam/auth.js +138 -0
  234. package/dist/schema/iam/auth.js.map +1 -0
  235. package/dist/schema/iam/cloud_auth.d.ts +446 -0
  236. package/dist/schema/iam/cloud_auth.d.ts.map +1 -0
  237. package/dist/schema/iam/cloud_auth.js +46 -0
  238. package/dist/schema/iam/cloud_auth.js.map +1 -0
  239. package/dist/schema/iam/index.d.ts +8 -0
  240. package/dist/schema/iam/index.d.ts.map +1 -0
  241. package/dist/schema/iam/index.js +8 -0
  242. package/dist/schema/iam/index.js.map +1 -0
  243. package/dist/schema/iam/invitations.d.ts +173 -0
  244. package/dist/schema/iam/invitations.d.ts.map +1 -0
  245. package/dist/schema/iam/invitations.js +27 -0
  246. package/dist/schema/iam/invitations.js.map +1 -0
  247. package/dist/schema/iam/kms.d.ts +53 -0
  248. package/dist/schema/iam/kms.d.ts.map +1 -0
  249. package/dist/schema/iam/kms.js +40 -0
  250. package/dist/schema/iam/kms.js.map +1 -0
  251. package/dist/schema/iam/roles.d.ts +12 -0
  252. package/dist/schema/iam/roles.d.ts.map +1 -0
  253. package/dist/schema/iam/roles.js +12 -0
  254. package/dist/schema/iam/roles.js.map +1 -0
  255. package/dist/schema/iam/user_profiles.d.ts +442 -0
  256. package/dist/schema/iam/user_profiles.d.ts.map +1 -0
  257. package/dist/schema/iam/user_profiles.js +125 -0
  258. package/dist/schema/iam/user_profiles.js.map +1 -0
  259. package/dist/schema/index.d.ts +5 -0
  260. package/dist/schema/index.d.ts.map +1 -0
  261. package/dist/schema/index.js +5 -0
  262. package/dist/schema/index.js.map +1 -0
  263. package/dist/schema/infra/domains.d.ts +609 -0
  264. package/dist/schema/infra/domains.d.ts.map +1 -0
  265. package/dist/schema/infra/domains.js +108 -0
  266. package/dist/schema/infra/domains.js.map +1 -0
  267. package/dist/schema/infra/email_domain_records.d.ts +255 -0
  268. package/dist/schema/infra/email_domain_records.d.ts.map +1 -0
  269. package/dist/schema/infra/email_domain_records.js +65 -0
  270. package/dist/schema/infra/email_domain_records.js.map +1 -0
  271. package/dist/schema/infra/event_outbox.d.ts +232 -0
  272. package/dist/schema/infra/event_outbox.d.ts.map +1 -0
  273. package/dist/schema/infra/event_outbox.js +59 -0
  274. package/dist/schema/infra/event_outbox.js.map +1 -0
  275. package/dist/schema/infra/idempotency_keys.d.ts +186 -0
  276. package/dist/schema/infra/idempotency_keys.d.ts.map +1 -0
  277. package/dist/schema/infra/idempotency_keys.js +40 -0
  278. package/dist/schema/infra/idempotency_keys.js.map +1 -0
  279. package/dist/schema/infra/index.d.ts +9 -0
  280. package/dist/schema/infra/index.d.ts.map +1 -0
  281. package/dist/schema/infra/index.js +10 -0
  282. package/dist/schema/infra/index.js.map +1 -0
  283. package/dist/schema/infra/public_document_delivery_grants.d.ts +356 -0
  284. package/dist/schema/infra/public_document_delivery_grants.d.ts.map +1 -0
  285. package/dist/schema/infra/public_document_delivery_grants.js +36 -0
  286. package/dist/schema/infra/public_document_delivery_grants.js.map +1 -0
  287. package/dist/schema/infra/rate_limit_buckets.d.ts +138 -0
  288. package/dist/schema/infra/rate_limit_buckets.d.ts.map +1 -0
  289. package/dist/schema/infra/rate_limit_buckets.js +52 -0
  290. package/dist/schema/infra/rate_limit_buckets.js.map +1 -0
  291. package/dist/schema/infra/webhook_deliveries.d.ts +572 -0
  292. package/dist/schema/infra/webhook_deliveries.d.ts.map +1 -0
  293. package/dist/schema/infra/webhook_deliveries.js +136 -0
  294. package/dist/schema/infra/webhook_deliveries.js.map +1 -0
  295. package/dist/schema/infra/webhook_subscriptions.d.ts +284 -0
  296. package/dist/schema/infra/webhook_subscriptions.d.ts.map +1 -0
  297. package/dist/schema/infra/webhook_subscriptions.js +64 -0
  298. package/dist/schema/infra/webhook_subscriptions.js.map +1 -0
  299. package/dist/schema/infra/write_intents.d.ts +185 -0
  300. package/dist/schema/infra/write_intents.d.ts.map +1 -0
  301. package/dist/schema/infra/write_intents.js +50 -0
  302. package/dist/schema/infra/write_intents.js.map +1 -0
  303. package/dist/schema/voyant/bookings.d.ts +2 -0
  304. package/dist/schema/voyant/bookings.d.ts.map +1 -0
  305. package/dist/schema/voyant/bookings.js +2 -0
  306. package/dist/schema/voyant/bookings.js.map +1 -0
  307. package/dist/schema/voyant/finance.d.ts +2 -0
  308. package/dist/schema/voyant/finance.d.ts.map +1 -0
  309. package/dist/schema/voyant/finance.js +2 -0
  310. package/dist/schema/voyant/finance.js.map +1 -0
  311. package/dist/test-utils.d.ts +17 -0
  312. package/dist/test-utils.d.ts.map +1 -0
  313. package/dist/test-utils.js +56 -0
  314. package/dist/test-utils.js.map +1 -0
  315. package/dist/transaction-capability.d.ts +11 -0
  316. package/dist/transaction-capability.d.ts.map +1 -0
  317. package/dist/transaction-capability.js +17 -0
  318. package/dist/transaction-capability.js.map +1 -0
  319. package/dist/transaction.d.ts +31 -0
  320. package/dist/transaction.d.ts.map +1 -0
  321. package/dist/transaction.js +72 -0
  322. package/dist/transaction.js.map +1 -0
  323. package/dist/tsconfig.tsbuildinfo +1 -0
  324. package/dist/types.d.ts +10 -0
  325. package/dist/types.d.ts.map +1 -0
  326. package/dist/types.js +2 -0
  327. package/dist/types.js.map +1 -0
  328. package/dist/utils.d.ts +2 -0
  329. package/dist/utils.d.ts.map +1 -0
  330. package/dist/utils.js +19 -0
  331. package/dist/utils.js.map +1 -0
  332. package/dist/write-intents.d.ts +51 -0
  333. package/dist/write-intents.d.ts.map +1 -0
  334. package/dist/write-intents.js +95 -0
  335. package/dist/write-intents.js.map +1 -0
  336. 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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"}