woodsportal-client-sdk 1.1.4-dev.62 → 1.1.4-dev.64
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 +12 -0
- package/README.md +74 -1
- package/dist/adapters/angular/index.d.ts +5 -2
- package/dist/adapters/angular/index.js +7 -7
- package/dist/adapters/angular/index.js.map +1 -1
- package/dist/adapters/react/index.d.ts +5 -2
- package/dist/adapters/react/index.js +6 -6
- package/dist/adapters/react/index.js.map +1 -1
- package/dist/adapters/vue/index.d.ts +5 -2
- package/dist/adapters/vue/index.js +7 -7
- package/dist/adapters/vue/index.js.map +1 -1
- package/dist/auth-utils-UU5PVRPL.js +3 -0
- package/dist/{auth-utils-TZSW6BVD.js.map → auth-utils-UU5PVRPL.js.map} +1 -1
- package/dist/{chunk-XWIYW67P.js → chunk-C76BHDO4.js} +599 -151
- package/dist/chunk-C76BHDO4.js.map +1 -0
- package/dist/{chunk-Y5MRAAGK.js → chunk-HBHT637F.js} +3 -3
- package/dist/chunk-HBHT637F.js.map +1 -0
- package/dist/chunk-K3YKUUNS.js +18 -0
- package/dist/chunk-K3YKUUNS.js.map +1 -0
- package/dist/{chunk-2SYUOWTT.js → chunk-S2NB4AXQ.js} +13 -7
- package/dist/chunk-S2NB4AXQ.js.map +1 -0
- package/dist/index.d.ts +347 -1
- package/dist/index.js +2 -2
- package/dist/{use-uploader-DOpqLu77.d.ts → use-uploader-wGxh8vtk.d.ts} +5 -1
- package/package.json +3 -3
- package/dist/auth-utils-TZSW6BVD.js +0 -3
- package/dist/chunk-2SYUOWTT.js.map +0 -1
- package/dist/chunk-XFNFPTU6.js +0 -17
- package/dist/chunk-XFNFPTU6.js.map +0 -1
- package/dist/chunk-XWIYW67P.js.map +0 -1
- package/dist/chunk-Y5MRAAGK.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
### Added
|
|
11
11
|
|
|
12
|
+
- **Client-lane MFA APIs:** `verifyOtp`, `sendMfaOtp`, pending passkey MFA step, enrollment (TOTP, phone verify, WebAuthn/passkeys), passwordless passkey login, and `getMfaStatus` / `setMfaPreferences`.
|
|
13
|
+
- **Client-lane security settings APIs:** `getSecurityOverview`, `getSecurityLoginActivity`, `getSecuritySessions`, `revokeSecuritySession`, `revokeOtherSecuritySessions`.
|
|
14
|
+
- **MFA-aware login:** `api.login()` stores only the temp access JWT when `twoFactorRequired` is true (no refresh token until MFA completes).
|
|
15
|
+
- Exported TypeScript types for MFA and security DTOs (`MfaMethod`, `SecurityOverview`, `ActiveSession`, etc.).
|
|
16
|
+
- **Docs:** [`docs/MFA-SECURITY-SDK.md`](docs/MFA-SECURITY-SDK.md) — full SDK method → API reference with examples; JSDoc on all MFA/security facades for IDE hover.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- **Source layout:** production code under `src/main/`, unit tests under `src/test/` (Spring Boot / Maven mirror). Update local imports or docs that referenced `src/` directly.
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
|
|
12
24
|
- **`formatHubSpotActivityDateTime`**, **`formatHubSpotActivityDateTimeParts`**, **`formatGmtOffset`**, **`normalizeToTimestamp`**, and **`DEFAULT_HUBSPOT_TIMEZONE`** (`Asia/Kolkata`) for HubSpot-style activity timestamps (e.g. `May 27, 2026 at 11:31 PM GMT+5:30`).
|
|
13
25
|
|
|
14
26
|
### Added
|
package/README.md
CHANGED
|
@@ -12,6 +12,21 @@ TypeScript/JavaScript **ESM** client for the **WoodsPortal** HTTP API: authentic
|
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
+
## Project layout (Spring Boot–style)
|
|
16
|
+
|
|
17
|
+
Production and test sources are split like WoodsPortal Java services:
|
|
18
|
+
|
|
19
|
+
| Path | Role |
|
|
20
|
+
|------|------|
|
|
21
|
+
| `src/main/` | Library source (published via `dist/`) |
|
|
22
|
+
| `src/test/` | Unit tests mirroring `src/main/` package paths |
|
|
23
|
+
|
|
24
|
+
Example: `src/main/client/auth-headers.ts` ↔ `src/test/client/login-session.test.ts`.
|
|
25
|
+
|
|
26
|
+
See [`src/test/README.md`](src/test/README.md). Run tests with `npm test`.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
15
30
|
## Production checklist
|
|
16
31
|
|
|
17
32
|
1. **Pin the major version** in `package.json` (e.g. `^1.1.0`) and read [`CHANGELOG.md`](./CHANGELOG.md) before upgrades.
|
|
@@ -60,7 +75,7 @@ initializeHttpClient({
|
|
|
60
75
|
});
|
|
61
76
|
```
|
|
62
77
|
|
|
63
|
-
Hub and dev-portal identifiers are **also** read from browser storage in `src/utils/config.ts`. Keep that storage in sync with your HubSpot / portal shell so authenticated routes resolve the correct tenant context.
|
|
78
|
+
Hub and dev-portal identifiers are **also** read from browser storage in `src/main/utils/config.ts`. Keep that storage in sync with your HubSpot / portal shell so authenticated routes resolve the correct tenant context.
|
|
64
79
|
|
|
65
80
|
---
|
|
66
81
|
|
|
@@ -241,6 +256,64 @@ API guide: `woodsportal-api/docs/CACHE-PURGE-API.md` in the monorepo. Types: `sr
|
|
|
241
256
|
|
|
242
257
|
---
|
|
243
258
|
|
|
259
|
+
## MFA & login (client lane)
|
|
260
|
+
|
|
261
|
+
When `POST /api/auth/login` returns `twoFactorRequired: true`, the SDK stores **only** the temporary access JWT — **not** the refresh token. Complete MFA with `api.verifyOtp()` (or pending passkey verify); on success the SDK persists the full session.
|
|
262
|
+
|
|
263
|
+
**Full guide:** [`docs/MFA-SECURITY-SDK.md`](docs/MFA-SECURITY-SDK.md) (every method, payload, and example).
|
|
264
|
+
|
|
265
|
+
Backend reference: `woodsportal-api/docs/MFA-FRONTEND-DEVELOPER-GUIDE.md`.
|
|
266
|
+
|
|
267
|
+
### Login & MFA step (unauthenticated)
|
|
268
|
+
|
|
269
|
+
| SDK method | HTTP | Purpose |
|
|
270
|
+
|------------|------|---------|
|
|
271
|
+
| `login({ username, password })` | `POST /api/auth/login?hubId=` | Password login; may return `twoFactorRequired` |
|
|
272
|
+
| `verifyOtp({ token, otp, method })` | `POST /api/auth/verify-otp?hubId=` | Complete OTP/TOTP/backup MFA step; full session on success |
|
|
273
|
+
| `sendMfaOtp({ token, method })` | `POST /api/auth/mfa/pending/otp/send` | Resend OTP or switch to email/SMS on MFA gate |
|
|
274
|
+
| `pendingPasskeyOptions({ token, portalId? })` | `POST /api/auth/mfa/pending/passkey/authenticate/options` | Start passkey MFA-step ceremony |
|
|
275
|
+
| `pendingPasskeyVerify({ token, challengeId, credential, portalId? })` | `POST /api/auth/mfa/pending/passkey/authenticate/verify?hubId=` | Finish passkey MFA step; full session on success |
|
|
276
|
+
| `passkeyLoginOptions({ email, hubId?, portalId? })` | `POST /api/auth/passkey/login/options?hubId=` | Passwordless passkey login start |
|
|
277
|
+
| `passkeyLoginVerify({ challengeId, credential, portalId? })` | `POST /api/auth/passkey/login/verify?hubId=` | Passwordless login finish; may still require MFA |
|
|
278
|
+
|
|
279
|
+
### MFA enrollment (authenticated)
|
|
280
|
+
|
|
281
|
+
| SDK method | HTTP | Purpose |
|
|
282
|
+
|------------|------|---------|
|
|
283
|
+
| `getMfaStatus({ portalId? })` | `GET /api/auth/mfa/status?portalId=` | Enrollment + policy snapshot |
|
|
284
|
+
| `setMfaPreferences({ defaultMethod, portalId? })` | `PUT /api/auth/mfa/preferences?portalId=` | Set scoped default MFA method |
|
|
285
|
+
| `startPhoneVerify({ phone })` | `POST /api/auth/mfa/phone/verify/start` | Send phone verification OTP (E.164) |
|
|
286
|
+
| `confirmPhoneVerify({ phone, code })` | `POST /api/auth/mfa/phone/verify/confirm` | Confirm phone; enables SMS at login |
|
|
287
|
+
| `totpEnrollStart({ portalId? })` | `POST /api/auth/mfa/totp/enroll/start?portalId=` | Start TOTP; returns QR/`otpauthUri` |
|
|
288
|
+
| `totpEnrollVerify({ code, portalId? })` | `POST /api/auth/mfa/totp/enroll/verify?portalId=` | Confirm TOTP; backup codes returned once |
|
|
289
|
+
| `totpDisable({ password })` | `POST /api/auth/mfa/totp/disable` | Disable TOTP for current scope |
|
|
290
|
+
| `webauthnRegisterOptions({ portalId? })` | `POST /api/auth/mfa/webauthn/register/options?portalId=` | Passkey registration ceremony |
|
|
291
|
+
| `webauthnRegisterVerify({ challengeId, credential, nickname?, portalId? })` | `POST /api/auth/mfa/webauthn/register/verify?portalId=` | Complete passkey registration |
|
|
292
|
+
| `webauthnAuthOptions({ portalId? })` | `POST /api/auth/mfa/webauthn/authenticate/options?portalId=` | Logged-in passkey re-verify |
|
|
293
|
+
| `webauthnAuthVerify({ challengeId, credential, portalId? })` | `POST /api/auth/mfa/webauthn/authenticate/verify?portalId=` | Complete logged-in passkey verify |
|
|
294
|
+
| `listWebauthnCredentials({ portalId? })` | `GET /api/auth/mfa/webauthn/credentials?portalId=` | List passkeys |
|
|
295
|
+
| `deleteWebauthnCredential({ credentialRecordId, portalId? })` | `DELETE /api/auth/mfa/webauthn/credentials/{id}?portalId=` | Remove a passkey |
|
|
296
|
+
|
|
297
|
+
WebAuthn ceremonies use `@simplewebauthn/browser` in the host app; the SDK transports credential JSON only.
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Security settings (client lane)
|
|
302
|
+
|
|
303
|
+
Use dedicated security endpoints for the account Security page — **not** `GET /me` + `GET /mfa/status`. Full contract: `woodsportal-api/docs/SECURITY-FRONTEND-DEVELOPER-GUIDE.md`. **Examples:** [`docs/MFA-SECURITY-SDK.md`](docs/MFA-SECURITY-SDK.md).
|
|
304
|
+
|
|
305
|
+
| SDK method | HTTP | Purpose |
|
|
306
|
+
|------------|------|---------|
|
|
307
|
+
| `getSecurityOverview({ portalId? })` | `GET /api/auth/security/overview?portalId=` | Password age, MFA methods, policy flags |
|
|
308
|
+
| `getSecurityLoginActivity({ page?, limit?, sort? })` | `GET /api/auth/security/login-activity` | Paginated login history |
|
|
309
|
+
| `getSecuritySessions({ currentFamilyId?, refreshToken? })` | `GET /api/auth/security/sessions` | Active sessions; pass refresh to mark current |
|
|
310
|
+
| `revokeSecuritySession({ familyId, refreshToken? })` | `POST /api/auth/security/sessions/{familyId}/revoke` | Sign out one device |
|
|
311
|
+
| `revokeOtherSecuritySessions({ refreshToken? })` | `POST /api/auth/security/sessions/revoke-others` | Sign out all other devices |
|
|
312
|
+
|
|
313
|
+
Pass `refreshToken` (or use `getRefreshToken()` from SDK cookies) so the API can mark the current session when listing or revoking others.
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
244
317
|
## Security & privacy
|
|
245
318
|
|
|
246
319
|
- Send credentials and tokens **only over HTTPS** in production.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as EmailState, M as MultiObjectTableState, N as NoteState, S as SyncState, T as TableState, U as UploaderState } from '../../use-uploader-
|
|
1
|
+
import { E as EmailState, M as MultiObjectTableState, N as NoteState, S as SyncState, T as TableState, U as UploaderState, a as UserState } from '../../use-uploader-wGxh8vtk.js';
|
|
2
2
|
|
|
3
3
|
declare const useTable: () => TableState & {
|
|
4
4
|
setObjectsQueryParams(params: any): void;
|
|
@@ -28,6 +28,9 @@ declare const useEmail: () => EmailState & {
|
|
|
28
28
|
clearPrependEmails(): void;
|
|
29
29
|
updatePrependEmail(response: any): Promise<any>;
|
|
30
30
|
};
|
|
31
|
+
declare const useUser: () => UserState & {
|
|
32
|
+
setProfile(response: any): void;
|
|
33
|
+
};
|
|
31
34
|
declare const useSync: () => SyncState & {
|
|
32
35
|
setIsSyncLoading(status: boolean): void;
|
|
33
36
|
setSync(status: boolean): void;
|
|
@@ -39,4 +42,4 @@ declare const useUploader: () => UploaderState & {
|
|
|
39
42
|
clearAttachments(): void;
|
|
40
43
|
};
|
|
41
44
|
|
|
42
|
-
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader };
|
|
45
|
+
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader, useUser };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { bindStoreWithActions } from '../../chunk-
|
|
2
|
-
import { createAdapterHooks } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
4
|
-
import '../../chunk-
|
|
1
|
+
import { bindStoreWithActions } from '../../chunk-HBHT637F.js';
|
|
2
|
+
import { createAdapterHooks } from '../../chunk-K3YKUUNS.js';
|
|
3
|
+
import '../../chunk-C76BHDO4.js';
|
|
4
|
+
import '../../chunk-S2NB4AXQ.js';
|
|
5
5
|
import { inject, DestroyRef, signal } from '@angular/core';
|
|
6
6
|
|
|
7
7
|
function createAngularStoreComposable(store, actions) {
|
|
@@ -26,9 +26,9 @@ function createAngularStoreComposable(store, actions) {
|
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
// src/adapters/angular/index.ts
|
|
30
|
-
var { useTable, useMultiObjectActions, useNote, useEmail, useSync, useUploader } = createAdapterHooks(createAngularStoreComposable);
|
|
29
|
+
// src/main/adapters/angular/index.ts
|
|
30
|
+
var { useTable, useMultiObjectActions, useNote, useEmail, useUser, useSync, useUploader } = createAdapterHooks(createAngularStoreComposable);
|
|
31
31
|
|
|
32
|
-
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader };
|
|
32
|
+
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader, useUser };
|
|
33
33
|
//# sourceMappingURL=index.js.map
|
|
34
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"sources":["../../../src/main/adapters/shared/createAngularComposable.ts","../../../src/main/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,qBAAA,EAAuB,OAAA,EAAS,QAAA,EAAU,SAAS,OAAA,EAAS,WAAA,EAAY,GAAI,kBAAA,CAAmB,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, useMultiObjectActions, useNote, useEmail, useUser, useSync, useUploader } = createAdapterHooks(createAngularStoreComposable);\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as EmailState, M as MultiObjectTableState, N as NoteState, S as SyncState, T as TableState, U as UploaderState } from '../../use-uploader-
|
|
1
|
+
import { E as EmailState, M as MultiObjectTableState, N as NoteState, S as SyncState, T as TableState, U as UploaderState, a as UserState } from '../../use-uploader-wGxh8vtk.js';
|
|
2
2
|
|
|
3
3
|
declare const useTable: () => TableState & {
|
|
4
4
|
setObjectsQueryParams(params: any): void;
|
|
@@ -28,6 +28,9 @@ declare const useEmail: () => EmailState & {
|
|
|
28
28
|
clearPrependEmails(): void;
|
|
29
29
|
updatePrependEmail(response: any): Promise<any>;
|
|
30
30
|
};
|
|
31
|
+
declare const useUser: () => UserState & {
|
|
32
|
+
setProfile(response: any): void;
|
|
33
|
+
};
|
|
31
34
|
declare const useSync: () => SyncState & {
|
|
32
35
|
setIsSyncLoading(status: boolean): void;
|
|
33
36
|
setSync(status: boolean): void;
|
|
@@ -39,4 +42,4 @@ declare const useUploader: () => UploaderState & {
|
|
|
39
42
|
clearAttachments(): void;
|
|
40
43
|
};
|
|
41
44
|
|
|
42
|
-
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader };
|
|
45
|
+
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader, useUser };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createAdapterHooks } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
1
|
+
import { createAdapterHooks } from '../../chunk-K3YKUUNS.js';
|
|
2
|
+
import '../../chunk-C76BHDO4.js';
|
|
3
|
+
import '../../chunk-S2NB4AXQ.js';
|
|
4
4
|
import { useSyncExternalStore } from 'react';
|
|
5
5
|
|
|
6
6
|
function createReactStoreComposable(store, actions) {
|
|
@@ -10,9 +10,9 @@ function createReactStoreComposable(store, actions) {
|
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
// src/adapters/react/index.ts
|
|
14
|
-
var { useTable, useMultiObjectActions, useNote, useEmail, useSync, useUploader } = createAdapterHooks(createReactStoreComposable);
|
|
13
|
+
// src/main/adapters/react/index.ts
|
|
14
|
+
var { useTable, useMultiObjectActions, useNote, useEmail, useUser, useSync, useUploader } = createAdapterHooks(createReactStoreComposable);
|
|
15
15
|
|
|
16
|
-
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader };
|
|
16
|
+
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader, useUser };
|
|
17
17
|
//# sourceMappingURL=index.js.map
|
|
18
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"sources":["../../../src/main/adapters/shared/createReactComposable.ts","../../../src/main/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,qBAAA,EAAuB,OAAA,EAAS,QAAA,EAAU,SAAS,OAAA,EAAS,WAAA,EAAY,GAAI,kBAAA,CAAmB,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, useMultiObjectActions, useNote, useEmail, useUser, useSync, useUploader } = createAdapterHooks(createReactStoreComposable);\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as EmailState, M as MultiObjectTableState, N as NoteState, S as SyncState, T as TableState, U as UploaderState } from '../../use-uploader-
|
|
1
|
+
import { E as EmailState, M as MultiObjectTableState, N as NoteState, S as SyncState, T as TableState, U as UploaderState, a as UserState } from '../../use-uploader-wGxh8vtk.js';
|
|
2
2
|
|
|
3
3
|
declare const useTable: () => TableState & {
|
|
4
4
|
setObjectsQueryParams(params: any): void;
|
|
@@ -28,6 +28,9 @@ declare const useEmail: () => EmailState & {
|
|
|
28
28
|
clearPrependEmails(): void;
|
|
29
29
|
updatePrependEmail(response: any): Promise<any>;
|
|
30
30
|
};
|
|
31
|
+
declare const useUser: () => UserState & {
|
|
32
|
+
setProfile(response: any): void;
|
|
33
|
+
};
|
|
31
34
|
declare const useSync: () => SyncState & {
|
|
32
35
|
setIsSyncLoading(status: boolean): void;
|
|
33
36
|
setSync(status: boolean): void;
|
|
@@ -39,4 +42,4 @@ declare const useUploader: () => UploaderState & {
|
|
|
39
42
|
clearAttachments(): void;
|
|
40
43
|
};
|
|
41
44
|
|
|
42
|
-
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader };
|
|
45
|
+
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader, useUser };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { bindStoreWithActions } from '../../chunk-
|
|
2
|
-
import { createAdapterHooks } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
4
|
-
import '../../chunk-
|
|
1
|
+
import { bindStoreWithActions } from '../../chunk-HBHT637F.js';
|
|
2
|
+
import { createAdapterHooks } from '../../chunk-K3YKUUNS.js';
|
|
3
|
+
import '../../chunk-C76BHDO4.js';
|
|
4
|
+
import '../../chunk-S2NB4AXQ.js';
|
|
5
5
|
import { reactive, onScopeDispose } from 'vue';
|
|
6
6
|
|
|
7
7
|
function createVueStoreComposable(store, actions) {
|
|
@@ -17,9 +17,9 @@ function createVueStoreComposable(store, actions) {
|
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
// src/adapters/vue/index.ts
|
|
21
|
-
var { useTable, useMultiObjectActions, useNote, useEmail, useSync, useUploader } = createAdapterHooks(createVueStoreComposable);
|
|
20
|
+
// src/main/adapters/vue/index.ts
|
|
21
|
+
var { useTable, useMultiObjectActions, useNote, useEmail, useUser, useSync, useUploader } = createAdapterHooks(createVueStoreComposable);
|
|
22
22
|
|
|
23
|
-
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader };
|
|
23
|
+
export { useEmail, useMultiObjectActions, useNote, useSync, useTable, useUploader, useUser };
|
|
24
24
|
//# sourceMappingURL=index.js.map
|
|
25
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"sources":["../../../src/main/adapters/shared/createVueComposable.ts","../../../src/main/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,qBAAA,EAAuB,OAAA,EAAS,QAAA,EAAU,SAAS,OAAA,EAAS,WAAA,EAAY,GAAI,kBAAA,CAAmB,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, useMultiObjectActions, useNote, useEmail, useUser, useSync, useUploader } = createAdapterHooks(createVueStoreComposable);\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { getPortal, getProfile, getRefreshToken, getSubscriptionType, setAccessToken, setLoggedInDetails, setPortal, setProfileDetails, setRefreshToken, setSubscriptionType } from './chunk-S2NB4AXQ.js';
|
|
2
|
+
//# sourceMappingURL=auth-utils-UU5PVRPL.js.map
|
|
3
|
+
//# sourceMappingURL=auth-utils-UU5PVRPL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"auth-utils-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"auth-utils-UU5PVRPL.js"}
|