@carlonicora/nextjs-jsonapi 1.5.0 → 1.7.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/{ApiResponseInterface-DDI7QQPR.d.ts → ApiResponseInterface-DMwITHYP.d.mts} +11 -2
- package/dist/{ApiResponseInterface-BHN5D9r5.d.mts → ApiResponseInterface-DWgIAXI-.d.ts} +11 -2
- package/dist/AuthComponent-hxOPs9o8.d.mts +11 -0
- package/dist/AuthComponent-hxOPs9o8.d.ts +11 -0
- package/dist/{BlockNoteEditor-G6AK2NWA.js → BlockNoteEditor-IJASTIUZ.js} +16 -23
- package/dist/BlockNoteEditor-IJASTIUZ.js.map +1 -0
- package/dist/{BlockNoteEditor-AIEEQM6A.mjs → BlockNoteEditor-M6TUP3NT.mjs} +8 -15
- package/dist/BlockNoteEditor-M6TUP3NT.mjs.map +1 -0
- package/dist/JsonApiRequest-2OM5NDAW.js +24 -0
- package/dist/JsonApiRequest-2OM5NDAW.js.map +1 -0
- package/dist/{JsonApiRequest-6UR7DIAR.mjs → JsonApiRequest-SYZ6FGCA.mjs} +2 -3
- package/dist/{chunk-2K3Q24UF.js → chunk-3ZPK4QOB.js} +24 -14
- package/dist/chunk-3ZPK4QOB.js.map +1 -0
- package/dist/{chunk-VET55IZO.js → chunk-4L7OWJ2P.js} +10290 -7537
- package/dist/chunk-4L7OWJ2P.js.map +1 -0
- package/dist/chunk-4U5CJA44.mjs +3435 -0
- package/dist/chunk-4U5CJA44.mjs.map +1 -0
- package/dist/chunk-AGWQ75PQ.js +142 -0
- package/dist/chunk-AGWQ75PQ.js.map +1 -0
- package/dist/{chunk-PMXG5WBC.js → chunk-CKS6SVUK.js} +160 -24
- package/dist/chunk-CKS6SVUK.js.map +1 -0
- package/dist/{chunk-YF5XQZDR.mjs → chunk-F5UNXZ3J.mjs} +1 -1
- package/dist/chunk-F5UNXZ3J.mjs.map +1 -0
- package/dist/chunk-IGOWVLJH.mjs +142 -0
- package/dist/chunk-IGOWVLJH.mjs.map +1 -0
- package/dist/{chunk-HR4H2FP7.mjs → chunk-KJ4ETLJB.mjs} +24 -14
- package/dist/chunk-KJ4ETLJB.mjs.map +1 -0
- package/dist/{chunk-IKBA4AHN.mjs → chunk-SAL7XW2G.mjs} +143 -7
- package/dist/chunk-SAL7XW2G.mjs.map +1 -0
- package/dist/chunk-TW4QRJ7D.mjs +12085 -0
- package/dist/chunk-TW4QRJ7D.mjs.map +1 -0
- package/dist/chunk-U4NADAHN.js +3435 -0
- package/dist/chunk-U4NADAHN.js.map +1 -0
- package/dist/{chunk-EFJEWLRL.js → chunk-YUO55Q5A.js} +1 -1
- package/dist/chunk-YUO55Q5A.js.map +1 -0
- package/dist/client/index.d.mts +161 -11
- package/dist/client/index.d.ts +161 -11
- package/dist/client/index.js +71 -11
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +70 -10
- package/dist/components/index.d.mts +763 -11
- package/dist/components/index.d.ts +763 -11
- package/dist/components/index.js +462 -11
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +463 -12
- package/dist/config-BdCV25CE.d.mts +69 -0
- package/dist/config-C9dt1QiR.d.ts +69 -0
- package/dist/content.fields-Ck5lkQ5d.d.mts +47 -0
- package/dist/content.fields-Ck5lkQ5d.d.ts +47 -0
- package/dist/{content.interface-CR2aBeAW.d.ts → content.interface-B6qP_ABq.d.mts} +2 -3
- package/dist/{content.interface-FpLfsaRm.d.mts → content.interface-DHAFLasV.d.ts} +2 -3
- package/dist/contexts/index.d.mts +13 -6
- package/dist/contexts/index.d.ts +13 -6
- package/dist/contexts/index.js +7 -11
- package/dist/contexts/index.js.map +1 -1
- package/dist/contexts/index.mjs +6 -10
- package/dist/core/index.d.mts +575 -8
- package/dist/core/index.d.ts +575 -8
- package/dist/core/index.js +131 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +132 -4
- package/dist/index.d.mts +95 -71
- package/dist/index.d.ts +95 -71
- package/dist/index.js +113 -7
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +135 -29
- package/dist/notification.interface-agcMYCkg.d.mts +228 -0
- package/dist/notification.interface-agcMYCkg.d.ts +228 -0
- package/dist/request-GBLBPYFM.js +8 -0
- package/dist/request-GBLBPYFM.js.map +1 -0
- package/dist/request-XABCMU25.mjs +8 -0
- package/dist/s3.service-DYnmymEd.d.mts +350 -0
- package/dist/s3.service-DyXjKTqr.d.ts +350 -0
- package/dist/server/index.d.mts +69 -4
- package/dist/server/index.d.ts +69 -4
- package/dist/server/index.js +211 -5
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +211 -5
- package/dist/server/index.mjs.map +1 -1
- package/dist/token-2UWQJY5T.js +8 -0
- package/dist/token-2UWQJY5T.js.map +1 -0
- package/dist/token-EOK3N45S.mjs +8 -0
- package/dist/{useSocket-L-An7_Mr.d.mts → useSocket-91s8M4Xd.d.mts} +1 -1
- package/dist/{useSocket-BV6yMdWS.d.ts → useSocket-DSR7vaXj.d.ts} +1 -1
- package/package.json +12 -52
- package/src/client/JsonApiClient.ts +248 -0
- package/src/client/config.ts +78 -0
- package/src/client/index.ts +6 -1
- package/src/components/containers/TabsContainer.tsx +1 -1
- package/src/components/editors/BlockNoteEditor.tsx +3 -1
- package/src/components/index.ts +4 -0
- package/src/components/navigations/Breadcrumb.tsx +1 -1
- package/src/components/navigations/Header.tsx +2 -2
- package/src/contexts/CommonContext.tsx +1 -1
- package/src/contexts/SocketContext.tsx +1 -1
- package/src/contexts/index.ts +3 -0
- package/src/core/abstracts/ClientAbstractService.ts +255 -0
- package/src/core/abstracts/ServerAbstractService.ts +180 -0
- package/src/core/abstracts/index.ts +2 -0
- package/src/core/index.ts +35 -3
- package/src/discord/config.ts +15 -0
- package/src/discord/index.ts +1 -0
- package/src/features/auth/components/details/LandingComponent.tsx +2 -2
- package/src/features/auth/components/forms/AcceptInvitation.tsx +1 -1
- package/src/features/auth/components/forms/ActivateAccount.tsx +1 -1
- package/src/features/auth/components/forms/Cookies.tsx +2 -1
- package/src/features/auth/components/forms/ForgotPassword.tsx +1 -1
- package/src/features/auth/components/forms/Login.tsx +1 -1
- package/src/features/auth/components/forms/Logout.tsx +1 -1
- package/src/features/auth/components/forms/RefreshUser.tsx +2 -1
- package/src/features/auth/components/forms/Register.tsx +1 -1
- package/src/features/auth/components/forms/ResetPassword.tsx +1 -1
- package/src/features/auth/data/auth.service.ts +1 -1
- package/src/features/auth/utils/AuthCookies.ts +1 -1
- package/src/features/company/components/forms/CompanyConfigurationEditor.tsx +4 -2
- package/src/features/company/components/forms/CompanyDeleter.tsx +2 -1
- package/src/features/company/components/forms/CompanyEditor.tsx +6 -3
- package/src/features/company/components/forms/CompanyLicense.tsx +4 -2
- package/src/features/company/components/lists/CompaniesList.tsx +2 -1
- package/src/features/content/components/lists/ContentsListById.tsx +2 -1
- package/src/features/content/components/lists/RelevantContentsList.tsx +2 -1
- package/src/features/notification/components/lists/NotificationsList.tsx +2 -1
- package/src/features/notification/contexts/NotificationContext.tsx +2 -1
- package/src/features/role/components/forms/RemoveUserFromRole.tsx +4 -2
- package/src/features/role/components/forms/UserRoleAdd.tsx +2 -1
- package/src/features/role/components/lists/RolesList.tsx +2 -1
- package/src/features/role/components/lists/UserRolesList.tsx +2 -1
- package/src/features/user/components/forms/RoleUserAdd.tsx +4 -2
- package/src/features/user/components/forms/UserDeleter.tsx +2 -1
- package/src/features/user/components/forms/UserEditor.tsx +6 -3
- package/src/features/user/components/forms/UserMultiSelect.tsx +2 -1
- package/src/features/user/components/forms/UserReactivator.tsx +2 -1
- package/src/features/user/components/forms/UserResentInvitationEmail.tsx +2 -1
- package/src/features/user/components/forms/UserSelector.tsx +2 -1
- package/src/features/user/components/lists/AdminUsersList.tsx +2 -1
- package/src/features/user/components/lists/CompanyUsersList.tsx +2 -1
- package/src/features/user/components/lists/RelevantUsersList.tsx +2 -1
- package/src/features/user/components/lists/RoleUsersList.tsx +2 -1
- package/src/features/user/components/lists/UsersListByContentIds.tsx +2 -1
- package/src/features/user/hooks/useUserSearch.ts +2 -1
- package/src/hooks/useDataListRetriever.ts +4 -4
- package/src/hooks/usePageTracker.ts +1 -1
- package/src/hooks/usePushNotifications.ts +3 -2
- package/src/hooks/useSocket.ts +1 -1
- package/src/index.ts +7 -2
- package/src/roles/config.ts +0 -15
- package/src/roles/index.ts +1 -9
- package/src/server/JsonApiServer.ts +249 -0
- package/src/server/cache.ts +1 -1
- package/src/server/index.ts +13 -0
- package/src/server/request.ts +32 -18
- package/src/server/token.ts +1 -1
- package/dist/AbstractService-BsY6W3Ej.d.mts +0 -109
- package/dist/AbstractService-wLid8dB0.d.ts +0 -109
- package/dist/ApiData-DPKNfY-9.d.mts +0 -10
- package/dist/ApiData-DPKNfY-9.d.ts +0 -10
- package/dist/ApiDataInterface-DPP8s46n.d.mts +0 -21
- package/dist/ApiDataInterface-DPP8s46n.d.ts +0 -21
- package/dist/AuthComponent-B_Ps2Vb9.d.ts +0 -78
- package/dist/AuthComponent-CxnGgvoh.d.mts +0 -78
- package/dist/BlockNoteEditor-AIEEQM6A.mjs.map +0 -1
- package/dist/BlockNoteEditor-G6AK2NWA.js.map +0 -1
- package/dist/JsonApiRequest-UJ7FGIVI.js +0 -25
- package/dist/JsonApiRequest-UJ7FGIVI.js.map +0 -1
- package/dist/atoms/index.d.mts +0 -12
- package/dist/atoms/index.d.ts +0 -12
- package/dist/atoms/index.js +0 -9
- package/dist/atoms/index.js.map +0 -1
- package/dist/atoms/index.mjs +0 -9
- package/dist/chunk-2K3Q24UF.js.map +0 -1
- package/dist/chunk-32HM6MDD.js +0 -98
- package/dist/chunk-32HM6MDD.js.map +0 -1
- package/dist/chunk-3FBCC4G3.js +0 -8
- package/dist/chunk-3FBCC4G3.js.map +0 -1
- package/dist/chunk-3UELCPIN.js +0 -46
- package/dist/chunk-3UELCPIN.js.map +0 -1
- package/dist/chunk-5IET37O4.js +0 -4210
- package/dist/chunk-5IET37O4.js.map +0 -1
- package/dist/chunk-AGAJMJ4T.js +0 -147
- package/dist/chunk-AGAJMJ4T.js.map +0 -1
- package/dist/chunk-AYHKQWHH.js +0 -68
- package/dist/chunk-AYHKQWHH.js.map +0 -1
- package/dist/chunk-DEYKTLA3.js +0 -1131
- package/dist/chunk-DEYKTLA3.js.map +0 -1
- package/dist/chunk-EFJEWLRL.js.map +0 -1
- package/dist/chunk-FMBQZAIP.mjs +0 -490
- package/dist/chunk-FMBQZAIP.mjs.map +0 -1
- package/dist/chunk-HAG77QBV.mjs +0 -98
- package/dist/chunk-HAG77QBV.mjs.map +0 -1
- package/dist/chunk-HR4H2FP7.mjs.map +0 -1
- package/dist/chunk-IKBA4AHN.mjs.map +0 -1
- package/dist/chunk-J7YDGYSW.mjs +0 -9332
- package/dist/chunk-J7YDGYSW.mjs.map +0 -1
- package/dist/chunk-JGFWIT2E.mjs +0 -1131
- package/dist/chunk-JGFWIT2E.mjs.map +0 -1
- package/dist/chunk-P2F54I7Q.mjs +0 -4210
- package/dist/chunk-P2F54I7Q.mjs.map +0 -1
- package/dist/chunk-PMXG5WBC.js.map +0 -1
- package/dist/chunk-Q2N6SQYW.mjs +0 -8
- package/dist/chunk-Q2N6SQYW.mjs.map +0 -1
- package/dist/chunk-Q4FXESVT.js +0 -490
- package/dist/chunk-Q4FXESVT.js.map +0 -1
- package/dist/chunk-RBIVEH2K.mjs +0 -147
- package/dist/chunk-RBIVEH2K.mjs.map +0 -1
- package/dist/chunk-SM63SZCP.mjs +0 -68
- package/dist/chunk-SM63SZCP.mjs.map +0 -1
- package/dist/chunk-SZZYEG3P.mjs +0 -46
- package/dist/chunk-SZZYEG3P.mjs.map +0 -1
- package/dist/chunk-VET55IZO.js.map +0 -1
- package/dist/chunk-YF5XQZDR.mjs.map +0 -1
- package/dist/config-BmnK65TD.d.mts +0 -35
- package/dist/config-BmnK65TD.d.ts +0 -35
- package/dist/config-DQeAo9Kf.d.mts +0 -49
- package/dist/config-DQeAo9Kf.d.ts +0 -49
- package/dist/content.fields-cHPdM8GJ.d.mts +0 -27
- package/dist/content.fields-cHPdM8GJ.d.ts +0 -27
- package/dist/d3.link.interface-ClC4Irqp.d.mts +0 -21
- package/dist/d3.link.interface-ClC4Irqp.d.ts +0 -21
- package/dist/features/index.d.mts +0 -477
- package/dist/features/index.d.ts +0 -477
- package/dist/features/index.js +0 -108
- package/dist/features/index.js.map +0 -1
- package/dist/features/index.mjs +0 -108
- package/dist/hooks/index.d.mts +0 -69
- package/dist/hooks/index.d.ts +0 -69
- package/dist/hooks/index.js +0 -55
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/index.mjs +0 -55
- package/dist/hooks/index.mjs.map +0 -1
- package/dist/interfaces/index.d.mts +0 -4
- package/dist/interfaces/index.d.ts +0 -4
- package/dist/interfaces/index.js +0 -2
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/index.mjs +0 -2
- package/dist/interfaces/index.mjs.map +0 -1
- package/dist/notification.interface-B2BrLoDA.d.mts +0 -14
- package/dist/notification.interface-DlZLnAfg.d.ts +0 -14
- package/dist/permissions/index.d.mts +0 -41
- package/dist/permissions/index.d.ts +0 -41
- package/dist/permissions/index.js +0 -14
- package/dist/permissions/index.js.map +0 -1
- package/dist/permissions/index.mjs +0 -14
- package/dist/permissions/index.mjs.map +0 -1
- package/dist/request-7FE3LJLV.mjs +0 -9
- package/dist/request-7FE3LJLV.mjs.map +0 -1
- package/dist/request-QFS7NEIE.js +0 -9
- package/dist/request-QFS7NEIE.js.map +0 -1
- package/dist/roles/index.d.mts +0 -39
- package/dist/roles/index.d.ts +0 -39
- package/dist/roles/index.js +0 -18
- package/dist/roles/index.js.map +0 -1
- package/dist/roles/index.mjs +0 -18
- package/dist/roles/index.mjs.map +0 -1
- package/dist/shadcnui/index.d.mts +0 -698
- package/dist/shadcnui/index.d.ts +0 -698
- package/dist/shadcnui/index.js +0 -468
- package/dist/shadcnui/index.js.map +0 -1
- package/dist/shadcnui/index.mjs +0 -467
- package/dist/shadcnui/index.mjs.map +0 -1
- package/dist/token-IJSPOMW6.mjs +0 -9
- package/dist/token-IJSPOMW6.mjs.map +0 -1
- package/dist/token-UYE7CV6X.js +0 -9
- package/dist/token-UYE7CV6X.js.map +0 -1
- package/dist/types-B2QRyqyK.d.ts +0 -39
- package/dist/types-CgvNmxTd.d.mts +0 -39
- package/dist/types-t2PyXhDu.d.mts +0 -116
- package/dist/types-t2PyXhDu.d.ts +0 -116
- package/dist/user.interface-CooB1R79.d.mts +0 -85
- package/dist/user.interface-KnIT9pVY.d.ts +0 -85
- package/dist/utils/index.d.mts +0 -224
- package/dist/utils/index.d.ts +0 -224
- package/dist/utils/index.js +0 -46
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/index.mjs +0 -46
- package/dist/utils/index.mjs.map +0 -1
- /package/dist/{JsonApiRequest-6UR7DIAR.mjs.map → JsonApiRequest-SYZ6FGCA.mjs.map} +0 -0
- /package/dist/{atoms/index.mjs.map → request-XABCMU25.mjs.map} +0 -0
- /package/dist/{features/index.mjs.map → token-EOK3N45S.mjs.map} +0 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
+
|
|
3
|
+
var _chunk7QVYU63Ejs = require('./chunk-7QVYU63E.js');
|
|
4
|
+
|
|
5
|
+
// src/client/config.ts
|
|
6
|
+
var _clientConfig = null;
|
|
7
|
+
function configureJsonApi(config) {
|
|
8
|
+
_clientConfig = config;
|
|
9
|
+
if (config.bootstrapper) {
|
|
10
|
+
config.bootstrapper();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
_chunk7QVYU63Ejs.__name.call(void 0, configureJsonApi, "configureJsonApi");
|
|
14
|
+
function configureClientConfig(config) {
|
|
15
|
+
_clientConfig = config;
|
|
16
|
+
}
|
|
17
|
+
_chunk7QVYU63Ejs.__name.call(void 0, configureClientConfig, "configureClientConfig");
|
|
18
|
+
function getApiUrl() {
|
|
19
|
+
if (_optionalChain([_clientConfig, 'optionalAccess', _ => _.apiUrl])) {
|
|
20
|
+
return _clientConfig.apiUrl;
|
|
21
|
+
}
|
|
22
|
+
if (typeof process !== "undefined" && _optionalChain([process, 'access', _2 => _2.env, 'optionalAccess', _3 => _3.NEXT_PUBLIC_API_URL])) {
|
|
23
|
+
return process.env.NEXT_PUBLIC_API_URL;
|
|
24
|
+
}
|
|
25
|
+
return "";
|
|
26
|
+
}
|
|
27
|
+
_chunk7QVYU63Ejs.__name.call(void 0, getApiUrl, "getApiUrl");
|
|
28
|
+
function getAppUrl() {
|
|
29
|
+
if (_optionalChain([_clientConfig, 'optionalAccess', _4 => _4.appUrl])) {
|
|
30
|
+
return _clientConfig.appUrl;
|
|
31
|
+
}
|
|
32
|
+
if (typeof process !== "undefined" && _optionalChain([process, 'access', _5 => _5.env, 'optionalAccess', _6 => _6.NEXT_PUBLIC_APP_URL])) {
|
|
33
|
+
return process.env.NEXT_PUBLIC_APP_URL;
|
|
34
|
+
}
|
|
35
|
+
if (typeof window !== "undefined") {
|
|
36
|
+
return window.location.origin;
|
|
37
|
+
}
|
|
38
|
+
return "";
|
|
39
|
+
}
|
|
40
|
+
_chunk7QVYU63Ejs.__name.call(void 0, getAppUrl, "getAppUrl");
|
|
41
|
+
function getTrackablePages() {
|
|
42
|
+
return _nullishCoalesce(_optionalChain([_clientConfig, 'optionalAccess', _7 => _7.trackablePages]), () => ( []));
|
|
43
|
+
}
|
|
44
|
+
_chunk7QVYU63Ejs.__name.call(void 0, getTrackablePages, "getTrackablePages");
|
|
45
|
+
|
|
46
|
+
// src/i18n/config.ts
|
|
47
|
+
var _config = null;
|
|
48
|
+
function configureI18n(config) {
|
|
49
|
+
_config = config;
|
|
50
|
+
}
|
|
51
|
+
_chunk7QVYU63Ejs.__name.call(void 0, configureI18n, "configureI18n");
|
|
52
|
+
function useI18nRouter() {
|
|
53
|
+
if (!_optionalChain([_config, 'optionalAccess', _8 => _8.useRouter])) {
|
|
54
|
+
throw new Error("i18n not configured. Call configureI18n() at app startup.");
|
|
55
|
+
}
|
|
56
|
+
return _config.useRouter();
|
|
57
|
+
}
|
|
58
|
+
_chunk7QVYU63Ejs.__name.call(void 0, useI18nRouter, "useI18nRouter");
|
|
59
|
+
function useI18nTranslations(namespace) {
|
|
60
|
+
if (!_optionalChain([_config, 'optionalAccess', _9 => _9.useTranslations])) {
|
|
61
|
+
return (key) => key;
|
|
62
|
+
}
|
|
63
|
+
return _config.useTranslations(namespace);
|
|
64
|
+
}
|
|
65
|
+
_chunk7QVYU63Ejs.__name.call(void 0, useI18nTranslations, "useI18nTranslations");
|
|
66
|
+
function getI18nLink() {
|
|
67
|
+
if (!_optionalChain([_config, 'optionalAccess', _10 => _10.Link])) {
|
|
68
|
+
throw new Error("i18n not configured. Call configureI18n() at app startup.");
|
|
69
|
+
}
|
|
70
|
+
return _config.Link;
|
|
71
|
+
}
|
|
72
|
+
_chunk7QVYU63Ejs.__name.call(void 0, getI18nLink, "getI18nLink");
|
|
73
|
+
function useI18nLocale() {
|
|
74
|
+
if (_optionalChain([_config, 'optionalAccess', _11 => _11.useLocale])) {
|
|
75
|
+
return _config.useLocale();
|
|
76
|
+
}
|
|
77
|
+
return "en";
|
|
78
|
+
}
|
|
79
|
+
_chunk7QVYU63Ejs.__name.call(void 0, useI18nLocale, "useI18nLocale");
|
|
80
|
+
function useI18nDateFnsLocale() {
|
|
81
|
+
if (_optionalChain([_config, 'optionalAccess', _12 => _12.useDateFnsLocale])) {
|
|
82
|
+
return _config.useDateFnsLocale();
|
|
83
|
+
}
|
|
84
|
+
return void 0;
|
|
85
|
+
}
|
|
86
|
+
_chunk7QVYU63Ejs.__name.call(void 0, useI18nDateFnsLocale, "useI18nDateFnsLocale");
|
|
87
|
+
|
|
88
|
+
// src/discord/config.ts
|
|
89
|
+
var _useDiscord = false;
|
|
90
|
+
var _useInternalAuth = true;
|
|
91
|
+
function configureDiscord(params) {
|
|
92
|
+
_useDiscord = params.useDiscord;
|
|
93
|
+
_useInternalAuth = params.useInternalAuth;
|
|
94
|
+
}
|
|
95
|
+
_chunk7QVYU63Ejs.__name.call(void 0, configureDiscord, "configureDiscord");
|
|
96
|
+
function isDiscordConfigured() {
|
|
97
|
+
return _useDiscord;
|
|
98
|
+
}
|
|
99
|
+
_chunk7QVYU63Ejs.__name.call(void 0, isDiscordConfigured, "isDiscordConfigured");
|
|
100
|
+
function isInternalAuthConfigured() {
|
|
101
|
+
return _useInternalAuth;
|
|
102
|
+
}
|
|
103
|
+
_chunk7QVYU63Ejs.__name.call(void 0, isInternalAuthConfigured, "isInternalAuthConfigured");
|
|
104
|
+
|
|
105
|
+
// src/roles/config.ts
|
|
106
|
+
var _roleId = null;
|
|
107
|
+
function configureRoles(roleId) {
|
|
108
|
+
_roleId = roleId;
|
|
109
|
+
}
|
|
110
|
+
_chunk7QVYU63Ejs.__name.call(void 0, configureRoles, "configureRoles");
|
|
111
|
+
function getRoleId() {
|
|
112
|
+
if (!_roleId) {
|
|
113
|
+
throw new Error("Roles not configured. Call configureRoles() at app startup.");
|
|
114
|
+
}
|
|
115
|
+
return _roleId;
|
|
116
|
+
}
|
|
117
|
+
_chunk7QVYU63Ejs.__name.call(void 0, getRoleId, "getRoleId");
|
|
118
|
+
function isRolesConfigured() {
|
|
119
|
+
return _roleId !== null;
|
|
120
|
+
}
|
|
121
|
+
_chunk7QVYU63Ejs.__name.call(void 0, isRolesConfigured, "isRolesConfigured");
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
exports.configureJsonApi = configureJsonApi; exports.configureClientConfig = configureClientConfig; exports.getApiUrl = getApiUrl; exports.getAppUrl = getAppUrl; exports.getTrackablePages = getTrackablePages; exports.configureI18n = configureI18n; exports.useI18nRouter = useI18nRouter; exports.useI18nTranslations = useI18nTranslations; exports.getI18nLink = getI18nLink; exports.useI18nLocale = useI18nLocale; exports.useI18nDateFnsLocale = useI18nDateFnsLocale; exports.configureDiscord = configureDiscord; exports.isDiscordConfigured = isDiscordConfigured; exports.isInternalAuthConfigured = isInternalAuthConfigured; exports.configureRoles = configureRoles; exports.getRoleId = getRoleId; exports.isRolesConfigured = isRolesConfigured;
|
|
142
|
+
//# sourceMappingURL=chunk-AGWQ75PQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/chunk-AGWQ75PQ.js","../src/client/config.ts","../src/i18n/config.ts","../src/discord/config.ts","../src/roles/config.ts"],"names":[],"mappings":"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","file":"/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/chunk-AGWQ75PQ.js","sourcesContent":[null,"\"use client\";\n\nimport { ModuleWithPermissions } from \"../permissions/types\";\n\n// Config storage for client-side 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. This is the main configuration function.\n * This is typically called during app initialization.\n */\nexport function configureJsonApi(config: {\n apiUrl: string;\n appUrl?: string;\n trackablePages?: ModuleWithPermissions[];\n bootstrapper?: () => void;\n additionalHeaders?: Record<string, string>;\n}): void {\n _clientConfig = config;\n // Call bootstrapper immediately to register all modules\n if (config.bootstrapper) {\n config.bootstrapper();\n }\n}\n\n/**\n * Configure the client config. This is typically called during app initialization.\n * @deprecated Use configureJsonApi instead\n */\nexport function configureClientConfig(config: {\n apiUrl: string;\n appUrl?: string;\n trackablePages?: ModuleWithPermissions[];\n}): void {\n _clientConfig = config;\n}\n\n/**\n * Get the configured API URL.\n */\nexport function getApiUrl(): string {\n if (_clientConfig?.apiUrl) {\n return _clientConfig.apiUrl;\n }\n if (typeof process !== \"undefined\" && process.env?.NEXT_PUBLIC_API_URL) {\n return process.env.NEXT_PUBLIC_API_URL;\n }\n return \"\";\n}\n\n/**\n * Get the configured app URL.\n */\nexport function getAppUrl(): string {\n if (_clientConfig?.appUrl) {\n return _clientConfig.appUrl;\n }\n if (typeof process !== \"undefined\" && process.env?.NEXT_PUBLIC_APP_URL) {\n return process.env.NEXT_PUBLIC_APP_URL;\n }\n if (typeof window !== \"undefined\") {\n return window.location.origin;\n }\n return \"\";\n}\n\n/**\n * Get the configured trackable pages.\n */\nexport function getTrackablePages(): ModuleWithPermissions[] {\n return _clientConfig?.trackablePages ?? [];\n}\n","import { ComponentType } from \"react\";\n\n// Types for injected hooks\nexport interface I18nRouter {\n push: (href: string) => void;\n replace: (href: string) => void;\n back: () => void;\n forward: () => void;\n refresh: () => void;\n prefetch: (href: string) => void;\n}\n\nexport type UseRouterHook = () => I18nRouter;\nexport type UseTranslationsHook = (namespace?: string) => (key: string, values?: Record<string, any>) => string;\nexport type UseLocaleHook = () => string;\n\nexport type UseDateFnsLocaleHook = () => any; // date-fns Locale type\nexport type LinkComponent = ComponentType<{ href: string; children: React.ReactNode; [key: string]: any }>;\n\nexport interface I18nConfig {\n useRouter: UseRouterHook;\n useTranslations: UseTranslationsHook;\n useLocale?: UseLocaleHook;\n useDateFnsLocale?: UseDateFnsLocaleHook;\n Link: LinkComponent;\n usePathname: () => string;\n}\n\n// Private storage\nlet _config: I18nConfig | null = null;\n\n// Configuration function (called by app at startup)\nexport function configureI18n(config: I18nConfig): void {\n _config = config;\n}\n\n// Hooks for library components to use\nexport function useI18nRouter(): I18nRouter {\n if (!_config?.useRouter) {\n throw new Error(\"i18n not configured. Call configureI18n() at app startup.\");\n }\n return _config.useRouter();\n}\n\nexport function useI18nTranslations(namespace?: string): (key: string, values?: Record<string, any>) => string {\n if (!_config?.useTranslations) {\n // Fallback: return key as-is (safe for server/client)\n return (key: string) => key;\n }\n return _config.useTranslations(namespace);\n}\n\nexport function getI18nLink(): LinkComponent {\n if (!_config?.Link) {\n throw new Error(\"i18n not configured. Call configureI18n() at app startup.\");\n }\n return _config.Link;\n}\n\nexport function useI18nLocale(): string {\n if (_config?.useLocale) {\n return _config.useLocale();\n }\n // Fallback to English (safe for server/client)\n return \"en\";\n}\n\nexport function useI18nDateFnsLocale(): any {\n if (_config?.useDateFnsLocale) {\n return _config.useDateFnsLocale();\n }\n // Fallback to undefined (Calendar will use default)\n return undefined;\n}\n","let _useDiscord: boolean = false;\nlet _useInternalAuth: boolean = true;\n\nexport function configureDiscord(params: { useDiscord: boolean; useInternalAuth: boolean }): void {\n _useDiscord = params.useDiscord;\n _useInternalAuth = params.useInternalAuth;\n}\n\nexport function isDiscordConfigured(): boolean {\n return _useDiscord;\n}\n\nexport function isInternalAuthConfigured(): boolean {\n return _useInternalAuth;\n}\n","/**\n * Role ID configuration interface\n * Apps provide their role IDs via configureRoles()\n */\nexport interface RoleIdConfig {\n Administrator: string;\n CompanyAdministrator: string;\n [key: string]: string; // Allow additional roles\n}\n\n// Private storage for the injected role IDs\nlet _roleId: RoleIdConfig | null = null;\n\n/**\n * Configure role IDs for the library\n * Call this at app startup to provide role ID constants\n *\n * @example\n * ```typescript\n * import { configureRoles } from \"@carlonicora/nextjs-jsonapi\";\n * import { RoleId } from \"@phlow/shared\";\n *\n * configureRoles(RoleId);\n * ```\n */\nexport function configureRoles(roleId: RoleIdConfig): void {\n _roleId = roleId;\n}\n\n/**\n * Get configured role IDs\n * @throws Error if roles not configured\n */\nexport function getRoleId(): RoleIdConfig {\n if (!_roleId) {\n throw new Error(\"Roles not configured. Call configureRoles() at app startup.\");\n }\n return _roleId;\n}\n\n/**\n * Check if roles have been configured\n */\nexport function isRolesConfigured(): boolean {\n return _roleId !== null;\n}\n"]}
|
|
@@ -1,10 +1,142 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;
|
|
2
2
|
|
|
3
|
+
var _chunk7QVYU63Ejs = require('./chunk-7QVYU63E.js');
|
|
3
4
|
|
|
4
|
-
|
|
5
|
+
// src/core/registry/DataClassRegistry.ts
|
|
6
|
+
var DataClassRegistry = (_class = class {
|
|
7
|
+
static {
|
|
8
|
+
_chunk7QVYU63Ejs.__name.call(void 0, this, "DataClassRegistry");
|
|
9
|
+
}
|
|
10
|
+
static __initStatic() {this._map = /* @__PURE__ */ new Map()}
|
|
11
|
+
static registerObjectClass(key, classConstructor) {
|
|
12
|
+
const classKey = key.name;
|
|
13
|
+
if (!this._map.has(classKey)) {
|
|
14
|
+
this._map.set(classKey, classConstructor);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
static get(classKey) {
|
|
18
|
+
const response = this._map.get(classKey.name);
|
|
19
|
+
if (!response) {
|
|
20
|
+
throw new Error(`Class not registered for key: ${typeof classKey === "string" ? classKey : classKey.name}`);
|
|
21
|
+
}
|
|
22
|
+
return response;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Bootstrap the registry with all modules.
|
|
26
|
+
* This is a convenience method for apps to register all their modules at once.
|
|
27
|
+
*
|
|
28
|
+
* @param modules - An object with module definitions (like the app's Modules class)
|
|
29
|
+
*/
|
|
30
|
+
static bootstrap(modules) {
|
|
31
|
+
Object.values(modules).forEach((module) => {
|
|
32
|
+
if (module && module.model) {
|
|
33
|
+
this.registerObjectClass(module, module.model);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Clear all registered classes. Useful for testing.
|
|
39
|
+
*/
|
|
40
|
+
static clear() {
|
|
41
|
+
this._map.clear();
|
|
42
|
+
}
|
|
43
|
+
}, _class.__initStatic(), _class);
|
|
5
44
|
|
|
45
|
+
// src/core/factories/JsonApiDataFactory.ts
|
|
46
|
+
var JsonApiDataFactory = class {
|
|
47
|
+
static {
|
|
48
|
+
_chunk7QVYU63Ejs.__name.call(void 0, this, "JsonApiDataFactory");
|
|
49
|
+
}
|
|
50
|
+
static create(classKey, data) {
|
|
51
|
+
const factoryClass = DataClassRegistry.get(classKey);
|
|
52
|
+
const instance = new factoryClass();
|
|
53
|
+
return instance.createJsonApi(data);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
6
56
|
|
|
7
|
-
|
|
57
|
+
// src/core/utils/translateResponse.ts
|
|
58
|
+
function translateData(params) {
|
|
59
|
+
const factoryClass = DataClassRegistry.get(params.classKey);
|
|
60
|
+
if (!factoryClass) {
|
|
61
|
+
throw new Error(
|
|
62
|
+
`Class not registered for key: ${typeof params.classKey === "string" ? params.classKey : params.classKey.name}`
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
const included = _nullishCoalesce(params.data.included, () => ( []));
|
|
66
|
+
if (Array.isArray(params.data.data)) {
|
|
67
|
+
const responseData = [];
|
|
68
|
+
for (const data of params.data.data) {
|
|
69
|
+
const object = new factoryClass();
|
|
70
|
+
object.rehydrate({ jsonApi: data, included, allData: params.data.data });
|
|
71
|
+
responseData.push(object);
|
|
72
|
+
}
|
|
73
|
+
return responseData;
|
|
74
|
+
} else {
|
|
75
|
+
const responseData = new factoryClass();
|
|
76
|
+
responseData.rehydrate({
|
|
77
|
+
jsonApi: params.data.data,
|
|
78
|
+
included
|
|
79
|
+
});
|
|
80
|
+
return responseData;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
_chunk7QVYU63Ejs.__name.call(void 0, translateData, "translateData");
|
|
84
|
+
async function translateResponse(params) {
|
|
85
|
+
const response = {
|
|
86
|
+
ok: true,
|
|
87
|
+
response: 0,
|
|
88
|
+
data: [],
|
|
89
|
+
error: ""
|
|
90
|
+
};
|
|
91
|
+
const factoryClass = DataClassRegistry.get(params.classKey);
|
|
92
|
+
if (!factoryClass) {
|
|
93
|
+
throw new Error(
|
|
94
|
+
`Class not registered for key: ${typeof params.classKey === "string" ? params.classKey : params.classKey.name}`
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
response.ok = params.apiResponse.ok;
|
|
98
|
+
response.response = params.apiResponse.status;
|
|
99
|
+
if (!params.apiResponse.ok) {
|
|
100
|
+
response.error = _nullishCoalesce(_optionalChain([params, 'access', _ => _.apiResponse, 'optionalAccess', _2 => _2.data, 'optionalAccess', _3 => _3.message]), () => ( params.apiResponse.statusText));
|
|
101
|
+
return response;
|
|
102
|
+
}
|
|
103
|
+
if (params.apiResponse.status === 204) return response;
|
|
104
|
+
response.raw = params.apiResponse.data;
|
|
105
|
+
try {
|
|
106
|
+
const included = _nullishCoalesce(params.apiResponse.data.included, () => ( []));
|
|
107
|
+
if (params.apiResponse.data.links) {
|
|
108
|
+
response.self = params.apiResponse.data.links.self;
|
|
109
|
+
if (params.apiResponse.data.links.next && params.paginationHandler) {
|
|
110
|
+
response.next = params.apiResponse.data.links.next;
|
|
111
|
+
response.nextPage = async () => params.paginationHandler(params.apiResponse.data.links.next);
|
|
112
|
+
}
|
|
113
|
+
if (params.apiResponse.data.links.prev && params.paginationHandler) {
|
|
114
|
+
response.prev = params.apiResponse.data.links.prev;
|
|
115
|
+
response.prevPage = async () => params.paginationHandler(params.apiResponse.data.links.prev);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (Array.isArray(params.apiResponse.data.data)) {
|
|
119
|
+
const responseData = [];
|
|
120
|
+
for (const data of params.apiResponse.data.data) {
|
|
121
|
+
const object = new factoryClass();
|
|
122
|
+
object.rehydrate({ jsonApi: data, included, allData: params.apiResponse.data.data });
|
|
123
|
+
responseData.push(object);
|
|
124
|
+
}
|
|
125
|
+
response.data = responseData;
|
|
126
|
+
} else {
|
|
127
|
+
const responseData = new factoryClass();
|
|
128
|
+
responseData.rehydrate({
|
|
129
|
+
jsonApi: params.apiResponse.data.data,
|
|
130
|
+
included
|
|
131
|
+
});
|
|
132
|
+
response.data = responseData;
|
|
133
|
+
}
|
|
134
|
+
} catch (e) {
|
|
135
|
+
console.error(e);
|
|
136
|
+
}
|
|
137
|
+
return response;
|
|
138
|
+
}
|
|
139
|
+
_chunk7QVYU63Ejs.__name.call(void 0, translateResponse, "translateResponse");
|
|
8
140
|
|
|
9
141
|
// src/unified/JsonApiRequest.ts
|
|
10
142
|
var _directFetch;
|
|
@@ -22,7 +154,7 @@ _chunk7QVYU63Ejs.__name.call(void 0, configureJsonApi, "configureJsonApi");
|
|
|
22
154
|
async function getToken() {
|
|
23
155
|
if (typeof window === "undefined") {
|
|
24
156
|
if (!_getServerToken) {
|
|
25
|
-
const serverModule = await Promise.resolve().then(() => _interopRequireWildcard(require("./token-
|
|
157
|
+
const serverModule = await Promise.resolve().then(() => _interopRequireWildcard(require("./token-2UWQJY5T.js")));
|
|
26
158
|
_getServerToken = serverModule.getServerToken;
|
|
27
159
|
}
|
|
28
160
|
return _getServerToken();
|
|
@@ -53,7 +185,7 @@ async function makeRequest(params) {
|
|
|
53
185
|
});
|
|
54
186
|
} else {
|
|
55
187
|
if (!_serverRequest) {
|
|
56
|
-
const serverModule = await Promise.resolve().then(() => _interopRequireWildcard(require("./request-
|
|
188
|
+
const serverModule = await Promise.resolve().then(() => _interopRequireWildcard(require("./request-GBLBPYFM.js")));
|
|
57
189
|
_serverRequest = serverModule.serverRequest;
|
|
58
190
|
}
|
|
59
191
|
return _serverRequest({
|
|
@@ -71,7 +203,7 @@ async function makeRequest(params) {
|
|
|
71
203
|
}
|
|
72
204
|
_chunk7QVYU63Ejs.__name.call(void 0, makeRequest, "makeRequest");
|
|
73
205
|
function getApiUrl() {
|
|
74
|
-
if (_optionalChain([_staticConfig, 'optionalAccess',
|
|
206
|
+
if (_optionalChain([_staticConfig, 'optionalAccess', _4 => _4.apiUrl])) {
|
|
75
207
|
return _staticConfig.apiUrl;
|
|
76
208
|
}
|
|
77
209
|
const envUrl = process.env.NEXT_PUBLIC_API_URL;
|
|
@@ -82,7 +214,7 @@ function getApiUrl() {
|
|
|
82
214
|
}
|
|
83
215
|
_chunk7QVYU63Ejs.__name.call(void 0, getApiUrl, "getApiUrl");
|
|
84
216
|
function getAppUrl() {
|
|
85
|
-
if (_optionalChain([_staticConfig, 'optionalAccess',
|
|
217
|
+
if (_optionalChain([_staticConfig, 'optionalAccess', _5 => _5.appUrl])) {
|
|
86
218
|
return _staticConfig.appUrl;
|
|
87
219
|
}
|
|
88
220
|
const envUrl = process.env.NEXT_PUBLIC_ADDRESS;
|
|
@@ -95,11 +227,11 @@ function getAppUrl() {
|
|
|
95
227
|
}
|
|
96
228
|
_chunk7QVYU63Ejs.__name.call(void 0, getAppUrl, "getAppUrl");
|
|
97
229
|
function getTrackablePages() {
|
|
98
|
-
return _nullishCoalesce(_optionalChain([_staticConfig, 'optionalAccess',
|
|
230
|
+
return _nullishCoalesce(_optionalChain([_staticConfig, 'optionalAccess', _6 => _6.trackablePages]), () => ( []));
|
|
99
231
|
}
|
|
100
232
|
_chunk7QVYU63Ejs.__name.call(void 0, getTrackablePages, "getTrackablePages");
|
|
101
233
|
function runBootstrapper() {
|
|
102
|
-
if (_optionalChain([_staticConfig, 'optionalAccess',
|
|
234
|
+
if (_optionalChain([_staticConfig, 'optionalAccess', _7 => _7.bootstrapper])) {
|
|
103
235
|
_staticConfig.bootstrapper();
|
|
104
236
|
}
|
|
105
237
|
}
|
|
@@ -119,9 +251,9 @@ async function JsonApiGet(params) {
|
|
|
119
251
|
cache: params.classKey.cache,
|
|
120
252
|
companyId: params.companyId,
|
|
121
253
|
language: params.language,
|
|
122
|
-
additionalHeaders: _optionalChain([_staticConfig, 'optionalAccess',
|
|
254
|
+
additionalHeaders: _optionalChain([_staticConfig, 'optionalAccess', _8 => _8.additionalHeaders])
|
|
123
255
|
});
|
|
124
|
-
return
|
|
256
|
+
return translateResponse({
|
|
125
257
|
classKey: params.classKey,
|
|
126
258
|
apiResponse,
|
|
127
259
|
companyId: params.companyId,
|
|
@@ -142,7 +274,7 @@ async function JsonApiPost(params) {
|
|
|
142
274
|
if (!body) {
|
|
143
275
|
body = {};
|
|
144
276
|
} else if (params.overridesJsonApiCreation !== true) {
|
|
145
|
-
body =
|
|
277
|
+
body = JsonApiDataFactory.create(params.classKey, body);
|
|
146
278
|
}
|
|
147
279
|
const apiResponse = await makeRequest({
|
|
148
280
|
method: "POST",
|
|
@@ -152,9 +284,9 @@ async function JsonApiPost(params) {
|
|
|
152
284
|
files: params.files,
|
|
153
285
|
companyId: params.companyId,
|
|
154
286
|
language: params.language,
|
|
155
|
-
additionalHeaders: _optionalChain([_staticConfig, 'optionalAccess',
|
|
287
|
+
additionalHeaders: _optionalChain([_staticConfig, 'optionalAccess', _9 => _9.additionalHeaders])
|
|
156
288
|
});
|
|
157
|
-
return
|
|
289
|
+
return translateResponse({
|
|
158
290
|
classKey: _nullishCoalesce(params.responseType, () => ( params.classKey)),
|
|
159
291
|
apiResponse,
|
|
160
292
|
companyId: params.companyId,
|
|
@@ -169,7 +301,7 @@ async function JsonApiPut(params) {
|
|
|
169
301
|
if (!body) {
|
|
170
302
|
body = {};
|
|
171
303
|
} else {
|
|
172
|
-
body =
|
|
304
|
+
body = JsonApiDataFactory.create(params.classKey, body);
|
|
173
305
|
}
|
|
174
306
|
const apiResponse = await makeRequest({
|
|
175
307
|
method: "PUT",
|
|
@@ -179,9 +311,9 @@ async function JsonApiPut(params) {
|
|
|
179
311
|
files: params.files,
|
|
180
312
|
companyId: params.companyId,
|
|
181
313
|
language: params.language,
|
|
182
|
-
additionalHeaders: _optionalChain([_staticConfig, 'optionalAccess',
|
|
314
|
+
additionalHeaders: _optionalChain([_staticConfig, 'optionalAccess', _10 => _10.additionalHeaders])
|
|
183
315
|
});
|
|
184
|
-
return
|
|
316
|
+
return translateResponse({
|
|
185
317
|
classKey: _nullishCoalesce(params.responseType, () => ( params.classKey)),
|
|
186
318
|
apiResponse,
|
|
187
319
|
companyId: params.companyId,
|
|
@@ -196,7 +328,7 @@ async function JsonApiPatch(params) {
|
|
|
196
328
|
if (!body) {
|
|
197
329
|
body = {};
|
|
198
330
|
} else if (params.overridesJsonApiCreation !== true) {
|
|
199
|
-
body =
|
|
331
|
+
body = JsonApiDataFactory.create(params.classKey, body);
|
|
200
332
|
}
|
|
201
333
|
const apiResponse = await makeRequest({
|
|
202
334
|
method: "PATCH",
|
|
@@ -206,9 +338,9 @@ async function JsonApiPatch(params) {
|
|
|
206
338
|
files: params.files,
|
|
207
339
|
companyId: params.companyId,
|
|
208
340
|
language: params.language,
|
|
209
|
-
additionalHeaders: _optionalChain([_staticConfig, 'optionalAccess',
|
|
341
|
+
additionalHeaders: _optionalChain([_staticConfig, 'optionalAccess', _11 => _11.additionalHeaders])
|
|
210
342
|
});
|
|
211
|
-
return
|
|
343
|
+
return translateResponse({
|
|
212
344
|
classKey: _nullishCoalesce(params.responseType, () => ( params.classKey)),
|
|
213
345
|
apiResponse,
|
|
214
346
|
companyId: params.companyId,
|
|
@@ -225,9 +357,9 @@ async function JsonApiDelete(params) {
|
|
|
225
357
|
token,
|
|
226
358
|
companyId: params.companyId,
|
|
227
359
|
language: params.language,
|
|
228
|
-
additionalHeaders: _optionalChain([_staticConfig, 'optionalAccess',
|
|
360
|
+
additionalHeaders: _optionalChain([_staticConfig, 'optionalAccess', _12 => _12.additionalHeaders])
|
|
229
361
|
});
|
|
230
|
-
return
|
|
362
|
+
return translateResponse({
|
|
231
363
|
classKey: _nullishCoalesce(params.responseType, () => ( params.classKey)),
|
|
232
364
|
apiResponse,
|
|
233
365
|
companyId: params.companyId,
|
|
@@ -246,5 +378,9 @@ _chunk7QVYU63Ejs.__name.call(void 0, JsonApiDelete, "JsonApiDelete");
|
|
|
246
378
|
|
|
247
379
|
|
|
248
380
|
|
|
249
|
-
|
|
250
|
-
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
exports.DataClassRegistry = DataClassRegistry; exports.JsonApiDataFactory = JsonApiDataFactory; exports.translateData = translateData; exports.translateResponse = translateResponse; exports.configureJsonApi = configureJsonApi; exports.getApiUrl = getApiUrl; exports.getAppUrl = getAppUrl; exports.getTrackablePages = getTrackablePages; exports.JsonApiGet = JsonApiGet; exports.JsonApiPost = JsonApiPost; exports.JsonApiPut = JsonApiPut; exports.JsonApiPatch = JsonApiPatch; exports.JsonApiDelete = JsonApiDelete;
|
|
386
|
+
//# sourceMappingURL=chunk-CKS6SVUK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/chunk-CKS6SVUK.js","../src/core/registry/DataClassRegistry.ts","../src/core/factories/JsonApiDataFactory.ts","../src/core/utils/translateResponse.ts","../src/unified/JsonApiRequest.ts"],"names":[],"mappings":"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","file":"/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/chunk-CKS6SVUK.js","sourcesContent":[null,"import { ApiDataInterface } from \"../interfaces/ApiDataInterface\";\nimport { ApiRequestDataTypeInterface } from \"../interfaces/ApiRequestDataTypeInterface\";\n\nexport class DataClassRegistry {\n private static _map = new Map<string, { new (): ApiDataInterface }>();\n\n public static registerObjectClass(\n key: ApiRequestDataTypeInterface,\n classConstructor: { new (): ApiDataInterface },\n ): void {\n const classKey = key.name;\n if (!this._map.has(classKey)) {\n this._map.set(classKey, classConstructor);\n }\n }\n\n public static get(classKey: ApiRequestDataTypeInterface): {\n new (): ApiDataInterface;\n } {\n const response = this._map.get(classKey.name);\n if (!response) {\n throw new Error(`Class not registered for key: ${typeof classKey === \"string\" ? classKey : classKey.name}`);\n }\n\n return response;\n }\n\n /**\n * Bootstrap the registry with all modules.\n * This is a convenience method for apps to register all their modules at once.\n *\n * @param modules - An object with module definitions (like the app's Modules class)\n */\n public static bootstrap(modules: Record<string, ApiRequestDataTypeInterface>): void {\n Object.values(modules).forEach((module) => {\n if (module && module.model) {\n this.registerObjectClass(module, module.model);\n }\n });\n }\n\n /**\n * Clear all registered classes. Useful for testing.\n */\n public static clear(): void {\n this._map.clear();\n }\n}\n\n// Export alias for backward compatibility\nexport { DataClassRegistry as DataClass };\n","import { ApiDataInterface } from \"../interfaces/ApiDataInterface\";\nimport { ApiRequestDataTypeInterface } from \"../interfaces/ApiRequestDataTypeInterface\";\nimport { DataClassRegistry } from \"../registry/DataClassRegistry\";\n\nexport class JsonApiDataFactory {\n public static create(classKey: ApiRequestDataTypeInterface, data: any): any {\n const factoryClass = DataClassRegistry.get(classKey);\n\n const instance = new factoryClass() as ApiDataInterface;\n return instance.createJsonApi(data);\n }\n}\n","import { ApiData } from \"../interfaces/ApiData\";\nimport { ApiDataInterface } from \"../interfaces/ApiDataInterface\";\nimport { ApiRequestDataTypeInterface } from \"../interfaces/ApiRequestDataTypeInterface\";\nimport { ApiResponseInterface } from \"../interfaces/ApiResponseInterface\";\nimport { DataClassRegistry } from \"../registry/DataClassRegistry\";\n\n/**\n * Translates raw JSON:API data into typed objects.\n * Does not require API response metadata.\n */\nexport function translateData<T extends ApiDataInterface>(params: {\n classKey: ApiRequestDataTypeInterface;\n data: any;\n}): T | T[] {\n const factoryClass = DataClassRegistry.get(params.classKey);\n\n if (!factoryClass) {\n throw new Error(\n `Class not registered for key: ${typeof params.classKey === \"string\" ? params.classKey : params.classKey.name}`,\n );\n }\n\n const included: any = params.data.included ?? [];\n\n if (Array.isArray(params.data.data)) {\n const responseData: T[] = [];\n\n for (const data of params.data.data) {\n const object = new factoryClass();\n object.rehydrate({ jsonApi: data, included: included, allData: params.data.data });\n responseData.push(object as T);\n }\n\n return responseData as T[];\n } else {\n const responseData = new factoryClass();\n responseData.rehydrate({\n jsonApi: params.data.data,\n included: included,\n });\n\n return responseData as T;\n }\n}\n\n/**\n * Translates a full API response into a typed ApiResponseInterface.\n * Includes pagination support.\n */\nexport async function translateResponse<T extends ApiDataInterface>(params: {\n classKey: ApiRequestDataTypeInterface;\n apiResponse: ApiData;\n companyId?: string;\n language: string;\n paginationHandler?: (endpoint: string) => Promise<ApiResponseInterface>;\n}): Promise<ApiResponseInterface> {\n const response: ApiResponseInterface = {\n ok: true,\n response: 0,\n data: [],\n error: \"\",\n };\n\n const factoryClass = DataClassRegistry.get(params.classKey);\n\n if (!factoryClass) {\n throw new Error(\n `Class not registered for key: ${typeof params.classKey === \"string\" ? params.classKey : params.classKey.name}`,\n );\n }\n\n response.ok = params.apiResponse.ok;\n response.response = params.apiResponse.status;\n\n if (!params.apiResponse.ok) {\n response.error = params.apiResponse?.data?.message ?? params.apiResponse.statusText;\n return response;\n }\n\n if (params.apiResponse.status === 204) return response;\n\n response.raw = params.apiResponse.data;\n\n try {\n const included: any = params.apiResponse.data.included ?? [];\n\n if (params.apiResponse.data.links) {\n response.self = params.apiResponse.data.links.self;\n\n if (params.apiResponse.data.links.next && params.paginationHandler) {\n response.next = params.apiResponse.data.links.next;\n response.nextPage = async () => params.paginationHandler!(params.apiResponse.data.links.next);\n }\n\n if (params.apiResponse.data.links.prev && params.paginationHandler) {\n response.prev = params.apiResponse.data.links.prev;\n response.prevPage = async () => params.paginationHandler!(params.apiResponse.data.links.prev);\n }\n }\n\n if (Array.isArray(params.apiResponse.data.data)) {\n const responseData: T[] = [];\n\n for (const data of params.apiResponse.data.data) {\n const object = new factoryClass();\n object.rehydrate({ jsonApi: data, included: included, allData: params.apiResponse.data.data });\n responseData.push(object as T);\n }\n\n response.data = responseData;\n } else {\n const responseData = new factoryClass();\n responseData.rehydrate({\n jsonApi: params.apiResponse.data.data,\n included: included,\n });\n\n response.data = responseData;\n }\n } catch (e) {\n console.error(e);\n }\n\n return response;\n}\n","import { JsonApiDataFactory } from \"../core/factories/JsonApiDataFactory\";\nimport { ApiData } from \"../core/interfaces/ApiData\";\nimport { ApiRequestDataTypeInterface } from \"../core/interfaces/ApiRequestDataTypeInterface\";\nimport { ApiResponseInterface } from \"../core/interfaces/ApiResponseInterface\";\nimport { translateResponse } from \"../core/utils/translateResponse\";\nimport { ModuleWithPermissions } from \"../permissions/types\";\n\n// Type definitions for dynamically imported functions (avoiding typeof import to prevent bundling)\ntype DirectFetchFn = (params: {\n method: string;\n url: string;\n token?: string;\n body?: any;\n files?: { [key: string]: File | Blob } | File | Blob;\n companyId?: string;\n language: string;\n additionalHeaders?: Record<string, string>;\n}) => Promise<ApiData>;\n\ntype ServerRequestFn = (params: {\n method: string;\n url: string;\n token?: string;\n cache?: string;\n body?: any;\n files?: { [key: string]: File | Blob } | File | Blob;\n companyId?: string;\n language: string;\n additionalHeaders?: Record<string, string>;\n}) => Promise<ApiData>;\n\ntype GetTokenFn = () => Promise<string | undefined>;\n\n// These will be dynamically imported based on environment\nlet _directFetch: DirectFetchFn;\nlet _serverRequest: ServerRequestFn;\nlet _getClientToken: GetTokenFn;\nlet _getServerToken: GetTokenFn;\n\n// Config storage for non-React contexts\nlet _staticConfig: {\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 non-React contexts (e.g., server components).\n * For React contexts, use JsonApiProvider instead.\n */\nexport function configureJsonApi(config: {\n apiUrl: string;\n appUrl?: string;\n trackablePages?: ModuleWithPermissions[];\n bootstrapper?: () => void;\n additionalHeaders?: Record<string, string>;\n}): void {\n _staticConfig = config;\n // Call bootstrapper immediately to register all modules\n if (config.bootstrapper) {\n config.bootstrapper();\n }\n}\n\nasync function getToken(): Promise<string | undefined> {\n if (typeof window === \"undefined\") {\n // Server-side\n if (!_getServerToken) {\n const serverModule = await import(\"../server/token\");\n _getServerToken = serverModule.getServerToken;\n }\n return _getServerToken();\n } else {\n // Client-side\n if (!_getClientToken) {\n const clientModule = await import(\"../client/token\");\n _getClientToken = clientModule.getClientToken;\n }\n return _getClientToken();\n }\n}\n\nasync function makeRequest(params: {\n method: string;\n url: string;\n token?: string;\n cache?: string;\n body?: any;\n files?: { [key: string]: File | Blob } | File | Blob;\n companyId?: string;\n language: string;\n additionalHeaders?: Record<string, string>;\n}): Promise<ApiData> {\n if (typeof window !== \"undefined\") {\n // Client-side: use direct fetch\n if (!_directFetch) {\n const clientModule = await import(\"../client/request\");\n _directFetch = clientModule.directFetch;\n }\n return _directFetch({\n method: params.method,\n url: params.url,\n token: params.token,\n body: params.body,\n files: params.files,\n companyId: params.companyId,\n language: params.language,\n additionalHeaders: params.additionalHeaders,\n });\n } else {\n // Server-side: use server request with caching\n if (!_serverRequest) {\n const serverModule = await import(\"../server/request\");\n _serverRequest = serverModule.serverRequest;\n }\n return _serverRequest({\n method: params.method,\n url: params.url,\n token: params.token,\n cache: params.cache,\n body: params.body,\n files: params.files,\n companyId: params.companyId,\n language: params.language,\n additionalHeaders: params.additionalHeaders,\n });\n }\n}\n\nexport function getApiUrl(): string {\n if (_staticConfig?.apiUrl) {\n return _staticConfig.apiUrl;\n }\n // Fallback to environment variable\n const envUrl = process.env.NEXT_PUBLIC_API_URL;\n if (!envUrl) {\n throw new Error(\"API URL not configured. Use configureJsonApi() or set NEXT_PUBLIC_API_URL environment variable.\");\n }\n return envUrl;\n}\n\nexport function getAppUrl(): string {\n if (_staticConfig?.appUrl) {\n return _staticConfig.appUrl;\n }\n // Fallback to environment variable\n const envUrl = process.env.NEXT_PUBLIC_ADDRESS;\n if (!envUrl) {\n throw new Error(\n \"App URL not configured. Use configureJsonApi({ appUrl }) or set NEXT_PUBLIC_ADDRESS environment variable.\",\n );\n }\n return envUrl.trim().replace(/\\/+$/, \"\");\n}\n\nexport function getTrackablePages(): ModuleWithPermissions[] {\n return _staticConfig?.trackablePages ?? [];\n}\n\nfunction runBootstrapper(): void {\n if (_staticConfig?.bootstrapper) {\n _staticConfig.bootstrapper();\n }\n}\n\nfunction buildUrl(endpoint: string): string {\n const apiUrl = getApiUrl();\n return endpoint.startsWith(\"http\") ? endpoint : `${apiUrl}${endpoint}`;\n}\n\nexport async function JsonApiGet(params: {\n classKey: ApiRequestDataTypeInterface;\n endpoint: string;\n companyId?: string;\n language: string;\n}): Promise<ApiResponseInterface> {\n runBootstrapper();\n const token = await getToken();\n\n const apiResponse = await makeRequest({\n method: \"GET\",\n url: buildUrl(params.endpoint),\n token,\n cache: params.classKey.cache,\n companyId: params.companyId,\n language: params.language,\n additionalHeaders: _staticConfig?.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 JsonApiGet({\n classKey: params.classKey,\n endpoint,\n companyId: params.companyId,\n language: params.language,\n }),\n });\n}\n\nexport async function JsonApiPost(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}): Promise<ApiResponseInterface> {\n runBootstrapper();\n const token = await getToken();\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 makeRequest({\n method: \"POST\",\n url: buildUrl(params.endpoint),\n token,\n body,\n files: params.files,\n companyId: params.companyId,\n language: params.language,\n additionalHeaders: _staticConfig?.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 JsonApiPut(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}): Promise<ApiResponseInterface> {\n runBootstrapper();\n const token = await getToken();\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 makeRequest({\n method: \"PUT\",\n url: buildUrl(params.endpoint),\n token,\n body,\n files: params.files,\n companyId: params.companyId,\n language: params.language,\n additionalHeaders: _staticConfig?.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 JsonApiPatch(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}): Promise<ApiResponseInterface> {\n runBootstrapper();\n const token = await getToken();\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 makeRequest({\n method: \"PATCH\",\n url: buildUrl(params.endpoint),\n token,\n body,\n files: params.files,\n companyId: params.companyId,\n language: params.language,\n additionalHeaders: _staticConfig?.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 JsonApiDelete(params: {\n classKey: ApiRequestDataTypeInterface;\n endpoint: string;\n companyId?: string;\n language: string;\n responseType?: ApiRequestDataTypeInterface;\n}): Promise<ApiResponseInterface> {\n runBootstrapper();\n const token = await getToken();\n\n const apiResponse = await makeRequest({\n method: \"DELETE\",\n url: buildUrl(params.endpoint),\n token,\n companyId: params.companyId,\n language: params.language,\n additionalHeaders: _staticConfig?.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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/token.ts"],"sourcesContent":["// Server-only utilities (NOT server actions - these cannot be called from client components)\n\n/**\n * Get the authentication token from cookies (server-side)\n */\nexport async function getServerToken(): Promise<string | undefined> {\n const { cookies } = await import(\"next/headers\");\n const cookieStore = await cookies();\n return cookieStore.get(\"token\")?.value;\n}\n"],"mappings":";;;;;AAKA,eAAsB,iBAA8C;AAClE,QAAM,EAAE,QAAQ,IAAI,MAAM,OAAO,cAAc;AAC/C,QAAM,cAAc,MAAM,QAAQ;AAClC,SAAO,YAAY,IAAI,OAAO,GAAG;AACnC;AAJsB;","names":[]}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__name
|
|
3
|
+
} from "./chunk-PAWJFY3S.mjs";
|
|
4
|
+
|
|
5
|
+
// src/client/config.ts
|
|
6
|
+
var _clientConfig = null;
|
|
7
|
+
function configureJsonApi(config) {
|
|
8
|
+
_clientConfig = config;
|
|
9
|
+
if (config.bootstrapper) {
|
|
10
|
+
config.bootstrapper();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
__name(configureJsonApi, "configureJsonApi");
|
|
14
|
+
function configureClientConfig(config) {
|
|
15
|
+
_clientConfig = config;
|
|
16
|
+
}
|
|
17
|
+
__name(configureClientConfig, "configureClientConfig");
|
|
18
|
+
function getApiUrl() {
|
|
19
|
+
if (_clientConfig?.apiUrl) {
|
|
20
|
+
return _clientConfig.apiUrl;
|
|
21
|
+
}
|
|
22
|
+
if (typeof process !== "undefined" && process.env?.NEXT_PUBLIC_API_URL) {
|
|
23
|
+
return process.env.NEXT_PUBLIC_API_URL;
|
|
24
|
+
}
|
|
25
|
+
return "";
|
|
26
|
+
}
|
|
27
|
+
__name(getApiUrl, "getApiUrl");
|
|
28
|
+
function getAppUrl() {
|
|
29
|
+
if (_clientConfig?.appUrl) {
|
|
30
|
+
return _clientConfig.appUrl;
|
|
31
|
+
}
|
|
32
|
+
if (typeof process !== "undefined" && process.env?.NEXT_PUBLIC_APP_URL) {
|
|
33
|
+
return process.env.NEXT_PUBLIC_APP_URL;
|
|
34
|
+
}
|
|
35
|
+
if (typeof window !== "undefined") {
|
|
36
|
+
return window.location.origin;
|
|
37
|
+
}
|
|
38
|
+
return "";
|
|
39
|
+
}
|
|
40
|
+
__name(getAppUrl, "getAppUrl");
|
|
41
|
+
function getTrackablePages() {
|
|
42
|
+
return _clientConfig?.trackablePages ?? [];
|
|
43
|
+
}
|
|
44
|
+
__name(getTrackablePages, "getTrackablePages");
|
|
45
|
+
|
|
46
|
+
// src/i18n/config.ts
|
|
47
|
+
var _config = null;
|
|
48
|
+
function configureI18n(config) {
|
|
49
|
+
_config = config;
|
|
50
|
+
}
|
|
51
|
+
__name(configureI18n, "configureI18n");
|
|
52
|
+
function useI18nRouter() {
|
|
53
|
+
if (!_config?.useRouter) {
|
|
54
|
+
throw new Error("i18n not configured. Call configureI18n() at app startup.");
|
|
55
|
+
}
|
|
56
|
+
return _config.useRouter();
|
|
57
|
+
}
|
|
58
|
+
__name(useI18nRouter, "useI18nRouter");
|
|
59
|
+
function useI18nTranslations(namespace) {
|
|
60
|
+
if (!_config?.useTranslations) {
|
|
61
|
+
return (key) => key;
|
|
62
|
+
}
|
|
63
|
+
return _config.useTranslations(namespace);
|
|
64
|
+
}
|
|
65
|
+
__name(useI18nTranslations, "useI18nTranslations");
|
|
66
|
+
function getI18nLink() {
|
|
67
|
+
if (!_config?.Link) {
|
|
68
|
+
throw new Error("i18n not configured. Call configureI18n() at app startup.");
|
|
69
|
+
}
|
|
70
|
+
return _config.Link;
|
|
71
|
+
}
|
|
72
|
+
__name(getI18nLink, "getI18nLink");
|
|
73
|
+
function useI18nLocale() {
|
|
74
|
+
if (_config?.useLocale) {
|
|
75
|
+
return _config.useLocale();
|
|
76
|
+
}
|
|
77
|
+
return "en";
|
|
78
|
+
}
|
|
79
|
+
__name(useI18nLocale, "useI18nLocale");
|
|
80
|
+
function useI18nDateFnsLocale() {
|
|
81
|
+
if (_config?.useDateFnsLocale) {
|
|
82
|
+
return _config.useDateFnsLocale();
|
|
83
|
+
}
|
|
84
|
+
return void 0;
|
|
85
|
+
}
|
|
86
|
+
__name(useI18nDateFnsLocale, "useI18nDateFnsLocale");
|
|
87
|
+
|
|
88
|
+
// src/discord/config.ts
|
|
89
|
+
var _useDiscord = false;
|
|
90
|
+
var _useInternalAuth = true;
|
|
91
|
+
function configureDiscord(params) {
|
|
92
|
+
_useDiscord = params.useDiscord;
|
|
93
|
+
_useInternalAuth = params.useInternalAuth;
|
|
94
|
+
}
|
|
95
|
+
__name(configureDiscord, "configureDiscord");
|
|
96
|
+
function isDiscordConfigured() {
|
|
97
|
+
return _useDiscord;
|
|
98
|
+
}
|
|
99
|
+
__name(isDiscordConfigured, "isDiscordConfigured");
|
|
100
|
+
function isInternalAuthConfigured() {
|
|
101
|
+
return _useInternalAuth;
|
|
102
|
+
}
|
|
103
|
+
__name(isInternalAuthConfigured, "isInternalAuthConfigured");
|
|
104
|
+
|
|
105
|
+
// src/roles/config.ts
|
|
106
|
+
var _roleId = null;
|
|
107
|
+
function configureRoles(roleId) {
|
|
108
|
+
_roleId = roleId;
|
|
109
|
+
}
|
|
110
|
+
__name(configureRoles, "configureRoles");
|
|
111
|
+
function getRoleId() {
|
|
112
|
+
if (!_roleId) {
|
|
113
|
+
throw new Error("Roles not configured. Call configureRoles() at app startup.");
|
|
114
|
+
}
|
|
115
|
+
return _roleId;
|
|
116
|
+
}
|
|
117
|
+
__name(getRoleId, "getRoleId");
|
|
118
|
+
function isRolesConfigured() {
|
|
119
|
+
return _roleId !== null;
|
|
120
|
+
}
|
|
121
|
+
__name(isRolesConfigured, "isRolesConfigured");
|
|
122
|
+
|
|
123
|
+
export {
|
|
124
|
+
configureJsonApi,
|
|
125
|
+
configureClientConfig,
|
|
126
|
+
getApiUrl,
|
|
127
|
+
getAppUrl,
|
|
128
|
+
getTrackablePages,
|
|
129
|
+
configureI18n,
|
|
130
|
+
useI18nRouter,
|
|
131
|
+
useI18nTranslations,
|
|
132
|
+
getI18nLink,
|
|
133
|
+
useI18nLocale,
|
|
134
|
+
useI18nDateFnsLocale,
|
|
135
|
+
configureDiscord,
|
|
136
|
+
isDiscordConfigured,
|
|
137
|
+
isInternalAuthConfigured,
|
|
138
|
+
configureRoles,
|
|
139
|
+
getRoleId,
|
|
140
|
+
isRolesConfigured
|
|
141
|
+
};
|
|
142
|
+
//# sourceMappingURL=chunk-IGOWVLJH.mjs.map
|