@carlonicora/nextjs-jsonapi 1.8.1 → 1.9.1

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.
Files changed (67) hide show
  1. package/dist/{BlockNoteEditor-KSPPX6JO.js → BlockNoteEditor-PX5RPSZR.js} +15 -15
  2. package/dist/{BlockNoteEditor-KSPPX6JO.js.map → BlockNoteEditor-PX5RPSZR.js.map} +1 -1
  3. package/dist/{BlockNoteEditor-N534QVBR.mjs → BlockNoteEditor-TF7MR7IP.mjs} +5 -5
  4. package/dist/{JsonApiRequest-SYZ6FGCA.mjs → JsonApiRequest-ARXYJ2AG.mjs} +2 -2
  5. package/dist/JsonApiRequest-FZAFAES3.js +24 -0
  6. package/dist/{JsonApiRequest-2OM5NDAW.js.map → JsonApiRequest-FZAFAES3.js.map} +1 -1
  7. package/dist/{chunk-IGOWVLJH.mjs → chunk-33UYFFIK.mjs} +5 -1
  8. package/dist/chunk-33UYFFIK.mjs.map +1 -0
  9. package/dist/{chunk-TLBZWOCU.mjs → chunk-AEZWDB5X.mjs} +89 -78
  10. package/dist/chunk-AEZWDB5X.mjs.map +1 -0
  11. package/dist/{chunk-SAL7XW2G.mjs → chunk-CHNXYTKO.mjs} +40 -1
  12. package/dist/chunk-CHNXYTKO.mjs.map +1 -0
  13. package/dist/{chunk-AGWQ75PQ.js → chunk-I7OQ5WKX.js} +5 -1
  14. package/dist/chunk-I7OQ5WKX.js.map +1 -0
  15. package/dist/{chunk-7Z7FEMEB.js → chunk-LPBABDEP.js} +43 -23
  16. package/dist/chunk-LPBABDEP.js.map +1 -0
  17. package/dist/{chunk-CK5KLBZV.mjs → chunk-MOVONDSX.mjs} +28 -8
  18. package/dist/chunk-MOVONDSX.mjs.map +1 -0
  19. package/dist/{chunk-B426TLJC.js → chunk-PFBYNJ2R.js} +414 -403
  20. package/dist/chunk-PFBYNJ2R.js.map +1 -0
  21. package/dist/{chunk-CKS6SVUK.js → chunk-UVXEP2ED.js} +41 -2
  22. package/dist/chunk-UVXEP2ED.js.map +1 -0
  23. package/dist/client/index.js +5 -5
  24. package/dist/client/index.mjs +4 -4
  25. package/dist/components/index.js +5 -5
  26. package/dist/components/index.mjs +4 -4
  27. package/dist/contexts/index.js +5 -5
  28. package/dist/contexts/index.mjs +4 -4
  29. package/dist/core/index.d.mts +35 -1
  30. package/dist/core/index.d.ts +35 -1
  31. package/dist/core/index.js +13 -3
  32. package/dist/core/index.js.map +1 -1
  33. package/dist/core/index.mjs +13 -3
  34. package/dist/index.d.mts +1 -1
  35. package/dist/index.d.ts +1 -1
  36. package/dist/index.js +14 -4
  37. package/dist/index.js.map +1 -1
  38. package/dist/index.mjs +14 -4
  39. package/dist/scripts/generate-web-module/templates/data/model.template.js +2 -1
  40. package/dist/scripts/generate-web-module/templates/data/model.template.js.map +1 -1
  41. package/dist/server/index.js +14 -14
  42. package/dist/server/index.js.map +1 -1
  43. package/dist/server/index.mjs +4 -4
  44. package/dist/server/index.mjs.map +1 -1
  45. package/package.json +8 -6
  46. package/scripts/generate-web-module/templates/data/model.template.ts +2 -1
  47. package/src/client/JsonApiClient.ts +2 -0
  48. package/src/client/config.ts +3 -1
  49. package/src/components/containers/PageContainer.tsx +1 -1
  50. package/src/components/pages/PageContentContainer.tsx +12 -2
  51. package/src/core/registry/ModuleRegistry.ts +33 -3
  52. package/src/core/registry/bootstrapStore.ts +63 -0
  53. package/src/core/registry/index.ts +1 -0
  54. package/src/features/auth/utils/AuthCookies.ts +2 -2
  55. package/src/server/ServerSession.ts +2 -2
  56. package/src/unified/JsonApiRequest.ts +3 -1
  57. package/dist/JsonApiRequest-2OM5NDAW.js +0 -24
  58. package/dist/chunk-7Z7FEMEB.js.map +0 -1
  59. package/dist/chunk-AGWQ75PQ.js.map +0 -1
  60. package/dist/chunk-B426TLJC.js.map +0 -1
  61. package/dist/chunk-CK5KLBZV.mjs.map +0 -1
  62. package/dist/chunk-CKS6SVUK.js.map +0 -1
  63. package/dist/chunk-IGOWVLJH.mjs.map +0 -1
  64. package/dist/chunk-SAL7XW2G.mjs.map +0 -1
  65. package/dist/chunk-TLBZWOCU.mjs.map +0 -1
  66. /package/dist/{BlockNoteEditor-N534QVBR.mjs.map → BlockNoteEditor-TF7MR7IP.mjs.map} +0 -0
  67. /package/dist/{JsonApiRequest-SYZ6FGCA.mjs.map → JsonApiRequest-ARXYJ2AG.mjs.map} +0 -0
