@carlonicora/nextjs-jsonapi 3.24.0 → 3.24.2

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 (92) hide show
  1. package/dist/{BlockNoteEditor-PTD2V4CH.js → BlockNoteEditor-35D4R7HJ.js} +21 -21
  2. package/dist/{BlockNoteEditor-PTD2V4CH.js.map → BlockNoteEditor-35D4R7HJ.js.map} +1 -1
  3. package/dist/{BlockNoteEditor-Q2WEDMKJ.mjs → BlockNoteEditor-65HR6ULV.mjs} +6 -6
  4. package/dist/{BlockNoteViewer-WO6GTDSI.mjs → BlockNoteViewer-KDKGUIG5.mjs} +4 -4
  5. package/dist/{BlockNoteViewer-WOXEJ6RM.js → BlockNoteViewer-QDXDVYEM.js} +5 -5
  6. package/dist/{BlockNoteViewer-WOXEJ6RM.js.map → BlockNoteViewer-QDXDVYEM.js.map} +1 -1
  7. package/dist/JsonApiRequest-G625QAH5.js +26 -0
  8. package/dist/{JsonApiRequest-E4PZPH3N.js.map → JsonApiRequest-G625QAH5.js.map} +1 -1
  9. package/dist/{JsonApiRequest-7AEQWMLJ.mjs → JsonApiRequest-RRMNV7YE.mjs} +2 -2
  10. package/dist/billing/index.d.mts +57 -2
  11. package/dist/billing/index.d.ts +57 -2
  12. package/dist/billing/index.js +408 -403
  13. package/dist/billing/index.js.map +1 -1
  14. package/dist/billing/index.mjs +10 -5
  15. package/dist/{chunk-3YJF7QY4.js → chunk-2XCUAHQT.js} +834 -834
  16. package/dist/{chunk-3YJF7QY4.js.map → chunk-2XCUAHQT.js.map} +1 -1
  17. package/dist/{chunk-3D2MCVRZ.js → chunk-3AR4KA5D.js} +13 -13
  18. package/dist/{chunk-3D2MCVRZ.js.map → chunk-3AR4KA5D.js.map} +1 -1
  19. package/dist/{chunk-GJHKOG5L.mjs → chunk-4O7R2Z2O.mjs} +10 -10
  20. package/dist/chunk-4O7R2Z2O.mjs.map +1 -0
  21. package/dist/{chunk-IOLU4ASD.js → chunk-5TRFNKJS.js} +3 -2
  22. package/dist/chunk-5TRFNKJS.js.map +1 -0
  23. package/dist/{chunk-2O3SFHQ7.mjs → chunk-IBVKPLHT.mjs} +14 -8
  24. package/dist/chunk-IBVKPLHT.mjs.map +1 -0
  25. package/dist/{chunk-IBS6NI7D.js → chunk-JTPRJNT2.js} +3 -2
  26. package/dist/chunk-JTPRJNT2.js.map +1 -0
  27. package/dist/{chunk-C7C7VY4F.mjs → chunk-PI56A4DG.mjs} +3 -2
  28. package/dist/{chunk-C7C7VY4F.mjs.map → chunk-PI56A4DG.mjs.map} +1 -1
  29. package/dist/{chunk-IEJYBQ6J.mjs → chunk-SJLXPHK5.mjs} +3 -2
  30. package/dist/{chunk-IEJYBQ6J.mjs.map → chunk-SJLXPHK5.mjs.map} +1 -1
  31. package/dist/{chunk-BMVA2IM5.mjs → chunk-T76WLDE5.mjs} +3 -3
  32. package/dist/{chunk-IV4DTYXN.js → chunk-U7QVISQS.js} +46 -40
  33. package/dist/chunk-U7QVISQS.js.map +1 -0
  34. package/dist/{chunk-LU7DJ4QF.js → chunk-YXRVPEEJ.js} +3 -3
  35. package/dist/{chunk-LU7DJ4QF.js.map → chunk-YXRVPEEJ.js.map} +1 -1
  36. package/dist/{chunk-HAI7G6MD.mjs → chunk-ZJI5ZZW5.mjs} +3 -3
  37. package/dist/client/index.js +6 -6
  38. package/dist/client/index.mjs +5 -5
  39. package/dist/components/index.js +6 -6
  40. package/dist/components/index.mjs +5 -5
  41. package/dist/contexts/index.js +6 -6
  42. package/dist/contexts/index.mjs +5 -5
  43. package/dist/core/index.d.mts +2 -2
  44. package/dist/core/index.d.ts +2 -2
  45. package/dist/core/index.js +4 -4
  46. package/dist/core/index.mjs +3 -3
  47. package/dist/features/help/index.js +39 -39
  48. package/dist/features/help/index.mjs +5 -5
  49. package/dist/features/tokenusage/index.js +103 -103
  50. package/dist/features/tokenusage/index.mjs +5 -5
  51. package/dist/index.d.mts +1 -1
  52. package/dist/index.d.ts +1 -1
  53. package/dist/index.js +5 -5
  54. package/dist/index.mjs +4 -4
  55. package/dist/{request-FYMQK5CX.mjs → request-5RLK2AM3.mjs} +2 -2
  56. package/dist/request-EUGTI3BE.js +9 -0
  57. package/dist/{request-ZYY6RI5X.js.map → request-EUGTI3BE.js.map} +1 -1
  58. package/dist/{request-6VYDNP5T.mjs → request-FXF63NSQ.mjs} +2 -2
  59. package/dist/request-ZTX6I63X.js +8 -0
  60. package/dist/request-ZTX6I63X.js.map +1 -0
  61. package/dist/{s3.service-DJHqEZAp.d.ts → s3.service-Bqr-fQmi.d.ts} +1 -0
  62. package/dist/{s3.service-DaRFLnrX.d.mts → s3.service-Buiy1ncj.d.mts} +1 -0
  63. package/dist/server/index.d.mts +1 -1
  64. package/dist/server/index.d.ts +1 -1
  65. package/dist/server/index.js +21 -21
  66. package/dist/server/index.mjs +4 -4
  67. package/package.json +1 -1
  68. package/src/client/__tests__/request.test.ts +29 -0
  69. package/src/client/request.ts +5 -1
  70. package/src/features/billing/stripe-customer/data/stripe-customer.service.ts +5 -0
  71. package/src/features/billing/stripe-subscription/components/index.ts +1 -0
  72. package/src/features/notification/contexts/NotificationContext.tsx +5 -2
  73. package/src/features/notification/contexts/__tests__/NotificationContext.spec.tsx +32 -0
  74. package/src/features/notification/data/notification.service.ts +6 -1
  75. package/src/server/__tests__/request.test.ts +17 -0
  76. package/src/server/request.ts +5 -1
  77. package/dist/JsonApiRequest-E4PZPH3N.js +0 -26
  78. package/dist/chunk-2O3SFHQ7.mjs.map +0 -1
  79. package/dist/chunk-GJHKOG5L.mjs.map +0 -1
  80. package/dist/chunk-IBS6NI7D.js.map +0 -1
  81. package/dist/chunk-IOLU4ASD.js.map +0 -1
  82. package/dist/chunk-IV4DTYXN.js.map +0 -1
  83. package/dist/request-UR7VPG3G.js +0 -8
  84. package/dist/request-UR7VPG3G.js.map +0 -1
  85. package/dist/request-ZYY6RI5X.js +0 -9
  86. /package/dist/{BlockNoteEditor-Q2WEDMKJ.mjs.map → BlockNoteEditor-65HR6ULV.mjs.map} +0 -0
  87. /package/dist/{BlockNoteViewer-WO6GTDSI.mjs.map → BlockNoteViewer-KDKGUIG5.mjs.map} +0 -0
  88. /package/dist/{JsonApiRequest-7AEQWMLJ.mjs.map → JsonApiRequest-RRMNV7YE.mjs.map} +0 -0
  89. /package/dist/{chunk-BMVA2IM5.mjs.map → chunk-T76WLDE5.mjs.map} +0 -0
  90. /package/dist/{chunk-HAI7G6MD.mjs.map → chunk-ZJI5ZZW5.mjs.map} +0 -0
  91. /package/dist/{request-6VYDNP5T.mjs.map → request-5RLK2AM3.mjs.map} +0 -0
  92. /package/dist/{request-FYMQK5CX.mjs.map → request-FXF63NSQ.mjs.map} +0 -0
