@greatapps/common 1.1.659 → 1.1.661

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 (130) hide show
  1. package/dist/handlers.mjs +33 -0
  2. package/dist/handlers.mjs.map +1 -0
  3. package/dist/http.mjs +5 -0
  4. package/dist/http.mjs.map +1 -0
  5. package/dist/infra/http/api-fetch.mjs +30 -0
  6. package/dist/infra/http/api-fetch.mjs.map +1 -0
  7. package/dist/infra/route/parse-id.mjs +12 -0
  8. package/dist/infra/route/parse-id.mjs.map +1 -0
  9. package/dist/infra/route/safe-route-handler.mjs +18 -0
  10. package/dist/infra/route/safe-route-handler.mjs.map +1 -0
  11. package/dist/infra/route/search-params.mjs +11 -0
  12. package/dist/infra/route/search-params.mjs.map +1 -0
  13. package/dist/modules/cards/handlers/find-card-by-id.handler.mjs +16 -0
  14. package/dist/modules/cards/handlers/find-card-by-id.handler.mjs.map +1 -0
  15. package/dist/modules/cards/handlers/list-cards.handler.mjs +12 -0
  16. package/dist/modules/cards/handlers/list-cards.handler.mjs.map +1 -0
  17. package/dist/modules/cards/hooks/card-by-id.hook.mjs +2 -5
  18. package/dist/modules/cards/hooks/card-by-id.hook.mjs.map +1 -1
  19. package/dist/modules/cards/hooks/cards.hook.mjs +2 -5
  20. package/dist/modules/cards/hooks/cards.hook.mjs.map +1 -1
  21. package/dist/modules/charges/handlers/find-charge-by-id.handler.mjs +15 -0
  22. package/dist/modules/charges/handlers/find-charge-by-id.handler.mjs.map +1 -0
  23. package/dist/modules/charges/handlers/list-charges.handler.mjs +15 -0
  24. package/dist/modules/charges/handlers/list-charges.handler.mjs.map +1 -0
  25. package/dist/modules/charges/hooks/charge-by-id.hook.mjs +2 -3
  26. package/dist/modules/charges/hooks/charge-by-id.hook.mjs.map +1 -1
  27. package/dist/modules/charges/hooks/charges.hook.mjs +2 -3
  28. package/dist/modules/charges/hooks/charges.hook.mjs.map +1 -1
  29. package/dist/modules/ia-credits/handlers/list-ia-credits.handler.mjs +15 -0
  30. package/dist/modules/ia-credits/handlers/list-ia-credits.handler.mjs.map +1 -0
  31. package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs +5 -3
  32. package/dist/modules/ia-credits/hooks/ia-credits.hook.mjs.map +1 -1
  33. package/dist/modules/pages/handlers/count-pages.handler.mjs +14 -0
  34. package/dist/modules/pages/handlers/count-pages.handler.mjs.map +1 -0
  35. package/dist/modules/pages/hooks/count-pages.hook.mjs +3 -4
  36. package/dist/modules/pages/hooks/count-pages.hook.mjs.map +1 -1
  37. package/dist/modules/plans/handlers/find-plan-by-id.handler.mjs +15 -0
  38. package/dist/modules/plans/handlers/find-plan-by-id.handler.mjs.map +1 -0
  39. package/dist/modules/plans/handlers/list-plans.handler.mjs +20 -0
  40. package/dist/modules/plans/handlers/list-plans.handler.mjs.map +1 -0
  41. package/dist/modules/plans/hooks/list-plans.hook.mjs +2 -3
  42. package/dist/modules/plans/hooks/list-plans.hook.mjs.map +1 -1
  43. package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs +2 -3
  44. package/dist/modules/plans/hooks/use-plan-by-id.hook.mjs.map +1 -1
  45. package/dist/modules/projects/handlers/find-project.handler.mjs +16 -0
  46. package/dist/modules/projects/handlers/find-project.handler.mjs.map +1 -0
  47. package/dist/modules/projects/handlers/list-all-account-users.handler.mjs +17 -0
  48. package/dist/modules/projects/handlers/list-all-account-users.handler.mjs.map +1 -0
  49. package/dist/modules/projects/handlers/list-available-users.handler.mjs +20 -0
  50. package/dist/modules/projects/handlers/list-available-users.handler.mjs.map +1 -0
  51. package/dist/modules/projects/handlers/list-project-users.handler.mjs +20 -0
  52. package/dist/modules/projects/handlers/list-project-users.handler.mjs.map +1 -0
  53. package/dist/modules/projects/handlers/list-projects.handler.mjs +17 -0
  54. package/dist/modules/projects/handlers/list-projects.handler.mjs.map +1 -0
  55. package/dist/modules/projects/hooks/find-project.hook.mjs +2 -3
  56. package/dist/modules/projects/hooks/find-project.hook.mjs.map +1 -1
  57. package/dist/modules/projects/hooks/list-all-account-users.hook.mjs +6 -6
  58. package/dist/modules/projects/hooks/list-all-account-users.hook.mjs.map +1 -1
  59. package/dist/modules/projects/hooks/list-available-users.hook.mjs +6 -6
  60. package/dist/modules/projects/hooks/list-available-users.hook.mjs.map +1 -1
  61. package/dist/modules/projects/hooks/list-infinite-projects.hook.mjs +6 -6
  62. package/dist/modules/projects/hooks/list-infinite-projects.hook.mjs.map +1 -1
  63. package/dist/modules/projects/hooks/list-project-users.hook.mjs +6 -6
  64. package/dist/modules/projects/hooks/list-project-users.hook.mjs.map +1 -1
  65. package/dist/modules/projects/hooks/list-projects.hook.mjs +2 -3
  66. package/dist/modules/projects/hooks/list-projects.hook.mjs.map +1 -1
  67. package/dist/modules/subscriptions/handlers/list-subscriptions.handler.mjs +17 -0
  68. package/dist/modules/subscriptions/handlers/list-subscriptions.handler.mjs.map +1 -0
  69. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs +5 -5
  70. package/dist/modules/subscriptions/hooks/find-active-subscription.hook.mjs.map +1 -1
  71. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs +5 -3
  72. package/dist/modules/subscriptions/hooks/list-subscriptions.hook.mjs.map +1 -1
  73. package/dist/modules/users/handlers/list-messages.handler.mjs +36 -0
  74. package/dist/modules/users/handlers/list-messages.handler.mjs.map +1 -0
  75. package/dist/modules/users/hooks/messages.hook.mjs +7 -6
  76. package/dist/modules/users/hooks/messages.hook.mjs.map +1 -1
  77. package/dist/route.mjs +9 -0
  78. package/dist/route.mjs.map +1 -0
  79. package/package.json +14 -2
  80. package/src/handlers.ts +22 -0
  81. package/src/http.ts +1 -0
  82. package/src/infra/http/api-fetch.ts +39 -0
  83. package/src/infra/route/parse-id.ts +9 -0
  84. package/src/infra/route/safe-route-handler.ts +16 -0
  85. package/src/infra/route/search-params.ts +9 -0
  86. package/src/modules/cards/handlers/find-card-by-id.handler.ts +15 -0
  87. package/src/modules/cards/handlers/list-cards.handler.ts +10 -0
  88. package/src/modules/cards/hooks/card-by-id.hook.ts +4 -5
  89. package/src/modules/cards/hooks/cards.hook.ts +4 -5
  90. package/src/modules/charges/handlers/find-charge-by-id.handler.ts +14 -0
  91. package/src/modules/charges/handlers/list-charges.handler.ts +15 -0
  92. package/src/modules/charges/hooks/charge-by-id.hook.ts +5 -3
  93. package/src/modules/charges/hooks/charges.hook.ts +5 -4
  94. package/src/modules/ia-credits/handlers/list-ia-credits.handler.ts +14 -0
  95. package/src/modules/ia-credits/hooks/ia-credits.hook.ts +7 -3
  96. package/src/modules/pages/handlers/count-pages.handler.ts +12 -0
  97. package/src/modules/pages/hooks/count-pages.hook.ts +3 -4
  98. package/src/modules/plans/handlers/find-plan-by-id.handler.ts +14 -0
  99. package/src/modules/plans/handlers/list-plans.handler.ts +20 -0
  100. package/src/modules/plans/hooks/list-plans.hook.ts +2 -3
  101. package/src/modules/plans/hooks/use-plan-by-id.hook.ts +4 -3
  102. package/src/modules/projects/handlers/find-project.handler.ts +15 -0
  103. package/src/modules/projects/handlers/list-all-account-users.handler.ts +17 -0
  104. package/src/modules/projects/handlers/list-available-users.handler.ts +20 -0
  105. package/src/modules/projects/handlers/list-project-users.handler.ts +20 -0
  106. package/src/modules/projects/handlers/list-projects.handler.ts +17 -0
  107. package/src/modules/projects/hooks/find-project.hook.ts +3 -3
  108. package/src/modules/projects/hooks/list-all-account-users.hook.ts +8 -7
  109. package/src/modules/projects/hooks/list-available-users.hook.ts +8 -7
  110. package/src/modules/projects/hooks/list-infinite-projects.hook.ts +8 -7
  111. package/src/modules/projects/hooks/list-project-users.hook.ts +8 -7
  112. package/src/modules/projects/hooks/list-projects.hook.ts +3 -3
  113. package/src/modules/subscriptions/handlers/list-subscriptions.handler.ts +17 -0
  114. package/src/modules/subscriptions/hooks/find-active-subscription.hook.ts +8 -5
  115. package/src/modules/subscriptions/hooks/list-subscriptions.hook.ts +8 -5
  116. package/src/modules/users/handlers/list-messages.handler.ts +39 -0
  117. package/src/modules/users/hooks/messages.hook.ts +10 -8
  118. package/src/route.ts +3 -0
  119. package/src/server.ts +0 -8
  120. package/src/modules/cards/actions/find-card-by-id.action.ts +0 -8
  121. package/src/modules/cards/actions/list-cards.action.ts +0 -8
  122. package/src/modules/charges/actions/find-charge-by-id.action.ts +0 -8
  123. package/src/modules/charges/actions/list-charges.action.ts +0 -9
  124. package/src/modules/ia-credits/actions/list-ia-credits.action.ts +0 -8
  125. package/src/modules/pages/actions/count-pages.action.ts +0 -10
  126. package/src/modules/plans/actions/find-plan-by-id.action.ts +0 -8
  127. package/src/modules/plans/actions/list-plans.action.ts +0 -17
  128. package/src/modules/projects/actions/list-all-account-users.action.ts +0 -9
  129. package/src/modules/projects/actions/list-available-users.action.ts +0 -9
  130. package/src/modules/users/action/list-messages.action.ts +0 -26
