houdini 2.0.0-next.9 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/build/adapter/index.d.ts +2 -2
  2. package/build/adapter/index.js +6 -0
  3. package/build/cmd/generate.d.ts +5 -0
  4. package/build/cmd/generate.js +77 -0
  5. package/build/cmd/index.js +32 -0
  6. package/build/cmd/init.js +565 -0
  7. package/build/cmd/pullSchema.js +26 -0
  8. package/build/lib/ast.js +71 -0
  9. package/build/lib/codegen.d.ts +57 -0
  10. package/build/lib/codegen.js +617 -0
  11. package/build/lib/config.d.ts +240 -177
  12. package/build/lib/config.js +143 -0
  13. package/build/lib/constants.js +14 -0
  14. package/build/lib/database.d.ts +7 -0
  15. package/build/lib/database.js +624 -0
  16. package/build/lib/db.d.ts +13 -0
  17. package/build/lib/db.js +135 -0
  18. package/build/lib/deepMerge.js +23 -0
  19. package/build/lib/error.d.ts +16 -0
  20. package/build/lib/error.js +115 -0
  21. package/build/lib/fs.d.ts +9 -11
  22. package/build/lib/fs.js +245 -0
  23. package/build/lib/graphql.d.ts +5 -32
  24. package/build/lib/graphql.js +36 -0
  25. package/build/lib/imports.d.ts +29 -14
  26. package/build/lib/imports.js +66 -0
  27. package/build/lib/index.d.ts +17 -24
  28. package/build/lib/index.js +21 -0
  29. package/build/lib/logger.d.ts +12 -0
  30. package/build/lib/logger.js +45 -0
  31. package/build/lib/parse.d.ts +1 -2
  32. package/build/lib/parse.js +32 -0
  33. package/build/lib/path.d.ts +0 -1
  34. package/build/lib/path.js +44 -0
  35. package/build/lib/pipeline.d.ts +1 -1
  36. package/build/lib/pipeline.js +8 -0
  37. package/build/lib/plugins.d.ts +4 -0
  38. package/build/lib/plugins.js +88 -0
  39. package/build/lib/project.d.ts +19 -0
  40. package/build/lib/project.js +296 -0
  41. package/build/lib/schema.d.ts +1 -0
  42. package/build/lib/schema.js +61 -0
  43. package/build/lib/sleep.d.ts +1 -0
  44. package/build/lib/sleep.js +8 -0
  45. package/build/lib/types.d.ts +92 -303
  46. package/build/lib/types.js +37 -0
  47. package/build/lib/walk.d.ts +11 -6
  48. package/build/lib/walk.js +138 -0
  49. package/build/node/index.d.ts +44 -0
  50. package/build/node/index.js +402 -0
  51. package/build/oauth/index.d.ts +41 -0
  52. package/build/oauth/index.js +108 -0
  53. package/build/package.json +212 -0
  54. package/build/router/auth-token.d.ts +29 -0
  55. package/build/router/auth-token.js +168 -0
  56. package/build/{lib/router → router}/conventions.d.ts +10 -1
  57. package/build/router/conventions.js +165 -0
  58. package/build/{runtime-esm/router → router}/cookies.js +21 -21
  59. package/build/{runtime-esm/router → router}/jwt.js +8 -6
  60. package/build/{lib/router → router}/manifest.d.ts +2 -2
  61. package/build/router/manifest.js +279 -0
  62. package/build/{runtime/router → router}/match.d.ts +10 -10
  63. package/build/router/match.js +219 -0
  64. package/build/router/server.d.ts +57 -0
  65. package/build/router/server.js +500 -0
  66. package/build/{runtime/router → router}/session.d.ts +8 -3
  67. package/build/router/session.js +338 -0
  68. package/build/router/types.d.ts +44 -0
  69. package/build/runtime/cache/benchmarks/cache.bench.d.ts +1 -0
  70. package/build/runtime/cache/benchmarks/cache.bench.js +943 -0
  71. package/build/runtime/cache/gc.d.ts +2 -1
  72. package/build/{runtime-esm → runtime}/cache/gc.js +4 -1
  73. package/build/runtime/cache/index.d.ts +173 -3
  74. package/build/{runtime-esm/cache/cache.js → runtime/cache/index.js} +197 -70
  75. package/build/runtime/cache/lists.d.ts +9 -4
  76. package/build/{runtime-esm → runtime}/cache/lists.js +116 -27
  77. package/build/runtime/cache/staleManager.d.ts +2 -1
  78. package/build/{runtime-esm → runtime}/cache/staleManager.js +6 -2
  79. package/build/runtime/cache/storage.d.ts +5 -2
  80. package/build/{runtime-esm → runtime}/cache/storage.js +126 -54
  81. package/build/{runtime-esm → runtime}/cache/stuff.js +4 -3
  82. package/build/runtime/cache/subscription.d.ts +23 -9
  83. package/build/{runtime-esm → runtime}/cache/subscription.js +103 -65
  84. package/build/runtime/{client/index.d.ts → client.d.ts} +15 -22
  85. package/build/runtime/client.js +86 -0
  86. package/build/runtime/coerce.d.ts +4 -0
  87. package/build/runtime/coerce.js +31 -0
  88. package/build/runtime/config.d.ts +20 -0
  89. package/build/runtime/config.js +88 -0
  90. package/build/runtime/{lib/constants.d.ts → constants.d.ts} +1 -1
  91. package/build/runtime/{client/documentStore.d.ts → documentStore.d.ts} +18 -11
  92. package/build/{runtime-esm/client → runtime}/documentStore.js +53 -56
  93. package/build/runtime/endpoint.d.ts +14 -0
  94. package/build/runtime/endpoint.js +29 -0
  95. package/build/{runtime-cjs/lib → runtime}/flatten.d.ts +1 -1
  96. package/build/runtime/formData.d.ts +24 -0
  97. package/build/runtime/formData.js +93 -0
  98. package/build/runtime/index.d.ts +16 -8
  99. package/build/runtime/index.js +54 -0
  100. package/build/{runtime-cjs/lib → runtime}/key.d.ts +1 -1
  101. package/build/{runtime-esm/lib → runtime}/key.js +4 -4
  102. package/build/{runtime-esm/lib → runtime}/log.js +3 -3
  103. package/build/runtime/multipart.d.ts +8 -0
  104. package/build/runtime/multipart.js +49 -0
  105. package/build/{runtime-cjs/lib → runtime}/pageInfo.d.ts +3 -3
  106. package/build/{runtime-esm/lib → runtime}/pageInfo.js +2 -2
  107. package/build/{runtime-cjs/lib → runtime}/pagination.d.ts +12 -8
  108. package/build/{runtime-esm/lib → runtime}/pagination.js +157 -21
  109. package/build/{runtime-cjs/lib → runtime}/scalars.d.ts +6 -6
  110. package/build/{runtime-esm/lib → runtime}/scalars.js +10 -43
  111. package/build/{runtime-cjs/lib → runtime}/selection.d.ts +1 -1
  112. package/build/{runtime-esm/lib → runtime}/selection.js +17 -2
  113. package/build/runtime/{lib/store.d.ts → store.d.ts} +1 -1
  114. package/build/{runtime-esm/lib → runtime}/store.js +2 -3
  115. package/build/runtime/{lib/types.d.ts → types.d.ts} +102 -101
  116. package/build/{runtime-esm/lib → runtime}/types.js +9 -14
  117. package/build/test/index.d.ts +6 -25
  118. package/build/test/index.js +329 -0
  119. package/build/test/package.json +1 -0
  120. package/build/vite/hmr.d.ts +26 -3
  121. package/build/vite/hmr.js +431 -0
  122. package/build/vite/houdini.d.ts +4 -10
  123. package/build/vite/houdini.js +134 -0
  124. package/build/vite/index.d.ts +13 -7
  125. package/build/vite/index.js +104 -0
  126. package/build/vite/package.json +1 -0
  127. package/build/vite/schema.d.ts +5 -3
  128. package/build/vite/schema.js +193 -0
  129. package/package.json +148 -57
  130. package/build/adapter-cjs/index.js +0 -33
  131. package/build/adapter-cjs/package.json +0 -1
  132. package/build/adapter-esm/index.js +0 -9
  133. package/build/cmd-cjs/index.js +0 -89299
  134. package/build/cmd-cjs/package.json +0 -1
  135. package/build/cmd-esm/index.js +0 -89303
  136. package/build/codegen/generators/artifacts/fieldKey.d.ts +0 -3
  137. package/build/codegen/generators/artifacts/index.d.ts +0 -17
  138. package/build/codegen/generators/artifacts/indexFile.d.ts +0 -2
  139. package/build/codegen/generators/artifacts/inputs.d.ts +0 -4
  140. package/build/codegen/generators/artifacts/operations.d.ts +0 -11
  141. package/build/codegen/generators/artifacts/selection.d.ts +0 -20
  142. package/build/codegen/generators/artifacts/utils.d.ts +0 -8
  143. package/build/codegen/generators/comments/jsdoc.d.ts +0 -2
  144. package/build/codegen/generators/definitions/enums.d.ts +0 -2
  145. package/build/codegen/generators/definitions/index.d.ts +0 -2
  146. package/build/codegen/generators/index.d.ts +0 -6
  147. package/build/codegen/generators/indexFile/index.d.ts +0 -2
  148. package/build/codegen/generators/persistedQueries/index.d.ts +0 -2
  149. package/build/codegen/generators/runtime/graphqlFunction.d.ts +0 -2
  150. package/build/codegen/generators/runtime/index.d.ts +0 -3
  151. package/build/codegen/generators/runtime/injectPlugins.d.ts +0 -7
  152. package/build/codegen/generators/runtime/pluginIndex.d.ts +0 -5
  153. package/build/codegen/generators/runtime/pluginRuntime.d.ts +0 -15
  154. package/build/codegen/generators/runtime/runtimeConfig.d.ts +0 -7
  155. package/build/codegen/generators/typescript/addReferencedInputTypes.d.ts +0 -4
  156. package/build/codegen/generators/typescript/documentTypes.d.ts +0 -2
  157. package/build/codegen/generators/typescript/imperativeTypeDef.d.ts +0 -2
  158. package/build/codegen/generators/typescript/index.d.ts +0 -2
  159. package/build/codegen/generators/typescript/inlineType.d.ts +0 -29
  160. package/build/codegen/generators/typescript/loadingState.d.ts +0 -8
  161. package/build/codegen/index.d.ts +0 -8
  162. package/build/codegen/transforms/addFields.d.ts +0 -2
  163. package/build/codegen/transforms/collectDefinitions.d.ts +0 -9
  164. package/build/codegen/transforms/componentFields.d.ts +0 -8
  165. package/build/codegen/transforms/fragmentVariables.d.ts +0 -17
  166. package/build/codegen/transforms/index.d.ts +0 -9
  167. package/build/codegen/transforms/list.d.ts +0 -9
  168. package/build/codegen/transforms/paginate.d.ts +0 -4
  169. package/build/codegen/transforms/runtimeScalars.d.ts +0 -2
  170. package/build/codegen/transforms/schema.d.ts +0 -2
  171. package/build/codegen/transforms/typename.d.ts +0 -2
  172. package/build/codegen/utils/commonjs.d.ts +0 -5
  173. package/build/codegen/utils/flattenSelections.d.ts +0 -11
  174. package/build/codegen/utils/index.d.ts +0 -4
  175. package/build/codegen/utils/moduleExport.d.ts +0 -4
  176. package/build/codegen/utils/murmur.d.ts +0 -9
  177. package/build/codegen/utils/objectIdentificationSelection.d.ts +0 -3
  178. package/build/codegen/utils/stripLoc.d.ts +0 -3
  179. package/build/codegen/validators/componentFields.d.ts +0 -2
  180. package/build/codegen/validators/index.d.ts +0 -5
  181. package/build/codegen/validators/noIDAlias.d.ts +0 -2
  182. package/build/codegen/validators/plugins.d.ts +0 -3
  183. package/build/codegen/validators/typeCheck.d.ts +0 -5
  184. package/build/codegen/validators/uniqueNames.d.ts +0 -2
  185. package/build/codegen-cjs/index.js +0 -74656
  186. package/build/codegen-cjs/package.json +0 -1
  187. package/build/codegen-esm/index.js +0 -74655
  188. package/build/lib/cleanupFiles.d.ts +0 -1
  189. package/build/lib/detectTools.d.ts +0 -16
  190. package/build/lib/introspection.d.ts +0 -3
  191. package/build/lib/plugin.d.ts +0 -2
  192. package/build/lib/router/index.d.ts +0 -9
  193. package/build/lib/router/server.d.ts +0 -7
  194. package/build/lib/router/types.d.ts +0 -23
  195. package/build/lib/typescript.d.ts +0 -20
  196. package/build/lib/watchAndRun.d.ts +0 -61
  197. package/build/lib-cjs/index.js +0 -79739
  198. package/build/lib-cjs/package.json +0 -1
  199. package/build/lib-esm/index.js +0 -79648
  200. package/build/runtime/cache/cache.d.ts +0 -169
  201. package/build/runtime/client/plugins/cache.d.ts +0 -9
  202. package/build/runtime/client/plugins/fetch.d.ts +0 -38
  203. package/build/runtime/client/plugins/fetchParams.d.ts +0 -9
  204. package/build/runtime/client/plugins/fragment.d.ts +0 -2
  205. package/build/runtime/client/plugins/index.d.ts +0 -9
  206. package/build/runtime/client/plugins/injectedPlugins.d.ts +0 -4
  207. package/build/runtime/client/plugins/mutation.d.ts +0 -2
  208. package/build/runtime/client/plugins/optimisticKeys.d.ts +0 -7
  209. package/build/runtime/client/plugins/query.d.ts +0 -2
  210. package/build/runtime/client/plugins/subscription.d.ts +0 -20
  211. package/build/runtime/client/plugins/test.d.ts +0 -15
  212. package/build/runtime/client/plugins/throwOnError.d.ts +0 -8
  213. package/build/runtime/client/utils/documentPlugins.d.ts +0 -3
  214. package/build/runtime/client/utils/index.d.ts +0 -1
  215. package/build/runtime/generated.d.ts +0 -5
  216. package/build/runtime/imports/config.d.ts +0 -3
  217. package/build/runtime/imports/pluginConfig.d.ts +0 -3
  218. package/build/runtime/lib/config.d.ts +0 -216
  219. package/build/runtime/lib/deepEquals.d.ts +0 -1
  220. package/build/runtime/lib/flatten.d.ts +0 -2
  221. package/build/runtime/lib/index.d.ts +0 -10
  222. package/build/runtime/lib/key.d.ts +0 -6
  223. package/build/runtime/lib/log.d.ts +0 -6
  224. package/build/runtime/lib/lru.d.ts +0 -52
  225. package/build/runtime/lib/pageInfo.d.ts +0 -7
  226. package/build/runtime/lib/pagination.d.ts +0 -27
  227. package/build/runtime/lib/scalars.d.ts +0 -14
  228. package/build/runtime/lib/selection.d.ts +0 -2
  229. package/build/runtime/public/cache.d.ts +0 -42
  230. package/build/runtime/public/index.d.ts +0 -1
  231. package/build/runtime/public/list.d.ts +0 -18
  232. package/build/runtime/public/record.d.ts +0 -40
  233. package/build/runtime/public/tests/test.d.ts +0 -156
  234. package/build/runtime/public/types.d.ts +0 -62
  235. package/build/runtime/router/cookies.d.ts +0 -41
  236. package/build/runtime/router/jwt.d.ts +0 -117
  237. package/build/runtime/router/server.d.ts +0 -24
  238. package/build/runtime/router/types.d.ts +0 -26
  239. package/build/runtime/server/index.d.ts +0 -17
  240. package/build/runtime-cjs/cache/cache.d.ts +0 -169
  241. package/build/runtime-cjs/cache/cache.js +0 -1077
  242. package/build/runtime-cjs/cache/constants.d.ts +0 -1
  243. package/build/runtime-cjs/cache/constants.js +0 -28
  244. package/build/runtime-cjs/cache/gc.d.ts +0 -10
  245. package/build/runtime-cjs/cache/gc.js +0 -74
  246. package/build/runtime-cjs/cache/index.d.ts +0 -3
  247. package/build/runtime-cjs/cache/index.js +0 -25
  248. package/build/runtime-cjs/cache/lists.d.ts +0 -89
  249. package/build/runtime-cjs/cache/lists.js +0 -467
  250. package/build/runtime-cjs/cache/staleManager.d.ts +0 -31
  251. package/build/runtime-cjs/cache/staleManager.js +0 -123
  252. package/build/runtime-cjs/cache/storage.d.ts +0 -110
  253. package/build/runtime-cjs/cache/storage.js +0 -451
  254. package/build/runtime-cjs/cache/stuff.d.ts +0 -2
  255. package/build/runtime-cjs/cache/stuff.js +0 -56
  256. package/build/runtime-cjs/cache/subscription.d.ts +0 -52
  257. package/build/runtime-cjs/cache/subscription.js +0 -349
  258. package/build/runtime-cjs/client/documentStore.d.ts +0 -107
  259. package/build/runtime-cjs/client/documentStore.js +0 -487
  260. package/build/runtime-cjs/client/index.d.ts +0 -50
  261. package/build/runtime-cjs/client/index.js +0 -162
  262. package/build/runtime-cjs/client/plugins/cache.d.ts +0 -9
  263. package/build/runtime-cjs/client/plugins/cache.js +0 -138
  264. package/build/runtime-cjs/client/plugins/fetch.d.ts +0 -38
  265. package/build/runtime-cjs/client/plugins/fetch.js +0 -210
  266. package/build/runtime-cjs/client/plugins/fetchParams.d.ts +0 -9
  267. package/build/runtime-cjs/client/plugins/fetchParams.js +0 -47
  268. package/build/runtime-cjs/client/plugins/fragment.d.ts +0 -2
  269. package/build/runtime-cjs/client/plugins/fragment.js +0 -77
  270. package/build/runtime-cjs/client/plugins/index.d.ts +0 -9
  271. package/build/runtime-cjs/client/plugins/index.js +0 -45
  272. package/build/runtime-cjs/client/plugins/injectedPlugins.d.ts +0 -4
  273. package/build/runtime-cjs/client/plugins/injectedPlugins.js +0 -25
  274. package/build/runtime-cjs/client/plugins/mutation.d.ts +0 -2
  275. package/build/runtime-cjs/client/plugins/mutation.js +0 -89
  276. package/build/runtime-cjs/client/plugins/optimisticKeys.d.ts +0 -7
  277. package/build/runtime-cjs/client/plugins/optimisticKeys.js +0 -324
  278. package/build/runtime-cjs/client/plugins/query.d.ts +0 -2
  279. package/build/runtime-cjs/client/plugins/query.js +0 -93
  280. package/build/runtime-cjs/client/plugins/subscription.d.ts +0 -20
  281. package/build/runtime-cjs/client/plugins/subscription.js +0 -114
  282. package/build/runtime-cjs/client/plugins/test.d.ts +0 -15
  283. package/build/runtime-cjs/client/plugins/test.js +0 -118
  284. package/build/runtime-cjs/client/plugins/throwOnError.d.ts +0 -8
  285. package/build/runtime-cjs/client/plugins/throwOnError.js +0 -47
  286. package/build/runtime-cjs/client/utils/documentPlugins.d.ts +0 -3
  287. package/build/runtime-cjs/client/utils/documentPlugins.js +0 -57
  288. package/build/runtime-cjs/client/utils/index.d.ts +0 -1
  289. package/build/runtime-cjs/client/utils/index.js +0 -22
  290. package/build/runtime-cjs/generated.d.ts +0 -5
  291. package/build/runtime-cjs/generated.js +0 -16
  292. package/build/runtime-cjs/imports/config.d.ts +0 -3
  293. package/build/runtime-cjs/imports/config.js +0 -24
  294. package/build/runtime-cjs/imports/pluginConfig.d.ts +0 -3
  295. package/build/runtime-cjs/imports/pluginConfig.js +0 -25
  296. package/build/runtime-cjs/index.d.ts +0 -8
  297. package/build/runtime-cjs/index.js +0 -61
  298. package/build/runtime-cjs/lib/config.d.ts +0 -216
  299. package/build/runtime-cjs/lib/config.js +0 -110
  300. package/build/runtime-cjs/lib/constants.d.ts +0 -6
  301. package/build/runtime-cjs/lib/constants.js +0 -38
  302. package/build/runtime-cjs/lib/deepEquals.js +0 -52
  303. package/build/runtime-cjs/lib/flatten.js +0 -41
  304. package/build/runtime-cjs/lib/index.d.ts +0 -10
  305. package/build/runtime-cjs/lib/index.js +0 -40
  306. package/build/runtime-cjs/lib/key.js +0 -41
  307. package/build/runtime-cjs/lib/log.js +0 -72
  308. package/build/runtime-cjs/lib/lru.js +0 -73
  309. package/build/runtime-cjs/lib/pageInfo.js +0 -79
  310. package/build/runtime-cjs/lib/pagination.js +0 -240
  311. package/build/runtime-cjs/lib/scalars.js +0 -147
  312. package/build/runtime-cjs/lib/selection.js +0 -66
  313. package/build/runtime-cjs/lib/store.d.ts +0 -19
  314. package/build/runtime-cjs/lib/store.js +0 -81
  315. package/build/runtime-cjs/lib/types.d.ts +0 -417
  316. package/build/runtime-cjs/lib/types.js +0 -104
  317. package/build/runtime-cjs/package.json +0 -1
  318. package/build/runtime-cjs/public/cache.d.ts +0 -42
  319. package/build/runtime-cjs/public/cache.js +0 -98
  320. package/build/runtime-cjs/public/index.d.ts +0 -1
  321. package/build/runtime-cjs/public/index.js +0 -28
  322. package/build/runtime-cjs/public/list.d.ts +0 -18
  323. package/build/runtime-cjs/public/list.js +0 -151
  324. package/build/runtime-cjs/public/record.d.ts +0 -40
  325. package/build/runtime-cjs/public/record.js +0 -94
  326. package/build/runtime-cjs/public/tests/test.d.ts +0 -156
  327. package/build/runtime-cjs/public/tests/test.js +0 -60
  328. package/build/runtime-cjs/public/types.d.ts +0 -62
  329. package/build/runtime-cjs/public/types.js +0 -16
  330. package/build/runtime-cjs/router/cookies.js +0 -168
  331. package/build/runtime-cjs/router/jwt.js +0 -168
  332. package/build/runtime-cjs/router/match.d.ts +0 -39
  333. package/build/runtime-cjs/router/match.js +0 -158
  334. package/build/runtime-cjs/router/server.d.ts +0 -24
  335. package/build/runtime-cjs/router/server.js +0 -117
  336. package/build/runtime-cjs/router/session.d.ts +0 -22
  337. package/build/runtime-cjs/router/session.js +0 -100
  338. package/build/runtime-cjs/router/types.d.ts +0 -26
  339. package/build/runtime-cjs/router/types.js +0 -16
  340. package/build/runtime-cjs/server/index.d.ts +0 -17
  341. package/build/runtime-cjs/server/index.js +0 -62
  342. package/build/runtime-esm/cache/cache.d.ts +0 -169
  343. package/build/runtime-esm/cache/constants.d.ts +0 -1
  344. package/build/runtime-esm/cache/gc.d.ts +0 -10
  345. package/build/runtime-esm/cache/index.d.ts +0 -3
  346. package/build/runtime-esm/cache/index.js +0 -5
  347. package/build/runtime-esm/cache/lists.d.ts +0 -89
  348. package/build/runtime-esm/cache/staleManager.d.ts +0 -31
  349. package/build/runtime-esm/cache/storage.d.ts +0 -110
  350. package/build/runtime-esm/cache/stuff.d.ts +0 -2
  351. package/build/runtime-esm/cache/subscription.d.ts +0 -52
  352. package/build/runtime-esm/client/documentStore.d.ts +0 -107
  353. package/build/runtime-esm/client/index.d.ts +0 -50
  354. package/build/runtime-esm/client/index.js +0 -130
  355. package/build/runtime-esm/client/plugins/cache.d.ts +0 -9
  356. package/build/runtime-esm/client/plugins/cache.js +0 -104
  357. package/build/runtime-esm/client/plugins/fetch.d.ts +0 -38
  358. package/build/runtime-esm/client/plugins/fetch.js +0 -184
  359. package/build/runtime-esm/client/plugins/fetchParams.d.ts +0 -9
  360. package/build/runtime-esm/client/plugins/fetchParams.js +0 -23
  361. package/build/runtime-esm/client/plugins/fragment.d.ts +0 -2
  362. package/build/runtime-esm/client/plugins/fragment.js +0 -53
  363. package/build/runtime-esm/client/plugins/index.d.ts +0 -9
  364. package/build/runtime-esm/client/plugins/index.js +0 -12
  365. package/build/runtime-esm/client/plugins/injectedPlugins.d.ts +0 -4
  366. package/build/runtime-esm/client/plugins/injectedPlugins.js +0 -5
  367. package/build/runtime-esm/client/plugins/mutation.d.ts +0 -2
  368. package/build/runtime-esm/client/plugins/mutation.js +0 -65
  369. package/build/runtime-esm/client/plugins/optimisticKeys.d.ts +0 -7
  370. package/build/runtime-esm/client/plugins/optimisticKeys.js +0 -290
  371. package/build/runtime-esm/client/plugins/query.d.ts +0 -2
  372. package/build/runtime-esm/client/plugins/query.js +0 -69
  373. package/build/runtime-esm/client/plugins/subscription.d.ts +0 -20
  374. package/build/runtime-esm/client/plugins/subscription.js +0 -90
  375. package/build/runtime-esm/client/plugins/test.d.ts +0 -15
  376. package/build/runtime-esm/client/plugins/test.js +0 -93
  377. package/build/runtime-esm/client/plugins/throwOnError.d.ts +0 -8
  378. package/build/runtime-esm/client/plugins/throwOnError.js +0 -23
  379. package/build/runtime-esm/client/utils/documentPlugins.d.ts +0 -3
  380. package/build/runtime-esm/client/utils/documentPlugins.js +0 -33
  381. package/build/runtime-esm/client/utils/index.d.ts +0 -1
  382. package/build/runtime-esm/client/utils/index.js +0 -1
  383. package/build/runtime-esm/generated.d.ts +0 -5
  384. package/build/runtime-esm/generated.js +0 -0
  385. package/build/runtime-esm/imports/config.d.ts +0 -3
  386. package/build/runtime-esm/imports/config.js +0 -4
  387. package/build/runtime-esm/imports/pluginConfig.d.ts +0 -3
  388. package/build/runtime-esm/imports/pluginConfig.js +0 -5
  389. package/build/runtime-esm/index.d.ts +0 -8
  390. package/build/runtime-esm/index.js +0 -22
  391. package/build/runtime-esm/lib/config.d.ts +0 -216
  392. package/build/runtime-esm/lib/config.js +0 -69
  393. package/build/runtime-esm/lib/constants.d.ts +0 -6
  394. package/build/runtime-esm/lib/deepEquals.d.ts +0 -1
  395. package/build/runtime-esm/lib/flatten.d.ts +0 -2
  396. package/build/runtime-esm/lib/index.d.ts +0 -10
  397. package/build/runtime-esm/lib/index.js +0 -10
  398. package/build/runtime-esm/lib/key.d.ts +0 -6
  399. package/build/runtime-esm/lib/log.d.ts +0 -6
  400. package/build/runtime-esm/lib/lru.d.ts +0 -52
  401. package/build/runtime-esm/lib/pageInfo.d.ts +0 -7
  402. package/build/runtime-esm/lib/pagination.d.ts +0 -27
  403. package/build/runtime-esm/lib/scalars.d.ts +0 -14
  404. package/build/runtime-esm/lib/selection.d.ts +0 -2
  405. package/build/runtime-esm/lib/store.d.ts +0 -19
  406. package/build/runtime-esm/lib/types.d.ts +0 -417
  407. package/build/runtime-esm/public/cache.d.ts +0 -42
  408. package/build/runtime-esm/public/cache.js +0 -74
  409. package/build/runtime-esm/public/index.d.ts +0 -1
  410. package/build/runtime-esm/public/index.js +0 -4
  411. package/build/runtime-esm/public/list.d.ts +0 -18
  412. package/build/runtime-esm/public/list.js +0 -127
  413. package/build/runtime-esm/public/record.d.ts +0 -40
  414. package/build/runtime-esm/public/record.js +0 -70
  415. package/build/runtime-esm/public/tests/test.d.ts +0 -156
  416. package/build/runtime-esm/public/tests/test.js +0 -36
  417. package/build/runtime-esm/public/types.d.ts +0 -62
  418. package/build/runtime-esm/router/cookies.d.ts +0 -41
  419. package/build/runtime-esm/router/jwt.d.ts +0 -117
  420. package/build/runtime-esm/router/match.d.ts +0 -39
  421. package/build/runtime-esm/router/match.js +0 -131
  422. package/build/runtime-esm/router/server.d.ts +0 -24
  423. package/build/runtime-esm/router/server.js +0 -92
  424. package/build/runtime-esm/router/session.d.ts +0 -22
  425. package/build/runtime-esm/router/session.js +0 -74
  426. package/build/runtime-esm/router/types.d.ts +0 -26
  427. package/build/runtime-esm/router/types.js +0 -0
  428. package/build/runtime-esm/server/index.d.ts +0 -17
  429. package/build/runtime-esm/server/index.js +0 -38
  430. package/build/test-cjs/index.js +0 -75249
  431. package/build/test-cjs/package.json +0 -1
  432. package/build/test-esm/index.js +0 -75244
  433. package/build/vite/imports.d.ts +0 -40
  434. package/build/vite-cjs/index.js +0 -86272
  435. package/build/vite-cjs/package.json +0 -1
  436. package/build/vite-esm/index.js +0 -86264
  437. /package/build/{adapter-esm → adapter}/package.json +0 -0
  438. /package/build/{cmd-esm → cmd}/package.json +0 -0
  439. /package/build/{vite → lib}/ast.d.ts +0 -0
  440. /package/build/{codegen-esm → lib}/package.json +0 -0
  441. /package/build/{lib-esm → node}/package.json +0 -0
  442. /package/build/{runtime-esm → oauth}/package.json +0 -0
  443. /package/build/{runtime-cjs/router → router}/cookies.d.ts +0 -0
  444. /package/build/{runtime-cjs/router → router}/jwt.d.ts +0 -0
  445. /package/build/{test-esm → router}/package.json +0 -0
  446. /package/build/{runtime-esm/public → router}/types.js +0 -0
  447. /package/build/{runtime-esm → runtime}/cache/constants.js +0 -0
  448. /package/build/{runtime-esm/lib → runtime}/constants.js +0 -0
  449. /package/build/{runtime-cjs/lib → runtime}/deepEquals.d.ts +0 -0
  450. /package/build/{runtime-esm/lib → runtime}/deepEquals.js +0 -0
  451. /package/build/{runtime-esm/lib → runtime}/flatten.js +0 -0
  452. /package/build/{runtime-cjs/lib → runtime}/log.d.ts +0 -0
  453. /package/build/{runtime-cjs/lib → runtime}/lru.d.ts +0 -0
  454. /package/build/{runtime-esm/lib → runtime}/lru.js +0 -0
  455. /package/build/{vite-esm → runtime}/package.json +0 -0
