@carlonicora/nextjs-jsonapi 6.12.2 → 6.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ApiData-DPKNfY-9.d.mts → ApiData-Be8yxCOX.d.mts} +2 -0
- package/dist/{ApiData-DPKNfY-9.d.ts → ApiData-Be8yxCOX.d.ts} +2 -0
- package/dist/{BlockNoteEditor-75ED2CN2.mjs → BlockNoteEditor-22Q4DJBU.mjs} +20 -8
- package/dist/BlockNoteEditor-22Q4DJBU.mjs.map +1 -0
- package/dist/{BlockNoteEditor-7M5QW2YQ.js → BlockNoteEditor-2VLPSEKS.js} +34 -22
- package/dist/BlockNoteEditor-2VLPSEKS.js.map +1 -0
- package/dist/{BlockNoteViewer-WGCDB7IJ.js → BlockNoteViewer-2XYASA5Y.js} +8 -5
- package/dist/BlockNoteViewer-2XYASA5Y.js.map +1 -0
- package/dist/{BlockNoteViewer-MTGS6YJV.mjs → BlockNoteViewer-NBW2H6LC.mjs} +7 -4
- package/dist/{BlockNoteViewer-MTGS6YJV.mjs.map → BlockNoteViewer-NBW2H6LC.mjs.map} +1 -1
- package/dist/{JsonApiRequest-A66XK5WT.mjs → JsonApiRequest-F6TMJ42G.mjs} +2 -2
- package/dist/JsonApiRequest-WISJZSDE.js +26 -0
- package/dist/{JsonApiRequest-FZGPLNUF.js.map → JsonApiRequest-WISJZSDE.js.map} +1 -1
- package/dist/billing/index.js +499 -494
- package/dist/billing/index.js.map +1 -1
- package/dist/billing/index.mjs +13 -8
- package/dist/billing/index.mjs.map +1 -1
- package/dist/chunk-27LQDGNP.mjs +317 -0
- package/dist/chunk-27LQDGNP.mjs.map +1 -0
- package/dist/{chunk-V3YDVJ63.js → chunk-2H342HNN.js} +948 -921
- package/dist/chunk-2H342HNN.js.map +1 -0
- package/dist/{chunk-KSYQEKJX.js → chunk-2SV4SS6N.js} +14 -14
- package/dist/{chunk-KSYQEKJX.js.map → chunk-2SV4SS6N.js.map} +1 -1
- package/dist/{chunk-4FNGWALA.mjs → chunk-47BBY5KA.mjs} +6 -4
- package/dist/{chunk-4FNGWALA.mjs.map → chunk-47BBY5KA.mjs.map} +1 -1
- package/dist/chunk-6JUCIWDC.mjs +570 -0
- package/dist/chunk-6JUCIWDC.mjs.map +1 -0
- package/dist/chunk-7DBJTNSU.mjs +1049 -0
- package/dist/chunk-7DBJTNSU.mjs.map +1 -0
- package/dist/chunk-7JZHPMGW.mjs +704 -0
- package/dist/chunk-7JZHPMGW.mjs.map +1 -0
- package/dist/{chunk-L6PYFQTO.js → chunk-7ZHTPFFT.js} +16 -14
- package/dist/chunk-7ZHTPFFT.js.map +1 -0
- package/dist/chunk-B6JGKDP2.js +214 -0
- package/dist/chunk-B6JGKDP2.js.map +1 -0
- package/dist/{chunk-3YW35YHQ.mjs → chunk-BH6JWIKI.mjs} +5 -5
- package/dist/chunk-BZ5J2FIV.js +570 -0
- package/dist/chunk-BZ5J2FIV.js.map +1 -0
- package/dist/{chunk-V5MI7RNB.mjs → chunk-DGWOVYEC.mjs} +2 -2
- package/dist/chunk-DOCIFE6A.mjs +212 -0
- package/dist/chunk-DOCIFE6A.mjs.map +1 -0
- package/dist/chunk-GB6DBFYY.js +25 -0
- package/dist/chunk-GB6DBFYY.js.map +1 -0
- package/dist/{chunk-RXQYEEKZ.mjs → chunk-H4NLDX5G.mjs} +51 -24
- package/dist/chunk-H4NLDX5G.mjs.map +1 -0
- package/dist/{chunk-EWCY6QJA.mjs → chunk-JJMMT24D.mjs} +37 -3
- package/dist/chunk-JJMMT24D.mjs.map +1 -0
- package/dist/{chunk-JTPRJNT2.js → chunk-KMW7UNL2.js} +38 -3
- package/dist/chunk-KMW7UNL2.js.map +1 -0
- package/dist/chunk-MHB36MYE.js +317 -0
- package/dist/chunk-MHB36MYE.js.map +1 -0
- package/dist/{chunk-FF4EIQ6H.js → chunk-MOGEGWXW.js} +1039 -1680
- package/dist/chunk-MOGEGWXW.js.map +1 -0
- package/dist/{chunk-AA52ORW2.mjs → chunk-P445QGOC.mjs} +61 -702
- package/dist/chunk-P445QGOC.mjs.map +1 -0
- package/dist/chunk-PV4Z5W6V.js +212 -0
- package/dist/chunk-PV4Z5W6V.js.map +1 -0
- package/dist/chunk-PXDUJ47N.js +1049 -0
- package/dist/chunk-PXDUJ47N.js.map +1 -0
- package/dist/{chunk-GHE4VT2R.js → chunk-QKNGZDSQ.js} +2 -2
- package/dist/{chunk-GHE4VT2R.js.map → chunk-QKNGZDSQ.js.map} +1 -1
- package/dist/chunk-W62MHDWM.js +704 -0
- package/dist/chunk-W62MHDWM.js.map +1 -0
- package/dist/chunk-XXP3TQHF.mjs +25 -0
- package/dist/chunk-XXP3TQHF.mjs.map +1 -0
- package/dist/chunk-YRKIFYOE.mjs +214 -0
- package/dist/chunk-YRKIFYOE.mjs.map +1 -0
- package/dist/{chunk-O3PDL2CV.js → chunk-Z4POQWFG.js} +40 -6
- package/dist/chunk-Z4POQWFG.js.map +1 -0
- package/dist/{chunk-PI56A4DG.mjs → chunk-ZLTOUZN2.mjs} +37 -2
- package/dist/chunk-ZLTOUZN2.mjs.map +1 -0
- package/dist/client/index.d.mts +2 -2
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.js +14 -9
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +24 -19
- package/dist/components/index.d.mts +7 -1
- package/dist/components/index.d.ts +7 -1
- package/dist/components/index.js +11 -7
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +10 -6
- package/dist/contexts/index.d.mts +1 -1
- package/dist/contexts/index.d.ts +1 -1
- package/dist/contexts/index.js +11 -7
- package/dist/contexts/index.js.map +1 -1
- package/dist/contexts/index.mjs +10 -6
- package/dist/core/index.d.mts +128 -2
- package/dist/core/index.d.ts +128 -2
- package/dist/core/index.js +17 -4
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +22 -9
- package/dist/email-automations/index.js +101 -96
- package/dist/email-automations/index.js.map +1 -1
- package/dist/email-automations/index.mjs +13 -8
- package/dist/email-automations/index.mjs.map +1 -1
- package/dist/features/analytics/index.js +128 -123
- package/dist/features/analytics/index.js.map +1 -1
- package/dist/features/analytics/index.mjs +13 -8
- package/dist/features/analytics/index.mjs.map +1 -1
- package/dist/features/analytics/server.js +11 -8
- package/dist/features/analytics/server.js.map +1 -1
- package/dist/features/analytics/server.mjs +9 -6
- package/dist/features/analytics/server.mjs.map +1 -1
- package/dist/features/blog/index.js +158 -153
- package/dist/features/blog/index.js.map +1 -1
- package/dist/features/blog/index.mjs +14 -9
- package/dist/features/blog/index.mjs.map +1 -1
- package/dist/features/blog/server.js +30 -26
- package/dist/features/blog/server.js.map +1 -1
- package/dist/features/blog/server.mjs +10 -6
- package/dist/features/blog/server.mjs.map +1 -1
- package/dist/features/help/index.js +44 -40
- package/dist/features/help/index.js.map +1 -1
- package/dist/features/help/index.mjs +10 -6
- package/dist/features/help/index.mjs.map +1 -1
- package/dist/features/tokenusage/index.js +134 -129
- package/dist/features/tokenusage/index.js.map +1 -1
- package/dist/features/tokenusage/index.mjs +13 -8
- package/dist/features/tokenusage/index.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +18 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +24 -11
- package/dist/lifecycle-4GUOTB46.js +23 -0
- package/dist/lifecycle-4GUOTB46.js.map +1 -0
- package/dist/lifecycle-LKGPRBS7.mjs +23 -0
- package/dist/local-transport-7H3SPZSA.js +15 -0
- package/dist/local-transport-7H3SPZSA.js.map +1 -0
- package/dist/local-transport-QYFKA6AN.mjs +15 -0
- package/dist/local-transport-QYFKA6AN.mjs.map +1 -0
- package/dist/offline/index.d.mts +607 -0
- package/dist/offline/index.d.ts +607 -0
- package/dist/offline/index.js +1052 -0
- package/dist/offline/index.js.map +1 -0
- package/dist/offline/index.mjs +1052 -0
- package/dist/offline/index.mjs.map +1 -0
- package/dist/offline/sqlite/device-worker.mjs +62 -0
- package/dist/offline/sqlite/index.mjs +17392 -0
- package/dist/offline/sqlite/sqlite3-opfs-async-proxy.js +881 -0
- package/dist/offline/sqlite/sqlite3.wasm +0 -0
- package/dist/request-KTBV6HHH.js +10 -0
- package/dist/request-KTBV6HHH.js.map +1 -0
- package/dist/request-SQOUNWZ4.mjs +10 -0
- package/dist/request-SQOUNWZ4.mjs.map +1 -0
- package/dist/server/cachedGet.d.mts +1 -1
- package/dist/server/cachedGet.d.ts +1 -1
- package/dist/server/cachedGet.stub.d.mts +1 -1
- package/dist/server/cachedGet.stub.d.ts +1 -1
- package/dist/server/index.d.mts +28 -2
- package/dist/server/index.d.ts +28 -2
- package/dist/server/index.js +18 -8
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +18 -8
- package/dist/{useSocket-IRHtk2xc.d.ts → useSocket-Bo9M0t0J.d.ts} +3 -1
- package/dist/{useSocket-C8fqU4od.d.mts → useSocket-J5qanQPN.d.mts} +3 -1
- package/dist/write-through-FDQ7N4YI.js +15 -0
- package/dist/write-through-FDQ7N4YI.js.map +1 -0
- package/dist/write-through-R25VQMH6.mjs +15 -0
- package/dist/write-through-R25VQMH6.mjs.map +1 -0
- package/package.json +7 -1
- package/pwa/sw.js +277 -26
- package/src/client/request.ts +37 -0
- package/src/components/editors/BlockNoteEditor.tsx +14 -0
- package/src/components/editors/__tests__/BlockNoteEditor.empty-change.spec.tsx +205 -0
- package/src/contexts/SocketContext.tsx +7 -1
- package/src/contexts/__tests__/SocketContext.session.spec.tsx +52 -5
- package/src/core/factories/RehydrationFactory.ts +28 -8
- package/src/core/factories/__tests__/RehydrationFactory.spec.ts +33 -0
- package/src/core/index.ts +3 -0
- package/src/core/interfaces/ApiData.ts +2 -0
- package/src/core/registry/ModuleRegistry.ts +3 -0
- package/src/features/auth/components/forms/Logout.tsx +8 -1
- package/src/features/auth/components/forms/__tests__/Logout.spec.tsx +62 -0
- package/src/hooks/__tests__/useSocket.pause.spec.ts +39 -0
- package/src/hooks/useSocket.ts +20 -1
- package/src/offline/__tests__/answer-builders.spec.ts +176 -0
- package/src/offline/__tests__/device-switch.spec.ts +179 -0
- package/src/offline/__tests__/generic-answers.spec.ts +380 -0
- package/src/offline/__tests__/local-transport.spec.ts +150 -0
- package/src/offline/__tests__/logout.spec.ts +122 -0
- package/src/offline/__tests__/offline-fixtures.ts +89 -0
- package/src/offline/__tests__/router.spec.ts +56 -0
- package/src/offline/__tests__/state.spec.ts +62 -0
- package/src/offline/__tests__/write-through.spec.ts +137 -0
- package/src/offline/config.ts +229 -0
- package/src/offline/configure.ts +14 -0
- package/src/offline/device-switch.ts +75 -0
- package/src/offline/generic-answers.ts +706 -0
- package/src/offline/index.ts +67 -0
- package/src/offline/local-transport.ts +189 -0
- package/src/offline/logout.ts +41 -0
- package/src/offline/router.ts +41 -0
- package/src/offline/server/__tests__/build-offline-manifest.spec.ts +76 -0
- package/src/offline/server/build-offline-manifest.ts +49 -0
- package/src/offline/state-hooks.ts +10 -0
- package/src/offline/state.ts +143 -0
- package/src/offline/store/DeviceStore.ts +112 -0
- package/src/offline/store/__tests__/device-store-lifecycle.spec.ts +343 -0
- package/src/offline/store/__tests__/shared-database.spec.ts +151 -0
- package/src/offline/store/__tests__/sql-device-store.spec.ts +399 -0
- package/src/offline/store/lifecycle.ts +315 -0
- package/src/offline/store/schema.ts +101 -0
- package/src/offline/store/shared-database.ts +321 -0
- package/src/offline/store/sql-device-store.ts +469 -0
- package/src/offline/store/worker-client.ts +71 -0
- package/src/offline/store/worker.ts +87 -0
- package/src/offline/sync/__tests__/conflicts.spec.ts +185 -0
- package/src/offline/sync/__tests__/queue-drain.spec.ts +364 -0
- package/src/offline/sync/__tests__/runtime.spec.ts +337 -0
- package/src/offline/sync/__tests__/sync-fixtures.ts +103 -0
- package/src/offline/sync/__tests__/sync-root.spec.ts +727 -0
- package/src/offline/sync/artwork-cache.ts +67 -0
- package/src/offline/sync/conflicts.ts +211 -0
- package/src/offline/sync/counts.ts +39 -0
- package/src/offline/sync/drain-queue.ts +246 -0
- package/src/offline/sync/known-roots.ts +37 -0
- package/src/offline/sync/models/OfflineChangeSet.ts +34 -0
- package/src/offline/sync/models/OfflineChangeSetInterface.ts +54 -0
- package/src/offline/sync/models/RootSync.ts +68 -0
- package/src/offline/sync/models/RootSyncInterface.ts +20 -0
- package/src/offline/sync/models/__tests__/OfflineChangeSet.spec.ts +47 -0
- package/src/offline/sync/models/__tests__/RootSync.spec.ts +54 -0
- package/src/offline/sync/models/index.ts +5 -0
- package/src/offline/sync/models/offline.modules.ts +14 -0
- package/src/offline/sync/runtime.ts +226 -0
- package/src/offline/sync/session-refresh.ts +32 -0
- package/src/offline/sync/sync-root.ts +336 -0
- package/src/offline/sync/waiting.ts +40 -0
- package/src/offline/types.ts +115 -0
- package/src/offline/write-through.ts +189 -0
- package/src/pwa/__tests__/sw.spec.ts +358 -1
- package/src/server/index.ts +5 -0
- package/src/unified/__tests__/JsonApiRequest.offline.spec.ts +243 -0
- package/dist/BlockNoteEditor-75ED2CN2.mjs.map +0 -1
- package/dist/BlockNoteEditor-7M5QW2YQ.js.map +0 -1
- package/dist/BlockNoteViewer-WGCDB7IJ.js.map +0 -1
- package/dist/JsonApiRequest-FZGPLNUF.js +0 -26
- package/dist/chunk-AA52ORW2.mjs.map +0 -1
- package/dist/chunk-EWCY6QJA.mjs.map +0 -1
- package/dist/chunk-FF4EIQ6H.js.map +0 -1
- package/dist/chunk-JTPRJNT2.js.map +0 -1
- package/dist/chunk-L6PYFQTO.js.map +0 -1
- package/dist/chunk-O3PDL2CV.js.map +0 -1
- package/dist/chunk-PI56A4DG.mjs.map +0 -1
- package/dist/chunk-RXQYEEKZ.mjs.map +0 -1
- package/dist/chunk-V3YDVJ63.js.map +0 -1
- package/dist/request-5RLK2AM3.mjs +0 -9
- package/dist/request-EUGTI3BE.js +0 -9
- package/dist/request-EUGTI3BE.js.map +0 -1
- /package/dist/{JsonApiRequest-A66XK5WT.mjs.map → JsonApiRequest-F6TMJ42G.mjs.map} +0 -0
- /package/dist/{chunk-3YW35YHQ.mjs.map → chunk-BH6JWIKI.mjs.map} +0 -0
- /package/dist/{chunk-V5MI7RNB.mjs.map → chunk-DGWOVYEC.mjs.map} +0 -0
- /package/dist/{request-5RLK2AM3.mjs.map → lifecycle-LKGPRBS7.mjs.map} +0 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import {
|
|
2
|
+
directFetch
|
|
3
|
+
} from "./chunk-ZLTOUZN2.mjs";
|
|
4
|
+
import {
|
|
5
|
+
ENV,
|
|
6
|
+
JsonApiDataFactory,
|
|
7
|
+
setBootstrapper,
|
|
8
|
+
translateResponse
|
|
9
|
+
} from "./chunk-DGWOVYEC.mjs";
|
|
10
|
+
import {
|
|
11
|
+
getClientToken
|
|
12
|
+
} from "./chunk-AUXK7QSA.mjs";
|
|
13
|
+
import {
|
|
14
|
+
__name
|
|
15
|
+
} from "./chunk-PAWJFY3S.mjs";
|
|
16
|
+
|
|
17
|
+
// src/features/user/data/user.storage.ts
|
|
18
|
+
var CURRENT_USER_STORAGE_KEY = "user";
|
|
19
|
+
|
|
20
|
+
// src/client/JsonApiClient.ts
|
|
21
|
+
var _clientConfig = null;
|
|
22
|
+
function configureClientJsonApi(config) {
|
|
23
|
+
_clientConfig = config;
|
|
24
|
+
if (config.bootstrapper) {
|
|
25
|
+
setBootstrapper(config.bootstrapper);
|
|
26
|
+
config.bootstrapper();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
__name(configureClientJsonApi, "configureClientJsonApi");
|
|
30
|
+
function getClientApiUrl() {
|
|
31
|
+
if (_clientConfig?.apiUrl) {
|
|
32
|
+
return _clientConfig.apiUrl;
|
|
33
|
+
}
|
|
34
|
+
const envUrl = ENV.API_URL;
|
|
35
|
+
if (!envUrl) {
|
|
36
|
+
throw new Error(
|
|
37
|
+
"API URL not configured. Use configureClientJsonApi() or set NEXT_PUBLIC_API_URL environment variable."
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
return envUrl;
|
|
41
|
+
}
|
|
42
|
+
__name(getClientApiUrl, "getClientApiUrl");
|
|
43
|
+
function getClientAppUrl() {
|
|
44
|
+
if (_clientConfig?.appUrl) {
|
|
45
|
+
return _clientConfig.appUrl;
|
|
46
|
+
}
|
|
47
|
+
const envUrl = ENV.APP_URL;
|
|
48
|
+
if (!envUrl) {
|
|
49
|
+
throw new Error(
|
|
50
|
+
"App URL not configured. Use configureClientJsonApi({ appUrl }) or set NEXT_PUBLIC_ADDRESS environment variable."
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
return envUrl.trim().replace(/\/+$/, "");
|
|
54
|
+
}
|
|
55
|
+
__name(getClientAppUrl, "getClientAppUrl");
|
|
56
|
+
function getClientTrackablePages() {
|
|
57
|
+
return _clientConfig?.trackablePages ?? [];
|
|
58
|
+
}
|
|
59
|
+
__name(getClientTrackablePages, "getClientTrackablePages");
|
|
60
|
+
function runClientBootstrapper() {
|
|
61
|
+
if (_clientConfig?.bootstrapper) {
|
|
62
|
+
_clientConfig.bootstrapper();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
__name(runClientBootstrapper, "runClientBootstrapper");
|
|
66
|
+
function buildClientUrl(endpoint, baseUrl) {
|
|
67
|
+
if (endpoint.startsWith("http")) return endpoint;
|
|
68
|
+
const apiUrl = baseUrl ?? getClientApiUrl();
|
|
69
|
+
return `${apiUrl}${endpoint}`;
|
|
70
|
+
}
|
|
71
|
+
__name(buildClientUrl, "buildClientUrl");
|
|
72
|
+
async function ClientJsonApiGet(params) {
|
|
73
|
+
runClientBootstrapper();
|
|
74
|
+
const token = await getClientToken();
|
|
75
|
+
const apiResponse = await directFetch({
|
|
76
|
+
method: "GET",
|
|
77
|
+
url: buildClientUrl(params.endpoint, params.baseUrl),
|
|
78
|
+
token,
|
|
79
|
+
companyId: params.companyId,
|
|
80
|
+
language: params.language,
|
|
81
|
+
additionalHeaders: _clientConfig?.additionalHeaders
|
|
82
|
+
});
|
|
83
|
+
return translateResponse({
|
|
84
|
+
classKey: params.classKey,
|
|
85
|
+
apiResponse,
|
|
86
|
+
companyId: params.companyId,
|
|
87
|
+
language: params.language,
|
|
88
|
+
paginationHandler: /* @__PURE__ */ __name(async (endpoint) => ClientJsonApiGet({
|
|
89
|
+
classKey: params.classKey,
|
|
90
|
+
endpoint,
|
|
91
|
+
companyId: params.companyId,
|
|
92
|
+
language: params.language,
|
|
93
|
+
baseUrl: params.baseUrl
|
|
94
|
+
}), "paginationHandler")
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
__name(ClientJsonApiGet, "ClientJsonApiGet");
|
|
98
|
+
async function ClientJsonApiPost(params) {
|
|
99
|
+
runClientBootstrapper();
|
|
100
|
+
const token = await getClientToken();
|
|
101
|
+
let body = params.body;
|
|
102
|
+
if (!body) {
|
|
103
|
+
body = {};
|
|
104
|
+
} else if (params.overridesJsonApiCreation !== true) {
|
|
105
|
+
body = JsonApiDataFactory.create(params.classKey, body);
|
|
106
|
+
}
|
|
107
|
+
const apiResponse = await directFetch({
|
|
108
|
+
method: "POST",
|
|
109
|
+
url: buildClientUrl(params.endpoint, params.baseUrl),
|
|
110
|
+
token,
|
|
111
|
+
body,
|
|
112
|
+
files: params.files,
|
|
113
|
+
companyId: params.companyId,
|
|
114
|
+
language: params.language,
|
|
115
|
+
additionalHeaders: _clientConfig?.additionalHeaders
|
|
116
|
+
});
|
|
117
|
+
return translateResponse({
|
|
118
|
+
classKey: params.responseType ?? params.classKey,
|
|
119
|
+
apiResponse,
|
|
120
|
+
companyId: params.companyId,
|
|
121
|
+
language: params.language
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
__name(ClientJsonApiPost, "ClientJsonApiPost");
|
|
125
|
+
async function ClientJsonApiPut(params) {
|
|
126
|
+
runClientBootstrapper();
|
|
127
|
+
const token = await getClientToken();
|
|
128
|
+
let body = params.body;
|
|
129
|
+
if (!body) {
|
|
130
|
+
body = {};
|
|
131
|
+
} else {
|
|
132
|
+
body = JsonApiDataFactory.create(params.classKey, body);
|
|
133
|
+
}
|
|
134
|
+
const apiResponse = await directFetch({
|
|
135
|
+
method: "PUT",
|
|
136
|
+
url: buildClientUrl(params.endpoint, params.baseUrl),
|
|
137
|
+
token,
|
|
138
|
+
body,
|
|
139
|
+
files: params.files,
|
|
140
|
+
companyId: params.companyId,
|
|
141
|
+
language: params.language,
|
|
142
|
+
additionalHeaders: _clientConfig?.additionalHeaders
|
|
143
|
+
});
|
|
144
|
+
return translateResponse({
|
|
145
|
+
classKey: params.responseType ?? params.classKey,
|
|
146
|
+
apiResponse,
|
|
147
|
+
companyId: params.companyId,
|
|
148
|
+
language: params.language
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
__name(ClientJsonApiPut, "ClientJsonApiPut");
|
|
152
|
+
async function ClientJsonApiPatch(params) {
|
|
153
|
+
runClientBootstrapper();
|
|
154
|
+
const token = await getClientToken();
|
|
155
|
+
let body = params.body;
|
|
156
|
+
if (!body) {
|
|
157
|
+
body = {};
|
|
158
|
+
} else if (params.overridesJsonApiCreation !== true) {
|
|
159
|
+
body = JsonApiDataFactory.create(params.classKey, body);
|
|
160
|
+
}
|
|
161
|
+
const apiResponse = await directFetch({
|
|
162
|
+
method: "PATCH",
|
|
163
|
+
url: buildClientUrl(params.endpoint, params.baseUrl),
|
|
164
|
+
token,
|
|
165
|
+
body,
|
|
166
|
+
files: params.files,
|
|
167
|
+
companyId: params.companyId,
|
|
168
|
+
language: params.language,
|
|
169
|
+
additionalHeaders: _clientConfig?.additionalHeaders
|
|
170
|
+
});
|
|
171
|
+
return translateResponse({
|
|
172
|
+
classKey: params.responseType ?? params.classKey,
|
|
173
|
+
apiResponse,
|
|
174
|
+
companyId: params.companyId,
|
|
175
|
+
language: params.language
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
__name(ClientJsonApiPatch, "ClientJsonApiPatch");
|
|
179
|
+
async function ClientJsonApiDelete(params) {
|
|
180
|
+
runClientBootstrapper();
|
|
181
|
+
const token = await getClientToken();
|
|
182
|
+
const apiResponse = await directFetch({
|
|
183
|
+
method: "DELETE",
|
|
184
|
+
url: buildClientUrl(params.endpoint, params.baseUrl),
|
|
185
|
+
token,
|
|
186
|
+
companyId: params.companyId,
|
|
187
|
+
language: params.language,
|
|
188
|
+
additionalHeaders: _clientConfig?.additionalHeaders
|
|
189
|
+
});
|
|
190
|
+
return translateResponse({
|
|
191
|
+
classKey: params.responseType ?? params.classKey,
|
|
192
|
+
apiResponse,
|
|
193
|
+
companyId: params.companyId,
|
|
194
|
+
language: params.language
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
__name(ClientJsonApiDelete, "ClientJsonApiDelete");
|
|
198
|
+
|
|
199
|
+
export {
|
|
200
|
+
CURRENT_USER_STORAGE_KEY,
|
|
201
|
+
configureClientJsonApi,
|
|
202
|
+
getClientApiUrl,
|
|
203
|
+
getClientAppUrl,
|
|
204
|
+
getClientTrackablePages,
|
|
205
|
+
buildClientUrl,
|
|
206
|
+
ClientJsonApiGet,
|
|
207
|
+
ClientJsonApiPost,
|
|
208
|
+
ClientJsonApiPut,
|
|
209
|
+
ClientJsonApiPatch,
|
|
210
|
+
ClientJsonApiDelete
|
|
211
|
+
};
|
|
212
|
+
//# sourceMappingURL=chunk-DOCIFE6A.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/features/user/data/user.storage.ts","../src/client/JsonApiClient.ts"],"sourcesContent":["/**\n * localStorage key backing the `CurrentUserProvider` atom.\n *\n * Owned by this library, not by the apps that consume it: `<Logout />` clears\n * it on every sign-out. Kept in its own module so both the provider that writes\n * it and the component that clears it can reference the same constant without\n * importing each other.\n */\nexport const CURRENT_USER_STORAGE_KEY = \"user\";\n","\"use client\";\n\nimport { ENV } from \"../core/env\";\nimport { JsonApiDataFactory } from \"../core/factories/JsonApiDataFactory\";\nimport { ApiRequestDataTypeInterface } from \"../core/interfaces/ApiRequestDataTypeInterface\";\nimport { ApiResponseInterface } from \"../core/interfaces/ApiResponseInterface\";\nimport { setBootstrapper } from \"../core/registry/bootstrapStore\";\nimport { translateResponse } from \"../core/utils/translateResponse\";\nimport { ModuleWithPermissions } from \"../permissions/types\";\nimport { directFetch } from \"./request\";\nimport { getClientToken } from \"./token\";\n\n// Config storage for client contexts\nlet _clientConfig: {\n apiUrl: string;\n appUrl?: string;\n trackablePages?: ModuleWithPermissions[];\n bootstrapper?: () => void;\n additionalHeaders?: Record<string, string>;\n} | null = null;\n\n/**\n * Configure the JSON:API client for browser contexts.\n * Call this in your client-side initialization or use JsonApiProvider.\n */\nexport function configureClientJsonApi(config: {\n apiUrl: string;\n appUrl?: string;\n trackablePages?: ModuleWithPermissions[];\n bootstrapper?: () => void;\n additionalHeaders?: Record<string, string>;\n}): void {\n _clientConfig = config;\n if (config.bootstrapper) {\n setBootstrapper(config.bootstrapper);\n config.bootstrapper();\n }\n}\n\nexport function getClientApiUrl(): string {\n if (_clientConfig?.apiUrl) {\n return _clientConfig.apiUrl;\n }\n const envUrl = ENV.API_URL;\n if (!envUrl) {\n throw new Error(\n \"API URL not configured. Use configureClientJsonApi() or set NEXT_PUBLIC_API_URL environment variable.\",\n );\n }\n return envUrl;\n}\n\nexport function getClientAppUrl(): string {\n if (_clientConfig?.appUrl) {\n return _clientConfig.appUrl;\n }\n const envUrl = ENV.APP_URL;\n if (!envUrl) {\n throw new Error(\n \"App URL not configured. Use configureClientJsonApi({ appUrl }) or set NEXT_PUBLIC_ADDRESS environment variable.\",\n );\n }\n return envUrl.trim().replace(/\\/+$/, \"\");\n}\n\nexport function getClientTrackablePages(): ModuleWithPermissions[] {\n return _clientConfig?.trackablePages ?? [];\n}\n\nfunction runClientBootstrapper(): void {\n if (_clientConfig?.bootstrapper) {\n _clientConfig.bootstrapper();\n }\n}\n\n/**\n * Resolve the final request URL for an endpoint (client-side variant of `buildUrl`\n * in `unified/JsonApiRequest.ts` — kept in lockstep with it).\n *\n * - `endpoint` starting with \"http\" is always passed through unchanged (existing behaviour).\n * - Otherwise, an explicit `baseUrl` (per-call override) takes precedence over the global\n * `getClientApiUrl()` resolution. Omitting `baseUrl` preserves today's behaviour exactly.\n */\nexport function buildClientUrl(endpoint: string, baseUrl?: string): string {\n if (endpoint.startsWith(\"http\")) return endpoint;\n const apiUrl = baseUrl ?? getClientApiUrl();\n return `${apiUrl}${endpoint}`;\n}\n\nexport async function ClientJsonApiGet(params: {\n classKey: ApiRequestDataTypeInterface;\n endpoint: string;\n companyId?: string;\n language: string;\n baseUrl?: string;\n}): Promise<ApiResponseInterface> {\n runClientBootstrapper();\n const token = await getClientToken();\n\n const apiResponse = await directFetch({\n method: \"GET\",\n url: buildClientUrl(params.endpoint, params.baseUrl),\n token,\n companyId: params.companyId,\n language: params.language,\n additionalHeaders: _clientConfig?.additionalHeaders,\n });\n\n return translateResponse({\n classKey: params.classKey,\n apiResponse,\n companyId: params.companyId,\n language: params.language,\n paginationHandler: async (endpoint: string) =>\n ClientJsonApiGet({\n classKey: params.classKey,\n endpoint,\n companyId: params.companyId,\n language: params.language,\n baseUrl: params.baseUrl,\n }),\n });\n}\n\nexport async function ClientJsonApiPost(params: {\n classKey: ApiRequestDataTypeInterface;\n endpoint: string;\n companyId?: string;\n body?: any;\n overridesJsonApiCreation?: boolean;\n files?: { [key: string]: File | Blob } | File | Blob;\n language: string;\n responseType?: ApiRequestDataTypeInterface;\n baseUrl?: string;\n}): Promise<ApiResponseInterface> {\n runClientBootstrapper();\n const token = await getClientToken();\n\n let body = params.body;\n if (!body) {\n body = {};\n } else if (params.overridesJsonApiCreation !== true) {\n body = JsonApiDataFactory.create(params.classKey, body);\n }\n\n const apiResponse = await directFetch({\n method: \"POST\",\n url: buildClientUrl(params.endpoint, params.baseUrl),\n token,\n body,\n files: params.files,\n companyId: params.companyId,\n language: params.language,\n additionalHeaders: _clientConfig?.additionalHeaders,\n });\n\n return translateResponse({\n classKey: params.responseType ?? params.classKey,\n apiResponse,\n companyId: params.companyId,\n language: params.language,\n });\n}\n\nexport async function ClientJsonApiPut(params: {\n classKey: ApiRequestDataTypeInterface;\n endpoint: string;\n companyId?: string;\n body?: any;\n files?: { [key: string]: File | Blob } | File | Blob;\n language: string;\n responseType?: ApiRequestDataTypeInterface;\n baseUrl?: string;\n}): Promise<ApiResponseInterface> {\n runClientBootstrapper();\n const token = await getClientToken();\n\n let body = params.body;\n if (!body) {\n body = {};\n } else {\n body = JsonApiDataFactory.create(params.classKey, body);\n }\n\n const apiResponse = await directFetch({\n method: \"PUT\",\n url: buildClientUrl(params.endpoint, params.baseUrl),\n token,\n body,\n files: params.files,\n companyId: params.companyId,\n language: params.language,\n additionalHeaders: _clientConfig?.additionalHeaders,\n });\n\n return translateResponse({\n classKey: params.responseType ?? params.classKey,\n apiResponse,\n companyId: params.companyId,\n language: params.language,\n });\n}\n\nexport async function ClientJsonApiPatch(params: {\n classKey: ApiRequestDataTypeInterface;\n endpoint: string;\n companyId?: string;\n body?: any;\n files?: { [key: string]: File | Blob } | File | Blob;\n overridesJsonApiCreation?: boolean;\n responseType?: ApiRequestDataTypeInterface;\n language: string;\n baseUrl?: string;\n}): Promise<ApiResponseInterface> {\n runClientBootstrapper();\n const token = await getClientToken();\n\n let body = params.body;\n if (!body) {\n body = {};\n } else if (params.overridesJsonApiCreation !== true) {\n body = JsonApiDataFactory.create(params.classKey, body);\n }\n\n const apiResponse = await directFetch({\n method: \"PATCH\",\n url: buildClientUrl(params.endpoint, params.baseUrl),\n token,\n body,\n files: params.files,\n companyId: params.companyId,\n language: params.language,\n additionalHeaders: _clientConfig?.additionalHeaders,\n });\n\n return translateResponse({\n classKey: params.responseType ?? params.classKey,\n apiResponse,\n companyId: params.companyId,\n language: params.language,\n });\n}\n\nexport async function ClientJsonApiDelete(params: {\n classKey: ApiRequestDataTypeInterface;\n endpoint: string;\n companyId?: string;\n language: string;\n responseType?: ApiRequestDataTypeInterface;\n baseUrl?: string;\n}): Promise<ApiResponseInterface> {\n runClientBootstrapper();\n const token = await getClientToken();\n\n const apiResponse = await directFetch({\n method: \"DELETE\",\n url: buildClientUrl(params.endpoint, params.baseUrl),\n token,\n companyId: params.companyId,\n language: params.language,\n additionalHeaders: _clientConfig?.additionalHeaders,\n });\n\n return translateResponse({\n classKey: params.responseType ?? params.classKey,\n apiResponse,\n companyId: params.companyId,\n language: params.language,\n });\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkMHB36MYEjs = require('./chunk-MHB36MYE.js');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
var _chunk7QVYU63Ejs = require('./chunk-7QVYU63E.js');
|
|
9
|
+
|
|
10
|
+
// src/offline/state-hooks.ts
|
|
11
|
+
var _react = require('react');
|
|
12
|
+
function useOfflineState() {
|
|
13
|
+
return _react.useSyncExternalStore.call(void 0, _chunkMHB36MYEjs.subscribeOfflineState, _chunkMHB36MYEjs.getOfflineState, () => _chunkMHB36MYEjs.SERVER_SNAPSHOT);
|
|
14
|
+
}
|
|
15
|
+
_chunk7QVYU63Ejs.__name.call(void 0, useOfflineState, "useOfflineState");
|
|
16
|
+
function useNeedsConnection() {
|
|
17
|
+
return !useOfflineState().online;
|
|
18
|
+
}
|
|
19
|
+
_chunk7QVYU63Ejs.__name.call(void 0, useNeedsConnection, "useNeedsConnection");
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
exports.useOfflineState = useOfflineState; exports.useNeedsConnection = useNeedsConnection;
|
|
25
|
+
//# sourceMappingURL=chunk-GB6DBFYY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/chunk-GB6DBFYY.js","../src/offline/state-hooks.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACA;ACTA,8BAAqC;AAG9B,SAAS,eAAA,CAAA,EAAgC;AAC9C,EAAA,OAAO,yCAAA,sCAAqB,EAAuB,gCAAA,EAAiB,CAAA,EAAA,GAAM,gCAAe,CAAA;AAC3F;AAFgB,qCAAA,eAAA,EAAA,iBAAA,CAAA;AAIT,SAAS,kBAAA,CAAA,EAA8B;AAC5C,EAAA,OAAO,CAAC,eAAA,CAAgB,CAAA,CAAE,MAAA;AAC5B;AAFgB,qCAAA,kBAAA,EAAA,oBAAA,CAAA;ADYhB;AACA;AACE;AACA;AACF,2FAAC","file":"/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/chunk-GB6DBFYY.js","sourcesContent":[null,"import { useSyncExternalStore } from \"react\";\nimport { getOfflineState, SERVER_SNAPSHOT, subscribeOfflineState, type OfflineState } from \"./state\";\n\nexport function useOfflineState(): OfflineState {\n return useSyncExternalStore(subscribeOfflineState, getOfflineState, () => SERVER_SNAPSHOT);\n}\n\nexport function useNeedsConnection(): boolean {\n return !useOfflineState().online;\n}\n"]}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
JsonApiContext
|
|
3
|
+
} from "./chunk-VOXD3ZLY.mjs";
|
|
1
4
|
import {
|
|
2
5
|
ACTION_TYPES,
|
|
3
6
|
RbacService,
|
|
@@ -16,7 +19,7 @@ import {
|
|
|
16
19
|
isReferralEnabled,
|
|
17
20
|
isRegistrationAllowed,
|
|
18
21
|
useWaitlistText
|
|
19
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-47BBY5KA.mjs";
|
|
20
23
|
import {
|
|
21
24
|
getRoleId,
|
|
22
25
|
isRolesConfigured
|
|
@@ -30,13 +33,11 @@ import {
|
|
|
30
33
|
AssistantMessageService,
|
|
31
34
|
AssistantService,
|
|
32
35
|
AuthService,
|
|
33
|
-
CURRENT_USER_STORAGE_KEY,
|
|
34
36
|
ClientAbstractService,
|
|
35
37
|
CompanyService,
|
|
36
38
|
ContentService,
|
|
37
39
|
DEFAULT_GRANT_TYPES,
|
|
38
40
|
EmailBlastService,
|
|
39
|
-
EndpointCreator,
|
|
40
41
|
FeatureService,
|
|
41
42
|
HandbookPageService,
|
|
42
43
|
HandbookSectionService,
|
|
@@ -45,15 +46,12 @@ import {
|
|
|
45
46
|
HandbookThreadService,
|
|
46
47
|
HowTo,
|
|
47
48
|
HowToService,
|
|
48
|
-
ModuleRegistry,
|
|
49
|
-
Modules,
|
|
50
49
|
NotificationService,
|
|
51
50
|
OAUTH_SCOPE_DISPLAY,
|
|
52
51
|
OAuthService,
|
|
53
52
|
PushService,
|
|
54
53
|
ReferralAdminService,
|
|
55
54
|
ReferralService,
|
|
56
|
-
RehydrationFactory,
|
|
57
55
|
RoleService,
|
|
58
56
|
S3Service,
|
|
59
57
|
STRIPE_COUPON_DETAIL_PAGE_URL,
|
|
@@ -72,7 +70,6 @@ import {
|
|
|
72
70
|
formatCurrency,
|
|
73
71
|
formatDate,
|
|
74
72
|
formatInterval,
|
|
75
|
-
getI18nLink,
|
|
76
73
|
getIconByModule,
|
|
77
74
|
getInitials,
|
|
78
75
|
getLastApiMeta,
|
|
@@ -96,20 +93,33 @@ import {
|
|
|
96
93
|
showToast,
|
|
97
94
|
subscribeViewport,
|
|
98
95
|
useComposedRefs,
|
|
99
|
-
useI18nDateFnsLocale,
|
|
100
|
-
useI18nLocale,
|
|
101
|
-
useI18nRouter,
|
|
102
|
-
useI18nTranslations,
|
|
103
96
|
useIsMobile,
|
|
104
97
|
validateItalianTaxCode,
|
|
105
98
|
validatePartitaIva
|
|
106
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-P445QGOC.mjs";
|
|
107
100
|
import {
|
|
108
|
-
|
|
109
|
-
} from "./chunk-
|
|
101
|
+
useOfflineState
|
|
102
|
+
} from "./chunk-XXP3TQHF.mjs";
|
|
110
103
|
import {
|
|
111
|
-
|
|
112
|
-
|
|
104
|
+
EndpointCreator,
|
|
105
|
+
ModuleRegistry,
|
|
106
|
+
Modules,
|
|
107
|
+
RehydrationFactory,
|
|
108
|
+
getI18nLink,
|
|
109
|
+
useI18nDateFnsLocale,
|
|
110
|
+
useI18nLocale,
|
|
111
|
+
useI18nRouter,
|
|
112
|
+
useI18nTranslations
|
|
113
|
+
} from "./chunk-6JUCIWDC.mjs";
|
|
114
|
+
import {
|
|
115
|
+
CURRENT_USER_STORAGE_KEY
|
|
116
|
+
} from "./chunk-DOCIFE6A.mjs";
|
|
117
|
+
import {
|
|
118
|
+
isOfflineConfigured
|
|
119
|
+
} from "./chunk-27LQDGNP.mjs";
|
|
120
|
+
import {
|
|
121
|
+
ENV
|
|
122
|
+
} from "./chunk-DGWOVYEC.mjs";
|
|
113
123
|
import {
|
|
114
124
|
__name
|
|
115
125
|
} from "./chunk-PAWJFY3S.mjs";
|
|
@@ -7958,7 +7968,9 @@ var SocketProvider = /* @__PURE__ */ __name(({ token, session, children }) => {
|
|
|
7958
7968
|
};
|
|
7959
7969
|
}, [session]);
|
|
7960
7970
|
const resolvedToken = token ?? sessionToken;
|
|
7961
|
-
const
|
|
7971
|
+
const offlineState = useOfflineState();
|
|
7972
|
+
const paused = isOfflineConfigured() && !offlineState.online;
|
|
7973
|
+
const socketHookData = useSocket({ token: resolvedToken, paused });
|
|
7962
7974
|
const sendMessage = /* @__PURE__ */ __name((event, data) => {
|
|
7963
7975
|
const currentSocket = socketHookData ? socketHookData.socket : defaultContextValue.socket;
|
|
7964
7976
|
const currentIsConnected = socketHookData ? socketHookData.isConnected : defaultContextValue.isConnected;
|
|
@@ -10840,7 +10852,7 @@ import { useRef as useRef18 } from "react";
|
|
|
10840
10852
|
import dynamic from "next/dynamic";
|
|
10841
10853
|
import React18 from "react";
|
|
10842
10854
|
import { jsx as jsx91 } from "react/jsx-runtime";
|
|
10843
|
-
var BlockNoteEditor = dynamic(() => import("./BlockNoteEditor-
|
|
10855
|
+
var BlockNoteEditor = dynamic(() => import("./BlockNoteEditor-22Q4DJBU.mjs"), {
|
|
10844
10856
|
ssr: false
|
|
10845
10857
|
});
|
|
10846
10858
|
var BlockNoteEditorContainer = React18.memo(/* @__PURE__ */ __name(function EditorContainer(props) {
|
|
@@ -15412,7 +15424,7 @@ var usePushNotifications_default = usePushNotifications;
|
|
|
15412
15424
|
// src/hooks/useSocket.ts
|
|
15413
15425
|
import { useEffect as useEffect39, useRef as useRef27, useState as useState48 } from "react";
|
|
15414
15426
|
import io from "socket.io-client";
|
|
15415
|
-
function useSocket({ token }) {
|
|
15427
|
+
function useSocket({ token, paused = false }) {
|
|
15416
15428
|
const _errorCount = useRef27(0);
|
|
15417
15429
|
const shouldConnect = useRef27(true);
|
|
15418
15430
|
const [socket, setSocket] = useState48(null);
|
|
@@ -15521,6 +15533,20 @@ function useSocket({ token }) {
|
|
|
15521
15533
|
}
|
|
15522
15534
|
};
|
|
15523
15535
|
}, [token]);
|
|
15536
|
+
const pausedSocket = useRef27(null);
|
|
15537
|
+
useEffect39(() => {
|
|
15538
|
+
const current = socketRef.current;
|
|
15539
|
+
if (!current) return;
|
|
15540
|
+
if (paused) {
|
|
15541
|
+
if (pausedSocket.current !== current) {
|
|
15542
|
+
current.disconnect();
|
|
15543
|
+
pausedSocket.current = current;
|
|
15544
|
+
}
|
|
15545
|
+
} else if (pausedSocket.current === current) {
|
|
15546
|
+
pausedSocket.current = null;
|
|
15547
|
+
current.connect();
|
|
15548
|
+
}
|
|
15549
|
+
}, [paused, socket]);
|
|
15524
15550
|
const sendMessage = /* @__PURE__ */ __name((event, data) => {
|
|
15525
15551
|
if (socketRef.current && isConnected) {
|
|
15526
15552
|
socketRef.current.emit(event, data);
|
|
@@ -17049,7 +17075,7 @@ __name(BlockNoteEditorMentionSuggestionMenu, "BlockNoteEditorMentionSuggestionMe
|
|
|
17049
17075
|
import dynamic2 from "next/dynamic";
|
|
17050
17076
|
import React29 from "react";
|
|
17051
17077
|
import { jsx as jsx178 } from "react/jsx-runtime";
|
|
17052
|
-
var BlockNoteViewer = dynamic2(() => import("./BlockNoteViewer-
|
|
17078
|
+
var BlockNoteViewer = dynamic2(() => import("./BlockNoteViewer-NBW2H6LC.mjs").then((m) => m.BlockNoteViewer), { ssr: false });
|
|
17053
17079
|
var BlockNoteViewerContainer = React29.memo(/* @__PURE__ */ __name(function ViewerContainer(props) {
|
|
17054
17080
|
return /* @__PURE__ */ jsx178(BlockNoteViewer, { ...props });
|
|
17055
17081
|
}, "ViewerContainer"));
|
|
@@ -17331,7 +17357,7 @@ function useJsonApiGet(params) {
|
|
|
17331
17357
|
setLoading(true);
|
|
17332
17358
|
setError(null);
|
|
17333
17359
|
try {
|
|
17334
|
-
const { JsonApiGet } = await import("./JsonApiRequest-
|
|
17360
|
+
const { JsonApiGet } = await import("./JsonApiRequest-F6TMJ42G.mjs");
|
|
17335
17361
|
const language = navigator.language.split("-")[0] || "en";
|
|
17336
17362
|
const apiResponse = await JsonApiGet({
|
|
17337
17363
|
classKey: params.classKey,
|
|
@@ -17436,7 +17462,7 @@ function useJsonApiMutation(config) {
|
|
|
17436
17462
|
setLoading(true);
|
|
17437
17463
|
setError(null);
|
|
17438
17464
|
try {
|
|
17439
|
-
const { JsonApiPost, JsonApiPut, JsonApiPatch, JsonApiDelete } = await import("./JsonApiRequest-
|
|
17465
|
+
const { JsonApiPost, JsonApiPut, JsonApiPatch, JsonApiDelete } = await import("./JsonApiRequest-F6TMJ42G.mjs");
|
|
17440
17466
|
const language = navigator.language.split("-")[0] || "en";
|
|
17441
17467
|
let apiResponse;
|
|
17442
17468
|
switch (config.method) {
|
|
@@ -21819,10 +21845,11 @@ __name(clearClientStorage, "clearClientStorage");
|
|
|
21819
21845
|
|
|
21820
21846
|
// src/features/auth/components/forms/Logout.tsx
|
|
21821
21847
|
import { Fragment as Fragment42, jsx as jsx231 } from "react/jsx-runtime";
|
|
21822
|
-
function Logout({ storageKeys }) {
|
|
21848
|
+
function Logout({ storageKeys, beforeLogout }) {
|
|
21823
21849
|
const generateUrl = usePageUrlGenerator();
|
|
21824
21850
|
useEffect66(() => {
|
|
21825
21851
|
const logOut = /* @__PURE__ */ __name(async () => {
|
|
21852
|
+
if (beforeLogout && !await beforeLogout()) return;
|
|
21826
21853
|
clearClientStorage([CURRENT_USER_STORAGE_KEY, ...storageKeys ?? []]);
|
|
21827
21854
|
await AuthService.logout();
|
|
21828
21855
|
window.location.href = generateUrl({ page: `/` });
|
|
@@ -30751,4 +30778,4 @@ export {
|
|
|
30751
30778
|
useOAuthClients,
|
|
30752
30779
|
useOAuthClient
|
|
30753
30780
|
};
|
|
30754
|
-
//# sourceMappingURL=chunk-
|
|
30781
|
+
//# sourceMappingURL=chunk-H4NLDX5G.mjs.map
|