@voyantjs/schema-kit 0.95.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/README.md ADDED
@@ -0,0 +1,23 @@
1
+ # @voyantjs/schema-kit
2
+
3
+ Foundational, dependency-light schema primitives shared by the framework runtime
4
+ **and** the `*-contracts` packages. Pure (`zod` + `typeid-js` only) — no Drizzle,
5
+ no `@voyantjs/db`, no runtime — so contract packages can depend on these without
6
+ pulling the data layer.
7
+
8
+ See [`docs/adr/0002-contract-packages.md`](../../docs/adr/0002-contract-packages.md).
9
+
10
+ ## What's here
11
+
12
+ - **`./typeid`** — the canonical TypeID system: the prefix registry, id
13
+ generation (`newId`), and the zod validators (`typeIdSchema`, `typeIdSchemas`).
14
+ `@voyantjs/db/lib/typeid` re-exports from here, so existing import paths are
15
+ unchanged.
16
+ - **`./query-params`** — `booleanQueryParam` and friends: pure zod helpers for
17
+ coercing URL query-string values.
18
+ - **`./kms`** — `kmsEnvelopeSchema`: the pure zod shape for KMS-encrypted PII
19
+ envelopes.
20
+
21
+ These were previously defined inside `@voyantjs/db`; they live here now so they
22
+ sit *below* the data layer in the dependency graph. `@voyantjs/db` re-exports
23
+ them, and the `*-contracts` packages import them directly to stay zod-only.
@@ -0,0 +1,4 @@
1
+ export * from "./kms.js";
2
+ export * from "./query-params.js";
3
+ export * from "./typeid/index.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from "./kms.js";
2
+ export * from "./query-params.js";
3
+ export * from "./typeid/index.js";
package/dist/kms.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * KMS Encrypted Envelope schema.
4
+ * All toxic PII is encrypted with GCP KMS before storage.
5
+ * Format: { enc: "base64-encoded-ciphertext" }
6
+ */
7
+ export declare const kmsEnvelopeSchema: z.ZodNullable<z.ZodObject<{
8
+ enc: z.ZodString;
9
+ }, z.core.$strip>>;
10
+ export type KmsEnvelope = z.infer<typeof kmsEnvelopeSchema>;
11
+ //# sourceMappingURL=kms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kms.d.ts","sourceRoot":"","sources":["../src/kms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;kBAIjB,CAAA;AAEb,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
package/dist/kms.js ADDED
@@ -0,0 +1,11 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * KMS Encrypted Envelope schema.
4
+ * All toxic PII is encrypted with GCP KMS before storage.
5
+ * Format: { enc: "base64-encoded-ciphertext" }
6
+ */
7
+ export const kmsEnvelopeSchema = z
8
+ .object({
9
+ enc: z.string().min(1, "Encrypted value is required"),
10
+ })
11
+ .nullable();
@@ -0,0 +1,15 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Zod schema for boolean query parameters.
4
+ *
5
+ * `z.coerce.boolean()` is broken for query strings: `"false"` coerces to
6
+ * `Boolean("false")` → `true`. This schema correctly handles `"true"` and
7
+ * `"false"` string values from URL search params.
8
+ */
9
+ export declare const booleanQueryParam: z.ZodPipe<z.ZodEnum<{
10
+ true: "true";
11
+ 0: "0";
12
+ false: "false";
13
+ 1: "1";
14
+ }>, z.ZodTransform<boolean, "true" | "0" | "false" | "1">>;
15
+ //# sourceMappingURL=query-params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-params.d.ts","sourceRoot":"","sources":["../src/query-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;;;0DAEgB,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Zod schema for boolean query parameters.
4
+ *
5
+ * `z.coerce.boolean()` is broken for query strings: `"false"` coerces to
6
+ * `Boolean("false")` → `true`. This schema correctly handles `"true"` and
7
+ * `"false"` string values from URL search params.
8
+ */
9
+ export const booleanQueryParam = z
10
+ .enum(["true", "false", "1", "0"])
11
+ .transform((v) => v === "true" || v === "1");
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schema-kit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-kit.test.d.ts","sourceRoot":"","sources":["../src/schema-kit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { booleanQueryParam, kmsEnvelopeSchema, newId, typeIdSchema } from "./index.js";
3
+ describe("@voyantjs/schema-kit", () => {
4
+ it("generates and validates prefixed TypeIDs", () => {
5
+ const id = newId("bookings");
6
+ expect(id.startsWith("book_")).toBe(true);
7
+ expect(typeIdSchema("bookings").safeParse(id).success).toBe(true);
8
+ expect(typeIdSchema("bookings").safeParse("not-a-typeid").success).toBe(false);
9
+ });
10
+ it("coerces boolean query params correctly (the z.coerce.boolean footgun)", () => {
11
+ expect(booleanQueryParam.parse("true")).toBe(true);
12
+ expect(booleanQueryParam.parse("1")).toBe(true);
13
+ expect(booleanQueryParam.parse("false")).toBe(false);
14
+ expect(booleanQueryParam.parse("0")).toBe(false);
15
+ });
16
+ it("validates the KMS envelope shape", () => {
17
+ expect(kmsEnvelopeSchema.safeParse({ enc: "ciphertext" }).success).toBe(true);
18
+ expect(kmsEnvelopeSchema.safeParse(null).success).toBe(true);
19
+ expect(kmsEnvelopeSchema.safeParse({ enc: "" }).success).toBe(false);
20
+ });
21
+ });
@@ -0,0 +1,5 @@
1
+ export * from "./typeid-core.js";
2
+ export * from "./typeid-prefixes.js";
3
+ export * from "./typeid-schemas.js";
4
+ export * from "./typeid-zod.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/typeid/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from "./typeid-core.js";
2
+ export * from "./typeid-prefixes.js";
3
+ export * from "./typeid-schemas.js";
4
+ export * from "./typeid-zod.js";
@@ -0,0 +1,36 @@
1
+ import { TypeID } from "typeid-js";
2
+ import { type PrefixKey, type PrefixValue } from "./typeid-prefixes.js";
3
+ /**
4
+ * Register a custom TypeID prefix for extension tables.
5
+ */
6
+ export declare function registerPrefix(tableName: string, prefix: string): void;
7
+ /**
8
+ * Generates a new TypeID with the correct prefix.
9
+ */
10
+ export declare function newId(prefix: PrefixKey): string;
11
+ /**
12
+ * Generates a new TypeID using a raw prefix string.
13
+ */
14
+ export declare function newIdFromPrefix(prefix: string): string;
15
+ /**
16
+ * Decodes a TypeID string to extract its components.
17
+ */
18
+ export declare function decodeId<T extends string>(id: string, expectedPrefix: T): TypeID<T>;
19
+ export declare function decodeId(id: string): TypeID<string>;
20
+ /**
21
+ * Validates that a string is a valid TypeID with the expected prefix.
22
+ */
23
+ export declare function isValidId(id: string, expectedPrefix: PrefixKey | PrefixValue): boolean;
24
+ /**
25
+ * Extracts the prefix from a TypeID string.
26
+ */
27
+ export declare function getPrefix(id: string): string;
28
+ /**
29
+ * Extracts the timestamp from a TypeID.
30
+ */
31
+ export declare function getTimestamp(id: string): Date;
32
+ /**
33
+ * Compares two TypeIDs chronologically.
34
+ */
35
+ export declare function compareIds(a: string, b: string): number;
36
+ //# sourceMappingURL=typeid-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeid-core.d.ts","sourceRoot":"","sources":["../../src/typeid/typeid-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,WAAW,CAAA;AAE1C,OAAO,EAAY,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEjF;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAUtE;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AACpF,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;AAYpD;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,CAStF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAI7C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvD"}
@@ -0,0 +1,66 @@
1
+ import { TypeID, typeid } from "typeid-js";
2
+ import { PREFIXES } from "./typeid-prefixes.js";
3
+ /**
4
+ * Register a custom TypeID prefix for extension tables.
5
+ */
6
+ export function registerPrefix(tableName, prefix) {
7
+ if (PREFIXES[tableName]) {
8
+ throw new Error(`Prefix already registered for table "${tableName}"`);
9
+ }
10
+ if (Object.values(PREFIXES).includes(prefix)) {
11
+ throw new Error(`Prefix "${prefix}" is already in use`);
12
+ }
13
+ ;
14
+ PREFIXES[tableName] = prefix;
15
+ }
16
+ /**
17
+ * Generates a new TypeID with the correct prefix.
18
+ */
19
+ export function newId(prefix) {
20
+ return typeid(PREFIXES[prefix]).toString();
21
+ }
22
+ /**
23
+ * Generates a new TypeID using a raw prefix string.
24
+ */
25
+ export function newIdFromPrefix(prefix) {
26
+ return typeid(prefix).toString();
27
+ }
28
+ export function decodeId(id, expectedPrefix) {
29
+ if (expectedPrefix) {
30
+ return TypeID.fromString(id, expectedPrefix);
31
+ }
32
+ return TypeID.fromString(id);
33
+ }
34
+ /**
35
+ * Validates that a string is a valid TypeID with the expected prefix.
36
+ */
37
+ export function isValidId(id, expectedPrefix) {
38
+ try {
39
+ const decoded = decodeId(id);
40
+ const prefix = expectedPrefix in PREFIXES ? PREFIXES[expectedPrefix] : expectedPrefix;
41
+ return decoded.getType() === prefix;
42
+ }
43
+ catch {
44
+ return false;
45
+ }
46
+ }
47
+ /**
48
+ * Extracts the prefix from a TypeID string.
49
+ */
50
+ export function getPrefix(id) {
51
+ return decodeId(id).getType();
52
+ }
53
+ /**
54
+ * Extracts the timestamp from a TypeID.
55
+ */
56
+ export function getTimestamp(id) {
57
+ const uuid = decodeId(id).toUUID();
58
+ const hex = uuid.replace(/-/g, "").slice(0, 12);
59
+ return new Date(parseInt(hex, 16));
60
+ }
61
+ /**
62
+ * Compares two TypeIDs chronologically.
63
+ */
64
+ export function compareIds(a, b) {
65
+ return a.localeCompare(b);
66
+ }
@@ -0,0 +1,346 @@
1
+ /**
2
+ * All entity prefixes for the Voyant platform.
3
+ *
4
+ * Convention:
5
+ * - Root entities: first N chars of the entity name, shortest unambiguous (2-4 chars).
6
+ * Examples: prod (product), book (booking), inv (invoice), pers (person), org (organization).
7
+ * - Child entities: 2-char module code + 2-char child suffix from the child entity's first chars.
8
+ * Examples: bk+it = bkit (booking_item), ch+co = chco (channel_contract).
9
+ * - All lowercase alphanumeric, max 4 chars.
10
+ * - Prefer guessable over clever — a developer should be able to guess the prefix from the entity name.
11
+ */
12
+ export declare const PREFIXES: {
13
+ readonly user_profiles: "usrp";
14
+ readonly user_invitations: "uinv";
15
+ readonly connection_secrets: "secr";
16
+ readonly webhook_subscriptions: "hksub";
17
+ readonly webhook_deliveries: "whde";
18
+ readonly rate_limit_buckets: "rlbk";
19
+ readonly public_document_delivery_grants: "pddg";
20
+ readonly domains: "dom";
21
+ readonly email_domain_records: "emdr";
22
+ readonly idempotency_keys: "ikey";
23
+ readonly action_ledger_entries: "alge";
24
+ readonly action_ledger_outbox: "algo";
25
+ readonly action_ledger_payloads: "algp";
26
+ readonly action_delegations: "aldg";
27
+ readonly action_mutation_details: "almd";
28
+ readonly action_sensitive_read_details: "alsr";
29
+ readonly action_approvals: "alap";
30
+ readonly communication_log: "clog";
31
+ readonly customer_signals: "csig";
32
+ readonly notification_templates: "ntpl";
33
+ readonly notification_deliveries: "ntdl";
34
+ readonly notification_reminder_rules: "ntrl";
35
+ readonly notification_reminder_runs: "ntrn";
36
+ readonly notification_reminder_rule_stages: "ntrs";
37
+ readonly notification_reminder_stage_channels: "ntsc";
38
+ readonly notification_settings: "nset";
39
+ readonly person_notes: "pnot";
40
+ readonly organization_notes: "onot";
41
+ readonly segments: "seg";
42
+ readonly segment_members: "segm";
43
+ readonly suppliers: "supp";
44
+ readonly supplier_services: "ssvc";
45
+ readonly supplier_rates: "srat";
46
+ readonly supplier_notes: "snot";
47
+ readonly supplier_availability: "sava";
48
+ readonly supplier_contracts: "scon";
49
+ readonly products: "prod";
50
+ readonly product_options: "popt";
51
+ readonly option_units: "ount";
52
+ readonly product_activation_settings: "pras";
53
+ readonly product_ticket_settings: "prts";
54
+ readonly product_visibility_settings: "prvs";
55
+ readonly product_capabilities: "prcp";
56
+ readonly product_delivery_formats: "prdf";
57
+ readonly product_translations: "prtr";
58
+ readonly product_option_translations: "potr";
59
+ readonly option_unit_translations: "outr";
60
+ readonly product_itineraries: "piti";
61
+ readonly product_days: "pday";
62
+ readonly product_day_services: "pdse";
63
+ readonly product_versions: "pver";
64
+ readonly product_notes: "prnt";
65
+ readonly bookings: "book";
66
+ readonly booking_travelers: "bkpt";
67
+ readonly booking_participants: "bkpt";
68
+ readonly booking_items: "bkit";
69
+ readonly booking_allocations: "bkac";
70
+ readonly booking_fulfillments: "bkfl";
71
+ readonly booking_redemption_events: "bkrd";
72
+ readonly booking_item_travelers: "bkip";
73
+ readonly booking_item_participants: "bkip";
74
+ readonly booking_staff_assignments: "bkstf";
75
+ readonly booking_passengers: "bkps";
76
+ readonly booking_supplier_statuses: "bkss";
77
+ readonly booking_activity_log: "bkal";
78
+ readonly booking_pii_access_log: "bkpl";
79
+ readonly booking_notes: "bnot";
80
+ readonly booking_documents: "bdoc";
81
+ readonly booking_groups: "bkgr";
82
+ readonly booking_group_members: "bkgm";
83
+ readonly booking_session_states: "bkst";
84
+ readonly availability_rules: "avrl";
85
+ readonly availability_start_times: "avst";
86
+ readonly availability_slots: "avsl";
87
+ readonly availability_closeouts: "avcl";
88
+ readonly allocation_resources: "alrs";
89
+ readonly allocation_audit_log: "alal";
90
+ readonly product_option_resource_templates: "port";
91
+ readonly availability_pickup_points: "avpp";
92
+ readonly availability_slot_pickups: "avsp";
93
+ readonly product_meeting_configs: "pmcf";
94
+ readonly pickup_groups: "pkgr";
95
+ readonly pickup_locations: "pklo";
96
+ readonly location_pickup_times: "lpkt";
97
+ readonly custom_pickup_areas: "cpka";
98
+ readonly organizations: "org";
99
+ readonly people: "pers";
100
+ readonly person_documents: "pdoc";
101
+ readonly person_relationships: "prel";
102
+ readonly pipelines: "pipe";
103
+ readonly stages: "stg";
104
+ readonly opportunities: "opp";
105
+ readonly opportunity_participants: "oppp";
106
+ readonly opportunity_products: "oppr";
107
+ readonly quotes: "quot";
108
+ readonly quote_lines: "qtln";
109
+ readonly activities: "act";
110
+ readonly activity_links: "actl";
111
+ readonly activity_participants: "actp";
112
+ readonly custom_field_definitions: "cfdf";
113
+ readonly custom_field_values: "cfvl";
114
+ readonly person_payment_methods: "pmth";
115
+ readonly invoices: "inv";
116
+ readonly payment_instruments: "pmin";
117
+ readonly vouchers: "vch";
118
+ readonly voucher_redemptions: "vchr";
119
+ readonly payment_sessions: "pmss";
120
+ readonly payment_authorizations: "pmaz";
121
+ readonly payment_captures: "pmcp";
122
+ readonly booking_payment_schedules: "bkpy";
123
+ readonly booking_guarantees: "bkgu";
124
+ readonly booking_item_tax_lines: "bitx";
125
+ readonly booking_item_commissions: "bcom";
126
+ readonly invoice_line_items: "inli";
127
+ readonly payments: "pay";
128
+ readonly credit_notes: "crn";
129
+ readonly credit_note_line_items: "cnli";
130
+ readonly supplier_payments: "spay";
131
+ readonly finance_notes: "fnot";
132
+ readonly resources: "res";
133
+ readonly resource_pools: "repl";
134
+ readonly resource_pool_members: "repm";
135
+ readonly resource_requirements: "rerq";
136
+ readonly resource_slot_assignments: "resa";
137
+ readonly resource_closeouts: "recl";
138
+ readonly ground_operators: "gopr";
139
+ readonly ground_vehicles: "gveh";
140
+ readonly ground_drivers: "gdrv";
141
+ readonly ground_transfer_preferences: "gtpr";
142
+ readonly ground_dispatches: "gdsp";
143
+ readonly ground_execution_events: "gexe";
144
+ readonly ground_dispatch_assignments: "gdas";
145
+ readonly ground_dispatch_legs: "gdlg";
146
+ readonly ground_dispatch_passengers: "gdps";
147
+ readonly ground_driver_shifts: "gdsh";
148
+ readonly ground_service_incidents: "gsin";
149
+ readonly ground_dispatch_checkpoints: "gdcp";
150
+ readonly channels: "chan";
151
+ readonly channel_contracts: "chco";
152
+ readonly channel_commission_rules: "chcr";
153
+ readonly channel_product_mappings: "chpm";
154
+ readonly channel_booking_links: "chbl";
155
+ readonly channel_webhook_events: "chwe";
156
+ readonly channel_inventory_allotments: "chia";
157
+ readonly channel_inventory_allotment_targets: "chat";
158
+ readonly channel_inventory_release_rules: "chir";
159
+ readonly channel_settlement_runs: "chsr";
160
+ readonly channel_settlement_items: "chsi";
161
+ readonly channel_reconciliation_runs: "chrr";
162
+ readonly channel_reconciliation_items: "chri";
163
+ readonly channel_inventory_release_executions: "chrx";
164
+ readonly channel_settlement_policies: "chsp";
165
+ readonly channel_reconciliation_policies: "chrp";
166
+ readonly channel_release_schedules: "chrs";
167
+ readonly channel_remittance_exceptions: "chre";
168
+ readonly channel_settlement_approvals: "chap";
169
+ readonly channel_availability_push_intents: "cavi";
170
+ readonly channel_content_push_intents: "ccpi";
171
+ readonly facilities: "fac";
172
+ readonly facility_contacts: "fcon";
173
+ readonly facility_features: "ffea";
174
+ readonly facility_operation_schedules: "fops";
175
+ readonly properties: "prop";
176
+ readonly property_groups: "pgrp";
177
+ readonly property_group_members: "pgpm";
178
+ readonly room_types: "hrmt";
179
+ readonly room_type_bed_configs: "hrbc";
180
+ readonly room_units: "hrun";
181
+ readonly meal_plans: "hmlp";
182
+ readonly rate_plans: "hrpl";
183
+ readonly rate_plan_room_types: "hrrt";
184
+ readonly stay_rules: "hstr";
185
+ readonly room_inventory: "hriv";
186
+ readonly rate_plan_inventory_overrides: "hrio";
187
+ readonly stay_booking_items: "hsbi";
188
+ readonly stay_daily_rates: "hsdr";
189
+ readonly room_type_rates: "hrtr";
190
+ readonly room_blocks: "hrbl";
191
+ readonly room_unit_status_events: "hrse";
192
+ readonly maintenance_blocks: "hmbl";
193
+ readonly housekeeping_tasks: "hhkt";
194
+ readonly stay_operations: "hsop";
195
+ readonly stay_checkpoints: "hscp";
196
+ readonly stay_service_posts: "hssp";
197
+ readonly stay_folios: "hsfo";
198
+ readonly stay_folio_lines: "hsfl";
199
+ readonly identity_contact_points: "idcp";
200
+ readonly identity_addresses: "idad";
201
+ readonly identity_named_contacts: "idnc";
202
+ readonly markets: "mkt";
203
+ readonly market_locales: "mklo";
204
+ readonly market_currencies: "mkcu";
205
+ readonly fx_rate_sets: "fxrs";
206
+ readonly exchange_rates: "fxrt";
207
+ readonly pricing_categories: "prcg";
208
+ readonly pricing_category_dependencies: "prcd";
209
+ readonly cancellation_policies: "ccpo";
210
+ readonly cancellation_policy_rules: "ccpr";
211
+ readonly price_catalogs: "prca";
212
+ readonly price_schedules: "prsc";
213
+ readonly option_price_rules: "oprr";
214
+ readonly option_unit_price_rules: "oupr";
215
+ readonly option_start_time_rules: "ostr";
216
+ readonly option_unit_tiers: "outi";
217
+ readonly pickup_price_rules: "pkpr";
218
+ readonly dropoff_price_rules: "drpr";
219
+ readonly extra_price_rules: "expr";
220
+ readonly departure_price_overrides: "dpov";
221
+ readonly product_extras: "pxtr";
222
+ readonly option_extra_configs: "oexc";
223
+ readonly booking_extras: "bkex";
224
+ readonly extra_participant_selections: "exps";
225
+ readonly product_contact_requirements: "pcre";
226
+ readonly product_booking_questions: "pbqq";
227
+ readonly option_booking_questions: "obqq";
228
+ readonly booking_question_options: "bqop";
229
+ readonly booking_question_unit_triggers: "bqut";
230
+ readonly booking_question_option_triggers: "bqot";
231
+ readonly booking_question_extra_triggers: "bqet";
232
+ readonly booking_answers: "bqan";
233
+ readonly storefront_verification_challenges: "svch";
234
+ readonly offers: "ofr";
235
+ readonly offer_contact_assignments: "ofca";
236
+ readonly offer_participants: "ofpt";
237
+ readonly offer_staff_assignments: "ofsa";
238
+ readonly offer_items: "ofit";
239
+ readonly offer_item_participants: "ofip";
240
+ readonly orders: "ord";
241
+ readonly order_contact_assignments: "orca";
242
+ readonly order_participants: "orpt";
243
+ readonly order_staff_assignments: "orsa";
244
+ readonly order_items: "orit";
245
+ readonly order_item_participants: "orip";
246
+ readonly order_terms: "ortm";
247
+ readonly transaction_pii_access_log: "tpal";
248
+ readonly market_price_catalogs: "mkpc";
249
+ readonly market_product_rules: "mkpr";
250
+ readonly market_channel_rules: "mkcr";
251
+ readonly external_refs: "exrf";
252
+ readonly sellability_snapshots: "sels";
253
+ readonly sellability_snapshot_items: "sesi";
254
+ readonly sellability_policies: "slpo";
255
+ readonly sellability_policy_results: "slpr";
256
+ readonly offer_refresh_runs: "ofrr";
257
+ readonly offer_expiration_events: "ofee";
258
+ readonly sellability_explanations: "slex";
259
+ readonly contracts: "cont";
260
+ readonly contract_templates: "ctpl";
261
+ readonly contract_template_versions: "ctpv";
262
+ readonly contract_signatures: "ctsi";
263
+ readonly contract_number_series: "ctns";
264
+ readonly contract_attachments: "ctat";
265
+ readonly policies: "pol";
266
+ readonly policy_versions: "plvr";
267
+ readonly policy_rules: "plrl";
268
+ readonly policy_assignments: "plas";
269
+ readonly policy_acceptances: "plac";
270
+ readonly invoice_number_series: "invs";
271
+ readonly invoice_templates: "invt";
272
+ readonly invoice_renditions: "invr";
273
+ readonly invoice_attachments: "inat";
274
+ readonly tax_regimes: "txrg";
275
+ readonly invoice_external_refs: "iner";
276
+ readonly product_media: "pmed";
277
+ readonly product_features: "pftr";
278
+ readonly product_faqs: "pfaq";
279
+ readonly product_locations: "ploc";
280
+ readonly product_types: "ptyp";
281
+ readonly product_categories: "pctg";
282
+ readonly product_category_translations: "pctr";
283
+ readonly product_tags: "ptag";
284
+ readonly product_tag_translations: "pttr";
285
+ readonly destinations: "dest";
286
+ readonly destination_translations: "dtrn";
287
+ readonly product_destinations: "pdst";
288
+ readonly booking_product_details: "bkpd";
289
+ readonly booking_item_product_details: "bipd";
290
+ readonly booking_crm_details: "bkcd";
291
+ readonly booking_transaction_details: "bktd";
292
+ readonly booking_distribution_details: "bkdd";
293
+ readonly booking_traveler_travel_details: "bptd";
294
+ readonly booking_participant_travel_details: "bptd";
295
+ readonly cruises: "cru";
296
+ readonly cruise_voyage_groups: "crvg";
297
+ readonly cruise_voyage_group_segments: "crvs";
298
+ readonly cruise_sailings: "crsl";
299
+ readonly cruise_ships: "crsh";
300
+ readonly cruise_decks: "crdk";
301
+ readonly cruise_cabin_categories: "crcc";
302
+ readonly cruise_cabins: "crcb";
303
+ readonly cruise_prices: "crpx";
304
+ readonly cruise_price_components: "crpc";
305
+ readonly cruise_days: "crdy";
306
+ readonly cruise_sailing_days: "crsd";
307
+ readonly cruise_media: "crme";
308
+ readonly cruise_inclusions: "crin";
309
+ readonly cruise_search_index: "crsi";
310
+ readonly cruise_enrichment_programs: "crep";
311
+ readonly charter_products: "chrt";
312
+ readonly charter_voyages: "chrv";
313
+ readonly charter_yachts: "chry";
314
+ readonly charter_suites: "chst";
315
+ readonly charter_schedule_days: "chrd";
316
+ readonly catalog_overlay: "ovly";
317
+ readonly booking_catalog_snapshot: "bcsn";
318
+ readonly catalog_drift_event: "cdrf";
319
+ readonly catalog_quotes: "cquo";
320
+ readonly catalog_sourced_entries: "cse";
321
+ readonly catalog_content_drift_event: "cnde";
322
+ readonly catalog_demo_inventory: "cdmi";
323
+ readonly catalog_demo_orders: "cdmo";
324
+ readonly booking_drafts: "bdrf";
325
+ readonly trip_envelopes: "trip";
326
+ readonly trip_components: "trcp";
327
+ readonly trip_component_events: "trce";
328
+ readonly tax_classes: "txcl";
329
+ readonly tax_policy_profiles: "txpp";
330
+ readonly tax_policy_rules: "txpr";
331
+ readonly product_pax_pricing_tiers: "ppt";
332
+ readonly availability_holds: "avhd";
333
+ readonly workflow_runs: "wfrn";
334
+ readonly workflow_run_steps: "wfrs";
335
+ readonly operator_settings: "opset";
336
+ readonly operator_profile: "oppf";
337
+ readonly operator_payment_instructions: "opin";
338
+ readonly operator_payment_defaults: "opdp";
339
+ readonly booking_tax_settings: "btxs";
340
+ readonly promotional_offers: "pofr";
341
+ readonly promotional_offer_redemptions: "pofx";
342
+ readonly promotional_offer_scheduler_state: "pofs";
343
+ };
344
+ export type PrefixKey = keyof typeof PREFIXES;
345
+ export type PrefixValue = (typeof PREFIXES)[PrefixKey];
346
+ //# sourceMappingURL=typeid-prefixes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeid-prefixes.d.ts","sourceRoot":"","sources":["../../src/typeid/typeid-prefixes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkYX,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,QAAQ,CAAA;AAC7C,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAA"}