@sixtyninecommerce/client 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/README.md +117 -1
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +5 -1
  4. package/dist/client.js.map +1 -1
  5. package/dist/commerce/branding.d.ts +6 -0
  6. package/dist/commerce/branding.d.ts.map +1 -0
  7. package/dist/commerce/branding.js +138 -0
  8. package/dist/commerce/branding.js.map +1 -0
  9. package/dist/commerce/checkout.d.ts.map +1 -1
  10. package/dist/commerce/checkout.js +5 -1
  11. package/dist/commerce/checkout.js.map +1 -1
  12. package/dist/commerce/customer.d.ts +6 -1
  13. package/dist/commerce/customer.d.ts.map +1 -1
  14. package/dist/commerce/customer.js +31 -1
  15. package/dist/commerce/customer.js.map +1 -1
  16. package/dist/commerce/index.d.ts +2 -2
  17. package/dist/commerce/index.d.ts.map +1 -1
  18. package/dist/commerce/index.js +13 -1
  19. package/dist/commerce/index.js.map +1 -1
  20. package/dist/commerce/payments.d.ts +8 -0
  21. package/dist/commerce/payments.d.ts.map +1 -0
  22. package/dist/commerce/payments.js +30 -0
  23. package/dist/commerce/payments.js.map +1 -0
  24. package/dist/commerce/products.d.ts.map +1 -1
  25. package/dist/commerce/products.js +67 -6
  26. package/dist/commerce/products.js.map +1 -1
  27. package/dist/commerce/queries.d.ts +24 -15
  28. package/dist/commerce/queries.d.ts.map +1 -1
  29. package/dist/commerce/queries.js +211 -112
  30. package/dist/commerce/queries.js.map +1 -1
  31. package/dist/commerce/quotes.d.ts +10 -0
  32. package/dist/commerce/quotes.d.ts.map +1 -0
  33. package/dist/commerce/quotes.js +33 -0
  34. package/dist/commerce/quotes.js.map +1 -0
  35. package/dist/commerce/reviews.d.ts +2 -1
  36. package/dist/commerce/reviews.d.ts.map +1 -1
  37. package/dist/commerce/reviews.js +9 -0
  38. package/dist/commerce/reviews.js.map +1 -1
  39. package/dist/commerce/stock-notifications.d.ts +7 -0
  40. package/dist/commerce/stock-notifications.d.ts.map +1 -0
  41. package/dist/commerce/stock-notifications.js +48 -0
  42. package/dist/commerce/stock-notifications.js.map +1 -0
  43. package/dist/commerce/subscriptions.d.ts +6 -0
  44. package/dist/commerce/subscriptions.d.ts.map +1 -1
  45. package/dist/commerce/subscriptions.js +41 -13
  46. package/dist/commerce/subscriptions.js.map +1 -1
  47. package/dist/constants.d.ts +2 -0
  48. package/dist/constants.d.ts.map +1 -1
  49. package/dist/constants.js +12 -0
  50. package/dist/constants.js.map +1 -1
  51. package/dist/content/items.d.ts +2 -1
  52. package/dist/content/items.d.ts.map +1 -1
  53. package/dist/content/items.js +20 -0
  54. package/dist/content/items.js.map +1 -1
  55. package/dist/content/menus.d.ts.map +1 -1
  56. package/dist/content/menus.js +25 -7
  57. package/dist/content/menus.js.map +1 -1
  58. package/dist/credit/credit-status.d.ts +6 -0
  59. package/dist/credit/credit-status.d.ts.map +1 -0
  60. package/dist/credit/credit-status.js +26 -0
  61. package/dist/credit/credit-status.js.map +1 -0
  62. package/dist/credit/index.d.ts +4 -0
  63. package/dist/credit/index.d.ts.map +1 -0
  64. package/dist/credit/index.js +5 -0
  65. package/dist/credit/index.js.map +1 -0
  66. package/dist/index.d.ts +3 -2
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +1 -1
  69. package/dist/index.js.map +1 -1
  70. package/dist/media/video.d.ts +4 -1
  71. package/dist/media/video.d.ts.map +1 -1
  72. package/dist/media/video.js +20 -1
  73. package/dist/media/video.js.map +1 -1
  74. package/dist/navigation/routes.js +2 -2
  75. package/dist/navigation/routes.js.map +1 -1
  76. package/dist/seo/ai.d.ts +17 -0
  77. package/dist/seo/ai.d.ts.map +1 -0
  78. package/dist/seo/ai.js +32 -0
  79. package/dist/seo/ai.js.map +1 -0
  80. package/dist/seo/alternates.d.ts +4 -0
  81. package/dist/seo/alternates.d.ts.map +1 -0
  82. package/dist/seo/alternates.js +29 -0
  83. package/dist/seo/alternates.js.map +1 -0
  84. package/dist/seo/canonical.d.ts +4 -0
  85. package/dist/seo/canonical.d.ts.map +1 -0
  86. package/dist/seo/canonical.js +49 -0
  87. package/dist/seo/canonical.js.map +1 -0
  88. package/dist/seo/index.d.ts +9 -0
  89. package/dist/seo/index.d.ts.map +1 -0
  90. package/dist/seo/index.js +54 -0
  91. package/dist/seo/index.js.map +1 -0
  92. package/dist/seo/json-ld.d.ts +25 -0
  93. package/dist/seo/json-ld.d.ts.map +1 -0
  94. package/dist/seo/json-ld.js +113 -0
  95. package/dist/seo/json-ld.js.map +1 -0
  96. package/dist/seo/meta-tags.d.ts +58 -0
  97. package/dist/seo/meta-tags.d.ts.map +1 -0
  98. package/dist/seo/meta-tags.js +194 -0
  99. package/dist/seo/meta-tags.js.map +1 -0
  100. package/dist/seo/metadata-parser.d.ts +31 -0
  101. package/dist/seo/metadata-parser.d.ts.map +1 -0
  102. package/dist/seo/metadata-parser.js +180 -0
  103. package/dist/seo/metadata-parser.js.map +1 -0
  104. package/dist/seo/metadata-types.d.ts +63 -0
  105. package/dist/seo/metadata-types.d.ts.map +1 -0
  106. package/dist/seo/metadata-types.js +2 -0
  107. package/dist/seo/metadata-types.js.map +1 -0
  108. package/dist/seo/robots.d.ts +21 -0
  109. package/dist/seo/robots.d.ts.map +1 -0
  110. package/dist/seo/robots.js +39 -0
  111. package/dist/seo/robots.js.map +1 -0
  112. package/dist/seo/types.d.ts +54 -0
  113. package/dist/seo/types.d.ts.map +1 -0
  114. package/dist/seo/types.js +2 -0
  115. package/dist/seo/types.js.map +1 -0
  116. package/dist/seo/url-builder.d.ts +11 -0
  117. package/dist/seo/url-builder.d.ts.map +1 -0
  118. package/dist/seo/url-builder.js +40 -0
  119. package/dist/seo/url-builder.js.map +1 -0
  120. package/dist/types.d.ts +361 -7
  121. package/dist/types.d.ts.map +1 -1
  122. package/package.json +3 -3
