@picked/shopify 0.0.23-next.1 → 0.0.23-next.2

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("@picked/client"),f=require("../../ajax-api/index.js"),a=require("../../../picked-config-DfcDhMyM.cjs"),l=require("../../../global-obj-OziQiQ8j.cjs");function h(e,i){let t;return(...n)=>{const s=()=>{t=void 0,e(...n)};clearTimeout(t),t=setTimeout(s,i)}}const o={homepage:/^\/$/,page:/(?:^|\/)pages\/(?<pageHandle>[^/]+)\/?$/,blog:/(?:^|\/)blogs\/(?<blogHandle>[^/]+)\/?$/,article:/^\/blogs\/[^/]+\/(?<article>[^/]+)\/?$/,cart:/(?:^|\/)cart\/[^/]+$/,checkout:/^\/checkout\/.+/,appProxy:/^\/(?:a|apps|community|tools)\/(?<proxyTarget>[^/]+)/,accountWildcard:/^\/account\/.+/,accountLogin:/^\/account\/login(?:\/|$)/,accountRegister:/^\/account\/register(?:\/|$)/},c=(e,i)=>i?!!e.exec(i.pathname):!1,r=(e,i)=>{if(i){const t=e.exec(i.pathname);if(t)return t[1]}},g=e=>{var i,t;switch(e){case"product":return((i=a.getPickedConfigProduct())==null?void 0:i.handle)??!1;case"collection":return((t=a.getPickedConfigCollection())==null?void 0:t.handle)??!1;default:return!1}},k={"is-page":({location:e})=>c(o.page,e),"get-page-handle":({location:e})=>r(o.page,e),"is-product-page":()=>!!g("product"),"get-product-handle":()=>g("product"),"is-collection-page":()=>!!g("collection"),"get-collection-handle":()=>g("collection"),"is-blog-page":({location:e})=>c(o.blog,e),"get-blog-handle":({location:e})=>r(o.blog,e),"is-article-page":({location:e})=>c(o.article,e),"get-article-handle":({location:e})=>r(o.article,e),"is-app-proxy-page":({location:e})=>c(o.appProxy,e),"get-app-proxy-handle":({location:e})=>r(o.appProxy,e),"is-account-page":({location:e})=>c(o.accountWildcard,e),"is-login-page":({location:e})=>c(o.accountLogin,e),"is-register-page":({location:e})=>c(o.accountRegister,e),"is-cart-page":({location:e})=>c(o.cart,e),"is-checkout-page":({location:e})=>c(o.checkout,e),"is-homepage":({location:e})=>c(o.homepage,e)},P=()=>({name:"shopify",setup:e=>{if(Object.entries(k).forEach(([i,t])=>{e.registerPredicate(`shopify-${i}`,t)}),u.supportsWindow()){const i=h(f.updateCart,50);e.eventBus.watch(t=>{if(l.supportsShopifyAnalytics()&&(t.type==="session"&&globalThis.window.Shopify.analytics.publish("picked:session",{id:t.id}),t.type==="feature_decide"||t.type==="session")){const n=e.session;if(n){const s={"picked.id":n.id};typeof n.isUser<"u"&&(s["picked.is_user"]=n.isUser?"true":"false"),e.features.listStore.getState().forEach(p=>{if(p.isResolved){const d=p.getBucket();s[`picked.features.${p.id}`]=`${d.bucket}`}}),i({attributes:s})}}})}}});exports.getPickedConfig=a.getPickedConfig;exports.getPickedConfigCollection=a.getPickedConfigCollection;exports.getPickedConfigCustomer=a.getPickedConfigCustomer;exports.getPickedConfigExperiments=a.getPickedConfigExperiments;exports.getPickedConfigFeatureExperiments=a.getPickedConfigFeatureExperiments;exports.getPickedConfigProduct=a.getPickedConfigProduct;exports.getPickedConfigStorefrontApiToken=a.getPickedConfigStorefrontApiToken;exports.getShopify=l.getShopify;exports.shopifyPlugin=P;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("@picked/client"),f=require("../../ajax-api/index.js"),s=require("../../../picked-config-DfcDhMyM.cjs"),y=require("../../../global-obj-OziQiQ8j.cjs");function P(e,t){let o,c;return(...d)=>(c&&c.reject(new Error("Debounced")),new Promise((a,r)=>{c={resolve:a,reject:r};const g=async()=>{o=void 0;try{const l=await e(...d);c==null||c.resolve(l)}catch(l){c==null||c.reject(l)}finally{c=null}};clearTimeout(o),o=setTimeout(g,t)}))}const i={homepage:/^\/$/,page:/(?:^|\/)pages\/(?<pageHandle>[^/]+)\/?$/,blog:/(?:^|\/)blogs\/(?<blogHandle>[^/]+)\/?$/,article:/^\/blogs\/[^/]+\/(?<article>[^/]+)\/?$/,cart:/(?:^|\/)cart\/[^/]+$/,checkout:/^\/checkout\/.+/,appProxy:/^\/(?:a|apps|community|tools)\/(?<proxyTarget>[^/]+)/,accountWildcard:/^\/account\/.+/,accountLogin:/^\/account\/login(?:\/|$)/,accountRegister:/^\/account\/register(?:\/|$)/},n=(e,t)=>t?!!e.exec(t.pathname):!1,u=(e,t)=>{if(t){const o=e.exec(t.pathname);if(o)return o[1]}},p=e=>{var t,o;switch(e){case"product":return((t=s.getPickedConfigProduct())==null?void 0:t.handle)??!1;case"collection":return((o=s.getPickedConfigCollection())==null?void 0:o.handle)??!1;default:return!1}},b={"is-page":({location:e})=>n(i.page,e),"get-page-handle":({location:e})=>u(i.page,e),"is-product-page":()=>!!p("product"),"get-product-handle":()=>p("product"),"is-collection-page":()=>!!p("collection"),"get-collection-handle":()=>p("collection"),"is-blog-page":({location:e})=>n(i.blog,e),"get-blog-handle":({location:e})=>u(i.blog,e),"is-article-page":({location:e})=>n(i.article,e),"get-article-handle":({location:e})=>u(i.article,e),"is-app-proxy-page":({location:e})=>n(i.appProxy,e),"get-app-proxy-handle":({location:e})=>u(i.appProxy,e),"is-account-page":({location:e})=>n(i.accountWildcard,e),"is-login-page":({location:e})=>n(i.accountLogin,e),"is-register-page":({location:e})=>n(i.accountRegister,e),"is-cart-page":({location:e})=>n(i.cart,e),"is-checkout-page":({location:e})=>n(i.checkout,e),"is-homepage":({location:e})=>n(i.homepage,e)},C=()=>({name:"shopify",setup:e=>{let t={},o=0;const c=async()=>{if(o>=3)return;o++,await f.updateCart({attributes:t});const a=await f.getCart();for(const[r,g]of Object.entries(t))if(a.attributes[r]!==g)return c()},d=P(async()=>(o=0,c()),50);Object.entries(b).forEach(([a,r])=>{e.registerPredicate(`shopify-${a}`,r)}),k.supportsWindow()&&e.eventBus.watch(a=>{if(y.supportsShopifyAnalytics()&&(a.type==="session"&&globalThis.window.Shopify.analytics.publish("picked:session",{id:a.id}),a.type==="feature_decide"||a.type==="session")){const r=e.session;if(r){const g={"picked.id":r.id};typeof r.isUser<"u"&&(g["picked.is_user"]=r.isUser?"true":"false"),e.features.listStore.getState().forEach(l=>{if(l.isResolved){const h=l.getBucket();g[`picked.features.${l.id}`]=`${h.bucket}`}}),t={...t,...g},d()}}})}});exports.getPickedConfig=s.getPickedConfig;exports.getPickedConfigCollection=s.getPickedConfigCollection;exports.getPickedConfigCustomer=s.getPickedConfigCustomer;exports.getPickedConfigExperiments=s.getPickedConfigExperiments;exports.getPickedConfigFeatureExperiments=s.getPickedConfigFeatureExperiments;exports.getPickedConfigProduct=s.getPickedConfigProduct;exports.getPickedConfigStorefrontApiToken=s.getPickedConfigStorefrontApiToken;exports.getShopify=y.getShopify;exports.shopifyPlugin=C;
@@ -1,19 +1,28 @@
1
- import { supportsWindow as l } from "@picked/client";
2
- import { updateCart as u } from "../../ajax-api/index.js";
3
- import { a as d, b as f } from "../../../picked-config-B69J6txs.js";
4
- import { c as E, d as S, e as T, f as w, g as H } from "../../../picked-config-B69J6txs.js";
5
- import { s as h } from "../../../global-obj-DQ6S7d00.js";
6
- import { g as v } from "../../../global-obj-DQ6S7d00.js";
7
- function m(e, o) {
8
- let t;
9
- return (...c) => {
10
- const s = () => {
11
- t = void 0, e(...c);
1
+ import { supportsWindow as f } from "@picked/client";
2
+ import { updateCart as h, getCart as y } from "../../ajax-api/index.js";
3
+ import { a as m, b } from "../../../picked-config-B69J6txs.js";
4
+ import { c as S, d as T, e as j, f as H, g as R } from "../../../picked-config-B69J6txs.js";
5
+ import { s as k } from "../../../global-obj-DQ6S7d00.js";
6
+ import { g as L } from "../../../global-obj-DQ6S7d00.js";
7
+ function P(e, t) {
8
+ let a, i;
9
+ return (...g) => (i && i.reject(new Error("Debounced")), new Promise((s, c) => {
10
+ i = { resolve: s, reject: c };
11
+ const n = async () => {
12
+ a = void 0;
13
+ try {
14
+ const p = await e(...g);
15
+ i == null || i.resolve(p);
16
+ } catch (p) {
17
+ i == null || i.reject(p);
18
+ } finally {
19
+ i = null;
20
+ }
12
21
  };
13
- clearTimeout(t), t = setTimeout(s, o);
14
- };
22
+ clearTimeout(a), a = setTimeout(n, t);
23
+ }));
15
24
  }
16
- const a = {
25
+ const o = {
17
26
  homepage: /^\/$/,
18
27
  page: /(?:^|\/)pages\/(?<pageHandle>[^/]+)\/?$/,
19
28
  blog: /(?:^|\/)blogs\/(?<blogHandle>[^/]+)\/?$/,
@@ -24,89 +33,98 @@ const a = {
24
33
  accountWildcard: /^\/account\/.+/,
25
34
  accountLogin: /^\/account\/login(?:\/|$)/,
26
35
  accountRegister: /^\/account\/register(?:\/|$)/
27
- }, i = (e, o) => o ? !!e.exec(o.pathname) : !1, r = (e, o) => {
28
- if (o) {
29
- const t = e.exec(o.pathname);
30
- if (t)
31
- return t[1];
36
+ }, r = (e, t) => t ? !!e.exec(t.pathname) : !1, l = (e, t) => {
37
+ if (t) {
38
+ const a = e.exec(t.pathname);
39
+ if (a)
40
+ return a[1];
32
41
  }
33
- }, n = (e) => {
34
- var o, t;
42
+ }, u = (e) => {
43
+ var t, a;
35
44
  switch (e) {
36
45
  case "product":
37
- return ((o = f()) == null ? void 0 : o.handle) ?? !1;
46
+ return ((t = b()) == null ? void 0 : t.handle) ?? !1;
38
47
  case "collection":
39
- return ((t = d()) == null ? void 0 : t.handle) ?? !1;
48
+ return ((a = m()) == null ? void 0 : a.handle) ?? !1;
40
49
  default:
41
50
  return !1;
42
51
  }
43
- }, y = {
52
+ }, x = {
44
53
  // Pages
45
- "is-page": ({ location: e }) => i(a.page, e),
46
- "get-page-handle": ({ location: e }) => r(a.page, e),
54
+ "is-page": ({ location: e }) => r(o.page, e),
55
+ "get-page-handle": ({ location: e }) => l(o.page, e),
47
56
  // Products
48
- "is-product-page": () => !!n("product"),
49
- "get-product-handle": () => n("product"),
57
+ "is-product-page": () => !!u("product"),
58
+ "get-product-handle": () => u("product"),
50
59
  // Collections
51
- "is-collection-page": () => !!n("collection"),
52
- "get-collection-handle": () => n("collection"),
60
+ "is-collection-page": () => !!u("collection"),
61
+ "get-collection-handle": () => u("collection"),
53
62
  // Blogs
54
- "is-blog-page": ({ location: e }) => i(a.blog, e),
55
- "get-blog-handle": ({ location: e }) => r(a.blog, e),
63
+ "is-blog-page": ({ location: e }) => r(o.blog, e),
64
+ "get-blog-handle": ({ location: e }) => l(o.blog, e),
56
65
  // Blog Articles
57
- "is-article-page": ({ location: e }) => i(a.article, e),
58
- "get-article-handle": ({ location: e }) => r(a.article, e),
66
+ "is-article-page": ({ location: e }) => r(o.article, e),
67
+ "get-article-handle": ({ location: e }) => l(o.article, e),
59
68
  // Apps
60
- "is-app-proxy-page": ({ location: e }) => i(a.appProxy, e),
61
- "get-app-proxy-handle": ({ location: e }) => r(a.appProxy, e),
69
+ "is-app-proxy-page": ({ location: e }) => r(o.appProxy, e),
70
+ "get-app-proxy-handle": ({ location: e }) => l(o.appProxy, e),
62
71
  // Account
63
- "is-account-page": ({ location: e }) => i(a.accountWildcard, e),
64
- "is-login-page": ({ location: e }) => i(a.accountLogin, e),
65
- "is-register-page": ({ location: e }) => i(a.accountRegister, e),
72
+ "is-account-page": ({ location: e }) => r(o.accountWildcard, e),
73
+ "is-login-page": ({ location: e }) => r(o.accountLogin, e),
74
+ "is-register-page": ({ location: e }) => r(o.accountRegister, e),
66
75
  // Cart
67
- "is-cart-page": ({ location: e }) => i(a.cart, e),
76
+ "is-cart-page": ({ location: e }) => r(o.cart, e),
68
77
  // Checkout
69
- "is-checkout-page": ({ location: e }) => i(a.checkout, e),
78
+ "is-checkout-page": ({ location: e }) => r(o.checkout, e),
70
79
  // Homepage
71
- "is-homepage": ({ location: e }) => i(a.homepage, e)
72
- }, C = () => ({
80
+ "is-homepage": ({ location: e }) => r(o.homepage, e)
81
+ }, B = () => ({
73
82
  name: "shopify",
74
83
  setup: (e) => {
75
- if (Object.entries(y).forEach(([o, t]) => {
76
- e.registerPredicate(`shopify-${o}`, t);
77
- }), l()) {
78
- const o = m(u, 50);
79
- e.eventBus.watch((t) => {
80
- if (h() && (t.type === "session" && globalThis.window.Shopify.analytics.publish("picked:session", {
81
- id: t.id
82
- }), t.type === "feature_decide" || t.type === "session")) {
83
- const c = e.session;
84
- if (c) {
85
- const s = {
86
- "picked.id": c.id
87
- };
88
- typeof c.isUser < "u" && (s["picked.is_user"] = c.isUser ? "true" : "false"), e.features.listStore.getState().forEach((p) => {
89
- if (p.isResolved) {
90
- const g = p.getBucket();
91
- s[`picked.features.${p.id}`] = `${g.bucket}`;
92
- }
93
- }), o({
94
- attributes: s
95
- });
96
- }
97
- }
84
+ let t = {}, a = 0;
85
+ const i = async () => {
86
+ if (a >= 3) return;
87
+ a++, await h({
88
+ attributes: t
98
89
  });
99
- }
90
+ const s = await y();
91
+ for (const [c, n] of Object.entries(t))
92
+ if (s.attributes[c] !== n)
93
+ return i();
94
+ }, g = P(async () => (a = 0, i()), 50);
95
+ Object.entries(x).forEach(([s, c]) => {
96
+ e.registerPredicate(`shopify-${s}`, c);
97
+ }), f() && e.eventBus.watch((s) => {
98
+ if (k() && (s.type === "session" && globalThis.window.Shopify.analytics.publish("picked:session", {
99
+ id: s.id
100
+ }), s.type === "feature_decide" || s.type === "session")) {
101
+ const c = e.session;
102
+ if (c) {
103
+ const n = {
104
+ "picked.id": c.id
105
+ };
106
+ typeof c.isUser < "u" && (n["picked.is_user"] = c.isUser ? "true" : "false"), e.features.listStore.getState().forEach((p) => {
107
+ if (p.isResolved) {
108
+ const d = p.getBucket();
109
+ n[`picked.features.${p.id}`] = `${d.bucket}`;
110
+ }
111
+ }), t = {
112
+ ...t,
113
+ ...n
114
+ }, g();
115
+ }
116
+ }
117
+ });
100
118
  }
101
119
  });
102
120
  export {
103
- E as getPickedConfig,
104
- d as getPickedConfigCollection,
105
- S as getPickedConfigCustomer,
106
- T as getPickedConfigExperiments,
107
- w as getPickedConfigFeatureExperiments,
108
- f as getPickedConfigProduct,
109
- H as getPickedConfigStorefrontApiToken,
110
- v as getShopify,
111
- C as shopifyPlugin
121
+ S as getPickedConfig,
122
+ m as getPickedConfigCollection,
123
+ T as getPickedConfigCustomer,
124
+ j as getPickedConfigExperiments,
125
+ H as getPickedConfigFeatureExperiments,
126
+ b as getPickedConfigProduct,
127
+ R as getPickedConfigStorefrontApiToken,
128
+ L as getShopify,
129
+ B as shopifyPlugin
112
130
  };
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/shopify/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAOpD,eAAO,MAAM,aAAa,QAAO,MAuDhC,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/shopify/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAOpD,eAAO,MAAM,aAAa,QAAO,MA8EhC,CAAA"}
@@ -1,2 +1,3 @@
1
- export default function debounce<T extends (...args: any[]) => void>(func: T, wait: number): (...args: Parameters<T>) => void;
1
+ export declare function debounce<T extends (...args: any[]) => void>(func: T, wait: number): (...args: Parameters<T>) => void;
2
+ export declare function debounceAsync<T extends (...args: any[]) => any>(func: T, wait: number): (...args: Parameters<T>) => Promise<ReturnType<T>>;
2
3
  //# sourceMappingURL=debounce.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../../src/utils/debounce.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,IAGhF,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,KAAG,IAAI,CAStC"}
1
+ {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../../src/utils/debounce.ts"],"names":[],"mappings":"AACA,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,IAGxE,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,KAAG,IAAI,CAStC;AAGD,wBAAgB,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,IAI5E,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAsBxD"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@picked/shopify",
3
3
  "description": "Shopify plugin for @picked/client",
4
- "version": "0.0.23-next.1",
4
+ "version": "0.0.23-next.2",
5
5
  "dependencies": {},
6
6
  "devDependencies": {
7
7
  "@picked/client": "workspace:*",
@@ -63,7 +63,7 @@
63
63
  "main": "./dist/cjs/index.js",
64
64
  "module": "./dist/esm/index.js",
65
65
  "peerDependencies": {
66
- "@picked/client": "0.0.23-next.1",
66
+ "@picked/client": "0.0.23-next.2",
67
67
  "@shopify/storefront-api-client": "^1.0.9",
68
68
  "effector": "^23.3.0"
69
69
  },