@knocklabs/client 0.10.10 → 0.10.11

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.10.11
4
+
5
+ ### Patch Changes
6
+
7
+ - 395f0ca: fix: check type of zustand default import and fix cjs build
8
+
3
9
  ## 0.10.10
4
10
 
5
11
  ### Patch Changes
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("zustand/vanilla"),n=require("../../networkStatus.js"),l=require("./utils.js");function c(e){const t=l.deduplicateItems(e);return l.sortItems(t)}const S={shouldSetPage:!0,shouldAppend:!1},d={items:[],metadata:{total_count:0,unread_count:0,unseen_count:0},pageInfo:{before:null,after:null,page_size:50}};function p(){return i(e=>({...d,networkStatus:n.NetworkStatus.ready,loading:!1,setNetworkStatus:t=>e(()=>({networkStatus:t,loading:t===n.NetworkStatus.loading})),setResult:({entries:t,meta:o,page_info:u},a=S)=>e(r=>({items:a.shouldAppend?c(r.items.concat(t)):t,metadata:o,pageInfo:a.shouldSetPage?u:r.pageInfo,loading:!1,networkStatus:n.NetworkStatus.ready})),setMetadata:t=>e(()=>({metadata:t})),resetStore:(t=d.metadata)=>e(()=>({...d,metadata:t})),setItemAttrs:(t,o)=>{const u=t.reduce((a,r)=>({...a,[r]:o}),{});return e(a=>({items:a.items.map(s=>u[s.id]?{...s,...u[s.id]}:s)}))}}))}exports.default=p;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("zustand/vanilla"),d=require("../../networkStatus.js"),i=require("./utils.js"),c=typeof u=="function"?u:u.default;function f(e){const t=i.deduplicateItems(e);return i.sortItems(t)}const p={shouldSetPage:!0,shouldAppend:!1},l={items:[],metadata:{total_count:0,unread_count:0,unseen_count:0},pageInfo:{before:null,after:null,page_size:50}};function S(){return c(e=>({...l,networkStatus:d.NetworkStatus.ready,loading:!1,setNetworkStatus:t=>e(()=>({networkStatus:t,loading:t===d.NetworkStatus.loading})),setResult:({entries:t,meta:r,page_info:n},a=p)=>e(s=>({items:a.shouldAppend?f(s.items.concat(t)):t,metadata:r,pageInfo:a.shouldSetPage?n:s.pageInfo,loading:!1,networkStatus:d.NetworkStatus.ready})),setMetadata:t=>e(()=>({metadata:t})),resetStore:(t=l.metadata)=>e(()=>({...l,metadata:t})),setItemAttrs:(t,r)=>{const n=t.reduce((a,s)=>({...a,[s]:r}),{});return e(a=>({items:a.items.map(o=>n[o.id]?{...o,...n[o.id]}:o)}))}}))}exports.default=S;
2
2
  //# sourceMappingURL=store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sources":["../../../../src/clients/feed/store.ts"],"sourcesContent":["import { GenericData } from \"@knocklabs/types\";\nimport create from \"zustand/vanilla\";\n\nimport { NetworkStatus } from \"../../networkStatus\";\n\nimport { FeedItem } from \"./interfaces\";\nimport { FeedStoreState } from \"./types\";\nimport { deduplicateItems, sortItems } from \"./utils\";\n\nfunction processItems(items: FeedItem[]) {\n const deduped = deduplicateItems(items);\n const sorted = sortItems(deduped);\n\n return sorted;\n}\n\nconst defaultSetResultOptions = {\n shouldSetPage: true,\n shouldAppend: false,\n};\n\nconst initialStoreState = {\n items: [],\n metadata: {\n total_count: 0,\n unread_count: 0,\n unseen_count: 0,\n },\n pageInfo: {\n before: null,\n after: null,\n page_size: 50,\n },\n};\n\nexport default function createStore() {\n return create<FeedStoreState>((set) => ({\n // Keeps track of all of the items loaded\n ...initialStoreState,\n // The network status indicates what's happening with the request\n networkStatus: NetworkStatus.ready,\n loading: false,\n\n setNetworkStatus: (networkStatus: NetworkStatus) =>\n set(() => ({\n networkStatus,\n loading: networkStatus === NetworkStatus.loading,\n })),\n\n setResult: (\n { entries, meta, page_info },\n options = defaultSetResultOptions,\n ) =>\n set((state) => {\n // We resort the list on set, so concating everything is fine (if a bit suboptimal)\n const items = options.shouldAppend\n ? processItems(state.items.concat(entries as FeedItem<GenericData>[]))\n : entries;\n\n return {\n items,\n metadata: meta,\n pageInfo: options.shouldSetPage ? page_info : state.pageInfo,\n loading: false,\n networkStatus: NetworkStatus.ready,\n };\n }),\n\n setMetadata: (metadata) => set(() => ({ metadata })),\n\n resetStore: (metadata = initialStoreState.metadata) =>\n set(() => ({ ...initialStoreState, metadata })),\n\n setItemAttrs: (itemIds, attrs) => {\n // Create a map for the items to the updates to be made\n const itemUpdatesMap: { [id: string]: object } = itemIds.reduce(\n (acc, itemId) => ({ ...acc, [itemId]: attrs }),\n {},\n );\n\n return set((state) => {\n const items = state.items.map((item) => {\n if (itemUpdatesMap[item.id]) {\n return { ...item, ...itemUpdatesMap[item.id] };\n }\n\n return item;\n });\n\n return { items };\n });\n },\n }));\n}\n"],"names":["processItems","items","deduped","deduplicateItems","sortItems","defaultSetResultOptions","initialStoreState","createStore","create","set","NetworkStatus","networkStatus","entries","meta","page_info","options","state","metadata","itemIds","attrs","itemUpdatesMap","acc","itemId","item"],"mappings":"2MASA,SAASA,EAAaC,EAAmB,CACjC,MAAAC,EAAUC,mBAAiBF,CAAK,EAG/B,OAFQG,YAAUF,CAAO,CAGlC,CAEA,MAAMG,EAA0B,CAC9B,cAAe,GACf,aAAc,EAChB,EAEMC,EAAoB,CACxB,MAAO,CAAC,EACR,SAAU,CACR,YAAa,EACb,aAAc,EACd,aAAc,CAChB,EACA,SAAU,CACR,OAAQ,KACR,MAAO,KACP,UAAW,EACb,CACF,EAEA,SAAwBC,GAAc,CAC7B,OAAAC,EAAwBC,IAAS,CAEtC,GAAGH,EAEH,cAAeI,EAAc,cAAA,MAC7B,QAAS,GAET,iBAAmBC,GACjBF,EAAI,KAAO,CAAA,cACTE,EACA,QAASA,IAAkBD,EAAAA,cAAc,OAAA,EACzC,EAEJ,UAAW,CACT,CAAE,QAAAE,EAAS,KAAAC,EAAM,UAAAC,GACjBC,EAAUV,IAEVI,EAAKO,IAMI,CACL,MALYD,EAAQ,aAClBf,EAAagB,EAAM,MAAM,OAAOJ,CAAkC,CAAC,EACnEA,EAIF,SAAUC,EACV,SAAUE,EAAQ,cAAgBD,EAAYE,EAAM,SACpD,QAAS,GACT,cAAeN,EAAc,cAAA,KAAA,EAEhC,EAEH,YAAcO,GAAaR,EAAI,KAAO,CAAE,SAAAQ,CAAW,EAAA,EAEnD,WAAY,CAACA,EAAWX,EAAkB,WACxCG,EAAI,KAAO,CAAE,GAAGH,EAAmB,SAAAW,CAAA,EAAW,EAEhD,aAAc,CAACC,EAASC,IAAU,CAEhC,MAAMC,EAA2CF,EAAQ,OACvD,CAACG,EAAKC,KAAY,CAAE,GAAGD,EAAK,CAACC,CAAM,EAAGH,IACtC,CAAC,CAAA,EAGI,OAAAV,EAAKO,IASH,CAAE,MARKA,EAAM,MAAM,IAAKO,GACzBH,EAAeG,EAAK,EAAE,EACjB,CAAE,GAAGA,EAAM,GAAGH,EAAeG,EAAK,EAAE,GAGtCA,CACR,CAEc,EAChB,CACH,CACA,EAAA,CACJ"}