@@ -2,5 +2,11 @@ import type { HttpClient } from '../core/http.js';
2
2
  import type { CustomerSubscription } from '../types.js';
3
3
  export declare function createSubscriptionsMethods(http: HttpClient): {
4
4
  getMySubscriptions(): Promise<CustomerSubscription[]>;
5
+ pauseMySubscription(id: string, reason?: string): Promise<CustomerSubscription>;
6
+ resumeMySubscription(id: string): Promise<CustomerSubscription>;
7
+ cancelMySubscription(id: string, options?: {
8
+ reason?: string;
9
+ immediate?: boolean;
10
+ }): Promise<CustomerSubscription>;
5
11
  };
6
12
  //# sourceMappingURL=subscriptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../src/commerce/subscriptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAoBxD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,UAAU;0BAE3B,OAAO,CAAC,oBAAoB,EAAE,CAAC;EAO9D"}
1
+ {"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../src/commerce/subscriptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAwCxD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,UAAU;0BAE3B,OAAO,CAAC,oBAAoB,EAAE,CAAC;4BAO7B,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;6BAQtD,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;6BAS/D,MAAM,YACA;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GACjD,OAAO,CAAC,oBAAoB,CAAC;EAQnC"}
@@ -1,18 +1,34 @@
1
+ const SUBSCRIPTION_FIELDS = `
2
+ id
3
+ planName
4
+ currencyCode
5
+ recurringPrice
6
+ billingInterval
7
+ currentStatus
8
+ currentPeriodStart
9
+ currentPeriodEnd
10
+ nextRenewalAt
11
+ cancelAtPeriodEnd
12
+ createdAt
13
+ `;
1
14
  const MY_SUBSCRIPTIONS = `
2
15
  query MySubscriptions {
3
- mySubscriptions {
4
- id
5
- planName
6
- currencyCode
7
- recurringPrice
8
- billingInterval
9
- currentStatus
10
- currentPeriodStart
11
- currentPeriodEnd
12
- nextRenewalAt
13
- cancelAtPeriodEnd
14
- createdAt
15
- }
16
+ mySubscriptions { ${SUBSCRIPTION_FIELDS} }
17
+ }
18
+ `;
19
+ const PAUSE_MY_SUBSCRIPTION = `
20
+ mutation PauseMySubscription($id: ID!, $reason: String) {
21
+ pauseMySubscription(id: $id, reason: $reason) { ${SUBSCRIPTION_FIELDS} }
22
+ }
23
+ `;
24
+ const RESUME_MY_SUBSCRIPTION = `
25
+ mutation ResumeMySubscription($id: ID!) {
26
+ resumeMySubscription(id: $id) { ${SUBSCRIPTION_FIELDS} }
27
+ }
28
+ `;
29
+ const CANCEL_MY_SUBSCRIPTION = `
30
+ mutation CancelMySubscription($id: ID!, $reason: String, $immediate: Boolean) {
31
+ cancelMySubscription(id: $id, reason: $reason, immediate: $immediate) { ${SUBSCRIPTION_FIELDS} }
16
32
  }
17
33
  `;
18
34
  export function createSubscriptionsMethods(http) {
@@ -21,6 +37,18 @@ export function createSubscriptionsMethods(http) {
21
37
  const data = await http.graphql(MY_SUBSCRIPTIONS);
22
38
  return data.mySubscriptions;
23
39
  },
40
+ async pauseMySubscription(id, reason) {
41
+ const data = await http.graphql(PAUSE_MY_SUBSCRIPTION, { id, reason });
42
+ return data.pauseMySubscription;
43
+ },
44
+ async resumeMySubscription(id) {
45
+ const data = await http.graphql(RESUME_MY_SUBSCRIPTION, { id });
46
+ return data.resumeMySubscription;
47
+ },
48
+ async cancelMySubscription(id, options) {
49
+ const data = await http.graphql(CANCEL_MY_SUBSCRIPTION, { id, reason: options?.reason, immediate: options?.immediate ?? false });
50
+ return data.cancelMySubscription;
51
+ },
24
52
  };
25
53
  }