@@ -1,52 +0,0 @@
1
- import type { GraphQLValue, SubscriptionSelection, SubscriptionSpec } from '../lib/types';
2
- import { type Cache } from './cache';
3
- export type FieldSelection = [
4
- SubscriptionSpec,
5
- Required<SubscriptionSelection>['fields'] | undefined
6
- ];
7
- export declare class InMemorySubscriptions {
8
- private cache;
9
- constructor(cache: Cache);
10
- private subscribers;
11
- private keyVersions;
12
- activeFields(parent: string): string[];
13
- copySubscribers(from: string, to: string): void;
14
- add({ parent, spec, selection, variables, parentType, }: {
15
- parent: string;
16
- parentType?: string;
17
- spec: SubscriptionSpec;
18
- selection: SubscriptionSelection;
19
- variables: {
20
- [key: string]: GraphQLValue;
21
- };
22
- }): void;
23
- addFieldSubscription({ id, key, selection, type, }: {
24
- id: string;
25
- key: string;
26
- selection: FieldSelection;
27
- type: string;
28
- }): void;
29
- registerList({ list, id, key, parentType, selection, filters, variables, }: {
30
- list: Required<Required<SubscriptionSelection>['fields'][string]>['list'];
31
- selection: SubscriptionSelection;
32
- id: string;
33
- parentType: string;
34
- key: string;
35
- filters: Required<SubscriptionSelection>['fields'][string]['filters'];
36
- variables: Record<string, any>;
37
- }): void;
38
- addMany({ parent, variables, subscribers, parentType, }: {
39
- parent: string;
40
- variables: {};
41
- subscribers: FieldSelection[];
42
- parentType: string;
43
- }): void;
44
- get(id: string, field: string): FieldSelection[];
45
- getAll(id: string): FieldSelection[];
46
- remove(id: string, selection: SubscriptionSelection, targets: SubscriptionSpec[], variables: {}, visited?: string[]): void;
47
- reset(): SubscriptionSpec[];
48
- private removeSubscribers;
49
- removeAllSubscribers(id: string, targets?: SubscriptionSpec[]): void;
50
- get size(): number;
51
- findSubSelections(parentID: string, selection: SubscriptionSelection, variables: {}, searchTarget: string, selections?: SubscriptionSelection[]): Array<SubscriptionSelection>;
52
- }
@@ -1,107 +0,0 @@
1
- import type { HoudiniClient } from '.';
2
- import type { Cache } from '../cache/cache';
3
- import type { Layer } from '../cache/storage';
4
- import type { ConfigFile } from '../lib/config';
5
- import { Writable } from '../lib/store';
6
- import type { DocumentArtifact, QueryResult, GraphQLObject, SubscriptionSpec, CachePolicies, GraphQLVariables } from '../lib/types';
7
- export declare class DocumentStore<_Data extends GraphQLObject, _Input extends GraphQLVariables> extends Writable<QueryResult<_Data, _Input>> {
8
- #private;
9
- readonly artifact: DocumentArtifact;
10
- pendingPromise: {
11
- then: (val: any) => void;
12
- } | null;
13
- serverSideFallback?: boolean;
14
- controllerKey(variables: any): string;
15
- constructor({ artifact, plugins, pipeline, client, cache, enableCache, initialValue, initialVariables, fetching, }: {
16
- artifact: DocumentArtifact;
17
- plugins?: ClientHooks[];
18
- pipeline?: ClientHooks[];
19
- client: HoudiniClient | null;
20
- cache?: Cache;
21
- enableCache?: boolean;
22
- initialValue?: _Data | null;
23
- fetching?: boolean;
24
- serverSideFallback?: boolean;
25
- initialVariables?: _Input;
26
- });
27
- send({ metadata, session, fetch, variables, policy, stuff, cacheParams, setup, silenceEcho, abortController, }?: SendParams): Promise<QueryResult<_Data, _Input>>;
28
- cleanup(): Promise<void>;
29
- getFetch(getSession: () => App.Session | null | undefined): (input: RequestInfo | URL, init?: RequestInit | undefined) => Promise<Response>;
30
- }
31
- declare function marshalVariables<_Data extends GraphQLObject, _Input extends GraphQLVariables>(ctx: ClientPluginContext): Record<string, any>;
32
- export type ClientPlugin = () => ClientHooks | null | (ClientHooks | ClientPlugin | null)[];
33
- export type ClientHooks = {
34
- start?: ClientPluginEnterPhase;
35
- beforeNetwork?: ClientPluginEnterPhase;
36
- network?: ClientPluginEnterPhase;
37
- afterNetwork?: ClientPluginExitPhase;
38
- end?: ClientPluginExitPhase;
39
- cleanup?(ctx: ClientPluginContext): void | Promise<void>;
40
- catch?(ctx: ClientPluginContext, args: ClientPluginErrorHandlers): void | Promise<void>;
41
- };
42
- export type Fetch = typeof globalThis.fetch;
43
- export type ClientPluginContext = {
44
- config: ConfigFile;
45
- name: string;
46
- text: string;
47
- hash: string;
48
- artifact: DocumentArtifact;
49
- policy?: CachePolicies;
50
- fetch?: Fetch;
51
- variables?: Record<string, any> | null;
52
- metadata?: App.Metadata | null;
53
- session?: App.Session | null;
54
- fetchParams?: RequestInit;
55
- abortController: AbortController;
56
- cacheParams?: {
57
- layer?: Layer;
58
- notifySubscribers?: SubscriptionSpec[];
59
- forceNotify?: boolean;
60
- disableWrite?: boolean;
61
- disableRead?: boolean;
62
- disableSubscriptions?: boolean;
63
- applyUpdates?: string[];
64
- serverSideFallback?: boolean;
65
- };
66
- stuff: App.Stuff;
67
- };
68
- type ClientPluginPhase<Handlers> = (ctx: ClientPluginContext, handlers: Handlers) => void | Promise<void>;
69
- export type ClientPluginEnterPhase = ClientPluginPhase<ClientPluginEnterHandlers>;
70
- export type ClientPluginExitPhase = ClientPluginPhase<ClientPluginExitHandlers>;
71
- export type ClientPluginEnterHandlers = {
72
- initialValue: QueryResult;
73
- /** A reference to the houdini client to access any configuration values */
74
- client: HoudiniClient;
75
- /** Move onto the next step using the provided context. */
76
- next(ctx: ClientPluginContext): void;
77
- /** Terminate the current chain */
78
- resolve(ctx: ClientPluginContext, data: QueryResult): void;
79
- /** Update the stores state without resolving the promise */
80
- updateState(updater: (old: QueryResult) => QueryResult): void;
81
- /** Return true if the variables have changed */
82
- variablesChanged: (ctx: ClientPluginContext) => boolean;
83
- /** Returns the marshaled variables for the operation */
84
- marshalVariables: typeof marshalVariables;
85
- };
86
- /** Exit handlers are the same as enter handlers but don't need to resolve with a specific value */
87
- export type ClientPluginExitHandlers = Omit<ClientPluginEnterHandlers, 'resolve'> & {
88
- resolve: (ctx: ClientPluginContext, data?: QueryResult) => void;
89
- value: QueryResult;
90
- };
91
- /** Exit handlers are the same as enter handlers but don't need to resolve with a specific value */
92
- export type ClientPluginErrorHandlers = ClientPluginEnterHandlers & {
93
- error: unknown;
94
- };
95
- export type SendParams = {
96
- fetch?: Fetch;
97
- variables?: Record<string, any> | null;
98
- metadata?: App.Metadata | null;
99
- session?: App.Session | null;
100
- policy?: CachePolicies;
101
- stuff?: Partial<App.Stuff>;
102
- cacheParams?: ClientPluginContext['cacheParams'];
103
- setup?: boolean;
104
- silenceEcho?: boolean;
105
- abortController?: AbortController;
106
- };
107
- export {};
@@ -1,50 +0,0 @@
1
- /// <reference path="../../../../../houdini.d.ts" />
2
- import type { Cache } from '../cache/cache';
3
- import type { DocumentArtifact, GraphQLVariables, GraphQLObject, NestedList } from '../lib/types';
4
- import type { ClientHooks, ClientPlugin } from './documentStore';
5
- import { DocumentStore } from './documentStore';
6
- import type { FetchParamFn, ThrowOnErrorOperations, ThrowOnErrorParams } from './plugins';
7
- export { DocumentStore, type ClientPlugin, type SendParams } from './documentStore';
8
- export { fetch, mutation, query, subscription } from './plugins';
9
- export type HoudiniClientConstructorArgs = {
10
- url?: string;
11
- fetchParams?: FetchParamFn;
12
- plugins?: NestedList<ClientPlugin>;
13
- pipeline?: NestedList<ClientPlugin>;
14
- throwOnError?: ThrowOnErrorParams;
15
- };
16
- export type ObserveParams<_Data extends GraphQLObject, _Artifact extends DocumentArtifact = DocumentArtifact, _Input extends GraphQLVariables = GraphQLVariables> = {
17
- artifact: _Artifact;
18
- enableCache?: boolean;
19
- cache?: Cache;
20
- initialValue?: _Data | null;
21
- initialVariables?: _Input;
22
- fetching?: boolean;
23
- };
24
- export declare class HoudiniClient {
25
- url: string;
26
- readonly throwOnError_operations: ThrowOnErrorOperations[];
27
- private cache;
28
- private throwOnError;
29
- private fetchParams;
30
- private pipeline;
31
- private extraPlugins;
32
- proxies: Record<string, (operation: {
33
- query: string;
34
- variables: any;
35
- operationName: string;
36
- session: App.Session | null | undefined;
37
- }) => Promise<any>>;
38
- componentCache: Record<string, any>;
39
- setCache(cache: Cache): void;
40
- constructor({ url, fetchParams, plugins, pipeline, throwOnError, }?: HoudiniClientConstructorArgs);
41
- get plugins(): ClientPlugin[];
42
- observe<_Data extends GraphQLObject, _Input extends GraphQLVariables>({ enableCache, fetching, ...rest }: ObserveParams<_Data, DocumentArtifact, _Input>): DocumentStore<_Data, _Input>;
43
- registerProxy(url: string, handler: (operation: {
44
- query: string;
45
- variables: any;
46
- operationName: string;
47
- session: App.Session | null | undefined;
48
- }) => Promise<any>): void;
49
- }
50
- export declare function createPluginHooks(plugins: ClientPlugin[]): ClientHooks[];
@@ -1,130 +0,0 @@
1
- import cacheRef from "../cache";
2
- import { getCurrentConfig, localApiEndpoint } from "../lib";
3
- import { flatten } from "../lib/flatten";
4
- import { DocumentStore } from "./documentStore";
5
- import {
6
- fetch as fetchPlugin,
7
- fetchParams as fetchParamsPlugin,
8
- fragment as fragmentPlugin,
9
- mutation as mutationPlugin,
10
- query as queryPlugin,
11
- throwOnError as throwOnErrorPlugin,
12
- optimisticKeys
13
- } from "./plugins";
14
- import pluginsFromPlugins from "./plugins/injectedPlugins";
15
- import { DocumentStore as DocumentStore2 } from "./documentStore";
16
- import { fetch, mutation, query, subscription } from "./plugins";
17
- class HoudiniClient {
18
- // the URL of the api
19
- url;
20
- // expose operations settings
21
- throwOnError_operations;
22
- cache = null;
23
- throwOnError;
24
- fetchParams;
25
- pipeline;
26
- extraPlugins;
27
- proxies = {};
28
- // this is modified by page entries when they load in order to register the components source
29
- componentCache = {};
30
- // we need the ability to link the client up with an external cache
31
- setCache(cache) {
32
- this.cache = cache;
33
- }
34
- constructor({
35
- url,
36
- fetchParams,
37
- plugins,
38
- pipeline,
39
- throwOnError
40
- } = {}) {
41
- if (plugins && pipeline) {
42
- throw new Error(
43
- "A client cannot be given a pipeline and a list of plugins at the same time."
44
- );
45
- }
46
- this.throwOnError_operations = throwOnError?.operations ?? [];
47
- let serverPort = globalThis.process?.env?.HOUDINI_PORT ?? "5173";
48
- this.url = url ?? (globalThis.window ? "" : `http://localhost:${serverPort}`) + localApiEndpoint(getCurrentConfig());
49
- this.throwOnError = throwOnError;
50
- this.fetchParams = fetchParams;
51
- this.pipeline = pipeline;
52
- this.extraPlugins = plugins;
53
- }
54
- get plugins() {
55
- return flatten(
56
- [].concat(
57
- // if they specified a throw behavior
58
- this.throwOnError ? [throwOnErrorPlugin(this.throwOnError)] : [],
59
- fetchParamsPlugin(this.fetchParams),
60
- // if the user wants to specify the entire pipeline, let them do so
61
- this.pipeline ?? // the user doesn't have a specific pipeline so we should just add their desired plugins
62
- // to the standard set
63
- [
64
- optimisticKeys(this.cache ?? cacheRef),
65
- // make sure that documents always work
66
- queryPlugin(this.cache ?? cacheRef),
67
- mutationPlugin(this.cache ?? cacheRef),
68
- fragmentPlugin(this.cache ?? cacheRef)
69
- ].concat(
70
- // add the specified middlewares
71
- this.extraPlugins ?? [],
72
- // and any middlewares we got from plugins
73
- pluginsFromPlugins,
74
- // if they provided a fetch function, use it as the body for the fetch middleware
75
- fetchPlugin()
76
- )
77
- )
78
- );
79
- }
80
- observe({
81
- enableCache = true,
82
- fetching = false,
83
- ...rest
84
- }) {
85
- return new DocumentStore({
86
- client: this,
87
- plugins: createPluginHooks(this.plugins),
88
- fetching,
89
- enableCache,
90
- cache: this.cache ?? void 0,
91
- ...rest
92
- });
93
- }
94
- registerProxy(url, handler) {
95
- this.proxies[url] = handler;
96
- }
97
- }
98
- function createPluginHooks(plugins) {
99
- return plugins.reduce((hooks, plugin) => {
100
- if (typeof plugin !== "function") {
101
- throw new Error("Encountered client plugin that's not a function");
102
- }
103
- const result = plugin();
104
- if (!result) {
105
- return hooks;
106
- }
107
- if (!Array.isArray(result)) {
108
- return hooks.concat(result);
109
- }
110
- for (const value of result) {
111
- if (!value) {
112
- continue;
113
- }
114
- if (typeof value === "function") {
115
- return hooks.concat(createPluginHooks([value]));
116
- }
117
- hooks.push(value);
118
- }
119
- return hooks;
120
- }, []);
121
- }
122
- export {
123
- DocumentStore2 as DocumentStore,
124
- HoudiniClient,
125
- createPluginHooks,
126
- fetch,
127
- mutation,
128
- query,
129
- subscription
130
- };
@@ -1,9 +0,0 @@
1
- import cache from '../../cache';
2
- import { Cache } from '../../cache/cache';
3
- import type { ClientPlugin } from '../documentStore';
4
- export declare const cachePolicy: ({ enabled, setFetching, cache: localCache, serverSideFallback, }: {
5
- enabled: boolean;
6
- setFetching: (val: boolean, data?: any) => void;
7
- cache?: Cache | undefined;
8
- serverSideFallback?: boolean | undefined;
9
- }) => ClientPlugin;
@@ -1,104 +0,0 @@
1
- import cache from "../../cache";
2
- import { Cache } from "../../cache/cache";
3
- import { ArtifactKind, CachePolicy, DataSource } from "../../lib/types";
4
- const serverSide = typeof globalThis.window === "undefined";
5
- const cachePolicy = ({
6
- enabled,
7
- setFetching,
8
- cache: localCache = cache,
9
- serverSideFallback = true
10
- }) => () => {
11
- return {
12
- beforeNetwork(ctx, { initialValue, next, resolve, marshalVariables }) {
13
- const { policy, artifact } = ctx;
14
- let useCache = false;
15
- if (enabled && (artifact.kind === ArtifactKind.Query || artifact.kind === ArtifactKind.Fragment) && !ctx.cacheParams?.disableRead) {
16
- const policyAllowsCache = policy !== CachePolicy.NetworkOnly && policy !== CachePolicy.NoCache;
17
- if (policyAllowsCache) {
18
- const value = localCache.read({
19
- selection: artifact.selection,
20
- variables: marshalVariables(ctx),
21
- fullCheck: true
22
- });
23
- const allowed = !value.partial || // or the artifact allows for partial responses
24
- artifact.kind === ArtifactKind.Query && artifact.partial;
25
- if (policy === CachePolicy.CacheOnly) {
26
- return resolve(ctx, {
27
- fetching: false,
28
- variables: ctx.variables ?? null,
29
- data: allowed ? value.data : initialValue.data,
30
- errors: null,
31
- source: DataSource.Cache,
32
- partial: allowed ? value.partial : false,
33
- stale: value.stale
34
- });
35
- }
36
- useCache = !!(value.data !== null && allowed);
37
- if (useCache) {
38
- resolve(ctx, {
39
- fetching: false,
40
- variables: ctx.variables ?? null,
41
- data: value.data,
42
- errors: null,
43
- source: DataSource.Cache,
44
- partial: value.partial,
45
- stale: value.stale
46
- });
47
- }
48
- if (useCache && !value.partial && !value.stale && // if the policy is CacheAndNetwork then we don't want to stop here regardless
49
- ctx.policy !== "CacheAndNetwork") {
50
- return;
51
- }
52
- }
53
- }
54
- if (enabled) {
55
- setTimeout(() => {
56
- localCache._internal_unstable.collectGarbage();
57
- }, 0);
58
- }
59
- if (!ctx.stuff?.silenceLoading) {
60
- let fetchingState = null;
61
- if (!useCache && "enableLoadingState" in artifact && artifact.enableLoadingState) {
62
- fetchingState = localCache.read({
63
- selection: artifact.selection,
64
- variables: marshalVariables(ctx),
65
- loading: true
66
- }).data;
67
- }
68
- setFetching(!useCache, fetchingState);
69
- }
70
- return next(ctx);
71
- },
72
- afterNetwork(ctx, { resolve, value, marshalVariables }) {
73
- if (ctx.policy !== CachePolicy.NoCache && value.source !== DataSource.Cache && enabled && value.data && !ctx.cacheParams?.disableWrite) {
74
- if (ctx.cacheParams && "serverSideFallback" in ctx.cacheParams) {
75
- serverSideFallback = ctx.cacheParams?.serverSideFallback ?? serverSideFallback;
76
- }
77
- const targetCache = serverSide && serverSideFallback ? new Cache({ disabled: false }) : localCache;
78
- let layer;
79
- if (!serverSide && ctx.cacheParams?.layer) {
80
- layer = ctx.cacheParams.layer.id;
81
- }
82
- targetCache.write({
83
- ...ctx.cacheParams,
84
- layer,
85
- selection: ctx.artifact.selection,
86
- data: value.data,
87
- variables: marshalVariables(ctx)
88
- });
89
- value = {
90
- ...value,
91
- data: targetCache.read({
92
- selection: ctx.artifact.selection,
93
- variables: marshalVariables(ctx),
94
- ignoreMasking: serverSide
95
- }).data
96
- };
97
- }
98
- resolve(ctx, value);
99
- }
100
- };
101
- };
102
- export {
103
- cachePolicy
104
- };
@@ -1,38 +0,0 @@
1
- import type { RequestPayload } from '../../lib/types';
2
- import type { ClientPlugin } from '../documentStore';
3
- export declare const fetch: (target?: RequestHandler | string) => ClientPlugin;
4
- export type FetchContext = {
5
- fetch: typeof globalThis.fetch;
6
- metadata?: App.Metadata | null;
7
- session: App.Session | null;
8
- };
9
- /**
10
- * ## Tip 👇
11
- *
12
- * To define types for your metadata, create a file `src/app.d.ts` containing the followingI:
13
- *
14
- * ```ts
15
- * declare namespace App { *
16
- * interface Metadata {}
17
- * }
18
- * ```
19
- *
20
- */
21
- export type RequestHandlerArgs = FetchContext & FetchParams;
22
- export type RequestHandler<_Data = any> = (args: RequestHandlerArgs) => Promise<RequestPayload<_Data>>;
23
- export type FetchParams = {
24
- name: string;
25
- text: string;
26
- hash: string;
27
- variables: {
28
- [key: string]: any;
29
- };
30
- };
31
- export declare function isExtractableFile(value: any): value is ExtractableFile;
32
- type ExtractableFile = File | Blob;
33
- /** @typedef {import("./isExtractableFile.mjs").default} isExtractableFile */
34
- export declare function extractFiles(value: any): {
35
- clone: any;
36
- files: Map<any, any>;
37
- };
38
- export {};
@@ -1,184 +0,0 @@
1
- import { ArtifactKind, DataSource } from "../../lib/types";
2
- const fetch = (target) => {
3
- return () => {
4
- return {
5
- async network(ctx, { client, initialValue, resolve, marshalVariables }) {
6
- if (ctx.artifact.kind === ArtifactKind.Fragment) {
7
- return resolve(ctx, initialValue);
8
- }
9
- const fetch2 = ctx.fetch ?? globalThis.fetch;
10
- const fetchParams = {
11
- name: ctx.name,
12
- text: ctx.text,
13
- hash: ctx.hash,
14
- variables: { ...marshalVariables(ctx) }
15
- };
16
- for (const variable of ctx.artifact.stripVariables) {
17
- delete fetchParams.variables[variable];
18
- }
19
- let fetchFn = defaultFetch(client.url, ctx.fetchParams);
20
- if (target) {
21
- if (typeof target === "string") {
22
- fetchFn = defaultFetch(target, ctx.fetchParams);
23
- } else {
24
- fetchFn = target;
25
- }
26
- }
27
- const result = await fetchFn({
28
- // wrap the user's fetch function so we can identify SSR by checking
29
- // the response.url
30
- fetch: (url, args) => {
31
- const newArgs = handleMultipart(fetchParams, args) ?? args;
32
- return fetch2(url, {
33
- ...newArgs,
34
- signal: ctx.abortController.signal
35
- });
36
- },
37
- metadata: ctx.metadata,
38
- session: ctx.session || {},
39
- ...fetchParams
40
- });
41
- resolve(ctx, {
42
- fetching: false,
43
- variables: ctx.variables ?? {},
44
- data: result.data,
45
- errors: !result.errors || result.errors.length === 0 ? null : result.errors,
46
- partial: false,
47
- stale: false,
48
- source: DataSource.Network
49
- });
50
- }
51
- };
52
- };
53
- };
54
- const defaultFetch = (url, params) => {
55
- if (!url) {
56
- throw new Error(
57
- "Could not find configured client url. Please specify one in your HoudiniClient constructor."
58
- );
59
- }
60
- return async ({ fetch: fetch2, name, text, variables }) => {
61
- const result = await fetch2(url, {
62
- method: "POST",
63
- body: JSON.stringify({ operationName: name, query: text, variables }),
64
- ...params,
65
- headers: {
66
- Accept: "application/graphql+json, application/json",
67
- "Content-Type": "application/json",
68
- ...params?.headers
69
- }
70
- });
71
- if (!result.ok && !result.headers.get("content-type")?.startsWith("application/json") && !result.headers.get("content-type")?.startsWith("application/graphql+json")) {
72
- throw new Error(
73
- `Failed to fetch: server returned invalid response with error ${result.status}: ${result.statusText}`
74
- );
75
- }
76
- return await result.json();
77
- };
78
- };
79
- function handleMultipart(params, args) {
80
- const { files } = extractFiles({
81
- variables: params.variables
82
- });
83
- if (files.size) {
84
- const req = args;
85
- let headers = {};
86
- if (req?.headers) {
87
- const filtered = Object.entries(req?.headers).filter(([key, value]) => {
88
- return !(key.toLowerCase() == "content-type" && value.toLowerCase() == "application/json");
89
- });
90
- headers = Object.fromEntries(filtered);
91
- }
92
- const form = new FormData();
93
- if (args && args?.body) {
94
- form.set("operations", args?.body);
95
- } else {
96
- form.set(
97
- "operations",
98
- JSON.stringify({
99
- operationName: params.name,
100
- query: params.text,
101
- variables: params.variables
102
- })
103
- );
104
- }
105
- const map = {};
106
- let i = 0;
107
- files.forEach((paths) => {
108
- map[++i] = paths;
109
- });
110
- form.set("map", JSON.stringify(map));
111
- i = 0;
112
- files.forEach((paths, file) => {
113
- form.set(`${++i}`, file, file.name);
114
- });
115
- return { ...req, headers, body: form };
116
- }
117
- }
118
- function isExtractableFile(value) {
119
- return typeof File !== "undefined" && value instanceof File || typeof Blob !== "undefined" && value instanceof Blob;
120
- }
121
- function extractFiles(value) {
122
- if (!arguments.length) throw new TypeError("Argument 1 `value` is required.");
123
- const clones = /* @__PURE__ */ new Map();
124
- const files = /* @__PURE__ */ new Map();
125
- function recurse(value2, path, recursed) {
126
- if (isExtractableFile(value2)) {
127
- const filePaths = files.get(value2);
128
- filePaths ? filePaths.push(path) : files.set(value2, [path]);
129
- return null;
130
- }
131
- const valueIsList = Array.isArray(value2) || typeof FileList !== "undefined" && value2 instanceof FileList;
132
- const valueIsPlainObject = isPlainObject(value2);
133
- if (valueIsList || valueIsPlainObject) {
134
- let clone = clones.get(value2);
135
- const uncloned = !clone;
136
- if (uncloned) {
137
- clone = valueIsList ? [] : (
138
- // Replicate if the plain object is an `Object` instance.
139
- value2 instanceof /** @type {any} */
140
- Object ? {} : /* @__PURE__ */ Object.create(null)
141
- );
142
- clones.set(
143
- value2,
144
- /** @type {Clone} */
145
- clone
146
- );
147
- }
148
- if (!recursed.has(value2)) {
149
- const pathPrefix = path ? `${path}.` : "";
150
- const recursedDeeper = new Set(recursed).add(value2);
151
- if (valueIsList) {
152
- let index = 0;
153
- for (const item of value2) {
154
- const itemClone = recurse(item, pathPrefix + index++, recursedDeeper);
155
- if (uncloned) clone.push(itemClone);
156
- }
157
- } else
158
- for (const key in value2) {
159
- const propertyClone = recurse(value2[key], pathPrefix + key, recursedDeeper);
160
- if (uncloned)
161
- clone[key] = propertyClone;
162
- }
163
- }
164
- return clone;
165
- }
166
- return value2;
167
- }
168
- return {
169
- clone: recurse(value, "", /* @__PURE__ */ new Set()),
170
- files
171
- };
172
- }
173
- function isPlainObject(value) {
174
- if (typeof value !== "object" || value === null) {
175
- return false;
176
- }
177
- const prototype = Object.getPrototypeOf(value);
178
- return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
179
- }
180
- export {
181
- extractFiles,
182
- fetch,
183
- isExtractableFile
184
- };
@@ -1,9 +0,0 @@
1
- import type { DocumentArtifact } from '../../lib/types';
2
- import type { ClientPlugin, ClientPluginContext } from '../documentStore';
3
- export type FetchParamFn = (ctx: FetchParamsInput) => Required<ClientPluginContext>['fetchParams'];
4
- export declare const fetchParams: (fn?: FetchParamFn) => ClientPlugin;
5
- export type FetchParamsInput = Pick<ClientPluginContext, 'config' | 'policy' | 'variables' | 'metadata' | 'session' | 'stuff'> & {
6
- text: string;
7
- hash: string;
8
- document: DocumentArtifact;
9
- };