@@ -54,6 +54,39 @@ var JsonApiDataFactory = class {
54
54
  }
55
55
  };
56
56
 
57
+ // src/core/registry/bootstrapStore.ts
58
+ var _bootstrapper = null;
59
+ var _bootstrapAttempted = false;
60
+ function setBootstrapper(fn) {
61
+ _bootstrapper = fn;
62
+ }
63
+ __name(setBootstrapper, "setBootstrapper");
64
+ function getBootstrapper() {
65
+ return _bootstrapper;
66
+ }
67
+ __name(getBootstrapper, "getBootstrapper");
68
+ function tryBootstrap() {
69
+ if (_bootstrapAttempted && !_bootstrapper) {
70
+ return false;
71
+ }
72
+ _bootstrapAttempted = true;
73
+ if (_bootstrapper) {
74
+ _bootstrapper();
75
+ return true;
76
+ }
77
+ return false;
78
+ }
79
+ __name(tryBootstrap, "tryBootstrap");
80
+ function hasBootstrapper() {
81
+ return _bootstrapper !== null;
82
+ }
83
+ __name(hasBootstrapper, "hasBootstrapper");
84
+ function resetBootstrapStore() {
85
+ _bootstrapper = null;
86
+ _bootstrapAttempted = false;
87
+ }
88
+ __name(resetBootstrapStore, "resetBootstrapStore");
89
+
57
90
  // src/core/utils/translateResponse.ts