26
54
  //# sourceMappingURL=subscriptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../src/commerce/subscriptions.ts"],"names":[],"mappings":"AAGA,MAAM,gBAAgB,GAAiB;;;;;;;;;;;;;;;;CAgBtC,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,IAAgB;IACzD,OAAO;QACL,KAAK,CAAC,kBAAkB;YACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,gBAAgB,CACjB,CAAC;YACF,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../src/commerce/subscriptions.ts"],"names":[],"mappings":"AAGA,MAAM,mBAAmB,GAAG;;;;;;;;;;;;CAY3B,CAAC;AAEF,MAAM,gBAAgB,GAAG;;wBAED,mBAAmB;;CAE1C,CAAC;AAEF,MAAM,qBAAqB,GAAG;;sDAEwB,mBAAmB;;CAExE,CAAC;AAEF,MAAM,sBAAsB,GAAG;;sCAEO,mBAAmB;;CAExD,CAAC;AAEF,MAAM,sBAAsB,GAAG;;8EAE+C,mBAAmB;;CAEhG,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,IAAgB;IACzD,OAAO;QACL,KAAK,CAAC,kBAAkB;YACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,gBAAgB,CACjB,CAAC;YACF,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QAED,KAAK,CAAC,mBAAmB,CAAC,EAAU,EAAE,MAAe;YACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,qBAAqB,EACrB,EAAE,EAAE,EAAE,MAAM,EAAE,CACf,CAAC;YACF,OAAO,IAAI,CAAC,mBAAmB,CAAC;QAClC,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,EAAU;YACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,sBAAsB,EACtB,EAAE,EAAE,EAAE,CACP,CAAC;YACF,OAAO,IAAI,CAAC,oBAAoB,CAAC;QACnC,CAAC;QAED,KAAK,CAAC,oBAAoB,CACxB,EAAU,EACV,OAAkD;YAElD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,sBAAsB,EACtB,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,KAAK,EAAE,CACxE,CAAC;YACF,OAAO,IAAI,CAAC,oBAAoB,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -4,4 +4,6 @@ export declare const DEFAULT_PLUGINS_URL = "https://plugins.sixtyninecommerce.co
4
4
  export declare const SHOP_API_PATH = "/shop-api";
5
5
  export declare const REQUEST_TIMEOUT_MS = 15000;
6
6
  export declare const INIT_TIMEOUT_MS = 10000;
7
+ export declare const RESERVED_STOREFRONT_PATHS: readonly ["cart", "checkout", "account", "sign-in", "register", "forgot-password", "reset-password", "verify", "verify-pending", "api"];
8
+ export type ReservedStorefrontPath = (typeof RESERVED_STOREFRONT_PATHS)[number];
7
9
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,mBAAmB,yCAAyC,CAAC;AAG1E,eAAO,MAAM,eAAe,sCAAsC,CAAC;AAGnE,eAAO,MAAM,mBAAmB,0CAA0C,CAAC;AAG3E,eAAO,MAAM,aAAa,cAAc,CAAC;AAGzC,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAGzC,eAAO,MAAM,eAAe,QAAS,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,mBAAmB,yCAAyC,CAAC;AAG1E,eAAO,MAAM,eAAe,sCAAsC,CAAC;AAGnE,eAAO,MAAM,mBAAmB,0CAA0C,CAAC;AAG3E,eAAO,MAAM,aAAa,cAAc,CAAC;AAGzC,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAGzC,eAAO,MAAM,eAAe,QAAS,CAAC;AAatC,eAAO,MAAM,yBAAyB,yIAW5B,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC"}
package/dist/constants.js CHANGED
@@ -4,4 +4,16 @@ export const DEFAULT_PLUGINS_URL = 'https://plugins.sixtyninecommerce.com';
4
4
  export const SHOP_API_PATH = '/shop-api';
5
5
  export const REQUEST_TIMEOUT_MS = 15_000;
6
6
  export const INIT_TIMEOUT_MS = 10_000;
