@openapi-qraft/react 2.15.0-beta.6 → 2.15.0-beta.8

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 (165) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/cjs/Unstable_QraftSecureRequestFn.cjs.map +1 -1
  3. package/dist/cjs/callbacks/cancelQueries.cjs.map +1 -1
  4. package/dist/cjs/callbacks/ensureInfiniteQueryData.cjs.map +1 -1
  5. package/dist/cjs/callbacks/ensureQueryData.cjs.map +1 -1
  6. package/dist/cjs/callbacks/fetchInfiniteQuery.cjs.map +1 -1
  7. package/dist/cjs/callbacks/fetchQuery.cjs.map +1 -1
  8. package/dist/cjs/callbacks/getInfiniteQueryData.cjs.map +1 -1
  9. package/dist/cjs/callbacks/getInfiniteQueryKey.cjs.map +1 -1
  10. package/dist/cjs/callbacks/getInfiniteQueryState.cjs.map +1 -1
  11. package/dist/cjs/callbacks/getMutationCache.cjs.map +1 -1
  12. package/dist/cjs/callbacks/getMutationKey.cjs.map +1 -1
  13. package/dist/cjs/callbacks/getQueriesData.cjs.map +1 -1
  14. package/dist/cjs/callbacks/getQueryData.cjs.map +1 -1
  15. package/dist/cjs/callbacks/getQueryKey.cjs.map +1 -1
  16. package/dist/cjs/callbacks/getQueryState.cjs.map +1 -1
  17. package/dist/cjs/callbacks/invalidateQueries.cjs.map +1 -1
  18. package/dist/cjs/callbacks/isFetching.cjs.map +1 -1
  19. package/dist/cjs/callbacks/isMutating.cjs.map +1 -1
  20. package/dist/cjs/callbacks/operationInvokeFn.cjs +4 -1
  21. package/dist/cjs/callbacks/operationInvokeFn.cjs.map +1 -1
  22. package/dist/cjs/callbacks/prefetchInfiniteQuery.cjs.map +1 -1
  23. package/dist/cjs/callbacks/prefetchQuery.cjs.map +1 -1
  24. package/dist/cjs/callbacks/refetchQueries.cjs.map +1 -1
  25. package/dist/cjs/callbacks/removeQueries.cjs.map +1 -1
  26. package/dist/cjs/callbacks/resetQueries.cjs.map +1 -1
  27. package/dist/cjs/callbacks/setInfiniteQueryData.cjs.map +1 -1
  28. package/dist/cjs/callbacks/setQueriesData.cjs.map +1 -1
  29. package/dist/cjs/callbacks/setQueryData.cjs.map +1 -1
  30. package/dist/cjs/callbacks/useInfiniteQuery.cjs.map +1 -1
  31. package/dist/cjs/callbacks/useIsFetching.cjs.map +1 -1
  32. package/dist/cjs/callbacks/useIsMutating.cjs.map +1 -1
  33. package/dist/cjs/callbacks/useMutation.cjs +16 -5
  34. package/dist/cjs/callbacks/useMutation.cjs.map +1 -1
  35. package/dist/cjs/callbacks/useMutationState.cjs.map +1 -1
  36. package/dist/cjs/callbacks/useQueries.cjs +5 -4
  37. package/dist/cjs/callbacks/useQueries.cjs.map +1 -1
  38. package/dist/cjs/callbacks/useQuery.cjs.map +1 -1
  39. package/dist/cjs/callbacks/useSuspenseInfiniteQuery.cjs.map +1 -1
  40. package/dist/cjs/callbacks/useSuspenseQueries.cjs +5 -4
  41. package/dist/cjs/callbacks/useSuspenseQueries.cjs.map +1 -1
  42. package/dist/cjs/callbacks/useSuspenseQuery.cjs.map +1 -1
  43. package/dist/cjs/lib/callQueryClientFetchMethod.cjs +5 -4
  44. package/dist/cjs/lib/callQueryClientFetchMethod.cjs.map +1 -1
  45. package/dist/cjs/lib/callQueryClientMethodWithMutationFilters.cjs.map +1 -1
  46. package/dist/cjs/lib/callQueryClientMethodWithQueryFilters.cjs.map +1 -1
  47. package/dist/cjs/lib/callQueryClientMethodWithQueryKey.cjs.map +1 -1
  48. package/dist/cjs/lib/composeBaseQueryKey.cjs.map +1 -1
  49. package/dist/cjs/lib/composeInfiniteQueryKey.cjs.map +1 -1
  50. package/dist/cjs/lib/composeMutationFilters.cjs.map +1 -1
  51. package/dist/cjs/lib/composeMutationKey.cjs.map +1 -1
  52. package/dist/cjs/lib/composeQueryFilters.cjs.map +1 -1
  53. package/dist/cjs/lib/composeQueryKey.cjs.map +1 -1
  54. package/dist/cjs/lib/createRecursiveProxy.cjs.map +1 -1
  55. package/dist/cjs/lib/createRequestFnInfo.cjs +17 -0
  56. package/dist/cjs/lib/createRequestFnInfo.cjs.map +1 -0
  57. package/dist/cjs/lib/jwt-decode/index.cjs.map +1 -1
  58. package/dist/cjs/lib/prepareRequestFnParameters.cjs.map +1 -1
  59. package/dist/cjs/lib/requestFn.cjs +1 -1
  60. package/dist/cjs/lib/requestFn.cjs.map +1 -1
  61. package/dist/cjs/lib/requestFnResponseRejecter.cjs.map +1 -1
  62. package/dist/cjs/lib/requestFnResponseResolver.cjs.map +1 -1
  63. package/dist/cjs/lib/responseUtils.cjs.map +1 -1
  64. package/dist/cjs/lib/shelfMerge.cjs.map +1 -1
  65. package/dist/cjs/lib/useComposeUseQueryOptions.cjs +5 -4
  66. package/dist/cjs/lib/useComposeUseQueryOptions.cjs.map +1 -1
  67. package/dist/cjs/qraftAPIClient.cjs.map +1 -1
  68. package/dist/cjs/qraftPredefinedParametersRequestFn.cjs.map +1 -1
  69. package/dist/cjs/qraftReactAPIClient.cjs.map +1 -1
  70. package/dist/esm/Unstable_QraftSecureRequestFn.js.map +1 -1
  71. package/dist/esm/callbacks/cancelQueries.js.map +1 -1
  72. package/dist/esm/callbacks/ensureInfiniteQueryData.js.map +1 -1
  73. package/dist/esm/callbacks/ensureQueryData.js.map +1 -1
  74. package/dist/esm/callbacks/fetchInfiniteQuery.js.map +1 -1
  75. package/dist/esm/callbacks/fetchQuery.js.map +1 -1
  76. package/dist/esm/callbacks/getInfiniteQueryData.js.map +1 -1
  77. package/dist/esm/callbacks/getInfiniteQueryKey.js.map +1 -1
  78. package/dist/esm/callbacks/getInfiniteQueryState.js.map +1 -1
  79. package/dist/esm/callbacks/getMutationCache.js.map +1 -1
  80. package/dist/esm/callbacks/getMutationKey.js.map +1 -1
  81. package/dist/esm/callbacks/getQueriesData.js.map +1 -1
  82. package/dist/esm/callbacks/getQueryData.js.map +1 -1
  83. package/dist/esm/callbacks/getQueryKey.js.map +1 -1
  84. package/dist/esm/callbacks/getQueryState.js.map +1 -1
  85. package/dist/esm/callbacks/invalidateQueries.js.map +1 -1
  86. package/dist/esm/callbacks/isFetching.js.map +1 -1
  87. package/dist/esm/callbacks/isMutating.js.map +1 -1
  88. package/dist/esm/callbacks/operationInvokeFn.js +4 -1
  89. package/dist/esm/callbacks/operationInvokeFn.js.map +1 -1
  90. package/dist/esm/callbacks/prefetchInfiniteQuery.js.map +1 -1
  91. package/dist/esm/callbacks/prefetchQuery.js.map +1 -1
  92. package/dist/esm/callbacks/refetchQueries.js.map +1 -1
  93. package/dist/esm/callbacks/removeQueries.js.map +1 -1
  94. package/dist/esm/callbacks/resetQueries.js.map +1 -1
  95. package/dist/esm/callbacks/setInfiniteQueryData.js.map +1 -1
  96. package/dist/esm/callbacks/setQueriesData.js.map +1 -1
  97. package/dist/esm/callbacks/setQueryData.js.map +1 -1
  98. package/dist/esm/callbacks/useInfiniteQuery.js.map +1 -1
  99. package/dist/esm/callbacks/useIsFetching.js.map +1 -1
  100. package/dist/esm/callbacks/useIsMutating.js.map +1 -1
  101. package/dist/esm/callbacks/useMutation.js +16 -5
  102. package/dist/esm/callbacks/useMutation.js.map +1 -1
  103. package/dist/esm/callbacks/useMutationState.js.map +1 -1
  104. package/dist/esm/callbacks/useQueries.js +5 -4
  105. package/dist/esm/callbacks/useQueries.js.map +1 -1
  106. package/dist/esm/callbacks/useQuery.js.map +1 -1
  107. package/dist/esm/callbacks/useSuspenseInfiniteQuery.js.map +1 -1
  108. package/dist/esm/callbacks/useSuspenseQueries.js +5 -4
  109. package/dist/esm/callbacks/useSuspenseQueries.js.map +1 -1
  110. package/dist/esm/callbacks/useSuspenseQuery.js.map +1 -1
  111. package/dist/esm/lib/callQueryClientFetchMethod.js +5 -4
  112. package/dist/esm/lib/callQueryClientFetchMethod.js.map +1 -1
  113. package/dist/esm/lib/callQueryClientMethodWithMutationFilters.js.map +1 -1
  114. package/dist/esm/lib/callQueryClientMethodWithQueryFilters.js.map +1 -1
  115. package/dist/esm/lib/callQueryClientMethodWithQueryKey.js.map +1 -1
  116. package/dist/esm/lib/composeBaseQueryKey.js.map +1 -1
  117. package/dist/esm/lib/composeInfiniteQueryKey.js.map +1 -1
  118. package/dist/esm/lib/composeMutationFilters.js.map +1 -1
  119. package/dist/esm/lib/composeMutationKey.js.map +1 -1
  120. package/dist/esm/lib/composeQueryFilters.js.map +1 -1
  121. package/dist/esm/lib/composeQueryKey.js.map +1 -1
  122. package/dist/esm/lib/createRecursiveProxy.js.map +1 -1
  123. package/dist/esm/lib/createRequestFnInfo.js +15 -0
  124. package/dist/esm/lib/createRequestFnInfo.js.map +1 -0
  125. package/dist/esm/lib/jwt-decode/index.js.map +1 -1
  126. package/dist/esm/lib/prepareRequestFnParameters.js.map +1 -1
  127. package/dist/esm/lib/requestFn.js +1 -1
  128. package/dist/esm/lib/requestFn.js.map +1 -1
  129. package/dist/esm/lib/requestFnResponseRejecter.js.map +1 -1
  130. package/dist/esm/lib/requestFnResponseResolver.js.map +1 -1
  131. package/dist/esm/lib/responseUtils.js.map +1 -1
  132. package/dist/esm/lib/shelfMerge.js.map +1 -1
  133. package/dist/esm/lib/useComposeUseQueryOptions.js +5 -4
  134. package/dist/esm/lib/useComposeUseQueryOptions.js.map +1 -1
  135. package/dist/esm/qraftAPIClient.js.map +1 -1
  136. package/dist/esm/qraftPredefinedParametersRequestFn.js.map +1 -1
  137. package/dist/esm/qraftReactAPIClient.js.map +1 -1
  138. package/dist/types/Unstable_QraftSecureRequestFn.d.ts.map +1 -1
  139. package/dist/types/callbacks/getInfiniteQueryKey.d.ts.map +1 -1
  140. package/dist/types/callbacks/getMutationKey.d.ts.map +1 -1
  141. package/dist/types/callbacks/getQueryKey.d.ts.map +1 -1
  142. package/dist/types/callbacks/operationInvokeFn.d.ts.map +1 -1
  143. package/dist/types/callbacks/useMutation.d.ts.map +1 -1
  144. package/dist/types/callbacks/useQueries.d.ts.map +1 -1
  145. package/dist/types/callbacks/useSuspenseQueries.d.ts.map +1 -1
  146. package/dist/types/index.d.ts +1 -1
  147. package/dist/types/index.d.ts.map +1 -1
  148. package/dist/types/lib/callQueryClientFetchMethod.d.ts.map +1 -1
  149. package/dist/types/lib/createRequestFnInfo.d.ts +4 -0
  150. package/dist/types/lib/createRequestFnInfo.d.ts.map +1 -0
  151. package/dist/types/lib/requestFn.d.ts.map +1 -1
  152. package/dist/types/lib/useComposeUseQueryOptions.d.ts.map +1 -1
  153. package/dist/types/qraftReactAPIClient.d.ts +28 -44
  154. package/dist/types/qraftReactAPIClient.d.ts.map +1 -1
  155. package/package.json +29 -29
  156. package/src/callbacks/operationInvokeFn.ts +3 -0
  157. package/src/callbacks/useMutation.ts +14 -1
  158. package/src/callbacks/useQueries.ts +20 -9
  159. package/src/callbacks/useSuspenseQueries.ts +16 -8
  160. package/src/index.ts +5 -1
  161. package/src/lib/callQueryClientFetchMethod.ts +17 -10
  162. package/src/lib/createRequestFnInfo.ts +22 -0
  163. package/src/lib/requestFn.ts +7 -1
  164. package/src/lib/useComposeUseQueryOptions.ts +16 -13
  165. package/src/qraftReactAPIClient.ts +112 -57
