woodsportal-client-sdk 1.1.4-dev.2 → 1.1.4-dev.21

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/README.md CHANGED
@@ -175,7 +175,53 @@ cd path/to/your-app
175
175
  npm link woodsportal-client-sdk
176
176
  ```
177
177
 
178
- Consume with the same import path as npm: `import { api } from "woodsportal-client-sdk"`.
178
+ Consume with the same import paths as npm:
179
+
180
+ ```ts
181
+ import { api } from "woodsportal-client-sdk";
182
+ import { useTable, useSync } from "woodsportal-client-sdk/react";
183
+ // import { useTable, useSync } from "woodsportal-client-sdk/vue";
184
+ // import { useTable, useSync } from "woodsportal-client-sdk/angular";
185
+ ```
186
+
187
+ After `npm run build`, the main entry and framework adapters (`/react`, `/vue`, `/angular`) share one `store2` state via ESM code-splitting — API calls like `api.objects.list()` update the same stores your composables subscribe to.
188
+
189
+ ### React
190
+
191
+ ```tsx
192
+ import { useTable } from "woodsportal-client-sdk/react";
193
+
194
+ function ObjectsTable() {
195
+ const table = useTable();
196
+ // table.tableData, table.setTableData(...)
197
+ }
198
+ ```
199
+
200
+ ### Vue 3
201
+
202
+ Call composables inside `setup()` (or `<script setup>`):
203
+
204
+ ```vue
205
+ <script setup lang="ts">
206
+ import { useTable } from "woodsportal-client-sdk/vue";
207
+
208
+ const table = useTable();
209
+ </script>
210
+ ```
211
+
212
+ ### Angular (16+)
213
+
214
+ Call composables in an injection context (constructor, field initializer, or `runInInjectionContext`):
215
+
216
+ ```typescript
217
+ import { Component } from "@angular/core";
218
+ import { useTable } from "woodsportal-client-sdk/angular";
219
+
220
+ @Component({ /* ... */ })
221
+ export class ObjectsTableComponent {
222
+ readonly table = useTable();
223
+ }
224
+ ```
179
225
 
180
226
  ---
181
227
 
@@ -0,0 +1,22 @@
1
+ import { E as EmailState, N as NoteState, S as SyncState, T as TableState } from '../../use-sync-Bk2Gp5Ws.js';
2
+
3
+ declare const useTable: () => TableState & {
4
+ setTableData(response: any): void;
5
+ setTablePrependData(response: any): Promise<void>;
6
+ };
7
+ declare const useNote: () => NoteState & {
8
+ setNotes(response: any): void;
9
+ setPrependNote(response: any): Promise<void>;
10
+ };
11
+ declare const useEmail: () => EmailState & {
12
+ setEmails(response: any): void;
13
+ setPrependEmail(response: any): Promise<void>;
14
+ };
15
+ declare const useSync: () => SyncState & {
16
+ setIsSyncLoading(status: boolean): void;
17
+ setSync(status: boolean): void;
18
+ setApiSync(status: boolean): void;
19
+ setSyncDisable(status: boolean): void;
20
+ };
21
+
22
+ export { useEmail, useNote, useSync, useTable };
@@ -0,0 +1,34 @@
1
+ import { bindStoreWithActions } from '../../chunk-Y5MRAAGK.js';
2
+ import { createAdapterHooks } from '../../chunk-LEUQDA4M.js';
3
+ import '../../chunk-FLAVLYA3.js';
4
+ import '../../chunk-PZ5AY32C.js';
5
+ import { inject, DestroyRef, signal } from '@angular/core';
6
+
7
+ function createAngularStoreComposable(store, actions) {
8
+ return function useStore() {
9
+ const destroyRef = inject(DestroyRef);
10
+ const binding = bindStoreWithActions(store, actions);
11
+ const snapshot = signal(binding.getSnapshot());
12
+ destroyRef.onDestroy(
13
+ binding.subscribe(() => {
14
+ snapshot.set(binding.getSnapshot());
15
+ })
16
+ );
17
+ return new Proxy({}, {
18
+ get(_target, prop) {
19
+ const key = String(prop);
20
+ if (key in actions) {
21
+ return actions[key];
22
+ }
23
+ return snapshot()[key];
24
+ }
25
+ });
26
+ };
27
+ }
28
+
29
+ // src/adapters/angular/index.ts
30
+ var { useTable, useNote, useEmail, useSync } = createAdapterHooks(createAngularStoreComposable);
31
+
32
+ export { useEmail, useNote, useSync, useTable };
33
+ //# sourceMappingURL=index.js.map
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/adapters/shared/createAngularComposable.ts","../../../src/adapters/angular/index.ts"],"names":[],"mappings":";;;;;;AAGO,SAAS,4BAAA,CAGd,OAAkC,OAAA,EAAmB;AACnD,EAAA,OAAO,SAAS,QAAA,GAA8B;AAC1C,IAAA,MAAM,UAAA,GAAa,OAAO,UAAU,CAAA;AACpC,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,KAAA,EAAO,OAAO,CAAA;AACnD,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,CAAQ,WAAA,EAAa,CAAA;AAE7C,IAAA,UAAA,CAAW,SAAA;AAAA,MACP,OAAA,CAAQ,UAAU,MAAM;AACpB,QAAA,QAAA,CAAS,GAAA,CAAI,OAAA,CAAQ,WAAA,EAAa,CAAA;AAAA,MACtC,CAAC;AAAA,KACL;AAEA,IAAA,OAAO,IAAI,KAAA,CAAM,EAAC,EAAwB;AAAA,MACtC,GAAA,CAAI,SAAS,IAAA,EAAM;AACf,QAAA,MAAM,GAAA,GAAM,OAAO,IAAI,CAAA;AACvB,QAAA,IAAI,OAAO,OAAA,EAAS;AAChB,UAAA,OAAQ,QAAoC,GAAG,CAAA;AAAA,QACnD;AACA,QAAA,OAAO,QAAA,GAAW,GAAmB,CAAA;AAAA,MACzC;AAAA,KACH,CAAA;AAAA,EACL,CAAA;AACJ;;;ACzBO,IAAM,EAAE,QAAA,EAAU,OAAA,EAAS,UAAU,OAAA,EAAQ,GAAI,mBAAmB,4BAA4B","file":"index.js","sourcesContent":["import { DestroyRef, inject, signal } from \"@angular/core\";\nimport { bindStoreWithActions, type SubscribableStore } from \"./bindStoreWithActions\";\n\nexport function createAngularStoreComposable<\n TState extends object,\n TActions extends object,\n>(store: SubscribableStore<TState>, actions: TActions) {\n return function useStore(): TState & TActions {\n const destroyRef = inject(DestroyRef);\n const binding = bindStoreWithActions(store, actions);\n const snapshot = signal(binding.getSnapshot());\n\n destroyRef.onDestroy(\n binding.subscribe(() => {\n snapshot.set(binding.getSnapshot());\n }),\n );\n\n return new Proxy({} as TState & TActions, {\n get(_target, prop) {\n const key = String(prop);\n if (key in actions) {\n return (actions as Record<string, unknown>)[key];\n }\n return snapshot()[key as keyof TState];\n },\n });\n };\n}\n","import { createAdapterHooks } from \"../shared/createAdapterHooks\";\nimport { createAngularStoreComposable } from \"../shared/createAngularComposable\";\n\nexport const { useTable, useNote, useEmail, useSync } = createAdapterHooks(createAngularStoreComposable);\n"]}
@@ -0,0 +1,22 @@
1
+ import { E as EmailState, N as NoteState, S as SyncState, T as TableState } from '../../use-sync-Bk2Gp5Ws.js';
2
+
3
+ declare const useTable: () => TableState & {
4
+ setTableData(response: any): void;
5
+ setTablePrependData(response: any): Promise<void>;
6
+ };
7
+ declare const useNote: () => NoteState & {
8
+ setNotes(response: any): void;
9
+ setPrependNote(response: any): Promise<void>;
10
+ };
11
+ declare const useEmail: () => EmailState & {
12
+ setEmails(response: any): void;
13
+ setPrependEmail(response: any): Promise<void>;
14
+ };
15
+ declare const useSync: () => SyncState & {
16
+ setIsSyncLoading(status: boolean): void;
17
+ setSync(status: boolean): void;
18
+ setApiSync(status: boolean): void;
19
+ setSyncDisable(status: boolean): void;
20
+ };
21
+
22
+ export { useEmail, useNote, useSync, useTable };
@@ -0,0 +1,18 @@
1
+ import { createAdapterHooks } from '../../chunk-LEUQDA4M.js';
2
+ import '../../chunk-FLAVLYA3.js';
3
+ import '../../chunk-PZ5AY32C.js';
4
+ import { useSyncExternalStore } from 'react';
5
+
6
+ function createReactStoreComposable(store, actions) {
7
+ return function useStore() {
8
+ const state = useSyncExternalStore(store.subscribe, store.getState, store.getState);
9
+ return { ...state, ...actions };
10
+ };
11
+ }
12
+
13
+ // src/adapters/react/index.ts
14
+ var { useTable, useNote, useEmail, useSync } = createAdapterHooks(createReactStoreComposable);
15
+
16
+ export { useEmail, useNote, useSync, useTable };
17
+ //# sourceMappingURL=index.js.map
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/adapters/shared/createReactComposable.ts","../../../src/adapters/react/index.ts"],"names":[],"mappings":";;;;;AAGO,SAAS,0BAAA,CAGd,OAAkC,OAAA,EAAmB;AACnD,EAAA,OAAO,SAAS,QAAA,GAA8B;AAC1C,IAAA,MAAM,QAAQ,oBAAA,CAAqB,KAAA,CAAM,WAAW,KAAA,CAAM,QAAA,EAAU,MAAM,QAAQ,CAAA;AAClF,IAAA,OAAO,EAAE,GAAG,KAAA,EAAO,GAAG,OAAA,EAAQ;AAAA,EAClC,CAAA;AACJ;;;ACRO,IAAM,EAAE,QAAA,EAAU,OAAA,EAAS,UAAU,OAAA,EAAQ,GAAI,mBAAmB,0BAA0B","file":"index.js","sourcesContent":["import { useSyncExternalStore } from \"react\";\nimport type { SubscribableStore } from \"./bindStoreWithActions\";\n\nexport function createReactStoreComposable<\n TState extends object,\n TActions extends object,\n>(store: SubscribableStore<TState>, actions: TActions) {\n return function useStore(): TState & TActions {\n const state = useSyncExternalStore(store.subscribe, store.getState, store.getState);\n return { ...state, ...actions };\n };\n}\n","import { createAdapterHooks } from \"../shared/createAdapterHooks\";\nimport { createReactStoreComposable } from \"../shared/createReactComposable\";\n\nexport const { useTable, useNote, useEmail, useSync } = createAdapterHooks(createReactStoreComposable);\n"]}
@@ -0,0 +1,22 @@
1
+ import { E as EmailState, N as NoteState, S as SyncState, T as TableState } from '../../use-sync-Bk2Gp5Ws.js';
2
+
3
+ declare const useTable: () => TableState & {
4
+ setTableData(response: any): void;
5
+ setTablePrependData(response: any): Promise<void>;
6
+ };
7
+ declare const useNote: () => NoteState & {
8
+ setNotes(response: any): void;
9
+ setPrependNote(response: any): Promise<void>;
10
+ };
11
+ declare const useEmail: () => EmailState & {
12
+ setEmails(response: any): void;
13
+ setPrependEmail(response: any): Promise<void>;
14
+ };
15
+ declare const useSync: () => SyncState & {
16
+ setIsSyncLoading(status: boolean): void;
17
+ setSync(status: boolean): void;
18
+ setApiSync(status: boolean): void;
19
+ setSyncDisable(status: boolean): void;
20
+ };
21
+
22
+ export { useEmail, useNote, useSync, useTable };
@@ -0,0 +1,25 @@
1
+ import { bindStoreWithActions } from '../../chunk-Y5MRAAGK.js';
2
+ import { createAdapterHooks } from '../../chunk-LEUQDA4M.js';
3
+ import '../../chunk-FLAVLYA3.js';
4
+ import '../../chunk-PZ5AY32C.js';
5
+ import { reactive, onScopeDispose } from 'vue';
6
+
7
+ function createVueStoreComposable(store, actions) {
8
+ return function useStore() {
9
+ const binding = bindStoreWithActions(store, actions);
10
+ const state = reactive(binding.getSnapshot());
11
+ onScopeDispose(
12
+ binding.subscribe(() => {
13
+ Object.assign(state, binding.getSnapshot());
14
+ })
15
+ );
16
+ return state;
17
+ };
18
+ }
19
+
20
+ // src/adapters/vue/index.ts
21
+ var { useTable, useNote, useEmail, useSync } = createAdapterHooks(createVueStoreComposable);
22
+
23
+ export { useEmail, useNote, useSync, useTable };
24
+ //# sourceMappingURL=index.js.map
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/adapters/shared/createVueComposable.ts","../../../src/adapters/vue/index.ts"],"names":[],"mappings":";;;;;;AAGO,SAAS,wBAAA,CAGd,OAAkC,OAAA,EAAmB;AACnD,EAAA,OAAO,SAAS,QAAA,GAA8B;AAC1C,IAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,KAAA,EAAO,OAAO,CAAA;AACnD,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,OAAA,CAAQ,WAAA,EAAa,CAAA;AAE5C,IAAA,cAAA;AAAA,MACI,OAAA,CAAQ,UAAU,MAAM;AACpB,QAAA,MAAA,CAAO,MAAA,CAAO,KAAA,EAAO,OAAA,CAAQ,WAAA,EAAa,CAAA;AAAA,MAC9C,CAAC;AAAA,KACL;AAEA,IAAA,OAAO,KAAA;AAAA,EACX,CAAA;AACJ;;;AChBO,IAAM,EAAE,QAAA,EAAU,OAAA,EAAS,UAAU,OAAA,EAAQ,GAAI,mBAAmB,wBAAwB","file":"index.js","sourcesContent":["import { onScopeDispose, reactive } from \"vue\";\nimport { bindStoreWithActions, type SubscribableStore } from \"./bindStoreWithActions\";\n\nexport function createVueStoreComposable<\n TState extends object,\n TActions extends object,\n>(store: SubscribableStore<TState>, actions: TActions) {\n return function useStore(): TState & TActions {\n const binding = bindStoreWithActions(store, actions);\n const state = reactive(binding.getSnapshot()) as TState & TActions;\n\n onScopeDispose(\n binding.subscribe(() => {\n Object.assign(state, binding.getSnapshot());\n }),\n );\n\n return state;\n };\n}\n","import { createAdapterHooks } from \"../shared/createAdapterHooks\";\nimport { createVueStoreComposable } from \"../shared/createVueComposable\";\n\nexport const { useTable, useNote, useEmail, useSync } = createAdapterHooks(createVueStoreComposable);\n"]}
@@ -0,0 +1,4 @@
1
+ export { getPortal, getProfile, getRefreshToken, getSubscriptionType, setAccessToken, setLoggedInDetails, setPortal, setRefreshToken, setSubscriptionType } from './chunk-FLWPTIGZ.js';
2
+ import './chunk-PZ5AY32C.js';
3
+ //# sourceMappingURL=auth-utils-5SMVN55N.js.map
4
+ //# sourceMappingURL=auth-utils-5SMVN55N.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"auth-utils-5SMVN55N.js"}
@@ -0,0 +1,171 @@
1
+ // src/store2/store.ts
2
+ function createStore(initialState) {
3
+ let state = initialState;
4
+ const listeners = /* @__PURE__ */ new Set();
5
+ return {
6
+ getState() {
7
+ return state;
8
+ },
9
+ setState(partial) {
10
+ state = {
11
+ ...state,
12
+ ...partial
13
+ };
14
+ listeners.forEach(
15
+ (listener) => listener(state)
16
+ );
17
+ },
18
+ subscribe(listener) {
19
+ listeners.add(listener);
20
+ return () => listeners.delete(listener);
21
+ }
22
+ };
23
+ }
24
+
25
+ // src/store2/use-table.ts
26
+ var tableStore = createStore({
27
+ tableData: [],
28
+ tablePrependData: []
29
+ });
30
+ var actions = {
31
+ setTableData(response) {
32
+ tableStore.setState({
33
+ tableData: response
34
+ });
35
+ },
36
+ async setTablePrependData(response) {
37
+ const state = tableStore.getState();
38
+ let rows = [];
39
+ if (response === "loading") {
40
+ const row = await state.tableData?.data?.results?.columns.reduce((acc, item) => {
41
+ if (!item.hidden) {
42
+ acc[item.key] = "loading";
43
+ }
44
+ return acc;
45
+ }, {});
46
+ rows = [row, ...state.tablePrependData];
47
+ } else if (response?.data) {
48
+ const data = response?.data;
49
+ if (!data) {
50
+ tableStore.setState({
51
+ tablePrependData: []
52
+ });
53
+ }
54
+ const row = await Object.fromEntries(
55
+ Object.entries(data).map(([key, value]) => [
56
+ key,
57
+ value?.value ?? value
58
+ ])
59
+ );
60
+ rows = [...state.tablePrependData];
61
+ if (rows.length > 0) {
62
+ rows[0] = row;
63
+ } else {
64
+ rows.push(row);
65
+ }
66
+ }
67
+ tableStore.setState({
68
+ tablePrependData: rows
69
+ });
70
+ }
71
+ };
72
+
73
+ // src/store2/use-note.ts
74
+ var noteStore = createStore({
75
+ notes: [],
76
+ prependNotes: []
77
+ });
78
+ var actions2 = {
79
+ setNotes(response) {
80
+ noteStore.setState({
81
+ notes: response
82
+ });
83
+ },
84
+ async setPrependNote(response) {
85
+ const state = noteStore.getState();
86
+ let rows = [];
87
+ if (response === "loading") {
88
+ const row = await state.notes?.data?.results?.columns.reduce((acc, item) => {
89
+ if (!item.hidden) {
90
+ acc[item.key] = "loading";
91
+ }
92
+ return acc;
93
+ }, {});
94
+ rows = [row, ...state.prependNotes];
95
+ } else if (response?.data) {
96
+ const data = response?.data;
97
+ if (!data) {
98
+ noteStore.setState({
99
+ prependNotes: []
100
+ });
101
+ }
102
+ const row = await Object.fromEntries(
103
+ Object.entries(data).map(([key, value]) => [
104
+ key,
105
+ value?.value ?? value
106
+ ])
107
+ );
108
+ rows = [...state.prependNotes];
109
+ if (rows.length > 0) {
110
+ rows[0] = row;
111
+ } else {
112
+ rows.push(row);
113
+ }
114
+ }
115
+ noteStore.setState({
116
+ prependNotes: rows
117
+ });
118
+ }
119
+ };
120
+
121
+ // src/store2/use-email.ts
122
+ var emailStore = createStore({
123
+ emails: [],
124
+ prependEmails: []
125
+ });
126
+ var actions3 = {
127
+ setEmails(response) {
128
+ emailStore.setState({
129
+ emails: response
130
+ });
131
+ },
132
+ async setPrependEmail(response) {
133
+ const state = emailStore.getState();
134
+ let rows = [];
135
+ if (response === "loading") {
136
+ const row = await state.emails?.data?.results?.columns.reduce((acc, item) => {
137
+ if (!item.hidden) {
138
+ acc[item.key] = "loading";
139
+ }
140
+ return acc;
141
+ }, {});
142
+ rows = [row, ...state.prependEmails];
143
+ } else if (response?.data) {
144
+ const data = response?.data;
145
+ if (!data) {
146
+ emailStore.setState({
147
+ prependEmails: []
148
+ });
149
+ }
150
+ const row = await Object.fromEntries(
151
+ Object.entries(data).map(([key, value]) => [
152
+ key,
153
+ value?.value ?? value
154
+ ])
155
+ );
156
+ rows = [...state.prependEmails];
157
+ if (rows.length > 0) {
158
+ rows[0] = row;
159
+ } else {
160
+ rows.push(row);
161
+ }
162
+ }
163
+ emailStore.setState({
164
+ prependEmails: rows
165
+ });
166
+ }
167
+ };
168
+
169
+ export { actions, actions2, actions3, createStore, emailStore, noteStore, tableStore };
170
+ //# sourceMappingURL=chunk-FLAVLYA3.js.map
171
+ //# sourceMappingURL=chunk-FLAVLYA3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/store2/store.ts","../src/store2/use-table.ts","../src/store2/use-note.ts","../src/store2/use-email.ts"],"names":["actions"],"mappings":"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","file":"chunk-FLAVLYA3.js","sourcesContent":["type Listener<T> = (state: T) => void;\n\nexport function createStore<T>(initialState: T) {\n let state = initialState;\n\n const listeners = new Set<Listener<T>>();\n\n return {\n getState() {\n return state;\n },\n\n setState(partial: Partial<T>) {\n state = {\n ...state,\n ...partial,\n };\n\n listeners.forEach((listener) =>\n listener(state)\n );\n },\n\n subscribe(listener: Listener<T>) {\n listeners.add(listener);\n\n return () => listeners.delete(listener);\n },\n };\n}","import { createStore } from \"./store\";\n\nexport interface TableState {\n tableData: any;\n tablePrependData: any[];\n}\n\nexport const tableStore = createStore<TableState>({\n tableData: [],\n tablePrependData: [],\n});\n\nexport const actions = {\n\n setTableData(\n response: any\n ) {\n // tableStore.setState({\n // tablePrependData: []\n // });\n\n tableStore.setState({\n tableData: response,\n });\n },\n\n async setTablePrependData(\n response: any\n ) {\n const state: any = tableStore.getState();\n let rows: any = [];\n\n if (response === 'loading') { // set empty loading columns\n const row = await state.tableData?.data?.results?.columns.reduce((acc: any, item: any) => {\n if (!item.hidden) {\n acc[item.key] = \"loading\";\n }\n return acc;\n }, {});\n rows = [row, ...state.tablePrependData];\n } else if (response?.data) { // set real columns data\n\n const data = response?.data\n if (!data) {\n tableStore.setState({\n tablePrependData: []\n });\n }\n\n const row = await Object.fromEntries(\n Object.entries(data).map(([key, value]: any) => [\n key,\n value?.value ?? value,\n ])\n );\n\n rows = [...state.tablePrependData];\n // replace empty loading columns with real data\n if (rows.length > 0) {\n rows[0] = row;\n } else {\n rows.push(row);\n }\n }\n\n tableStore.setState({\n tablePrependData: rows\n });\n }\n}","import { createStore } from \"./store\";\n\nexport interface NoteState {\n notes: any;\n prependNotes: any[];\n}\n\nexport const noteStore = createStore<NoteState>({\n notes: [],\n prependNotes: [],\n});\n\nexport const actions = {\n\n setNotes(\n response: any\n ) {\n // noteStore.setState({\n // prependNotes: []\n // });\n\n noteStore.setState({\n notes: response,\n });\n },\n\n async setPrependNote(\n response: any\n ) {\n const state: any = noteStore.getState();\n let rows: any = [];\n\n if (response === 'loading') { // set empty loading columns\n const row = await state.notes?.data?.results?.columns.reduce((acc: any, item: any) => {\n if (!item.hidden) {\n acc[item.key] = \"loading\";\n }\n return acc;\n }, {});\n rows = [row, ...state.prependNotes];\n } else if (response?.data) { // set real columns data\n\n const data = response?.data\n if (!data) {\n noteStore.setState({\n prependNotes: []\n });\n }\n\n const row = await Object.fromEntries(\n Object.entries(data).map(([key, value]: any) => [\n key,\n value?.value ?? value,\n ])\n );\n\n rows = [...state.prependNotes];\n // replace empty loading columns with real data\n if (rows.length > 0) {\n rows[0] = row;\n } else {\n rows.push(row);\n }\n }\n\n noteStore.setState({\n prependNotes: rows\n });\n }\n}","import { createStore } from \"./store\";\n\nexport interface EmailState {\n emails: any;\n prependEmails: any[];\n}\n\nexport const emailStore = createStore<EmailState>({\n emails: [],\n prependEmails: [],\n});\n\nexport const actions = {\n\n setEmails(\n response: any\n ) {\n // emailStore.setState({\n // prependEmails: []\n // });\n\n emailStore.setState({\n emails: response,\n });\n },\n\n async setPrependEmail(\n response: any\n ) {\n const state: any = emailStore.getState();\n let rows: any = [];\n\n if (response === 'loading') { // set empty loading columns\n const row = await state.emails?.data?.results?.columns.reduce((acc: any, item: any) => {\n if (!item.hidden) {\n acc[item.key] = \"loading\";\n }\n return acc;\n }, {});\n rows = [row, ...state.prependEmails];\n } else if (response?.data) { // set real columns data\n\n const data = response?.data\n if (!data) {\n emailStore.setState({\n prependEmails: []\n });\n }\n\n const row = await Object.fromEntries(\n Object.entries(data).map(([key, value]: any) => [\n key,\n value?.value ?? value,\n ])\n );\n\n rows = [...state.prependEmails];\n // replace empty loading columns with real data\n if (rows.length > 0) {\n rows[0] = row;\n } else {\n rows.push(row);\n }\n }\n\n emailStore.setState({\n prependEmails: rows\n });\n }\n}"]}
@@ -0,0 +1,126 @@
1
+ import Cookies from 'js-cookie';
2
+
3
+ // src/utils/constants.ts
4
+ var LOGIN_DETAILS = "loginDetails";
5
+ var REFRESH_TOKEN = "refreshToken";
6
+ var PORTAL = "portal";
7
+ var SUBSCRIPTION_TYPE = "ssubscriptionType";
8
+ var HUBSPOT_DATA = "hubSpotData";
9
+ var HUB_ID = "hubId";
10
+ var DEV_PORTAL_ID = "devPortalId";
11
+ var PORTAL_ID = "portalId";
12
+ var DEV_API_URL = "devApiUrl";
13
+ var setCookie = (key, value, expire) => {
14
+ return Cookies.set(key, value, {
15
+ expires: expire,
16
+ sameSite: "none",
17
+ secure: true
18
+ });
19
+ };
20
+ var getCookie = (key) => {
21
+ return Cookies.get(key);
22
+ };
23
+ var removeAllCookie = () => {
24
+ Object.keys(Cookies.get()).forEach((cookieName) => {
25
+ Cookies.remove(cookieName);
26
+ });
27
+ };
28
+ var isCookieExpired = (key) => {
29
+ const value = Cookies.get(key);
30
+ try {
31
+ const { expiresAt } = JSON.parse(value);
32
+ return Date.now() > expiresAt ? true : false;
33
+ } catch {
34
+ return false;
35
+ }
36
+ };
37
+
38
+ // src/client/token-store.ts
39
+ var accessToken = null;
40
+ var tokenExpiresAt = null;
41
+ var refreshCallback = null;
42
+ function getAccessToken() {
43
+ return accessToken;
44
+ }
45
+ function storAccessToken(token, expiresIn) {
46
+ accessToken = token;
47
+ if (expiresIn) {
48
+ tokenExpiresAt = Date.now() + expiresIn * 1e3;
49
+ } else {
50
+ tokenExpiresAt = null;
51
+ }
52
+ }
53
+ function clearAccessToken() {
54
+ accessToken = null;
55
+ tokenExpiresAt = null;
56
+ }
57
+ function isExpiresAccessToken() {
58
+ if (!tokenExpiresAt) return true;
59
+ return Date.now() >= tokenExpiresAt;
60
+ }
61
+ function setRefreshCallback(callback) {
62
+ refreshCallback = callback;
63
+ }
64
+ async function ensureValidRefresh() {
65
+ if (isExpiresAccessToken() && refreshCallback) {
66
+ const { getRefreshToken: getRefreshToken2 } = await import('./auth-utils-5SMVN55N.js');
67
+ const refreshToken = getRefreshToken2();
68
+ if (refreshToken) {
69
+ await refreshCallback(refreshToken);
70
+ }
71
+ }
72
+ }
73
+ function isAuthenticateApp() {
74
+ if (isCookieExpired(REFRESH_TOKEN) || isExpiresAccessToken()) {
75
+ return false;
76
+ }
77
+ return true;
78
+ }
79
+
80
+ // src/client/auth-utils.ts
81
+ var setLoggedInDetails = async (data) => {
82
+ return new Promise((resolve) => {
83
+ setCookie(LOGIN_DETAILS, JSON.stringify(data));
84
+ resolve();
85
+ });
86
+ };
87
+ function setRefreshToken(token, expiresAt) {
88
+ return new Promise((resolve) => {
89
+ setCookie(REFRESH_TOKEN, JSON.stringify(token), expiresAt);
90
+ resolve();
91
+ });
92
+ }
93
+ function setAccessToken(token, expiresIn) {
94
+ return new Promise((resolve) => {
95
+ storAccessToken(token, expiresIn);
96
+ resolve();
97
+ });
98
+ }
99
+ var setPortal = async (data) => {
100
+ return new Promise((resolve) => {
101
+ setCookie(PORTAL, JSON.stringify(data));
102
+ resolve();
103
+ });
104
+ };
105
+ var setSubscriptionType = async (data) => {
106
+ return new Promise((resolve) => {
107
+ setCookie(SUBSCRIPTION_TYPE, JSON.stringify(data));
108
+ resolve();
109
+ });
110
+ };
111
+ function getProfile() {
112
+ return JSON.parse(getCookie(LOGIN_DETAILS) || null);
113
+ }
114
+ function getRefreshToken() {
115
+ return JSON.parse(getCookie(REFRESH_TOKEN) || null);
116
+ }
117
+ function getPortal() {
118
+ return JSON.parse(getCookie(PORTAL) || null);
119
+ }
120
+ function getSubscriptionType() {
121
+ return JSON.parse(getCookie(SUBSCRIPTION_TYPE) || null);
122
+ }
123
+
124
+ export { DEV_API_URL, DEV_PORTAL_ID, HUBSPOT_DATA, HUB_ID, PORTAL_ID, clearAccessToken, ensureValidRefresh, getAccessToken, getCookie, getPortal, getProfile, getRefreshToken, getSubscriptionType, isAuthenticateApp, isCookieExpired, isExpiresAccessToken, removeAllCookie, setAccessToken, setLoggedInDetails, setPortal, setRefreshCallback, setRefreshToken, setSubscriptionType };
125
+ //# sourceMappingURL=chunk-FLWPTIGZ.js.map
126
+ //# sourceMappingURL=chunk-FLWPTIGZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/constants.ts","../src/utils/cookie.ts","../src/client/token-store.ts","../src/client/auth-utils.ts"],"names":["getRefreshToken"],"mappings":"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","file":"chunk-FLWPTIGZ.js","sourcesContent":["// cookies\nexport const LOGIN_DETAILS = \"loginDetails\";\nexport const REFRESH_TOKEN = \"refreshToken\";\nexport const PORTAL = \"portal\";\nexport const SUBSCRIPTION_TYPE = \"ssubscriptionType\";\n\n// variables\nexport const HUBSPOT_DATA = \"hubSpotData\";\nexport const HUB_ID = \"hubId\";\nexport const DEV_PORTAL_ID = \"devPortalId\";\nexport const PORTAL_ID = \"portalId\";\nexport const DEV_API_URL = \"devApiUrl\";\n","import Cookies from 'js-cookie';\n\nexport const setCookie = (key: string, value: string, expire?: number | Date) => {\n return Cookies.set(key, value, {\n expires: expire,\n sameSite: 'none',\n secure: true,\n });\n}\n\nexport const getCookie: any = (key: any) => {\n return Cookies.get(key);\n}\n\nexport const removeCookie = (key: any) => {\n return Cookies.remove(key);\n}\n\nexport const removeAllCookie = () => {\n Object.keys(Cookies.get()).forEach((cookieName) => {\n Cookies.remove(cookieName);\n });\n}\n\n// export const isCookieExpired = (key: string): boolean => {\n// const value = Cookies.get(key);\n// return value === undefined; // true means expired or never set\n// };\n\n\nexport const isCookieExpired = (key: string): boolean => {\n const value: any = Cookies.get(key);\n try {\n const { expiresAt } = JSON.parse(value);\n return Date.now() > expiresAt ? true : false;\n } catch {\n return false; // if invalid format, treat as valid\n }\n};","/**\n * Token storage utilities\n * These functions handle access token management\n */\n\nimport { isCookieExpired } from '../utils/cookie.js';\nimport { REFRESH_TOKEN } from '../utils/constants';\n\nlet accessToken: string | null = null;\nlet tokenExpiresAt: number | null = null;\nlet refreshCallback: ((refreshToken: string) => Promise<{ token: string | null; success: boolean }>) | null = null;\n\nexport function getAccessToken(): string | null {\n return accessToken;\n}\n\nexport function storAccessToken(token: string, expiresIn?: number): void {\n accessToken = token;\n if (expiresIn) {\n tokenExpiresAt = Date.now() + expiresIn * 1000;\n } else {\n tokenExpiresAt = null;\n }\n}\n\nexport function clearAccessToken(): void {\n accessToken = null;\n tokenExpiresAt = null;\n}\n\nexport function isExpiresAccessToken(): boolean {\n if (!tokenExpiresAt) return true;\n return Date.now() >= tokenExpiresAt;\n}\n\n/**\n * Set the refresh callback function\n * This is called by the HTTP client during initialization\n */\nexport function setRefreshCallback(callback: (refreshToken: string) => Promise<{ token: string | null; success: boolean }>): void {\n refreshCallback = callback;\n}\n\n/**\n * Ensures the access token is valid, refreshing if necessary\n */\nexport async function ensureValidRefresh(): Promise<void> {\n if (isExpiresAccessToken() && refreshCallback) {\n const { getRefreshToken } = await import('./auth-utils.js');\n const refreshToken = getRefreshToken();\n if (refreshToken) {\n await refreshCallback(refreshToken);\n }\n }\n}\n\nexport function isAuthenticateApp() {\n if (isCookieExpired(REFRESH_TOKEN) || isExpiresAccessToken()) {\n return false;\n }\n return true;\n}","/**\n * Authentication utility functions\n * These handle refresh token management\n */\n\nimport { LOGIN_DETAILS, REFRESH_TOKEN, PORTAL, SUBSCRIPTION_TYPE } from '../utils/constants';\nimport { setCookie, getCookie } from '../utils/cookie';\nimport { storAccessToken } from './token-store';\n\n// Set data\nexport const setLoggedInDetails = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(LOGIN_DETAILS, JSON.stringify(data));\n resolve();\n });\n};\n\nexport function setRefreshToken(token: string, expiresAt: number) {\n return new Promise((resolve: any) => {\n setCookie(REFRESH_TOKEN, JSON.stringify(token), expiresAt);\n resolve();\n });\n}\n\nexport function setAccessToken(token: string, expiresIn?: number) {\n return new Promise((resolve: any) => {\n storAccessToken(token, expiresIn);\n resolve();\n });\n}\n\nexport const setPortal = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(PORTAL, JSON.stringify(data));\n resolve();\n });\n};\n\nexport const setSubscriptionType = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(SUBSCRIPTION_TYPE, JSON.stringify(data));\n resolve();\n });\n};\n\n// Get data\nexport function getProfile(): string | null {\n return JSON.parse(getCookie(LOGIN_DETAILS || null) || null);\n}\n\nexport function getRefreshToken(): string | null {\n return JSON.parse(getCookie(REFRESH_TOKEN || null) || null);\n}\n\nexport function getPortal(): any | null {\n return JSON.parse(getCookie(PORTAL || null) || null);\n}\n\nexport function getSubscriptionType(): string | null {\n return JSON.parse(getCookie(SUBSCRIPTION_TYPE || null) || null);\n}\n\n// Remove data\n// export const removeAllCookies = () => {\n// const cookies = document.cookie.split(\"; \");\n// cookies.forEach((cookie) => {\n// const name = cookie.split(\"=\")[0];\n// removeCookie(name);\n// });\n// };"]}
@@ -0,0 +1,54 @@
1
+ import { createStore, emailStore, actions3, noteStore, actions2, tableStore, actions } from './chunk-FLAVLYA3.js';
2
+
3
+ // src/store2/use-sync.ts
4
+ var syncStore = createStore({
5
+ apiSync: false,
6
+ sync: false,
7
+ isSyncLoading: false,
8
+ isSyncDisable: false
9
+ });
10
+ var actions4 = {
11
+ setIsSyncLoading(status) {
12
+ syncStore.setState({
13
+ isSyncLoading: status,
14
+ sync: status
15
+ });
16
+ },
17
+ setSync(status) {
18
+ resetAllStore();
19
+ syncStore.setState({
20
+ isSyncLoading: status,
21
+ sync: status
22
+ });
23
+ },
24
+ setApiSync(status) {
25
+ syncStore.setState({
26
+ isSyncLoading: status,
27
+ apiSync: status
28
+ });
29
+ },
30
+ setSyncDisable(status) {
31
+ syncStore.setState({
32
+ isSyncDisable: status
33
+ });
34
+ }
35
+ };
36
+ var resetAllStore = () => {
37
+ actions.setTablePrependData([]);
38
+ actions2.setPrependNote([]);
39
+ actions3.setPrependEmail([]);
40
+ };
41
+
42
+ // src/adapters/shared/createAdapterHooks.ts
43
+ function createAdapterHooks(createComposable) {
44
+ return {
45
+ useTable: createComposable(tableStore, actions),
46
+ useNote: createComposable(noteStore, actions2),
47
+ useEmail: createComposable(emailStore, actions3),
48
+ useSync: createComposable(syncStore, actions4)
49
+ };
50
+ }
51
+
52
+ export { createAdapterHooks };
53
+ //# sourceMappingURL=chunk-LEUQDA4M.js.map
54
+ //# sourceMappingURL=chunk-LEUQDA4M.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/store2/use-sync.ts","../src/adapters/shared/createAdapterHooks.ts"],"names":["actions"],"mappings":";;;AAYO,IAAM,YAAY,WAAA,CAAuB;AAAA,EAC5C,OAAA,EAAS,KAAA;AAAA,EACT,IAAA,EAAM,KAAA;AAAA,EACN,aAAA,EAAe,KAAA;AAAA,EACf,aAAA,EAAe;AACnB,CAAC,CAAA;AAEM,IAAMA,QAAAA,GAAU;AAAA,EACnB,iBAAiB,MAAA,EAAiB;AAC9B,IAAA,SAAA,CAAU,QAAA,CAAS;AAAA,MACf,aAAA,EAAe,MAAA;AAAA,MACf,IAAA,EAAM;AAAA,KACT,CAAA;AAAA,EACL,CAAA;AAAA,EAEA,QAAQ,MAAA,EAAiB;AACrB,IAAA,aAAA,EAAc;AACd,IAAA,SAAA,CAAU,QAAA,CAAS;AAAA,MACf,aAAA,EAAe,MAAA;AAAA,MACf,IAAA,EAAM;AAAA,KACT,CAAA;AAAA,EACL,CAAA;AAAA,EAEA,WAAW,MAAA,EAAiB;AACxB,IAAA,SAAA,CAAU,QAAA,CAAS;AAAA,MACf,aAAA,EAAe,MAAA;AAAA,MACf,OAAA,EAAS;AAAA,KACZ,CAAA;AAAA,EACL,CAAA;AAAA,EAEA,eAAe,MAAA,EAAiB;AAC5B,IAAA,SAAA,CAAU,QAAA,CAAS;AAAA,MACf,aAAA,EAAe;AAAA,KAClB,CAAA;AAAA,EACL;AACJ,CAAA;AAEA,IAAM,gBAAgB,MAAM;AACxB,EAAA,OAAA,CAAa,mBAAA,CAAoB,EAAE,CAAA;AACnC,EAAAA,QAAAA,CAAY,cAAA,CAAe,EAAE,CAAA;AAC7B,EAAAA,QAAAA,CAAa,eAAA,CAAgB,EAAE,CAAA;AACnC,CAAA;;;AChCO,SAAS,mBAAmB,gBAAA,EAAqC;AACpE,EAAA,OAAO;AAAA,IACH,QAAA,EAAU,gBAAA,CAAkD,UAAA,EAAY,OAAY,CAAA;AAAA,IACpF,OAAA,EAAS,gBAAA,CAAgD,SAAA,EAAWA,QAAW,CAAA;AAAA,IAC/E,QAAA,EAAU,gBAAA,CAAkD,UAAA,EAAYA,QAAY,CAAA;AAAA,IACpF,OAAA,EAAS,gBAAA,CAAgD,SAAA,EAAWA,QAAW;AAAA,GACnF;AACJ","file":"chunk-LEUQDA4M.js","sourcesContent":["import { createStore } from \"./store\";\nimport { actions as tableActions } from \"./use-table\";\nimport { actions as noteActions } from \"./use-note\";\nimport { actions as emailActions } from \"./use-email\";\n\nexport interface SyncState {\n apiSync: boolean;\n sync: boolean;\n isSyncLoading: boolean;\n isSyncDisable: boolean;\n}\n\nexport const syncStore = createStore<SyncState>({\n apiSync: false,\n sync: false,\n isSyncLoading: false,\n isSyncDisable: false,\n});\n\nexport const actions = {\n setIsSyncLoading(status: boolean) {\n syncStore.setState({\n isSyncLoading: status,\n sync: status,\n });\n },\n\n setSync(status: boolean) {\n resetAllStore()\n syncStore.setState({\n isSyncLoading: status,\n sync: status,\n });\n },\n\n setApiSync(status: boolean) {\n syncStore.setState({\n isSyncLoading: status,\n apiSync: status,\n });\n },\n\n setSyncDisable(status: boolean) {\n syncStore.setState({\n isSyncDisable: status,\n });\n },\n};\n\nconst resetAllStore = () => {\n tableActions.setTablePrependData([]);\n noteActions.setPrependNote([]);\n emailActions.setPrependEmail([]);\n};","import type { SubscribableStore } from \"./bindStoreWithActions\";\nimport {\n tableStore,\n tableActions,\n type TableState,\n noteStore,\n noteActions,\n type NoteState,\n emailStore,\n emailActions,\n type EmailState,\n syncStore,\n syncActions,\n type SyncState,\n} from \"./stores\";\n\ntype ComposableFactory = <TState extends object, TActions extends object>(\n store: SubscribableStore<TState>,\n actions: TActions,\n) => () => TState & TActions;\n\nexport function createAdapterHooks(createComposable: ComposableFactory) {\n return {\n useTable: createComposable<TableState, typeof tableActions>(tableStore, tableActions),\n useNote: createComposable<NoteState, typeof noteActions>(noteStore, noteActions),\n useEmail: createComposable<EmailState, typeof emailActions>(emailStore, emailActions),\n useSync: createComposable<SyncState, typeof syncActions>(syncStore, syncActions),\n };\n}\n"]}
@@ -0,0 +1,9 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ export { __export };
8
+ //# sourceMappingURL=chunk-PZ5AY32C.js.map
9
+ //# sourceMappingURL=chunk-PZ5AY32C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-PZ5AY32C.js"}
@@ -0,0 +1,10 @@
1
+ // src/adapters/shared/bindStoreWithActions.ts
2
+ function bindStoreWithActions(store, actions) {
3
+ const getSnapshot = () => ({ ...store.getState(), ...actions });
4
+ const subscribe = (onStoreChange) => store.subscribe(() => onStoreChange());
5
+ return { getSnapshot, subscribe };
6
+ }
7
+
8
+ export { bindStoreWithActions };
9
+ //# sourceMappingURL=chunk-Y5MRAAGK.js.map
10
+ //# sourceMappingURL=chunk-Y5MRAAGK.js.map