@@ -86,7 +86,8 @@ async function serverRequest(params) {
86
86
  }
87
87
  } catch (e2) {
88
88
  response.ok = false;
89
- response.status = 500;
89
+ response.status = 503;
90
+ response.statusText = "Service Unavailable";
90
91
  response.data = void 0;
91
92
  }
92
93
  return response;
@@ -96,4 +97,4 @@ _chunk7QVYU63Ejs.__name.call(void 0, serverRequest, "serverRequest");
96
97
 
97
98
 
98
99
  exports.serverRequest = serverRequest;
99
- //# sourceMappingURL=chunk-IOLU4ASD.js.map
100
+ //# sourceMappingURL=chunk-5TRFNKJS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/chunk-5TRFNKJS.js","../src/server/request.ts"],"names":[],"mappings":"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","file":"/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/chunk-5TRFNKJS.js","sourcesContent":[null,"// Server-only utilities (NOT server actions - these cannot be called from client components)\n\nimport { ApiData } from \"../core/interfaces/ApiData\";\n\nexport interface ServerRequestParams {\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}\n\n// Map cache configuration names to revalidation times in seconds\nconst cacheLifeToSeconds: Record<string, number> = {\n seconds: 1,\n minutes: 60,\n hours: 3600,\n days: 86400,\n weeks: 604800,\n max: 31536000, // 1 year\n default: 60,\n};\n\n/**\n * Server-side request with Next.js caching support.\n * Uses fetch's native caching options for Next.js compatibility.\n */\nexport async function serverRequest(params: ServerRequestParams): Promise<ApiData> {\n const response: ApiData = {\n data: undefined,\n ok: false,\n status: 0,\n statusText: \"\",\n };\n\n const additionalHeaders: Record<string, string> = { ...params.additionalHeaders };\n\n if (params.companyId) {\n additionalHeaders[\"x-companyid\"] = params.companyId;\n }\n additionalHeaders[\"x-language\"] = params.language;\n\n let requestBody: BodyInit | undefined = undefined;\n\n if (params.files) {\n const formData = new FormData();\n if (params.body && typeof params.body === \"object\") {\n for (const key in params.body) {\n if (Object.prototype.hasOwnProperty.call(params.body, key)) {\n formData.append(\n key,\n typeof params.body[key] === \"object\" ? JSON.stringify(params.body[key]) : params.body[key],\n );\n }\n }\n }\n\n if (params.files instanceof Blob) {\n formData.append(\"file\", params.files);\n } else if (typeof params.files === \"object\" && params.files !== null) {\n for (const key in params.files) {\n if (Object.prototype.hasOwnProperty.call(params.files, key)) {\n formData.append(key, params.files[key]);\n }\n }\n }\n\n requestBody = formData;\n } else if (params.body !== undefined) {\n requestBody = JSON.stringify(params.body);\n additionalHeaders[\"Content-Type\"] = \"application/json\";\n }\n\n // Build Next.js fetch caching options\n const nextOptions: { revalidate?: number; tags?: string[] } = {};\n\n if (params.cache) {\n // Check if it's a predefined cache life name\n if (params.cache in cacheLifeToSeconds) {\n nextOptions.revalidate = cacheLifeToSeconds[params.cache];\n } else {\n // Treat as a cache tag\n nextOptions.tags = [params.cache];\n nextOptions.revalidate = 60; // Default revalidation time for tagged caches\n }\n } else {\n // Default to short caching\n nextOptions.revalidate = 0;\n }\n\n const options: RequestInit & { next?: { revalidate?: number; tags?: string[] } } = {\n method: params.method,\n headers: { Accept: \"application/json\", ...additionalHeaders },\n next: nextOptions,\n };\n\n if (requestBody !== undefined) {\n options.body = requestBody;\n }\n\n if (params.token) {\n options.headers = { ...options.headers, Authorization: `Bearer ${params.token}` };\n }\n\n try {\n const apiResponse = await fetch(params.url, options);\n\n response.ok = apiResponse.ok;\n response.status = apiResponse.status;\n response.statusText = apiResponse.statusText;\n try {\n response.data = await apiResponse.json();\n } catch {\n response.data = undefined;\n }\n } catch {\n // fetch() only throws when the API could not be reached at all (server\n // down, DNS, connection refused). Report it as 503 so consumers can tell\n // \"API unreachable\" apart from a 500 the API actually returned.\n response.ok = false;\n response.status = 503;\n response.statusText = \"Service Unavailable\";\n response.data = undefined;\n }\n\n return response;\n}\n"]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-AUXK7QSA.mjs";
4
4
  import {
5
5
  directFetch
6
- } from "./chunk-C7C7VY4F.mjs";
6
+ } from "./chunk-PI56A4DG.mjs";
7
7
  import {
8
8
  DataClassRegistry,
9
9
  ENV,
@@ -15,7 +15,7 @@ import {
15
15
  setBootstrapper,
16
16
  translateResponse,
17
17
  tryBootstrap
18
- } from "./chunk-BMVA2IM5.mjs";
18
+ } from "./chunk-T76WLDE5.mjs";
19
19
  import {
20
20
  __name
21
21
  } from "./chunk-PAWJFY3S.mjs";