1
+ {"version":3,"file":"store.js","sources":["../../../../src/clients/feed/store.ts"],"sourcesContent":["import { GenericData } from \"@knocklabs/types\";\nimport zustand from \"zustand/vanilla\";\n\nimport { NetworkStatus } from \"../../networkStatus\";\n\nimport { FeedItem } from \"./interfaces\";\nimport { FeedStoreState } from \"./types\";\nimport { deduplicateItems, sortItems } from \"./utils\";\n\n// Get the correct Zustand function. Caused by some issues in v3 exports\n// https://github.com/pmndrs/zustand/issues/334\nconst create: typeof zustand =\n // @ts-expect-error workaround for issue above\n typeof zustand === \"function\" ? zustand : zustand.default;\n\nfunction processItems(items: FeedItem[]) {\n const deduped = deduplicateItems(items);\n const sorted = sortItems(deduped);\n\n return sorted;\n}\n\nconst defaultSetResultOptions = {\n shouldSetPage: true,\n shouldAppend: false,\n};\n\nconst initialStoreState = {\n items: [],\n metadata: {\n total_count: 0,\n unread_count: 0,\n unseen_count: 0,\n },\n pageInfo: {\n before: null,\n after: null,\n page_size: 50,\n },\n};\n\nexport default function createStore() {\n return create<FeedStoreState>((set) => ({\n // Keeps track of all of the items loaded\n ...initialStoreState,\n // The network status indicates what's happening with the request\n networkStatus: NetworkStatus.ready,\n loading: false,\n\n setNetworkStatus: (networkStatus: NetworkStatus) =>\n set(() => ({\n networkStatus,\n loading: networkStatus === NetworkStatus.loading,\n })),\n\n setResult: (\n { entries, meta, page_info },\n options = defaultSetResultOptions,\n ) =>\n set((state) => {\n // We resort the list on set, so concating everything is fine (if a bit suboptimal)\n const items = options.shouldAppend\n ? processItems(state.items.concat(entries as FeedItem<GenericData>[]))\n : entries;\n\n return {\n items,\n metadata: meta,\n pageInfo: options.shouldSetPage ? page_info : state.pageInfo,\n loading: false,\n networkStatus: NetworkStatus.ready,\n };\n }),\n\n setMetadata: (metadata) => set(() => ({ metadata })),\n\n resetStore: (metadata = initialStoreState.metadata) =>\n set(() => ({ ...initialStoreState, metadata })),\n\n setItemAttrs: (itemIds, attrs) => {\n // Create a map for the items to the updates to be made\n const itemUpdatesMap: { [id: string]: object } = itemIds.reduce(\n (acc, itemId) => ({ ...acc, [itemId]: attrs }),\n {},\n );\n\n return set((state) => {\n const items = state.items.map((item) => {\n if (itemUpdatesMap[item.id]) {\n return { ...item, ...itemUpdatesMap[item.id] };\n }\n\n return item;\n });\n\n return { items };\n });\n },\n }));\n}\n"],"names":["create","zustand","processItems","items","deduped","deduplicateItems","sortItems","defaultSetResultOptions","initialStoreState","createStore","set","NetworkStatus","networkStatus","entries","meta","page_info","options","state","metadata","itemIds","attrs","itemUpdatesMap","acc","itemId","item"],"mappings":"2MAWMA,EAEJ,OAAOC,GAAY,WAAaA,EAAUA,EAAQ,QAEpD,SAASC,EAAaC,EAAmB,CACjC,MAAAC,EAAUC,mBAAiBF,CAAK,EAG/B,OAFQG,YAAUF,CAAO,CAGlC,CAEA,MAAMG,EAA0B,CAC9B,cAAe,GACf,aAAc,EAChB,EAEMC,EAAoB,CACxB,MAAO,CAAC,EACR,SAAU,CACR,YAAa,EACb,aAAc,EACd,aAAc,CAChB,EACA,SAAU,CACR,OAAQ,KACR,MAAO,KACP,UAAW,EACb,CACF,EAEA,SAAwBC,GAAc,CAC7B,OAAAT,EAAwBU,IAAS,CAEtC,GAAGF,EAEH,cAAeG,EAAc,cAAA,MAC7B,QAAS,GAET,iBAAmBC,GACjBF,EAAI,KAAO,CAAA,cACTE,EACA,QAASA,IAAkBD,EAAAA,cAAc,OAAA,EACzC,EAEJ,UAAW,CACT,CAAE,QAAAE,EAAS,KAAAC,EAAM,UAAAC,GACjBC,EAAUT,IAEVG,EAAKO,IAMI,CACL,MALYD,EAAQ,aAClBd,EAAae,EAAM,MAAM,OAAOJ,CAAkC,CAAC,EACnEA,EAIF,SAAUC,EACV,SAAUE,EAAQ,cAAgBD,EAAYE,EAAM,SACpD,QAAS,GACT,cAAeN,EAAc,cAAA,KAAA,EAEhC,EAEH,YAAcO,GAAaR,EAAI,KAAO,CAAE,SAAAQ,CAAW,EAAA,EAEnD,WAAY,CAACA,EAAWV,EAAkB,WACxCE,EAAI,KAAO,CAAE,GAAGF,EAAmB,SAAAU,CAAA,EAAW,EAEhD,aAAc,CAACC,EAASC,IAAU,CAEhC,MAAMC,EAA2CF,EAAQ,OACvD,CAACG,EAAKC,KAAY,CAAE,GAAGD,EAAK,CAACC,CAAM,EAAGH,IACtC,CAAC,CAAA,EAGI,OAAAV,EAAKO,IASH,CAAE,MARKA,EAAM,MAAM,IAAKO,GACzBH,EAAeG,EAAK,EAAE,EACjB,CAAE,GAAGA,EAAM,GAAGH,EAAeG,EAAK,EAAE,GAGtCA,CACR,CAEc,EAChB,CACH,CACA,EAAA,CACJ"}
@@ -1,6 +1,10 @@
1
- import l from "zustand/vanilla";
2
- import { NetworkStatus as u } from "../../networkStatus.mjs";
1
+ import u from "zustand/vanilla";
2
+ import { NetworkStatus as d } from "../../networkStatus.mjs";
3
3
  import { deduplicateItems as i, sortItems as c } from "./utils.mjs";