@@ -0,0 +1,33 @@
1
+ import { createListCardsHandler } from "./modules/cards/handlers/list-cards.handler";
2
+ import { createFindCardByIdHandler } from "./modules/cards/handlers/find-card-by-id.handler";
3
+ import { createListChargesHandler } from "./modules/charges/handlers/list-charges.handler";
4
+ import { createFindChargeByIdHandler } from "./modules/charges/handlers/find-charge-by-id.handler";
5
+ import { createListIaCreditsHandler } from "./modules/ia-credits/handlers/list-ia-credits.handler";
6
+ import { createCountPagesHandler } from "./modules/pages/handlers/count-pages.handler";
7
+ import { createListPlansHandler } from "./modules/plans/handlers/list-plans.handler";
8
+ import { createFindPlanByIdHandler } from "./modules/plans/handlers/find-plan-by-id.handler";
9
+ import { createListProjectsHandler } from "./modules/projects/handlers/list-projects.handler";
10
+ import { createFindProjectHandler } from "./modules/projects/handlers/find-project.handler";
11
+ import { createListProjectUsersHandler } from "./modules/projects/handlers/list-project-users.handler";
12
+ import { createListAvailableUsersHandler } from "./modules/projects/handlers/list-available-users.handler";
13
+ import { createListAllAccountUsersHandler } from "./modules/projects/handlers/list-all-account-users.handler";
14
+ import { createListSubscriptionsHandler } from "./modules/subscriptions/handlers/list-subscriptions.handler";
15
+ import { createListMessagesHandler } from "./modules/users/handlers/list-messages.handler";
16
+ export {
17
+ createCountPagesHandler,
18
+ createFindCardByIdHandler,
19
+ createFindChargeByIdHandler,
20
+ createFindPlanByIdHandler,
21
+ createFindProjectHandler,
22
+ createListAllAccountUsersHandler,
23
+ createListAvailableUsersHandler,
24
+ createListCardsHandler,
25
+ createListChargesHandler,
26
+ createListIaCreditsHandler,
27
+ createListMessagesHandler,
28
+ createListPlansHandler,
29
+ createListProjectUsersHandler,
30
+ createListProjectsHandler,
31
+ createListSubscriptionsHandler
32
+ };
33
+ //# sourceMappingURL=handlers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/handlers.ts"],"sourcesContent":["export { createListCardsHandler } from './modules/cards/handlers/list-cards.handler';\nexport { createFindCardByIdHandler } from './modules/cards/handlers/find-card-by-id.handler';\n\nexport { createListChargesHandler } from './modules/charges/handlers/list-charges.handler';\nexport { createFindChargeByIdHandler } from './modules/charges/handlers/find-charge-by-id.handler';\n\nexport { createListIaCreditsHandler } from './modules/ia-credits/handlers/list-ia-credits.handler';\n\nexport { createCountPagesHandler } from './modules/pages/handlers/count-pages.handler';\n\nexport { createListPlansHandler } from './modules/plans/handlers/list-plans.handler';\nexport { createFindPlanByIdHandler } from './modules/plans/handlers/find-plan-by-id.handler';\n\nexport { createListProjectsHandler } from './modules/projects/handlers/list-projects.handler';\nexport { createFindProjectHandler } from './modules/projects/handlers/find-project.handler';\nexport { createListProjectUsersHandler } from './modules/projects/handlers/list-project-users.handler';\nexport { createListAvailableUsersHandler } from './modules/projects/handlers/list-available-users.handler';\nexport { createListAllAccountUsersHandler } from './modules/projects/handlers/list-all-account-users.handler';\n\nexport { createListSubscriptionsHandler } from './modules/subscriptions/handlers/list-subscriptions.handler';\n\nexport { createListMessagesHandler } from './modules/users/handlers/list-messages.handler';\n"],"mappings":"AAAA,SAAS,8BAA8B;AACvC,SAAS,iCAAiC;AAE1C,SAAS,gCAAgC;AACzC,SAAS,mCAAmC;AAE5C,SAAS,kCAAkC;AAE3C,SAAS,+BAA+B;AAExC,SAAS,8BAA8B;AACvC,SAAS,iCAAiC;AAE1C,SAAS,iCAAiC;AAC1C,SAAS,gCAAgC;AACzC,SAAS,qCAAqC;AAC9C,SAAS,uCAAuC;AAChD,SAAS,wCAAwC;AAEjD,SAAS,sCAAsC;AAE/C,SAAS,iCAAiC;","names":[]}
package/dist/http.mjs ADDED
@@ -0,0 +1,5 @@
1
+ import { apiFetch } from "./infra/http/api-fetch";
2
+ export {
3
+ apiFetch
4
+ };
5
+ //# sourceMappingURL=http.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/http.ts"],"sourcesContent":["export { apiFetch } from './infra/http/api-fetch';\n"],"mappings":"AAAA,SAAS,gBAAgB;","names":[]}
@@ -0,0 +1,30 @@
1
+ import { buildQueryParams } from "../utils/params";
2
+ async function apiFetch(path, options = {}) {
3
+ const { params, signal } = options;
4
+ const qs = params ? buildQueryParams(params) : "";
5
+ const url = qs ? `${path}?${qs}` : path;
6
+ const response = await fetch(url, {
7
+ method: "GET",
8
+ credentials: "same-origin",
9
+ headers: { Accept: "application/json" },
10
+ signal
11
+ });
12
+ if (!response.ok) {
13
+ let message = `Erro ${response.status}`;
14
+ try {
15
+ const body2 = await response.json();
16
+ if (body2 && !body2.success && body2.error) message = body2.error;
17
+ } catch {
18
+ }
19
+ throw new Error(message);
20
+ }
21
+ const body = await response.json();
22
+ if (!body.success) {
23
+ throw new Error(body.error ?? "Erro desconhecido");
24
+ }
25
+ return body.data;
26
+ }
27
+ export {
28
+ apiFetch
29
+ };
30
+ //# sourceMappingURL=api-fetch.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/infra/http/api-fetch.ts"],"sourcesContent":["import { buildQueryParams } from '../utils/params';\nimport type { ActionResult } from '../api/types';\n\ntype QueryParams = Parameters<typeof buildQueryParams>[0];\n\ninterface ApiFetchOptions {\n params?: object;\n signal?: AbortSignal;\n}\n\nexport async function apiFetch<T>(path: string, options: ApiFetchOptions = {}): Promise<T> {\n const { params, signal } = options;\n const qs = params ? buildQueryParams(params as QueryParams) : '';\n const url = qs ? `${path}?${qs}` : path;\n\n const response = await fetch(url, {\n method: 'GET',\n credentials: 'same-origin',\n headers: { Accept: 'application/json' },\n signal,\n });\n\n if (!response.ok) {\n let message = `Erro ${response.status}`;\n try {\n const body = (await response.json()) as ActionResult<unknown>;\n if (body && !body.success && body.error) message = body.error;\n } catch {\n // corpo não-JSON — mantém a mensagem genérica\n }\n throw new Error(message);\n }\n\n const body = (await response.json()) as ActionResult<T>;\n if (!body.success) {\n throw new Error(body.error ?? 'Erro desconhecido');\n }\n return body.data as T;\n}\n"],"mappings":"AAAA,SAAS,wBAAwB;AAUjC,eAAsB,SAAY,MAAc,UAA2B,CAAC,GAAe;AACzF,QAAM,EAAE,QAAQ,OAAO,IAAI;AAC3B,QAAM,KAAK,SAAS,iBAAiB,MAAqB,IAAI;AAC9D,QAAM,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,KAAK;AAEnC,QAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAChC,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAAS,EAAE,QAAQ,mBAAmB;AAAA,IACtC;AAAA,EACF,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,QAAI,UAAU,QAAQ,SAAS,MAAM;AACrC,QAAI;AACF,YAAMA,QAAQ,MAAM,SAAS,KAAK;AAClC,UAAIA,SAAQ,CAACA,MAAK,WAAWA,MAAK,MAAO,WAAUA,MAAK;AAAA,IAC1D,QAAQ;AAAA,IAER;AACA,UAAM,IAAI,MAAM,OAAO;AAAA,EACzB;AAEA,QAAM,OAAQ,MAAM,SAAS,KAAK;AAClC,MAAI,CAAC,KAAK,SAAS;AACjB,UAAM,IAAI,MAAM,KAAK,SAAS,mBAAmB;AAAA,EACnD;AACA,SAAO,KAAK;AACd;","names":["body"]}
@@ -0,0 +1,12 @@
1
+ import { ApiError } from "../api/types";
2
+ function parseId(value) {
3
+ const id = Number(value);
4
+ if (!Number.isFinite(id) || id <= 0) {
5
+ throw new ApiError("Identificador inv\xE1lido", "INVALID_ID", 400);
6
+ }
7
+ return id;
8
+ }
9
+ export {
10
+ parseId
11
+ };
12
+ //# sourceMappingURL=parse-id.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/infra/route/parse-id.ts"],"sourcesContent":["import { ApiError } from '../api/types';\n\nexport function parseId(value: string): number {\n const id = Number(value);\n if (!Number.isFinite(id) || id <= 0) {\n throw new ApiError('Identificador inválido', 'INVALID_ID', 400);\n }\n return id;\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AAElB,SAAS,QAAQ,OAAuB;AAC7C,QAAM,KAAK,OAAO,KAAK;AACvB,MAAI,CAAC,OAAO,SAAS,EAAE,KAAK,MAAM,GAAG;AACnC,UAAM,IAAI,SAAS,6BAA0B,cAAc,GAAG;AAAA,EAChE;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,18 @@
1
+ import "server-only";
2
+ import { ApiError } from "../api/types";
3
+ async function safeRouteHandler(fn) {
4
+ try {
5
+ const data = await fn();
6
+ return Response.json({ success: true, data });
7
+ } catch (error) {
8
+ if (error instanceof ApiError) {
9
+ return Response.json({ success: false, error: error.message }, { status: error.statusCode });
10
+ }
11
+ console.error("[safeRouteHandler] erro inesperado", error);
12
+ return Response.json({ success: false, error: "Erro interno do servidor" }, { status: 500 });
13
+ }
14
+ }
15
+ export {
16
+ safeRouteHandler
17
+ };
18
+ //# sourceMappingURL=safe-route-handler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/infra/route/safe-route-handler.ts"],"sourcesContent":["import 'server-only';\n\nimport { ApiError } from '../api/types';\n\nexport async function safeRouteHandler<T>(fn: () => Promise<T>): Promise<Response> {\n try {\n const data = await fn();\n return Response.json({ success: true, data });\n } catch (error) {\n if (error instanceof ApiError) {\n return Response.json({ success: false, error: error.message }, { status: error.statusCode });\n }\n console.error('[safeRouteHandler] erro inesperado', error);\n return Response.json({ success: false, error: 'Erro interno do servidor' }, { status: 500 });\n }\n}\n"],"mappings":"AAAA,OAAO;AAEP,SAAS,gBAAgB;AAEzB,eAAsB,iBAAoB,IAAyC;AACjF,MAAI;AACF,UAAM,OAAO,MAAM,GAAG;AACtB,WAAO,SAAS,KAAK,EAAE,SAAS,MAAM,KAAK,CAAC;AAAA,EAC9C,SAAS,OAAO;AACd,QAAI,iBAAiB,UAAU;AAC7B,aAAO,SAAS,KAAK,EAAE,SAAS,OAAO,OAAO,MAAM,QAAQ,GAAG,EAAE,QAAQ,MAAM,WAAW,CAAC;AAAA,IAC7F;AACA,YAAQ,MAAM,sCAAsC,KAAK;AACzD,WAAO,SAAS,KAAK,EAAE,SAAS,OAAO,OAAO,2BAA2B,GAAG,EAAE,QAAQ,IAAI,CAAC;AAAA,EAC7F;AACF;","names":[]}
@@ -0,0 +1,11 @@
1
+ function searchParamsToParams(searchParams) {
2
+ const params = /* @__PURE__ */ Object.create(null);
3
+ for (const [key, value] of searchParams.entries()) {
4
+ params[key] = value;
5
+ }
6
+ return params;
7
+ }
8
+ export {
9
+ searchParamsToParams
10
+ };
11
+ //# sourceMappingURL=search-params.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/infra/route/search-params.ts"],"sourcesContent":["export function searchParamsToParams<T extends object>(\n searchParams: URLSearchParams\n): Partial<T> {\n const params = Object.create(null) as Partial<Record<keyof T, string>>;\n for (const [key, value] of searchParams.entries()) {\n params[key as keyof T] = value;\n }\n return params as Partial<T>;\n}\n"],"mappings":"AAAO,SAAS,qBACd,cACY;AACZ,QAAM,SAAS,uBAAO,OAAO,IAAI;AACjC,aAAW,CAAC,KAAK,KAAK,KAAK,aAAa,QAAQ,GAAG;AACjD,WAAO,GAAc,IAAI;AAAA,EAC3B;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,16 @@
1
+ import "server-only";
2
+ import { parseId } from "../../../infra/route/parse-id";
3
+ import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
4
+ import { cardsService } from "../services/cards.service";
5
+ function createFindCardByIdHandler() {
6
+ return async function GET(_req, { params }) {
7
+ return safeRouteHandler(async () => {
8
+ const { id } = await params;
9
+ return cardsService.findCardById(parseId(id));
10
+ });
11
+ };
12
+ }
13
+ export {
14
+ createFindCardByIdHandler
15
+ };
16
+ //# sourceMappingURL=find-card-by-id.handler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/cards/handlers/find-card-by-id.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport type { NextRequest } from 'next/server';\nimport { parseId } from '../../../infra/route/parse-id';\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { cardsService } from '../services/cards.service';\n\nexport function createFindCardByIdHandler() {\n return async function GET(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {\n return safeRouteHandler(async () => {\n const { id } = await params;\n return cardsService.findCardById(parseId(id));\n });\n };\n}\n"],"mappings":"AAAA,OAAO;AAGP,SAAS,eAAe;AACxB,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAEtB,SAAS,4BAA4B;AAC1C,SAAO,eAAe,IAAI,MAAmB,EAAE,OAAO,GAAwC;AAC5F,WAAO,iBAAiB,YAAY;AAClC,YAAM,EAAE,GAAG,IAAI,MAAM;AACrB,aAAO,aAAa,aAAa,QAAQ,EAAE,CAAC;AAAA,IAC9C,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -0,0 +1,12 @@
1
+ import "server-only";
2
+ import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
3
+ import { cardsService } from "../services/cards.service";
4
+ function createListCardsHandler() {
5
+ return async function GET() {
6
+ return safeRouteHandler(() => cardsService.listCards());
7
+ };
8
+ }
9
+ export {
10
+ createListCardsHandler
11
+ };
12
+ //# sourceMappingURL=list-cards.handler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/cards/handlers/list-cards.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { cardsService } from '../services/cards.service';\n\nexport function createListCardsHandler() {\n return async function GET() {\n return safeRouteHandler(() => cardsService.listCards());\n };\n}\n"],"mappings":"AAAA,OAAO;AAEP,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAEtB,SAAS,yBAAyB;AACvC,SAAO,eAAe,MAAM;AAC1B,WAAO,iBAAiB,MAAM,aAAa,UAAU,CAAC;AAAA,EACxD;AACF;","names":[]}
@@ -1,15 +1,12 @@
1
1
  "use client";
