@voyantjs/products 0.90.0 → 0.94.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/dist/catalog-policy-destinations.d.ts +5 -3
- package/dist/catalog-policy-destinations.d.ts.map +1 -1
- package/dist/catalog-policy-destinations.js +47 -3
- package/dist/routes-merchandising.d.ts +12 -0
- package/dist/routes-merchandising.d.ts.map +1 -1
- package/dist/routes-public.d.ts +15 -0
- package/dist/routes-public.d.ts.map +1 -1
- package/dist/routes.d.ts +12 -0
- package/dist/routes.d.ts.map +1 -1
- package/dist/schema-taxonomy.d.ts +51 -0
- package/dist/schema-taxonomy.d.ts.map +1 -1
- package/dist/schema-taxonomy.js +5 -1
- package/dist/service-catalog-plane-destinations.d.ts.map +1 -1
- package/dist/service-catalog-plane-destinations.js +26 -2
- package/dist/service-catalog.d.ts +6 -0
- package/dist/service-catalog.d.ts.map +1 -1
- package/dist/service-catalog.js +9 -0
- package/dist/service-public.d.ts +15 -0
- package/dist/service-public.d.ts.map +1 -1
- package/dist/service-public.js +6 -0
- package/dist/service.d.ts +12 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +6 -0
- package/dist/validation-catalog.d.ts +18 -0
- package/dist/validation-catalog.d.ts.map +1 -1
- package/dist/validation-content.d.ts +31 -0
- package/dist/validation-content.d.ts.map +1 -1
- package/dist/validation-content.js +5 -0
- package/dist/validation-public.d.ts +52 -0
- package/dist/validation-public.d.ts.map +1 -1
- package/dist/validation-public.js +4 -0
- package/dist/validation-shared.d.ts +6 -0
- package/dist/validation-shared.d.ts.map +1 -1
- package/dist/validation-shared.js +12 -1
- package/package.json +8 -8
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* - "trips to Italy" (filter: `countries[]` includes "Italy")
|
|
12
12
|
* - "trips in Rome" (filter: `cities[]` includes "Rome")
|
|
13
13
|
* - "Mediterranean cruises" (filter: `regions[]` includes "Mediterranean")
|
|
14
|
+
* - "cruises from Amsterdam" (filter: `ports[]` or canonical place ids)
|
|
14
15
|
*
|
|
15
16
|
* Wire this policy into the products registry by composing with
|
|
16
17
|
* `productCatalogPolicy`:
|
|
@@ -23,10 +24,11 @@
|
|
|
23
24
|
* and wire `createProductDestinationsProjectionExtension` into
|
|
24
25
|
* `createProductDocumentBuilder` so the values land in the doc.
|
|
25
26
|
*
|
|
27
|
+
* Destination rows can carry canonical place ids (for example UN/LOCODE)
|
|
28
|
+
* and optional display coordinates. The gazetteer itself remains external;
|
|
29
|
+
* this module stores stable pointers/snapshots for faceting.
|
|
30
|
+
*
|
|
26
31
|
* Out of scope here:
|
|
27
|
-
* - Coordinates / geopoints. The `destinations` table has no coordinate
|
|
28
|
-
* columns; product geolocation lives on `product_locations` and will
|
|
29
|
-
* ship as its own policy in a follow-up PR.
|
|
30
32
|
* - Slug fields per locale. Destinations have one canonical slug today;
|
|
31
33
|
* locale-specific slugs are a follow-up if marketing needs them.
|
|
32
34
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-policy-destinations.d.ts","sourceRoot":"","sources":["../src/catalog-policy-destinations.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"catalog-policy-destinations.d.ts","sourceRoot":"","sources":["../src/catalog-policy-destinations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAErF,QAAA,MAAM,iCAAiC,EAAE,gBAAgB,EA6HxD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gCAAgC,2CAAuD,CAAA;AAEpG,OAAO,EAAE,iCAAiC,EAAE,CAAA"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* - "trips to Italy" (filter: `countries[]` includes "Italy")
|
|
12
12
|
* - "trips in Rome" (filter: `cities[]` includes "Rome")
|
|
13
13
|
* - "Mediterranean cruises" (filter: `regions[]` includes "Mediterranean")
|
|
14
|
+
* - "cruises from Amsterdam" (filter: `ports[]` or canonical place ids)
|
|
14
15
|
*
|
|
15
16
|
* Wire this policy into the products registry by composing with
|
|
16
17
|
* `productCatalogPolicy`:
|
|
@@ -23,10 +24,11 @@
|
|
|
23
24
|
* and wire `createProductDestinationsProjectionExtension` into
|
|
24
25
|
* `createProductDocumentBuilder` so the values land in the doc.
|
|
25
26
|
*
|
|
27
|
+
* Destination rows can carry canonical place ids (for example UN/LOCODE)
|
|
28
|
+
* and optional display coordinates. The gazetteer itself remains external;
|
|
29
|
+
* this module stores stable pointers/snapshots for faceting.
|
|
30
|
+
*
|
|
26
31
|
* Out of scope here:
|
|
27
|
-
* - Coordinates / geopoints. The `destinations` table has no coordinate
|
|
28
|
-
* columns; product geolocation lives on `product_locations` and will
|
|
29
|
-
* ship as its own policy in a follow-up PR.
|
|
30
32
|
* - Slug fields per locale. Destinations have one canonical slug today;
|
|
31
33
|
* locale-specific slugs are a follow-up if marketing needs them.
|
|
32
34
|
*/
|
|
@@ -78,6 +80,34 @@ const PRODUCT_DESTINATIONS_FIELD_POLICY = [
|
|
|
78
80
|
overrideFriction: "none",
|
|
79
81
|
sourceFreshness: "sync",
|
|
80
82
|
},
|
|
83
|
+
{
|
|
84
|
+
path: "ports[]",
|
|
85
|
+
class: "structural",
|
|
86
|
+
merge: "source-only",
|
|
87
|
+
drift: "low",
|
|
88
|
+
reindex: "entry-locale",
|
|
89
|
+
snapshot: "on-book",
|
|
90
|
+
query: "indexed-column",
|
|
91
|
+
localized: true,
|
|
92
|
+
visibility: ["staff", "customer", "partner"],
|
|
93
|
+
editRole: "none",
|
|
94
|
+
overrideFriction: "none",
|
|
95
|
+
sourceFreshness: "sync",
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
path: "waterways[]",
|
|
99
|
+
class: "structural",
|
|
100
|
+
merge: "source-only",
|
|
101
|
+
drift: "low",
|
|
102
|
+
reindex: "entry-locale",
|
|
103
|
+
snapshot: "on-book",
|
|
104
|
+
query: "indexed-column",
|
|
105
|
+
localized: true,
|
|
106
|
+
visibility: ["staff", "customer", "partner"],
|
|
107
|
+
editRole: "none",
|
|
108
|
+
overrideFriction: "none",
|
|
109
|
+
sourceFreshness: "sync",
|
|
110
|
+
},
|
|
81
111
|
// ── Slugs (locale-stable) ────────────────────────────────────────────────
|
|
82
112
|
// Used for category-page links — operators want stable URLs that don't
|
|
83
113
|
// shift when translations are edited. One entry per linked destination.
|
|
@@ -112,6 +142,20 @@ const PRODUCT_DESTINATIONS_FIELD_POLICY = [
|
|
|
112
142
|
overrideFriction: "none",
|
|
113
143
|
sourceFreshness: "sync",
|
|
114
144
|
},
|
|
145
|
+
{
|
|
146
|
+
path: "destinationCanonicalPlaceIds[]",
|
|
147
|
+
class: "structural",
|
|
148
|
+
merge: "source-only",
|
|
149
|
+
drift: "low",
|
|
150
|
+
reindex: "facet-affecting",
|
|
151
|
+
snapshot: "on-book",
|
|
152
|
+
query: "indexed-column",
|
|
153
|
+
localized: false,
|
|
154
|
+
visibility: ["staff", "customer", "partner"],
|
|
155
|
+
editRole: "none",
|
|
156
|
+
overrideFriction: "none",
|
|
157
|
+
sourceFreshness: "sync",
|
|
158
|
+
},
|
|
115
159
|
];
|
|
116
160
|
/**
|
|
117
161
|
* Resolved destinations policy. Compose with `productCatalogPolicy` when
|
|
@@ -506,7 +506,10 @@ export declare const productMerchandisingRoutes: import("hono/hono-base").HonoBa
|
|
|
506
506
|
parentId: string | null;
|
|
507
507
|
slug: string;
|
|
508
508
|
code: string | null;
|
|
509
|
+
canonicalPlaceId: string | null;
|
|
509
510
|
destinationType: string;
|
|
511
|
+
latitude: number | null;
|
|
512
|
+
longitude: number | null;
|
|
510
513
|
sortOrder: number;
|
|
511
514
|
active: boolean;
|
|
512
515
|
metadata: {
|
|
@@ -559,7 +562,10 @@ export declare const productMerchandisingRoutes: import("hono/hono-base").HonoBa
|
|
|
559
562
|
parentId: string | null;
|
|
560
563
|
slug: string;
|
|
561
564
|
code: string | null;
|
|
565
|
+
canonicalPlaceId: string | null;
|
|
562
566
|
destinationType: string;
|
|
567
|
+
latitude: number | null;
|
|
568
|
+
longitude: number | null;
|
|
563
569
|
sortOrder: number;
|
|
564
570
|
active: boolean;
|
|
565
571
|
metadata: {
|
|
@@ -585,11 +591,14 @@ export declare const productMerchandisingRoutes: import("hono/hono-base").HonoBa
|
|
|
585
591
|
updatedAt: string;
|
|
586
592
|
code: string | null;
|
|
587
593
|
sortOrder: number;
|
|
594
|
+
latitude: number | null;
|
|
595
|
+
longitude: number | null;
|
|
588
596
|
slug: string;
|
|
589
597
|
metadata: {
|
|
590
598
|
[x: string]: import("hono/utils/types").JSONValue;
|
|
591
599
|
} | null;
|
|
592
600
|
parentId: string | null;
|
|
601
|
+
canonicalPlaceId: string | null;
|
|
593
602
|
destinationType: string;
|
|
594
603
|
} | null;
|
|
595
604
|
};
|
|
@@ -622,7 +631,10 @@ export declare const productMerchandisingRoutes: import("hono/hono-base").HonoBa
|
|
|
622
631
|
parentId: string | null;
|
|
623
632
|
slug: string;
|
|
624
633
|
code: string | null;
|
|
634
|
+
canonicalPlaceId: string | null;
|
|
625
635
|
destinationType: string;
|
|
636
|
+
latitude: number | null;
|
|
637
|
+
longitude: number | null;
|
|
626
638
|
sortOrder: number;
|
|
627
639
|
active: boolean;
|
|
628
640
|
metadata: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes-merchandising.d.ts","sourceRoot":"","sources":["../src/routes-merchandising.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAIzC,eAAO,MAAM,0BAA0B
|
|
1
|
+
{"version":3,"file":"routes-merchandising.d.ts","sourceRoot":"","sources":["../src/routes-merchandising.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAIzC,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAmfnC,CAAA"}
|
package/dist/routes-public.d.ts
CHANGED
|
@@ -54,11 +54,14 @@ export declare const publicProductRoutes: import("hono/hono-base").HonoBase<Env,
|
|
|
54
54
|
id: string;
|
|
55
55
|
parentId: string | null;
|
|
56
56
|
slug: string;
|
|
57
|
+
canonicalPlaceId: string | null;
|
|
57
58
|
name: string;
|
|
58
59
|
description: string | null;
|
|
59
60
|
seoTitle: string | null;
|
|
60
61
|
seoDescription: string | null;
|
|
61
62
|
destinationType: string;
|
|
63
|
+
latitude: number | null;
|
|
64
|
+
longitude: number | null;
|
|
62
65
|
sortOrder: number;
|
|
63
66
|
}[];
|
|
64
67
|
locations: {
|
|
@@ -169,11 +172,14 @@ export declare const publicProductRoutes: import("hono/hono-base").HonoBase<Env,
|
|
|
169
172
|
id: string;
|
|
170
173
|
parentId: string | null;
|
|
171
174
|
slug: string;
|
|
175
|
+
canonicalPlaceId: string | null;
|
|
172
176
|
name: string;
|
|
173
177
|
description: string | null;
|
|
174
178
|
seoTitle: string | null;
|
|
175
179
|
seoDescription: string | null;
|
|
176
180
|
destinationType: string;
|
|
181
|
+
latitude: number | null;
|
|
182
|
+
longitude: number | null;
|
|
177
183
|
sortOrder: number;
|
|
178
184
|
}[];
|
|
179
185
|
locations: {
|
|
@@ -274,11 +280,14 @@ export declare const publicProductRoutes: import("hono/hono-base").HonoBase<Env,
|
|
|
274
280
|
id: string;
|
|
275
281
|
parentId: string | null;
|
|
276
282
|
slug: string;
|
|
283
|
+
canonicalPlaceId: string | null;
|
|
277
284
|
name: string;
|
|
278
285
|
description: string | null;
|
|
279
286
|
seoTitle: string | null;
|
|
280
287
|
seoDescription: string | null;
|
|
281
288
|
destinationType: string;
|
|
289
|
+
latitude: number | null;
|
|
290
|
+
longitude: number | null;
|
|
282
291
|
sortOrder: number;
|
|
283
292
|
}[];
|
|
284
293
|
locations: {
|
|
@@ -359,11 +368,14 @@ export declare const publicProductRoutes: import("hono/hono-base").HonoBase<Env,
|
|
|
359
368
|
id: string;
|
|
360
369
|
parentId: string | null;
|
|
361
370
|
slug: string;
|
|
371
|
+
canonicalPlaceId: string | null;
|
|
362
372
|
name: string;
|
|
363
373
|
description: string | null;
|
|
364
374
|
seoTitle: string | null;
|
|
365
375
|
seoDescription: string | null;
|
|
366
376
|
destinationType: string;
|
|
377
|
+
latitude: number | null;
|
|
378
|
+
longitude: number | null;
|
|
367
379
|
sortOrder: number;
|
|
368
380
|
}[];
|
|
369
381
|
total: number;
|
|
@@ -438,11 +450,14 @@ export declare const publicProductRoutes: import("hono/hono-base").HonoBase<Env,
|
|
|
438
450
|
id: string;
|
|
439
451
|
parentId: string | null;
|
|
440
452
|
slug: string;
|
|
453
|
+
canonicalPlaceId: string | null;
|
|
441
454
|
name: string;
|
|
442
455
|
description: string | null;
|
|
443
456
|
seoTitle: string | null;
|
|
444
457
|
seoDescription: string | null;
|
|
445
458
|
destinationType: string;
|
|
459
|
+
latitude: number | null;
|
|
460
|
+
longitude: number | null;
|
|
446
461
|
sortOrder: number;
|
|
447
462
|
}[];
|
|
448
463
|
locations: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes-public.d.ts","sourceRoot":"","sources":["../src/routes-public.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAYjE,KAAK,GAAG,GAAG;IACT,SAAS,EAAE;QACT,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"routes-public.d.ts","sourceRoot":"","sources":["../src/routes-public.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAYjE,KAAK,GAAG,GAAG;IACT,SAAS,EAAE;QACT,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA0D5B,CAAA;AAEJ,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA"}
|
package/dist/routes.d.ts
CHANGED
|
@@ -1277,7 +1277,10 @@ export declare const productRoutes: import("hono/hono-base").HonoBase<Env, impor
|
|
|
1277
1277
|
parentId: string | null;
|
|
1278
1278
|
slug: string;
|
|
1279
1279
|
code: string | null;
|
|
1280
|
+
canonicalPlaceId: string | null;
|
|
1280
1281
|
destinationType: string;
|
|
1282
|
+
latitude: number | null;
|
|
1283
|
+
longitude: number | null;
|
|
1281
1284
|
sortOrder: number;
|
|
1282
1285
|
active: boolean;
|
|
1283
1286
|
metadata: {
|
|
@@ -1330,7 +1333,10 @@ export declare const productRoutes: import("hono/hono-base").HonoBase<Env, impor
|
|
|
1330
1333
|
parentId: string | null;
|
|
1331
1334
|
slug: string;
|
|
1332
1335
|
code: string | null;
|
|
1336
|
+
canonicalPlaceId: string | null;
|
|
1333
1337
|
destinationType: string;
|
|
1338
|
+
latitude: number | null;
|
|
1339
|
+
longitude: number | null;
|
|
1334
1340
|
sortOrder: number;
|
|
1335
1341
|
active: boolean;
|
|
1336
1342
|
metadata: {
|
|
@@ -1356,11 +1362,14 @@ export declare const productRoutes: import("hono/hono-base").HonoBase<Env, impor
|
|
|
1356
1362
|
updatedAt: string;
|
|
1357
1363
|
code: string | null;
|
|
1358
1364
|
sortOrder: number;
|
|
1365
|
+
latitude: number | null;
|
|
1366
|
+
longitude: number | null;
|
|
1359
1367
|
slug: string;
|
|
1360
1368
|
metadata: {
|
|
1361
1369
|
[x: string]: import("hono/utils/types").JSONValue;
|
|
1362
1370
|
} | null;
|
|
1363
1371
|
parentId: string | null;
|
|
1372
|
+
canonicalPlaceId: string | null;
|
|
1364
1373
|
destinationType: string;
|
|
1365
1374
|
} | null;
|
|
1366
1375
|
};
|
|
@@ -1393,7 +1402,10 @@ export declare const productRoutes: import("hono/hono-base").HonoBase<Env, impor
|
|
|
1393
1402
|
parentId: string | null;
|
|
1394
1403
|
slug: string;
|
|
1395
1404
|
code: string | null;
|
|
1405
|
+
canonicalPlaceId: string | null;
|
|
1396
1406
|
destinationType: string;
|
|
1407
|
+
latitude: number | null;
|
|
1408
|
+
longitude: number | null;
|
|
1397
1409
|
sortOrder: number;
|
|
1398
1410
|
active: boolean;
|
|
1399
1411
|
metadata: {
|
package/dist/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAYzC,YAAY,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAGzC,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAYzC,YAAY,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAGzC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAUM,CAAA;AAEhC,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAA"}
|
|
@@ -796,6 +796,23 @@ export declare const destinations: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
796
796
|
identity: undefined;
|
|
797
797
|
generated: undefined;
|
|
798
798
|
}, {}, {}>;
|
|
799
|
+
canonicalPlaceId: import("drizzle-orm/pg-core").PgColumn<{
|
|
800
|
+
name: "canonical_place_id";
|
|
801
|
+
tableName: "destinations";
|
|
802
|
+
dataType: "string";
|
|
803
|
+
columnType: "PgText";
|
|
804
|
+
data: string;
|
|
805
|
+
driverParam: string;
|
|
806
|
+
notNull: false;
|
|
807
|
+
hasDefault: false;
|
|
808
|
+
isPrimaryKey: false;
|
|
809
|
+
isAutoincrement: false;
|
|
810
|
+
hasRuntimeDefault: false;
|
|
811
|
+
enumValues: [string, ...string[]];
|
|
812
|
+
baseColumn: never;
|
|
813
|
+
identity: undefined;
|
|
814
|
+
generated: undefined;
|
|
815
|
+
}, {}, {}>;
|
|
799
816
|
destinationType: import("drizzle-orm/pg-core").PgColumn<{
|
|
800
817
|
name: "destination_type";
|
|
801
818
|
tableName: "destinations";
|
|
@@ -813,6 +830,40 @@ export declare const destinations: import("drizzle-orm/pg-core").PgTableWithColu
|
|
|
813
830
|
identity: undefined;
|
|
814
831
|
generated: undefined;
|
|
815
832
|
}, {}, {}>;
|
|
833
|
+
latitude: import("drizzle-orm/pg-core").PgColumn<{
|
|
834
|
+
name: "latitude";
|
|
835
|
+
tableName: "destinations";
|
|
836
|
+
dataType: "number";
|
|
837
|
+
columnType: "PgDoublePrecision";
|
|
838
|
+
data: number;
|
|
839
|
+
driverParam: string | number;
|
|
840
|
+
notNull: false;
|
|
841
|
+
hasDefault: false;
|
|
842
|
+
isPrimaryKey: false;
|
|
843
|
+
isAutoincrement: false;
|
|
844
|
+
hasRuntimeDefault: false;
|
|
845
|
+
enumValues: undefined;
|
|
846
|
+
baseColumn: never;
|
|
847
|
+
identity: undefined;
|
|
848
|
+
generated: undefined;
|
|
849
|
+
}, {}, {}>;
|
|
850
|
+
longitude: import("drizzle-orm/pg-core").PgColumn<{
|
|
851
|
+
name: "longitude";
|
|
852
|
+
tableName: "destinations";
|
|
853
|
+
dataType: "number";
|
|
854
|
+
columnType: "PgDoublePrecision";
|
|
855
|
+
data: number;
|
|
856
|
+
driverParam: string | number;
|
|
857
|
+
notNull: false;
|
|
858
|
+
hasDefault: false;
|
|
859
|
+
isPrimaryKey: false;
|
|
860
|
+
isAutoincrement: false;
|
|
861
|
+
hasRuntimeDefault: false;
|
|
862
|
+
enumValues: undefined;
|
|
863
|
+
baseColumn: never;
|
|
864
|
+
identity: undefined;
|
|
865
|
+
generated: undefined;
|
|
866
|
+
}, {}, {}>;
|
|
816
867
|
sortOrder: import("drizzle-orm/pg-core").PgColumn<{
|
|
817
868
|
name: "sort_order";
|
|
818
869
|
tableName: "destinations";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-taxonomy.d.ts","sourceRoot":"","sources":["../src/schema-taxonomy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema-taxonomy.d.ts","sourceRoot":"","sources":["../src/schema-taxonomy.ts"],"names":[],"mappings":"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"}
|
package/dist/schema-taxonomy.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { typeId, typeIdRef } from "@voyantjs/db/lib/typeid-column";
|
|
2
|
-
import { boolean, index, integer, jsonb, pgTable, primaryKey, text, timestamp, uniqueIndex, } from "drizzle-orm/pg-core";
|
|
2
|
+
import { boolean, doublePrecision, index, integer, jsonb, pgTable, primaryKey, text, timestamp, uniqueIndex, } from "drizzle-orm/pg-core";
|
|
3
3
|
import { products } from "./schema-core.js";
|
|
4
4
|
export const productTypes = pgTable("product_types", {
|
|
5
5
|
id: typeId("product_types"),
|
|
@@ -107,7 +107,10 @@ export const destinations = pgTable("destinations", {
|
|
|
107
107
|
parentId: typeIdRef("parent_id"),
|
|
108
108
|
slug: text("slug").notNull(),
|
|
109
109
|
code: text("code"),
|
|
110
|
+
canonicalPlaceId: text("canonical_place_id"),
|
|
110
111
|
destinationType: text("destination_type").notNull().default("destination"),
|
|
112
|
+
latitude: doublePrecision("latitude"),
|
|
113
|
+
longitude: doublePrecision("longitude"),
|
|
111
114
|
sortOrder: integer("sort_order").notNull().default(0),
|
|
112
115
|
active: boolean("active").notNull().default(true),
|
|
113
116
|
metadata: jsonb("metadata").$type(),
|
|
@@ -118,6 +121,7 @@ export const destinations = pgTable("destinations", {
|
|
|
118
121
|
uniqueIndex("uidx_destinations_code").on(table.code),
|
|
119
122
|
index("idx_destinations_parent").on(table.parentId),
|
|
120
123
|
index("idx_destinations_active").on(table.active),
|
|
124
|
+
index("idx_destinations_canonical_place").on(table.canonicalPlaceId),
|
|
121
125
|
index("idx_destinations_sort_slug").on(table.sortOrder, table.slug),
|
|
122
126
|
index("idx_destinations_active_sort_slug").on(table.active, table.sortOrder, table.slug),
|
|
123
127
|
index("idx_destinations_type_sort_slug").on(table.destinationType, table.sortOrder, table.slug),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-catalog-plane-destinations.d.ts","sourceRoot":"","sources":["../src/service-catalog-plane-destinations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"service-catalog-plane-destinations.d.ts","sourceRoot":"","sources":["../src/service-catalog-plane-destinations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AAsH5E;;;;;GAKG;AACH,wBAAgB,4CAA4C,IAAI,0BAA0B,CAgCzF"}
|
|
@@ -31,6 +31,7 @@ async function joinProductDestinations(db, productId, languageTag) {
|
|
|
31
31
|
destinationId: productDestinations.destinationId,
|
|
32
32
|
destinationType: destinations.destinationType,
|
|
33
33
|
slug: destinations.slug,
|
|
34
|
+
canonicalPlaceId: destinations.canonicalPlaceId,
|
|
34
35
|
active: destinations.active,
|
|
35
36
|
})
|
|
36
37
|
.from(productDestinations)
|
|
@@ -55,6 +56,7 @@ async function joinProductDestinations(db, productId, languageTag) {
|
|
|
55
56
|
destinationId: row.destinationId,
|
|
56
57
|
destinationType: row.destinationType,
|
|
57
58
|
slug: row.slug,
|
|
59
|
+
canonicalPlaceId: row.canonicalPlaceId ?? null,
|
|
58
60
|
translatedName: nameByDestinationId.get(row.destinationId) ?? null,
|
|
59
61
|
}));
|
|
60
62
|
}
|
|
@@ -63,8 +65,11 @@ function bucketByType(rows) {
|
|
|
63
65
|
const regions = [];
|
|
64
66
|
const countries = [];
|
|
65
67
|
const cities = [];
|
|
68
|
+
const ports = [];
|
|
69
|
+
const waterways = [];
|
|
66
70
|
const slugs = [];
|
|
67
71
|
const ids = [];
|
|
72
|
+
const canonicalPlaceIds = [];
|
|
68
73
|
for (const row of rows) {
|
|
69
74
|
const label = row.translatedName ?? row.slug;
|
|
70
75
|
switch (row.destinationType) {
|
|
@@ -77,14 +82,27 @@ function bucketByType(rows) {
|
|
|
77
82
|
case "city":
|
|
78
83
|
cities.push(label);
|
|
79
84
|
break;
|
|
85
|
+
case "port":
|
|
86
|
+
ports.push(label);
|
|
87
|
+
break;
|
|
88
|
+
case "river":
|
|
89
|
+
case "sea":
|
|
90
|
+
case "ocean":
|
|
91
|
+
case "canal":
|
|
92
|
+
case "lake":
|
|
93
|
+
waterways.push(label);
|
|
94
|
+
break;
|
|
80
95
|
// "destination" (the catch-all default) doesn't bucket into any of
|
|
81
96
|
// the typed lists. Its slug + id still land in the doc so storefronts
|
|
82
97
|
// can filter generically.
|
|
83
98
|
}
|
|
84
99
|
slugs.push(row.slug);
|
|
85
100
|
ids.push(row.destinationId);
|
|
101
|
+
if (row.canonicalPlaceId) {
|
|
102
|
+
canonicalPlaceIds.push(row.canonicalPlaceId);
|
|
103
|
+
}
|
|
86
104
|
}
|
|
87
|
-
return { regions, countries, cities, slugs, ids };
|
|
105
|
+
return { regions, countries, cities, ports, waterways, slugs, ids, canonicalPlaceIds };
|
|
88
106
|
}
|
|
89
107
|
/**
|
|
90
108
|
* Construct the destinations projection extension.
|
|
@@ -102,17 +120,23 @@ export function createProductDestinationsProjectionExtension() {
|
|
|
102
120
|
["regions[]", []],
|
|
103
121
|
["countries[]", []],
|
|
104
122
|
["cities[]", []],
|
|
123
|
+
["ports[]", []],
|
|
124
|
+
["waterways[]", []],
|
|
105
125
|
["destinationSlugs[]", []],
|
|
106
126
|
["destinationIds[]", []],
|
|
127
|
+
["destinationCanonicalPlaceIds[]", []],
|
|
107
128
|
]);
|
|
108
129
|
}
|
|
109
|
-
const { regions, countries, cities, slugs, ids } = bucketByType(rows);
|
|
130
|
+
const { regions, countries, cities, ports, waterways, slugs, ids, canonicalPlaceIds } = bucketByType(rows);
|
|
110
131
|
return new Map([
|
|
111
132
|
["regions[]", regions],
|
|
112
133
|
["countries[]", countries],
|
|
113
134
|
["cities[]", cities],
|
|
135
|
+
["ports[]", ports],
|
|
136
|
+
["waterways[]", waterways],
|
|
114
137
|
["destinationSlugs[]", slugs],
|
|
115
138
|
["destinationIds[]", ids],
|
|
139
|
+
["destinationCanonicalPlaceIds[]", canonicalPlaceIds],
|
|
116
140
|
]);
|
|
117
141
|
},
|
|
118
142
|
};
|
|
@@ -52,11 +52,14 @@ export declare const catalogProductsService: {
|
|
|
52
52
|
id: string;
|
|
53
53
|
parentId: string | null;
|
|
54
54
|
slug: string;
|
|
55
|
+
canonicalPlaceId: string | null;
|
|
55
56
|
name: string;
|
|
56
57
|
description: string | null;
|
|
57
58
|
seoTitle: string | null;
|
|
58
59
|
seoDescription: string | null;
|
|
59
60
|
destinationType: string;
|
|
61
|
+
latitude: number | null;
|
|
62
|
+
longitude: number | null;
|
|
60
63
|
sortOrder: number;
|
|
61
64
|
}[];
|
|
62
65
|
locations: {
|
|
@@ -167,11 +170,14 @@ export declare const catalogProductsService: {
|
|
|
167
170
|
id: string;
|
|
168
171
|
parentId: string | null;
|
|
169
172
|
slug: string;
|
|
173
|
+
canonicalPlaceId: string | null;
|
|
170
174
|
name: string;
|
|
171
175
|
description: string | null;
|
|
172
176
|
seoTitle: string | null;
|
|
173
177
|
seoDescription: string | null;
|
|
174
178
|
destinationType: string;
|
|
179
|
+
latitude: number | null;
|
|
180
|
+
longitude: number | null;
|
|
175
181
|
sortOrder: number;
|
|
176
182
|
}[];
|
|
177
183
|
locations: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-catalog.d.ts","sourceRoot":"","sources":["../src/service-catalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,OAAO,EAWL,QAAQ,EAMT,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EACV,qBAAqB,EACrB,8BAA8B,EAE/B,MAAM,yBAAyB,CAAA;AAEhC,KAAK,iBAAiB,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAA;AAErD,KAAK,4BAA4B,GAAG;IAClC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;CAChC,CAAA;
|
|
1
|
+
{"version":3,"file":"service-catalog.d.ts","sourceRoot":"","sources":["../src/service-catalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,OAAO,EAWL,QAAQ,EAMT,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EACV,qBAAqB,EACrB,8BAA8B,EAE/B,MAAM,yBAAyB,CAAA;AAEhC,KAAK,iBAAiB,GAAG,OAAO,QAAQ,CAAC,YAAY,CAAA;AAErD,KAAK,4BAA4B,GAAG;IAClC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;CAChC,CAAA;AA2ZD,eAAO,MAAM,sBAAsB;wBAE3B,kBAAkB,eACT,iBAAiB,EAAE,YACvB,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAyHjC,kBAAkB,SACf,8BAA8B,GACpC,OAAO,CAAC;QACT,IAAI,EAAE,qBAAqB,EAAE,CAAA;QAC7B,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;KACf,CAAC;qCAkFI,kBAAkB,aACX,MAAM,UACV,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAa1F,CAAA"}
|
package/dist/service-catalog.js
CHANGED
|
@@ -149,7 +149,10 @@ async function loadCatalogHydrationData(db, productRows, options = {}) {
|
|
|
149
149
|
destinationId: destinations.id,
|
|
150
150
|
parentId: destinations.parentId,
|
|
151
151
|
slug: destinations.slug,
|
|
152
|
+
canonicalPlaceId: destinations.canonicalPlaceId,
|
|
152
153
|
destinationType: destinations.destinationType,
|
|
154
|
+
latitude: destinations.latitude,
|
|
155
|
+
longitude: destinations.longitude,
|
|
153
156
|
sortOrder: productDestinations.sortOrder,
|
|
154
157
|
fallbackSortOrder: destinations.sortOrder,
|
|
155
158
|
translationLanguageTag: destinationTranslations.languageTag,
|
|
@@ -246,7 +249,10 @@ async function loadCatalogHydrationData(db, productRows, options = {}) {
|
|
|
246
249
|
id: first.destinationId,
|
|
247
250
|
parentId: first.parentId ?? null,
|
|
248
251
|
slug: first.slug,
|
|
252
|
+
canonicalPlaceId: first.canonicalPlaceId ?? null,
|
|
249
253
|
destinationType: first.destinationType,
|
|
254
|
+
latitude: first.latitude ?? null,
|
|
255
|
+
longitude: first.longitude ?? null,
|
|
250
256
|
sortOrder: first.sortOrder ?? first.fallbackSortOrder ?? 0,
|
|
251
257
|
name: translated?.translationName ?? first.slug,
|
|
252
258
|
description: translated?.translationDescription ?? null,
|
|
@@ -355,11 +361,14 @@ export const catalogProductsService = {
|
|
|
355
361
|
id: row.id,
|
|
356
362
|
parentId: row.parentId,
|
|
357
363
|
slug: row.slug,
|
|
364
|
+
canonicalPlaceId: row.canonicalPlaceId,
|
|
358
365
|
name: row.name,
|
|
359
366
|
description: row.description,
|
|
360
367
|
seoTitle: row.seoTitle,
|
|
361
368
|
seoDescription: row.seoDescription,
|
|
362
369
|
destinationType: row.destinationType,
|
|
370
|
+
latitude: row.latitude,
|
|
371
|
+
longitude: row.longitude,
|
|
363
372
|
sortOrder: row.sortOrder,
|
|
364
373
|
})),
|
|
365
374
|
locations: (hydrationData.locationsByProduct.get(product.id) ?? []).map((row) => ({
|