4
+ const f = (
5
+ // @ts-expect-error workaround for issue above
6
+ typeof u == "function" ? u : u.default
7
+ );
4
8
  function m(e) {
5
9
  const t = i(e);
6
10
  return c(t);
@@ -8,7 +12,7 @@ function m(e) {
8
12
  const p = {
9
13
  shouldSetPage: !0,
10
14
  shouldAppend: !1
11
- }, d = {
15
+ }, l = {
12
16
  items: [],
13
17
  metadata: {
14
18
  total_count: 0,
@@ -21,36 +25,36 @@ const p = {
21
25
  page_size: 50
22
26
  }
23
27
  };
24
- function I() {
25
- return l((e) => ({
28
+ function h() {
29
+ return f((e) => ({
26
30
  // Keeps track of all of the items loaded
27
- ...d,
31
+ ...l,
28
32
  // The network status indicates what's happening with the request
29
- networkStatus: u.ready,
33
+ networkStatus: d.ready,
30
34
  loading: !1,
31
35
  setNetworkStatus: (t) => e(() => ({
32
36
  networkStatus: t,
33
- loading: t === u.loading
37
+ loading: t === d.loading
34
38
  })),
35
- setResult: ({ entries: t, meta: s, page_info: n }, a = p) => e((o) => ({
39
+ setResult: ({ entries: t, meta: r, page_info: s }, a = p) => e((o) => ({
36
40
  items: a.shouldAppend ? m(o.items.concat(t)) : t,
37
- metadata: s,
38
- pageInfo: a.shouldSetPage ? n : o.pageInfo,
41
+ metadata: r,
42
+ pageInfo: a.shouldSetPage ? s : o.pageInfo,
39
43
  loading: !1,
40
- networkStatus: u.ready
44
+ networkStatus: d.ready
41
45
  })),
42
46
  setMetadata: (t) => e(() => ({ metadata: t })),
43
- resetStore: (t = d.metadata) => e(() => ({ ...d, metadata: t })),
44
- setItemAttrs: (t, s) => {
45
- const n = t.reduce(
46
- (a, o) => ({ ...a, [o]: s }),
47
+ resetStore: (t = l.metadata) => e(() => ({ ...l, metadata: t })),
48
+ setItemAttrs: (t, r) => {
49
+ const s = t.reduce(
50
+ (a, o) => ({ ...a, [o]: r }),
47
51
  {}
48
52
  );
49
- return e((a) => ({ items: a.items.map((r) => n[r.id] ? { ...r, ...n[r.id] } : r) }));
53
+ return e((a) => ({ items: a.items.map((n) => s[n.id] ? { ...n, ...s[n.id] } : n) }));
50
54
  }
51
55
  }));
52
56
  }
53
57
  export {
54
- I as default
58
+ h as default
55
59
  };
56
60
  //# sourceMappingURL=store.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.mjs","sources":["../../../../src/clients/feed/store.ts"],"sourcesContent":["import { GenericData } from \"@knocklabs/types\";\nimport create from \"zustand/vanilla\";\n\nimport { NetworkStatus } from \"../../networkStatus\";\n\nimport { FeedItem } from \"./interfaces\";\nimport { FeedStoreState } from \"./types\";\nimport { deduplicateItems, sortItems } from \"./utils\";\n\nfunction processItems(items: FeedItem[]) {\n const deduped = deduplicateItems(items);\n const sorted = sortItems(deduped);\n\n return sorted;\n}\n\nconst defaultSetResultOptions = {\n shouldSetPage: true,\n shouldAppend: false,\n};\n\nconst initialStoreState = {\n items: [],\n metadata: {\n total_count: 0,\n unread_count: 0,\n unseen_count: 0,\n },\n pageInfo: {\n before: null,\n after: null,\n page_size: 50,\n },\n};\n\nexport default function createStore() {\n return create<FeedStoreState>((set) => ({\n // Keeps track of all of the items loaded\n ...initialStoreState,\n // The network status indicates what's happening with the request\n networkStatus: NetworkStatus.ready,\n loading: false,\n\n setNetworkStatus: (networkStatus: NetworkStatus) =>\n set(() => ({\n networkStatus,\n loading: networkStatus === NetworkStatus.loading,\n })),\n\n setResult: (\n { entries, meta, page_info },\n options = defaultSetResultOptions,\n ) =>\n set((state) => {\n // We resort the list on set, so concating everything is fine (if a bit suboptimal)\n const items = options.shouldAppend\n ? processItems(state.items.concat(entries as FeedItem<GenericData>[]))\n : entries;\n\n return {\n items,\n metadata: meta,\n pageInfo: options.shouldSetPage ? page_info : state.pageInfo,\n loading: false,\n networkStatus: NetworkStatus.ready,\n };\n }),\n\n setMetadata: (metadata) => set(() => ({ metadata })),\n\n resetStore: (metadata = initialStoreState.metadata) =>\n set(() => ({ ...initialStoreState, metadata })),\n\n setItemAttrs: (itemIds, attrs) => {\n // Create a map for the items to the updates to be made\n const itemUpdatesMap: { [id: string]: object } = itemIds.reduce(\n (acc, itemId) => ({ ...acc, [itemId]: attrs }),\n {},\n );\n\n return set((state) => {\n const items = state.items.map((item) => {\n if (itemUpdatesMap[item.id]) {\n return { ...item, ...itemUpdatesMap[item.id] };\n }\n\n return item;\n });\n\n return { items };\n });\n },\n }));\n}\n"],"names":["processItems","items","deduped","deduplicateItems","sortItems","defaultSetResultOptions","initialStoreState","createStore","create","set","NetworkStatus","networkStatus","entries","meta","page_info","options","state","metadata","itemIds","attrs","itemUpdatesMap","acc","itemId","item"],"mappings":";;;AASA,SAASA,EAAaC,GAAmB;AACjC,QAAAC,IAAUC,EAAiBF,CAAK;AAG/B,SAFQG,EAAUF,CAAO;AAGlC;AAEA,MAAMG,IAA0B;AAAA,EAC9B,eAAe;AAAA,EACf,cAAc;AAChB,GAEMC,IAAoB;AAAA,EACxB,OAAO,CAAC;AAAA,EACR,UAAU;AAAA,IACR,aAAa;AAAA,IACb,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,WAAW;AAAA,EACb;AACF;AAEA,SAAwBC,IAAc;AAC7B,SAAAC,EAAuB,CAACC,OAAS;AAAA;AAAA,IAEtC,GAAGH;AAAA;AAAA,IAEH,eAAeI,EAAc;AAAA,IAC7B,SAAS;AAAA,IAET,kBAAkB,CAACC,MACjBF,EAAI,OAAO;AAAA,MACT,eAAAE;AAAA,MACA,SAASA,MAAkBD,EAAc;AAAA,IAAA,EACzC;AAAA,IAEJ,WAAW,CACT,EAAE,SAAAE,GAAS,MAAAC,GAAM,WAAAC,KACjBC,IAAUV,MAEVI,EAAI,CAACO,OAMI;AAAA,MACL,OALYD,EAAQ,eAClBf,EAAagB,EAAM,MAAM,OAAOJ,CAAkC,CAAC,IACnEA;AAAA,MAIF,UAAUC;AAAA,MACV,UAAUE,EAAQ,gBAAgBD,IAAYE,EAAM;AAAA,MACpD,SAAS;AAAA,MACT,eAAeN,EAAc;AAAA,IAAA,EAEhC;AAAA,IAEH,aAAa,CAACO,MAAaR,EAAI,OAAO,EAAE,UAAAQ,EAAW,EAAA;AAAA,IAEnD,YAAY,CAACA,IAAWX,EAAkB,aACxCG,EAAI,OAAO,EAAE,GAAGH,GAAmB,UAAAW,EAAA,EAAW;AAAA,IAEhD,cAAc,CAACC,GAASC,MAAU;AAEhC,YAAMC,IAA2CF,EAAQ;AAAA,QACvD,CAACG,GAAKC,OAAY,EAAE,GAAGD,GAAK,CAACC,CAAM,GAAGH;QACtC,CAAC;AAAA,MAAA;AAGI,aAAAV,EAAI,CAACO,OASH,EAAE,OARKA,EAAM,MAAM,IAAI,CAACO,MACzBH,EAAeG,EAAK,EAAE,IACjB,EAAE,GAAGA,GAAM,GAAGH,EAAeG,EAAK,EAAE,MAGtCA,CACR,EAEc,EAChB;AAAA,IACH;AAAA,EACA,EAAA;AACJ;"}
1
+ {"version":3,"file":"store.mjs","sources":["../../../../src/clients/feed/store.ts"],"sourcesContent":["import { GenericData } from \"@knocklabs/types\";\nimport zustand from \"zustand/vanilla\";\n\nimport { NetworkStatus } from \"../../networkStatus\";\n\nimport { FeedItem } from \"./interfaces\";\nimport { FeedStoreState } from \"./types\";\nimport { deduplicateItems, sortItems } from \"./utils\";\n\n// Get the correct Zustand function. Caused by some issues in v3 exports\n// https://github.com/pmndrs/zustand/issues/334\nconst create: typeof zustand =\n // @ts-expect-error workaround for issue above\n typeof zustand === \"function\" ? zustand : zustand.default;\n\nfunction processItems(items: FeedItem[]) {\n const deduped = deduplicateItems(items);\n const sorted = sortItems(deduped);\n\n return sorted;\n}\n\nconst defaultSetResultOptions = {\n shouldSetPage: true,\n shouldAppend: false,\n};\n\nconst initialStoreState = {\n items: [],\n metadata: {\n total_count: 0,\n unread_count: 0,\n unseen_count: 0,\n },\n pageInfo: {\n before: null,\n after: null,\n page_size: 50,\n },\n};\n\nexport default function createStore() {\n return create<FeedStoreState>((set) => ({\n // Keeps track of all of the items loaded\n ...initialStoreState,\n // The network status indicates what's happening with the request\n networkStatus: NetworkStatus.ready,\n loading: false,\n\n setNetworkStatus: (networkStatus: NetworkStatus) =>\n set(() => ({\n networkStatus,\n loading: networkStatus === NetworkStatus.loading,\n })),\n\n setResult: (\n { entries, meta, page_info },\n options = defaultSetResultOptions,\n ) =>\n set((state) => {\n // We resort the list on set, so concating everything is fine (if a bit suboptimal)\n const items = options.shouldAppend\n ? processItems(state.items.concat(entries as FeedItem<GenericData>[]))\n : entries;\n\n return {\n items,\n metadata: meta,\n pageInfo: options.shouldSetPage ? page_info : state.pageInfo,\n loading: false,\n networkStatus: NetworkStatus.ready,\n };\n }),\n\n setMetadata: (metadata) => set(() => ({ metadata })),\n\n resetStore: (metadata = initialStoreState.metadata) =>\n set(() => ({ ...initialStoreState, metadata })),\n\n setItemAttrs: (itemIds, attrs) => {\n // Create a map for the items to the updates to be made\n const itemUpdatesMap: { [id: string]: object } = itemIds.reduce(\n (acc, itemId) => ({ ...acc, [itemId]: attrs }),\n {},\n );\n\n return set((state) => {\n const items = state.items.map((item) => {\n if (itemUpdatesMap[item.id]) {\n return { ...item, ...itemUpdatesMap[item.id] };\n }\n\n return item;\n });\n\n return { items };\n });\n },\n }));\n}\n"],"names":["create","zustand","processItems","items","deduped","deduplicateItems","sortItems","defaultSetResultOptions","initialStoreState","createStore","set","NetworkStatus","networkStatus","entries","meta","page_info","options","state","metadata","itemIds","attrs","itemUpdatesMap","acc","itemId","item"],"mappings":";;;AAWA,MAAMA;AAAA;AAAA,EAEJ,OAAOC,KAAY,aAAaA,IAAUA,EAAQ;AAAA;AAEpD,SAASC,EAAaC,GAAmB;AACjC,QAAAC,IAAUC,EAAiBF,CAAK;AAG/B,SAFQG,EAAUF,CAAO;AAGlC;AAEA,MAAMG,IAA0B;AAAA,EAC9B,eAAe;AAAA,EACf,cAAc;AAChB,GAEMC,IAAoB;AAAA,EACxB,OAAO,CAAC;AAAA,EACR,UAAU;AAAA,IACR,aAAa;AAAA,IACb,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EACA,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,WAAW;AAAA,EACb;AACF;AAEA,SAAwBC,IAAc;AAC7B,SAAAT,EAAuB,CAACU,OAAS;AAAA;AAAA,IAEtC,GAAGF;AAAA;AAAA,IAEH,eAAeG,EAAc;AAAA,IAC7B,SAAS;AAAA,IAET,kBAAkB,CAACC,MACjBF,EAAI,OAAO;AAAA,MACT,eAAAE;AAAA,MACA,SAASA,MAAkBD,EAAc;AAAA,IAAA,EACzC;AAAA,IAEJ,WAAW,CACT,EAAE,SAAAE,GAAS,MAAAC,GAAM,WAAAC,KACjBC,IAAUT,MAEVG,EAAI,CAACO,OAMI;AAAA,MACL,OALYD,EAAQ,eAClBd,EAAae,EAAM,MAAM,OAAOJ,CAAkC,CAAC,IACnEA;AAAA,MAIF,UAAUC;AAAA,MACV,UAAUE,EAAQ,gBAAgBD,IAAYE,EAAM;AAAA,MACpD,SAAS;AAAA,MACT,eAAeN,EAAc;AAAA,IAAA,EAEhC;AAAA,IAEH,aAAa,CAACO,MAAaR,EAAI,OAAO,EAAE,UAAAQ,EAAW,EAAA;AAAA,IAEnD,YAAY,CAACA,IAAWV,EAAkB,aACxCE,EAAI,OAAO,EAAE,GAAGF,GAAmB,UAAAU,EAAA,EAAW;AAAA,IAEhD,cAAc,CAACC,GAASC,MAAU;AAEhC,YAAMC,IAA2CF,EAAQ;AAAA,QACvD,CAACG,GAAKC,OAAY,EAAE,GAAGD,GAAK,CAACC,CAAM,GAAGH;QACtC,CAAC;AAAA,MAAA;AAGI,aAAAV,EAAI,CAACO,OASH,EAAE,OARKA,EAAM,MAAM,IAAI,CAACO,MACzBH,EAAeG,EAAK,EAAE,IACjB,EAAE,GAAGA,GAAM,GAAGH,EAAeG,EAAK,EAAE,MAGtCA,CACR,EAEc,EAChB;AAAA,IACH;AAAA,EACA,EAAA;AACJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/clients/feed/store.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA6BzC,MAAM,CAAC,OAAO,UAAU,WAAW,uDA0DlC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/clients/feed/store.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAmCzC,MAAM,CAAC,OAAO,UAAU,WAAW,uDA0DlC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knocklabs/client",
3
- "version": "0.10.10",
3
+ "version": "0.10.11",
4
4
  "description": "The clientside library for interacting with Knock",
5
5
  "homepage": "https://github.com/knocklabs/javascript/tree/main/packages/client",
6
6
  "author": "@knocklabs",
@@ -1,5 +1,5 @@
1
1
  import { GenericData } from "@knocklabs/types";
2
- import create from "zustand/vanilla";
2
+ import zustand from "zustand/vanilla";
3
3
 
4
4
  import { NetworkStatus } from "../../networkStatus";
5
5
 
@@ -7,6 +7,12 @@ import { FeedItem } from "./interfaces";
7
7
  import { FeedStoreState } from "./types";
8
8
  import { deduplicateItems, sortItems } from "./utils";
9
9
 
10
+ // Get the correct Zustand function. Caused by some issues in v3 exports
11
+ // https://github.com/pmndrs/zustand/issues/334
12
+ const create: typeof zustand =
13
+ // @ts-expect-error workaround for issue above
14
+ typeof zustand === "function" ? zustand : zustand.default;
15
+
10
16
  function processItems(items: FeedItem[]) {
11
17
  const deduped = deduplicateItems(items);
12
18
  const sorted = sortItems(deduped);