@@ -343,7 +343,7 @@ var AbstractService = class {
343
343
  * Make an API call with automatic environment detection and error handling.
344
344
  */
345
345
  static async callApi(params) {
346
- const { JsonApiGet: JsonApiGet2, JsonApiPost: JsonApiPost2, JsonApiPut, JsonApiPatch, JsonApiDelete: JsonApiDelete2 } = await import("./JsonApiRequest-7AEQWMLJ.mjs");
346
+ const { JsonApiGet: JsonApiGet2, JsonApiPost: JsonApiPost2, JsonApiPut, JsonApiPatch, JsonApiDelete: JsonApiDelete2 } = await import("./JsonApiRequest-RRMNV7YE.mjs");
347
347
  let apiResponse;
348
348
  let language = "en";
349
349
  if (typeof window === "undefined") {
@@ -441,7 +441,7 @@ var AbstractService = class {
441
441
  * Make an API call and return both data and meta from the response.
442
442
  */
443
443
  static async callApiWithMeta(params) {
444
- const { JsonApiGet: JsonApiGet2, JsonApiPost: JsonApiPost2, JsonApiPut, JsonApiPatch, JsonApiDelete: JsonApiDelete2 } = await import("./JsonApiRequest-7AEQWMLJ.mjs");
444
+ const { JsonApiGet: JsonApiGet2, JsonApiPost: JsonApiPost2, JsonApiPut, JsonApiPatch, JsonApiDelete: JsonApiDelete2 } = await import("./JsonApiRequest-RRMNV7YE.mjs");
445
445
  let apiResponse;
446
446
  let language = "en";
447
447
  if (typeof window === "undefined") {
@@ -527,7 +527,7 @@ var AbstractService = class {
527
527
  * Get raw JSON:API response data without deserialization.
528
528
  */
529
529
  static async getRawData(params) {
530
- const { JsonApiGet: JsonApiGet2 } = await import("./JsonApiRequest-7AEQWMLJ.mjs");
530
+ const { JsonApiGet: JsonApiGet2 } = await import("./JsonApiRequest-RRMNV7YE.mjs");
531
531
  let language = "en";
532
532
  if (typeof window === "undefined") {
533
533
  const { getLocale } = await import("next-intl/server");
@@ -3661,7 +3661,12 @@ var StripeCustomerService = class extends AbstractService {
3661
3661
  return this.callApi({
3662
3662
  type: Modules.StripeCustomer,
3663
3663
  method: "GET" /* GET */,
3664
- endpoint: endpoint.generate()
3664
+ endpoint: endpoint.generate(),
3665
+ // A 404 here means the company has no billing customer yet — an expected
3666
+ // state that BillingDashboardContainer turns into a setup prompt. Without
3667
+ // this, the global error handler swallows it and replaces the page with a
3668
+ // 404 screen.
3669
+ suppressGlobalError: true
3665
3670
  });
3666
3671
  }
3667
3672
  /**
@@ -7525,7 +7530,8 @@ var NotificationService = class extends AbstractService {
7525
7530
  type: Modules.Notification,
7526
7531
  method: "GET" /* GET */,
7527
7532
  endpoint: endpoint.generate(),
7528
- next: params.next
7533
+ next: params.next,
7534
+ suppressGlobalError: params.suppressGlobalError
7529
7535
  });
7530
7536
  }
7531
7537
  static async markAsRead(params) {
@@ -9763,4 +9769,4 @@ export {
9763
9769
  AuditLogService,
9764
9770
  AuditLogModule
9765
9771
  };
9766
- //# sourceMappingURL=chunk-2O3SFHQ7.mjs.map
9772
+ //# sourceMappingURL=chunk-IBVKPLHT.mjs.map