58
91
  function translateData(params) {
59
92
  const factoryClass = DataClassRegistry.get(params.classKey);
@@ -147,6 +180,7 @@ var _staticConfig = null;
147
180
  function configureJsonApi(config) {
148
181
  _staticConfig = config;
149
182
  if (config.bootstrapper) {
183
+ setBootstrapper(config.bootstrapper);
150
184
  config.bootstrapper();
151
185
  }
152
186
  }
@@ -371,6 +405,11 @@ __name(JsonApiDelete, "JsonApiDelete");
371
405
  export {
372
406
  DataClassRegistry,
373
407
  JsonApiDataFactory,
408
+ setBootstrapper,
409
+ getBootstrapper,
410
+ tryBootstrap,
411
+ hasBootstrapper,
412
+ resetBootstrapStore,
374
413
  translateData,
375
414
  translateResponse,
376
415
  configureJsonApi,
@@ -383,4 +422,4 @@ export {
383
422
  JsonApiPatch,
384
423
  JsonApiDelete
385
424
  };
386
- //# sourceMappingURL=chunk-SAL7XW2G.mjs.map
425
+ //# sourceMappingURL=chunk-CHNXYTKO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/registry/DataClassRegistry.ts","../src/core/factories/JsonApiDataFactory.ts","../src/core/registry/bootstrapStore.ts","../src/core/utils/translateResponse.ts","../src/unified/JsonApiRequest.ts"],"sourcesContent":["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","/**\n * Centralized bootstrap store accessible from ModuleRegistry.\n * This file has NO external dependencies to avoid circular imports.\n *\n * The bootstrap store allows ModuleRegistry to call the app's bootstrapper\n * when modules are accessed before bootstrap() was called, providing\n * self-healing behavior for module evaluation order issues.\n */\n\ntype BootstrapperFn = () => void;\n\nlet _bootstrapper: BootstrapperFn | null = null;\nlet _bootstrapAttempted = false;\n\n/**\n * Register the bootstrapper function.\n * Called by configureJsonApi() from client/config, client/JsonApiClient, or unified/JsonApiRequest.\n */\nexport function setBootstrapper(fn: BootstrapperFn): void {\n _bootstrapper = fn;\n}\n\n/**\n * Get the registered bootstrapper function.\n * Returns null if no bootstrapper has been registered.\n */\nexport function getBootstrapper(): BootstrapperFn | null {\n return _bootstrapper;\n}\n\n/**\n * Attempt to run the bootstrapper if one is registered.\n * Returns true if bootstrapper was executed, false if not available.\n * Safe to call multiple times - bootstrapper is expected to be idempotent.\n */\nexport function tryBootstrap(): boolean {\n if (_bootstrapAttempted && !_bootstrapper) {\n // Already tried and no bootstrapper available\n return false;\n }\n _bootstrapAttempted = true;\n\n if (_bootstrapper) {\n _bootstrapper();\n return true;\n }\n return false;\n}\n\n/**\n * Check if a bootstrapper has been registered.\n */\nexport function hasBootstrapper(): boolean {\n return _bootstrapper !== null;\n}\n\n/**\n * Reset the bootstrap store. Useful for testing.\n */\nexport function resetBootstrapStore(): void {\n _bootstrapper = null;\n _bootstrapAttempted = false;\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 { setBootstrapper } from \"../core/registry/bootstrapStore\";\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 // Register and call bootstrapper to register all modules\n if (config.bootstrapper) {\n setBootstrapper(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"],"mappings":"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","names":[]}
@@ -1,5 +1,8 @@
1
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
2
 
3
+ var _chunkUVXEP2EDjs = require('./chunk-UVXEP2ED.js');
4
+
5
+
3
6
  var _chunk7QVYU63Ejs = require('./chunk-7QVYU63E.js');
4
7
 
5
8
  // src/client/config.ts
@@ -7,6 +10,7 @@ var _clientConfig = null;
7
10
  function configureJsonApi(config) {
8
11
  _clientConfig = config;
9
12
  if (config.bootstrapper) {
13
+ _chunkUVXEP2EDjs.setBootstrapper.call(void 0, config.bootstrapper);
10
14
  config.bootstrapper();
11
15
  }
12
16
  }
@@ -139,4 +143,4 @@ _chunk7QVYU63Ejs.__name.call(void 0, isRolesConfigured, "isRolesConfigured");
139
143
 
140
144
 
141
145
  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
146
+ //# sourceMappingURL=chunk-I7OQ5WKX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/chunk-I7OQ5WKX.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-I7OQ5WKX.js","sourcesContent":[null,"\"use client\";\n\nimport { ModuleWithPermissions } from \"../permissions/types\";\nimport { setBootstrapper } from \"../core/registry/bootstrapStore\";\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 // Register and call bootstrapper to register all modules\n if (config.bootstrapper) {\n setBootstrapper(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"]}
@@ -8,7 +8,10 @@ var _chunkIBS6NI7Djs = require('./chunk-IBS6NI7D.js');
8
8
 
9
9
 
10
10
 
11
- var _chunkCKS6SVUKjs = require('./chunk-CKS6SVUK.js');
11
+
12
+
13
+
14
+ var _chunkUVXEP2EDjs = require('./chunk-UVXEP2ED.js');
12
15
 
13
16
 
14
17
  var _chunkLXKSUWAVjs = require('./chunk-LXKSUWAV.js');
@@ -22,12 +25,12 @@ var RehydrationFactory = class {
22
25
  _chunk7QVYU63Ejs.__name.call(void 0, this, "RehydrationFactory");
23
26
  }
24
27
  static rehydrate(classKey, data) {
25
- const factoryClass = _chunkCKS6SVUKjs.DataClassRegistry.get(classKey);
28
+ const factoryClass = _chunkUVXEP2EDjs.DataClassRegistry.get(classKey);
26
29
  const instance = new factoryClass();
27
30
  return instance.rehydrate(data);
28
31
  }
29
32
  static rehydrateList(classKey, data) {
30
- const factoryClass = _chunkCKS6SVUKjs.DataClassRegistry.get(classKey);
33
+ const factoryClass = _chunkUVXEP2EDjs.DataClassRegistry.get(classKey);
31
34
  const response = data.map((item) => {
32
35
  const instance = new factoryClass();
33
36
  return instance.rehydrate(item);
@@ -224,7 +227,7 @@ var AbstractService = class {
224
227
  * Make an API call with automatic environment detection and error handling.
225
228
  */
226
229
  static async callApi(params) {
227
- const { JsonApiGet: JsonApiGet2, JsonApiPost: JsonApiPost2, JsonApiPut, JsonApiPatch, JsonApiDelete: JsonApiDelete2 } = await Promise.resolve().then(() => _interopRequireWildcard(require("./JsonApiRequest-2OM5NDAW.js")));
230
+ const { JsonApiGet: JsonApiGet2, JsonApiPost: JsonApiPost2, JsonApiPut, JsonApiPatch, JsonApiDelete: JsonApiDelete2 } = await Promise.resolve().then(() => _interopRequireWildcard(require("./JsonApiRequest-FZAFAES3.js")));
228
231
  let apiResponse;
229
232
  let language = "en";
230
233
  if (typeof window === "undefined") {
@@ -309,7 +312,7 @@ var AbstractService = class {
309
312
  * Get raw JSON:API response data without deserialization.
310
313
  */
311
314
  static async getRawData(params) {
312
- const { JsonApiGet: JsonApiGet2 } = await Promise.resolve().then(() => _interopRequireWildcard(require("./JsonApiRequest-2OM5NDAW.js")));
315
+ const { JsonApiGet: JsonApiGet2 } = await Promise.resolve().then(() => _interopRequireWildcard(require("./JsonApiRequest-FZAFAES3.js")));
313
316
  let language = "en";
314
317
  if (typeof window === "undefined") {
315
318
  const { getLocale } = await Promise.resolve().then(() => _interopRequireWildcard(require("next-intl/server")));
@@ -343,6 +346,7 @@ var _clientConfig = null;
343
346
  function configureClientJsonApi(config) {
344
347
  _clientConfig = config;
345
348
  if (config.bootstrapper) {
349
+ _chunkUVXEP2EDjs.setBootstrapper.call(void 0, config.bootstrapper);
346
350
  config.bootstrapper();
347
351
  }
348
352
  }
@@ -399,7 +403,7 @@ async function ClientJsonApiGet(params) {
399
403
  language: params.language,
400
404
  additionalHeaders: _optionalChain([_clientConfig, 'optionalAccess', _19 => _19.additionalHeaders])
401
405
  });
402
- return _chunkCKS6SVUKjs.translateResponse.call(void 0, {
406
+ return _chunkUVXEP2EDjs.translateResponse.call(void 0, {
403
407
  classKey: params.classKey,
404
408
  apiResponse,
405
409
  companyId: params.companyId,
@@ -420,7 +424,7 @@ async function ClientJsonApiPost(params) {
420
424
  if (!body) {
421
425
  body = {};
422
426
  } else if (params.overridesJsonApiCreation !== true) {
423
- body = _chunkCKS6SVUKjs.JsonApiDataFactory.create(params.classKey, body);
427
+ body = _chunkUVXEP2EDjs.JsonApiDataFactory.create(params.classKey, body);
424
428
  }
425
429
  const apiResponse = await _chunkIBS6NI7Djs.directFetch.call(void 0, {
426
430
  method: "POST",
@@ -432,7 +436,7 @@ async function ClientJsonApiPost(params) {
432
436
  language: params.language,
433
437
  additionalHeaders: _optionalChain([_clientConfig, 'optionalAccess', _20 => _20.additionalHeaders])
434
438
  });
435
- return _chunkCKS6SVUKjs.translateResponse.call(void 0, {
439
+ return _chunkUVXEP2EDjs.translateResponse.call(void 0, {
436
440
  classKey: _nullishCoalesce(params.responseType, () => ( params.classKey)),
437
441
  apiResponse,
438
442
  companyId: params.companyId,
@@ -447,7 +451,7 @@ async function ClientJsonApiPut(params) {
447
451
  if (!body) {
448
452
  body = {};
449
453
  } else {
450
- body = _chunkCKS6SVUKjs.JsonApiDataFactory.create(params.classKey, body);
454
+ body = _chunkUVXEP2EDjs.JsonApiDataFactory.create(params.classKey, body);
451
455
  }
452
456
  const apiResponse = await _chunkIBS6NI7Djs.directFetch.call(void 0, {
453
457
  method: "PUT",
@@ -459,7 +463,7 @@ async function ClientJsonApiPut(params) {
459
463
  language: params.language,
460
464
  additionalHeaders: _optionalChain([_clientConfig, 'optionalAccess', _21 => _21.additionalHeaders])
461
465
  });
462
- return _chunkCKS6SVUKjs.translateResponse.call(void 0, {
466
+ return _chunkUVXEP2EDjs.translateResponse.call(void 0, {
463
467
  classKey: _nullishCoalesce(params.responseType, () => ( params.classKey)),
464
468
  apiResponse,
465
469
  companyId: params.companyId,
@@ -474,7 +478,7 @@ async function ClientJsonApiPatch(params) {
474
478
  if (!body) {
475
479
  body = {};
476
480
  } else if (params.overridesJsonApiCreation !== true) {
477
- body = _chunkCKS6SVUKjs.JsonApiDataFactory.create(params.classKey, body);
481
+ body = _chunkUVXEP2EDjs.JsonApiDataFactory.create(params.classKey, body);
478
482
  }
479
483
  const apiResponse = await _chunkIBS6NI7Djs.directFetch.call(void 0, {
480
484
  method: "PATCH",
@@ -486,7 +490,7 @@ async function ClientJsonApiPatch(params) {
486
490
  language: params.language,
487
491
  additionalHeaders: _optionalChain([_clientConfig, 'optionalAccess', _22 => _22.additionalHeaders])
488
492
  });
489
- return _chunkCKS6SVUKjs.translateResponse.call(void 0, {
493
+ return _chunkUVXEP2EDjs.translateResponse.call(void 0, {
490
494
  classKey: _nullishCoalesce(params.responseType, () => ( params.classKey)),
491
495
  apiResponse,
492
496
  companyId: params.companyId,
@@ -505,7 +509,7 @@ async function ClientJsonApiDelete(params) {
505
509
  language: params.language,
506
510
  additionalHeaders: _optionalChain([_clientConfig, 'optionalAccess', _23 => _23.additionalHeaders])
507
511
  });
508
- return _chunkCKS6SVUKjs.translateResponse.call(void 0, {
512
+ return _chunkUVXEP2EDjs.translateResponse.call(void 0, {
509
513
  classKey: _nullishCoalesce(params.responseType, () => ( params.classKey)),
510
514
  apiResponse,
511
515
  companyId: params.companyId,
@@ -707,7 +711,7 @@ var ModuleRegistrar = (_class = class {
707
711
  }).map((key) => modulesClass[key]);
708
712
  data.forEach((item) => {
709
713
  if (item && item.model) {
710
- _chunkCKS6SVUKjs.DataClassRegistry.registerObjectClass(item, item.model);
714
+ _chunkUVXEP2EDjs.DataClassRegistry.registerObjectClass(item, item.model);
711
715
  }
712
716
  });
713
717
  this._isBootstrapped = true;
@@ -717,7 +721,7 @@ var ModuleRegistrar = (_class = class {
717
721
  */
718
722
  static reset() {
719
723
  this._isBootstrapped = false;
720
- _chunkCKS6SVUKjs.DataClassRegistry.clear();
724
+ _chunkUVXEP2EDjs.DataClassRegistry.clear();
721
725
  }
722
726
  }, _class.__initStatic(), _class);
723
727
 
@@ -731,13 +735,23 @@ var ModuleRegistryClass = (_class2 = class {constructor() { _class2.prototype.__
731
735
  this._modules.set(name, module);
732
736
  }
733
737
  get(name) {
734
- const module = this._modules.get(name);
738
+ let module = this._modules.get(name);
739
+ if (!module) {
740
+ const didBootstrap = _chunkUVXEP2EDjs.tryBootstrap.call(void 0, );
741
+ if (didBootstrap) {
742
+ module = this._modules.get(name);
743
+ }
744
+ }
735
745
  if (!module) {
736
- throw new Error(`Module "${String(name)}" not registered. Call bootstrap() first.`);
746
+ const hint = _chunkUVXEP2EDjs.hasBootstrapper.call(void 0, ) ? "Bootstrap was called but module still not found. Check module registration." : "No bootstrapper registered. Ensure configureJsonApi({ bootstrapper }) is called before accessing modules.";
747
+ throw new Error(`Module "${String(name)}" not registered. ${hint}`);
737
748
  }
738
749
  return module;
739
750
  }
740
751
  findByName(moduleName) {
752
+ if (this._modules.size === 0) {
753
+ _chunkUVXEP2EDjs.tryBootstrap.call(void 0, );
754
+ }
741
755
  for (const module of this._modules.values()) {
742
756
  if (module.name === moduleName) {
743
757
  return module;
@@ -746,7 +760,13 @@ var ModuleRegistryClass = (_class2 = class {constructor() { _class2.prototype.__
746
760
  throw new Error(`Module not found: ${moduleName}`);
747
761
  }
748
762
  findByModelName(modelName) {
749
- const module = this._modules.get(modelName);
763
+ let module = this._modules.get(modelName);
764
+ if (!module) {
765
+ const didBootstrap = _chunkUVXEP2EDjs.tryBootstrap.call(void 0, );
766
+ if (didBootstrap) {
767
+ module = this._modules.get(modelName);
768
+ }
769
+ }
750
770
  if (!module) {
751
771
  throw new Error(`Module not found for model: ${modelName}`);
752
772
  }
@@ -2102,7 +2122,7 @@ var AuthService = class extends AbstractService {
2102
2122
  }
2103
2123
  static async login(params) {
2104
2124
  const language = params.language || "en-US";
2105
- const apiResponse = await _chunkCKS6SVUKjs.JsonApiPost.call(void 0, {
2125
+ const apiResponse = await _chunkUVXEP2EDjs.JsonApiPost.call(void 0, {
2106
2126
  classKey: Modules.Auth,
2107
2127
  endpoint: new EndpointCreator({ endpoint: Modules.Auth, id: "login" }).generate(),
2108
2128
  body: { email: params.email, password: params.password },
@@ -2130,7 +2150,7 @@ var AuthService = class extends AbstractService {
2130
2150
  }
2131
2151
  static async logout(params) {
2132
2152
  const language = _optionalChain([params, 'optionalAccess', _55 => _55.language]) || "en-US";
2133
- await _chunkCKS6SVUKjs.JsonApiDelete.call(void 0, {
2153
+ await _chunkUVXEP2EDjs.JsonApiDelete.call(void 0, {
2134
2154
  classKey: Modules.Auth,
2135
2155
  endpoint: new EndpointCreator({ endpoint: Modules.Auth }).generate(),
2136
2156
  language
@@ -2142,7 +2162,7 @@ var AuthService = class extends AbstractService {
2142
2162
  }
2143
2163
  static async initialiseForgotPassword(params) {
2144
2164
  const language = params.language || "en-US";
2145
- const response = await _chunkCKS6SVUKjs.JsonApiPost.call(void 0, {
2165
+ const response = await _chunkUVXEP2EDjs.JsonApiPost.call(void 0, {
2146
2166
  classKey: Modules.Auth,
2147
2167
  endpoint: new EndpointCreator({ endpoint: Modules.Auth, id: "forgot" }).generate(),
2148
2168
  body: { email: params.email },
@@ -2171,7 +2191,7 @@ var AuthService = class extends AbstractService {
2171
2191
  }
2172
2192
  static async validateCode(params) {
2173
2193
  const language = params.language || "en-US";
2174
- const apiResponse = await _chunkCKS6SVUKjs.JsonApiGet.call(void 0, {
2194
+ const apiResponse = await _chunkUVXEP2EDjs.JsonApiGet.call(void 0, {
2175
2195
  classKey: Modules.Auth,
2176
2196
  endpoint: new EndpointCreator({ endpoint: Modules.Auth, id: "validate", childEndpoint: params.code }).generate(),
2177
2197
  language
@@ -3455,4 +3475,4 @@ var AuthorModule = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (factory
3455
3475
 
3456
3476
 
3457
3477
  exports.RehydrationFactory = RehydrationFactory; exports.AbstractApiData = AbstractApiData; exports.HttpMethod = HttpMethod; exports.setGlobalErrorHandler = setGlobalErrorHandler; exports.getGlobalErrorHandler = getGlobalErrorHandler; exports.AbstractService = AbstractService; exports.configureClientJsonApi = configureClientJsonApi; exports.getClientApiUrl = getClientApiUrl; exports.getClientAppUrl = getClientAppUrl; exports.getClientTrackablePages = getClientTrackablePages; exports.ClientJsonApiGet = ClientJsonApiGet; exports.ClientJsonApiPost = ClientJsonApiPost; exports.ClientJsonApiPut = ClientJsonApiPut; exports.ClientJsonApiPatch = ClientJsonApiPatch; exports.ClientJsonApiDelete = ClientJsonApiDelete; exports.ClientHttpMethod = ClientHttpMethod; exports.setClientGlobalErrorHandler = setClientGlobalErrorHandler; exports.getClientGlobalErrorHandler = getClientGlobalErrorHandler; exports.ClientAbstractService = ClientAbstractService; exports.ModuleRegistrar = ModuleRegistrar; exports.ModuleRegistry = ModuleRegistry; exports.Modules = Modules; exports.EndpointCreator = EndpointCreator; exports.createJsonApiInclusion = createJsonApiInclusion; exports.rehydrate = rehydrate; exports.rehydrateList = rehydrateList; exports.cn = cn; exports.composeRefs = composeRefs; exports.useComposedRefs = useComposedRefs; exports.useIsMobile = useIsMobile; exports.formatDate = formatDate; exports.exists = exists; exports.TableOptions = TableOptions; exports.getTableOptions = getTableOptions; exports.getTableComponents = getTableComponents; exports.userObjectSchema = userObjectSchema; exports.entityObjectSchema = entityObjectSchema; exports.BlockNoteDiffUtil = BlockNoteDiffUtil; exports.BlockNoteWordDiffRendererUtil = BlockNoteWordDiffRendererUtil; exports.getIconByModule = getIconByModule; exports.getIcon = getIcon; exports.getIconByModuleName = getIconByModuleName; exports.getLucideIcon = getLucideIcon; exports.getLucideIconByModule = getLucideIconByModule; exports.getLucideIconByModuleName = getLucideIconByModuleName; exports.Action = Action; exports.checkPermissions = checkPermissions; exports.checkPermissionsFromServer = checkPermissionsFromServer; exports.getValueFromPath = getValueFromPath; exports.Auth = Auth; exports.configureAuth = configureAuth; exports.getTokenHandler = getTokenHandler; exports.AuthService = AuthService; exports.AuthComponent = AuthComponent; exports.AuthModule = AuthModule; exports.Company = Company; exports.CompanyFields = CompanyFields; exports.CompanyService = CompanyService; exports.CompanyModule = CompanyModule; exports.Content = Content; exports.ContentFields = ContentFields; exports.ContentService = ContentService; exports.ContentModule = ContentModule; exports.Feature = Feature; exports.FeatureService = FeatureService; exports.FeatureModule = FeatureModule; exports.Module = Module; exports.ModuleModule = ModuleModule; exports.Notification = Notification; exports.NotificationFields = NotificationFields; exports.NotificationService = NotificationService; exports.NotificationModule = NotificationModule; exports.Push = Push; exports.PushService = PushService; exports.PushModule = PushModule; exports.Role = Role; exports.RoleFields = RoleFields; exports.RoleService = RoleService; exports.RoleModule = RoleModule; exports.S3 = S3; exports.S3Module = S3Module; exports.S3Service = S3Service; exports.User = User; exports.UserFields = UserFields; exports.UserService = UserService; exports.UserModule = UserModule; exports.AuthorModule = AuthorModule;
3458
- //# sourceMappingURL=chunk-7Z7FEMEB.js.map
3478
+ //# sourceMappingURL=chunk-LPBABDEP.js.map