7
+ export const RESERVED_STOREFRONT_PATHS = [
8
+ 'cart',
9
+ 'checkout',
10
+ 'account',
11
+ 'sign-in',
12
+ 'register',
13
+ 'forgot-password',
14
+ 'reset-password',
15
+ 'verify',
16
+ 'verify-pending',
17
+ 'api',
18
+ ];
7
19
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,mBAAmB,GAAG,sCAAsC,CAAC;AAG1E,MAAM,CAAC,MAAM,eAAe,GAAG,mCAAmC,CAAC;AAGnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,uCAAuC,CAAC;AAG3E,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AAGzC,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAGzC,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,mBAAmB,GAAG,sCAAsC,CAAC;AAG1E,MAAM,CAAC,MAAM,eAAe,GAAG,mCAAmC,CAAC;AAGnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,uCAAuC,CAAC;AAG3E,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AAGzC,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAGzC,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AAatC,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,MAAM;IACN,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,iBAAiB;IACjB,gBAAgB;IAChB,QAAQ;IACR,gBAAgB;IAChB,KAAK;CACG,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import type { HttpClient } from '../core/http.js';
2
- import type { ContentItemSummary, ContentItemWithFields, ContentQueryOptions, RequestOptions } from '../types.js';
2
+ import type { ContentItemSummary, ContentItemWithFields, ContentQueryOptions, ContentSearchQuery, ContentSearchResult, RequestOptions } from '../types.js';
3
3
  export declare function createContentItemMethods(http: HttpClient): {
4
4
  getContent(queryOptions: ContentQueryOptions, options?: RequestOptions): Promise<Record<string, unknown>>;
5
+ searchContent(query: ContentSearchQuery, options?: RequestOptions): Promise<ContentSearchResult>;
5
6
  lookupContentItems(ids: string[], options?: RequestOptions): Promise<ContentItemSummary[]>;
6
7
  lookupContentItemsWithFields(ids: string[], fieldSlugs: string[], options?: RequestOptions): Promise<ContentItemWithFields[]>;
7
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../src/content/items.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACf,MAAM,aAAa,CAAC;AAUrB,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU;6BAGrC,mBAAmB,YACvB,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;4BAoB5B,MAAM,EAAE,YACH,cAAc,GACvB,OAAO,CAAC,kBAAkB,EAAE,CAAC;sCAgBzB,MAAM,EAAE,cACD,MAAM,EAAE,YACV,cAAc,GACvB,OAAO,CAAC,qBAAqB,EAAE,CAAC;EAatC"}
1
+ {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../src/content/items.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACf,MAAM,aAAa,CAAC;AAcrB,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU;6BAGrC,mBAAmB,YACvB,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;yBAuB1B,kBAAkB,YACf,cAAc,GACvB,OAAO,CAAC,mBAAmB,CAAC;4BA0BxB,MAAM,EAAE,YACH,cAAc,GACvB,OAAO,CAAC,kBAAkB,EAAE,CAAC;sCAgBzB,MAAM,EAAE,cACD,MAAM,EAAE,YACV,cAAc,GACvB,OAAO,CAAC,qBAAqB,EAAE,CAAC;EAatC"}
@@ -18,6 +18,26 @@ export function createContentItemMethods(http) {
18
18
  params.language_code = queryOptions.languageCode;
19
19
  return http.cmsGet('/search/collection-items', params, options);
20
20
  },
21
+ async searchContent(query, options) {
22
+ const params = {};
23
+ params.q = query.q ?? '';
24
+ if (query.collectionId)
25
+ params.collection_id = query.collectionId;
26
+ if (query.collectionSlug)
27
+ params.collection_slug = query.collectionSlug;
28
+ if (query.parentId)
29
+ params.parent_id = query.parentId;
30
+ if (query.limit != null)
31
+ params.limit = String(query.limit);
32
+ if (query.offset != null)
33
+ params.offset = String(query.offset);
34
+ if (query.sort)
35
+ params.sort = query.sort;
36
+ if (query.languageCode)
37
+ params.language_code = query.languageCode;
38
+ const envelope = await http.cmsGet('/search/collection-items', params, options);
39
+ return envelope.data;
40
+ },
21
41
  async lookupContentItems(ids, options) {
22
42
  if (ids.length === 0)
23
43
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"items.js","sourceRoot":"","sources":["../../src/content/items.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,wBAAwB,CAAC,IAAgB;IACvD,OAAO;QACL,KAAK,CAAC,UAAU,CACd,YAAiC,EACjC,OAAwB;YAExB,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,IAAI,YAAY,CAAC,YAAY;gBAAE,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC;YAChF,IAAI,YAAY,CAAC,cAAc;gBAAE,MAAM,CAAC,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC;YACtF,IAAI,YAAY,CAAC,CAAC;gBAAE,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;YAC9C,IAAI,YAAY,CAAC,KAAK,IAAI,IAAI;gBAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC1E,IAAI,YAAY,CAAC,MAAM,IAAI,IAAI;gBAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC7E,IAAI,YAAY,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YACvD,IAAI,YAAY,CAAC,YAAY;gBAAE,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC;YAEhF,OAAO,IAAI,CAAC,MAAM,CAA0B,0BAA0B,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3F,CAAC;QAQD,KAAK,CAAC,kBAAkB,CACtB,GAAa,EACb,OAAwB;YAExB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAChC,eAAe,EACf,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EACtB,OAAO,CACR,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAOD,KAAK,CAAC,4BAA4B,CAChC,GAAa,EACb,UAAoB,EACpB,OAAwB;YAExB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC3D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAChC,2BAA2B,EAC3B;gBACE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;gBAClB,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;aAClC,EACD,OAAO,CACR,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"items.js","sourceRoot":"","sources":["../../src/content/items.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"menus.d.ts","sourceRoot":"","sources":["../../src/content/menus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAY,cAAc,EAAE,MAAM,aAAa,CAAC;AA2DlE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU;uBAErB,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;sBAKjC,MAAM,YAAY,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;EAe3E"}
1
+ {"version":3,"file":"menus.d.ts","sourceRoot":"","sources":["../../src/content/menus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAY,cAAc,EAAE,MAAM,aAAa,CAAC;AAkFlE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU;uBAErB,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;sBAKjC,MAAM,YAAY,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;EAe3E"}
@@ -1,18 +1,35 @@
1
+ function pick(obj, ...keys) {
2
+ for (const key of keys) {
3
+ if (obj[key] !== undefined)
4
+ return obj[key];
5
+ }
6
+ return undefined;
7
+ }
8
+ function asNullableString(value) {
9
+ return typeof value === 'string' ? value : null;
10
+ }
11
+ function asString(value) {
12
+ return typeof value === 'string' ? value : '';
13
+ }
14
+ function asBoolean(value) {
15
+ return value === true;
16
+ }
1
17
  function buildMenuTree(items) {
2
18
  const byId = new Map();
3
19
  const roots = [];
4
20
  for (const item of items) {
21
+ const parentId = asNullableString(pick(item, 'parentId', 'parent_id'));
5
22
  byId.set(item.id, {
6
23
  id: item.id,
7
- parentId: item.parent_id,
8
- itemType: item.item_type,
24
+ parentId,
25
+ itemType: asString(pick(item, 'itemType', 'item_type')),
9
26
  url: item.url,
10
- targetId: item.target_id,
27
+ targetId: asNullableString(pick(item, 'targetId', 'target_id')),
11
28
  position: item.position,
12
- openInNewTab: item.open_in_new_tab,
29
+ openInNewTab: asBoolean(pick(item, 'openInNewTab', 'open_in_new_tab')),
13
30
  metadata: item.metadata,
14
31
  translations: item.translations.map((t) => ({
15
- languageCode: t.language_code,
32
+ languageCode: asString(pick(t, 'languageCode', 'language_code')),
16
33
  label: t.label,
17
34
  title: t.title,
18
35
  })),
@@ -22,8 +39,9 @@ function buildMenuTree(items) {
22
39
  }
23
40
  for (const item of items) {
24
41
  const node = byId.get(item.id);
25
- if (item.parent_id && byId.has(item.parent_id)) {
26
- byId.get(item.parent_id).children.push(node);
42
+ const parentId = asNullableString(pick(item, 'parentId', 'parent_id'));
43
+ if (parentId && byId.has(parentId)) {
44
+ byId.get(parentId).children.push(node);
27
45
  }
28
46
  else {
29
47
  roots.push(node);
@@ -1 +1 @@
1
- {"version":3,"file":"menus.js","sourceRoot":"","sources":["../../src/content/menus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menus.js","sourceRoot":"","sources":["../../src/content/menus.ts"],"names":[],"mappings":"AAkBA,SAAS,IAAI,CAAC,GAA4B,EAAE,GAAG,IAAc;IAC3D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC;AAED,SAAS,aAAa,CAAC,KAAoB;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzC,MAAM,KAAK,GAAe,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;YAChB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,QAAQ;YACR,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YACvD,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAC/D,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;YACtE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1C,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;gBAChE,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,KAAK,EAAE,CAAC,CAAC,KAAK;aACf,CAAC,CAAC;YACH,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QACvE,IAAI,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,SAAS,cAAc,CAAC,KAAiB;QACvC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,cAAc,CAAC,KAAK,CAAC,CAAC;IAEtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAgB;IAChD,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,OAAwB;YACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAmB,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,OAAwB;YACtD,MAAM,MAAM,GAAG,iEAAiE,CAAC,IAAI,CACnF,QAAQ,CACT,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,CAAC,kBAAkB,QAAQ,EAAE,CAAC;YAC1E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAoC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,IAA+B,CAAC;YAElD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAsB,CAAC,CAAC;YAC1D,CAAC;YAED,OAAO,IAAuB,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { HttpClient, RequestOptions } from '../core/http.js';
2
+ import type { B2bCreditStatus } from '../types.js';
3
+ export declare function createCreditStatusMethods(http: HttpClient): {
4
+ getCreditStatus(options?: RequestOptions): Promise<B2bCreditStatus | null>;
5
+ };
6
+ //# sourceMappingURL=credit-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credit-status.d.ts","sourceRoot":"","sources":["../../src/credit/credit-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAqBnD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU;8BAEtB,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;EASnF"}
@@ -0,0 +1,26 @@
1
+ const B2B_CREDIT_STATUS_FIELDS = `
2
+ customerId
3
+ currencyCode
4
+ balance
5
+ uninvoicedOrdersTotal
6
+ exposure
7
+ creditLimit
8
+ available
9
+ overdueInvoiceCount
10
+ overLimit
11
+ hasOverdue
12
+ `;
13
+ const B2B_CREDIT_STATUS = `
14
+ query B2bCreditStatus {
15
+ b2bCreditStatus { ${B2B_CREDIT_STATUS_FIELDS} }
16
+ }
17
+ `;
18
+ export function createCreditStatusMethods(http) {
19
+ return {
20
+ async getCreditStatus(options) {
21
+ const data = await http.graphql(B2B_CREDIT_STATUS, undefined, options);
22
+ return data.b2bCreditStatus;
23
+ },
24
+ };
25
+ }
26
+ //# sourceMappingURL=credit-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credit-status.js","sourceRoot":"","sources":["../../src/credit/credit-status.ts"],"names":[],"mappings":"AAGA,MAAM,wBAAwB,GAAiB;;;;;;;;;;;CAW9C,CAAC;AAEF,MAAM,iBAAiB,GAAiB;;wBAEhB,wBAAwB;;CAE/C,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,IAAgB;IACxD,OAAO;QACL,KAAK,CAAC,eAAe,CAAC,OAAwB;YAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,iBAAiB,EACjB,SAAS,EACT,OAAO,CACR,CAAC;YACF,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { HttpClient } from '../core/http.js';
2
+ import type { CreditModule } from '../types.js';
3
+ export declare function createCreditModule(http: HttpClient): CreditModule;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/credit/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAEjE"}
@@ -0,0 +1,5 @@
1
+ import { createCreditStatusMethods } from './credit-status.js';
2
+ export function createCreditModule(http) {
3
+ return createCreditStatusMethods(http);
4
+ }
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/credit/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,UAAU,kBAAkB,CAAC,IAAgB;IACjD,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { createStorefrontClient } from './client.js';
2
- export { DEFAULT_CMS_URL, DEFAULT_PLUGINS_URL, DEFAULT_VENDURE_URL, SHOP_API_PATH, } from './constants.js';
2
+ export { DEFAULT_CMS_URL, DEFAULT_PLUGINS_URL, DEFAULT_VENDURE_URL, RESERVED_STOREFRONT_PATHS, type ReservedStorefrontPath, SHOP_API_PATH, } from './constants.js';
3
3
  export { buildFilteredProductsSearch, type FilteredProductsConfig, type FilteredProductsValue, } from './content/filtered-products.js';
4
4
  export { MutationError, StorefrontError } from './errors.js';
5
- export type { ActiveChannel, AddressInput, Asset, AssetPresetSize, AssetPresets, Breadcrumb, ChannelInfo, CmsAsset, CmsAssetTranslation, Collection, CollectionDetail, CollectionFieldDefinition, CollectionListOptions, CollectionPageValues, CommerceModule, ContentItemSummary, ContentItemWithFields, ContentModule, ContentQueryOptions, ContentStrings, ConvertedAmount, Country, CreateReviewInput, CreateReviewResult, CurrencyModule, Customer, CustomerAddress, CustomerInput, CustomerSubscription, CustomerSubscriptionStatus, DeliveryOption, DeliveryOptionsInput, DeliveryTimeFrame, DropOffPoint, DropOffPointInput, ExchangeRate, Facet, FacetValue, FacetValueFilterInput, FavoriteItem, FavoriteVariant, FormDefinition, FormField, FormSubmissionResult, MediaModule, Menu, MenuItem, NavigationModule, OptionGroup, Order, OrderAddress, OrderLine, OrderListOptions, OrderSummary, OrderValidationError, OrderValidationResult, PaginatedList, PaymentInput, PaymentMethod, PresetName, PriceDisplay, PriceTier, PricingModule, Product, ProductListOptions, ProductOption, ProductPropertyGroupValues, ProductReview, ProductSummary, ProductVariant, Property, PropertyConfig, PropertyFieldFacet, PropertyGroup, PropertyGroupTranslation, PropertyTranslation, PropertyValue, RecommendedProductGroup, RegisterInput, RequestOptions, ResolvedContent, ResponsiveImageData, RetryConfig, ReviewAttribute, ReviewAttributeAggregation, ReviewChannelConfig, ReviewListOptions, ReviewMediaUploadResult, ReviewRatingDistribution, ReviewRatingSummary, RouteEntry, RoutesResponse, SearchFacetValue, SearchInput, SearchResult, SearchResultItem, ShipmentTrackingHistoryEntry, ShipmentTrackingInfo, ShippingMethod, SitemapEntry, StoreContext, StorefrontClient, StorefrontClientConfig, TierTableEntry, UpdateAddressInput, UpdateCustomerInput, UpdateReviewInput, VariantPriceData, VatValidationResult, VendureAssetDescriptionTranslation, } from './types.js';
5
+ export type { AiSummaryInput, BotDirective, BreadcrumbOverrideEntry, CollectionForSeo, HreflangLink, HreflangLinkTag, HreflangOverrideEntry, LlmsTxtEntryInput, MetaRobots, MetaRobotsFollowDirective, MetaRobotsIndexDirective, MetaRobotsMaxImagePreview, MetaTagsEntityInput, MetaTagsResult, OpenGraphTag, PerBotDirectives, ProductForSeo, ProductMetadata, ProductMetadataAi, ProductMetadataSocial, ProductMetadataTwitter, ProductMetaTagsInput, ProductSeoExtras, QAPair, RobotsMetaTag, RobotsXRobotsHeader, SeoEntityInput, SeoMeta, SeoModule, SocialOgType, TwitterCardType, TwitterTag, UrlLocaleStrategy, } from './seo/index.js';
6
+ export type { ActiveChannel, AddressInput, AgeVerificationStatus, Asset, AssetPresetSize, AssetPresets, B2bCreditStatus, BrandingAssetRef, BrandingContact, BrandingFontResource, BrandingIdentity, BrandingInfo, BrandingLegal, BrandingLegalAddress, BrandingSocialLinks, BrandingStorefrontConfig, BrandingTheme, Breadcrumb, ChannelInfo, CmsAsset, CmsAssetTranslation, Collection, CollectionDetail, CollectionFieldDefinition, CollectionListOptions, CollectionPageValues, CommerceModule, ContentItemSummary, ContentItemWithFields, ContentModule, ContentQueryOptions, ContentSearchHit, ContentSearchQuery, ContentSearchResult, ContentStrings, ConvertedAmount, Country, CreateMolliePaymentIntentInput, CreateQuoteRequestInput, CreateReviewInput, CreateReviewResult, CreditModule, CurrencyModule, Customer, CustomerAddress, CustomerInput, CustomerSubscription, CustomerSubscriptionStatus, DeliveryOption, DeliveryOptionsInput, DeliveryTimeFrame, DropOffPoint, DropOffPointInput, ExchangeRate, Facet, FacetValue, FacetValueFilterInput, FavoriteItem, FavoriteVariant, FormDefinition, FormField, FormSubmissionResult, MediaModule, Menu, MenuItem, MolliePaymentIntentResult, MolliePaymentMethod, MolliePaymentMethodAmount, MolliePaymentMethodsInput, NavigationModule, OptionGroup, Order, OrderAddress, OrderLine, OrderListOptions, OrderSummary, OrderValidationError, OrderValidationResult, PaginatedList, PaymentInput, PaymentMethod, PresetName, PriceDisplay, PriceTier, PricingModule, Product, ProductListOptions, ProductOption, ProductPropertyGroupValues, ProductReview, ProductSummary, ProductVariant, Property, PropertyConfig, PropertyFieldFacet, PropertyGroup, PropertyGroupTranslation, PropertyTranslation, PropertyValue, PublicProductDocument, Quote, QuoteLine, QuoteList, QuoteListOptions, QuoteStatus, RecommendedProductGroup, RegisterInput, RequestOptions, ResolvedContent, ResponsiveImageData, RetryConfig, ReviewAttribute, ReviewAttributeAggregation, ReviewChannelConfig, ReviewListOptions, ReviewMediaUploadResult, ReviewRatingDistribution, ReviewRatingSummary, RouteEntry, RoutesResponse, SearchFacetValue, SearchInput, SearchResult, SearchResultItem, ShipmentTrackingHistoryEntry, ShipmentTrackingInfo, ShippingMethod, SitemapEntry, StoreContext, StorefrontClient, StorefrontClientConfig, StripePaymentIntentResult, TierTableEntry, UpdateAddressInput, UpdateCustomerInput, UpdateReviewInput, VariantPriceData, VatValidationResult, VendureAssetDescriptionTranslation, } from './types.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE7D,YAAY,EACV,aAAa,EACb,YAAY,EACZ,KAAK,EACL,eAAe,EACf,YAAY,EACZ,UAAU,EACV,WAAW,EAEX,QAAQ,EACR,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EAEpB,cAAc,EAEd,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,OAAO,EACP,iBAAiB,EACjB,kBAAkB,EAElB,cAAc,EACd,QAAQ,EACR,eAAe,EAEf,aAAa,EAEb,oBAAoB,EACpB,0BAA0B,EAE1B,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACL,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,SAAS,EACT,oBAAoB,EAEpB,WAAW,EACX,IAAI,EACJ,QAAQ,EAER,gBAAgB,EAChB,WAAW,EAEX,KAAK,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EAErB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,UAAU,EACV,YAAY,EACZ,SAAS,EACT,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,aAAa,EAEb,0BAA0B,EAC1B,aAAa,EACb,cAAc,EACd,cAAc,EACd,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,wBAAwB,EACxB,mBAAmB,EACnB,aAAa,EAEb,uBAAuB,EACvB,aAAa,EACb,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,WAAW,EAEX,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,WAAW,EAEX,YAAY,EACZ,gBAAgB,EAChB,4BAA4B,EAC5B,oBAAoB,EACpB,cAAc,EAEd,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAEhB,mBAAmB,EACnB,kCAAkC,GACnC,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { createStorefrontClient } from './client.js';
2
- export { DEFAULT_CMS_URL, DEFAULT_PLUGINS_URL, DEFAULT_VENDURE_URL, SHOP_API_PATH, } from './constants.js';
2
+ export { DEFAULT_CMS_URL, DEFAULT_PLUGINS_URL, DEFAULT_VENDURE_URL, RESERVED_STOREFRONT_PATHS, SHOP_API_PATH, } from './constants.js';
3
3
  export { buildFilteredProductsSearch, } from './content/filtered-products.js';
4
4
  export { MutationError, StorefrontError } from './errors.js';
5
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,GAG5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EAEzB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,GAG5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export type VideoProvider = 'youtube' | 'vimeo';
2
- export type VideoSource = VideoProvider | 'upload';
2
+ export type VideoSource = VideoProvider | 'upload' | 'external';
3
3
  export interface ParsedVideo {
4
4
  provider: VideoProvider;
5
5
  videoId: string;
@@ -11,6 +11,9 @@ export interface VideoValue {
11
11
  }
12
12
  export declare function parseVideoUrl(url: string): ParsedVideo | null;
13
13
  export declare function getEmbedUrl(provider: VideoProvider, videoId: string): string;
14
+ export declare function parseDirectVideoUrl(url: string): {
15
+ url: string;
16
+ } | null;
14
17
  export declare function getThumbnailUrl(provider: VideoProvider, videoId: string): string | null;
15
18
  interface VideoEmbedOptions {
16
19
  autoplay?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/media/video.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAgBD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAe7D;AAGD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAO5E;AAGD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOvF;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAyCxF"}
1
+ {"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/media/video.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAkBD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAe7D;AAGD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAO5E;AAOD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAavE;AAGD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOvF;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAyCxF"}
@@ -1,3 +1,4 @@
1
+ const DIRECT_VIDEO_EXTENSIONS = ['.mp4', '.webm', '.ogv', '.ogg', '.mov', '.m4v'];
1
2
  const YOUTUBE_PATTERNS = [
2
3
  /(?:youtube\.com\/watch\?.*v=)([a-zA-Z0-9_-]{11})/,
3
4
  /youtu\.be\/([a-zA-Z0-9_-]{11})/,
@@ -33,6 +34,24 @@ export function getEmbedUrl(provider, videoId) {
33
34
  return `https://player.vimeo.com/video/${videoId}`;
34
35
  }
35
36
  }
37
+ export function parseDirectVideoUrl(url) {
38
+ if (!url || typeof url !== 'string')
39
+ return null;
40
+ const trimmed = url.trim();
41
+ let parsed;
42
+ try {
43
+ parsed = new URL(trimmed);
44
+ }
45
+ catch {
46
+ return null;
47
+ }
48
+ if (parsed.protocol !== 'https:')
49
+ return null;
50
+ const pathname = parsed.pathname.toLowerCase();
51
+ if (!DIRECT_VIDEO_EXTENSIONS.some((ext) => pathname.endsWith(ext)))
52
+ return null;
53
+ return { url: trimmed };
54
+ }
36
55
  export function getThumbnailUrl(provider, videoId) {
37
56
  switch (provider) {
38
57
  case 'youtube':
@@ -74,7 +93,7 @@ export function getVideoEmbedHtml(value, options) {
74
93
  allow.unshift('autoplay');
75
94
  return `<iframe src="${embedUrl.toString()}" allow="${allow.join('; ')}" allowfullscreen style="border:0;width:100%;aspect-ratio:16/9" title="Video"></iframe>`;
76
95
  }
77
- if (value.source === 'upload') {
96
+ if (value.source === 'upload' || value.source === 'external') {
78
97
  const attrs = ['controls', 'style="width:100%;max-height:100%"'];
79
98
  if (autoplay)
80
99
  attrs.push('autoplay');
@@ -1 +1 @@
1
- {"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/media/video.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/media/video.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export function createRoutesMethods(http) {
9
9
  async findRoute(path, languageCode, options) {
10
10
  const response = await http.pluginsGet('/routes', languageCode ? { language_code: languageCode } : undefined, options);
11
11
  const normalizedPath = path.replace(/\/+$/, '') || '/';
12
- for (const routes of Object.values(response.routes)) {
12
+ for (const routes of Object.values(response.data)) {
13
13
  for (const route of routes) {
14
14
  if (route.path === normalizedPath)
15
15
  return route;
@@ -20,7 +20,7 @@ export function createRoutesMethods(http) {
20
20
  async getRoutesByType(type, languageCode, options) {
21
21
  const response = await http.pluginsGet('/routes', languageCode ? { language_code: languageCode } : undefined, options);
22
22
  const result = [];
23
- for (const routes of Object.values(response.routes)) {
23
+ for (const routes of Object.values(response.data)) {
24
24
  for (const route of routes) {
25
25
  if (route.type === type)
26
26
  result.push(route);
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/navigation/routes.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IAClD,OAAO;QACL,KAAK,CAAC,SAAS,CAAC,YAAqB,EAAE,OAAwB;YAC7D,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,IAAI,YAAY;gBAAE,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC;YACtD,OAAO,IAAI,CAAC,UAAU,CAAiB,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;QAED,KAAK,CAAC,SAAS,CACb,IAAY,EACZ,YAAqB,EACrB,OAAwB;YAExB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CACpC,SAAS,EACT,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,EAC1D,OAAO,CACR,CAAC;YAEF,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;YAEvD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;wBAAE,OAAO,KAAK,CAAC;gBAClD,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,CAAC,eAAe,CACnB,IAAsC,EACtC,YAAqB,EACrB,OAAwB;YAExB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CACpC,SAAS,EACT,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,EAC1D,OAAO,CACR,CAAC;YAEF,MAAM,MAAM,GAAiB,EAAE,CAAC;YAChC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;wBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/navigation/routes.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IAClD,OAAO;QACL,KAAK,CAAC,SAAS,CAAC,YAAqB,EAAE,OAAwB;YAC7D,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,IAAI,YAAY;gBAAE,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC;YACtD,OAAO,IAAI,CAAC,UAAU,CAAiB,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;QAED,KAAK,CAAC,SAAS,CACb,IAAY,EACZ,YAAqB,EACrB,OAAwB;YAExB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CACpC,SAAS,EACT,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,EAC1D,OAAO,CACR,CAAC;YAEF,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;YAEvD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;wBAAE,OAAO,KAAK,CAAC;gBAClD,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,CAAC,eAAe,CACnB,IAAsC,EACtC,YAAqB,EACrB,OAAwB;YAExB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CACpC,SAAS,EACT,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,EAC1D,OAAO,CACR,CAAC;YAEF,MAAM,MAAM,GAAiB,EAAE,CAAC;YAChC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;wBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ProductMetadata } from './metadata-types.js';
2
+ import type { ProductForSeo } from './types.js';
3
+ export interface AiSummaryInput {
4
+ kind: 'product';
5
+ metadata: ProductMetadata | null;
6
+ }
7
+ export declare function aiSummaryFor(input: AiSummaryInput): string | null;
8
+ export interface LlmsTxtEntryInput {
9
+ kind: 'product';
10
+ product: ProductForSeo;
11
+ metadata: ProductMetadata | null;
12
+ url: string;
13
+ name: string;
14
+ description?: string;
15
+ }
16
+ export declare function llmsTxtEntryFor(input: LlmsTxtEntryInput): string;
17
+ //# sourceMappingURL=ai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/seo/ai.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAchD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;CAClC;AAOD,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAGjE;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IAEjC,GAAG,EAAE,MAAM,CAAC;IAEZ,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAOD,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAShE"}
package/dist/seo/ai.js ADDED
@@ -0,0 +1,32 @@
1
+ const HTML_TAG_RE = /<[^>]+>/g;
2
+ const WHITESPACE_RE = /\s+/g;
3
+ function stripHtml(input) {
4
+ return input.replace(HTML_TAG_RE, ' ').replace(WHITESPACE_RE, ' ').trim();
5
+ }
6
+ function truncate(input, max) {
7
+ if (input.length <= max)
8
+ return input;
9
+ return `${input.slice(0, max - 1).trimEnd()}…`;
10
+ }
11
+ export function aiSummaryFor(input) {
12
+ const value = input.metadata?.ai.summary?.trim();
13
+ return value && value.length > 0 ? value : null;
14
+ }
15
+ export function llmsTxtEntryFor(input) {
16
+ const summary = input.metadata?.ai.summary?.trim() ??
17
+ input.metadata?.seoDescription?.trim() ??
18
+ (input.description ? truncate(stripHtml(input.description), 160) : '');
19
+ const urlWithSuffix = appendMdSuffix(input.url);
20
+ return summary
21
+ ? `- [${input.name}](${urlWithSuffix}): ${summary}`
22
+ : `- [${input.name}](${urlWithSuffix})`;
23
+ }
24
+ function appendMdSuffix(url) {
25
+ const hashIdx = url.indexOf('#');
26
+ const queryIdx = url.indexOf('?');
27
+ const tailIdx = hashIdx === -1 ? queryIdx : queryIdx === -1 ? hashIdx : Math.min(hashIdx, queryIdx);
28
+ if (tailIdx === -1)
29
+ return `${url}.md`;
30
+ return `${url.slice(0, tailIdx)}.md${url.slice(tailIdx)}`;
31
+ }
32
+ //# sourceMappingURL=ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/seo/ai.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAW;IAC1C,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC;AACjD,CAAC;AAYD,MAAM,UAAU,YAAY,CAAC,KAAqB;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IACjD,OAAO,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAmBD,MAAM,UAAU,eAAe,CAAC,KAAwB;IACtD,MAAM,OAAO,GACX,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE;QAClC,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE;QACtC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChD,OAAO,OAAO;QACZ,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,aAAa,MAAM,OAAO,EAAE;QACnD,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,aAAa,GAAG,CAAC;AAC5C,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IAEjC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,OAAO,GACX,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtF,IAAI,OAAO,KAAK,CAAC,CAAC;QAAE,OAAO,GAAG,GAAG,KAAK,CAAC;IACvC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { HreflangLink, SeoEntityInput } from './types.js';
2
+ import type { UrlStrategyConfig } from './url-builder.js';
3
+ export declare function alternatesFor(cfg: UrlStrategyConfig, entity: SeoEntityInput): HreflangLink[];
4
+ //# sourceMappingURL=alternates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alternates.d.ts","sourceRoot":"","sources":["../../src/seo/alternates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAuB1D,wBAAgB,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,YAAY,EAAE,CAgB5F"}
@@ -0,0 +1,29 @@
1
+ import { canonicalFor } from './canonical.js';
2
+ function translatedLanguagesFor(entity) {
3
+ switch (entity.kind) {
4
+ case 'product': {
5
+ const fromProduct = (entity.translations ?? []).map((t) => t.languageCode);
6
+ return fromProduct;
7
+ }
8
+ case 'collection':
9
+ return (entity.translations ?? []).map((t) => t.languageCode);
10
+ case 'cms':
11
+ return Object.keys(entity.slug_translations ?? {});
12
+ }
13
+ }
14
+ export function alternatesFor(cfg, entity) {
15
+ const languages = Array.from(new Set(translatedLanguagesFor(entity)));
16
+ if (!languages.includes(cfg.defaultLanguageCode)) {
17
+ languages.unshift(cfg.defaultLanguageCode);
18
+ }
19
+ const rows = languages.map((lang) => ({
20
+ hreflang: lang,
21
+ href: canonicalFor(cfg, entity, lang),
22
+ }));
23
+ rows.push({
24
+ hreflang: 'x-default',
25
+ href: canonicalFor(cfg, entity, cfg.defaultLanguageCode),
26
+ });
27
+ return rows;
28
+ }
29
+ //# sourceMappingURL=alternates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alternates.js","sourceRoot":"","sources":["../../src/seo/alternates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQ9C,SAAS,sBAAsB,CAAC,MAAsB;IACpD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAK3E,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,KAAK,YAAY;YACf,OAAO,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAChE,KAAK,KAAK;YACR,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAsB,EAAE,MAAsB;IAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAGtE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACjD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,IAAI,GAAmB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpD,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC;KACtC,CAAC,CAAC,CAAC;IACJ,IAAI,CAAC,IAAI,CAAC;QACR,QAAQ,EAAE,WAAW;QACrB,IAAI,EAAE,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,mBAAmB,CAAC;KACzD,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { SeoEntityInput } from './types.js';
2
+ import { type UrlStrategyConfig } from './url-builder.js';
3
+ export declare function canonicalFor(cfg: UrlStrategyConfig, entity: SeoEntityInput, locale?: string): string;
4
+ //# sourceMappingURL=canonical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../../src/seo/canonical.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkD,cAAc,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,EAAY,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAoFpE,wBAAgB,YAAY,CAC1B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,cAAc,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAUR"}