2
2
  import { useQuery } from "@tanstack/react-query";
3
- import { withAction } from "../../../utils/withAction";
3
+ import { apiFetch } from "../../../infra/http/api-fetch";
4
4
  import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
5
5
  function useCardById(id) {
6
6
  const cardKey = useAuthQueryKey(["card", id]);
7
7
  return useQuery({
8
8
  queryKey: cardKey,
9
- queryFn: async () => {
10
- const { findCardByIdAction } = await import("../actions/find-card-by-id.action");
11
- return withAction(findCardByIdAction)(id);
12
- },
9
+ queryFn: ({ signal }) => apiFetch(`/api/cards/${id}`, { signal }),
13
10
  enabled: id != null
14
11
  });
15
12
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/modules/cards/hooks/card-by-id.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { withAction } from '../../../utils/withAction';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nexport function useCardById(id: number | undefined) {\n const cardKey = useAuthQueryKey(['card', id]);\n\n return useQuery({\n queryKey: cardKey,\n queryFn: async () => {\n const { findCardByIdAction } = await import('../actions/find-card-by-id.action');\n return withAction(findCardByIdAction)(id!);\n },\n enabled: id != null,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAEzB,SAAS,YAAY,IAAwB;AAClD,QAAM,UAAU,gBAAgB,CAAC,QAAQ,EAAE,CAAC;AAE5C,SAAO,SAAS;AAAA,IACd,UAAU;AAAA,IACV,SAAS,YAAY;AACnB,YAAM,EAAE,mBAAmB,IAAI,MAAM,OAAO,mCAAmC;AAC/E,aAAO,WAAW,kBAAkB,EAAE,EAAG;AAAA,IAC3C;AAAA,IACA,SAAS,MAAM;AAAA,EACjB,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../../src/modules/cards/hooks/card-by-id.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from '../../../infra/http/api-fetch';\nimport type { SuccessResult } from '../../../infra/api/types';\nimport type { Card } from '../types';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nexport function useCardById(id: number | undefined) {\n const cardKey = useAuthQueryKey(['card', id]);\n\n return useQuery({\n queryKey: cardKey,\n queryFn: ({ signal }) => apiFetch<SuccessResult<Card>>(`/api/cards/${id}`, { signal }),\n enabled: id != null,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAGzB,SAAS,uBAAuB;AAEzB,SAAS,YAAY,IAAwB;AAClD,QAAM,UAAU,gBAAgB,CAAC,QAAQ,EAAE,CAAC;AAE5C,SAAO,SAAS;AAAA,IACd,UAAU;AAAA,IACV,SAAS,CAAC,EAAE,OAAO,MAAM,SAA8B,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC;AAAA,IACrF,SAAS,MAAM;AAAA,EACjB,CAAC;AACH;","names":[]}
@@ -1,16 +1,13 @@
1
1
  "use client";
2
2
  import { useQuery } from "@tanstack/react-query";
3
- import { withAction } from "../../../utils/withAction";
3
+ import { apiFetch } from "../../../infra/http/api-fetch";
4
4
  import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
5
5
  const CARDS_QUERY_KEY = ["cards"];
6
6
  function useCards() {
7
7
  const queryKey = useAuthQueryKey([...CARDS_QUERY_KEY]);
8
8
  return useQuery({
9
9
  queryKey,
10
- queryFn: async () => {
11
- const { listCardsAction } = await import("../actions/list-cards.action");
12
- return withAction(listCardsAction)();
13
- },
10
+ queryFn: ({ signal }) => apiFetch("/api/cards", { signal }),
14
11
  select: (result) => ({
15
12
  ...result,
16
13
  data: result.data.filter((card) => !card.deleted)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/modules/cards/hooks/cards.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { withAction } from '../../../utils/withAction';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nexport const CARDS_QUERY_KEY = ['cards'] as const;\n\nexport function useCards() {\n const queryKey = useAuthQueryKey([...CARDS_QUERY_KEY]);\n\n return useQuery({\n queryKey,\n queryFn: async () => {\n const { listCardsAction } = await import('../actions/list-cards.action');\n return withAction(listCardsAction)();\n },\n select: (result) => ({\n ...result,\n data: result.data.filter((card) => !card.deleted),\n }),\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAEzB,MAAM,kBAAkB,CAAC,OAAO;AAEhC,SAAS,WAAW;AACzB,QAAM,WAAW,gBAAgB,CAAC,GAAG,eAAe,CAAC;AAErD,SAAO,SAAS;AAAA,IACd;AAAA,IACA,SAAS,YAAY;AACnB,YAAM,EAAE,gBAAgB,IAAI,MAAM,OAAO,8BAA8B;AACvE,aAAO,WAAW,eAAe,EAAE;AAAA,IACrC;AAAA,IACA,QAAQ,CAAC,YAAY;AAAA,MACnB,GAAG;AAAA,MACH,MAAM,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,KAAK,OAAO;AAAA,IAClD;AAAA,EACF,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../../src/modules/cards/hooks/cards.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from '../../../infra/http/api-fetch';\nimport type { PaginatedSuccessResult } from '../../../infra/api/types';\nimport type { Card } from '../types';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nexport const CARDS_QUERY_KEY = ['cards'] as const;\n\nexport function useCards() {\n const queryKey = useAuthQueryKey([...CARDS_QUERY_KEY]);\n\n return useQuery({\n queryKey,\n queryFn: ({ signal }) => apiFetch<PaginatedSuccessResult<Card>>('/api/cards', { signal }),\n select: (result) => ({\n ...result,\n data: result.data.filter((card) => !card.deleted),\n }),\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAGzB,SAAS,uBAAuB;AAEzB,MAAM,kBAAkB,CAAC,OAAO;AAEhC,SAAS,WAAW;AACzB,QAAM,WAAW,gBAAgB,CAAC,GAAG,eAAe,CAAC;AAErD,SAAO,SAAS;AAAA,IACd;AAAA,IACA,SAAS,CAAC,EAAE,OAAO,MAAM,SAAuC,cAAc,EAAE,OAAO,CAAC;AAAA,IACxF,QAAQ,CAAC,YAAY;AAAA,MACnB,GAAG;AAAA,MACH,MAAM,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,KAAK,OAAO;AAAA,IAClD;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,15 @@
1
+ import "server-only";
2
+ import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
3
+ import { chargesService } from "../services/charges.service";
4
+ function createFindChargeByIdHandler() {
5
+ return async function GET(_req, { params }) {
6
+ return safeRouteHandler(async () => {
7
+ const { id } = await params;
8
+ return chargesService.findChargeById(id);
9
+ });
10
+ };
11
+ }
12
+ export {
13
+ createFindChargeByIdHandler
14
+ };
15
+ //# sourceMappingURL=find-charge-by-id.handler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/charges/handlers/find-charge-by-id.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport type { NextRequest } from 'next/server';\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { chargesService } from '../services/charges.service';\n\nexport function createFindChargeByIdHandler() {\n return async function GET(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {\n return safeRouteHandler(async () => {\n const { id } = await params;\n return chargesService.findChargeById(id);\n });\n };\n}\n"],"mappings":"AAAA,OAAO;AAGP,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAExB,SAAS,8BAA8B;AAC5C,SAAO,eAAe,IAAI,MAAmB,EAAE,OAAO,GAAwC;AAC5F,WAAO,iBAAiB,YAAY;AAClC,YAAM,EAAE,GAAG,IAAI,MAAM;AACrB,aAAO,eAAe,eAAe,EAAE;AAAA,IACzC,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -0,0 +1,15 @@
1
+ import "server-only";
2
+ import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
3
+ import { searchParamsToParams } from "../../../infra/route/search-params";
4
+ import { chargesService } from "../services/charges.service";
5
+ function createListChargesHandler() {
6
+ return async function GET(req) {
7
+ return safeRouteHandler(
8
+ () => chargesService.listCharges(searchParamsToParams(req.nextUrl.searchParams))
9
+ );
10
+ };
11
+ }
12
+ export {
13
+ createListChargesHandler
14
+ };
15
+ //# sourceMappingURL=list-charges.handler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/charges/handlers/list-charges.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport type { NextRequest } from 'next/server';\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { searchParamsToParams } from '../../../infra/route/search-params';\nimport { chargesService } from '../services/charges.service';\nimport type { FindChargesParams } from '../types/charge.type';\n\nexport function createListChargesHandler() {\n return async function GET(req: NextRequest) {\n return safeRouteHandler(() =>\n chargesService.listCharges(searchParamsToParams<FindChargesParams>(req.nextUrl.searchParams))\n );\n };\n}\n"],"mappings":"AAAA,OAAO;AAGP,SAAS,wBAAwB;AACjC,SAAS,4BAA4B;AACrC,SAAS,sBAAsB;AAGxB,SAAS,2BAA2B;AACzC,SAAO,eAAe,IAAI,KAAkB;AAC1C,WAAO;AAAA,MAAiB,MACtB,eAAe,YAAY,qBAAwC,IAAI,QAAQ,YAAY,CAAC;AAAA,IAC9F;AAAA,EACF;AACF;","names":[]}
@@ -1,14 +1,13 @@
1
1
  "use client";
2
2
  import { useQuery } from "@tanstack/react-query";
3
- import { withAction } from "../../../utils/withAction";
3
+ import { apiFetch } from "../../../infra/http/api-fetch";
4
4
  import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
5
- import { findChargeByIdAction } from "../actions/find-charge-by-id.action";
6
5
  import { CHARGES_QUERY_KEY } from "../../subscriptions/constants/query-keys.constants";
7
6
  function useChargeById(chargeId) {
8
7
  const chargesKey = useAuthQueryKey([...CHARGES_QUERY_KEY, chargeId]);
9
8
  return useQuery({
10
9
  queryKey: chargesKey,
11
- queryFn: () => withAction(findChargeByIdAction)(chargeId),
10
+ queryFn: ({ signal }) => apiFetch(`/api/charges/${chargeId}`, { signal }),
12
11
  enabled: !!chargeId
13
12
  });
14
13
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/modules/charges/hooks/charge-by-id.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { withAction } from '../../../utils/withAction';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\nimport { findChargeByIdAction } from '../actions/find-charge-by-id.action';\nimport { CHARGES_QUERY_KEY } from '../../subscriptions/constants/query-keys.constants';\n\nexport function useChargeById(chargeId: string | number | null | undefined) {\n const chargesKey = useAuthQueryKey([...CHARGES_QUERY_KEY, chargeId]);\n\n return useQuery({\n queryKey: chargesKey,\n queryFn: () => withAction(findChargeByIdAction)(chargeId!),\n enabled: !!chargeId,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAChC,SAAS,4BAA4B;AACrC,SAAS,yBAAyB;AAE3B,SAAS,cAAc,UAA8C;AAC1E,QAAM,aAAa,gBAAgB,CAAC,GAAG,mBAAmB,QAAQ,CAAC;AAEnE,SAAO,SAAS;AAAA,IACd,UAAU;AAAA,IACV,SAAS,MAAM,WAAW,oBAAoB,EAAE,QAAS;AAAA,IACzD,SAAS,CAAC,CAAC;AAAA,EACb,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../../src/modules/charges/hooks/charge-by-id.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from '../../../infra/http/api-fetch';\nimport type { SuccessResult } from '../../../infra/api/types';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\nimport { Charge } from '../types/charge.type';\nimport { CHARGES_QUERY_KEY } from '../../subscriptions/constants/query-keys.constants';\n\nexport function useChargeById(chargeId: string | number | null | undefined) {\n const chargesKey = useAuthQueryKey([...CHARGES_QUERY_KEY, chargeId]);\n\n return useQuery({\n queryKey: chargesKey,\n queryFn: ({ signal }) =>\n apiFetch<SuccessResult<Charge>>(`/api/charges/${chargeId}`, { signal }),\n enabled: !!chargeId,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAEzB,SAAS,uBAAuB;AAEhC,SAAS,yBAAyB;AAE3B,SAAS,cAAc,UAA8C;AAC1E,QAAM,aAAa,gBAAgB,CAAC,GAAG,mBAAmB,QAAQ,CAAC;AAEnE,SAAO,SAAS;AAAA,IACd,UAAU;AAAA,IACV,SAAS,CAAC,EAAE,OAAO,MACjB,SAAgC,gBAAgB,QAAQ,IAAI,EAAE,OAAO,CAAC;AAAA,IACxE,SAAS,CAAC,CAAC;AAAA,EACb,CAAC;AACH;","names":[]}
@@ -1,14 +1,13 @@
1
1
  "use client";
2
2
  import { useQuery } from "@tanstack/react-query";
3
- import { withAction } from "../../../utils/withAction";
3
+ import { apiFetch } from "../../../infra/http/api-fetch";
4
4
  import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
5
- import { listChargesAction } from "../actions/list-charges.action";
6
5
  import { CHARGES_QUERY_KEY } from "../../subscriptions/constants/query-keys.constants";
7
6
  function useCharges(params) {
8
7
  const chargesKey = useAuthQueryKey([...CHARGES_QUERY_KEY, params]);
9
8
  return useQuery({
10
9
  queryKey: chargesKey,
11
- queryFn: () => withAction(listChargesAction)(params),
10
+ queryFn: ({ signal }) => apiFetch("/api/charges", { params, signal }),
12
11
  staleTime: 1e4
13
12
  });
14
13
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/modules/charges/hooks/charges.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { withAction } from '../../../utils/withAction';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\nimport { listChargesAction } from '../actions/list-charges.action';\nimport { FindChargesParams } from '../types/charge.type';\nimport { CHARGES_QUERY_KEY } from '../../subscriptions/constants/query-keys.constants';\n\nexport function useCharges(params?: Partial<FindChargesParams>) {\n const chargesKey = useAuthQueryKey([...CHARGES_QUERY_KEY, params]);\n\n return useQuery({\n queryKey: chargesKey,\n queryFn: () => withAction(listChargesAction)(params),\n staleTime: 10_000,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAElC,SAAS,yBAAyB;AAE3B,SAAS,WAAW,QAAqC;AAC9D,QAAM,aAAa,gBAAgB,CAAC,GAAG,mBAAmB,MAAM,CAAC;AAEjE,SAAO,SAAS;AAAA,IACd,UAAU;AAAA,IACV,SAAS,MAAM,WAAW,iBAAiB,EAAE,MAAM;AAAA,IACnD,WAAW;AAAA,EACb,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../../src/modules/charges/hooks/charges.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from '../../../infra/http/api-fetch';\nimport type { PaginatedSuccessResult } from '../../../infra/api/types';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\nimport { Charge, FindChargesParams } from '../types/charge.type';\nimport { CHARGES_QUERY_KEY } from '../../subscriptions/constants/query-keys.constants';\n\nexport function useCharges(params?: Partial<FindChargesParams>) {\n const chargesKey = useAuthQueryKey([...CHARGES_QUERY_KEY, params]);\n\n return useQuery({\n queryKey: chargesKey,\n queryFn: ({ signal }) =>\n apiFetch<PaginatedSuccessResult<Charge>>('/api/charges', { params, signal }),\n staleTime: 10_000,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAEzB,SAAS,uBAAuB;AAEhC,SAAS,yBAAyB;AAE3B,SAAS,WAAW,QAAqC;AAC9D,QAAM,aAAa,gBAAgB,CAAC,GAAG,mBAAmB,MAAM,CAAC;AAEjE,SAAO,SAAS;AAAA,IACd,UAAU;AAAA,IACV,SAAS,CAAC,EAAE,OAAO,MACjB,SAAyC,gBAAgB,EAAE,QAAQ,OAAO,CAAC;AAAA,IAC7E,WAAW;AAAA,EACb,CAAC;AACH;","names":[]}
@@ -0,0 +1,15 @@
1
+ import "server-only";
2
+ import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
3
+ import { iaCreditsService } from "../services/ia-credits.service";
4
+ function createListIaCreditsHandler() {
5
+ return async function GET(_req, { params }) {
6
+ return safeRouteHandler(async () => {
7
+ const { id } = await params;
8
+ return iaCreditsService.listOperations(id);
9
+ });
10
+ };
11
+ }
12
+ export {
13
+ createListIaCreditsHandler
14
+ };
15
+ //# sourceMappingURL=list-ia-credits.handler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/ia-credits/handlers/list-ia-credits.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport type { NextRequest } from 'next/server';\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { iaCreditsService } from '../services/ia-credits.service';\n\nexport function createListIaCreditsHandler() {\n return async function GET(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {\n return safeRouteHandler(async () => {\n const { id } = await params;\n return iaCreditsService.listOperations(id);\n });\n };\n}\n"],"mappings":"AAAA,OAAO;AAGP,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AAE1B,SAAS,6BAA6B;AAC3C,SAAO,eAAe,IAAI,MAAmB,EAAE,OAAO,GAAwC;AAC5F,WAAO,iBAAiB,YAAY;AAClC,YAAM,EAAE,GAAG,IAAI,MAAM;AACrB,aAAO,iBAAiB,eAAe,EAAE;AAAA,IAC3C,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -1,9 +1,8 @@
1
1
  "use client";
2
2
  import { useMemo } from "react";
3
3
  import { useQuery } from "@tanstack/react-query";
4
- import { listIaCreditsAction } from "../actions/list-ia-credits.action";
4
+ import { apiFetch } from "../../../infra/http/api-fetch";
5
5
  import { useActiveSubscription } from "../../subscriptions/hooks/find-active-subscription.hook";
6
- import { withAction } from "../../../utils/withAction";
7
6
  import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
8
7
  function calculateSummary(operations) {
9
8
  const today = /* @__PURE__ */ new Date();
@@ -56,7 +55,10 @@ function useIaCredits() {
56
55
  const queryKey = useAuthQueryKey(["ia-credits", subscriptionId]);
57
56
  const query = useQuery({
58
57
  queryKey,
59
- queryFn: withAction(() => listIaCreditsAction(subscriptionId)),
58
+ queryFn: ({ signal }) => apiFetch(
59
+ `/api/subscriptions/${subscriptionId}/ia-credits`,
60
+ { signal }
61
+ ),
60
62
  enabled: subscriptionId != null
61
63
  });
62
64
  const operations = query.data?.data ?? [];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/modules/ia-credits/hooks/ia-credits.hook.ts"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { listIaCreditsAction } from '../actions/list-ia-credits.action';\nimport type { IaCreditOperation, IaCreditsSummary } from '../types';\nimport { useActiveSubscription } from '../../subscriptions/hooks/find-active-subscription.hook';\nimport { withAction } from '../../../utils/withAction';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nfunction calculateSummary(operations: IaCreditOperation[]): IaCreditsSummary {\n const today = new Date();\n const todayDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());\n\n const adds = operations.filter((op) => op.operation === 'add');\n const subtracts = operations.filter((op) => op.operation === 'subtract');\n\n let totalCredits = 0;\n let usedCredits = 0;\n let nextExpirationInDays: number | null = null;\n let nextExpiringCredits: number | null = null;\n\n for (const add of adds) {\n const expirationRaw = add.expiration_time;\n if (!expirationRaw) continue;\n\n const expiration = new Date(expirationRaw);\n const expirationDate = new Date(\n expiration.getFullYear(),\n expiration.getMonth(),\n expiration.getDate()\n );\n\n const expiredByDate = expirationDate.getTime() < todayDate.getTime();\n const hasExpired = add.has_expired || expiredByDate;\n\n if (hasExpired) continue;\n\n const addedCredits = add.operation_value;\n\n const consumedForAdd = subtracts\n .filter((sub) => String(sub.consumed_from_add_id) === String(add.id))\n .reduce((sum, sub) => sum + sub.operation_value, 0);\n\n const remainingForAdd = Math.max(0, addedCredits - consumedForAdd);\n\n totalCredits += addedCredits;\n usedCredits += consumedForAdd;\n\n const diffMs = expirationDate.getTime() - todayDate.getTime();\n const days = Math.max(0, Math.ceil(diffMs / (1000 * 60 * 60 * 24)));\n\n if (remainingForAdd > 0) {\n if (nextExpirationInDays === null || days < nextExpirationInDays) {\n nextExpirationInDays = days;\n nextExpiringCredits = remainingForAdd;\n }\n }\n }\n\n const availableCredits = Math.max(0, totalCredits - usedCredits);\n\n return {\n totalCredits,\n usedCredits,\n availableCredits,\n nextExpiringCredits,\n nextExpirationInDays,\n };\n}\n\nexport function useIaCredits() {\n const { data: subscriptionData, isPending: isSubscriptionLoading } = useActiveSubscription();\n const subscription = subscriptionData?.data?.[0] ?? null;\n const subscriptionId = subscription?.id;\n const queryKey = useAuthQueryKey(['ia-credits', subscriptionId]);\n\n const query = useQuery({\n queryKey,\n queryFn: withAction(() => listIaCreditsAction(subscriptionId!)),\n enabled: subscriptionId != null,\n });\n\n const operations = query.data?.data ?? [];\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const summary = useMemo(() => calculateSummary(operations), [operations]);\n\n return {\n subscription,\n operations,\n summary,\n isLoading: isSubscriptionLoading || query.isPending,\n isSubscriptionLoading,\n isCreditsLoading: query.isPending,\n isError: query.isError,\n error: query.error,\n };\n}\n"],"mappings":";AAEA,SAAS,eAAe;AACxB,SAAS,gBAAgB;AACzB,SAAS,2BAA2B;AAEpC,SAAS,6BAA6B;AACtC,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAEhC,SAAS,iBAAiB,YAAmD;AAC3E,QAAM,QAAQ,oBAAI,KAAK;AACvB,QAAM,YAAY,IAAI,KAAK,MAAM,YAAY,GAAG,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC;AAEjF,QAAM,OAAO,WAAW,OAAO,CAAC,OAAO,GAAG,cAAc,KAAK;AAC7D,QAAM,YAAY,WAAW,OAAO,CAAC,OAAO,GAAG,cAAc,UAAU;AAEvE,MAAI,eAAe;AACnB,MAAI,cAAc;AAClB,MAAI,uBAAsC;AAC1C,MAAI,sBAAqC;AAEzC,aAAW,OAAO,MAAM;AACtB,UAAM,gBAAgB,IAAI;AAC1B,QAAI,CAAC,cAAe;AAEpB,UAAM,aAAa,IAAI,KAAK,aAAa;AACzC,UAAM,iBAAiB,IAAI;AAAA,MACzB,WAAW,YAAY;AAAA,MACvB,WAAW,SAAS;AAAA,MACpB,WAAW,QAAQ;AAAA,IACrB;AAEA,UAAM,gBAAgB,eAAe,QAAQ,IAAI,UAAU,QAAQ;AACnE,UAAM,aAAa,IAAI,eAAe;AAEtC,QAAI,WAAY;AAEhB,UAAM,eAAe,IAAI;AAEzB,UAAM,iBAAiB,UACpB,OAAO,CAAC,QAAQ,OAAO,IAAI,oBAAoB,MAAM,OAAO,IAAI,EAAE,CAAC,EACnE,OAAO,CAAC,KAAK,QAAQ,MAAM,IAAI,iBAAiB,CAAC;AAEpD,UAAM,kBAAkB,KAAK,IAAI,GAAG,eAAe,cAAc;AAEjE,oBAAgB;AAChB,mBAAe;AAEf,UAAM,SAAS,eAAe,QAAQ,IAAI,UAAU,QAAQ;AAC5D,UAAM,OAAO,KAAK,IAAI,GAAG,KAAK,KAAK,UAAU,MAAO,KAAK,KAAK,GAAG,CAAC;AAElE,QAAI,kBAAkB,GAAG;AACvB,UAAI,yBAAyB,QAAQ,OAAO,sBAAsB;AAChE,+BAAuB;AACvB,8BAAsB;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAEA,QAAM,mBAAmB,KAAK,IAAI,GAAG,eAAe,WAAW;AAE/D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,eAAe;AAC7B,QAAM,EAAE,MAAM,kBAAkB,WAAW,sBAAsB,IAAI,sBAAsB;AAC3F,QAAM,eAAe,kBAAkB,OAAO,CAAC,KAAK;AACpD,QAAM,iBAAiB,cAAc;AACrC,QAAM,WAAW,gBAAgB,CAAC,cAAc,cAAc,CAAC;AAE/D,QAAM,QAAQ,SAAS;AAAA,IACrB;AAAA,IACA,SAAS,WAAW,MAAM,oBAAoB,cAAe,CAAC;AAAA,IAC9D,SAAS,kBAAkB;AAAA,EAC7B,CAAC;AAED,QAAM,aAAa,MAAM,MAAM,QAAQ,CAAC;AAGxC,QAAM,UAAU,QAAQ,MAAM,iBAAiB,UAAU,GAAG,CAAC,UAAU,CAAC;AAExE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,yBAAyB,MAAM;AAAA,IAC1C;AAAA,IACA,kBAAkB,MAAM;AAAA,IACxB,SAAS,MAAM;AAAA,IACf,OAAO,MAAM;AAAA,EACf;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/modules/ia-credits/hooks/ia-credits.hook.ts"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from '../../../infra/http/api-fetch';\nimport type { PaginatedSuccessResult } from '../../../infra/api/types';\nimport type { IaCreditOperation, IaCreditsSummary } from '../types';\nimport { useActiveSubscription } from '../../subscriptions/hooks/find-active-subscription.hook';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nfunction calculateSummary(operations: IaCreditOperation[]): IaCreditsSummary {\n const today = new Date();\n const todayDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());\n\n const adds = operations.filter((op) => op.operation === 'add');\n const subtracts = operations.filter((op) => op.operation === 'subtract');\n\n let totalCredits = 0;\n let usedCredits = 0;\n let nextExpirationInDays: number | null = null;\n let nextExpiringCredits: number | null = null;\n\n for (const add of adds) {\n const expirationRaw = add.expiration_time;\n if (!expirationRaw) continue;\n\n const expiration = new Date(expirationRaw);\n const expirationDate = new Date(\n expiration.getFullYear(),\n expiration.getMonth(),\n expiration.getDate()\n );\n\n const expiredByDate = expirationDate.getTime() < todayDate.getTime();\n const hasExpired = add.has_expired || expiredByDate;\n\n if (hasExpired) continue;\n\n const addedCredits = add.operation_value;\n\n const consumedForAdd = subtracts\n .filter((sub) => String(sub.consumed_from_add_id) === String(add.id))\n .reduce((sum, sub) => sum + sub.operation_value, 0);\n\n const remainingForAdd = Math.max(0, addedCredits - consumedForAdd);\n\n totalCredits += addedCredits;\n usedCredits += consumedForAdd;\n\n const diffMs = expirationDate.getTime() - todayDate.getTime();\n const days = Math.max(0, Math.ceil(diffMs / (1000 * 60 * 60 * 24)));\n\n if (remainingForAdd > 0) {\n if (nextExpirationInDays === null || days < nextExpirationInDays) {\n nextExpirationInDays = days;\n nextExpiringCredits = remainingForAdd;\n }\n }\n }\n\n const availableCredits = Math.max(0, totalCredits - usedCredits);\n\n return {\n totalCredits,\n usedCredits,\n availableCredits,\n nextExpiringCredits,\n nextExpirationInDays,\n };\n}\n\nexport function useIaCredits() {\n const { data: subscriptionData, isPending: isSubscriptionLoading } = useActiveSubscription();\n const subscription = subscriptionData?.data?.[0] ?? null;\n const subscriptionId = subscription?.id;\n const queryKey = useAuthQueryKey(['ia-credits', subscriptionId]);\n\n const query = useQuery({\n queryKey,\n queryFn: ({ signal }) =>\n apiFetch<PaginatedSuccessResult<IaCreditOperation>>(\n `/api/subscriptions/${subscriptionId}/ia-credits`,\n { signal }\n ),\n enabled: subscriptionId != null,\n });\n\n const operations = query.data?.data ?? [];\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const summary = useMemo(() => calculateSummary(operations), [operations]);\n\n return {\n subscription,\n operations,\n summary,\n isLoading: isSubscriptionLoading || query.isPending,\n isSubscriptionLoading,\n isCreditsLoading: query.isPending,\n isError: query.isError,\n error: query.error,\n };\n}\n"],"mappings":";AAEA,SAAS,eAAe;AACxB,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAGzB,SAAS,6BAA6B;AACtC,SAAS,uBAAuB;AAEhC,SAAS,iBAAiB,YAAmD;AAC3E,QAAM,QAAQ,oBAAI,KAAK;AACvB,QAAM,YAAY,IAAI,KAAK,MAAM,YAAY,GAAG,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC;AAEjF,QAAM,OAAO,WAAW,OAAO,CAAC,OAAO,GAAG,cAAc,KAAK;AAC7D,QAAM,YAAY,WAAW,OAAO,CAAC,OAAO,GAAG,cAAc,UAAU;AAEvE,MAAI,eAAe;AACnB,MAAI,cAAc;AAClB,MAAI,uBAAsC;AAC1C,MAAI,sBAAqC;AAEzC,aAAW,OAAO,MAAM;AACtB,UAAM,gBAAgB,IAAI;AAC1B,QAAI,CAAC,cAAe;AAEpB,UAAM,aAAa,IAAI,KAAK,aAAa;AACzC,UAAM,iBAAiB,IAAI;AAAA,MACzB,WAAW,YAAY;AAAA,MACvB,WAAW,SAAS;AAAA,MACpB,WAAW,QAAQ;AAAA,IACrB;AAEA,UAAM,gBAAgB,eAAe,QAAQ,IAAI,UAAU,QAAQ;AACnE,UAAM,aAAa,IAAI,eAAe;AAEtC,QAAI,WAAY;AAEhB,UAAM,eAAe,IAAI;AAEzB,UAAM,iBAAiB,UACpB,OAAO,CAAC,QAAQ,OAAO,IAAI,oBAAoB,MAAM,OAAO,IAAI,EAAE,CAAC,EACnE,OAAO,CAAC,KAAK,QAAQ,MAAM,IAAI,iBAAiB,CAAC;AAEpD,UAAM,kBAAkB,KAAK,IAAI,GAAG,eAAe,cAAc;AAEjE,oBAAgB;AAChB,mBAAe;AAEf,UAAM,SAAS,eAAe,QAAQ,IAAI,UAAU,QAAQ;AAC5D,UAAM,OAAO,KAAK,IAAI,GAAG,KAAK,KAAK,UAAU,MAAO,KAAK,KAAK,GAAG,CAAC;AAElE,QAAI,kBAAkB,GAAG;AACvB,UAAI,yBAAyB,QAAQ,OAAO,sBAAsB;AAChE,+BAAuB;AACvB,8BAAsB;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAEA,QAAM,mBAAmB,KAAK,IAAI,GAAG,eAAe,WAAW;AAE/D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAAS,eAAe;AAC7B,QAAM,EAAE,MAAM,kBAAkB,WAAW,sBAAsB,IAAI,sBAAsB;AAC3F,QAAM,eAAe,kBAAkB,OAAO,CAAC,KAAK;AACpD,QAAM,iBAAiB,cAAc;AACrC,QAAM,WAAW,gBAAgB,CAAC,cAAc,cAAc,CAAC;AAE/D,QAAM,QAAQ,SAAS;AAAA,IACrB;AAAA,IACA,SAAS,CAAC,EAAE,OAAO,MACjB;AAAA,MACE,sBAAsB,cAAc;AAAA,MACpC,EAAE,OAAO;AAAA,IACX;AAAA,IACF,SAAS,kBAAkB;AAAA,EAC7B,CAAC;AAED,QAAM,aAAa,MAAM,MAAM,QAAQ,CAAC;AAGxC,QAAM,UAAU,QAAQ,MAAM,iBAAiB,UAAU,GAAG,CAAC,UAAU,CAAC;AAExE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,yBAAyB,MAAM;AAAA,IAC1C;AAAA,IACA,kBAAkB,MAAM;AAAA,IACxB,SAAS,MAAM;AAAA,IACf,OAAO,MAAM;AAAA,EACf;AACF;","names":[]}
@@ -0,0 +1,14 @@
1
+ import "server-only";
2
+ import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
3
+ import { pagesService } from "../services/pages.service";
4
+ function createCountPagesHandler() {
5
+ return async function GET() {
6
+ return safeRouteHandler(async () => ({
7
+ total: await pagesService.countPages()
8
+ }));
9
+ };
10
+ }
11
+ export {
12
+ createCountPagesHandler
13
+ };
14
+ //# sourceMappingURL=count-pages.handler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/pages/handlers/count-pages.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { pagesService } from '../services/pages.service';\n\nexport function createCountPagesHandler() {\n return async function GET() {\n return safeRouteHandler(async () => ({\n total: await pagesService.countPages(),\n }));\n };\n}\n"],"mappings":"AAAA,OAAO;AAEP,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAEtB,SAAS,0BAA0B;AACxC,SAAO,eAAe,MAAM;AAC1B,WAAO,iBAAiB,aAAa;AAAA,MACnC,OAAO,MAAM,aAAa,WAAW;AAAA,IACvC,EAAE;AAAA,EACJ;AACF;","names":[]}
@@ -1,16 +1,15 @@
1
1
  "use client";
2
2
  import { useQuery } from "@tanstack/react-query";
3
- import { countPagesAction } from "../actions/count-pages.action";
3
+ import { apiFetch } from "../../../infra/http/api-fetch";
4
4
  import { PAGES_QUERY_KEY } from "../constants/query-keys.constants";
5
- import { withAction } from "../../../utils/withAction";
6
5
  import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
7
6
  const COUNT_PAGES_QUERY_KEY = [...PAGES_QUERY_KEY, "count"];
8
7
  function useCountPages() {
9
8
  const queryKey = useAuthQueryKey([...COUNT_PAGES_QUERY_KEY]);
10
9
  return useQuery({
11
10
  queryKey,
12
- queryFn: async () => {
13
- const result = await withAction(countPagesAction)();
11
+ queryFn: async ({ signal }) => {
12
+ const result = await apiFetch("/api/pages/count", { signal });
14
13
  return result.total;
15
14
  },
16
15
  staleTime: 3e4
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/modules/pages/hooks/count-pages.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { countPagesAction } from '../actions/count-pages.action';\nimport { PAGES_QUERY_KEY } from '../constants/query-keys.constants';\nimport { withAction } from '../../../utils/withAction';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nexport const COUNT_PAGES_QUERY_KEY = [...PAGES_QUERY_KEY, 'count'] as const;\n\nexport function useCountPages() {\n const queryKey = useAuthQueryKey([...COUNT_PAGES_QUERY_KEY]);\n\n return useQuery({\n queryKey,\n queryFn: async () => {\n const result = await withAction(countPagesAction)();\n return result.total;\n },\n staleTime: 30_000,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAEzB,MAAM,wBAAwB,CAAC,GAAG,iBAAiB,OAAO;AAE1D,SAAS,gBAAgB;AAC9B,QAAM,WAAW,gBAAgB,CAAC,GAAG,qBAAqB,CAAC;AAE3D,SAAO,SAAS;AAAA,IACd;AAAA,IACA,SAAS,YAAY;AACnB,YAAM,SAAS,MAAM,WAAW,gBAAgB,EAAE;AAClD,aAAO,OAAO;AAAA,IAChB;AAAA,IACA,WAAW;AAAA,EACb,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../../src/modules/pages/hooks/count-pages.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from '../../../infra/http/api-fetch';\nimport { PAGES_QUERY_KEY } from '../constants/query-keys.constants';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nexport const COUNT_PAGES_QUERY_KEY = [...PAGES_QUERY_KEY, 'count'] as const;\n\nexport function useCountPages() {\n const queryKey = useAuthQueryKey([...COUNT_PAGES_QUERY_KEY]);\n\n return useQuery({\n queryKey,\n queryFn: async ({ signal }) => {\n const result = await apiFetch<{ total: number }>('/api/pages/count', { signal });\n return result.total;\n },\n staleTime: 30_000,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAEzB,MAAM,wBAAwB,CAAC,GAAG,iBAAiB,OAAO;AAE1D,SAAS,gBAAgB;AAC9B,QAAM,WAAW,gBAAgB,CAAC,GAAG,qBAAqB,CAAC;AAE3D,SAAO,SAAS;AAAA,IACd;AAAA,IACA,SAAS,OAAO,EAAE,OAAO,MAAM;AAC7B,YAAM,SAAS,MAAM,SAA4B,oBAAoB,EAAE,OAAO,CAAC;AAC/E,aAAO,OAAO;AAAA,IAChB;AAAA,IACA,WAAW;AAAA,EACb,CAAC;AACH;","names":[]}
@@ -0,0 +1,15 @@
1
+ import "server-only";
2
+ import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
3
+ import { plansService } from "../services/plans.service";
4
+ function createFindPlanByIdHandler() {
5
+ return async function GET(_req, { params }) {
6
+ return safeRouteHandler(async () => {
7
+ const { id } = await params;
8
+ return plansService.findById(id);
9
+ });
10
+ };
11
+ }
12
+ export {
13
+ createFindPlanByIdHandler
14
+ };
15
+ //# sourceMappingURL=find-plan-by-id.handler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/plans/handlers/find-plan-by-id.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport type { NextRequest } from 'next/server';\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { plansService } from '../services/plans.service';\n\nexport function createFindPlanByIdHandler() {\n return async function GET(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {\n return safeRouteHandler(async () => {\n const { id } = await params;\n return plansService.findById(id);\n });\n };\n}\n"],"mappings":"AAAA,OAAO;AAGP,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAEtB,SAAS,4BAA4B;AAC1C,SAAO,eAAe,IAAI,MAAmB,EAAE,OAAO,GAAwC;AAC5F,WAAO,iBAAiB,YAAY;AAClC,YAAM,EAAE,GAAG,IAAI,MAAM;AACrB,aAAO,aAAa,SAAS,EAAE;AAAA,IACjC,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -0,0 +1,20 @@
1
+ import "server-only";
2
+ import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
3
+ import { plansService } from "../services/plans.service";
4
+ function createListPlansHandler() {
5
+ return async function GET() {
6
+ return safeRouteHandler(async () => {
7
+ const { data: apiPlans } = await plansService.listPlans({
8
+ active: true,
9
+ search: "client",
10
+ sort: "id:ASC"
11
+ });
12
+ if (!apiPlans?.length) return [];
13
+ return [...apiPlans].sort((a, b) => a.value - b.value);
14
+ });
15
+ };
16
+ }
17
+ export {
18
+ createListPlansHandler
19
+ };
20
+ //# sourceMappingURL=list-plans.handler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/plans/handlers/list-plans.handler.ts"],"sourcesContent":["import 'server-only';\n\nimport { safeRouteHandler } from '../../../infra/route/safe-route-handler';\nimport { plansService } from '../services/plans.service';\n\nexport function createListPlansHandler() {\n return async function GET() {\n return safeRouteHandler(async () => {\n const { data: apiPlans } = await plansService.listPlans({\n active: true,\n search: 'client',\n sort: 'id:ASC',\n });\n\n if (!apiPlans?.length) return [];\n\n return [...apiPlans].sort((a, b) => a.value - b.value);\n });\n };\n}\n"],"mappings":"AAAA,OAAO;AAEP,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAEtB,SAAS,yBAAyB;AACvC,SAAO,eAAe,MAAM;AAC1B,WAAO,iBAAiB,YAAY;AAClC,YAAM,EAAE,MAAM,SAAS,IAAI,MAAM,aAAa,UAAU;AAAA,QACtD,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,MAAM;AAAA,MACR,CAAC;AAED,UAAI,CAAC,UAAU,OAAQ,QAAO,CAAC;AAE/B,aAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK;AAAA,IACvD,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -1,14 +1,13 @@
1
1
  "use client";
2
2
  import { useQuery } from "@tanstack/react-query";
3
- import { withAction } from "@greatapps/common";
4
- import { listPlansAction } from "../actions/list-plans.action";
3
+ import { apiFetch } from "../../../infra/http/api-fetch";
5
4
  import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
6
5
  const PLANS_QUERY_KEY = ["plans"];
7
6
  function usePlans() {
8
7
  const queryKey = useAuthQueryKey([...PLANS_QUERY_KEY]);
9
8
  return useQuery({
10
9
  queryKey,
11
- queryFn: withAction(listPlansAction),
10
+ queryFn: ({ signal }) => apiFetch("/api/plans", { signal }),
12
11
  staleTime: Infinity,
13
12
  gcTime: Infinity,
14
13
  refetchOnWindowFocus: false,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/modules/plans/hooks/list-plans.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { withAction } from '@greatapps/common';\nimport { listPlansAction } from '../actions/list-plans.action';\nimport type { Plan } from '../types/plan.type';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nexport const PLANS_QUERY_KEY = ['plans'] as const;\n\nexport function usePlans() {\n const queryKey = useAuthQueryKey([...PLANS_QUERY_KEY]);\n\n return useQuery<Plan[]>({\n queryKey,\n queryFn: withAction(listPlansAction),\n staleTime: Infinity,\n gcTime: Infinity,\n refetchOnWindowFocus: false,\n refetchOnReconnect: false,\n refetchOnMount: false,\n retry: 1,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAEhC,SAAS,uBAAuB;AAEzB,MAAM,kBAAkB,CAAC,OAAO;AAEhC,SAAS,WAAW;AACzB,QAAM,WAAW,gBAAgB,CAAC,GAAG,eAAe,CAAC;AAErD,SAAO,SAAiB;AAAA,IACtB;AAAA,IACA,SAAS,WAAW,eAAe;AAAA,IACnC,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,OAAO;AAAA,EACT,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../../src/modules/plans/hooks/list-plans.hook.ts"],"sourcesContent":["'use client';\n\nimport { useQuery } from '@tanstack/react-query';\nimport { apiFetch } from '../../../infra/http/api-fetch';\nimport type { Plan } from '../types/plan.type';\nimport { useAuthQueryKey } from '../../../hooks/useAuthQueryKey';\n\nexport const PLANS_QUERY_KEY = ['plans'] as const;\n\nexport function usePlans() {\n const queryKey = useAuthQueryKey([...PLANS_QUERY_KEY]);\n\n return useQuery<Plan[]>({\n queryKey,\n queryFn: ({ signal }) => apiFetch<Plan[]>('/api/plans', { signal }),\n staleTime: Infinity,\n gcTime: Infinity,\n refetchOnWindowFocus: false,\n refetchOnReconnect: false,\n refetchOnMount: false,\n retry: 1,\n });\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AAEzB,SAAS,uBAAuB;AAEzB,MAAM,kBAAkB,CAAC,OAAO;AAEhC,SAAS,WAAW;AACzB,QAAM,WAAW,gBAAgB,CAAC,GAAG,eAAe,CAAC;AAErD,SAAO,SAAiB;AAAA,IACtB;AAAA,IACA,SAAS,CAAC,EAAE,OAAO,MAAM,SAAiB,cAAc,EAAE,OAAO,CAAC;AAAA,IAClE,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,OAAO;AAAA,EACT,CAAC;AACH;","names":[]}
@@ -1,7 +1,6 @@
1
1
  "use client";
2
2
  import { useQuery, useQueryClient } from "@tanstack/react-query";
3
- import { withAction } from "../../../utils/withAction";
4
- import { findPlanByIdAction } from "../actions/find-plan-by-id.action";
3
+ import { apiFetch } from "../../../infra/http/api-fetch";
5
4
  import { PLANS_QUERY_KEY } from "./list-plans.hook";
6
5
  import { useAuthQueryKey } from "../../../hooks/useAuthQueryKey";
7
6
  function usePlanById(idPlan) {
@@ -9,7 +8,7 @@ function usePlanById(idPlan) {
9
8
  const plansKey = useAuthQueryKey([...PLANS_QUERY_KEY]);
10
9
  return useQuery({
11
10
  queryKey: [...plansKey, idPlan],
12
- queryFn: withAction(() => findPlanByIdAction(idPlan)),
11
+ queryFn: ({ signal }) => apiFetch(`/api/plans/${idPlan}`, { signal }),
13
12
  initialData: () => {
14
13
  const queries = queryClient.getQueriesData({
15
14
  queryKey: plansKey
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/modules/plans/hooks/use-plan-by-id.hook.ts"],"sourcesContent":["\"use client\";\n\nimport { useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { withAction } from \"../../../utils/withAction\";\nimport { findPlanByIdAction } from \"../actions/find-plan-by-id.action\";\nimport type { Plan } from \"../types/plan.type\";\nimport { PLANS_QUERY_KEY } from \"./list-plans.hook\";\nimport { useAuthQueryKey } from \"../../../hooks/useAuthQueryKey\";\n\nexport function usePlanById(idPlan?: number | string | null) {\n const queryClient = useQueryClient();\n const plansKey = useAuthQueryKey([...PLANS_QUERY_KEY]);\n\n return useQuery({\n queryKey: [...plansKey, idPlan],\n queryFn: withAction(() => findPlanByIdAction(idPlan!)),\n initialData: () => {\n const queries = queryClient.getQueriesData<Plan[]>({\n queryKey: plansKey,\n });\n\n for (const [, data] of queries) {\n if (!data || !Array.isArray(data)) continue;\n const numericId = Number(idPlan);\n const plan = data.find(\n (p) => p.id === numericId || p.id_plan === numericId\n );\n if (plan) {\n return { success: true as const, data: plan };\n }\n }\n\n return undefined;\n },\n initialDataUpdatedAt: 0,\n enabled: !!idPlan,\n });\n}\n"],"mappings":";AAEA,SAAS,UAAU,sBAAsB;AACzC,SAAS,kBAAkB;AAC3B,SAAS,0BAA0B;AAEnC,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAEzB,SAAS,YAAY,QAAiC;AAC3D,QAAM,cAAc,eAAe;AACnC,QAAM,WAAW,gBAAgB,CAAC,GAAG,eAAe,CAAC;AAErD,SAAO,SAAS;AAAA,IACd,UAAU,CAAC,GAAG,UAAU,MAAM;AAAA,IAC9B,SAAS,WAAW,MAAM,mBAAmB,MAAO,CAAC;AAAA,IACrD,aAAa,MAAM;AACjB,YAAM,UAAU,YAAY,eAAuB;AAAA,QACjD,UAAU;AAAA,MACZ,CAAC;AAED,iBAAW,CAAC,EAAE,IAAI,KAAK,SAAS;AAC9B,YAAI,CAAC,QAAQ,CAAC,MAAM,QAAQ,IAAI,EAAG;AACnC,cAAM,YAAY,OAAO,MAAM;AAC/B,cAAM,OAAO,KAAK;AAAA,UAChB,CAAC,MAAM,EAAE,OAAO,aAAa,EAAE,YAAY;AAAA,QAC7C;AACA,YAAI,MAAM;AACR,iBAAO,EAAE,SAAS,MAAe,MAAM,KAAK;AAAA,QAC9C;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAAA,IACA,sBAAsB;AAAA,IACtB,SAAS,CAAC,CAAC;AAAA,EACb,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../../src/modules/plans/hooks/use-plan-by-id.hook.ts"],"sourcesContent":["\"use client\";\n\nimport { useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { apiFetch } from \"../../../infra/http/api-fetch\";\nimport type { SuccessResult } from \"../../../infra/api/types\";\nimport type { Plan } from \"../types/plan.type\";\nimport { PLANS_QUERY_KEY } from \"./list-plans.hook\";\nimport { useAuthQueryKey } from \"../../../hooks/useAuthQueryKey\";\n\nexport function usePlanById(idPlan?: number | string | null) {\n const queryClient = useQueryClient();\n const plansKey = useAuthQueryKey([...PLANS_QUERY_KEY]);\n\n return useQuery({\n queryKey: [...plansKey, idPlan],\n queryFn: ({ signal }) =>\n apiFetch<SuccessResult<Plan>>(`/api/plans/${idPlan}`, { signal }),\n initialData: () => {\n const queries = queryClient.getQueriesData<Plan[]>({\n queryKey: plansKey,\n });\n\n for (const [, data] of queries) {\n if (!data || !Array.isArray(data)) continue;\n const numericId = Number(idPlan);\n const plan = data.find(\n (p) => p.id === numericId || p.id_plan === numericId\n );\n if (plan) {\n return { success: true as const, data: plan };\n }\n }\n\n return undefined;\n },\n initialDataUpdatedAt: 0,\n enabled: !!idPlan,\n });\n}\n"],"mappings":";AAEA,SAAS,UAAU,sBAAsB;AACzC,SAAS,gBAAgB;AAGzB,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAEzB,SAAS,YAAY,QAAiC;AAC3D,QAAM,cAAc,eAAe;AACnC,QAAM,WAAW,gBAAgB,CAAC,GAAG,eAAe,CAAC;AAErD,SAAO,SAAS;AAAA,IACd,UAAU,CAAC,GAAG,UAAU,MAAM;AAAA,IAC9B,SAAS,CAAC,EAAE,OAAO,MACjB,SAA8B,cAAc,MAAM,IAAI,EAAE,OAAO,CAAC;AAAA,IAClE,aAAa,MAAM;AACjB,YAAM,UAAU,YAAY,eAAuB;AAAA,QACjD,UAAU;AAAA,MACZ,CAAC;AAED,iBAAW,CAAC,EAAE,IAAI,KAAK,SAAS;AAC9B,YAAI,CAAC,QAAQ,CAAC,MAAM,QAAQ,IAAI,EAAG;AACnC,cAAM,YAAY,OAAO,MAAM;AAC/B,cAAM,OAAO,KAAK;AAAA,UAChB,CAAC,MAAM,EAAE,OAAO,aAAa,EAAE,YAAY;AAAA,QAC7C;AACA,YAAI,MAAM;AACR,iBAAO,EAAE,SAAS,MAAe,MAAM,KAAK;AAAA,QAC9C;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAAA,IACA,sBAAsB;AAAA,IACtB,SAAS,CAAC,CAAC;AAAA,EACb,CAAC;AACH;","names":[]}
@@ -0,0 +1,16 @@
1
+ import "server-only";
2
+ import { parseId } from "../../../infra/route/parse-id";
3
+ import { safeRouteHandler } from "../../../infra/route/safe-route-handler";
4
+ import { projectsService } from "../services/projects.service";
5
+ function createFindProjectHandler() {
6
+ return async function GET(_req, { params }) {
7
+ return safeRouteHandler(async () => {
8
+ const { id } = await params;
9
+ return projectsService.findById(parseId(id));
10
+ });
11
+ };
12
+ }
13
+ export {
14
+ createFindProjectHandler
15
+ };
16
+ //# sourceMappingURL=find-project.handler.mjs.map