@@ -1 +1 @@
1
- {"version":3,"file":"composeQueryKey.cjs","sources":["../../../src/lib/composeQueryKey.ts"],"sourcesContent":["import type { ServiceOperationQueryKey } from '@openapi-qraft/tanstack-query-react-types';\nimport type { OperationSchema } from './requestFn.js';\nimport { composeBaseQueryKey } from './composeBaseQueryKey.js';\n\nexport function composeQueryKey<TSchema extends OperationSchema, TParams>(\n schema: TSchema,\n parameters: TParams | undefined\n): ServiceOperationQueryKey<TSchema, TParams> {\n return composeBaseQueryKey(schema, parameters, false);\n}\n"],"names":["composeQueryKey","schema","parameters","composeBaseQueryKey"],"mappings":";;;;AAIO,SAASA,eAAAA,CACdC,MAAe,EACfC,UAA+B,EAAA;IAE/B,OAAOC,uCAAAA,CAAoBF,QAAQC,UAAY,EAAA,KAAA,CAAA,CAAA;AACjD;;;;"}
1
+ {"version":3,"file":"composeQueryKey.cjs","sources":["../../../src/lib/composeQueryKey.ts"],"sourcesContent":["import type { ServiceOperationQueryKey } from '@openapi-qraft/tanstack-query-react-types';\nimport type { OperationSchema } from './requestFn.js';\nimport { composeBaseQueryKey } from './composeBaseQueryKey.js';\n\nexport function composeQueryKey<TSchema extends OperationSchema, TParams>(\n schema: TSchema,\n parameters: TParams | undefined\n): ServiceOperationQueryKey<TSchema, TParams> {\n return composeBaseQueryKey(schema, parameters, false);\n}\n"],"names":["composeQueryKey","schema","parameters","composeBaseQueryKey"],"mappings":";;;;AAIO,SAASA,eAAAA,CACdC,MAAe,EACfC,UAA+B,EAAA;IAE/B,OAAOC,uCAAAA,CAAoBF,QAAQC,UAAAA,EAAY,KAAA,CAAA;AACjD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createRecursiveProxy.cjs","sources":["../../../src/lib/createRecursiveProxy.ts"],"sourcesContent":["type ProxyApplyCallback = (\n path: (string | symbol)[],\n args: unknown[]\n) => unknown;\n/**\n * @internal\n * If returns `undefined | null`, the proxy will continue to create a new proxy for the next key.\n */\ntype ProxyGetCallback = (\n path: (string | symbol)[],\n key: string | symbol\n) => unknown | undefined;\n\n/**\n * Creates a recursive proxy that calls the `getCallback` and `applyCallback` functions\n * @param getCallback The callback to call when a proxy property is accessed\n * @param applyCallback The callback to call when a proxy is called as a function\n * @param path The current path of the proxy\n */\nexport function createRecursiveProxy(\n getCallback: ProxyGetCallback,\n applyCallback: ProxyApplyCallback,\n path: (string | symbol)[]\n): unknown {\n return new Proxy(noop, {\n get(_obj, key) {\n if (key === 'then') {\n // special case for if the proxy is accidentally treated\n // like a PromiseLike (like in `Promise.resolve(proxy)`)\n return undefined;\n }\n\n return (\n getCallback(path, key) ??\n createRecursiveProxy(getCallback, applyCallback, [...path, key])\n );\n },\n apply(_1, _2, args) {\n const functionName = path[path.length - 1];\n\n const isCall = functionName === 'call';\n const isApply = isCall ? false : functionName === 'apply';\n\n return applyCallback(\n isApply || isCall ? path.slice(0, -1) : path,\n isApply\n ? args.length >= 2\n ? args[1]\n : []\n : isCall\n ? args.slice(1)\n : args\n );\n },\n });\n}\n\nfunction noop() {\n // noop\n}\n"],"names":["createRecursiveProxy","getCallback","applyCallback","path","Proxy","noop","get","_obj","key","undefined","apply","_1","_2","args","functionName","length","isCall","isApply","slice"],"mappings":";;AAaA;;;;;AAKC,IACM,SAASA,oBAAAA,CACdC,WAA6B,EAC7BC,aAAiC,EACjCC,IAAyB,EAAA;IAEzB,OAAO,IAAIC,MAAMC,IAAM,EAAA;QACrBC,GAAIC,CAAAA,CAAAA,IAAI,EAAEC,GAAG,EAAA;AACX,YAAA,IAAIA,QAAQ,MAAQ,EAAA;;;gBAGlB,OAAOC,SAAAA,CAAAA;AACT,aAAA;AAEA,YAAA,OACER,WAAYE,CAAAA,IAAAA,EAAMK,GAClBR,CAAAA,IAAAA,oBAAAA,CAAqBC,aAAaC,aAAe,EAAA;AAAIC,gBAAAA,GAAAA,IAAAA;AAAMK,gBAAAA,GAAAA;AAAI,aAAA,CAAA,CAAA;AAEnE,SAAA;AACAE,QAAAA,KAAAA,CAAAA,CAAMC,EAAE,EAAEC,EAAE,EAAEC,IAAI,EAAA;AAChB,YAAA,MAAMC,eAAeX,IAAI,CAACA,IAAKY,CAAAA,MAAM,GAAG,CAAE,CAAA,CAAA;AAE1C,YAAA,MAAMC,SAASF,YAAiB,KAAA,MAAA,CAAA;YAChC,MAAMG,OAAAA,GAAUD,MAAS,GAAA,KAAA,GAAQF,YAAiB,KAAA,OAAA,CAAA;YAElD,OAAOZ,aAAAA,CACLe,OAAWD,IAAAA,MAAAA,GAASb,IAAKe,CAAAA,KAAK,CAAC,CAAG,EAAA,CAAC,CAAKf,CAAAA,GAAAA,IAAAA,EACxCc,OACIJ,GAAAA,IAAAA,CAAKE,MAAM,IAAI,CAAA,GACbF,IAAI,CAAC,CAAE,CAAA,GACP,EAAE,GACJG,MACEH,GAAAA,IAAAA,CAAKK,KAAK,CAAC,CACXL,CAAAA,GAAAA,IAAAA,CAAAA,CAAAA;AAEV,SAAA;AACF,KAAA,CAAA,CAAA;AACF,CAAA;AAEA,SAASR,IAAAA,GAAAA;AACP;AACF;;;;"}
1
+ {"version":3,"file":"createRecursiveProxy.cjs","sources":["../../../src/lib/createRecursiveProxy.ts"],"sourcesContent":["type ProxyApplyCallback = (\n path: (string | symbol)[],\n args: unknown[]\n) => unknown;\n/**\n * @internal\n * If returns `undefined | null`, the proxy will continue to create a new proxy for the next key.\n */\ntype ProxyGetCallback = (\n path: (string | symbol)[],\n key: string | symbol\n) => unknown | undefined;\n\n/**\n * Creates a recursive proxy that calls the `getCallback` and `applyCallback` functions\n * @param getCallback The callback to call when a proxy property is accessed\n * @param applyCallback The callback to call when a proxy is called as a function\n * @param path The current path of the proxy\n */\nexport function createRecursiveProxy(\n getCallback: ProxyGetCallback,\n applyCallback: ProxyApplyCallback,\n path: (string | symbol)[]\n): unknown {\n return new Proxy(noop, {\n get(_obj, key) {\n if (key === 'then') {\n // special case for if the proxy is accidentally treated\n // like a PromiseLike (like in `Promise.resolve(proxy)`)\n return undefined;\n }\n\n return (\n getCallback(path, key) ??\n createRecursiveProxy(getCallback, applyCallback, [...path, key])\n );\n },\n apply(_1, _2, args) {\n const functionName = path[path.length - 1];\n\n const isCall = functionName === 'call';\n const isApply = isCall ? false : functionName === 'apply';\n\n return applyCallback(\n isApply || isCall ? path.slice(0, -1) : path,\n isApply\n ? args.length >= 2\n ? args[1]\n : []\n : isCall\n ? args.slice(1)\n : args\n );\n },\n });\n}\n\nfunction noop() {\n // noop\n}\n"],"names":["createRecursiveProxy","getCallback","applyCallback","path","Proxy","noop","get","_obj","key","undefined","apply","_1","_2","args","functionName","length","isCall","isApply","slice"],"mappings":";;AAaA;;;;;AAKC,IACM,SAASA,oBAAAA,CACdC,WAA6B,EAC7BC,aAAiC,EACjCC,IAAyB,EAAA;IAEzB,OAAO,IAAIC,MAAMC,IAAAA,EAAM;QACrBC,GAAAA,CAAAA,CAAIC,IAAI,EAAEC,GAAG,EAAA;AACX,YAAA,IAAIA,QAAQ,MAAA,EAAQ;;;gBAGlB,OAAOC,SAAAA;AACT,YAAA;AAEA,YAAA,OACER,WAAAA,CAAYE,IAAAA,EAAMK,GAAAA,CAAAA,IAClBR,oBAAAA,CAAqBC,aAAaC,aAAAA,EAAe;AAAIC,gBAAAA,GAAAA,IAAAA;AAAMK,gBAAAA;AAAI,aAAA,CAAA;AAEnE,QAAA,CAAA;AACAE,QAAAA,KAAAA,CAAAA,CAAMC,EAAE,EAAEC,EAAE,EAAEC,IAAI,EAAA;AAChB,YAAA,MAAMC,eAAeX,IAAI,CAACA,IAAAA,CAAKY,MAAM,GAAG,CAAA,CAAE;AAE1C,YAAA,MAAMC,SAASF,YAAAA,KAAiB,MAAA;YAChC,MAAMG,OAAAA,GAAUD,MAAAA,GAAS,KAAA,GAAQF,YAAAA,KAAiB,OAAA;YAElD,OAAOZ,aAAAA,CACLe,OAAAA,IAAWD,MAAAA,GAASb,IAAAA,CAAKe,KAAK,CAAC,CAAA,EAAG,EAAC,CAAA,GAAKf,IAAAA,EACxCc,OAAAA,GACIJ,IAAAA,CAAKE,MAAM,IAAI,CAAA,GACbF,IAAI,CAAC,CAAA,CAAE,GACP,EAAE,GACJG,MAAAA,GACEH,IAAAA,CAAKK,KAAK,CAAC,CAAA,CAAA,GACXL,IAAAA,CAAAA;AAEV,QAAA;AACF,KAAA,CAAA;AACF;AAEA,SAASR,IAAAA,GAAAA;AACP;AACF;;;;"}
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ function createQueryRequestFnInfo(context, requestInfo) {
4
+ return Object.defineProperty({
5
+ ...requestInfo,
6
+ source: {
7
+ type: 'query',
8
+ context
9
+ }
10
+ }, 'signal', {
11
+ enumerable: true,
12
+ get: ()=>context.signal
13
+ });
14
+ }
15
+
16
+ exports.createQueryRequestFnInfo = createQueryRequestFnInfo;
17
+ //# sourceMappingURL=createRequestFnInfo.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createRequestFnInfo.cjs","sources":["../../../src/lib/createRequestFnInfo.ts"],"sourcesContent":["import type { RequestFnInfo } from '@openapi-qraft/tanstack-query-react-types';\nimport type { QueryFunctionContext } from '@tanstack/react-query';\n\nexport function createQueryRequestFnInfo(\n context: QueryFunctionContext,\n requestInfo: Omit<RequestFnInfo, 'signal' | 'source'>\n): RequestFnInfo {\n return Object.defineProperty(\n {\n ...requestInfo,\n source: {\n type: 'query',\n context,\n },\n } satisfies Omit<RequestFnInfo, 'signal'>,\n 'signal',\n {\n enumerable: true,\n get: () => context.signal,\n }\n );\n}\n"],"names":["createQueryRequestFnInfo","context","requestInfo","Object","defineProperty","source","type","enumerable","get","signal"],"mappings":";;AAGO,SAASA,wBAAAA,CACdC,OAA6B,EAC7BC,WAAqD,EAAA;IAErD,OAAOC,MAAAA,CAAOC,cAAc,CAC1B;AACE,QAAA,GAAGF,WAAW;QACdG,MAAAA,EAAQ;YACNC,IAAAA,EAAM,OAAA;AACNL,YAAAA;AACF;AACF,KAAA,EACA,QAAA,EACA;QACEM,UAAAA,EAAY,IAAA;QACZC,GAAAA,EAAK,IAAMP,QAAQQ;AACrB,KAAA,CAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/lib/jwt-decode/index.ts"],"sourcesContent":["export interface JwtDecodeOptions {\n header?: boolean;\n}\n\nexport interface JwtHeader {\n typ?: string;\n alg?: string;\n kid?: string;\n}\n\nexport interface JwtPayload {\n iss?: string;\n sub?: string;\n aud?: string[] | string;\n exp?: number;\n nbf?: number;\n iat?: number;\n jti?: string;\n}\n\nexport class InvalidTokenError extends Error {}\n\nInvalidTokenError.prototype.name = 'InvalidTokenError';\n\n/**\n * Decode a base64 string to a UTF-8 string.\n * Could be used in Node.js or in the browser.\n */\nexport function b64DecodeUnicode(data: string): string {\n if (typeof atob === 'function')\n return decodeURIComponent(Array.from(atob(data), byteToPercent).join(''));\n\n return Buffer.from(data, 'base64').toString('utf-8');\n}\n\nfunction base64UrlDecode(str: string) {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += '==';\n break;\n case 3:\n output += '=';\n break;\n default:\n throw new Error('base64 string is not of the correct length');\n }\n\n try {\n return b64DecodeUnicode(output);\n } catch (_err) {\n return atob(output);\n }\n}\n\nexport function jwtDecode<T = JwtHeader>(\n token: string,\n options: JwtDecodeOptions & { header: true }\n): T;\nexport function jwtDecode<T = JwtPayload>(\n token: string,\n options?: JwtDecodeOptions\n): T;\nexport function jwtDecode<T = JwtHeader | JwtPayload>(\n token: string,\n options?: JwtDecodeOptions\n): T {\n if (typeof token !== 'string') {\n throw new InvalidTokenError('Invalid token specified: must be a string');\n }\n\n options ||= {};\n\n const pos = options.header === true ? 0 : 1;\n const part = token.split('.')[pos];\n\n if (typeof part !== 'string') {\n throw new InvalidTokenError(\n `Invalid token specified: missing part #${pos + 1}`\n );\n }\n\n let decoded: string;\n try {\n decoded = base64UrlDecode(part);\n } catch (e) {\n throw new InvalidTokenError(\n `Invalid token specified: invalid base64 for part #${pos + 1} (${(e as Error).message})`\n );\n }\n\n try {\n return JSON.parse(decoded) as T;\n } catch (e) {\n throw new InvalidTokenError(\n `Invalid token specified: invalid json for part #${pos + 1} (${(e as Error).message})`\n );\n }\n}\n\nfunction byteToPercent(b: string) {\n return `%${`00${b.charCodeAt(0).toString(16)}`.slice(-2)}`;\n}\n"],"names":["InvalidTokenError","Error","prototype","name","b64DecodeUnicode","data","atob","decodeURIComponent","Array","from","byteToPercent","join","Buffer","toString","base64UrlDecode","str","output","replace","length","_err","jwtDecode","token","options","pos","header","part","split","decoded","e","message","JSON","parse","b","charCodeAt","slice"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/lib/jwt-decode/index.ts"],"sourcesContent":["export interface JwtDecodeOptions {\n header?: boolean;\n}\n\nexport interface JwtHeader {\n typ?: string;\n alg?: string;\n kid?: string;\n}\n\nexport interface JwtPayload {\n iss?: string;\n sub?: string;\n aud?: string[] | string;\n exp?: number;\n nbf?: number;\n iat?: number;\n jti?: string;\n}\n\nexport class InvalidTokenError extends Error {}\n\nInvalidTokenError.prototype.name = 'InvalidTokenError';\n\n/**\n * Decode a base64 string to a UTF-8 string.\n * Could be used in Node.js or in the browser.\n */\nexport function b64DecodeUnicode(data: string): string {\n if (typeof atob === 'function')\n return decodeURIComponent(Array.from(atob(data), byteToPercent).join(''));\n\n return Buffer.from(data, 'base64').toString('utf-8');\n}\n\nfunction base64UrlDecode(str: string) {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += '==';\n break;\n case 3:\n output += '=';\n break;\n default:\n throw new Error('base64 string is not of the correct length');\n }\n\n try {\n return b64DecodeUnicode(output);\n } catch (_err) {\n return atob(output);\n }\n}\n\nexport function jwtDecode<T = JwtHeader>(\n token: string,\n options: JwtDecodeOptions & { header: true }\n): T;\nexport function jwtDecode<T = JwtPayload>(\n token: string,\n options?: JwtDecodeOptions\n): T;\nexport function jwtDecode<T = JwtHeader | JwtPayload>(\n token: string,\n options?: JwtDecodeOptions\n): T {\n if (typeof token !== 'string') {\n throw new InvalidTokenError('Invalid token specified: must be a string');\n }\n\n options ||= {};\n\n const pos = options.header === true ? 0 : 1;\n const part = token.split('.')[pos];\n\n if (typeof part !== 'string') {\n throw new InvalidTokenError(\n `Invalid token specified: missing part #${pos + 1}`\n );\n }\n\n let decoded: string;\n try {\n decoded = base64UrlDecode(part);\n } catch (e) {\n throw new InvalidTokenError(\n `Invalid token specified: invalid base64 for part #${pos + 1} (${(e as Error).message})`\n );\n }\n\n try {\n return JSON.parse(decoded) as T;\n } catch (e) {\n throw new InvalidTokenError(\n `Invalid token specified: invalid json for part #${pos + 1} (${(e as Error).message})`\n );\n }\n}\n\nfunction byteToPercent(b: string) {\n return `%${`00${b.charCodeAt(0).toString(16)}`.slice(-2)}`;\n}\n"],"names":["InvalidTokenError","Error","prototype","name","b64DecodeUnicode","data","atob","decodeURIComponent","Array","from","byteToPercent","join","Buffer","toString","base64UrlDecode","str","output","replace","length","_err","jwtDecode","token","options","pos","header","part","split","decoded","e","message","JSON","parse","b","charCodeAt","slice"],"mappings":";;AAoBO,MAAMA,iBAAAA,SAA0BC,KAAAA,CAAAA;AAAO;AAE9CD,iBAAAA,CAAkBE,SAAS,CAACC,IAAI,GAAG,mBAAA;AAEnC;;;IAIO,SAASC,gBAAAA,CAAiBC,IAAY,EAAA;AAC3C,IAAA,IAAI,OAAOC,IAAAA,KAAS,UAAA,EAClB,OAAOC,kBAAAA,CAAmBC,KAAAA,CAAMC,IAAI,CAACH,IAAAA,CAAKD,IAAAA,CAAAA,EAAOK,aAAAA,CAAAA,CAAeC,IAAI,CAAC,EAAA,CAAA,CAAA;AAEvE,IAAA,OAAOC,OAAOH,IAAI,CAACJ,IAAAA,EAAM,QAAA,CAAA,CAAUQ,QAAQ,CAAC,OAAA,CAAA;AAC9C;AAEA,SAASC,gBAAgBC,GAAW,EAAA;IAClC,IAAIC,MAAAA,GAASD,IAAIE,OAAO,CAAC,MAAM,GAAA,CAAA,CAAKA,OAAO,CAAC,IAAA,EAAM,GAAA,CAAA;IAClD,OAAQD,MAAAA,CAAOE,MAAM,GAAG,CAAA;QACtB,KAAK,CAAA;AACH,YAAA;QACF,KAAK,CAAA;YACHF,MAAAA,IAAU,IAAA;AACV,YAAA;QACF,KAAK,CAAA;YACHA,MAAAA,IAAU,GAAA;AACV,YAAA;AACF,QAAA;AACE,YAAA,MAAM,IAAIf,KAAAA,CAAM,4CAAA,CAAA;AACpB;IAEA,IAAI;AACF,QAAA,OAAOG,gBAAAA,CAAiBY,MAAAA,CAAAA;AAC1B,IAAA,CAAA,CAAE,OAAOG,IAAAA,EAAM;AACb,QAAA,OAAOb,IAAAA,CAAKU,MAAAA,CAAAA;AACd,IAAA;AACF;AAUO,SAASI,SAAAA,CACdC,KAAa,EACbC,OAA0B,EAAA;IAE1B,IAAI,OAAOD,UAAU,QAAA,EAAU;AAC7B,QAAA,MAAM,IAAIrB,iBAAAA,CAAkB,2CAAA,CAAA;AAC9B,IAAA;AAEAsB,IAAAA,OAAAA,KAAY,EAAC;AAEb,IAAA,MAAMC,GAAAA,GAAMD,OAAAA,CAAQE,MAAM,KAAK,OAAO,CAAA,GAAI,CAAA;AAC1C,IAAA,MAAMC,OAAOJ,KAAAA,CAAMK,KAAK,CAAC,GAAA,CAAI,CAACH,GAAAA,CAAI;IAElC,IAAI,OAAOE,SAAS,QAAA,EAAU;AAC5B,QAAA,MAAM,IAAIzB,iBAAAA,CACR,CAAC,uCAAuC,EAAEuB,MAAM,CAAA,CAAA,CAAG,CAAA;AAEvD,IAAA;IAEA,IAAII,OAAAA;IACJ,IAAI;AACFA,QAAAA,OAAAA,GAAUb,eAAAA,CAAgBW,IAAAA,CAAAA;AAC5B,IAAA,CAAA,CAAE,OAAOG,CAAAA,EAAG;AACV,QAAA,MAAM,IAAI5B,iBAAAA,CACR,CAAC,kDAAkD,EAAEuB,GAAAA,GAAM,CAAA,CAAE,EAAE,EAAE,CAACK,CAAYC,OAAO,CAAC,CAAC,CAAC,CAAA;AAE5F,IAAA;IAEA,IAAI;QACF,OAAOC,IAAAA,CAAKC,KAAK,CAACJ,OAAAA,CAAAA;AACpB,IAAA,CAAA,CAAE,OAAOC,CAAAA,EAAG;AACV,QAAA,MAAM,IAAI5B,iBAAAA,CACR,CAAC,gDAAgD,EAAEuB,GAAAA,GAAM,CAAA,CAAE,EAAE,EAAE,CAACK,CAAYC,OAAO,CAAC,CAAC,CAAC,CAAA;AAE1F,IAAA;AACF;AAEA,SAASnB,cAAcsB,CAAS,EAAA;AAC9B,IAAA,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAEA,CAAAA,CAAEC,UAAU,CAAC,CAAA,CAAA,CAAGpB,QAAQ,CAAC,EAAA,CAAA,CAAA,CAAK,CAACqB,KAAK,CAAC,EAAC,CAAA,CAAA,CAAI;AAC5D;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"prepareRequestFnParameters.cjs","sources":["../../../src/lib/prepareRequestFnParameters.ts"],"sourcesContent":["import { shelfMerge } from './shelfMerge.js';\n\n/**\n * Prepares parameters and body for requestFn calls, handling infinite query logic\n * @param queryParams - The query parameters that may contain body\n * @param pageParam - The page parameter for infinite queries\n * @param infinite - Whether this is for an infinite query\n * @returns Object with prepared parameters and body\n */\nexport function prepareRequestFnParameters<TQueryParams>(\n queryParams: TQueryParams,\n pageParam: unknown,\n infinite: boolean\n): {\n parameters: TQueryParams extends { body: any }\n ? Omit<TQueryParams, 'body'>\n : TQueryParams;\n body: BodyInit | undefined;\n} {\n const { body, ...parameters } = queryParams as {\n body?: BodyInit;\n } & TQueryParams;\n\n if (!infinite) {\n return {\n parameters: parameters as never,\n body: body as never,\n };\n }\n\n // Handle infinite query parameters\n const processedParameters = shelfMerge(\n 2,\n parameters,\n omitBodyFromPageParam(pageParam)\n ) as never;\n\n const processedBody = mergeBodyWithPageParam(body, pageParam) as never;\n\n return {\n parameters: processedParameters,\n body: processedBody,\n };\n}\n\n/**\n * Remove body from pageParam if it exists\n */\nfunction omitBodyFromPageParam(pageParam: unknown) {\n if (pageParam && typeof pageParam === 'object' && 'body' in pageParam) {\n const { body: _body, ...pageParameters } = pageParam;\n return pageParameters;\n }\n\n return pageParam;\n}\n\n/**\n * Merge body with pageParam.body if pageParam contains body\n */\nfunction mergeBodyWithPageParam(\n body: BodyInit | undefined,\n pageParam: unknown\n): BodyInit | undefined {\n if (pageParam && typeof pageParam === 'object' && 'body' in pageParam) {\n return shelfMerge(1, body, pageParam.body) as BodyInit;\n }\n\n return body;\n}\n"],"names":["prepareRequestFnParameters","queryParams","pageParam","infinite","body","parameters","processedParameters","shelfMerge","omitBodyFromPageParam","processedBody","mergeBodyWithPageParam","_body","pageParameters"],"mappings":";;;;AAEA;;;;;;AAMC,IACM,SAASA,0BAAAA,CACdC,WAAyB,EACzBC,SAAkB,EAClBC,QAAiB,EAAA;AAOjB,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGC,YAAY,GAAGJ,WAAAA,CAAAA;AAIhC,IAAA,IAAI,CAACE,QAAU,EAAA;QACb,OAAO;YACLE,UAAYA,EAAAA,UAAAA;YACZD,IAAMA,EAAAA,IAAAA;AACR,SAAA,CAAA;AACF,KAAA;;AAGA,IAAA,MAAME,mBAAsBC,GAAAA,qBAAAA,CAC1B,CACAF,EAAAA,UAAAA,EACAG,qBAAsBN,CAAAA,SAAAA,CAAAA,CAAAA,CAAAA;IAGxB,MAAMO,aAAAA,GAAgBC,uBAAuBN,IAAMF,EAAAA,SAAAA,CAAAA,CAAAA;IAEnD,OAAO;QACLG,UAAYC,EAAAA,mBAAAA;QACZF,IAAMK,EAAAA,aAAAA;AACR,KAAA,CAAA;AACF,CAAA;AAEA;;IAGA,SAASD,sBAAsBN,SAAkB,EAAA;AAC/C,IAAA,IAAIA,SAAa,IAAA,OAAOA,SAAc,KAAA,QAAA,IAAY,UAAUA,SAAW,EAAA;AACrE,QAAA,MAAM,EAAEE,IAAMO,EAAAA,KAAK,EAAE,GAAGC,gBAAgB,GAAGV,SAAAA,CAAAA;QAC3C,OAAOU,cAAAA,CAAAA;AACT,KAAA;IAEA,OAAOV,SAAAA,CAAAA;AACT,CAAA;AAEA;;AAEC,IACD,SAASQ,sBAAAA,CACPN,IAA0B,EAC1BF,SAAkB,EAAA;AAElB,IAAA,IAAIA,SAAa,IAAA,OAAOA,SAAc,KAAA,QAAA,IAAY,UAAUA,SAAW,EAAA;AACrE,QAAA,OAAOK,qBAAW,CAAA,CAAA,EAAGH,IAAMF,EAAAA,SAAAA,CAAUE,IAAI,CAAA,CAAA;AAC3C,KAAA;IAEA,OAAOA,IAAAA,CAAAA;AACT;;;;"}
1
+ {"version":3,"file":"prepareRequestFnParameters.cjs","sources":["../../../src/lib/prepareRequestFnParameters.ts"],"sourcesContent":["import { shelfMerge } from './shelfMerge.js';\n\n/**\n * Prepares parameters and body for requestFn calls, handling infinite query logic\n * @param queryParams - The query parameters that may contain body\n * @param pageParam - The page parameter for infinite queries\n * @param infinite - Whether this is for an infinite query\n * @returns Object with prepared parameters and body\n */\nexport function prepareRequestFnParameters<TQueryParams>(\n queryParams: TQueryParams,\n pageParam: unknown,\n infinite: boolean\n): {\n parameters: TQueryParams extends { body: any }\n ? Omit<TQueryParams, 'body'>\n : TQueryParams;\n body: BodyInit | undefined;\n} {\n const { body, ...parameters } = queryParams as {\n body?: BodyInit;\n } & TQueryParams;\n\n if (!infinite) {\n return {\n parameters: parameters as never,\n body: body as never,\n };\n }\n\n // Handle infinite query parameters\n const processedParameters = shelfMerge(\n 2,\n parameters,\n omitBodyFromPageParam(pageParam)\n ) as never;\n\n const processedBody = mergeBodyWithPageParam(body, pageParam) as never;\n\n return {\n parameters: processedParameters,\n body: processedBody,\n };\n}\n\n/**\n * Remove body from pageParam if it exists\n */\nfunction omitBodyFromPageParam(pageParam: unknown) {\n if (pageParam && typeof pageParam === 'object' && 'body' in pageParam) {\n const { body: _body, ...pageParameters } = pageParam;\n return pageParameters;\n }\n\n return pageParam;\n}\n\n/**\n * Merge body with pageParam.body if pageParam contains body\n */\nfunction mergeBodyWithPageParam(\n body: BodyInit | undefined,\n pageParam: unknown\n): BodyInit | undefined {\n if (pageParam && typeof pageParam === 'object' && 'body' in pageParam) {\n return shelfMerge(1, body, pageParam.body) as BodyInit;\n }\n\n return body;\n}\n"],"names":["prepareRequestFnParameters","queryParams","pageParam","infinite","body","parameters","processedParameters","shelfMerge","omitBodyFromPageParam","processedBody","mergeBodyWithPageParam","_body","pageParameters"],"mappings":";;;;AAEA;;;;;;AAMC,IACM,SAASA,0BAAAA,CACdC,WAAyB,EACzBC,SAAkB,EAClBC,QAAiB,EAAA;AAOjB,IAAA,MAAM,EAAEC,IAAI,EAAE,GAAGC,YAAY,GAAGJ,WAAAA;AAIhC,IAAA,IAAI,CAACE,QAAAA,EAAU;QACb,OAAO;YACLE,UAAAA,EAAYA,UAAAA;YACZD,IAAAA,EAAMA;AACR,SAAA;AACF,IAAA;;AAGA,IAAA,MAAME,mBAAAA,GAAsBC,qBAAAA,CAC1B,CAAA,EACAF,UAAAA,EACAG,qBAAAA,CAAsBN,SAAAA,CAAAA,CAAAA;IAGxB,MAAMO,aAAAA,GAAgBC,uBAAuBN,IAAAA,EAAMF,SAAAA,CAAAA;IAEnD,OAAO;QACLG,UAAAA,EAAYC,mBAAAA;QACZF,IAAAA,EAAMK;AACR,KAAA;AACF;AAEA;;IAGA,SAASD,sBAAsBN,SAAkB,EAAA;AAC/C,IAAA,IAAIA,SAAAA,IAAa,OAAOA,SAAAA,KAAc,QAAA,IAAY,UAAUA,SAAAA,EAAW;AACrE,QAAA,MAAM,EAAEE,IAAAA,EAAMO,KAAK,EAAE,GAAGC,gBAAgB,GAAGV,SAAAA;QAC3C,OAAOU,cAAAA;AACT,IAAA;IAEA,OAAOV,SAAAA;AACT;AAEA;;AAEC,IACD,SAASQ,sBAAAA,CACPN,IAA0B,EAC1BF,SAAkB,EAAA;AAElB,IAAA,IAAIA,SAAAA,IAAa,OAAOA,SAAAA,KAAc,QAAA,IAAY,UAAUA,SAAAA,EAAW;AACrE,QAAA,OAAOK,qBAAAA,CAAW,CAAA,EAAGH,IAAAA,EAAMF,SAAAA,CAAUE,IAAI,CAAA;AAC3C,IAAA;IAEA,OAAOA,IAAAA;AACT;;;;"}
@@ -37,7 +37,7 @@ var responseUtils = require('./responseUtils.cjs');
37
37
  *
