@daffodil/external-router 0.79.0 → 0.80.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/driver/magento/2.4.3/magento.service.d.ts +2 -1
- package/driver/magento/2.4.3/transforms/schema/category/category.d.ts +2 -0
- package/driver/magento/2.4.3/transforms/schema/clientify-url-path.d.ts +1 -0
- package/driver/magento/2.4.3/transforms/schema/product/base.d.ts +2 -0
- package/driver/magento/2.4.3/transforms/schema/product/bundle.d.ts +2 -0
- package/driver/magento/2.4.3/transforms/schema/product/configurable.d.ts +2 -0
- package/driver/magento/2.4.3/transforms/schema/product/product.d.ts +5 -0
- package/driver/magento/2.4.3/transforms/schema/product/simple.d.ts +2 -0
- package/driver/magento/2.4.3/transforms/schema/rescale-rating.d.ts +5 -0
- package/driver/magento/2.4.3/transforms/schema/transform-schema.d.ts +2 -0
- package/driver/magento/2.4.3/transforms/transform-client-urls.d.ts +2 -0
- package/driver/magento/model/category-route-product.d.ts +77 -0
- package/driver/magento/model/category-route.d.ts +41 -0
- package/driver/magento/model/product-route.d.ts +85 -0
- package/driver/magento/model/public_api.d.ts +2 -0
- package/driver/magento/model/routable.d.ts +14 -0
- package/driver/magento/model/route.d.ts +4 -34
- package/esm2022/driver/magento/2.4.3/graphql/queries/resolve.mjs +66 -2
- package/esm2022/driver/magento/2.4.3/magento.service.mjs +12 -6
- package/esm2022/driver/magento/2.4.3/transforms/resolution-to-resolvable-url.mjs +7 -3
- package/esm2022/driver/magento/2.4.3/transforms/schema/category/category.mjs +15 -0
- package/esm2022/driver/magento/2.4.3/transforms/schema/clientify-url-path.mjs +2 -0
- package/esm2022/driver/magento/2.4.3/transforms/schema/product/base.mjs +16 -0
- package/esm2022/driver/magento/2.4.3/transforms/schema/product/bundle.mjs +11 -0
- package/esm2022/driver/magento/2.4.3/transforms/schema/product/configurable.mjs +11 -0
- package/esm2022/driver/magento/2.4.3/transforms/schema/product/product.mjs +20 -0
- package/esm2022/driver/magento/2.4.3/transforms/schema/product/simple.mjs +25 -0
- package/esm2022/driver/magento/2.4.3/transforms/schema/rescale-rating.mjs +6 -0
- package/esm2022/driver/magento/2.4.3/transforms/schema/transform-schema.mjs +13 -0
- package/esm2022/driver/magento/2.4.3/transforms/transform-client-urls.mjs +28 -0
- package/esm2022/driver/magento/model/category-route-product.mjs +2 -0
- package/esm2022/driver/magento/model/category-route.mjs +2 -0
- package/esm2022/driver/magento/model/product-route.mjs +2 -0
- package/esm2022/driver/magento/model/public_api.mjs +1 -1
- package/esm2022/driver/magento/model/routable.mjs +2 -0
- package/esm2022/driver/magento/model/route.mjs +1 -1
- package/esm2022/model/route-data.mjs +1 -1
- package/fesm2022/daffodil-external-router-driver-magento-2.4.3.mjs +215 -9
- package/fesm2022/daffodil-external-router-driver-magento-2.4.3.mjs.map +1 -1
- package/model/route-data.d.ts +13 -0
- package/package.json +1 -1
@@ -11,7 +11,8 @@ import * as i0 from "@angular/core";
|
|
11
11
|
*/
|
12
12
|
export declare class DaffExternalRouterMagentoDriver implements DaffExternalRouterDriverInterface {
|
13
13
|
private apollo;
|
14
|
-
|
14
|
+
private document;
|
15
|
+
constructor(apollo: Apollo, document: Document);
|
15
16
|
resolve(url: string): Observable<DaffExternallyResolvableUrl>;
|
16
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<DaffExternalRouterMagentoDriver, never>;
|
17
18
|
static ɵprov: i0.ɵɵInjectableDeclaration<DaffExternalRouterMagentoDriver>;
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare const clientifyUrlPath: <T extends string | null>(path: T, domain: string) => string;
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import { MagentoProductRoute } from '@daffodil/external-router/driver/magento';
|
2
|
+
/**
|
3
|
+
* Computes supplementary SEO schema for Magento product routes.
|
4
|
+
*/
|
5
|
+
export declare const transformMagentoProductSchema: (resolution: MagentoProductRoute) => Record<string, unknown>;
|
@@ -0,0 +1,77 @@
|
|
1
|
+
export interface MagentoCategoryRouteProduct {
|
2
|
+
/**
|
3
|
+
* The relative path for the route.
|
4
|
+
*/
|
5
|
+
relative_url: string;
|
6
|
+
/**
|
7
|
+
* The type of route, typically PRODUCT, CATEGORY or CMS_PAGE
|
8
|
+
*/
|
9
|
+
type: 'PRODUCT';
|
10
|
+
/**
|
11
|
+
* The HTTP code for the page.
|
12
|
+
*/
|
13
|
+
redirect_code: number;
|
14
|
+
/**
|
15
|
+
* In v2.4.3 this became the standard field across types
|
16
|
+
*/
|
17
|
+
uid: string;
|
18
|
+
/**
|
19
|
+
* The canonical url of the route.
|
20
|
+
*/
|
21
|
+
canonical_url: string | null;
|
22
|
+
/**
|
23
|
+
* The name of the route
|
24
|
+
*/
|
25
|
+
name: string | null;
|
26
|
+
/**
|
27
|
+
* The title of the route
|
28
|
+
*/
|
29
|
+
meta_title: string | null;
|
30
|
+
/**
|
31
|
+
* The sku of a product.
|
32
|
+
*/
|
33
|
+
sku: string;
|
34
|
+
/**
|
35
|
+
* The number of reviews of a product.
|
36
|
+
*/
|
37
|
+
review_count: number;
|
38
|
+
/**
|
39
|
+
* The rating of a product.
|
40
|
+
*/
|
41
|
+
rating_summary: number;
|
42
|
+
/**
|
43
|
+
* The images of a product.
|
44
|
+
*/
|
45
|
+
image: {
|
46
|
+
url: string;
|
47
|
+
};
|
48
|
+
/**
|
49
|
+
* The price of the item.
|
50
|
+
*/
|
51
|
+
price_range: {
|
52
|
+
maximum_price: {
|
53
|
+
final_price: {
|
54
|
+
currency: string;
|
55
|
+
value: number;
|
56
|
+
};
|
57
|
+
regular_price: {
|
58
|
+
currency: string;
|
59
|
+
value: number;
|
60
|
+
};
|
61
|
+
};
|
62
|
+
minimum_price: {
|
63
|
+
final_price: {
|
64
|
+
currency: string;
|
65
|
+
value: number;
|
66
|
+
};
|
67
|
+
regular_price: {
|
68
|
+
currency: string;
|
69
|
+
value: number;
|
70
|
+
};
|
71
|
+
};
|
72
|
+
};
|
73
|
+
/**
|
74
|
+
* The type of route.
|
75
|
+
*/
|
76
|
+
__typename: string;
|
77
|
+
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { MagentoCategoryRouteProduct } from './category-route-product';
|
2
|
+
export interface MagentoCategoryRoute {
|
3
|
+
/**
|
4
|
+
* The relative path for the route.
|
5
|
+
*/
|
6
|
+
relative_url: string;
|
7
|
+
/**
|
8
|
+
* The type of route, typically PRODUCT, CATEGORY or CMS_PAGE
|
9
|
+
*/
|
10
|
+
type: 'CATEGORY';
|
11
|
+
/**
|
12
|
+
* The HTTP code for the page.
|
13
|
+
*/
|
14
|
+
redirect_code: number;
|
15
|
+
/**
|
16
|
+
* In v2.4.3 this became the standard field across types
|
17
|
+
*/
|
18
|
+
uid?: string;
|
19
|
+
/**
|
20
|
+
* The canonical url of the route.
|
21
|
+
*/
|
22
|
+
canonical_url?: string;
|
23
|
+
/**
|
24
|
+
* The meta description of the route
|
25
|
+
*/
|
26
|
+
meta_description?: string;
|
27
|
+
/**
|
28
|
+
* The name of the route
|
29
|
+
*/
|
30
|
+
name?: string;
|
31
|
+
/**
|
32
|
+
* The title of the route
|
33
|
+
*/
|
34
|
+
meta_title?: string;
|
35
|
+
/**
|
36
|
+
* The list of items in the category.
|
37
|
+
*/
|
38
|
+
products: {
|
39
|
+
items: MagentoCategoryRouteProduct[];
|
40
|
+
};
|
41
|
+
}
|
@@ -0,0 +1,85 @@
|
|
1
|
+
export interface MagentoProductRoute {
|
2
|
+
/**
|
3
|
+
* The relative path for the route.
|
4
|
+
*/
|
5
|
+
relative_url: string;
|
6
|
+
/**
|
7
|
+
* The type of route, typically PRODUCT, CATEGORY or CMS_PAGE
|
8
|
+
*/
|
9
|
+
type: 'PRODUCT';
|
10
|
+
/**
|
11
|
+
* The HTTP code for the page.
|
12
|
+
*/
|
13
|
+
redirect_code: number;
|
14
|
+
/**
|
15
|
+
* In v2.4.3 this became the standard field across types
|
16
|
+
*/
|
17
|
+
uid: string;
|
18
|
+
/**
|
19
|
+
* The canonical url of the route.
|
20
|
+
*/
|
21
|
+
canonical_url: string | null;
|
22
|
+
/**
|
23
|
+
* The meta description of the route
|
24
|
+
*/
|
25
|
+
meta_description: string | null;
|
26
|
+
/**
|
27
|
+
* The name of the route
|
28
|
+
*/
|
29
|
+
name: string;
|
30
|
+
/**
|
31
|
+
* The title of the route
|
32
|
+
*/
|
33
|
+
meta_title: string | null;
|
34
|
+
/**
|
35
|
+
* The sku of a product.
|
36
|
+
*/
|
37
|
+
sku: string;
|
38
|
+
/**
|
39
|
+
* The number of reviews of a product.
|
40
|
+
*/
|
41
|
+
review_count: number | null;
|
42
|
+
/**
|
43
|
+
* The rating of a product.
|
44
|
+
*/
|
45
|
+
rating_summary: number | null;
|
46
|
+
/**
|
47
|
+
* The images of a product.
|
48
|
+
*/
|
49
|
+
image?: {
|
50
|
+
url: string;
|
51
|
+
};
|
52
|
+
/**
|
53
|
+
* The type of route.
|
54
|
+
*/
|
55
|
+
__typename: string;
|
56
|
+
/**
|
57
|
+
* The price of the item.
|
58
|
+
*/
|
59
|
+
price_range: {
|
60
|
+
maximum_price: {
|
61
|
+
final_price: {
|
62
|
+
currency: string;
|
63
|
+
value: number;
|
64
|
+
};
|
65
|
+
regular_price: {
|
66
|
+
currency: string;
|
67
|
+
value: number;
|
68
|
+
};
|
69
|
+
};
|
70
|
+
minimum_price: {
|
71
|
+
final_price: {
|
72
|
+
currency: string;
|
73
|
+
value: number;
|
74
|
+
};
|
75
|
+
regular_price: {
|
76
|
+
currency: string;
|
77
|
+
value: number;
|
78
|
+
};
|
79
|
+
};
|
80
|
+
};
|
81
|
+
/**
|
82
|
+
* The stock status of a product.
|
83
|
+
*/
|
84
|
+
stock_status: 'IN_STOCK' | 'OUT_OF_STOCK';
|
85
|
+
}
|
@@ -3,3 +3,5 @@ export { MagentoUrlRewriteEntityTypeEnum } from './resolution-types';
|
|
3
3
|
export { MagentoUrlResolverResponse } from './url-resolver-response';
|
4
4
|
export { MagentoRoute } from './route';
|
5
5
|
export { MagentoRouteResponse } from './route-response';
|
6
|
+
export { MagentoProductRoute } from './product-route';
|
7
|
+
export { MagentoCategoryRoute } from './category-route';
|
@@ -0,0 +1,14 @@
|
|
1
|
+
export interface MagentoRoutable {
|
2
|
+
/**
|
3
|
+
* The relative path for the route.
|
4
|
+
*/
|
5
|
+
relative_url: string;
|
6
|
+
/**
|
7
|
+
* The type of route, typically PRODUCT, CATEGORY or CMS_PAGE
|
8
|
+
*/
|
9
|
+
type: 'UNKNOWN' | null;
|
10
|
+
/**
|
11
|
+
* The HTTP code for the page.
|
12
|
+
*/
|
13
|
+
redirect_code: number;
|
14
|
+
}
|
@@ -1,34 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
relative_url: string;
|
6
|
-
/**
|
7
|
-
* The type of route, typically PRODUCT, CATEGORY or CMS_PAGE
|
8
|
-
*/
|
9
|
-
type: string;
|
10
|
-
/**
|
11
|
-
* The HTTP code for the page.
|
12
|
-
*/
|
13
|
-
redirect_code: number;
|
14
|
-
/**
|
15
|
-
* In v2.4.3 this became the standard field across types
|
16
|
-
*/
|
17
|
-
uid?: string;
|
18
|
-
/**
|
19
|
-
* The canonical url of the route.
|
20
|
-
*/
|
21
|
-
canonical_url?: string;
|
22
|
-
/**
|
23
|
-
* The meta description of the route
|
24
|
-
*/
|
25
|
-
meta_description?: string;
|
26
|
-
/**
|
27
|
-
* The name of the route
|
28
|
-
*/
|
29
|
-
name?: string;
|
30
|
-
/**
|
31
|
-
* The title of the route
|
32
|
-
*/
|
33
|
-
meta_title?: string;
|
34
|
-
}
|
1
|
+
import { MagentoCategoryRoute } from './category-route';
|
2
|
+
import { MagentoProductRoute } from './product-route';
|
3
|
+
import { MagentoRoutable } from './routable';
|
4
|
+
export type MagentoRoute = MagentoRoutable | MagentoProductRoute | MagentoCategoryRoute;
|
@@ -13,9 +13,44 @@ export const MagentoResolveUrlv243 = gql `
|
|
13
13
|
... on CategoryInterface {
|
14
14
|
uid
|
15
15
|
name
|
16
|
-
meta_description
|
17
16
|
meta_title
|
18
17
|
canonical_url
|
18
|
+
products {
|
19
|
+
items {
|
20
|
+
name
|
21
|
+
meta_description
|
22
|
+
meta_title
|
23
|
+
canonical_url
|
24
|
+
sku
|
25
|
+
review_count
|
26
|
+
rating_summary
|
27
|
+
image {
|
28
|
+
url
|
29
|
+
}
|
30
|
+
price_range {
|
31
|
+
minimum_price {
|
32
|
+
regular_price {
|
33
|
+
currency
|
34
|
+
value
|
35
|
+
}
|
36
|
+
final_price {
|
37
|
+
currency
|
38
|
+
value
|
39
|
+
}
|
40
|
+
}
|
41
|
+
maximum_price {
|
42
|
+
regular_price {
|
43
|
+
currency
|
44
|
+
value
|
45
|
+
}
|
46
|
+
final_price {
|
47
|
+
currency
|
48
|
+
value
|
49
|
+
}
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
19
54
|
}
|
20
55
|
... on ProductInterface {
|
21
56
|
uid
|
@@ -23,8 +58,37 @@ export const MagentoResolveUrlv243 = gql `
|
|
23
58
|
meta_description
|
24
59
|
meta_title
|
25
60
|
canonical_url
|
61
|
+
sku
|
62
|
+
review_count
|
63
|
+
rating_summary
|
64
|
+
image {
|
65
|
+
url
|
66
|
+
}
|
67
|
+
stock_status
|
68
|
+
price_range {
|
69
|
+
minimum_price {
|
70
|
+
regular_price {
|
71
|
+
currency
|
72
|
+
value
|
73
|
+
}
|
74
|
+
final_price {
|
75
|
+
currency
|
76
|
+
value
|
77
|
+
}
|
78
|
+
}
|
79
|
+
maximum_price {
|
80
|
+
regular_price {
|
81
|
+
currency
|
82
|
+
value
|
83
|
+
}
|
84
|
+
final_price {
|
85
|
+
currency
|
86
|
+
value
|
87
|
+
}
|
88
|
+
}
|
89
|
+
}
|
26
90
|
}
|
27
91
|
}
|
28
92
|
}
|
29
93
|
`;
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZXh0ZXJuYWwtcm91dGVyL2RyaXZlci9tYWdlbnRvLzIuNC4zL3NyYy9ncmFwaHFsL3F1ZXJpZXMvcmVzb2x2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsdUJBQXVCLENBQUM7QUFFM0U7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxDQUFBO1NBQy9CLG1DQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXFGM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcblxuZXhwb3J0IGNvbnN0IERBRkZfTUFHRU5UT19SRVNPTFZFX1VSTF9RVUVSWV9OQU1FID0gJ01hZ2VudG9SZXNvbHZlVXJsdjI0Myc7XG5cbi8qKlxuICogVGhpcyBxdWVyeSByZXRyaWV2ZXMgYSBVUkwgcmVzb2x1dGlvbiBmcm9tIE1hZ2VudG8gYW5kIGluZm9ybXMgeW91IGFib3V0XG4gKiB3aGF0IHR5cGUgb2Ygcm91dGUgdGhlIFVSTCBpcy5cbiAqL1xuZXhwb3J0IGNvbnN0IE1hZ2VudG9SZXNvbHZlVXJsdjI0MyA9IGdxbGBcblx0cXVlcnkgJHtEQUZGX01BR0VOVE9fUkVTT0xWRV9VUkxfUVVFUllfTkFNRX0oJHVybDogU3RyaW5nISkge1xuXHRcdHJvdXRlKHVybDogJHVybCkge1xuXHRcdFx0cmVsYXRpdmVfdXJsXG5cdFx0XHRyZWRpcmVjdF9jb2RlXG5cdFx0XHR0eXBlXG5cdFx0XHQuLi4gb24gQ2F0ZWdvcnlJbnRlcmZhY2Uge1xuXHRcdFx0XHR1aWRcblx0XHRcdFx0bmFtZVxuXHRcdFx0XHRtZXRhX3RpdGxlXG5cdFx0XHRcdGNhbm9uaWNhbF91cmxcblx0XHRcdFx0cHJvZHVjdHMge1xuXHRcdFx0XHRcdGl0ZW1zIHtcblx0XHRcdFx0XHRcdFx0bmFtZVxuXHRcdFx0XHRcdFx0XHRtZXRhX2Rlc2NyaXB0aW9uXG5cdFx0XHRcdFx0XHRcdG1ldGFfdGl0bGVcblx0XHRcdFx0XHRcdFx0Y2Fub25pY2FsX3VybFxuXHRcdFx0XHRcdFx0XHRza3Vcblx0XHRcdFx0XHRcdFx0cmV2aWV3X2NvdW50XG5cdFx0XHRcdFx0XHRcdHJhdGluZ19zdW1tYXJ5XG5cdFx0XHRcdFx0XHRcdGltYWdlIHtcblx0XHRcdFx0XHRcdFx0XHR1cmxcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRwcmljZV9yYW5nZSB7XG5cdFx0XHRcdFx0XHRcdFx0bWluaW11bV9wcmljZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZWd1bGFyX3ByaWNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y3VycmVuY3lcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsdWVcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdGZpbmFsX3ByaWNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y3VycmVuY3lcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsdWVcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0bWF4aW11bV9wcmljZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZWd1bGFyX3ByaWNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y3VycmVuY3lcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsdWVcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdGZpbmFsX3ByaWNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y3VycmVuY3lcblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsdWVcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Li4uIG9uIFByb2R1Y3RJbnRlcmZhY2Uge1xuXHRcdFx0XHR1aWRcblx0XHRcdFx0bmFtZVxuXHRcdFx0XHRtZXRhX2Rlc2NyaXB0aW9uXG5cdFx0XHRcdG1ldGFfdGl0bGVcblx0XHRcdFx0Y2Fub25pY2FsX3VybFxuXHRcdFx0XHRza3Vcblx0XHRcdFx0cmV2aWV3X2NvdW50XG5cdFx0XHRcdHJhdGluZ19zdW1tYXJ5XG5cdFx0XHRcdGltYWdlIHtcblx0XHRcdFx0XHR1cmxcblx0XHRcdFx0fVxuXHRcdFx0XHRzdG9ja19zdGF0dXNcblx0XHRcdFx0cHJpY2VfcmFuZ2Uge1xuXHRcdFx0XHRcdG1pbmltdW1fcHJpY2Uge1xuXHRcdFx0XHRcdFx0cmVndWxhcl9wcmljZSB7XG5cdFx0XHRcdFx0XHRcdGN1cnJlbmN5XG5cdFx0XHRcdFx0XHRcdHZhbHVlXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRmaW5hbF9wcmljZSB7XG5cdFx0XHRcdFx0XHRcdGN1cnJlbmN5XG5cdFx0XHRcdFx0XHRcdHZhbHVlXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdG1heGltdW1fcHJpY2Uge1xuXHRcdFx0XHRcdFx0cmVndWxhcl9wcmljZSB7XG5cdFx0XHRcdFx0XHRcdGN1cnJlbmN5XG5cdFx0XHRcdFx0XHRcdHZhbHVlXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRmaW5hbF9wcmljZSB7XG5cdFx0XHRcdFx0XHRcdGN1cnJlbmN5XG5cdFx0XHRcdFx0XHRcdHZhbHVlXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5gO1xuIl19
|
@@ -1,8 +1,10 @@
|
|
1
|
-
import {
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
2
|
+
import { Inject, Injectable, } from '@angular/core';
|
2
3
|
import { Apollo } from 'apollo-angular';
|
3
4
|
import { map } from 'rxjs/operators';
|
4
5
|
import { MagentoResolveUrlv243 } from './graphql/queries/resolve';
|
5
6
|
import { transformResolutionToResolvableUrlv243 } from './transforms/resolution-to-resolvable-url';
|
7
|
+
import { transformClientUrls } from './transforms/transform-client-urls';
|
6
8
|
import * as i0 from "@angular/core";
|
7
9
|
import * as i1 from "apollo-angular";
|
8
10
|
/**
|
@@ -12,8 +14,9 @@ import * as i1 from "apollo-angular";
|
|
12
14
|
* @inheritdoc
|
13
15
|
*/
|
14
16
|
export class DaffExternalRouterMagentoDriver {
|
15
|
-
constructor(apollo) {
|
17
|
+
constructor(apollo, document) {
|
16
18
|
this.apollo = apollo;
|
19
|
+
this.document = document;
|
17
20
|
}
|
18
21
|
resolve(url) {
|
19
22
|
return this.apollo
|
@@ -23,9 +26,9 @@ export class DaffExternalRouterMagentoDriver {
|
|
23
26
|
url,
|
24
27
|
},
|
25
28
|
})
|
26
|
-
.pipe(map(response =>
|
29
|
+
.pipe(map((response) => response.data.route), map((route) => transformClientUrls(route, this.document.location.origin)), map(route => transformResolutionToResolvableUrlv243(route)));
|
27
30
|
}
|
28
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffExternalRouterMagentoDriver, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
31
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffExternalRouterMagentoDriver, deps: [{ token: i1.Apollo }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
29
32
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffExternalRouterMagentoDriver, providedIn: 'root' }); }
|
30
33
|
}
|
31
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffExternalRouterMagentoDriver, decorators: [{
|
@@ -33,5 +36,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
33
36
|
args: [{
|
34
37
|
providedIn: 'root',
|
35
38
|
}]
|
36
|
-
}], ctorParameters: () => [{ type: i1.Apollo }
|
37
|
-
|
39
|
+
}], ctorParameters: () => [{ type: i1.Apollo }, { type: Document, decorators: [{
|
40
|
+
type: Inject,
|
41
|
+
args: [DOCUMENT]
|
42
|
+
}] }] });
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnZW50by5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8vMi40LjMvc3JjL21hZ2VudG8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU9yQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBR3pFOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLCtCQUErQjtJQUUxQyxZQUNVLE1BQWMsRUFDSSxRQUFrQjtRQURwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ0ksYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUMzQyxDQUFDO0lBRUosT0FBTyxDQUFDLEdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNmLEtBQUssQ0FBdUI7WUFDM0IsS0FBSyxFQUFFLHFCQUFxQjtZQUM1QixTQUFTLEVBQUU7Z0JBQ1QsR0FBRzthQUNKO1NBQ0YsQ0FBQzthQUNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQ3RDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQ3pFLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzVELENBQUM7SUFDTixDQUFDO2lJQXBCVSwrQkFBK0Isd0NBSWhDLFFBQVE7cUlBSlAsK0JBQStCLGNBRjlCLE1BQU07OzJGQUVQLCtCQUErQjtrQkFIM0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUtJLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcG9sbG8gfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuaW1wb3J0IHsgRGFmZkV4dGVybmFsbHlSZXNvbHZhYmxlVXJsIH0gZnJvbSAnQGRhZmZvZGlsL2V4dGVybmFsLXJvdXRlcic7XG5pbXBvcnQgeyBEYWZmRXh0ZXJuYWxSb3V0ZXJEcml2ZXJJbnRlcmZhY2UgfSBmcm9tICdAZGFmZm9kaWwvZXh0ZXJuYWwtcm91dGVyL2RyaXZlcic7XG5pbXBvcnQgeyBNYWdlbnRvUm91dGVSZXNwb25zZSB9IGZyb20gJ0BkYWZmb2RpbC9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8nO1xuXG5pbXBvcnQgeyBNYWdlbnRvUmVzb2x2ZVVybHYyNDMgfSBmcm9tICcuL2dyYXBocWwvcXVlcmllcy9yZXNvbHZlJztcbmltcG9ydCB7IHRyYW5zZm9ybVJlc29sdXRpb25Ub1Jlc29sdmFibGVVcmx2MjQzIH0gZnJvbSAnLi90cmFuc2Zvcm1zL3Jlc29sdXRpb24tdG8tcmVzb2x2YWJsZS11cmwnO1xuaW1wb3J0IHsgdHJhbnNmb3JtQ2xpZW50VXJscyB9IGZyb20gJy4vdHJhbnNmb3Jtcy90cmFuc2Zvcm0tY2xpZW50LXVybHMnO1xuXG5cbi8qKlxuICogVGhlIERhZmZFeHRlcm5hbFJvdXRlck1hZ2VudG9Ecml2ZXIgaXMgcmVzcG9uc2libGUgZm9yIHRyYW5zbGF0aW5nIGFuXG4gKiBhcmJpdHJhcnkgVVJJIGludG8gYSBEYWZmRXh0ZXJuYWxseVJlc29sdmFibGVVcmwgd2l0aCBNYWdlbnRvIGVudmlyb25tZW50cy5cbiAqXG4gKiBAaW5oZXJpdGRvY1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRGFmZkV4dGVybmFsUm91dGVyTWFnZW50b0RyaXZlclxuaW1wbGVtZW50cyBEYWZmRXh0ZXJuYWxSb3V0ZXJEcml2ZXJJbnRlcmZhY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFwb2xsbzogQXBvbGxvLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICApIHt9XG5cbiAgcmVzb2x2ZSh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8RGFmZkV4dGVybmFsbHlSZXNvbHZhYmxlVXJsPiB7XG4gICAgcmV0dXJuIHRoaXMuYXBvbGxvXG4gICAgICAucXVlcnk8TWFnZW50b1JvdXRlUmVzcG9uc2U+KHtcbiAgICAgICAgcXVlcnk6IE1hZ2VudG9SZXNvbHZlVXJsdjI0MyxcbiAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgdXJsLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZS5kYXRhLnJvdXRlKSxcbiAgICAgICAgbWFwKChyb3V0ZSkgPT4gdHJhbnNmb3JtQ2xpZW50VXJscyhyb3V0ZSwgdGhpcy5kb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pKSxcbiAgICAgICAgbWFwKHJvdXRlID0+IHRyYW5zZm9ybVJlc29sdXRpb25Ub1Jlc29sdmFibGVVcmx2MjQzKHJvdXRlKSksXG4gICAgICApO1xuICB9XG59XG4iXX0=
|
@@ -1,15 +1,19 @@
|
|
1
1
|
import { daffUriTruncateLeadingSlash, daffUriTruncateQueryFragment, } from '@daffodil/core/routing';
|
2
2
|
import { DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION } from '@daffodil/external-router/driver';
|
3
3
|
import { magentoTransformRedirectToHttpCode, } from '@daffodil/external-router/driver/magento';
|
4
|
-
|
4
|
+
import { transformSchema } from './schema/transform-schema';
|
5
|
+
export const transformResolutionToResolvableUrlv243 = (resolution) => (resolution && (resolution.type === 'CATEGORY' || resolution.type === 'PRODUCT') ? {
|
5
6
|
id: resolution.uid,
|
6
7
|
url: daffUriTruncateLeadingSlash(daffUriTruncateQueryFragment(resolution.relative_url)),
|
7
8
|
type: resolution.type,
|
8
9
|
code: magentoTransformRedirectToHttpCode(resolution.redirect_code),
|
9
10
|
data: {
|
10
|
-
canonical_url: resolution
|
11
|
+
canonical_url: resolution?.canonical_url,
|
11
12
|
title: resolution.meta_title ?? resolution.name ?? '',
|
12
13
|
meta_description: resolution.meta_description,
|
14
|
+
schema: {
|
15
|
+
...transformSchema(resolution),
|
16
|
+
},
|
13
17
|
},
|
14
18
|
} : DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION);
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x1dGlvbi10by1yZXNvbHZhYmxlLXVybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZXh0ZXJuYWwtcm91dGVyL2RyaXZlci9tYWdlbnRvLzIuNC4zL3NyYy90cmFuc2Zvcm1zL3Jlc29sdXRpb24tdG8tcmVzb2x2YWJsZS11cmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDJCQUEyQixFQUMzQiw0QkFBNEIsR0FDN0IsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RixPQUFPLEVBQ0wsa0NBQWtDLEdBRW5DLE1BQU0sMENBQTBDLENBQUM7QUFFbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTVELE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUFHLENBQ3BELFVBQXdCLEVBQ00sRUFBRSxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksVUFBVSxDQUFDLElBQUksS0FBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkgsRUFBRSxFQUFFLFVBQVUsQ0FBQyxHQUFHO0lBQ2xCLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQyw0QkFBNEIsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkYsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO0lBQ3JCLElBQUksRUFBRSxrQ0FBa0MsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ2xFLElBQUksRUFBRTtRQUNKLGFBQWEsRUFBRSxVQUFVLEVBQUUsYUFBYTtRQUN4QyxLQUFLLEVBQUUsVUFBVSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUU7UUFDckQsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQjtRQUM3QyxNQUFNLEVBQUU7WUFDTixHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUM7U0FDL0I7S0FDRjtDQUNGLENBQUMsQ0FBQyxDQUFDLHlDQUF5QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBkYWZmVXJpVHJ1bmNhdGVMZWFkaW5nU2xhc2gsXG4gIGRhZmZVcmlUcnVuY2F0ZVF1ZXJ5RnJhZ21lbnQsXG59IGZyb20gJ0BkYWZmb2RpbC9jb3JlL3JvdXRpbmcnO1xuaW1wb3J0IHsgRGFmZkV4dGVybmFsbHlSZXNvbHZhYmxlVXJsIH0gZnJvbSAnQGRhZmZvZGlsL2V4dGVybmFsLXJvdXRlcic7XG5pbXBvcnQgeyBEQUZGX0VYVEVSTkFMX1JPVVRFUl9OT1RfRk9VTkRfUkVTT0xVVElPTiB9IGZyb20gJ0BkYWZmb2RpbC9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyJztcbmltcG9ydCB7XG4gIG1hZ2VudG9UcmFuc2Zvcm1SZWRpcmVjdFRvSHR0cENvZGUsXG4gIE1hZ2VudG9Sb3V0ZSxcbn0gZnJvbSAnQGRhZmZvZGlsL2V4dGVybmFsLXJvdXRlci9kcml2ZXIvbWFnZW50byc7XG5cbmltcG9ydCB7IHRyYW5zZm9ybVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hL3RyYW5zZm9ybS1zY2hlbWEnO1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtUmVzb2x1dGlvblRvUmVzb2x2YWJsZVVybHYyNDMgPSAoXG4gIHJlc29sdXRpb246IE1hZ2VudG9Sb3V0ZSxcbik6IERhZmZFeHRlcm5hbGx5UmVzb2x2YWJsZVVybCAgPT4gKHJlc29sdXRpb24gJiYgKHJlc29sdXRpb24udHlwZSA9PT0gJ0NBVEVHT1JZJyB8fCByZXNvbHV0aW9uLnR5cGUgPT09J1BST0RVQ1QnKSA/IHtcbiAgaWQ6IHJlc29sdXRpb24udWlkLFxuICB1cmw6IGRhZmZVcmlUcnVuY2F0ZUxlYWRpbmdTbGFzaChkYWZmVXJpVHJ1bmNhdGVRdWVyeUZyYWdtZW50KHJlc29sdXRpb24ucmVsYXRpdmVfdXJsKSksXG4gIHR5cGU6IHJlc29sdXRpb24udHlwZSxcbiAgY29kZTogbWFnZW50b1RyYW5zZm9ybVJlZGlyZWN0VG9IdHRwQ29kZShyZXNvbHV0aW9uLnJlZGlyZWN0X2NvZGUpLFxuICBkYXRhOiB7XG4gICAgY2Fub25pY2FsX3VybDogcmVzb2x1dGlvbj8uY2Fub25pY2FsX3VybCxcbiAgICB0aXRsZTogcmVzb2x1dGlvbi5tZXRhX3RpdGxlID8/IHJlc29sdXRpb24ubmFtZSA/PyAnJyxcbiAgICBtZXRhX2Rlc2NyaXB0aW9uOiByZXNvbHV0aW9uLm1ldGFfZGVzY3JpcHRpb24sXG4gICAgc2NoZW1hOiB7XG4gICAgICAuLi50cmFuc2Zvcm1TY2hlbWEocmVzb2x1dGlvbiksXG4gICAgfSxcbiAgfSxcbn0gOiBEQUZGX0VYVEVSTkFMX1JPVVRFUl9OT1RfRk9VTkRfUkVTT0xVVElPTik7XG4iXX0=
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { transformMagentoProductSchema } from '../product/product';
|
2
|
+
export const transformMagentoCategorySchema = (resolution) => ({
|
3
|
+
'@context': 'https://schema.org',
|
4
|
+
'@type': 'ItemList',
|
5
|
+
itemListElement: resolution.products.items.map((item, index) => ({
|
6
|
+
'@type': 'ListItem',
|
7
|
+
position: index,
|
8
|
+
item: transformMagentoProductSchema({
|
9
|
+
...item,
|
10
|
+
meta_description: undefined,
|
11
|
+
stock_status: undefined,
|
12
|
+
}),
|
13
|
+
})),
|
14
|
+
});
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2V4dGVybmFsLXJvdXRlci9kcml2ZXIvbWFnZW50by8yLjQuMy9zcmMvdHJhbnNmb3Jtcy9zY2hlbWEvY2F0ZWdvcnkvY2F0ZWdvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHbkUsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxVQUFnQyxFQUEyQixFQUFFLENBQUMsQ0FBQztJQUM1RyxVQUFVLEVBQUUsb0JBQW9CO0lBQ2hDLE9BQU8sRUFBRSxVQUFVO0lBQ25CLGVBQWUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sRUFBRSxVQUFVO1FBQ25CLFFBQVEsRUFBRSxLQUFLO1FBQ2YsSUFBSSxFQUFFLDZCQUE2QixDQUFDO1lBQ2xDLEdBQUcsSUFBSTtZQUNQLGdCQUFnQixFQUFFLFNBQVM7WUFDM0IsWUFBWSxFQUFFLFNBQVM7U0FDeEIsQ0FBQztLQUNILENBQUMsQ0FBQztDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hZ2VudG9DYXRlZ29yeVJvdXRlIH0gZnJvbSAnQGRhZmZvZGlsL2V4dGVybmFsLXJvdXRlci9kcml2ZXIvbWFnZW50byc7XG5cbmltcG9ydCB7IHRyYW5zZm9ybU1hZ2VudG9Qcm9kdWN0U2NoZW1hIH0gZnJvbSAnLi4vcHJvZHVjdC9wcm9kdWN0JztcbmltcG9ydCB7IHJlc2NhbGVSYXRpbmdPdXRPZjUgfSBmcm9tICcuLi9yZXNjYWxlLXJhdGluZyc7XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1NYWdlbnRvQ2F0ZWdvcnlTY2hlbWEgPSAocmVzb2x1dGlvbjogTWFnZW50b0NhdGVnb3J5Um91dGUpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiAoe1xuICAnQGNvbnRleHQnOiAnaHR0cHM6Ly9zY2hlbWEub3JnJyxcbiAgJ0B0eXBlJzogJ0l0ZW1MaXN0JyxcbiAgaXRlbUxpc3RFbGVtZW50OiByZXNvbHV0aW9uLnByb2R1Y3RzLml0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+ICh7XG4gICAgJ0B0eXBlJzogJ0xpc3RJdGVtJyxcbiAgICBwb3NpdGlvbjogaW5kZXgsXG4gICAgaXRlbTogdHJhbnNmb3JtTWFnZW50b1Byb2R1Y3RTY2hlbWEoe1xuICAgICAgLi4uaXRlbSxcbiAgICAgIG1ldGFfZGVzY3JpcHRpb246IHVuZGVmaW5lZCxcbiAgICAgIHN0b2NrX3N0YXR1czogdW5kZWZpbmVkLFxuICAgIH0pLFxuICB9KSksXG59KTtcbiJdfQ==
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export const clientifyUrlPath = (path, domain) => path ? new URL(path, domain).toString() : path;
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50aWZ5LXVybC1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8vMi40LjMvc3JjL3RyYW5zZm9ybXMvc2NoZW1hL2NsaWVudGlmeS11cmwtcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUEwQixJQUFPLEVBQUUsTUFBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGNsaWVudGlmeVVybFBhdGggPSA8VCBleHRlbmRzIHN0cmluZyB8IG51bGw+KHBhdGg6IFQsIGRvbWFpbjogc3RyaW5nKSA9PiBwYXRoID8gbmV3IFVSTChwYXRoLCBkb21haW4pLnRvU3RyaW5nKCkgOiBwYXRoO1xuIl19
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { rescaleRatingOutOf5 } from '../rescale-rating';
|
2
|
+
export const transformMagentoBaseProduct = (product) => ({
|
3
|
+
'@context': 'https://schema.org/',
|
4
|
+
'@type': 'Product',
|
5
|
+
url: product.canonical_url,
|
6
|
+
sku: product.sku,
|
7
|
+
name: product.meta_title ?? product.name ?? '',
|
8
|
+
...(product.meta_description && { description: product.meta_description }),
|
9
|
+
...(product.review_count > 0 && { aggregateRating: {
|
10
|
+
'@type': 'AggregateRating',
|
11
|
+
ratingValue: rescaleRatingOutOf5(product.rating_summary, 100),
|
12
|
+
reviewCount: product.review_count,
|
13
|
+
} }),
|
14
|
+
image: product.image?.url,
|
15
|
+
});
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZXh0ZXJuYWwtcm91dGVyL2RyaXZlci9tYWdlbnRvLzIuNC4zL3NyYy90cmFuc2Zvcm1zL3NjaGVtYS9wcm9kdWN0L2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxPQUE0QixFQUEyQixFQUFFLENBQUMsQ0FBQztJQUNyRyxVQUFVLEVBQUUscUJBQXFCO0lBQ2pDLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEdBQUcsRUFBRSxPQUFPLENBQUMsYUFBYTtJQUMxQixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7SUFDaEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFO0lBQzlDLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLElBQUksRUFBRyxXQUFXLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDM0UsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ2pELE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDO1lBQzdELFdBQVcsRUFBRSxPQUFPLENBQUMsWUFBWTtTQUNsQyxFQUFDLENBQUM7SUFDSCxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHO0NBQzFCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hZ2VudG9Qcm9kdWN0Um91dGUgfSBmcm9tICdAZGFmZm9kaWwvZXh0ZXJuYWwtcm91dGVyL2RyaXZlci9tYWdlbnRvJztcblxuaW1wb3J0IHsgcmVzY2FsZVJhdGluZ091dE9mNSB9IGZyb20gJy4uL3Jlc2NhbGUtcmF0aW5nJztcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybU1hZ2VudG9CYXNlUHJvZHVjdCA9IChwcm9kdWN0OiBNYWdlbnRvUHJvZHVjdFJvdXRlKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4gKHtcbiAgJ0Bjb250ZXh0JzogJ2h0dHBzOi8vc2NoZW1hLm9yZy8nLFxuICAnQHR5cGUnOiAnUHJvZHVjdCcsXG4gIHVybDogcHJvZHVjdC5jYW5vbmljYWxfdXJsLFxuICBza3U6IHByb2R1Y3Quc2t1LFxuICBuYW1lOiBwcm9kdWN0Lm1ldGFfdGl0bGUgPz8gcHJvZHVjdC5uYW1lID8/ICcnLFxuICAuLi4ocHJvZHVjdC5tZXRhX2Rlc2NyaXB0aW9uICYmIHsgIGRlc2NyaXB0aW9uOiBwcm9kdWN0Lm1ldGFfZGVzY3JpcHRpb24gfSksXG4gIC4uLihwcm9kdWN0LnJldmlld19jb3VudCA+IDAgJiYgeyBhZ2dyZWdhdGVSYXRpbmc6IHtcbiAgICAnQHR5cGUnOiAnQWdncmVnYXRlUmF0aW5nJyxcbiAgICByYXRpbmdWYWx1ZTogcmVzY2FsZVJhdGluZ091dE9mNShwcm9kdWN0LnJhdGluZ19zdW1tYXJ5LCAxMDApLFxuICAgIHJldmlld0NvdW50OiBwcm9kdWN0LnJldmlld19jb3VudCxcbiAgfX0pLFxuICBpbWFnZTogcHJvZHVjdC5pbWFnZT8udXJsLFxufSk7XG4iXX0=
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { transformMagentoBaseProduct } from './base';
|
2
|
+
export const transformMagentoBundleProduct = (resolution) => ({
|
3
|
+
...transformMagentoBaseProduct(resolution),
|
4
|
+
offers: {
|
5
|
+
'@type': 'AggregateOffer',
|
6
|
+
lowPrice: resolution.price_range.minimum_price.final_price.value,
|
7
|
+
highPrice: resolution.price_range.maximum_price.final_price.value,
|
8
|
+
priceCurrency: resolution.price_range.maximum_price.final_price.currency,
|
9
|
+
},
|
10
|
+
});
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8vMi40LjMvc3JjL3RyYW5zZm9ybXMvc2NoZW1hL3Byb2R1Y3QvYnVuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVyRCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLFVBQStCLEVBQTJCLEVBQUUsQ0FBQyxDQUFDO0lBQzFHLEdBQUcsMkJBQTJCLENBQUMsVUFBVSxDQUFDO0lBQzFDLE1BQU0sRUFBRTtRQUNOLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxLQUFLO1FBQ2hFLFNBQVMsRUFBRSxVQUFVLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsS0FBSztRQUNqRSxhQUFhLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFFBQVE7S0FDekU7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYWdlbnRvUHJvZHVjdFJvdXRlIH0gZnJvbSAnQGRhZmZvZGlsL2V4dGVybmFsLXJvdXRlci9kcml2ZXIvbWFnZW50byc7XG5cbmltcG9ydCB7IHRyYW5zZm9ybU1hZ2VudG9CYXNlUHJvZHVjdCB9IGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1NYWdlbnRvQnVuZGxlUHJvZHVjdCA9IChyZXNvbHV0aW9uOiBNYWdlbnRvUHJvZHVjdFJvdXRlKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4gKHtcbiAgLi4udHJhbnNmb3JtTWFnZW50b0Jhc2VQcm9kdWN0KHJlc29sdXRpb24pLFxuICBvZmZlcnM6IHtcbiAgICAnQHR5cGUnOiAnQWdncmVnYXRlT2ZmZXInLFxuICAgIGxvd1ByaWNlOiByZXNvbHV0aW9uLnByaWNlX3JhbmdlLm1pbmltdW1fcHJpY2UuZmluYWxfcHJpY2UudmFsdWUsXG4gICAgaGlnaFByaWNlOiByZXNvbHV0aW9uLnByaWNlX3JhbmdlLm1heGltdW1fcHJpY2UuZmluYWxfcHJpY2UudmFsdWUsXG4gICAgcHJpY2VDdXJyZW5jeTogcmVzb2x1dGlvbi5wcmljZV9yYW5nZS5tYXhpbXVtX3ByaWNlLmZpbmFsX3ByaWNlLmN1cnJlbmN5LFxuICB9LFxufSk7XG4iXX0=
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { transformMagentoBaseProduct } from './base';
|
2
|
+
export const transformMagentoConfigurableProduct = (resolution) => ({
|
3
|
+
...transformMagentoBaseProduct(resolution),
|
4
|
+
offers: {
|
5
|
+
'@type': 'AggregateOffer',
|
6
|
+
lowPrice: resolution.price_range.minimum_price.final_price.value,
|
7
|
+
highPrice: resolution.price_range.maximum_price.final_price.value,
|
8
|
+
priceCurrency: resolution.price_range.maximum_price.final_price.currency,
|
9
|
+
},
|
10
|
+
});
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8vMi40LjMvc3JjL3RyYW5zZm9ybXMvc2NoZW1hL3Byb2R1Y3QvY29uZmlndXJhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVyRCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxDQUFDLFVBQStCLEVBQTJCLEVBQUUsQ0FBQyxDQUFDO0lBQ2hILEdBQUcsMkJBQTJCLENBQUMsVUFBVSxDQUFDO0lBQzFDLE1BQU0sRUFBRTtRQUNOLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxLQUFLO1FBQ2hFLFNBQVMsRUFBRSxVQUFVLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsS0FBSztRQUNqRSxhQUFhLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFFBQVE7S0FDekU7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBNYWdlbnRvUHJvZHVjdFJvdXRlLFxuICBNYWdlbnRvUm91dGUsXG59IGZyb20gJ0BkYWZmb2RpbC9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8nO1xuXG5pbXBvcnQgeyB0cmFuc2Zvcm1NYWdlbnRvQmFzZVByb2R1Y3QgfSBmcm9tICcuL2Jhc2UnO1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtTWFnZW50b0NvbmZpZ3VyYWJsZVByb2R1Y3QgPSAocmVzb2x1dGlvbjogTWFnZW50b1Byb2R1Y3RSb3V0ZSk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+ICh7XG4gIC4uLnRyYW5zZm9ybU1hZ2VudG9CYXNlUHJvZHVjdChyZXNvbHV0aW9uKSxcbiAgb2ZmZXJzOiB7XG4gICAgJ0B0eXBlJzogJ0FnZ3JlZ2F0ZU9mZmVyJyxcbiAgICBsb3dQcmljZTogcmVzb2x1dGlvbi5wcmljZV9yYW5nZS5taW5pbXVtX3ByaWNlLmZpbmFsX3ByaWNlLnZhbHVlLFxuICAgIGhpZ2hQcmljZTogcmVzb2x1dGlvbi5wcmljZV9yYW5nZS5tYXhpbXVtX3ByaWNlLmZpbmFsX3ByaWNlLnZhbHVlLFxuICAgIHByaWNlQ3VycmVuY3k6IHJlc29sdXRpb24ucHJpY2VfcmFuZ2UubWF4aW11bV9wcmljZS5maW5hbF9wcmljZS5jdXJyZW5jeSxcbiAgfSxcbn0pO1xuIl19
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { transformMagentoBaseProduct } from './base';
|
2
|
+
import { transformMagentoBundleProduct } from './bundle';
|
3
|
+
import { transformMagentoConfigurableProduct } from './configurable';
|
4
|
+
import { transformMagentoSimpleProduct } from './simple';
|
5
|
+
/**
|
6
|
+
* Computes supplementary SEO schema for Magento product routes.
|
7
|
+
*/
|
8
|
+
export const transformMagentoProductSchema = (resolution) => {
|
9
|
+
switch (resolution.__typename) {
|
10
|
+
case 'BundleProduct':
|
11
|
+
return transformMagentoBundleProduct(resolution);
|
12
|
+
case 'ConfigurableProduct':
|
13
|
+
return transformMagentoConfigurableProduct(resolution);
|
14
|
+
case 'SimpleProduct':
|
15
|
+
return transformMagentoSimpleProduct(resolution);
|
16
|
+
default:
|
17
|
+
return transformMagentoBaseProduct(resolution);
|
18
|
+
}
|
19
|
+
};
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZXh0ZXJuYWwtcm91dGVyL2RyaXZlci9tYWdlbnRvLzIuNC4zL3NyYy90cmFuc2Zvcm1zL3NjaGVtYS9wcm9kdWN0L3Byb2R1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3JELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFekQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLFVBQStCLEVBQTJCLEVBQUU7SUFDeEcsUUFBTyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0IsS0FBSyxlQUFlO1lBQ2xCLE9BQU8sNkJBQTZCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkQsS0FBSyxxQkFBcUI7WUFDeEIsT0FBTyxtQ0FBbUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RCxLQUFLLGVBQWU7WUFDbEIsT0FBTyw2QkFBNkIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRDtZQUNFLE9BQU8sMkJBQTJCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkQsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hZ2VudG9Qcm9kdWN0Um91dGUgfSBmcm9tICdAZGFmZm9kaWwvZXh0ZXJuYWwtcm91dGVyL2RyaXZlci9tYWdlbnRvJztcblxuaW1wb3J0IHsgdHJhbnNmb3JtTWFnZW50b0Jhc2VQcm9kdWN0IH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IHRyYW5zZm9ybU1hZ2VudG9CdW5kbGVQcm9kdWN0IH0gZnJvbSAnLi9idW5kbGUnO1xuaW1wb3J0IHsgdHJhbnNmb3JtTWFnZW50b0NvbmZpZ3VyYWJsZVByb2R1Y3QgfSBmcm9tICcuL2NvbmZpZ3VyYWJsZSc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1NYWdlbnRvU2ltcGxlUHJvZHVjdCB9IGZyb20gJy4vc2ltcGxlJztcblxuLyoqXG4gKiBDb21wdXRlcyBzdXBwbGVtZW50YXJ5IFNFTyBzY2hlbWEgZm9yIE1hZ2VudG8gcHJvZHVjdCByb3V0ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1NYWdlbnRvUHJvZHVjdFNjaGVtYSA9IChyZXNvbHV0aW9uOiBNYWdlbnRvUHJvZHVjdFJvdXRlKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4ge1xuICBzd2l0Y2gocmVzb2x1dGlvbi5fX3R5cGVuYW1lKSB7XG4gICAgY2FzZSAnQnVuZGxlUHJvZHVjdCc6XG4gICAgICByZXR1cm4gdHJhbnNmb3JtTWFnZW50b0J1bmRsZVByb2R1Y3QocmVzb2x1dGlvbik7XG4gICAgY2FzZSAnQ29uZmlndXJhYmxlUHJvZHVjdCc6XG4gICAgICByZXR1cm4gdHJhbnNmb3JtTWFnZW50b0NvbmZpZ3VyYWJsZVByb2R1Y3QocmVzb2x1dGlvbik7XG4gICAgY2FzZSAnU2ltcGxlUHJvZHVjdCc6XG4gICAgICByZXR1cm4gdHJhbnNmb3JtTWFnZW50b1NpbXBsZVByb2R1Y3QocmVzb2x1dGlvbik7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB0cmFuc2Zvcm1NYWdlbnRvQmFzZVByb2R1Y3QocmVzb2x1dGlvbik7XG4gIH1cbn07XG4iXX0=
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { transformMagentoBaseProduct } from './base';
|
2
|
+
export const transformMagentoSimpleProduct = (resolution) => ({
|
3
|
+
...transformMagentoBaseProduct(resolution),
|
4
|
+
offers: {
|
5
|
+
'@type': 'Offer',
|
6
|
+
url: resolution.canonical_url,
|
7
|
+
...(resolution.stock_status && {
|
8
|
+
availability: resolution.stock_status === 'IN_STOCK' ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
|
9
|
+
}),
|
10
|
+
priceSpecification: [
|
11
|
+
{
|
12
|
+
'@type': 'UnitPriceSpecification',
|
13
|
+
price: resolution.price_range.maximum_price.final_price.value,
|
14
|
+
priceCurrency: resolution.price_range.maximum_price.final_price.currency,
|
15
|
+
},
|
16
|
+
{
|
17
|
+
'@type': 'UnitPriceSpecification',
|
18
|
+
priceType: 'https://schema.org/ListPrice',
|
19
|
+
price: resolution.price_range.maximum_price.regular_price.value,
|
20
|
+
priceCurrency: resolution.price_range.maximum_price.regular_price.currency,
|
21
|
+
},
|
22
|
+
],
|
23
|
+
},
|
24
|
+
});
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8vMi40LjMvc3JjL3RyYW5zZm9ybXMvc2NoZW1hL3Byb2R1Y3Qvc2ltcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVyRCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLFVBQStCLEVBQTJCLEVBQUUsQ0FBQyxDQUFDO0lBQzFHLEdBQUcsMkJBQTJCLENBQUMsVUFBVSxDQUFDO0lBQzFDLE1BQU0sRUFBRTtRQUNOLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEdBQUcsRUFBRSxVQUFVLENBQUMsYUFBYTtRQUM3QixHQUFHLENBQUMsVUFBVSxDQUFDLFlBQVksSUFBSTtZQUM3QixZQUFZLEVBQUUsVUFBVSxDQUFDLFlBQVksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQywrQkFBK0I7U0FDdEgsQ0FBQztRQUNGLGtCQUFrQixFQUFFO1lBQ2xCO2dCQUNFLE9BQU8sRUFBRSx3QkFBd0I7Z0JBQ2pDLEtBQUssRUFBRSxVQUFVLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsS0FBSztnQkFDN0QsYUFBYSxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxRQUFRO2FBQ3pFO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLHdCQUF3QjtnQkFDakMsU0FBUyxFQUFFLDhCQUE4QjtnQkFDekMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLO2dCQUMvRCxhQUFhLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVE7YUFDM0U7U0FDRjtLQUNGO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBNYWdlbnRvUHJvZHVjdFJvdXRlIH0gZnJvbSAnQGRhZmZvZGlsL2V4dGVybmFsLXJvdXRlci9kcml2ZXIvbWFnZW50byc7XG5cbmltcG9ydCB7IHRyYW5zZm9ybU1hZ2VudG9CYXNlUHJvZHVjdCB9IGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1NYWdlbnRvU2ltcGxlUHJvZHVjdCA9IChyZXNvbHV0aW9uOiBNYWdlbnRvUHJvZHVjdFJvdXRlKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4gKHtcbiAgLi4udHJhbnNmb3JtTWFnZW50b0Jhc2VQcm9kdWN0KHJlc29sdXRpb24pLFxuICBvZmZlcnM6IHtcbiAgICAnQHR5cGUnOiAnT2ZmZXInLFxuICAgIHVybDogcmVzb2x1dGlvbi5jYW5vbmljYWxfdXJsLFxuICAgIC4uLihyZXNvbHV0aW9uLnN0b2NrX3N0YXR1cyAmJiB7XG4gICAgICBhdmFpbGFiaWxpdHk6IHJlc29sdXRpb24uc3RvY2tfc3RhdHVzID09PSAnSU5fU1RPQ0snID8gJ2h0dHBzOi8vc2NoZW1hLm9yZy9JblN0b2NrJyA6ICdodHRwczovL3NjaGVtYS5vcmcvT3V0T2ZTdG9jaycsXG4gICAgfSksXG4gICAgcHJpY2VTcGVjaWZpY2F0aW9uOiBbXG4gICAgICB7XG4gICAgICAgICdAdHlwZSc6ICdVbml0UHJpY2VTcGVjaWZpY2F0aW9uJyxcbiAgICAgICAgcHJpY2U6IHJlc29sdXRpb24ucHJpY2VfcmFuZ2UubWF4aW11bV9wcmljZS5maW5hbF9wcmljZS52YWx1ZSxcbiAgICAgICAgcHJpY2VDdXJyZW5jeTogcmVzb2x1dGlvbi5wcmljZV9yYW5nZS5tYXhpbXVtX3ByaWNlLmZpbmFsX3ByaWNlLmN1cnJlbmN5LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgJ0B0eXBlJzogJ1VuaXRQcmljZVNwZWNpZmljYXRpb24nLFxuICAgICAgICBwcmljZVR5cGU6ICdodHRwczovL3NjaGVtYS5vcmcvTGlzdFByaWNlJyxcbiAgICAgICAgcHJpY2U6IHJlc29sdXRpb24ucHJpY2VfcmFuZ2UubWF4aW11bV9wcmljZS5yZWd1bGFyX3ByaWNlLnZhbHVlLFxuICAgICAgICBwcmljZUN1cnJlbmN5OiByZXNvbHV0aW9uLnByaWNlX3JhbmdlLm1heGltdW1fcHJpY2UucmVndWxhcl9wcmljZS5jdXJyZW5jeSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbn0pO1xuIl19
|
@@ -0,0 +1,6 @@
|
|
1
|
+
/**
|
2
|
+
* Rescales a rating value from it's max rating
|
3
|
+
* to a scale of 5.
|
4
|
+
*/
|
5
|
+
export const rescaleRatingOutOf5 = (rating, max) => (((rating ?? 0) / max) * 5).toPrecision(2);
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzY2FsZS1yYXRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2V4dGVybmFsLXJvdXRlci9kcml2ZXIvbWFnZW50by8yLjQuMy9zcmMvdHJhbnNmb3Jtcy9zY2hlbWEvcmVzY2FsZS1yYXRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxNQUFxQixFQUFFLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzY2FsZXMgYSByYXRpbmcgdmFsdWUgZnJvbSBpdCdzIG1heCByYXRpbmdcbiAqIHRvIGEgc2NhbGUgb2YgNS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlc2NhbGVSYXRpbmdPdXRPZjUgPSAocmF0aW5nOiBudW1iZXIgfCBudWxsLCBtYXg6IG51bWJlcikgPT4gKCgocmF0aW5nID8/IDApL21heCkgKiA1KS50b1ByZWNpc2lvbigyKTtcbiJdfQ==
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { transformMagentoCategorySchema } from './category/category';
|
2
|
+
import { transformMagentoProductSchema } from './product/product';
|
3
|
+
export const transformSchema = (resolution) => {
|
4
|
+
switch (resolution.type) {
|
5
|
+
case 'PRODUCT':
|
6
|
+
return transformMagentoProductSchema(resolution);
|
7
|
+
case 'CATEGORY':
|
8
|
+
return transformMagentoCategorySchema(resolution);
|
9
|
+
default:
|
10
|
+
return null;
|
11
|
+
}
|
12
|
+
};
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLXNjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZXh0ZXJuYWwtcm91dGVyL2RyaXZlci9tYWdlbnRvLzIuNC4zL3NyYy90cmFuc2Zvcm1zL3NjaGVtYS90cmFuc2Zvcm0tc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFVBQXdCLEVBQThCLEVBQUU7SUFDdEYsUUFBTyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsS0FBSyxTQUFTO1lBQ1osT0FBTyw2QkFBNkIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRCxLQUFLLFVBQVU7WUFDYixPQUFPLDhCQUE4QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BEO1lBQ0UsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hZ2VudG9Sb3V0ZSB9IGZyb20gJ0BkYWZmb2RpbC9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8nO1xuXG5pbXBvcnQgeyB0cmFuc2Zvcm1NYWdlbnRvQ2F0ZWdvcnlTY2hlbWEgfSBmcm9tICcuL2NhdGVnb3J5L2NhdGVnb3J5JztcbmltcG9ydCB7IHRyYW5zZm9ybU1hZ2VudG9Qcm9kdWN0U2NoZW1hIH0gZnJvbSAnLi9wcm9kdWN0L3Byb2R1Y3QnO1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtU2NoZW1hID0gKHJlc29sdXRpb246IE1hZ2VudG9Sb3V0ZSk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCBudWxsID0+IHtcbiAgc3dpdGNoKHJlc29sdXRpb24udHlwZSkge1xuICAgIGNhc2UgJ1BST0RVQ1QnOlxuICAgICAgcmV0dXJuIHRyYW5zZm9ybU1hZ2VudG9Qcm9kdWN0U2NoZW1hKHJlc29sdXRpb24pO1xuICAgIGNhc2UgJ0NBVEVHT1JZJzpcbiAgICAgIHJldHVybiB0cmFuc2Zvcm1NYWdlbnRvQ2F0ZWdvcnlTY2hlbWEocmVzb2x1dGlvbik7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59O1xuIl19
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { clientifyUrlPath } from './schema/clientify-url-path';
|
2
|
+
export const transformClientUrls = (route, origin) => {
|
3
|
+
if (!route) {
|
4
|
+
return route;
|
5
|
+
}
|
6
|
+
switch (route.type) {
|
7
|
+
case 'CATEGORY':
|
8
|
+
return {
|
9
|
+
...route,
|
10
|
+
canonical_url: clientifyUrlPath(route.canonical_url, origin),
|
11
|
+
products: {
|
12
|
+
items: route.products.items.map((product) => ({
|
13
|
+
...product,
|
14
|
+
canonical_url: clientifyUrlPath(product.canonical_url, origin),
|
15
|
+
})),
|
16
|
+
},
|
17
|
+
};
|
18
|
+
case 'PRODUCT':
|
19
|
+
return {
|
20
|
+
...route,
|
21
|
+
canonical_url: clientifyUrlPath(route.canonical_url, origin),
|
22
|
+
};
|
23
|
+
default:
|
24
|
+
return route;
|
25
|
+
}
|
26
|
+
return route;
|
27
|
+
};
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLWNsaWVudC11cmxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8vMi40LjMvc3JjL3RyYW5zZm9ybXMvdHJhbnNmb3JtLWNsaWVudC11cmxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQXlCLEtBQVEsRUFBRSxNQUFjLEVBQUUsRUFBRTtJQUN0RixJQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDVixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxRQUFPLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixLQUFLLFVBQVU7WUFDYixPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixhQUFhLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7Z0JBQzVELFFBQVEsRUFBRTtvQkFDUixLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUM1QyxHQUFHLE9BQU87d0JBQ1YsYUFBYSxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDO3FCQUMvRCxDQUFDLENBQUM7aUJBQ0o7YUFDRixDQUFDO1FBQ0osS0FBSyxTQUFTO1lBQ1osT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsYUFBYSxFQUFFLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDO2FBQzdELENBQUM7UUFDSjtZQUNFLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hZ2VudG9Sb3V0ZSB9IGZyb20gJ0BkYWZmb2RpbC9leHRlcm5hbC1yb3V0ZXIvZHJpdmVyL21hZ2VudG8nO1xuXG5pbXBvcnQgeyBjbGllbnRpZnlVcmxQYXRoIH0gZnJvbSAnLi9zY2hlbWEvY2xpZW50aWZ5LXVybC1wYXRoJztcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybUNsaWVudFVybHMgPSA8VCBleHRlbmRzIE1hZ2VudG9Sb3V0ZT4ocm91dGU6IFQsIG9yaWdpbjogc3RyaW5nKSA9PiB7XG4gIGlmKCFyb3V0ZSkge1xuICAgIHJldHVybiByb3V0ZTtcbiAgfVxuXG4gIHN3aXRjaChyb3V0ZS50eXBlKSB7XG4gICAgY2FzZSAnQ0FURUdPUlknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucm91dGUsXG4gICAgICAgIGNhbm9uaWNhbF91cmw6IGNsaWVudGlmeVVybFBhdGgocm91dGUuY2Fub25pY2FsX3VybCwgb3JpZ2luKSxcbiAgICAgICAgcHJvZHVjdHM6IHtcbiAgICAgICAgICBpdGVtczogcm91dGUucHJvZHVjdHMuaXRlbXMubWFwKChwcm9kdWN0KSA9PiAoe1xuICAgICAgICAgICAgLi4ucHJvZHVjdCxcbiAgICAgICAgICAgIGNhbm9uaWNhbF91cmw6IGNsaWVudGlmeVVybFBhdGgocHJvZHVjdC5jYW5vbmljYWxfdXJsLCBvcmlnaW4pLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgY2FzZSAnUFJPRFVDVCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5yb3V0ZSxcbiAgICAgICAgY2Fub25pY2FsX3VybDogY2xpZW50aWZ5VXJsUGF0aChyb3V0ZS5jYW5vbmljYWxfdXJsLCBvcmlnaW4pLFxuICAgICAgfTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHJvdXRlO1xuICB9XG4gIHJldHVybiByb3V0ZTtcbn07XG4iXX0=
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktcm91dGUtcHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZXh0ZXJuYWwtcm91dGVyL2RyaXZlci9tYWdlbnRvL3NyYy9tb2RlbC9jYXRlZ29yeS1yb3V0ZS1wcm9kdWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE1hZ2VudG9DYXRlZ29yeVJvdXRlUHJvZHVjdCB7XG4gIC8qKlxuICAgKiBUaGUgcmVsYXRpdmUgcGF0aCBmb3IgdGhlIHJvdXRlLlxuICAgKi9cbiAgcmVsYXRpdmVfdXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHJvdXRlLCB0eXBpY2FsbHkgUFJPRFVDVCwgQ0FURUdPUlkgb3IgQ01TX1BBR0VcbiAgICovXG4gIHR5cGU6ICdQUk9EVUNUJztcblxuICAvKipcbiAgICogVGhlIEhUVFAgY29kZSBmb3IgdGhlIHBhZ2UuXG4gICAqL1xuICByZWRpcmVjdF9jb2RlOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEluIHYyLjQuMyB0aGlzIGJlY2FtZSB0aGUgc3RhbmRhcmQgZmllbGQgYWNyb3NzIHR5cGVzXG4gICAqL1xuICB1aWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNhbm9uaWNhbCB1cmwgb2YgdGhlIHJvdXRlLlxuICAgKi9cbiAgY2Fub25pY2FsX3VybDogc3RyaW5nIHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJvdXRlXG4gICAqL1xuICBuYW1lOiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIHJvdXRlXG4gICAqL1xuICBtZXRhX3RpdGxlOiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgc2t1IG9mIGEgcHJvZHVjdC5cbiAgICovXG4gIHNrdTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHJldmlld3Mgb2YgYSBwcm9kdWN0LlxuICAgKi9cbiAgcmV2aWV3X2NvdW50OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSByYXRpbmcgb2YgYSBwcm9kdWN0LlxuICAgKi9cbiAgcmF0aW5nX3N1bW1hcnk6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGltYWdlcyBvZiBhIHByb2R1Y3QuXG4gICAqL1xuICBpbWFnZTogeyB1cmw6IHN0cmluZ307XG5cbiAgLyoqXG4gICAqIFRoZSBwcmljZSBvZiB0aGUgaXRlbS5cbiAgICovXG4gIHByaWNlX3JhbmdlOiB7XG4gICAgbWF4aW11bV9wcmljZToge1xuICAgICAgZmluYWxfcHJpY2U6IHsgY3VycmVuY3k6IHN0cmluZzsgdmFsdWU6IG51bWJlciB9O1xuICAgICAgcmVndWxhcl9wcmljZTogeyBjdXJyZW5jeTogc3RyaW5nOyB2YWx1ZTogbnVtYmVyIH07XG4gICAgfTtcbiAgICBtaW5pbXVtX3ByaWNlOiB7XG4gICAgICBmaW5hbF9wcmljZTogeyBjdXJyZW5jeTogc3RyaW5nOyB2YWx1ZTogbnVtYmVyIH07XG4gICAgICByZWd1bGFyX3ByaWNlOiB7IGN1cnJlbmN5OiBzdHJpbmc7IHZhbHVlOiBudW1iZXIgfTtcbiAgICB9O1xuICB9O1xuXG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHJvdXRlLlxuICAgKi9cbiAgX190eXBlbmFtZTogc3RyaW5nO1xufVxuIl19
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktcm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2V4dGVybmFsLXJvdXRlci9kcml2ZXIvbWFnZW50by9zcmMvbW9kZWwvY2F0ZWdvcnktcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hZ2VudG9DYXRlZ29yeVJvdXRlUHJvZHVjdCB9IGZyb20gJy4vY2F0ZWdvcnktcm91dGUtcHJvZHVjdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFnZW50b0NhdGVnb3J5Um91dGUge1xuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIHBhdGggZm9yIHRoZSByb3V0ZS5cbiAgICovXG4gIHJlbGF0aXZlX3VybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiByb3V0ZSwgdHlwaWNhbGx5IFBST0RVQ1QsIENBVEVHT1JZIG9yIENNU19QQUdFXG4gICAqL1xuICB0eXBlOiAnQ0FURUdPUlknO1xuXG4gIC8qKlxuICAgKiBUaGUgSFRUUCBjb2RlIGZvciB0aGUgcGFnZS5cbiAgICovXG4gIHJlZGlyZWN0X2NvZGU6IG51bWJlcjtcblxuICAvKipcbiAgICogSW4gdjIuNC4zIHRoaXMgYmVjYW1lIHRoZSBzdGFuZGFyZCBmaWVsZCBhY3Jvc3MgdHlwZXNcbiAgICovXG4gIHVpZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNhbm9uaWNhbCB1cmwgb2YgdGhlIHJvdXRlLlxuICAgKi9cbiAgY2Fub25pY2FsX3VybD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1ldGEgZGVzY3JpcHRpb24gb2YgdGhlIHJvdXRlXG4gICAqL1xuICBtZXRhX2Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcm91dGVcbiAgICovXG4gIG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgcm91dGVcbiAgICovXG4gIG1ldGFfdGl0bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGl0ZW1zIGluIHRoZSBjYXRlZ29yeS5cbiAgICovXG4gIHByb2R1Y3RzOiB7XG4gICAgaXRlbXM6IE1hZ2VudG9DYXRlZ29yeVJvdXRlUHJvZHVjdFtdO1xuICB9O1xufVxuIl19
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1yb3V0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZXh0ZXJuYWwtcm91dGVyL2RyaXZlci9tYWdlbnRvL3NyYy9tb2RlbC9wcm9kdWN0LXJvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE1hZ2VudG9Qcm9kdWN0Um91dGUge1xuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIHBhdGggZm9yIHRoZSByb3V0ZS5cbiAgICovXG4gIHJlbGF0aXZlX3VybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiByb3V0ZSwgdHlwaWNhbGx5IFBST0RVQ1QsIENBVEVHT1JZIG9yIENNU19QQUdFXG4gICAqL1xuICB0eXBlOiAnUFJPRFVDVCc7XG5cbiAgLyoqXG4gICAqIFRoZSBIVFRQIGNvZGUgZm9yIHRoZSBwYWdlLlxuICAgKi9cbiAgcmVkaXJlY3RfY29kZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJbiB2Mi40LjMgdGhpcyBiZWNhbWUgdGhlIHN0YW5kYXJkIGZpZWxkIGFjcm9zcyB0eXBlc1xuICAgKi9cbiAgdWlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjYW5vbmljYWwgdXJsIG9mIHRoZSByb3V0ZS5cbiAgICovXG4gIGNhbm9uaWNhbF91cmw6IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRhIGRlc2NyaXB0aW9uIG9mIHRoZSByb3V0ZVxuICAgKi9cbiAgbWV0YV9kZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJvdXRlXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgcm91dGVcbiAgICovXG4gIG1ldGFfdGl0bGU6IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBza3Ugb2YgYSBwcm9kdWN0LlxuICAgKi9cbiAgc2t1OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcmV2aWV3cyBvZiBhIHByb2R1Y3QuXG4gICAqL1xuICByZXZpZXdfY291bnQ6IG51bWJlciB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSByYXRpbmcgb2YgYSBwcm9kdWN0LlxuICAgKi9cbiAgcmF0aW5nX3N1bW1hcnk6IG51bWJlciB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBpbWFnZXMgb2YgYSBwcm9kdWN0LlxuICAgKi9cbiAgaW1hZ2U/OiB7IHVybDogc3RyaW5nfTtcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2Ygcm91dGUuXG4gICAqL1xuICBfX3R5cGVuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmljZSBvZiB0aGUgaXRlbS5cbiAgICovXG4gIHByaWNlX3JhbmdlOiB7XG4gICAgbWF4aW11bV9wcmljZToge1xuICAgICAgZmluYWxfcHJpY2U6IHsgY3VycmVuY3k6IHN0cmluZzsgdmFsdWU6IG51bWJlciB9O1xuICAgICAgcmVndWxhcl9wcmljZTogeyBjdXJyZW5jeTogc3RyaW5nOyB2YWx1ZTogbnVtYmVyIH07XG4gICAgfTtcbiAgICBtaW5pbXVtX3ByaWNlOiB7XG4gICAgICBmaW5hbF9wcmljZTogeyBjdXJyZW5jeTogc3RyaW5nOyB2YWx1ZTogbnVtYmVyIH07XG4gICAgICByZWd1bGFyX3ByaWNlOiB7IGN1cnJlbmN5OiBzdHJpbmc7IHZhbHVlOiBudW1iZXIgfTtcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgc3RvY2sgc3RhdHVzIG9mIGEgcHJvZHVjdC5cbiAgICovXG4gIHN0b2NrX3N0YXR1czogJ0lOX1NUT0NLJyB8ICdPVVRfT0ZfU1RPQ0snO1xufVxuIl19
|
@@ -1,2 +1,2 @@
|
|
1
1
|
export { MagentoUrlRewriteEntityTypeEnum } from './resolution-types';
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZXh0ZXJuYWwtcm91dGVyL2RyaXZlci9tYWdlbnRvL3NyYy9tb2RlbC9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTWFnZW50b1VybFJlc29sdmVyIH0gZnJvbSAnLi91cmwtcmVzb2x2ZXInO1xuZXhwb3J0IHsgTWFnZW50b1VybFJld3JpdGVFbnRpdHlUeXBlRW51bSB9IGZyb20gJy4vcmVzb2x1dGlvbi10eXBlcyc7XG5leHBvcnQgeyBNYWdlbnRvVXJsUmVzb2x2ZXJSZXNwb25zZSB9IGZyb20gJy4vdXJsLXJlc29sdmVyLXJlc3BvbnNlJztcbmV4cG9ydCB7IE1hZ2VudG9Sb3V0ZSB9IGZyb20gJy4vcm91dGUnO1xuZXhwb3J0IHsgTWFnZW50b1JvdXRlUmVzcG9uc2UgfSBmcm9tICcuL3JvdXRlLXJlc3BvbnNlJztcbmV4cG9ydCB7IE1hZ2VudG9Qcm9kdWN0Um91dGUgfSBmcm9tICcuL3Byb2R1Y3Qtcm91dGUnO1xuZXhwb3J0IHsgTWFnZW50b0NhdGVnb3J5Um91dGUgfSBmcm9tICcuL2NhdGVnb3J5LXJvdXRlJztcbiJdfQ==
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2V4dGVybmFsLXJvdXRlci9kcml2ZXIvbWFnZW50by9zcmMvbW9kZWwvcm91dGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWFnZW50b1JvdXRhYmxlIHtcbiAgLyoqXG4gICAqIFRoZSByZWxhdGl2ZSBwYXRoIGZvciB0aGUgcm91dGUuXG4gICAqL1xuICByZWxhdGl2ZV91cmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2Ygcm91dGUsIHR5cGljYWxseSBQUk9EVUNULCBDQVRFR09SWSBvciBDTVNfUEFHRVxuICAgKi9cbiAgdHlwZTogJ1VOS05PV04nIHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIEhUVFAgY29kZSBmb3IgdGhlIHBhZ2UuXG4gICAqL1xuICByZWRpcmVjdF9jb2RlOiBudW1iZXI7XG59XG4iXX0=
|
@@ -1,2 +1,2 @@
|
|
1
1
|
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2V4dGVybmFsLXJvdXRlci9kcml2ZXIvbWFnZW50by9zcmMvbW9kZWwvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hZ2VudG9DYXRlZ29yeVJvdXRlIH0gZnJvbSAnLi9jYXRlZ29yeS1yb3V0ZSc7XG5pbXBvcnQgeyBNYWdlbnRvUHJvZHVjdFJvdXRlIH0gZnJvbSAnLi9wcm9kdWN0LXJvdXRlJztcbmltcG9ydCB7IE1hZ2VudG9Sb3V0YWJsZSB9IGZyb20gJy4vcm91dGFibGUnO1xuXG5leHBvcnQgdHlwZSBNYWdlbnRvUm91dGUgPSBNYWdlbnRvUm91dGFibGUgfCBNYWdlbnRvUHJvZHVjdFJvdXRlIHwgTWFnZW50b0NhdGVnb3J5Um91dGU7XG4iXX0=
|
@@ -1,2 +1,2 @@
|
|
1
1
|
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvZXh0ZXJuYWwtcm91dGVyL3NyYy9tb2RlbC9yb3V0ZS1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERhdGEgYXNzb2NpYXRlZCB3aXRoIGEgcm91dGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGFmZlJvdXRlRGF0YSB7XG5cbiAgLyoqXG4gICAqIFRoZSBjYW5vbmljYWwgdXJsIG9mIHRoZSByb3V0ZS5cbiAgICovXG4gIGNhbm9uaWNhbF91cmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRhIGRlc2NyaXB0aW9uIG9mIHRoZSByb3V0ZS5cbiAgICovXG4gIG1ldGFfZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgcm91dGUuXG4gICAqL1xuICB0aXRsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQW4gYXNzb2NpYXRlZCBzY2hlbWEgZm9yIHRoZSByb3V0ZS4gIFNlZSB7QGxpbmsgU2NoZW1hfSBmb3IgZnVsbCBjYXBhYmlsaXRpZXMuXG4gICAqL1xuICBzY2hlbWE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cbiJdfQ==
|
@@ -1,12 +1,12 @@
|
|
1
|
+
import { DOCUMENT, CommonModule } from '@angular/common';
|
1
2
|
import * as i0 from '@angular/core';
|
2
|
-
import { Injectable, NgModule, makeEnvironmentProviders } from '@angular/core';
|
3
|
+
import { Injectable, Inject, NgModule, makeEnvironmentProviders } from '@angular/core';
|
3
4
|
import * as i1 from 'apollo-angular';
|
4
5
|
import { gql } from 'apollo-angular';
|
5
6
|
import { map } from 'rxjs/operators';
|
6
7
|
import { daffUriTruncateLeadingSlash, daffUriTruncateQueryFragment } from '@daffodil/core/routing';
|
7
8
|
import { DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION, provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';
|
8
9
|
import { magentoTransformRedirectToHttpCode } from '@daffodil/external-router/driver/magento';
|
9
|
-
import { CommonModule } from '@angular/common';
|
10
10
|
import { provideDaffMagentoCacheableOperation } from '@daffodil/driver/magento';
|
11
11
|
|
12
12
|
const DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME = 'MagentoResolveUrlv243';
|
@@ -23,9 +23,44 @@ const MagentoResolveUrlv243 = gql `
|
|
23
23
|
... on CategoryInterface {
|
24
24
|
uid
|
25
25
|
name
|
26
|
-
meta_description
|
27
26
|
meta_title
|
28
27
|
canonical_url
|
28
|
+
products {
|
29
|
+
items {
|
30
|
+
name
|
31
|
+
meta_description
|
32
|
+
meta_title
|
33
|
+
canonical_url
|
34
|
+
sku
|
35
|
+
review_count
|
36
|
+
rating_summary
|
37
|
+
image {
|
38
|
+
url
|
39
|
+
}
|
40
|
+
price_range {
|
41
|
+
minimum_price {
|
42
|
+
regular_price {
|
43
|
+
currency
|
44
|
+
value
|
45
|
+
}
|
46
|
+
final_price {
|
47
|
+
currency
|
48
|
+
value
|
49
|
+
}
|
50
|
+
}
|
51
|
+
maximum_price {
|
52
|
+
regular_price {
|
53
|
+
currency
|
54
|
+
value
|
55
|
+
}
|
56
|
+
final_price {
|
57
|
+
currency
|
58
|
+
value
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
29
64
|
}
|
30
65
|
... on ProductInterface {
|
31
66
|
uid
|
@@ -33,23 +68,190 @@ const MagentoResolveUrlv243 = gql `
|
|
33
68
|
meta_description
|
34
69
|
meta_title
|
35
70
|
canonical_url
|
71
|
+
sku
|
72
|
+
review_count
|
73
|
+
rating_summary
|
74
|
+
image {
|
75
|
+
url
|
76
|
+
}
|
77
|
+
stock_status
|
78
|
+
price_range {
|
79
|
+
minimum_price {
|
80
|
+
regular_price {
|
81
|
+
currency
|
82
|
+
value
|
83
|
+
}
|
84
|
+
final_price {
|
85
|
+
currency
|
86
|
+
value
|
87
|
+
}
|
88
|
+
}
|
89
|
+
maximum_price {
|
90
|
+
regular_price {
|
91
|
+
currency
|
92
|
+
value
|
93
|
+
}
|
94
|
+
final_price {
|
95
|
+
currency
|
96
|
+
value
|
97
|
+
}
|
98
|
+
}
|
99
|
+
}
|
36
100
|
}
|
37
101
|
}
|
38
102
|
}
|
39
103
|
`;
|
40
104
|
|
41
|
-
|
105
|
+
/**
|
106
|
+
* Rescales a rating value from it's max rating
|
107
|
+
* to a scale of 5.
|
108
|
+
*/
|
109
|
+
const rescaleRatingOutOf5 = (rating, max) => (((rating ?? 0) / max) * 5).toPrecision(2);
|
110
|
+
|
111
|
+
const transformMagentoBaseProduct = (product) => ({
|
112
|
+
'@context': 'https://schema.org/',
|
113
|
+
'@type': 'Product',
|
114
|
+
url: product.canonical_url,
|
115
|
+
sku: product.sku,
|
116
|
+
name: product.meta_title ?? product.name ?? '',
|
117
|
+
...(product.meta_description && { description: product.meta_description }),
|
118
|
+
...(product.review_count > 0 && { aggregateRating: {
|
119
|
+
'@type': 'AggregateRating',
|
120
|
+
ratingValue: rescaleRatingOutOf5(product.rating_summary, 100),
|
121
|
+
reviewCount: product.review_count,
|
122
|
+
} }),
|
123
|
+
image: product.image?.url,
|
124
|
+
});
|
125
|
+
|
126
|
+
const transformMagentoBundleProduct = (resolution) => ({
|
127
|
+
...transformMagentoBaseProduct(resolution),
|
128
|
+
offers: {
|
129
|
+
'@type': 'AggregateOffer',
|
130
|
+
lowPrice: resolution.price_range.minimum_price.final_price.value,
|
131
|
+
highPrice: resolution.price_range.maximum_price.final_price.value,
|
132
|
+
priceCurrency: resolution.price_range.maximum_price.final_price.currency,
|
133
|
+
},
|
134
|
+
});
|
135
|
+
|
136
|
+
const transformMagentoConfigurableProduct = (resolution) => ({
|
137
|
+
...transformMagentoBaseProduct(resolution),
|
138
|
+
offers: {
|
139
|
+
'@type': 'AggregateOffer',
|
140
|
+
lowPrice: resolution.price_range.minimum_price.final_price.value,
|
141
|
+
highPrice: resolution.price_range.maximum_price.final_price.value,
|
142
|
+
priceCurrency: resolution.price_range.maximum_price.final_price.currency,
|
143
|
+
},
|
144
|
+
});
|
145
|
+
|
146
|
+
const transformMagentoSimpleProduct = (resolution) => ({
|
147
|
+
...transformMagentoBaseProduct(resolution),
|
148
|
+
offers: {
|
149
|
+
'@type': 'Offer',
|
150
|
+
url: resolution.canonical_url,
|
151
|
+
...(resolution.stock_status && {
|
152
|
+
availability: resolution.stock_status === 'IN_STOCK' ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',
|
153
|
+
}),
|
154
|
+
priceSpecification: [
|
155
|
+
{
|
156
|
+
'@type': 'UnitPriceSpecification',
|
157
|
+
price: resolution.price_range.maximum_price.final_price.value,
|
158
|
+
priceCurrency: resolution.price_range.maximum_price.final_price.currency,
|
159
|
+
},
|
160
|
+
{
|
161
|
+
'@type': 'UnitPriceSpecification',
|
162
|
+
priceType: 'https://schema.org/ListPrice',
|
163
|
+
price: resolution.price_range.maximum_price.regular_price.value,
|
164
|
+
priceCurrency: resolution.price_range.maximum_price.regular_price.currency,
|
165
|
+
},
|
166
|
+
],
|
167
|
+
},
|
168
|
+
});
|
169
|
+
|
170
|
+
/**
|
171
|
+
* Computes supplementary SEO schema for Magento product routes.
|
172
|
+
*/
|
173
|
+
const transformMagentoProductSchema = (resolution) => {
|
174
|
+
switch (resolution.__typename) {
|
175
|
+
case 'BundleProduct':
|
176
|
+
return transformMagentoBundleProduct(resolution);
|
177
|
+
case 'ConfigurableProduct':
|
178
|
+
return transformMagentoConfigurableProduct(resolution);
|
179
|
+
case 'SimpleProduct':
|
180
|
+
return transformMagentoSimpleProduct(resolution);
|
181
|
+
default:
|
182
|
+
return transformMagentoBaseProduct(resolution);
|
183
|
+
}
|
184
|
+
};
|
185
|
+
|
186
|
+
const transformMagentoCategorySchema = (resolution) => ({
|
187
|
+
'@context': 'https://schema.org',
|
188
|
+
'@type': 'ItemList',
|
189
|
+
itemListElement: resolution.products.items.map((item, index) => ({
|
190
|
+
'@type': 'ListItem',
|
191
|
+
position: index,
|
192
|
+
item: transformMagentoProductSchema({
|
193
|
+
...item,
|
194
|
+
meta_description: undefined,
|
195
|
+
stock_status: undefined,
|
196
|
+
}),
|
197
|
+
})),
|
198
|
+
});
|
199
|
+
|
200
|
+
const transformSchema = (resolution) => {
|
201
|
+
switch (resolution.type) {
|
202
|
+
case 'PRODUCT':
|
203
|
+
return transformMagentoProductSchema(resolution);
|
204
|
+
case 'CATEGORY':
|
205
|
+
return transformMagentoCategorySchema(resolution);
|
206
|
+
default:
|
207
|
+
return null;
|
208
|
+
}
|
209
|
+
};
|
210
|
+
|
211
|
+
const transformResolutionToResolvableUrlv243 = (resolution) => (resolution && (resolution.type === 'CATEGORY' || resolution.type === 'PRODUCT') ? {
|
42
212
|
id: resolution.uid,
|
43
213
|
url: daffUriTruncateLeadingSlash(daffUriTruncateQueryFragment(resolution.relative_url)),
|
44
214
|
type: resolution.type,
|
45
215
|
code: magentoTransformRedirectToHttpCode(resolution.redirect_code),
|
46
216
|
data: {
|
47
|
-
canonical_url: resolution
|
217
|
+
canonical_url: resolution?.canonical_url,
|
48
218
|
title: resolution.meta_title ?? resolution.name ?? '',
|
49
219
|
meta_description: resolution.meta_description,
|
220
|
+
schema: {
|
221
|
+
...transformSchema(resolution),
|
222
|
+
},
|
50
223
|
},
|
51
224
|
} : DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION);
|
52
225
|
|
226
|
+
const clientifyUrlPath = (path, domain) => path ? new URL(path, domain).toString() : path;
|
227
|
+
|
228
|
+
const transformClientUrls = (route, origin) => {
|
229
|
+
if (!route) {
|
230
|
+
return route;
|
231
|
+
}
|
232
|
+
switch (route.type) {
|
233
|
+
case 'CATEGORY':
|
234
|
+
return {
|
235
|
+
...route,
|
236
|
+
canonical_url: clientifyUrlPath(route.canonical_url, origin),
|
237
|
+
products: {
|
238
|
+
items: route.products.items.map((product) => ({
|
239
|
+
...product,
|
240
|
+
canonical_url: clientifyUrlPath(product.canonical_url, origin),
|
241
|
+
})),
|
242
|
+
},
|
243
|
+
};
|
244
|
+
case 'PRODUCT':
|
245
|
+
return {
|
246
|
+
...route,
|
247
|
+
canonical_url: clientifyUrlPath(route.canonical_url, origin),
|
248
|
+
};
|
249
|
+
default:
|
250
|
+
return route;
|
251
|
+
}
|
252
|
+
return route;
|
253
|
+
};
|
254
|
+
|
53
255
|
/**
|
54
256
|
* The DaffExternalRouterMagentoDriver is responsible for translating an
|
55
257
|
* arbitrary URI into a DaffExternallyResolvableUrl with Magento environments.
|
@@ -57,8 +259,9 @@ const transformResolutionToResolvableUrlv243 = (resolution) => (resolution ? {
|
|
57
259
|
* @inheritdoc
|
58
260
|
*/
|
59
261
|
class DaffExternalRouterMagentoDriver {
|
60
|
-
constructor(apollo) {
|
262
|
+
constructor(apollo, document) {
|
61
263
|
this.apollo = apollo;
|
264
|
+
this.document = document;
|
62
265
|
}
|
63
266
|
resolve(url) {
|
64
267
|
return this.apollo
|
@@ -68,9 +271,9 @@ class DaffExternalRouterMagentoDriver {
|
|
68
271
|
url,
|
69
272
|
},
|
70
273
|
})
|
71
|
-
.pipe(map(response =>
|
274
|
+
.pipe(map((response) => response.data.route), map((route) => transformClientUrls(route, this.document.location.origin)), map(route => transformResolutionToResolvableUrlv243(route)));
|
72
275
|
}
|
73
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffExternalRouterMagentoDriver, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
276
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffExternalRouterMagentoDriver, deps: [{ token: i1.Apollo }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
74
277
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffExternalRouterMagentoDriver, providedIn: 'root' }); }
|
75
278
|
}
|
76
279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DaffExternalRouterMagentoDriver, decorators: [{
|
@@ -78,7 +281,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
78
281
|
args: [{
|
79
282
|
providedIn: 'root',
|
80
283
|
}]
|
81
|
-
}], ctorParameters: () => [{ type: i1.Apollo }
|
284
|
+
}], ctorParameters: () => [{ type: i1.Apollo }, { type: Document, decorators: [{
|
285
|
+
type: Inject,
|
286
|
+
args: [DOCUMENT]
|
287
|
+
}] }] });
|
82
288
|
|
83
289
|
/**
|
84
290
|
* The module used to configure the {@link DaffExternalRouterDriver} for usage with Magento.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"daffodil-external-router-driver-magento-2.4.3.mjs","sources":["../../../libs/external-router/driver/magento/2.4.3/src/graphql/queries/resolve.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/resolution-to-resolvable-url.ts","../../../libs/external-router/driver/magento/2.4.3/src/magento.service.ts","../../../libs/external-router/driver/magento/2.4.3/src/magento.module.ts","../../../libs/external-router/driver/magento/2.4.3/src/provider.ts","../../../libs/external-router/driver/magento/2.4.3/src/public_api.ts","../../../libs/external-router/driver/magento/2.4.3/src/daffodil-external-router-driver-magento-2.4.3.ts"],"sourcesContent":["import { gql } from 'apollo-angular';\n\nexport const DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME = 'MagentoResolveUrlv243';\n\n/**\n * This query retrieves a URL resolution from Magento and informs you about\n * what type of route the URL is.\n */\nexport const MagentoResolveUrlv243 = gql`\n\tquery ${DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME}($url: String!) {\n\t\troute(url: $url) {\n\t\t\trelative_url\n\t\t\tredirect_code\n\t\t\ttype\n\t\t\t... on CategoryInterface {\n\t\t\t\tuid\n\t\t\t\tname\n\t\t\t\tmeta_description\n\t\t\t\tmeta_title\n\t\t\t\tcanonical_url\n\t\t\t}\n\t\t\t... on ProductInterface {\n\t\t\t\tuid\n\t\t\t\tname\n\t\t\t\tmeta_description\n\t\t\t\tmeta_title\n\t\t\t\tcanonical_url\n\t\t\t}\n\t\t}\n\t}\n`;\n","import {\n daffUriTruncateLeadingSlash,\n daffUriTruncateQueryFragment,\n} from '@daffodil/core/routing';\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport { DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION } from '@daffodil/external-router/driver';\nimport {\n magentoTransformRedirectToHttpCode,\n MagentoRoute,\n} from '@daffodil/external-router/driver/magento';\n\n\nexport const transformResolutionToResolvableUrlv243 = (\n resolution: MagentoRoute,\n): DaffExternallyResolvableUrl => (resolution ? {\n id: resolution.uid,\n url: daffUriTruncateLeadingSlash(daffUriTruncateQueryFragment(resolution.relative_url)),\n type: resolution.type,\n code: magentoTransformRedirectToHttpCode(resolution.redirect_code),\n data: {\n canonical_url: resolution.canonical_url,\n title: resolution.meta_title ?? resolution.name ?? '',\n meta_description: resolution.meta_description,\n },\n} : DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION);\n","import { Injectable } from '@angular/core';\nimport { Apollo } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport { DaffExternalRouterDriverInterface } from '@daffodil/external-router/driver';\nimport { MagentoRouteResponse } from '@daffodil/external-router/driver/magento';\n\nimport { MagentoResolveUrlv243 } from './graphql/queries/resolve';\nimport { transformResolutionToResolvableUrlv243 } from './transforms/resolution-to-resolvable-url';\n\n\n/**\n * The DaffExternalRouterMagentoDriver is responsible for translating an\n * arbitrary URI into a DaffExternallyResolvableUrl with Magento environments.\n *\n * @inheritdoc\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffExternalRouterMagentoDriver\nimplements DaffExternalRouterDriverInterface {\n constructor(\n private apollo: Apollo,\n ) {}\n\n resolve(url: string): Observable<DaffExternallyResolvableUrl> {\n return this.apollo\n .query<MagentoRouteResponse>({\n query: MagentoResolveUrlv243,\n variables: {\n url,\n },\n })\n .pipe(map(response => transformResolutionToResolvableUrlv243(response.data.route)));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport { provideDaffMagentoCacheableOperation } from '@daffodil/driver/magento';\nimport { provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport { DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME } from './graphql/queries/resolve';\nimport { DaffExternalRouterMagentoDriver } from './magento.service';\n\n/**\n * The module used to configure the {@link DaffExternalRouterDriver} for usage with Magento.\n *\n * ```ts\n * @NgModule({\n * declarations: [],\n * imports: [\n * ...\n * DaffExternalRouterDriverMagentoModule.forRoot()\n * ],\n * })\n * export class AppModule{}\n * ```\n *\n * Note that this package depends upon ApolloClient, as the Magento driver uses GraphQl to make it's API calls.\n */\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n})\nexport class DaffExternalRouterDriverMagentoModule {\n\n /**\n * Configures the package for the root injector.\n */\n static forRoot(): ModuleWithProviders<DaffExternalRouterDriverMagentoModule> {\n return {\n ngModule: DaffExternalRouterDriverMagentoModule,\n providers: [\n provideDaffExternalRouterDriver(DaffExternalRouterMagentoDriver),\n provideDaffMagentoCacheableOperation(DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME),\n ],\n };\n }\n}\n","import {\n EnvironmentProviders,\n makeEnvironmentProviders,\n} from '@angular/core';\n\nimport { provideDaffMagentoCacheableOperation } from '@daffodil/driver/magento';\nimport { provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport { DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME } from './graphql/queries/resolve';\nimport { DaffExternalRouterMagentoDriver } from './magento.service';\n\n/**\n * Provides a Magento implementation of {@link DaffExternalRouterDriver}.\n */\nexport const provideDaffExternalRouterMagentoDriver = (\n): EnvironmentProviders => makeEnvironmentProviders([\n provideDaffExternalRouterDriver(DaffExternalRouterMagentoDriver),\n provideDaffMagentoCacheableOperation(DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME),\n]);\n","/*\n * Public API Surface of @daffodil/external-router/driver/magento/2.4.3\n */\n\nexport { DaffExternalRouterMagentoDriver } from './magento.service';\nexport { DaffExternalRouterDriverMagentoModule } from './magento.module';\nexport { provideDaffExternalRouterMagentoDriver } from './provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"daffodil-external-router-driver-magento-2.4.3.mjs","sources":["../../../libs/external-router/driver/magento/2.4.3/src/graphql/queries/resolve.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/rescale-rating.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/product/base.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/product/bundle.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/product/configurable.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/product/simple.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/product/product.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/category/category.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/transform-schema.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/resolution-to-resolvable-url.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/schema/clientify-url-path.ts","../../../libs/external-router/driver/magento/2.4.3/src/transforms/transform-client-urls.ts","../../../libs/external-router/driver/magento/2.4.3/src/magento.service.ts","../../../libs/external-router/driver/magento/2.4.3/src/magento.module.ts","../../../libs/external-router/driver/magento/2.4.3/src/provider.ts","../../../libs/external-router/driver/magento/2.4.3/src/public_api.ts","../../../libs/external-router/driver/magento/2.4.3/src/daffodil-external-router-driver-magento-2.4.3.ts"],"sourcesContent":["import { gql } from 'apollo-angular';\n\nexport const DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME = 'MagentoResolveUrlv243';\n\n/**\n * This query retrieves a URL resolution from Magento and informs you about\n * what type of route the URL is.\n */\nexport const MagentoResolveUrlv243 = gql`\n\tquery ${DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME}($url: String!) {\n\t\troute(url: $url) {\n\t\t\trelative_url\n\t\t\tredirect_code\n\t\t\ttype\n\t\t\t... on CategoryInterface {\n\t\t\t\tuid\n\t\t\t\tname\n\t\t\t\tmeta_title\n\t\t\t\tcanonical_url\n\t\t\t\tproducts {\n\t\t\t\t\titems {\n\t\t\t\t\t\t\tname\n\t\t\t\t\t\t\tmeta_description\n\t\t\t\t\t\t\tmeta_title\n\t\t\t\t\t\t\tcanonical_url\n\t\t\t\t\t\t\tsku\n\t\t\t\t\t\t\treview_count\n\t\t\t\t\t\t\trating_summary\n\t\t\t\t\t\t\timage {\n\t\t\t\t\t\t\t\turl\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tprice_range {\n\t\t\t\t\t\t\t\tminimum_price {\n\t\t\t\t\t\t\t\t\tregular_price {\n\t\t\t\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tfinal_price {\n\t\t\t\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmaximum_price {\n\t\t\t\t\t\t\t\t\tregular_price {\n\t\t\t\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tfinal_price {\n\t\t\t\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t... on ProductInterface {\n\t\t\t\tuid\n\t\t\t\tname\n\t\t\t\tmeta_description\n\t\t\t\tmeta_title\n\t\t\t\tcanonical_url\n\t\t\t\tsku\n\t\t\t\treview_count\n\t\t\t\trating_summary\n\t\t\t\timage {\n\t\t\t\t\turl\n\t\t\t\t}\n\t\t\t\tstock_status\n\t\t\t\tprice_range {\n\t\t\t\t\tminimum_price {\n\t\t\t\t\t\tregular_price {\n\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfinal_price {\n\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tmaximum_price {\n\t\t\t\t\t\tregular_price {\n\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfinal_price {\n\t\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n`;\n","/**\n * Rescales a rating value from it's max rating\n * to a scale of 5.\n */\nexport const rescaleRatingOutOf5 = (rating: number | null, max: number) => (((rating ?? 0)/max) * 5).toPrecision(2);\n","import { MagentoProductRoute } from '@daffodil/external-router/driver/magento';\n\nimport { rescaleRatingOutOf5 } from '../rescale-rating';\n\nexport const transformMagentoBaseProduct = (product: MagentoProductRoute): Record<string, unknown> => ({\n '@context': 'https://schema.org/',\n '@type': 'Product',\n url: product.canonical_url,\n sku: product.sku,\n name: product.meta_title ?? product.name ?? '',\n ...(product.meta_description && { description: product.meta_description }),\n ...(product.review_count > 0 && { aggregateRating: {\n '@type': 'AggregateRating',\n ratingValue: rescaleRatingOutOf5(product.rating_summary, 100),\n reviewCount: product.review_count,\n }}),\n image: product.image?.url,\n});\n","import { MagentoProductRoute } from '@daffodil/external-router/driver/magento';\n\nimport { transformMagentoBaseProduct } from './base';\n\nexport const transformMagentoBundleProduct = (resolution: MagentoProductRoute): Record<string, unknown> => ({\n ...transformMagentoBaseProduct(resolution),\n offers: {\n '@type': 'AggregateOffer',\n lowPrice: resolution.price_range.minimum_price.final_price.value,\n highPrice: resolution.price_range.maximum_price.final_price.value,\n priceCurrency: resolution.price_range.maximum_price.final_price.currency,\n },\n});\n","import {\n MagentoProductRoute,\n MagentoRoute,\n} from '@daffodil/external-router/driver/magento';\n\nimport { transformMagentoBaseProduct } from './base';\n\nexport const transformMagentoConfigurableProduct = (resolution: MagentoProductRoute): Record<string, unknown> => ({\n ...transformMagentoBaseProduct(resolution),\n offers: {\n '@type': 'AggregateOffer',\n lowPrice: resolution.price_range.minimum_price.final_price.value,\n highPrice: resolution.price_range.maximum_price.final_price.value,\n priceCurrency: resolution.price_range.maximum_price.final_price.currency,\n },\n});\n","\nimport { MagentoProductRoute } from '@daffodil/external-router/driver/magento';\n\nimport { transformMagentoBaseProduct } from './base';\n\nexport const transformMagentoSimpleProduct = (resolution: MagentoProductRoute): Record<string, unknown> => ({\n ...transformMagentoBaseProduct(resolution),\n offers: {\n '@type': 'Offer',\n url: resolution.canonical_url,\n ...(resolution.stock_status && {\n availability: resolution.stock_status === 'IN_STOCK' ? 'https://schema.org/InStock' : 'https://schema.org/OutOfStock',\n }),\n priceSpecification: [\n {\n '@type': 'UnitPriceSpecification',\n price: resolution.price_range.maximum_price.final_price.value,\n priceCurrency: resolution.price_range.maximum_price.final_price.currency,\n },\n {\n '@type': 'UnitPriceSpecification',\n priceType: 'https://schema.org/ListPrice',\n price: resolution.price_range.maximum_price.regular_price.value,\n priceCurrency: resolution.price_range.maximum_price.regular_price.currency,\n },\n ],\n },\n});\n","import { MagentoProductRoute } from '@daffodil/external-router/driver/magento';\n\nimport { transformMagentoBaseProduct } from './base';\nimport { transformMagentoBundleProduct } from './bundle';\nimport { transformMagentoConfigurableProduct } from './configurable';\nimport { transformMagentoSimpleProduct } from './simple';\n\n/**\n * Computes supplementary SEO schema for Magento product routes.\n */\nexport const transformMagentoProductSchema = (resolution: MagentoProductRoute): Record<string, unknown> => {\n switch(resolution.__typename) {\n case 'BundleProduct':\n return transformMagentoBundleProduct(resolution);\n case 'ConfigurableProduct':\n return transformMagentoConfigurableProduct(resolution);\n case 'SimpleProduct':\n return transformMagentoSimpleProduct(resolution);\n default:\n return transformMagentoBaseProduct(resolution);\n }\n};\n","import { MagentoCategoryRoute } from '@daffodil/external-router/driver/magento';\n\nimport { transformMagentoProductSchema } from '../product/product';\nimport { rescaleRatingOutOf5 } from '../rescale-rating';\n\nexport const transformMagentoCategorySchema = (resolution: MagentoCategoryRoute): Record<string, unknown> => ({\n '@context': 'https://schema.org',\n '@type': 'ItemList',\n itemListElement: resolution.products.items.map((item, index) => ({\n '@type': 'ListItem',\n position: index,\n item: transformMagentoProductSchema({\n ...item,\n meta_description: undefined,\n stock_status: undefined,\n }),\n })),\n});\n","import { MagentoRoute } from '@daffodil/external-router/driver/magento';\n\nimport { transformMagentoCategorySchema } from './category/category';\nimport { transformMagentoProductSchema } from './product/product';\n\nexport const transformSchema = (resolution: MagentoRoute): Record<string, any> | null => {\n switch(resolution.type) {\n case 'PRODUCT':\n return transformMagentoProductSchema(resolution);\n case 'CATEGORY':\n return transformMagentoCategorySchema(resolution);\n default:\n return null;\n }\n};\n","import {\n daffUriTruncateLeadingSlash,\n daffUriTruncateQueryFragment,\n} from '@daffodil/core/routing';\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport { DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION } from '@daffodil/external-router/driver';\nimport {\n magentoTransformRedirectToHttpCode,\n MagentoRoute,\n} from '@daffodil/external-router/driver/magento';\n\nimport { transformSchema } from './schema/transform-schema';\n\nexport const transformResolutionToResolvableUrlv243 = (\n resolution: MagentoRoute,\n): DaffExternallyResolvableUrl => (resolution && (resolution.type === 'CATEGORY' || resolution.type ==='PRODUCT') ? {\n id: resolution.uid,\n url: daffUriTruncateLeadingSlash(daffUriTruncateQueryFragment(resolution.relative_url)),\n type: resolution.type,\n code: magentoTransformRedirectToHttpCode(resolution.redirect_code),\n data: {\n canonical_url: resolution?.canonical_url,\n title: resolution.meta_title ?? resolution.name ?? '',\n meta_description: resolution.meta_description,\n schema: {\n ...transformSchema(resolution),\n },\n },\n} : DAFF_EXTERNAL_ROUTER_NOT_FOUND_RESOLUTION);\n","export const clientifyUrlPath = <T extends string | null>(path: T, domain: string) => path ? new URL(path, domain).toString() : path;\n","import { MagentoRoute } from '@daffodil/external-router/driver/magento';\n\nimport { clientifyUrlPath } from './schema/clientify-url-path';\n\nexport const transformClientUrls = <T extends MagentoRoute>(route: T, origin: string) => {\n if(!route) {\n return route;\n }\n\n switch(route.type) {\n case 'CATEGORY':\n return {\n ...route,\n canonical_url: clientifyUrlPath(route.canonical_url, origin),\n products: {\n items: route.products.items.map((product) => ({\n ...product,\n canonical_url: clientifyUrlPath(product.canonical_url, origin),\n })),\n },\n };\n case 'PRODUCT':\n return {\n ...route,\n canonical_url: clientifyUrlPath(route.canonical_url, origin),\n };\n default:\n return route;\n }\n return route;\n};\n","import { DOCUMENT } from '@angular/common';\nimport {\n Inject,\n Injectable,\n} from '@angular/core';\nimport { Apollo } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n\nimport { DaffExternallyResolvableUrl } from '@daffodil/external-router';\nimport { DaffExternalRouterDriverInterface } from '@daffodil/external-router/driver';\nimport { MagentoRouteResponse } from '@daffodil/external-router/driver/magento';\n\nimport { MagentoResolveUrlv243 } from './graphql/queries/resolve';\nimport { transformResolutionToResolvableUrlv243 } from './transforms/resolution-to-resolvable-url';\nimport { transformClientUrls } from './transforms/transform-client-urls';\n\n\n/**\n * The DaffExternalRouterMagentoDriver is responsible for translating an\n * arbitrary URI into a DaffExternallyResolvableUrl with Magento environments.\n *\n * @inheritdoc\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DaffExternalRouterMagentoDriver\nimplements DaffExternalRouterDriverInterface {\n constructor(\n private apollo: Apollo,\n @Inject(DOCUMENT) private document: Document,\n ) {}\n\n resolve(url: string): Observable<DaffExternallyResolvableUrl> {\n return this.apollo\n .query<MagentoRouteResponse>({\n query: MagentoResolveUrlv243,\n variables: {\n url,\n },\n })\n .pipe(\n map((response) => response.data.route),\n map((route) => transformClientUrls(route, this.document.location.origin)),\n map(route => transformResolutionToResolvableUrlv243(route)),\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n NgModule,\n ModuleWithProviders,\n} from '@angular/core';\n\nimport { provideDaffMagentoCacheableOperation } from '@daffodil/driver/magento';\nimport { provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport { DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME } from './graphql/queries/resolve';\nimport { DaffExternalRouterMagentoDriver } from './magento.service';\n\n/**\n * The module used to configure the {@link DaffExternalRouterDriver} for usage with Magento.\n *\n * ```ts\n * @NgModule({\n * declarations: [],\n * imports: [\n * ...\n * DaffExternalRouterDriverMagentoModule.forRoot()\n * ],\n * })\n * export class AppModule{}\n * ```\n *\n * Note that this package depends upon ApolloClient, as the Magento driver uses GraphQl to make it's API calls.\n */\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n})\nexport class DaffExternalRouterDriverMagentoModule {\n\n /**\n * Configures the package for the root injector.\n */\n static forRoot(): ModuleWithProviders<DaffExternalRouterDriverMagentoModule> {\n return {\n ngModule: DaffExternalRouterDriverMagentoModule,\n providers: [\n provideDaffExternalRouterDriver(DaffExternalRouterMagentoDriver),\n provideDaffMagentoCacheableOperation(DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME),\n ],\n };\n }\n}\n","import {\n EnvironmentProviders,\n makeEnvironmentProviders,\n} from '@angular/core';\n\nimport { provideDaffMagentoCacheableOperation } from '@daffodil/driver/magento';\nimport { provideDaffExternalRouterDriver } from '@daffodil/external-router/driver';\n\nimport { DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME } from './graphql/queries/resolve';\nimport { DaffExternalRouterMagentoDriver } from './magento.service';\n\n/**\n * Provides a Magento implementation of {@link DaffExternalRouterDriver}.\n */\nexport const provideDaffExternalRouterMagentoDriver = (\n): EnvironmentProviders => makeEnvironmentProviders([\n provideDaffExternalRouterDriver(DaffExternalRouterMagentoDriver),\n provideDaffMagentoCacheableOperation(DAFF_MAGENTO_RESOLVE_URL_QUERY_NAME),\n]);\n","/*\n * Public API Surface of @daffodil/external-router/driver/magento/2.4.3\n */\n\nexport { DaffExternalRouterMagentoDriver } from './magento.service';\nexport { DaffExternalRouterDriverMagentoModule } from './magento.module';\nexport { provideDaffExternalRouterMagentoDriver } from './provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/model/route-data.d.ts
CHANGED
@@ -2,7 +2,20 @@
|
|
2
2
|
* Data associated with a route.
|
3
3
|
*/
|
4
4
|
export interface DaffRouteData {
|
5
|
+
/**
|
6
|
+
* The canonical url of the route.
|
7
|
+
*/
|
5
8
|
canonical_url?: string;
|
9
|
+
/**
|
10
|
+
* The meta description of the route.
|
11
|
+
*/
|
6
12
|
meta_description?: string;
|
13
|
+
/**
|
14
|
+
* The title of the route.
|
15
|
+
*/
|
7
16
|
title?: string;
|
17
|
+
/**
|
18
|
+
* An associated schema for the route. See {@link Schema} for full capabilities.
|
19
|
+
*/
|
20
|
+
schema?: Record<string, unknown>;
|
8
21
|
}
|
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"@daffodil/external-router","nx":{"targets":{"build":{"outputs":["{workspaceRoot}/dist/external-router"]}}},"version":"0.
|
1
|
+
{"name":"@daffodil/external-router","nx":{"targets":{"build":{"outputs":["{workspaceRoot}/dist/external-router"]}}},"version":"0.80.0","description":"A platform-agnostic package that connects the @angular/router with an external routing service (e.g. an API), allowing for runtime route resolution.","repository":{"type":"git","url":"https://github.com/graycoreio/daffodil"},"author":"Graycore LLC","license":"MIT","bugs":{"url":"https://github.com/graycoreio/daffodil/issues"},"homepage":"https://github.com/graycoreio/daffodil","peerDependencies":{"@angular/common":"^18.2.2","@angular/core":"^18.2.2","@angular/router":"^18.2.2","@daffodil/core":"0.80.0","rxjs":"7.8.1"},"optionalDependencies":{"apollo-angular":"^7.1.2","@daffodil/driver":"0.80.0"},"module":"fesm2022/daffodil-external-router.mjs","typings":"index.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/daffodil-external-router.mjs","esm":"./esm2022/daffodil-external-router.mjs","default":"./fesm2022/daffodil-external-router.mjs"},"./driver":{"types":"./driver/index.d.ts","esm2022":"./esm2022/driver/daffodil-external-router-driver.mjs","esm":"./esm2022/driver/daffodil-external-router-driver.mjs","default":"./fesm2022/daffodil-external-router-driver.mjs"},"./routing":{"types":"./routing/index.d.ts","esm2022":"./esm2022/routing/daffodil-external-router-routing.mjs","esm":"./esm2022/routing/daffodil-external-router-routing.mjs","default":"./fesm2022/daffodil-external-router-routing.mjs"},"./driver/in-memory":{"types":"./driver/in-memory/index.d.ts","esm2022":"./esm2022/driver/in-memory/daffodil-external-router-driver-in-memory.mjs","esm":"./esm2022/driver/in-memory/daffodil-external-router-driver-in-memory.mjs","default":"./fesm2022/daffodil-external-router-driver-in-memory.mjs"},"./driver/magento":{"types":"./driver/magento/index.d.ts","esm2022":"./esm2022/driver/magento/daffodil-external-router-driver-magento.mjs","esm":"./esm2022/driver/magento/daffodil-external-router-driver-magento.mjs","default":"./fesm2022/daffodil-external-router-driver-magento.mjs"},"./driver/testing":{"types":"./driver/testing/index.d.ts","esm2022":"./esm2022/driver/testing/daffodil-external-router-driver-testing.mjs","esm":"./esm2022/driver/testing/daffodil-external-router-driver-testing.mjs","default":"./fesm2022/daffodil-external-router-driver-testing.mjs"},"./driver/magento/2.4.1":{"types":"./driver/magento/2.4.1/index.d.ts","esm2022":"./esm2022/driver/magento/2.4.1/daffodil-external-router-driver-magento-2.4.1.mjs","esm":"./esm2022/driver/magento/2.4.1/daffodil-external-router-driver-magento-2.4.1.mjs","default":"./fesm2022/daffodil-external-router-driver-magento-2.4.1.mjs"},"./driver/magento/2.4.2":{"types":"./driver/magento/2.4.2/index.d.ts","esm2022":"./esm2022/driver/magento/2.4.2/daffodil-external-router-driver-magento-2.4.2.mjs","esm":"./esm2022/driver/magento/2.4.2/daffodil-external-router-driver-magento-2.4.2.mjs","default":"./fesm2022/daffodil-external-router-driver-magento-2.4.2.mjs"},"./driver/magento/2.4.3":{"types":"./driver/magento/2.4.3/index.d.ts","esm2022":"./esm2022/driver/magento/2.4.3/daffodil-external-router-driver-magento-2.4.3.mjs","esm":"./esm2022/driver/magento/2.4.3/daffodil-external-router-driver-magento-2.4.3.mjs","default":"./fesm2022/daffodil-external-router-driver-magento-2.4.3.mjs"}},"sideEffects":false,"dependencies":{"tslib":"^2.3.0"}}
|