38
38
  * @throws {error: object|string, response: Response} Throws an error if the request fails. The error includes the error message and the response from the server.
39
39
  */ async function baseRequestFn(requestSchema, requestInfo, options) {
40
- const { parameters, headers, body, ...requestInfoRest } = requestInfo;
40
+ const { parameters, headers, body, source: _source, ...requestInfoRest } = requestInfo;
41
41
  const requestPayload = options.bodySerializer(requestSchema, body);
42
42
  const baseFetch = options.fetch ?? fetch;
43
43
  return baseFetch(options.urlSerializer(requestSchema, requestInfo), {
@@ -1 +1 @@
1
- {"version":3,"file":"requestFn.cjs","sources":["../../../src/lib/requestFn.ts"],"sourcesContent":["import type {\n HeadersOptions,\n OperationSchema,\n RequestFnInfo,\n RequestFnOptions,\n RequestFnResponse,\n} from '@openapi-qraft/tanstack-query-react-types';\nimport { processResponse, resolveResponse } from './responseUtils.js';\n\n/**\n * This function is used to make a request to a specified endpoint.\n *\n * @template T The expected return type of the request.\n *\n * @param schema The schema of the operation to be performed. It includes the OpenAPI path, HTTP method and media type.\n * @param requestInfo The information required to make the request. It includes parameters, headers, body, etc.\n * @param [options] Optional. Additional options for the request. It includes custom urlSerializer, bodySerializer, and fetch function.\n *\n * @returns {Promise<T>} Returns a promise that resolves with the response of the request.\n *\n * @throws {error: object|string, response: Response} Throws an error if the request fails. The error includes the error message and the response from the server.\n */\nexport async function requestFn<TData, TError>(\n schema: OperationSchema,\n requestInfo: RequestFnInfo,\n options?: RequestFnOptions\n): Promise<RequestFnResponse<TData, TError>> {\n return baseRequestFn<TData, TError>(schema, requestInfo, {\n urlSerializer,\n bodySerializer,\n ...options,\n });\n}\n\n/**\n * This function is used to make a request to a specified endpoint.\n * It's necessary to create a custom `requestFn` with a custom `urlSerializer`\n * and `bodySerializer`, with the tree-shaking of the default `requestFn`\n * and its serializers.\n *\n * @template T The expected return type of the request.\n *\n * @param requestSchema The schema of the operation to be performed. It includes the OpenAPI path, HTTP method and media type.\n * @param requestInfo The information required to make the request. It includes parameters, headers, body, etc.\n * @param options The options for the request. It includes urlSerializer, bodySerializer, and fetch function. The 'urlSerializer' and 'bodySerializer' are required.\n *\n * @returns {Promise<T>} Returns a promise that resolves with the response of the request.\n *\n * @throws {error: object|string, response: Response} Throws an error if the request fails. The error includes the error message and the response from the server.\n */\nexport async function baseRequestFn<TData, TError>(\n requestSchema: OperationSchema,\n requestInfo: RequestFnInfo,\n options: WithRequired<RequestFnOptions, 'urlSerializer' | 'bodySerializer'>\n): Promise<RequestFnResponse<TData, TError>> {\n const { parameters, headers, body, ...requestInfoRest } = requestInfo;\n\n const requestPayload = options.bodySerializer(requestSchema, body);\n\n const baseFetch = options.fetch ?? fetch;\n\n return baseFetch(options.urlSerializer(requestSchema, requestInfo), {\n method: requestSchema.method.toUpperCase(),\n body: requestPayload?.body,\n headers: mergeHeaders(\n { Accept: 'application/json' },\n requestPayload?.headers,\n headers,\n parameters?.header\n ),\n ...requestInfoRest,\n })\n .then(processResponse as typeof processResponse<TData, TError>)\n .catch(resolveResponse as typeof resolveResponse<TData, TError>);\n}\n\n/**\n * Serializes the given schema and request payload into a URL string.\n *\n * This function is implemented according to the URI Template standard\n * defined in RFC 6570. It supports the expansion of path and query parameters,\n * correctly handling empty arrays, `null`, and `undefined` values by ignoring\n * them during the expansion process, as specified by the standard.\n *\n * For more information, refer to the official documentation:\n * https://datatracker.ietf.org/doc/html/rfc6570\n *\n * @param schema - The operation schema containing the URL template and method.\n * @param info - The request payload including baseUrl, path parameters, and query parameters.\n * @returns The fully constructed URL string.\n */\nexport function urlSerializer(\n schema: OperationSchema,\n info: Pick<RequestFnInfo, 'baseUrl' | 'parameters'>\n): string {\n const path = schema.url.replace(\n /{(.*?)}/g,\n (substring: string, group: string) => {\n if (\n info.parameters?.path &&\n Object.prototype.hasOwnProperty.call(info.parameters.path, group)\n ) {\n return encodeURIComponent(String(info.parameters?.path[group]));\n }\n return substring;\n }\n );\n\n const baseUrl = info.baseUrl ?? '';\n\n if (info.parameters?.query) {\n return `${baseUrl}${path}${getQueryString(info.parameters.query)}`;\n }\n\n return `${baseUrl}${path}`;\n}\n\nfunction getQueryString(params: Record<string, any>): string {\n const search = new URLSearchParams();\n\n const walk = (prefix: string, value: any) => {\n if (value == null) return;\n if (value instanceof Date)\n return search.append(prefix, value.toISOString());\n if (Array.isArray(value)) return value.forEach((v) => walk(prefix, v));\n if (typeof value === 'object') {\n return Object.entries(value).forEach(([k, v]) =>\n walk(`${prefix}[${k}]`, v)\n );\n }\n search.append(prefix, String(value));\n };\n\n Object.entries(params).forEach(([k, v]) => walk(k, v));\n\n const searchString = search.toString();\n\n return searchString ? `?${searchString}` : '';\n}\n\nexport function mergeHeaders(...allHeaders: (HeadersOptions | undefined)[]) {\n const headers = new Headers();\n\n for (const headerSet of allHeaders) {\n if (!headerSet || typeof headerSet !== 'object') {\n continue;\n }\n\n const headersIterator =\n headerSet instanceof Headers\n ? headerSet.entries()\n : Object.entries(headerSet);\n\n for (const [headerKey, headerValue] of headersIterator) {\n if (headerValue === null) {\n headers.delete(headerKey);\n } else if (headerValue !== undefined) {\n headers.set(headerKey, headerValue);\n }\n }\n }\n\n return headers;\n}\n\nexport function bodySerializer(\n schema: OperationSchema,\n body: RequestFnInfo['body']\n) {\n if (isReadOnlyOperation(schema)) return undefined;\n\n if (body === undefined || body === null) return undefined;\n\n if (typeof body === 'string') {\n return {\n body,\n headers: {\n 'Content-Type':\n // prefer text/* media type\n schema.mediaType?.find((mediaType) => mediaType.includes('text/')) ??\n // prefer JSON media type, assume that body is serialized as JSON\n schema.mediaType?.find((mediaType) => mediaType.includes('/json')) ??\n 'text/plain',\n },\n };\n }\n\n if (body instanceof FormData) {\n return {\n body,\n headers: {\n // remove `Content-Type` if the serialized body is FormData;\n // the browser will correctly set Content-Type & boundary expression\n 'Content-Type': null,\n },\n };\n }\n\n if (body instanceof Blob) {\n return {\n body,\n headers: {\n 'Content-Type':\n body.type ||\n schema.mediaType?.find(\n (mediaType) =>\n !(\n mediaType.includes('text/') &&\n mediaType.includes('/form-data') &&\n mediaType.includes('/json')\n )\n ) ||\n 'application/octet-stream',\n },\n };\n }\n\n let jsonMediaType: string | null = null;\n let formDataMediaType: string | null = null;\n\n if (schema.mediaType) {\n for (let i = 0; i < schema.mediaType.length; i++) {\n const mediaType = schema.mediaType[i];\n if (mediaType.includes('/json')) jsonMediaType = mediaType;\n else if (mediaType.includes('/form-data')) formDataMediaType = mediaType;\n }\n }\n\n if (formDataMediaType) {\n if (\n !jsonMediaType ||\n // Prefer FormData serialization if one of the fields is a Blob\n Object.values(body).some((value) => value instanceof Blob)\n ) {\n return {\n body: getRequestBodyFormData(body),\n headers: {\n // remove `Content-Type` if the serialized body is FormData;\n // the browser will correctly set Content-Type & boundary expression\n 'Content-Type': null,\n },\n };\n }\n }\n\n return {\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': jsonMediaType ?? 'application/json',\n },\n };\n}\n\nfunction getRequestBodyFormData(\n body: NonNullable<RequestFnInfo['body']>\n): FormData {\n if (body instanceof FormData) return body;\n if (typeof body !== 'object')\n throw new Error(`Unsupported body type ${typeof body} in form-data.`);\n\n const formData = new FormData();\n\n const process = (key: string, value: any) => {\n if (typeof value === 'string' || value instanceof Blob) {\n formData.append(key, value);\n } else {\n formData.append(key, JSON.stringify(value));\n }\n };\n\n Object.entries(body)\n .filter(([_, value]) => typeof value !== 'undefined' && value !== null)\n .forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach((v) => process(key, v));\n } else {\n process(key, value);\n }\n });\n\n return formData;\n}\n\ntype WithRequired<T, K extends keyof T> = T & {\n [_ in K]: {};\n};\n\nexport type {\n RequestFn,\n RequestFnResponse,\n HeadersOptions,\n RequestFnOptions,\n RequestFnInfo,\n OperationSchema,\n} from '@openapi-qraft/tanstack-query-react-types';\n\n/**\n * @deprecated use `RequestFnInfo` instead\n */\nexport type RequestFnPayload = RequestFnInfo;\n\nfunction isReadOnlyOperation(operation: {\n readonly method:\n | 'get'\n | 'put'\n | 'post'\n | 'patch'\n | 'delete'\n | 'options'\n | 'head'\n | 'trace';\n}) {\n return (\n operation.method === 'get' ||\n operation.method === 'head' ||\n operation.method === 'trace' ||\n operation.method === 'options'\n );\n}\n"],"names":["requestFn","schema","requestInfo","options","baseRequestFn","urlSerializer","bodySerializer","requestSchema","parameters","headers","body","requestInfoRest","requestPayload","baseFetch","fetch","method","toUpperCase","mergeHeaders","Accept","header","then","processResponse","catch","resolveResponse","info","path","url","replace","substring","group","Object","prototype","hasOwnProperty","call","encodeURIComponent","String","baseUrl","query","getQueryString","params","search","URLSearchParams","walk","prefix","value","Date","append","toISOString","Array","isArray","forEach","v","entries","k","searchString","toString","allHeaders","Headers","headerSet","headersIterator","headerKey","headerValue","delete","undefined","set","isReadOnlyOperation","mediaType","find","includes","FormData","Blob","type","jsonMediaType","formDataMediaType","i","length","values","some","getRequestBodyFormData","JSON","stringify","Error","formData","process","key","filter","_","operation"],"mappings":"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"}
1
+ {"version":3,"file":"requestFn.cjs","sources":["../../../src/lib/requestFn.ts"],"sourcesContent":["import type {\n HeadersOptions,\n OperationSchema,\n RequestFnInfo,\n RequestFnOptions,\n RequestFnResponse,\n} from '@openapi-qraft/tanstack-query-react-types';\nimport { processResponse, resolveResponse } from './responseUtils.js';\n\n/**\n * This function is used to make a request to a specified endpoint.\n *\n * @template T The expected return type of the request.\n *\n * @param schema The schema of the operation to be performed. It includes the OpenAPI path, HTTP method and media type.\n * @param requestInfo The information required to make the request. It includes parameters, headers, body, etc.\n * @param [options] Optional. Additional options for the request. It includes custom urlSerializer, bodySerializer, and fetch function.\n *\n * @returns {Promise<T>} Returns a promise that resolves with the response of the request.\n *\n * @throws {error: object|string, response: Response} Throws an error if the request fails. The error includes the error message and the response from the server.\n */\nexport async function requestFn<TData, TError>(\n schema: OperationSchema,\n requestInfo: RequestFnInfo,\n options?: RequestFnOptions\n): Promise<RequestFnResponse<TData, TError>> {\n return baseRequestFn<TData, TError>(schema, requestInfo, {\n urlSerializer,\n bodySerializer,\n ...options,\n });\n}\n\n/**\n * This function is used to make a request to a specified endpoint.\n * It's necessary to create a custom `requestFn` with a custom `urlSerializer`\n * and `bodySerializer`, with the tree-shaking of the default `requestFn`\n * and its serializers.\n *\n * @template T The expected return type of the request.\n *\n * @param requestSchema The schema of the operation to be performed. It includes the OpenAPI path, HTTP method and media type.\n * @param requestInfo The information required to make the request. It includes parameters, headers, body, etc.\n * @param options The options for the request. It includes urlSerializer, bodySerializer, and fetch function. The 'urlSerializer' and 'bodySerializer' are required.\n *\n * @returns {Promise<T>} Returns a promise that resolves with the response of the request.\n *\n * @throws {error: object|string, response: Response} Throws an error if the request fails. The error includes the error message and the response from the server.\n */\nexport async function baseRequestFn<TData, TError>(\n requestSchema: OperationSchema,\n requestInfo: RequestFnInfo,\n options: WithRequired<RequestFnOptions, 'urlSerializer' | 'bodySerializer'>\n): Promise<RequestFnResponse<TData, TError>> {\n const {\n parameters,\n headers,\n body,\n source: _source,\n ...requestInfoRest\n } = requestInfo;\n\n const requestPayload = options.bodySerializer(requestSchema, body);\n\n const baseFetch = options.fetch ?? fetch;\n\n return baseFetch(options.urlSerializer(requestSchema, requestInfo), {\n method: requestSchema.method.toUpperCase(),\n body: requestPayload?.body,\n headers: mergeHeaders(\n { Accept: 'application/json' },\n requestPayload?.headers,\n headers,\n parameters?.header\n ),\n ...requestInfoRest,\n })\n .then(processResponse as typeof processResponse<TData, TError>)\n .catch(resolveResponse as typeof resolveResponse<TData, TError>);\n}\n\n/**\n * Serializes the given schema and request payload into a URL string.\n *\n * This function is implemented according to the URI Template standard\n * defined in RFC 6570. It supports the expansion of path and query parameters,\n * correctly handling empty arrays, `null`, and `undefined` values by ignoring\n * them during the expansion process, as specified by the standard.\n *\n * For more information, refer to the official documentation:\n * https://datatracker.ietf.org/doc/html/rfc6570\n *\n * @param schema - The operation schema containing the URL template and method.\n * @param info - The request payload including baseUrl, path parameters, and query parameters.\n * @returns The fully constructed URL string.\n */\nexport function urlSerializer(\n schema: OperationSchema,\n info: Pick<RequestFnInfo, 'baseUrl' | 'parameters'>\n): string {\n const path = schema.url.replace(\n /{(.*?)}/g,\n (substring: string, group: string) => {\n if (\n info.parameters?.path &&\n Object.prototype.hasOwnProperty.call(info.parameters.path, group)\n ) {\n return encodeURIComponent(String(info.parameters?.path[group]));\n }\n return substring;\n }\n );\n\n const baseUrl = info.baseUrl ?? '';\n\n if (info.parameters?.query) {\n return `${baseUrl}${path}${getQueryString(info.parameters.query)}`;\n }\n\n return `${baseUrl}${path}`;\n}\n\nfunction getQueryString(params: Record<string, any>): string {\n const search = new URLSearchParams();\n\n const walk = (prefix: string, value: any) => {\n if (value == null) return;\n if (value instanceof Date)\n return search.append(prefix, value.toISOString());\n if (Array.isArray(value)) return value.forEach((v) => walk(prefix, v));\n if (typeof value === 'object') {\n return Object.entries(value).forEach(([k, v]) =>\n walk(`${prefix}[${k}]`, v)\n );\n }\n search.append(prefix, String(value));\n };\n\n Object.entries(params).forEach(([k, v]) => walk(k, v));\n\n const searchString = search.toString();\n\n return searchString ? `?${searchString}` : '';\n}\n\nexport function mergeHeaders(...allHeaders: (HeadersOptions | undefined)[]) {\n const headers = new Headers();\n\n for (const headerSet of allHeaders) {\n if (!headerSet || typeof headerSet !== 'object') {\n continue;\n }\n\n const headersIterator =\n headerSet instanceof Headers\n ? headerSet.entries()\n : Object.entries(headerSet);\n\n for (const [headerKey, headerValue] of headersIterator) {\n if (headerValue === null) {\n headers.delete(headerKey);\n } else if (headerValue !== undefined) {\n headers.set(headerKey, headerValue);\n }\n }\n }\n\n return headers;\n}\n\nexport function bodySerializer(\n schema: OperationSchema,\n body: RequestFnInfo['body']\n) {\n if (isReadOnlyOperation(schema)) return undefined;\n\n if (body === undefined || body === null) return undefined;\n\n if (typeof body === 'string') {\n return {\n body,\n headers: {\n 'Content-Type':\n // prefer text/* media type\n schema.mediaType?.find((mediaType) => mediaType.includes('text/')) ??\n // prefer JSON media type, assume that body is serialized as JSON\n schema.mediaType?.find((mediaType) => mediaType.includes('/json')) ??\n 'text/plain',\n },\n };\n }\n\n if (body instanceof FormData) {\n return {\n body,\n headers: {\n // remove `Content-Type` if the serialized body is FormData;\n // the browser will correctly set Content-Type & boundary expression\n 'Content-Type': null,\n },\n };\n }\n\n if (body instanceof Blob) {\n return {\n body,\n headers: {\n 'Content-Type':\n body.type ||\n schema.mediaType?.find(\n (mediaType) =>\n !(\n mediaType.includes('text/') &&\n mediaType.includes('/form-data') &&\n mediaType.includes('/json')\n )\n ) ||\n 'application/octet-stream',\n },\n };\n }\n\n let jsonMediaType: string | null = null;\n let formDataMediaType: string | null = null;\n\n if (schema.mediaType) {\n for (let i = 0; i < schema.mediaType.length; i++) {\n const mediaType = schema.mediaType[i];\n if (mediaType.includes('/json')) jsonMediaType = mediaType;\n else if (mediaType.includes('/form-data')) formDataMediaType = mediaType;\n }\n }\n\n if (formDataMediaType) {\n if (\n !jsonMediaType ||\n // Prefer FormData serialization if one of the fields is a Blob\n Object.values(body).some((value) => value instanceof Blob)\n ) {\n return {\n body: getRequestBodyFormData(body),\n headers: {\n // remove `Content-Type` if the serialized body is FormData;\n // the browser will correctly set Content-Type & boundary expression\n 'Content-Type': null,\n },\n };\n }\n }\n\n return {\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': jsonMediaType ?? 'application/json',\n },\n };\n}\n\nfunction getRequestBodyFormData(\n body: NonNullable<RequestFnInfo['body']>\n): FormData {\n if (body instanceof FormData) return body;\n if (typeof body !== 'object')\n throw new Error(`Unsupported body type ${typeof body} in form-data.`);\n\n const formData = new FormData();\n\n const process = (key: string, value: any) => {\n if (typeof value === 'string' || value instanceof Blob) {\n formData.append(key, value);\n } else {\n formData.append(key, JSON.stringify(value));\n }\n };\n\n Object.entries(body)\n .filter(([_, value]) => typeof value !== 'undefined' && value !== null)\n .forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach((v) => process(key, v));\n } else {\n process(key, value);\n }\n });\n\n return formData;\n}\n\ntype WithRequired<T, K extends keyof T> = T & {\n [_ in K]: {};\n};\n\nexport type {\n RequestFn,\n RequestFnResponse,\n HeadersOptions,\n RequestFnOptions,\n RequestFnInfo,\n OperationSchema,\n} from '@openapi-qraft/tanstack-query-react-types';\n\n/**\n * @deprecated use `RequestFnInfo` instead\n */\nexport type RequestFnPayload = RequestFnInfo;\n\nfunction isReadOnlyOperation(operation: {\n readonly method:\n | 'get'\n | 'put'\n | 'post'\n | 'patch'\n | 'delete'\n | 'options'\n | 'head'\n | 'trace';\n}) {\n return (\n operation.method === 'get' ||\n operation.method === 'head' ||\n operation.method === 'trace' ||\n operation.method === 'options'\n );\n}\n"],"names":["requestFn","schema","requestInfo","options","baseRequestFn","urlSerializer","bodySerializer","requestSchema","parameters","headers","body","source","_source","requestInfoRest","requestPayload","baseFetch","fetch","method","toUpperCase","mergeHeaders","Accept","header","then","processResponse","catch","resolveResponse","info","path","url","replace","substring","group","Object","prototype","hasOwnProperty","call","encodeURIComponent","String","baseUrl","query","getQueryString","params","search","URLSearchParams","walk","prefix","value","Date","append","toISOString","Array","isArray","forEach","v","entries","k","searchString","toString","allHeaders","Headers","headerSet","headersIterator","headerKey","headerValue","delete","undefined","set","isReadOnlyOperation","mediaType","find","includes","FormData","Blob","type","jsonMediaType","formDataMediaType","i","length","values","some","getRequestBodyFormData","JSON","stringify","Error","formData","process","key","filter","_","operation"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"requestFnResponseRejecter.cjs","sources":["../../../src/lib/requestFnResponseRejecter.ts"],"sourcesContent":["import type { RequestFnResponse } from './requestFn.js';\n\nexport function requestFnResponseRejecter<TData, TError>(\n requestFnResponseOrError: RequestFnResponse<TData, TError> | Error\n): TData | undefined {\n if (requestFnResponseOrError instanceof Error) throw requestFnResponseOrError;\n if ('error' in requestFnResponseOrError) throw requestFnResponseOrError.error;\n throw new Error('Unhandled `requestFn` response', {\n cause: requestFnResponseOrError,\n });\n}\n"],"names":["requestFnResponseRejecter","requestFnResponseOrError","Error","error","cause"],"mappings":";;AAEO,SAASA,0BACdC,wBAAkE,EAAA;IAElE,IAAIA,wBAAAA,YAAoCC,OAAO,MAAMD,wBAAAA,CAAAA;AACrD,IAAA,IAAI,OAAWA,IAAAA,wBAAAA,EAA0B,MAAMA,wBAAAA,CAAyBE,KAAK,CAAA;IAC7E,MAAM,IAAID,MAAM,gCAAkC,EAAA;QAChDE,KAAOH,EAAAA,wBAAAA;AACT,KAAA,CAAA,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"requestFnResponseRejecter.cjs","sources":["../../../src/lib/requestFnResponseRejecter.ts"],"sourcesContent":["import type { RequestFnResponse } from './requestFn.js';\n\nexport function requestFnResponseRejecter<TData, TError>(\n requestFnResponseOrError: RequestFnResponse<TData, TError> | Error\n): TData | undefined {\n if (requestFnResponseOrError instanceof Error) throw requestFnResponseOrError;\n if ('error' in requestFnResponseOrError) throw requestFnResponseOrError.error;\n throw new Error('Unhandled `requestFn` response', {\n cause: requestFnResponseOrError,\n });\n}\n"],"names":["requestFnResponseRejecter","requestFnResponseOrError","Error","error","cause"],"mappings":";;AAEO,SAASA,0BACdC,wBAAkE,EAAA;IAElE,IAAIA,wBAAAA,YAAoCC,OAAO,MAAMD,wBAAAA;AACrD,IAAA,IAAI,OAAA,IAAWA,wBAAAA,EAA0B,MAAMA,wBAAAA,CAAyBE,KAAK;IAC7E,MAAM,IAAID,MAAM,gCAAA,EAAkC;QAChDE,KAAAA,EAAOH;AACT,KAAA,CAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"requestFnResponseResolver.cjs","sources":["../../../src/lib/requestFnResponseResolver.ts"],"sourcesContent":["import type { RequestFnResponse } from './requestFn.js';\n\nexport function requestFnResponseResolver<TData, TError>(\n requestFnResponse: RequestFnResponse<TData, TError>\n): TData | undefined {\n if ('error' in requestFnResponse) throw requestFnResponse.error;\n return requestFnResponse.data;\n}\n"],"names":["requestFnResponseResolver","requestFnResponse","error","data"],"mappings":";;AAEO,SAASA,0BACdC,iBAAmD,EAAA;AAEnD,IAAA,IAAI,OAAWA,IAAAA,iBAAAA,EAAmB,MAAMA,iBAAAA,CAAkBC,KAAK,CAAA;AAC/D,IAAA,OAAOD,kBAAkBE,IAAI,CAAA;AAC/B;;;;"}
1
+ {"version":3,"file":"requestFnResponseResolver.cjs","sources":["../../../src/lib/requestFnResponseResolver.ts"],"sourcesContent":["import type { RequestFnResponse } from './requestFn.js';\n\nexport function requestFnResponseResolver<TData, TError>(\n requestFnResponse: RequestFnResponse<TData, TError>\n): TData | undefined {\n if ('error' in requestFnResponse) throw requestFnResponse.error;\n return requestFnResponse.data;\n}\n"],"names":["requestFnResponseResolver","requestFnResponse","error","data"],"mappings":";;AAEO,SAASA,0BACdC,iBAAmD,EAAA;AAEnD,IAAA,IAAI,OAAA,IAAWA,iBAAAA,EAAmB,MAAMA,iBAAAA,CAAkBC,KAAK;AAC/D,IAAA,OAAOD,kBAAkBE,IAAI;AAC/B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"responseUtils.cjs","sources":["../../../src/lib/responseUtils.ts"],"sourcesContent":["import type { RequestFnResponse } from '@openapi-qraft/tanstack-query-react-types';\n\n/**\n * Processes the response from the server.\n * @beta\n */\nexport async function processResponse<TData, TError>(\n response: Response\n): Promise<RequestFnResponse<TData, TError>> {\n if (response.status === 204 || response.headers.get('Content-Length') === '0')\n return (\n response.ok ? { data: null, response } : { error: null, response }\n ) as RequestFnResponse<TData, TError>;\n\n const contentType = response.headers.get('Content-Type')?.toLowerCase();\n\n const isJsonResponse =\n contentType?.includes('/json') || contentType?.includes('+json');\n\n if (isJsonResponse) {\n // clone response before parsing every time to allow multiple reads\n const jsonResponse = response.clone().json();\n return resolveResponse(\n response,\n response.ok ? jsonResponse : Promise.reject(await jsonResponse)\n );\n }\n\n const textResponse = response.clone().text() as Promise<TData>;\n\n return resolveResponse(\n response,\n response.ok ? textResponse : Promise.reject(await textResponse)\n );\n}\n\n/**\n * Resolves the response from the server.\n * @beta\n */\nexport function resolveResponse<TData, TError>(\n error: Error\n): Promise<RequestFnResponse<TData, TError>>;\nexport function resolveResponse<TData, TError>(\n responseToReturn: Response,\n responsePromise: Promise<TData>\n): Promise<RequestFnResponse<TData, TError>>;\nexport function resolveResponse<TData, TError>(\n responseToReturn: Response | Error,\n responsePromise?: Promise<TData>\n): Promise<RequestFnResponse<TData, TError>> {\n if (!responsePromise) {\n if (responseToReturn instanceof Response) {\n return Promise.resolve({\n error: new Error('Unhandled response without promise to resolve'),\n response: responseToReturn,\n data: undefined,\n });\n } else {\n return Promise.resolve({\n error: responseToReturn,\n response: undefined,\n data: undefined,\n });\n }\n }\n\n return responsePromise\n .then(\n (data) =>\n ({ data, response: responseToReturn }) as RequestFnResponse<\n TData,\n TError\n >\n )\n .catch(\n (error) =>\n ({ error, response: responseToReturn }) as RequestFnResponse<\n TData,\n TError\n >\n );\n}\n"],"names":["processResponse","response","status","headers","get","ok","data","error","contentType","toLowerCase","isJsonResponse","includes","jsonResponse","clone","json","resolveResponse","Promise","reject","textResponse","text","responseToReturn","responsePromise","Response","resolve","Error","undefined","then","catch"],"mappings":";;AAEA;;;IAIO,eAAeA,eAAAA,CACpBC,QAAkB,EAAA;AAElB,IAAA,IAAIA,QAASC,CAAAA,MAAM,KAAK,GAAA,IAAOD,SAASE,OAAO,CAACC,GAAG,CAAC,gBAAsB,CAAA,KAAA,GAAA,EACxE,OACEH,QAAAA,CAASI,EAAE,GAAG;QAAEC,IAAM,EAAA,IAAA;AAAML,QAAAA,QAAAA;KAAa,GAAA;QAAEM,KAAO,EAAA,IAAA;AAAMN,QAAAA,QAAAA;AAAS,KAAA,CAAA;AAGrE,IAAA,MAAMO,cAAcP,QAASE,CAAAA,OAAO,CAACC,GAAG,CAAC,cAAiBK,CAAAA,EAAAA,WAAAA,EAAAA,CAAAA;AAE1D,IAAA,MAAMC,cACJF,GAAAA,WAAAA,EAAaG,QAAS,CAAA,OAAA,CAAA,IAAYH,aAAaG,QAAS,CAAA,OAAA,CAAA,CAAA;AAE1D,IAAA,IAAID,cAAgB,EAAA;;AAElB,QAAA,MAAME,YAAeX,GAAAA,QAAAA,CAASY,KAAK,EAAA,CAAGC,IAAI,EAAA,CAAA;QAC1C,OAAOC,eAAAA,CACLd,UACAA,QAASI,CAAAA,EAAE,GAAGO,YAAeI,GAAAA,OAAAA,CAAQC,MAAM,CAAC,MAAML,YAAAA,CAAAA,CAAAA,CAAAA;AAEtD,KAAA;AAEA,IAAA,MAAMM,YAAejB,GAAAA,QAAAA,CAASY,KAAK,EAAA,CAAGM,IAAI,EAAA,CAAA;IAE1C,OAAOJ,eAAAA,CACLd,UACAA,QAASI,CAAAA,EAAE,GAAGa,YAAeF,GAAAA,OAAAA,CAAQC,MAAM,CAAC,MAAMC,YAAAA,CAAAA,CAAAA,CAAAA;AAEtD,CAAA;AAaO,SAASH,eAAAA,CACdK,gBAAkC,EAClCC,eAAgC,EAAA;AAEhC,IAAA,IAAI,CAACA,eAAiB,EAAA;AACpB,QAAA,IAAID,4BAA4BE,QAAU,EAAA;YACxC,OAAON,OAAAA,CAAQO,OAAO,CAAC;AACrBhB,gBAAAA,KAAAA,EAAO,IAAIiB,KAAM,CAAA,+CAAA,CAAA;gBACjBvB,QAAUmB,EAAAA,gBAAAA;gBACVd,IAAMmB,EAAAA,SAAAA;AACR,aAAA,CAAA,CAAA;SACK,MAAA;YACL,OAAOT,OAAAA,CAAQO,OAAO,CAAC;gBACrBhB,KAAOa,EAAAA,gBAAAA;gBACPnB,QAAUwB,EAAAA,SAAAA;gBACVnB,IAAMmB,EAAAA,SAAAA;AACR,aAAA,CAAA,CAAA;AACF,SAAA;AACF,KAAA;AAEA,IAAA,OAAOJ,eACJK,CAAAA,IAAI,CACH,CAACpB,QACE;AAAEA,YAAAA,IAAAA;YAAML,QAAUmB,EAAAA,gBAAAA;AAAiB,SAAA,CAKvCO,CAAAA,CAAAA,KAAK,CACJ,CAACpB,SACE;AAAEA,YAAAA,KAAAA;YAAON,QAAUmB,EAAAA,gBAAAA;SAAiB,CAAA,CAAA,CAAA;AAK7C;;;;;"}
1
+ {"version":3,"file":"responseUtils.cjs","sources":["../../../src/lib/responseUtils.ts"],"sourcesContent":["import type { RequestFnResponse } from '@openapi-qraft/tanstack-query-react-types';\n\n/**\n * Processes the response from the server.\n * @beta\n */\nexport async function processResponse<TData, TError>(\n response: Response\n): Promise<RequestFnResponse<TData, TError>> {\n if (response.status === 204 || response.headers.get('Content-Length') === '0')\n return (\n response.ok ? { data: null, response } : { error: null, response }\n ) as RequestFnResponse<TData, TError>;\n\n const contentType = response.headers.get('Content-Type')?.toLowerCase();\n\n const isJsonResponse =\n contentType?.includes('/json') || contentType?.includes('+json');\n\n if (isJsonResponse) {\n // clone response before parsing every time to allow multiple reads\n const jsonResponse = response.clone().json();\n return resolveResponse(\n response,\n response.ok ? jsonResponse : Promise.reject(await jsonResponse)\n );\n }\n\n const textResponse = response.clone().text() as Promise<TData>;\n\n return resolveResponse(\n response,\n response.ok ? textResponse : Promise.reject(await textResponse)\n );\n}\n\n/**\n * Resolves the response from the server.\n * @beta\n */\nexport function resolveResponse<TData, TError>(\n error: Error\n): Promise<RequestFnResponse<TData, TError>>;\nexport function resolveResponse<TData, TError>(\n responseToReturn: Response,\n responsePromise: Promise<TData>\n): Promise<RequestFnResponse<TData, TError>>;\nexport function resolveResponse<TData, TError>(\n responseToReturn: Response | Error,\n responsePromise?: Promise<TData>\n): Promise<RequestFnResponse<TData, TError>> {\n if (!responsePromise) {\n if (responseToReturn instanceof Response) {\n return Promise.resolve({\n error: new Error('Unhandled response without promise to resolve'),\n response: responseToReturn,\n data: undefined,\n });\n } else {\n return Promise.resolve({\n error: responseToReturn,\n response: undefined,\n data: undefined,\n });\n }\n }\n\n return responsePromise\n .then(\n (data) =>\n ({ data, response: responseToReturn }) as RequestFnResponse<\n TData,\n TError\n >\n )\n .catch(\n (error) =>\n ({ error, response: responseToReturn }) as RequestFnResponse<\n TData,\n TError\n >\n );\n}\n"],"names":["processResponse","response","status","headers","get","ok","data","error","contentType","toLowerCase","isJsonResponse","includes","jsonResponse","clone","json","resolveResponse","Promise","reject","textResponse","text","responseToReturn","responsePromise","Response","resolve","Error","undefined","then","catch"],"mappings":";;AAEA;;;IAIO,eAAeA,eAAAA,CACpBC,QAAkB,EAAA;AAElB,IAAA,IAAIA,QAAAA,CAASC,MAAM,KAAK,GAAA,IAAOD,SAASE,OAAO,CAACC,GAAG,CAAC,gBAAA,CAAA,KAAsB,GAAA,EACxE,OACEH,QAAAA,CAASI,EAAE,GAAG;QAAEC,IAAAA,EAAM,IAAA;AAAML,QAAAA;KAAS,GAAI;QAAEM,KAAAA,EAAO,IAAA;AAAMN,QAAAA;AAAS,KAAA;AAGrE,IAAA,MAAMO,cAAcP,QAAAA,CAASE,OAAO,CAACC,GAAG,CAAC,cAAA,CAAA,EAAiBK,WAAAA,EAAAA;AAE1D,IAAA,MAAMC,cAAAA,GACJF,WAAAA,EAAaG,QAAAA,CAAS,OAAA,CAAA,IAAYH,aAAaG,QAAAA,CAAS,OAAA,CAAA;AAE1D,IAAA,IAAID,cAAAA,EAAgB;;AAElB,QAAA,MAAME,YAAAA,GAAeX,QAAAA,CAASY,KAAK,EAAA,CAAGC,IAAI,EAAA;QAC1C,OAAOC,eAAAA,CACLd,UACAA,QAAAA,CAASI,EAAE,GAAGO,YAAAA,GAAeI,OAAAA,CAAQC,MAAM,CAAC,MAAML,YAAAA,CAAAA,CAAAA;AAEtD,IAAA;AAEA,IAAA,MAAMM,YAAAA,GAAejB,QAAAA,CAASY,KAAK,EAAA,CAAGM,IAAI,EAAA;IAE1C,OAAOJ,eAAAA,CACLd,UACAA,QAAAA,CAASI,EAAE,GAAGa,YAAAA,GAAeF,OAAAA,CAAQC,MAAM,CAAC,MAAMC,YAAAA,CAAAA,CAAAA;AAEtD;AAaO,SAASH,eAAAA,CACdK,gBAAkC,EAClCC,eAAgC,EAAA;AAEhC,IAAA,IAAI,CAACA,eAAAA,EAAiB;AACpB,QAAA,IAAID,4BAA4BE,QAAAA,EAAU;YACxC,OAAON,OAAAA,CAAQO,OAAO,CAAC;AACrBhB,gBAAAA,KAAAA,EAAO,IAAIiB,KAAAA,CAAM,+CAAA,CAAA;gBACjBvB,QAAAA,EAAUmB,gBAAAA;gBACVd,IAAAA,EAAMmB;AACR,aAAA,CAAA;QACF,CAAA,MAAO;YACL,OAAOT,OAAAA,CAAQO,OAAO,CAAC;gBACrBhB,KAAAA,EAAOa,gBAAAA;gBACPnB,QAAAA,EAAUwB,SAAAA;gBACVnB,IAAAA,EAAMmB;AACR,aAAA,CAAA;AACF,QAAA;AACF,IAAA;AAEA,IAAA,OAAOJ,eAAAA,CACJK,IAAI,CACH,CAACpB,QACE;AAAEA,YAAAA,IAAAA;YAAML,QAAAA,EAAUmB;AAAiB,SAAA,CAAA,CAAA,CAKvCO,KAAK,CACJ,CAACpB,SACE;AAAEA,YAAAA,KAAAA;YAAON,QAAAA,EAAUmB;SAAiB,CAAA,CAAA;AAK7C;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"shelfMerge.cjs","sources":["../../../src/lib/shelfMerge.ts"],"sourcesContent":["/**\n * Merges objects with provided depth\n * @param depth\n * @param args\n */\nexport function shelfMerge<T>(depth = 2, ...args: T[]): T {\n return args.reduce((acc, arg) => {\n if (!arg || typeof arg !== 'object') return acc;\n\n Object.entries(arg).forEach(([key, value]) => {\n if (typeof value !== 'object') {\n acc[key as never] = value as never;\n return;\n }\n\n if (Array.isArray(value)) {\n acc[key as never] = value as never;\n return;\n }\n\n if (depth > 1) {\n acc[key as never] = shelfMerge(\n depth - 1,\n acc[key as never],\n value\n ) as never;\n return;\n }\n\n acc[key as never] = value as never;\n });\n\n return acc;\n }, {} as T);\n}\n"],"names":["shelfMerge","depth","args","reduce","acc","arg","Object","entries","forEach","key","value","Array","isArray"],"mappings":";;AAAA;;;;AAIC,IACM,SAASA,UAAAA,CAAcC,QAAQ,CAAC,EAAE,GAAGC,IAAS,EAAA;AACnD,IAAA,OAAOA,IAAKC,CAAAA,MAAM,CAAC,CAACC,GAAKC,EAAAA,GAAAA,GAAAA;AACvB,QAAA,IAAI,CAACA,GAAAA,IAAO,OAAOA,GAAAA,KAAQ,UAAU,OAAOD,GAAAA,CAAAA;QAE5CE,MAAOC,CAAAA,OAAO,CAACF,GAAKG,CAAAA,CAAAA,OAAO,CAAC,CAAC,CAACC,KAAKC,KAAM,CAAA,GAAA;YACvC,IAAI,OAAOA,UAAU,QAAU,EAAA;gBAC7BN,GAAG,CAACK,IAAa,GAAGC,KAAAA,CAAAA;AACpB,gBAAA,OAAA;AACF,aAAA;YAEA,IAAIC,KAAAA,CAAMC,OAAO,CAACF,KAAQ,CAAA,EAAA;gBACxBN,GAAG,CAACK,IAAa,GAAGC,KAAAA,CAAAA;AACpB,gBAAA,OAAA;AACF,aAAA;AAEA,YAAA,IAAIT,QAAQ,CAAG,EAAA;gBACbG,GAAG,CAACK,IAAa,GAAGT,UAAAA,CAClBC,QAAQ,CACRG,EAAAA,GAAG,CAACK,GAAAA,CAAa,EACjBC,KAAAA,CAAAA,CAAAA;AAEF,gBAAA,OAAA;AACF,aAAA;YAEAN,GAAG,CAACK,IAAa,GAAGC,KAAAA,CAAAA;AACtB,SAAA,CAAA,CAAA;QAEA,OAAON,GAAAA,CAAAA;AACT,KAAA,EAAG,EAAC,CAAA,CAAA;AACN;;;;"}
1
+ {"version":3,"file":"shelfMerge.cjs","sources":["../../../src/lib/shelfMerge.ts"],"sourcesContent":["/**\n * Merges objects with provided depth\n * @param depth\n * @param args\n */\nexport function shelfMerge<T>(depth = 2, ...args: T[]): T {\n return args.reduce((acc, arg) => {\n if (!arg || typeof arg !== 'object') return acc;\n\n Object.entries(arg).forEach(([key, value]) => {\n if (typeof value !== 'object') {\n acc[key as never] = value as never;\n return;\n }\n\n if (Array.isArray(value)) {\n acc[key as never] = value as never;\n return;\n }\n\n if (depth > 1) {\n acc[key as never] = shelfMerge(\n depth - 1,\n acc[key as never],\n value\n ) as never;\n return;\n }\n\n acc[key as never] = value as never;\n });\n\n return acc;\n }, {} as T);\n}\n"],"names":["shelfMerge","depth","args","reduce","acc","arg","Object","entries","forEach","key","value","Array","isArray"],"mappings":";;AAAA;;;;AAIC,IACM,SAASA,UAAAA,CAAcC,QAAQ,CAAC,EAAE,GAAGC,IAAS,EAAA;AACnD,IAAA,OAAOA,IAAAA,CAAKC,MAAM,CAAC,CAACC,GAAAA,EAAKC,GAAAA,GAAAA;AACvB,QAAA,IAAI,CAACA,GAAAA,IAAO,OAAOA,GAAAA,KAAQ,UAAU,OAAOD,GAAAA;QAE5CE,MAAAA,CAAOC,OAAO,CAACF,GAAAA,CAAAA,CAAKG,OAAO,CAAC,CAAC,CAACC,KAAKC,KAAAA,CAAM,GAAA;YACvC,IAAI,OAAOA,UAAU,QAAA,EAAU;gBAC7BN,GAAG,CAACK,IAAa,GAAGC,KAAAA;AACpB,gBAAA;AACF,YAAA;YAEA,IAAIC,KAAAA,CAAMC,OAAO,CAACF,KAAAA,CAAAA,EAAQ;gBACxBN,GAAG,CAACK,IAAa,GAAGC,KAAAA;AACpB,gBAAA;AACF,YAAA;AAEA,YAAA,IAAIT,QAAQ,CAAA,EAAG;gBACbG,GAAG,CAACK,IAAa,GAAGT,UAAAA,CAClBC,QAAQ,CAAA,EACRG,GAAG,CAACK,GAAAA,CAAa,EACjBC,KAAAA,CAAAA;AAEF,gBAAA;AACF,YAAA;YAEAN,GAAG,CAACK,IAAa,GAAGC,KAAAA;AACtB,QAAA,CAAA,CAAA;QAEA,OAAON,GAAAA;AACT,IAAA,CAAA,EAAG,EAAC,CAAA;AACN;;;;"}
@@ -4,6 +4,7 @@
4
4
  var react = require('react');
5
5
  var composeInfiniteQueryKey = require('./composeInfiniteQueryKey.cjs');
6
6
  var composeQueryKey = require('./composeQueryKey.cjs');
7
+ var createRequestFnInfo = require('./createRequestFnInfo.cjs');
7
8
  var prepareRequestFnParameters = require('./prepareRequestFnParameters.cjs');
8
9
  var requestFnResponseRejecter = require('./requestFnResponseRejecter.cjs');
9
10
  var requestFnResponseResolver = require('./requestFnResponseResolver.cjs');
@@ -32,15 +33,15 @@ var requestFnResponseResolver = require('./requestFnResponseResolver.cjs');
32
33
  qraftOptions.queryClient
33
34
  ];
34
35
  }
35
- function qraftQueryFn(requestFn, baseUrl, { queryKey: [schema, queryParams], signal, meta, pageParam }) {
36
+ function qraftQueryFn(requestFn, baseUrl, context) {
37
+ const { queryKey: [schema, queryParams], meta, pageParam } = context;
36
38
  const { parameters, body } = prepareRequestFnParameters.prepareRequestFnParameters(queryParams, pageParam, Boolean('infinite' in schema && schema.infinite));
37
- return requestFn(schema, {
39
+ return requestFn(schema, createRequestFnInfo.createQueryRequestFnInfo(context, {
38
40
  parameters: parameters,
39
41
  baseUrl,
40
42
  body,
41
- signal,
42
43
  meta
43
- }).then(requestFnResponseResolver.requestFnResponseResolver, requestFnResponseRejecter.requestFnResponseRejecter);
44
+ })).then(requestFnResponseResolver.requestFnResponseResolver, requestFnResponseRejecter.requestFnResponseRejecter);
44
45
  }
45
46
 
46
47
  exports.useComposeUseQueryOptions = useComposeUseQueryOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"useComposeUseQueryOptions.cjs","sources":["../../../src/lib/useComposeUseQueryOptions.ts"],"sourcesContent":["'use client';\n\nimport type {\n ServiceOperationInfiniteQueryKey,\n ServiceOperationQueryKey,\n} from '@openapi-qraft/tanstack-query-react-types';\nimport type {\n QueryClient,\n QueryFunctionContext,\n UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';\nimport type { OperationSchema } from './requestFn.js';\nimport { useMemo } from 'react';\nimport { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';\nimport { composeQueryKey } from './composeQueryKey.js';\nimport { prepareRequestFnParameters } from './prepareRequestFnParameters.js';\nimport { requestFnResponseRejecter } from './requestFnResponseRejecter.js';\nimport { requestFnResponseResolver } from './requestFnResponseResolver.js';\n\n/**\n * Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.\n * @internal\n */\nexport function useComposeUseQueryOptions(\n qraftOptions: CreateAPIQueryClientOptions,\n schema: OperationSchema,\n args: UseQueryOptionsArgs,\n infinite: boolean\n): never {\n const [parameters, options] = args;\n\n const queryFn = useMemo(\n () =>\n options?.queryFn ??\n qraftQueryFn.bind(null, qraftOptions.requestFn, qraftOptions.baseUrl),\n [qraftOptions.requestFn, qraftOptions.baseUrl, options?.queryFn]\n );\n\n const queryKey = useMemo(\n () =>\n Array.isArray(parameters)\n ? (parameters as ServiceOperationQueryKey<OperationSchema, unknown>)\n : infinite\n ? composeInfiniteQueryKey(schema, parameters)\n : composeQueryKey(schema, parameters),\n [schema, parameters, infinite]\n );\n\n return [{ ...options, queryFn, queryKey }, qraftOptions.queryClient] as never;\n}\n\nfunction qraftQueryFn(\n requestFn: CreateAPIQueryClientOptions['requestFn'],\n baseUrl: CreateAPIQueryClientOptions['baseUrl'],\n {\n queryKey: [schema, queryParams],\n signal,\n meta,\n pageParam,\n }: QueryFunctionContext<\n | ServiceOperationQueryKey<OperationSchema, unknown>\n | ServiceOperationInfiniteQueryKey<OperationSchema, unknown>\n >\n) {\n const { parameters, body } = prepareRequestFnParameters(\n queryParams,\n pageParam,\n Boolean('infinite' in schema && schema.infinite)\n );\n\n return requestFn(schema, {\n parameters: parameters as never,\n baseUrl,\n body,\n signal,\n meta,\n }).then(requestFnResponseResolver, requestFnResponseRejecter);\n}\n\ntype UseQueryOptionsArgs = [\n parameters: unknown,\n options?: UseQueryOptions,\n queryClient?: QueryClient,\n];\n"],"names":["useComposeUseQueryOptions","qraftOptions","schema","args","infinite","parameters","options","queryFn","useMemo","qraftQueryFn","bind","requestFn","baseUrl","queryKey","Array","isArray","composeInfiniteQueryKey","composeQueryKey","queryClient","queryParams","signal","meta","pageParam","body","prepareRequestFnParameters","Boolean","then","requestFnResponseResolver","requestFnResponseRejecter"],"mappings":"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"}
1
+ {"version":3,"file":"useComposeUseQueryOptions.cjs","sources":["../../../src/lib/useComposeUseQueryOptions.ts"],"sourcesContent":["'use client';\n\nimport type {\n ServiceOperationInfiniteQueryKey,\n ServiceOperationQueryKey,\n} from '@openapi-qraft/tanstack-query-react-types';\nimport type {\n QueryClient,\n QueryFunctionContext,\n UseQueryOptions,\n} from '@tanstack/react-query';\nimport type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';\nimport type { OperationSchema } from './requestFn.js';\nimport { useMemo } from 'react';\nimport { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';\nimport { composeQueryKey } from './composeQueryKey.js';\nimport { createQueryRequestFnInfo } from './createRequestFnInfo.js';\nimport { prepareRequestFnParameters } from './prepareRequestFnParameters.js';\nimport { requestFnResponseRejecter } from './requestFnResponseRejecter.js';\nimport { requestFnResponseResolver } from './requestFnResponseResolver.js';\n\n/**\n * Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.\n * @internal\n */\nexport function useComposeUseQueryOptions(\n qraftOptions: CreateAPIQueryClientOptions,\n schema: OperationSchema,\n args: UseQueryOptionsArgs,\n infinite: boolean\n): never {\n const [parameters, options] = args;\n\n const queryFn = useMemo(\n () =>\n options?.queryFn ??\n qraftQueryFn.bind(null, qraftOptions.requestFn, qraftOptions.baseUrl),\n [qraftOptions.requestFn, qraftOptions.baseUrl, options?.queryFn]\n );\n\n const queryKey = useMemo(\n () =>\n Array.isArray(parameters)\n ? (parameters as ServiceOperationQueryKey<OperationSchema, unknown>)\n : infinite\n ? composeInfiniteQueryKey(schema, parameters)\n : composeQueryKey(schema, parameters),\n [schema, parameters, infinite]\n );\n\n return [{ ...options, queryFn, queryKey }, qraftOptions.queryClient] as never;\n}\n\nfunction qraftQueryFn(\n requestFn: CreateAPIQueryClientOptions['requestFn'],\n baseUrl: CreateAPIQueryClientOptions['baseUrl'],\n context: QueryFunctionContext<\n | ServiceOperationQueryKey<OperationSchema, unknown>\n | ServiceOperationInfiniteQueryKey<OperationSchema, unknown>\n >\n) {\n const {\n queryKey: [schema, queryParams],\n meta,\n pageParam,\n } = context;\n const { parameters, body } = prepareRequestFnParameters(\n queryParams,\n pageParam,\n Boolean('infinite' in schema && schema.infinite)\n );\n\n return requestFn(\n schema,\n createQueryRequestFnInfo(context, {\n parameters: parameters as never,\n baseUrl,\n body,\n meta,\n })\n ).then(requestFnResponseResolver, requestFnResponseRejecter);\n}\n\ntype UseQueryOptionsArgs = [\n parameters: unknown,\n options?: UseQueryOptions,\n queryClient?: QueryClient,\n];\n"],"names":["useComposeUseQueryOptions","qraftOptions","schema","args","infinite","parameters","options","queryFn","useMemo","qraftQueryFn","bind","requestFn","baseUrl","queryKey","Array","isArray","composeInfiniteQueryKey","composeQueryKey","queryClient","context","queryParams","meta","pageParam","body","prepareRequestFnParameters","Boolean","createQueryRequestFnInfo","then","requestFnResponseResolver","requestFnResponseRejecter"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"qraftAPIClient.cjs","sources":["../../src/qraftAPIClient.ts"],"sourcesContent":["import type { QraftServiceOperationsToken } from '@openapi-qraft/tanstack-query-react-types';\nimport type { QueryClient } from '@tanstack/react-query';\nimport type * as callbacks from './callbacks/index.js';\nimport type * as operationInvokeModule from './callbacks/operationInvokeFn.js';\nimport type {\n OperationSchema,\n RequestFnInfo,\n RequestFnResponse,\n} from './lib/requestFn.js';\nimport { createRecursiveProxy } from './lib/createRecursiveProxy.js';\n\nexport interface CreateAPIBasicClientOptions {\n requestFn: (\n schema: OperationSchema,\n requestInfo: RequestFnInfo\n ) => Promise<RequestFnResponse<any, any>>;\n baseUrl: string;\n}\n\nexport interface CreateAPIBasicQueryClientOptions {\n queryClient: QueryClient;\n}\n\nexport interface CreateAPIQueryClientOptions\n extends CreateAPIBasicClientOptions, CreateAPIBasicQueryClientOptions {}\n\n/**\n * @deprecated use `CreateAPIClientOptions` instead\n */\nexport type QraftClientOptions =\n | CreateAPIBasicClientOptions\n | CreateAPIQueryClientOptions;\n\nexport type CreateAPIClientOptions =\n | CreateAPIBasicClientOptions\n | CreateAPIBasicQueryClientOptions\n | CreateAPIQueryClientOptions;\n\n/**\n * Creates a QueryClient compatible API Client which contains all operations\n * such as `useQuery`, `useMutation`.\n *\n * @example Fetching data with QueryClient\n * ```ts\n * const api = qraftAPIClient(services, callbacks, {\n * requestFn: requestFn,\n * baseUrl: 'https://api.example.com',\n * queryClient: new QueryClient(),\n * });\n *\n * api.service.operation({\n * parameters: { path: { id: 1 } },\n * });\n * ```\n */\nexport function qraftAPIClient<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends PartialServiceMethods,\n>(\n services: Services,\n callbacks: Callbacks,\n options: CreateAPIQueryClientOptions\n): APIQueryClientServices<Services, Callbacks>;\n\n/**\n * Creates a QueryClient compatible API Client which contains\n * only state management manipulations such as `useIsMutating`,\n * `setQueryData`, `getQueryData` and `invalidateQueries`.\n *\n * @example Invalidating queries with QueryClient\n * ```ts\n * const api = qraftAPIClient(services, callbacks, {\n * // an instance of QueryClient shared between all clients\n * queryClient: sharedQueryClient\n * });\n *\n * api.service.operation.invalidateQueries({\n * parameters: { path: { id: 1 } },\n * });\n */\nexport function qraftAPIClient<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends PartialServiceMethods,\n>(\n services: Services,\n callbacks: Callbacks,\n options: CreateAPIBasicQueryClientOptions\n): APIBasicQueryClientServices<Services, Callbacks>;\n\n/**\n * Creates a basic API Client which contains all hooks and methods\n * that don't require an explicitly provided QueryClient.\n * Hooks like `useQuery` and `useMutation` will automatically retrieve\n * the QueryClient from the `<QueryClientProvider />` context.\n *\n * @example Fetching data with QueryClient from context\n * ```ts\n * const api = qraftAPIClient(services, callbacks, {\n * requestFn: requestFn,\n * baseUrl: 'https://api.example.com',\n * });\n *\n * // QueryClient will be retrieved from React context\n * api.service.operation.useQuery({\n * parameters: { path: { id: 1 } },\n * });\n * ```\n *\n * @example Fetching data without QueryClient\n * ```ts\n * const api = qraftAPIClient(services, callbacks, {\n * requestFn: requestFn,\n * baseUrl: 'https://api.example.com',\n * });\n *\n * api.service.operation({\n * parameters: { path: { id: 1 } },\n * });\n * ```\n */\nexport function qraftAPIClient<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends PartialServiceMethods,\n>(\n services: Services,\n callbacks: Callbacks,\n options: CreateAPIBasicClientOptions\n): APIBasicClientServices<Services, Callbacks>;\n\n/**\n * Creates a utility API Client which contains utility operations\n * such as `getQueryKey`, `getInfiniteQueryKey`, `getMutationKey` and state hooks\n * like `useIsFetching` and `useMutationData`.\n *\n * @example Using state hooks\n * ```ts\n * const api = qraftAPIClient(services, callbacks);\n *\n * // Check if any query is currently fetching\n * const isFetching = api.service.operation.useIsFetching();\n * ```\n *\n * @example Getting query keys with utility client\n * ```ts\n * const api = qraftAPIClient(services, callbacks);\n *\n * api.service.operation.getQueryKey({\n * parameters: { path: { id: 1 } },\n * });\n * ```\n */\nexport function qraftAPIClient<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends Pick<PartialServiceMethods, UtilityOperationCallbacks>,\n>(\n services: Services,\n callbacks: Callbacks\n): APIUtilityClientServices<Services, Callbacks>;\n\nexport function qraftAPIClient<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends PartialServiceMethods,\n>(\n services: Services,\n callbacks: Callbacks,\n options?: CreateAPIClientOptions\n):\n | APIQueryClientServices<Services, Callbacks>\n | APIDefaultQueryClientServices<Services>\n | APIBasicQueryClientServices<Services, Callbacks>\n | APIUtilityClientServices<Services, Callbacks> {\n const stringTag = 'QraftAPIClient';\n\n const toString = (path: (symbol | string)[]): string => {\n return `[${stringTag}${path.length ? ' ' + path.join('.') : ''}]`;\n };\n\n const primitiveMethods = {\n [Symbol.toPrimitive](\n this: undefined,\n path: (string | symbol)[],\n hint: 'string' | 'number' | 'default'\n ): unknown {\n if (hint === 'number') return NaN;\n if (hint === 'string') return toString(path);\n return getByPath(services, path);\n },\n valueOf(this: undefined, path: (string | symbol)[]): unknown {\n return getByPath(services, path);\n },\n toJSON(this: undefined, path: (string | symbol)[]): string {\n return JSON.stringify(getByPath(services, path));\n },\n toString(this: undefined, path: (string | symbol)[]): string {\n return toString(path);\n },\n };\n\n return createRecursiveProxy(\n function getCallback(getPath, key) {\n if (Object.prototype.hasOwnProperty.call(primitiveMethods, key)) {\n return primitiveMethods[key as keyof typeof primitiveMethods].bind(\n undefined,\n getPath\n );\n } else if (key === Symbol.toStringTag) {\n return stringTag;\n }\n\n if (key !== 'schema') return;\n if (\n getPath.length !== 2 &&\n !('schema' in services) &&\n getPath.length !== 1 &&\n !(services[getPath[0] as never] as OperationsDeclaration<any>)?.schema\n )\n return;\n\n const serviceOperation = getByPath(services, getPath);\n if (!isServiceOperation(serviceOperation))\n throw new Error(`Service operation not found: ${getPath.join('.')}`);\n return serviceOperation.schema;\n },\n function applyCallback(applyPath, args) {\n const { path, callbackName } = extractCallbackDetails(\n applyPath,\n services\n );\n\n assertValidCallbackName(callbackName, callbacks);\n\n const serviceOperation = getByPath(services, path);\n\n if (!isServiceOperation(serviceOperation))\n throw new Error(`Service operation not found: ${path.join('.')}`);\n\n if (\n callbackName !== 'operationInvokeFn' &&\n callbackName !== 'getQueryKey' &&\n callbackName !== 'getMutationKey' &&\n callbackName !== 'getInfiniteQueryKey' &&\n callbackName !== 'useInfiniteQuery' &&\n callbackName !== 'useQueries' &&\n callbackName !== 'useQuery' &&\n callbackName !== 'useSuspenseInfiniteQuery' &&\n callbackName !== 'useSuspenseQueries' &&\n callbackName !== 'useSuspenseQuery' &&\n callbackName !== 'useIsFetching' &&\n callbackName !== 'useMutation' &&\n callbackName !== 'useIsMutating' &&\n callbackName !== 'useMutationState'\n )\n if (!options || !('queryClient' in options && options.queryClient))\n throw new Error(\n `'qraft.<service>.<operation>.${String(callbackName)}()' requires 'queryClient' in 'createAPIClient(...)' options.`\n );\n\n // @ts-expect-error - Too complex union type\n return callbacks[callbackName](options, serviceOperation.schema, args);\n },\n []\n ) as never;\n}\n\nfunction assertValidCallbackName<\n Callbacks extends Record<string, (...rest: any[]) => unknown>,\n>(\n callbackName: string | number | symbol,\n callbacks: Callbacks\n): asserts callbackName is keyof Callbacks {\n if (!(callbackName in callbacks)) {\n if (\n (callbackName as InvokeOperationCallback) ===\n ('operationInvokeFn' satisfies InvokeOperationCallback)\n )\n throw new Error(\n `Callback 'operationInvokeFn' is required for executing 'qraft.<service>.<operation>()', but it is not provided in the 'callbacks' object.`\n );\n throw new Error(\n `Callback for 'qraft.<service>.<operation>.${String(callbackName)}()' is not provided in the 'callbacks' object.`\n );\n }\n}\n\n/**\n * Extracts Callback details from the applyPath\n */\nfunction extractCallbackDetails(\n applyPath: (string | symbol)[],\n services: UnionServiceOperationsDeclaration<any>\n) {\n // client.<service>.<operation>() [OperationInvokeFn]\n // <service>.<operation>() [OperationInvokeFn]\n // client() [OperationInvokeFn]\n // client()\n if (\n (applyPath.length === 2 &&\n !(services[applyPath[0] as never] as OperationsDeclaration<any>)\n ?.schema) ||\n (applyPath.length === 0 && 'schema' in services)\n ) {\n return {\n path: applyPath,\n callbackName: 'operationInvokeFn' satisfies InvokeOperationCallback,\n };\n } else {\n // client.<service>.<operation>.<method>()\n // <service>.<operation>.<method>()\n // client.<method>()\n return {\n path: applyPath.slice(0, -1),\n // The last arg is for instance `.useMutation` or `.useQuery()`\n callbackName: applyPath[applyPath.length - 1],\n };\n }\n}\n\nfunction isServiceOperation(\n input: unknown\n): input is { schema: OperationSchema } {\n return input !== null && typeof input === 'object' && 'schema' in input;\n}\n\nfunction getByPath(obj: Record<string, unknown>, path: (string | symbol)[]) {\n return path.reduce<unknown>((acc, key) => {\n if (acc && typeof acc === 'object' && key in acc)\n return acc[key as keyof typeof acc];\n }, obj);\n}\n\ntype ServiceMethods = typeof callbacks;\n\ntype PartialServiceMethods = Partial<ServiceMethods>;\n\ntype OperationDeclaration = {\n schema: OperationSchema;\n [QraftServiceOperationsToken]: Partial<\n Record<\n | QueryOperationCallbacks\n | QueryOperationStateCallbacks\n | MutationOperationHookCallbacks\n | MutationOperationStateCallbacks\n | UtilityOperationCallbacks,\n any\n >\n > & {\n types: any;\n schema: OperationSchema;\n (...args: any[]): any;\n };\n};\n\ntype OperationsDeclaration<Operations> = {\n [operation in keyof Operations]: OperationDeclaration;\n};\n\ntype ServicesDeclaration<Services> = {\n [service in keyof Services]: OperationsDeclaration<Services[service]>;\n};\n\nexport type UnionServiceOperationsDeclaration<Services> =\n | ServicesDeclaration<Services>\n | OperationsDeclaration<Services>\n | OperationDeclaration;\n\nexport type QueryOperationHookCallbacks = Extract<\n keyof ServiceMethods,\n | 'useInfiniteQuery'\n | 'useQueries'\n | 'useQuery'\n | 'useSuspenseInfiniteQuery'\n | 'useSuspenseQueries'\n | 'useSuspenseQuery'\n>;\n\ntype QueryOperationCallbacks =\n | Extract<\n keyof ServiceMethods,\n | 'fetchInfiniteQuery'\n | 'fetchQuery'\n | 'prefetchInfiniteQuery'\n | 'prefetchQuery'\n | 'refetchQueries'\n | 'ensureQueryData'\n | 'ensureInfiniteQueryData'\n >\n | QueryOperationHookCallbacks;\n\ntype QueryOperationStateHookCallbacks = Extract<\n keyof ServiceMethods,\n 'useIsFetching'\n>;\n\ntype QueryOperationStateCallbacks =\n | Extract<\n keyof ServiceMethods,\n | 'cancelQueries'\n | 'getInfiniteQueryData'\n | 'getInfiniteQueryState'\n | 'getQueriesData'\n | 'getQueryData'\n | 'getQueryState'\n | 'invalidateQueries'\n | 'isFetching'\n | 'removeQueries'\n | 'resetQueries'\n | 'setInfiniteQueryData'\n | 'setQueriesData'\n | 'setQueryData'\n >\n | QueryOperationStateHookCallbacks;\n\nexport type MutationOperationHookCallbacks = Extract<\n keyof ServiceMethods,\n 'useMutation'\n>;\n\ntype MutationOperationStateHookCallbacks = Extract<\n keyof ServiceMethods,\n 'useIsMutating' | 'useMutationState'\n>;\n\ntype MutationOperationStateCallbacks =\n | Extract<keyof ServiceMethods, 'getMutationCache' | 'isMutating'>\n | MutationOperationStateHookCallbacks;\n\ntype InvokeOperationCallback = Extract<\n keyof typeof operationInvokeModule,\n 'operationInvokeFn'\n>;\n\nexport type UtilityOperationCallbacks = Extract<\n keyof ServiceMethods,\n | 'getQueryKey'\n | 'getInfiniteQueryKey'\n | 'getMutationKey'\n | QueryOperationStateHookCallbacks\n | MutationOperationStateHookCallbacks\n>;\n\ntype OperationCallbackList =\n | QueryOperationCallbacks\n | QueryOperationStateCallbacks\n | MutationOperationHookCallbacks\n | MutationOperationStateCallbacks\n | InvokeOperationCallback\n | UtilityOperationCallbacks;\n\nexport type APIQueryClientServices<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends PartialServiceMethods,\n> = ServicesFilteredByCallbacks<\n Services,\n Extract<keyof Callbacks, OperationCallbackList>\n>;\n\nexport type APIDefaultQueryClientServices<\n Services extends UnionServiceOperationsDeclaration<Services>,\n> = Services extends OperationDeclaration\n ? Services[QraftServiceOperationsToken]\n : Services extends OperationsDeclaration<Services>\n ? {\n [operation in keyof Services]: Services[operation][QraftServiceOperationsToken];\n }\n : Services extends ServicesDeclaration<Services>\n ? {\n [service in keyof Services]: {\n [operation in keyof Services[service]]: Services[service][operation][QraftServiceOperationsToken];\n };\n }\n : never;\n\nexport type APIBasicQueryClientServices<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends PartialServiceMethods,\n> = ServicesFilteredByCallbacks<\n Services,\n Extract<\n keyof Callbacks,\n | QueryOperationStateCallbacks\n | MutationOperationStateCallbacks\n | UtilityOperationCallbacks\n >\n>;\n\nexport type APIBasicClientServices<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends PartialServiceMethods,\n> = ServicesFilteredByCallbacks<\n Services,\n Extract<\n keyof Callbacks,\n | InvokeOperationCallback\n | UtilityOperationCallbacks\n | QueryOperationHookCallbacks\n | QueryOperationStateHookCallbacks\n | MutationOperationStateHookCallbacks\n | MutationOperationHookCallbacks\n >\n>;\n\nexport type APIUtilityClientServices<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends Pick<PartialServiceMethods, UtilityOperationCallbacks>,\n> = ServicesFilteredByUtilityCallbacks<\n Services,\n Extract<keyof Callbacks, UtilityOperationCallbacks>\n>;\n\nexport type ServicesFilteredByCallbacks<\n Services extends UnionServiceOperationsDeclaration<Services>,\n CallbackList extends OperationCallbackList,\n> = Services extends OperationDeclaration\n ? Pick<\n Services[QraftServiceOperationsToken],\n Extract<\n keyof Services[QraftServiceOperationsToken],\n CallbackList | 'schema' | 'types'\n >\n > &\n OperationInvokeFn<Services[QraftServiceOperationsToken], CallbackList>\n : Services extends OperationsDeclaration<Services>\n ? {\n [operation in keyof Services]: Pick<\n Services[operation][QraftServiceOperationsToken],\n Extract<\n keyof Services[operation][QraftServiceOperationsToken],\n CallbackList | 'schema' | 'types'\n >\n > &\n OperationInvokeFn<\n Services[operation][QraftServiceOperationsToken],\n CallbackList\n >;\n }\n : Services extends ServicesDeclaration<Services>\n ? {\n [serviceName in keyof Services]: {\n [operation in keyof Services[serviceName]]: Pick<\n Services[serviceName][operation][QraftServiceOperationsToken],\n Extract<\n keyof Services[serviceName][operation][QraftServiceOperationsToken],\n CallbackList | 'schema' | 'types'\n >\n > &\n OperationInvokeFn<\n Services[serviceName][operation][QraftServiceOperationsToken],\n CallbackList\n >;\n };\n }\n : never;\n\ntype OperationInvokeFn<\n InvokeFn extends (...args: any[]) => any,\n CallbackList extends OperationCallbackList,\n> = InvokeOperationCallback extends CallbackList\n ? InvokeFn extends (...args: infer Args) => infer Result\n ? { (...args: Args): Result }\n : Record<string, never>\n : Record<string, never>;\n\ntype ServicesFilteredByUtilityCallbacks<\n Services extends UnionServiceOperationsDeclaration<Services>,\n CallbackList extends UtilityOperationCallbacks,\n> = Services extends OperationDeclaration\n ? Pick<\n Services[QraftServiceOperationsToken],\n Extract<\n keyof Services[QraftServiceOperationsToken],\n CallbackList | 'schema' | 'types'\n >\n >\n : Services extends OperationsDeclaration<Services>\n ? {\n [operation in keyof Services]: Pick<\n Services[operation][QraftServiceOperationsToken],\n Extract<\n keyof Services[operation][QraftServiceOperationsToken],\n CallbackList | 'schema' | 'types'\n >\n >;\n }\n : Services extends ServicesDeclaration<Services>\n ? {\n [serviceName in keyof Services]: {\n [operation in keyof Services[serviceName]]: Pick<\n Services[serviceName][operation][QraftServiceOperationsToken],\n Extract<\n keyof Services[serviceName][operation][QraftServiceOperationsToken],\n CallbackList | 'schema' | 'types'\n >\n >;\n };\n }\n : never;\n"],"names":["qraftAPIClient","services","callbacks","options","stringTag","toString","path","length","join","primitiveMethods","Symbol","toPrimitive","hint","NaN","getByPath","valueOf","toJSON","JSON","stringify","createRecursiveProxy","getCallback","getPath","key","Object","prototype","hasOwnProperty","call","bind","undefined","toStringTag","schema","serviceOperation","isServiceOperation","Error","applyCallback","applyPath","args","callbackName","extractCallbackDetails","assertValidCallbackName","queryClient","String","slice","input","obj","reduce","acc"],"mappings":"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"}
1
+ {"version":3,"file":"qraftAPIClient.cjs","sources":["../../src/qraftAPIClient.ts"],"sourcesContent":["import type { QraftServiceOperationsToken } from '@openapi-qraft/tanstack-query-react-types';\nimport type { QueryClient } from '@tanstack/react-query';\nimport type * as callbacks from './callbacks/index.js';\nimport type * as operationInvokeModule from './callbacks/operationInvokeFn.js';\nimport type {\n OperationSchema,\n RequestFnInfo,\n RequestFnResponse,\n} from './lib/requestFn.js';\nimport { createRecursiveProxy } from './lib/createRecursiveProxy.js';\n\nexport interface CreateAPIBasicClientOptions {\n requestFn: (\n schema: OperationSchema,\n requestInfo: RequestFnInfo\n ) => Promise<RequestFnResponse<any, any>>;\n baseUrl: string;\n}\n\nexport interface CreateAPIBasicQueryClientOptions {\n queryClient: QueryClient;\n}\n\nexport interface CreateAPIQueryClientOptions\n extends CreateAPIBasicClientOptions, CreateAPIBasicQueryClientOptions {}\n\n/**\n * @deprecated use `CreateAPIClientOptions` instead\n */\nexport type QraftClientOptions =\n | CreateAPIBasicClientOptions\n | CreateAPIQueryClientOptions;\n\nexport type CreateAPIClientOptions =\n | CreateAPIBasicClientOptions\n | CreateAPIBasicQueryClientOptions\n | CreateAPIQueryClientOptions;\n\n/**\n * Creates a QueryClient compatible API Client which contains all operations\n * such as `useQuery`, `useMutation`.\n *\n * @example Fetching data with QueryClient\n * ```ts\n * const api = qraftAPIClient(services, callbacks, {\n * requestFn: requestFn,\n * baseUrl: 'https://api.example.com',\n * queryClient: new QueryClient(),\n * });\n *\n * api.service.operation({\n * parameters: { path: { id: 1 } },\n * });\n * ```\n */\nexport function qraftAPIClient<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends PartialServiceMethods,\n>(\n services: Services,\n callbacks: Callbacks,\n options: CreateAPIQueryClientOptions\n): APIQueryClientServices<Services, Callbacks>;\n\n/**\n * Creates a QueryClient compatible API Client which contains\n * only state management manipulations such as `useIsMutating`,\n * `setQueryData`, `getQueryData` and `invalidateQueries`.\n *\n * @example Invalidating queries with QueryClient\n * ```ts\n * const api = qraftAPIClient(services, callbacks, {\n * // an instance of QueryClient shared between all clients\n * queryClient: sharedQueryClient\n * });\n *\n * api.service.operation.invalidateQueries({\n * parameters: { path: { id: 1 } },\n * });\n */\nexport function qraftAPIClient<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends PartialServiceMethods,\n>(\n services: Services,\n callbacks: Callbacks,\n options: CreateAPIBasicQueryClientOptions\n): APIBasicQueryClientServices<Services, Callbacks>;\n\n/**\n * Creates a basic API Client which contains all hooks and methods\n * that don't require an explicitly provided QueryClient.\n * Hooks like `useQuery` and `useMutation` will automatically retrieve\n * the QueryClient from the `<QueryClientProvider />` context.\n *\n * @example Fetching data with QueryClient from context\n * ```ts\n * const api = qraftAPIClient(services, callbacks, {\n * requestFn: requestFn,\n * baseUrl: 'https://api.example.com',\n * });\n *\n * // QueryClient will be retrieved from React context\n * api.service.operation.useQuery({\n * parameters: { path: { id: 1 } },\n * });\n * ```\n *\n * @example Fetching data without QueryClient\n * ```ts\n * const api = qraftAPIClient(services, callbacks, {\n * requestFn: requestFn,\n * baseUrl: 'https://api.example.com',\n * });\n *\n * api.service.operation({\n * parameters: { path: { id: 1 } },\n * });\n * ```\n */\nexport function qraftAPIClient<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends PartialServiceMethods,\n>(\n services: Services,\n callbacks: Callbacks,\n options: CreateAPIBasicClientOptions\n): APIBasicClientServices<Services, Callbacks>;\n\n/**\n * Creates a utility API Client which contains utility operations\n * such as `getQueryKey`, `getInfiniteQueryKey`, `getMutationKey` and state hooks\n * like `useIsFetching` and `useMutationData`.\n *\n * @example Using state hooks\n * ```ts\n * const api = qraftAPIClient(services, callbacks);\n *\n * // Check if any query is currently fetching\n * const isFetching = api.service.operation.useIsFetching();\n * ```\n *\n * @example Getting query keys with utility client\n * ```ts\n * const api = qraftAPIClient(services, callbacks);\n *\n * api.service.operation.getQueryKey({\n * parameters: { path: { id: 1 } },\n * });\n * ```\n */\nexport function qraftAPIClient<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends Pick<PartialServiceMethods, UtilityOperationCallbacks>,\n>(\n services: Services,\n callbacks: Callbacks\n): APIUtilityClientServices<Services, Callbacks>;\n\nexport function qraftAPIClient<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends PartialServiceMethods,\n>(\n services: Services,\n callbacks: Callbacks,\n options?: CreateAPIClientOptions\n):\n | APIQueryClientServices<Services, Callbacks>\n | APIDefaultQueryClientServices<Services>\n | APIBasicQueryClientServices<Services, Callbacks>\n | APIUtilityClientServices<Services, Callbacks> {\n const stringTag = 'QraftAPIClient';\n\n const toString = (path: (symbol | string)[]): string => {\n return `[${stringTag}${path.length ? ' ' + path.join('.') : ''}]`;\n };\n\n const primitiveMethods = {\n [Symbol.toPrimitive](\n this: undefined,\n path: (string | symbol)[],\n hint: 'string' | 'number' | 'default'\n ): unknown {\n if (hint === 'number') return NaN;\n if (hint === 'string') return toString(path);\n return getByPath(services, path);\n },\n valueOf(this: undefined, path: (string | symbol)[]): unknown {\n return getByPath(services, path);\n },\n toJSON(this: undefined, path: (string | symbol)[]): string {\n return JSON.stringify(getByPath(services, path));\n },\n toString(this: undefined, path: (string | symbol)[]): string {\n return toString(path);\n },\n };\n\n return createRecursiveProxy(\n function getCallback(getPath, key) {\n if (Object.prototype.hasOwnProperty.call(primitiveMethods, key)) {\n return primitiveMethods[key as keyof typeof primitiveMethods].bind(\n undefined,\n getPath\n );\n } else if (key === Symbol.toStringTag) {\n return stringTag;\n }\n\n if (key !== 'schema') return;\n if (\n getPath.length !== 2 &&\n !('schema' in services) &&\n getPath.length !== 1 &&\n !(services[getPath[0] as never] as OperationsDeclaration<any>)?.schema\n )\n return;\n\n const serviceOperation = getByPath(services, getPath);\n if (!isServiceOperation(serviceOperation))\n throw new Error(`Service operation not found: ${getPath.join('.')}`);\n return serviceOperation.schema;\n },\n function applyCallback(applyPath, args) {\n const { path, callbackName } = extractCallbackDetails(\n applyPath,\n services\n );\n\n assertValidCallbackName(callbackName, callbacks);\n\n const serviceOperation = getByPath(services, path);\n\n if (!isServiceOperation(serviceOperation))\n throw new Error(`Service operation not found: ${path.join('.')}`);\n\n if (\n callbackName !== 'operationInvokeFn' &&\n callbackName !== 'getQueryKey' &&\n callbackName !== 'getMutationKey' &&\n callbackName !== 'getInfiniteQueryKey' &&\n callbackName !== 'useInfiniteQuery' &&\n callbackName !== 'useQueries' &&\n callbackName !== 'useQuery' &&\n callbackName !== 'useSuspenseInfiniteQuery' &&\n callbackName !== 'useSuspenseQueries' &&\n callbackName !== 'useSuspenseQuery' &&\n callbackName !== 'useIsFetching' &&\n callbackName !== 'useMutation' &&\n callbackName !== 'useIsMutating' &&\n callbackName !== 'useMutationState'\n )\n if (!options || !('queryClient' in options && options.queryClient))\n throw new Error(\n `'qraft.<service>.<operation>.${String(callbackName)}()' requires 'queryClient' in 'createAPIClient(...)' options.`\n );\n\n // @ts-expect-error - Too complex union type\n return callbacks[callbackName](options, serviceOperation.schema, args);\n },\n []\n ) as never;\n}\n\nfunction assertValidCallbackName<\n Callbacks extends Record<string, (...rest: any[]) => unknown>,\n>(\n callbackName: string | number | symbol,\n callbacks: Callbacks\n): asserts callbackName is keyof Callbacks {\n if (!(callbackName in callbacks)) {\n if (\n (callbackName as InvokeOperationCallback) ===\n ('operationInvokeFn' satisfies InvokeOperationCallback)\n )\n throw new Error(\n `Callback 'operationInvokeFn' is required for executing 'qraft.<service>.<operation>()', but it is not provided in the 'callbacks' object.`\n );\n throw new Error(\n `Callback for 'qraft.<service>.<operation>.${String(callbackName)}()' is not provided in the 'callbacks' object.`\n );\n }\n}\n\n/**\n * Extracts Callback details from the applyPath\n */\nfunction extractCallbackDetails(\n applyPath: (string | symbol)[],\n services: UnionServiceOperationsDeclaration<any>\n) {\n // client.<service>.<operation>() [OperationInvokeFn]\n // <service>.<operation>() [OperationInvokeFn]\n // client() [OperationInvokeFn]\n // client()\n if (\n (applyPath.length === 2 &&\n !(services[applyPath[0] as never] as OperationsDeclaration<any>)\n ?.schema) ||\n (applyPath.length === 0 && 'schema' in services)\n ) {\n return {\n path: applyPath,\n callbackName: 'operationInvokeFn' satisfies InvokeOperationCallback,\n };\n } else {\n // client.<service>.<operation>.<method>()\n // <service>.<operation>.<method>()\n // client.<method>()\n return {\n path: applyPath.slice(0, -1),\n // The last arg is for instance `.useMutation` or `.useQuery()`\n callbackName: applyPath[applyPath.length - 1],\n };\n }\n}\n\nfunction isServiceOperation(\n input: unknown\n): input is { schema: OperationSchema } {\n return input !== null && typeof input === 'object' && 'schema' in input;\n}\n\nfunction getByPath(obj: Record<string, unknown>, path: (string | symbol)[]) {\n return path.reduce<unknown>((acc, key) => {\n if (acc && typeof acc === 'object' && key in acc)\n return acc[key as keyof typeof acc];\n }, obj);\n}\n\ntype ServiceMethods = typeof callbacks;\n\ntype PartialServiceMethods = Partial<ServiceMethods>;\n\ntype OperationDeclaration = {\n schema: OperationSchema;\n [QraftServiceOperationsToken]: Partial<\n Record<\n | QueryOperationCallbacks\n | QueryOperationStateCallbacks\n | MutationOperationHookCallbacks\n | MutationOperationStateCallbacks\n | UtilityOperationCallbacks,\n any\n >\n > & {\n types: any;\n schema: OperationSchema;\n (...args: any[]): any;\n };\n};\n\ntype OperationsDeclaration<Operations> = {\n [operation in keyof Operations]: OperationDeclaration;\n};\n\ntype ServicesDeclaration<Services> = {\n [service in keyof Services]: OperationsDeclaration<Services[service]>;\n};\n\nexport type UnionServiceOperationsDeclaration<Services> =\n | ServicesDeclaration<Services>\n | OperationsDeclaration<Services>\n | OperationDeclaration;\n\nexport type QueryOperationHookCallbacks = Extract<\n keyof ServiceMethods,\n | 'useInfiniteQuery'\n | 'useQueries'\n | 'useQuery'\n | 'useSuspenseInfiniteQuery'\n | 'useSuspenseQueries'\n | 'useSuspenseQuery'\n>;\n\ntype QueryOperationCallbacks =\n | Extract<\n keyof ServiceMethods,\n | 'fetchInfiniteQuery'\n | 'fetchQuery'\n | 'prefetchInfiniteQuery'\n | 'prefetchQuery'\n | 'refetchQueries'\n | 'ensureQueryData'\n | 'ensureInfiniteQueryData'\n >\n | QueryOperationHookCallbacks;\n\ntype QueryOperationStateHookCallbacks = Extract<\n keyof ServiceMethods,\n 'useIsFetching'\n>;\n\ntype QueryOperationStateCallbacks =\n | Extract<\n keyof ServiceMethods,\n | 'cancelQueries'\n | 'getInfiniteQueryData'\n | 'getInfiniteQueryState'\n | 'getQueriesData'\n | 'getQueryData'\n | 'getQueryState'\n | 'invalidateQueries'\n | 'isFetching'\n | 'removeQueries'\n | 'resetQueries'\n | 'setInfiniteQueryData'\n | 'setQueriesData'\n | 'setQueryData'\n >\n | QueryOperationStateHookCallbacks;\n\nexport type MutationOperationHookCallbacks = Extract<\n keyof ServiceMethods,\n 'useMutation'\n>;\n\ntype MutationOperationStateHookCallbacks = Extract<\n keyof ServiceMethods,\n 'useIsMutating' | 'useMutationState'\n>;\n\ntype MutationOperationStateCallbacks =\n | Extract<keyof ServiceMethods, 'getMutationCache' | 'isMutating'>\n | MutationOperationStateHookCallbacks;\n\ntype InvokeOperationCallback = Extract<\n keyof typeof operationInvokeModule,\n 'operationInvokeFn'\n>;\n\nexport type UtilityOperationCallbacks = Extract<\n keyof ServiceMethods,\n | 'getQueryKey'\n | 'getInfiniteQueryKey'\n | 'getMutationKey'\n | QueryOperationStateHookCallbacks\n | MutationOperationStateHookCallbacks\n>;\n\ntype OperationCallbackList =\n | QueryOperationCallbacks\n | QueryOperationStateCallbacks\n | MutationOperationHookCallbacks\n | MutationOperationStateCallbacks\n | InvokeOperationCallback\n | UtilityOperationCallbacks;\n\nexport type APIQueryClientServices<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends PartialServiceMethods,\n> = ServicesFilteredByCallbacks<\n Services,\n Extract<keyof Callbacks, OperationCallbackList>\n>;\n\nexport type APIDefaultQueryClientServices<\n Services extends UnionServiceOperationsDeclaration<Services>,\n> = Services extends OperationDeclaration\n ? Services[QraftServiceOperationsToken]\n : Services extends OperationsDeclaration<Services>\n ? {\n [operation in keyof Services]: Services[operation][QraftServiceOperationsToken];\n }\n : Services extends ServicesDeclaration<Services>\n ? {\n [service in keyof Services]: {\n [operation in keyof Services[service]]: Services[service][operation][QraftServiceOperationsToken];\n };\n }\n : never;\n\nexport type APIBasicQueryClientServices<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends PartialServiceMethods,\n> = ServicesFilteredByCallbacks<\n Services,\n Extract<\n keyof Callbacks,\n | QueryOperationStateCallbacks\n | MutationOperationStateCallbacks\n | UtilityOperationCallbacks\n >\n>;\n\nexport type APIBasicClientServices<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends PartialServiceMethods,\n> = ServicesFilteredByCallbacks<\n Services,\n Extract<\n keyof Callbacks,\n | InvokeOperationCallback\n | UtilityOperationCallbacks\n | QueryOperationHookCallbacks\n | QueryOperationStateHookCallbacks\n | MutationOperationStateHookCallbacks\n | MutationOperationHookCallbacks\n >\n>;\n\nexport type APIUtilityClientServices<\n Services extends UnionServiceOperationsDeclaration<Services>,\n Callbacks extends Pick<PartialServiceMethods, UtilityOperationCallbacks>,\n> = ServicesFilteredByUtilityCallbacks<\n Services,\n Extract<keyof Callbacks, UtilityOperationCallbacks>\n>;\n\nexport type ServicesFilteredByCallbacks<\n Services extends UnionServiceOperationsDeclaration<Services>,\n CallbackList extends OperationCallbackList,\n> = Services extends OperationDeclaration\n ? Pick<\n Services[QraftServiceOperationsToken],\n Extract<\n keyof Services[QraftServiceOperationsToken],\n CallbackList | 'schema' | 'types'\n >\n > &\n OperationInvokeFn<Services[QraftServiceOperationsToken], CallbackList>\n : Services extends OperationsDeclaration<Services>\n ? {\n [operation in keyof Services]: Pick<\n Services[operation][QraftServiceOperationsToken],\n Extract<\n keyof Services[operation][QraftServiceOperationsToken],\n CallbackList | 'schema' | 'types'\n >\n > &\n OperationInvokeFn<\n Services[operation][QraftServiceOperationsToken],\n CallbackList\n >;\n }\n : Services extends ServicesDeclaration<Services>\n ? {\n [serviceName in keyof Services]: {\n [operation in keyof Services[serviceName]]: Pick<\n Services[serviceName][operation][QraftServiceOperationsToken],\n Extract<\n keyof Services[serviceName][operation][QraftServiceOperationsToken],\n CallbackList | 'schema' | 'types'\n >\n > &\n OperationInvokeFn<\n Services[serviceName][operation][QraftServiceOperationsToken],\n CallbackList\n >;\n };\n }\n : never;\n\ntype OperationInvokeFn<\n InvokeFn extends (...args: any[]) => any,\n CallbackList extends OperationCallbackList,\n> = InvokeOperationCallback extends CallbackList\n ? InvokeFn extends (...args: infer Args) => infer Result\n ? { (...args: Args): Result }\n : Record<string, never>\n : Record<string, never>;\n\ntype ServicesFilteredByUtilityCallbacks<\n Services extends UnionServiceOperationsDeclaration<Services>,\n CallbackList extends UtilityOperationCallbacks,\n> = Services extends OperationDeclaration\n ? Pick<\n Services[QraftServiceOperationsToken],\n Extract<\n keyof Services[QraftServiceOperationsToken],\n CallbackList | 'schema' | 'types'\n >\n >\n : Services extends OperationsDeclaration<Services>\n ? {\n [operation in keyof Services]: Pick<\n Services[operation][QraftServiceOperationsToken],\n Extract<\n keyof Services[operation][QraftServiceOperationsToken],\n CallbackList | 'schema' | 'types'\n >\n >;\n }\n : Services extends ServicesDeclaration<Services>\n ? {\n [serviceName in keyof Services]: {\n [operation in keyof Services[serviceName]]: Pick<\n Services[serviceName][operation][QraftServiceOperationsToken],\n Extract<\n keyof Services[serviceName][operation][QraftServiceOperationsToken],\n CallbackList | 'schema' | 'types'\n >\n >;\n };\n }\n : never;\n"],"names":["qraftAPIClient","services","callbacks","options","stringTag","toString","path","length","join","primitiveMethods","Symbol","toPrimitive","hint","NaN","getByPath","valueOf","toJSON","JSON","stringify","createRecursiveProxy","getCallback","getPath","key","Object","prototype","hasOwnProperty","call","bind","undefined","toStringTag","schema","serviceOperation","isServiceOperation","Error","applyCallback","applyPath","args","callbackName","extractCallbackDetails","assertValidCallbackName","queryClient","String","slice","input","obj","reduce","acc"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"qraftPredefinedParametersRequestFn.cjs","sources":["../../src/qraftPredefinedParametersRequestFn.ts"],"sourcesContent":["import type {\n OperationSchema,\n RequestFn,\n RequestFnInfo,\n RequestFnOptions,\n RequestFnResponse,\n} from './lib/requestFn.js';\nimport { shelfMerge } from './lib/shelfMerge.js';\n\nexport type QraftPredefinedParameterValue<TValue> =\n | TValue\n | (() => Promise<TValue | undefined>)\n | undefined;\n\nexport type InputPredefinedParametersItem<TValue> = {\n requestPattern: string;\n parameters: Array<{\n in: 'header' | 'query' | 'cookie';\n name: string;\n value: QraftPredefinedParameterValue<TValue>;\n }>;\n};\n\ntype TargetPredefinedParametersMethods =\n | 'get'\n | 'post'\n | 'put'\n | 'patch'\n | 'delete'\n | 'options'\n | 'head'\n | 'trace';\n\nexport type TargetPredefinedParametersItem = {\n requestPattern: string;\n methods:\n | Array<TargetPredefinedParametersMethods>\n | ReadonlyArray<Readonly<TargetPredefinedParametersMethods>>;\n paths: Array<string> | ReadonlyArray<Readonly<string>>;\n};\n\nexport function qraftPredefinedParametersRequestFn<\n TInputPredefinedParametersItem extends InputPredefinedParametersItem<any>,\n TData,\n TError,\n>(\n inputPredefinedParameters:\n | Array<TInputPredefinedParametersItem>\n | ReadonlyArray<Readonly<TInputPredefinedParametersItem>>,\n targetPredefinedParameters:\n | Array<TargetPredefinedParametersItem>\n | ReadonlyArray<Readonly<TargetPredefinedParametersItem>>,\n requestFn: RequestFn<TData, TError>\n): RequestFn<TData, TError> {\n return function predefinedParametersRequestFn(\n schema: OperationSchema,\n requestInfo: RequestFnInfo,\n options?: RequestFnOptions\n ): Promise<RequestFnResponse<TData, TError>> {\n const matchingInputPredefinedParameters =\n targetPredefinedParameters.flatMap((targetParameter) =>\n targetParameter.paths.includes(schema.url) &&\n (!targetParameter.methods.length ||\n targetParameter.methods.includes(schema.method))\n ? inputPredefinedParameters.filter(\n (predefinedParameter) =>\n predefinedParameter.requestPattern ===\n targetParameter.requestPattern\n )\n : []\n );\n\n if (!matchingInputPredefinedParameters?.length)\n return requestFn(schema, requestInfo, options);\n\n return Promise.all(\n matchingInputPredefinedParameters.map((item) =>\n resolveQraftPredefinedParameters(item.parameters)\n )\n ).then((resolvedPredefinedParameters) => {\n const mergedParameters = resolvedPredefinedParameters.reduce(\n (acc, item) => {\n acc = shelfMerge(2, acc, item);\n return acc;\n },\n {}\n );\n\n return requestFn(\n schema,\n {\n ...requestInfo,\n parameters: shelfMerge(2, mergedParameters, requestInfo.parameters),\n },\n options\n );\n });\n };\n}\n\nasync function resolveQraftPredefinedParameters<T>(\n predefinedParameters: InputPredefinedParametersItem<T>['parameters']\n) {\n return Promise.all(\n predefinedParameters.map(async (predefinedParameter) => {\n return {\n ...predefinedParameter,\n value: await resolveQraftPredefinedParameterValue(\n predefinedParameter.value\n ),\n };\n })\n ).then((resolvedPredefinedParameters) =>\n resolvedPredefinedParameters\n .filter(\n (resolvedPredefinedParameter) =>\n resolvedPredefinedParameter.value !== undefined\n )\n .reduce(\n (acc, resolvedPredefinedParameter) => {\n acc[resolvedPredefinedParameter.in] =\n acc[resolvedPredefinedParameter.in] ?? {};\n\n acc[resolvedPredefinedParameter.in][\n resolvedPredefinedParameter.name\n ] = resolvedPredefinedParameter.value;\n\n return acc;\n },\n {} as Record<string, Record<string, unknown>>\n )\n );\n}\n\ntype QraftPredefinedParameterResolvedValue<TData> = TData extends () => Promise<\n infer TAsyncData\n>\n ? TAsyncData\n : TData;\n\nasync function resolveQraftPredefinedParameterValue<TData>(\n value: QraftPredefinedParameterValue<TData>\n): Promise<QraftPredefinedParameterResolvedValue<TData>> {\n if (value && typeof value === 'function')\n return (await (\n value as () => Promise<TData | undefined>\n )()) as QraftPredefinedParameterResolvedValue<TData>;\n return value as QraftPredefinedParameterResolvedValue<TData>;\n}\n"],"names":["qraftPredefinedParametersRequestFn","inputPredefinedParameters","targetPredefinedParameters","requestFn","predefinedParametersRequestFn","schema","requestInfo","options","matchingInputPredefinedParameters","flatMap","targetParameter","paths","includes","url","methods","length","method","filter","predefinedParameter","requestPattern","Promise","all","map","item","resolveQraftPredefinedParameters","parameters","then","resolvedPredefinedParameters","mergedParameters","reduce","acc","shelfMerge","predefinedParameters","value","resolveQraftPredefinedParameterValue","resolvedPredefinedParameter","undefined","in","name"],"mappings":";;;;AAyCO,SAASA,kCAKdC,CAAAA,yBAE2D,EAC3DC,0BAE2D,EAC3DC,SAAmC,EAAA;AAEnC,IAAA,OAAO,SAASC,6BACdC,CAAAA,MAAuB,EACvBC,WAA0B,EAC1BC,OAA0B,EAAA;AAE1B,QAAA,MAAMC,oCACJN,0BAA2BO,CAAAA,OAAO,CAAC,CAACC,eAAAA,GAClCA,gBAAgBC,KAAK,CAACC,QAAQ,CAACP,OAAOQ,GAAG,CAAA,KACxC,CAACH,eAAAA,CAAgBI,OAAO,CAACC,MAAM,IAC9BL,eAAAA,CAAgBI,OAAO,CAACF,QAAQ,CAACP,MAAOW,CAAAA,MAAM,CAAA,CAC5Cf,GAAAA,yBAAAA,CAA0BgB,MAAM,CAC9B,CAACC,sBACCA,mBAAoBC,CAAAA,cAAc,KAClCT,eAAgBS,CAAAA,cAAc,IAElC,EAAE,CAAA,CAAA;AAGV,QAAA,IAAI,CAACX,iCAAmCO,EAAAA,MAAAA,EACtC,OAAOZ,SAAAA,CAAUE,QAAQC,WAAaC,EAAAA,OAAAA,CAAAA,CAAAA;AAExC,QAAA,OAAOa,OAAQC,CAAAA,GAAG,CAChBb,iCAAAA,CAAkCc,GAAG,CAAC,CAACC,IACrCC,GAAAA,gCAAAA,CAAiCD,IAAKE,CAAAA,UAAU,CAElDC,CAAAA,CAAAA,CAAAA,IAAI,CAAC,CAACC,4BAAAA,GAAAA;AACN,YAAA,MAAMC,gBAAmBD,GAAAA,4BAAAA,CAA6BE,MAAM,CAC1D,CAACC,GAAKP,EAAAA,IAAAA,GAAAA;gBACJO,GAAMC,GAAAA,qBAAAA,CAAW,GAAGD,GAAKP,EAAAA,IAAAA,CAAAA,CAAAA;gBACzB,OAAOO,GAAAA,CAAAA;AACT,aAAA,EACA,EAAC,CAAA,CAAA;AAGH,YAAA,OAAO3B,UACLE,MACA,EAAA;AACE,gBAAA,GAAGC,WAAW;AACdmB,gBAAAA,UAAAA,EAAYM,qBAAW,CAAA,CAAA,EAAGH,gBAAkBtB,EAAAA,WAAAA,CAAYmB,UAAU,CAAA;aAEpElB,EAAAA,OAAAA,CAAAA,CAAAA;AAEJ,SAAA,CAAA,CAAA;AACF,KAAA,CAAA;AACF,CAAA;AAEA,eAAeiB,iCACbQ,oBAAoE,EAAA;AAEpE,IAAA,OAAOZ,QAAQC,GAAG,CAChBW,oBAAqBV,CAAAA,GAAG,CAAC,OAAOJ,mBAAAA,GAAAA;QAC9B,OAAO;AACL,YAAA,GAAGA,mBAAmB;YACtBe,KAAO,EAAA,MAAMC,oCACXhB,CAAAA,mBAAAA,CAAoBe,KAAK,CAAA;AAE7B,SAAA,CAAA;AACF,KAAA,CAAA,CAAA,CACAP,IAAI,CAAC,CAACC,4BACNA,GAAAA,4BAAAA,CACGV,MAAM,CACL,CAACkB,2BACCA,GAAAA,2BAAAA,CAA4BF,KAAK,KAAKG,SAAAA,CAAAA,CAEzCP,MAAM,CACL,CAACC,GAAKK,EAAAA,2BAAAA,GAAAA;YACJL,GAAG,CAACK,2BAA4BE,CAAAA,EAAE,CAAC,GACjCP,GAAG,CAACK,2BAA4BE,CAAAA,EAAE,CAAC,IAAI,EAAC,CAAA;YAE1CP,GAAG,CAACK,2BAA4BE,CAAAA,EAAE,CAAC,CACjCF,4BAA4BG,IAAI,CACjC,GAAGH,2BAAAA,CAA4BF,KAAK,CAAA;YAErC,OAAOH,GAAAA,CAAAA;AACT,SAAA,EACA,EAAC,CAAA,CAAA,CAAA;AAGT,CAAA;AAQA,eAAeI,qCACbD,KAA2C,EAAA;AAE3C,IAAA,IAAIA,SAAS,OAAOA,KAAAA,KAAU,UAC5B,EAAA,OAAQ,MAAM,KACZA,EAAAA,CAAAA;IAEJ,OAAOA,KAAAA,CAAAA;AACT;;;;"}
1
+ {"version":3,"file":"qraftPredefinedParametersRequestFn.cjs","sources":["../../src/qraftPredefinedParametersRequestFn.ts"],"sourcesContent":["import type {\n OperationSchema,\n RequestFn,\n RequestFnInfo,\n RequestFnOptions,\n RequestFnResponse,\n} from './lib/requestFn.js';\nimport { shelfMerge } from './lib/shelfMerge.js';\n\nexport type QraftPredefinedParameterValue<TValue> =\n | TValue\n | (() => Promise<TValue | undefined>)\n | undefined;\n\nexport type InputPredefinedParametersItem<TValue> = {\n requestPattern: string;\n parameters: Array<{\n in: 'header' | 'query' | 'cookie';\n name: string;\n value: QraftPredefinedParameterValue<TValue>;\n }>;\n};\n\ntype TargetPredefinedParametersMethods =\n | 'get'\n | 'post'\n | 'put'\n | 'patch'\n | 'delete'\n | 'options'\n | 'head'\n | 'trace';\n\nexport type TargetPredefinedParametersItem = {\n requestPattern: string;\n methods:\n | Array<TargetPredefinedParametersMethods>\n | ReadonlyArray<Readonly<TargetPredefinedParametersMethods>>;\n paths: Array<string> | ReadonlyArray<Readonly<string>>;\n};\n\nexport function qraftPredefinedParametersRequestFn<\n TInputPredefinedParametersItem extends InputPredefinedParametersItem<any>,\n TData,\n TError,\n>(\n inputPredefinedParameters:\n | Array<TInputPredefinedParametersItem>\n | ReadonlyArray<Readonly<TInputPredefinedParametersItem>>,\n targetPredefinedParameters:\n | Array<TargetPredefinedParametersItem>\n | ReadonlyArray<Readonly<TargetPredefinedParametersItem>>,\n requestFn: RequestFn<TData, TError>\n): RequestFn<TData, TError> {\n return function predefinedParametersRequestFn(\n schema: OperationSchema,\n requestInfo: RequestFnInfo,\n options?: RequestFnOptions\n ): Promise<RequestFnResponse<TData, TError>> {\n const matchingInputPredefinedParameters =\n targetPredefinedParameters.flatMap((targetParameter) =>\n targetParameter.paths.includes(schema.url) &&\n (!targetParameter.methods.length ||\n targetParameter.methods.includes(schema.method))\n ? inputPredefinedParameters.filter(\n (predefinedParameter) =>\n predefinedParameter.requestPattern ===\n targetParameter.requestPattern\n )\n : []\n );\n\n if (!matchingInputPredefinedParameters?.length)\n return requestFn(schema, requestInfo, options);\n\n return Promise.all(\n matchingInputPredefinedParameters.map((item) =>\n resolveQraftPredefinedParameters(item.parameters)\n )\n ).then((resolvedPredefinedParameters) => {\n const mergedParameters = resolvedPredefinedParameters.reduce(\n (acc, item) => {\n acc = shelfMerge(2, acc, item);\n return acc;\n },\n {}\n );\n\n return requestFn(\n schema,\n {\n ...requestInfo,\n parameters: shelfMerge(2, mergedParameters, requestInfo.parameters),\n },\n options\n );\n });\n };\n}\n\nasync function resolveQraftPredefinedParameters<T>(\n predefinedParameters: InputPredefinedParametersItem<T>['parameters']\n) {\n return Promise.all(\n predefinedParameters.map(async (predefinedParameter) => {\n return {\n ...predefinedParameter,\n value: await resolveQraftPredefinedParameterValue(\n predefinedParameter.value\n ),\n };\n })\n ).then((resolvedPredefinedParameters) =>\n resolvedPredefinedParameters\n .filter(\n (resolvedPredefinedParameter) =>\n resolvedPredefinedParameter.value !== undefined\n )\n .reduce(\n (acc, resolvedPredefinedParameter) => {\n acc[resolvedPredefinedParameter.in] =\n acc[resolvedPredefinedParameter.in] ?? {};\n\n acc[resolvedPredefinedParameter.in][\n resolvedPredefinedParameter.name\n ] = resolvedPredefinedParameter.value;\n\n return acc;\n },\n {} as Record<string, Record<string, unknown>>\n )\n );\n}\n\ntype QraftPredefinedParameterResolvedValue<TData> = TData extends () => Promise<\n infer TAsyncData\n>\n ? TAsyncData\n : TData;\n\nasync function resolveQraftPredefinedParameterValue<TData>(\n value: QraftPredefinedParameterValue<TData>\n): Promise<QraftPredefinedParameterResolvedValue<TData>> {\n if (value && typeof value === 'function')\n return (await (\n value as () => Promise<TData | undefined>\n )()) as QraftPredefinedParameterResolvedValue<TData>;\n return value as QraftPredefinedParameterResolvedValue<TData>;\n}\n"],"names":["qraftPredefinedParametersRequestFn","inputPredefinedParameters","targetPredefinedParameters","requestFn","predefinedParametersRequestFn","schema","requestInfo","options","matchingInputPredefinedParameters","flatMap","targetParameter","paths","includes","url","methods","length","method","filter","predefinedParameter","requestPattern","Promise","all","map","item","resolveQraftPredefinedParameters","parameters","then","resolvedPredefinedParameters","mergedParameters","reduce","acc","shelfMerge","predefinedParameters","value","resolveQraftPredefinedParameterValue","resolvedPredefinedParameter","undefined","in","name"],"mappings":";;;;AAyCO,SAASA,kCAAAA,CAKdC,yBAE2D,EAC3DC,0BAE2D,EAC3DC,SAAmC,EAAA;AAEnC,IAAA,OAAO,SAASC,6BAAAA,CACdC,MAAuB,EACvBC,WAA0B,EAC1BC,OAA0B,EAAA;AAE1B,QAAA,MAAMC,oCACJN,0BAAAA,CAA2BO,OAAO,CAAC,CAACC,eAAAA,GAClCA,gBAAgBC,KAAK,CAACC,QAAQ,CAACP,OAAOQ,GAAG,CAAA,KACxC,CAACH,eAAAA,CAAgBI,OAAO,CAACC,MAAM,IAC9BL,eAAAA,CAAgBI,OAAO,CAACF,QAAQ,CAACP,MAAAA,CAAOW,MAAM,CAAA,CAAA,GAC5Cf,yBAAAA,CAA0BgB,MAAM,CAC9B,CAACC,sBACCA,mBAAAA,CAAoBC,cAAc,KAClCT,eAAAA,CAAgBS,cAAc,IAElC,EAAE,CAAA;AAGV,QAAA,IAAI,CAACX,iCAAAA,EAAmCO,MAAAA,EACtC,OAAOZ,SAAAA,CAAUE,QAAQC,WAAAA,EAAaC,OAAAA,CAAAA;AAExC,QAAA,OAAOa,OAAAA,CAAQC,GAAG,CAChBb,iCAAAA,CAAkCc,GAAG,CAAC,CAACC,IAAAA,GACrCC,gCAAAA,CAAiCD,IAAAA,CAAKE,UAAU,CAAA,CAAA,CAAA,CAElDC,IAAI,CAAC,CAACC,4BAAAA,GAAAA;AACN,YAAA,MAAMC,gBAAAA,GAAmBD,4BAAAA,CAA6BE,MAAM,CAC1D,CAACC,GAAAA,EAAKP,IAAAA,GAAAA;gBACJO,GAAAA,GAAMC,qBAAAA,CAAW,GAAGD,GAAAA,EAAKP,IAAAA,CAAAA;gBACzB,OAAOO,GAAAA;AACT,YAAA,CAAA,EACA,EAAC,CAAA;AAGH,YAAA,OAAO3B,UACLE,MAAAA,EACA;AACE,gBAAA,GAAGC,WAAW;AACdmB,gBAAAA,UAAAA,EAAYM,qBAAAA,CAAW,CAAA,EAAGH,gBAAAA,EAAkBtB,WAAAA,CAAYmB,UAAU;aACpE,EACAlB,OAAAA,CAAAA;AAEJ,QAAA,CAAA,CAAA;AACF,IAAA,CAAA;AACF;AAEA,eAAeiB,iCACbQ,oBAAoE,EAAA;AAEpE,IAAA,OAAOZ,QAAQC,GAAG,CAChBW,oBAAAA,CAAqBV,GAAG,CAAC,OAAOJ,mBAAAA,GAAAA;QAC9B,OAAO;AACL,YAAA,GAAGA,mBAAmB;YACtBe,KAAAA,EAAO,MAAMC,oCAAAA,CACXhB,mBAAAA,CAAoBe,KAAK;AAE7B,SAAA;AACF,IAAA,CAAA,CAAA,CAAA,CACAP,IAAI,CAAC,CAACC,4BAAAA,GACNA,4BAAAA,CACGV,MAAM,CACL,CAACkB,2BAAAA,GACCA,2BAAAA,CAA4BF,KAAK,KAAKG,SAAAA,CAAAA,CAEzCP,MAAM,CACL,CAACC,GAAAA,EAAKK,2BAAAA,GAAAA;YACJL,GAAG,CAACK,2BAAAA,CAA4BE,EAAE,CAAC,GACjCP,GAAG,CAACK,2BAAAA,CAA4BE,EAAE,CAAC,IAAI,EAAC;YAE1CP,GAAG,CAACK,2BAAAA,CAA4BE,EAAE,CAAC,CACjCF,4BAA4BG,IAAI,CACjC,GAAGH,2BAAAA,CAA4BF,KAAK;YAErC,OAAOH,GAAAA;AACT,QAAA,CAAA,EACA,EAAC,CAAA,CAAA;AAGT;AAQA,eAAeI,qCACbD,KAA2C,EAAA;AAE3C,IAAA,IAAIA,SAAS,OAAOA,KAAAA,KAAU,UAAA,EAC5B,OAAQ,MAAM,KACZA,EAAAA;IAEJ,OAAOA,KAAAA;AACT;;;;"}