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
@@ -2,5 +2,5 @@ export declare const computeKey: ({ field, args }: {
2
2
  field: string;
3
3
  args?: {
4
4
  [key: string]: any;
5
- } | undefined;
5
+ };
6
6
  }) => string;
@@ -1,16 +1,16 @@
1
1
  const computeKey = ({ field, args }) => {
2
2
  const keys = Object.keys(args ?? {});
3
3
  keys.sort();
4
- return args && keys.length > 0 ? `${field}(${keys.map((key) => `${key}: ${stringifyObjectWithNoQuotesOnKeys(args[key])}`).join(", ")})` : field;
4
+ return args && keys.length > 0 ? `${field}(${keys.map((key) => `${key}: ${stringify(args[key])}`).join(", ")})` : field;
5
5
  };
6
- const stringifyObjectWithNoQuotesOnKeys = (obj_from_json) => {
6
+ const stringify = (obj_from_json) => {
7
7
  if (Array.isArray(obj_from_json)) {
8
- return `[${obj_from_json.map((obj) => `${stringifyObjectWithNoQuotesOnKeys(obj)}`).join(", ")}]`;
8
+ return `[${obj_from_json.map((obj) => `${stringify(obj)}`).join(", ")}]`;
9
9
  }
10
10
  if (typeof obj_from_json !== "object" || obj_from_json instanceof Date || obj_from_json === null) {
11
11
  return JSON.stringify(obj_from_json).replace(/"([^"]+)":/g, "$1: ");
12
12
  }
13
- return `{${Object.keys(obj_from_json).map((key) => `${key}: ${stringifyObjectWithNoQuotesOnKeys(obj_from_json[key])}`).join(", ")}}`;
13
+ return `{${Object.keys(obj_from_json).map((key) => `${key}: ${stringify(obj_from_json[key])}`).join(", ")}}`;
14
14
  };
15
15
  export {
16
16
  computeKey
@@ -3,8 +3,8 @@ function colorize(message) {
3
3
  if (matches.length === 0) {
4
4
  return [message];
5
5
  }
6
- let final = message.replaceAll(/\$HOUDINI\$(\w*\$)?/g, "%c");
7
- let colors = [];
6
+ const final = message.replaceAll(/\$HOUDINI\$(\w*\$)?/g, "%c");
7
+ const colors = [];
8
8
  for (const match of matches) {
9
9
  const color = match[1] ? `color:${match[1].slice(0, -1)}` : "";
10
10
  colors.push(color);
@@ -31,7 +31,7 @@ function green(message) {
31
31
  }
32
32
  const tag = `$HOUDINI$`;
33
33
  const wrapMessage = (color, message) => {
34
- return tag + `${color}$` + message + tag;
34
+ return `${tag}${color}$${message}${tag}`;
35
35
  };
36
36
  export {
37
37
  cyan,
@@ -0,0 +1,8 @@
1
+ export type GraphQLBody = {
2
+ contentType: 'application/json';
3
+ body: string;
4
+ } | {
5
+ contentType?: undefined;
6
+ body: FormData;
7
+ };
8
+ export declare function buildGraphQLBody(query: string, variables: Record<string, any>): GraphQLBody;
@@ -0,0 +1,49 @@
1
+ import { isFile } from "./coerce.js";
2
+ function buildGraphQLBody(query, variables) {
3
+ const files = /* @__PURE__ */ new Map();
4
+ const operationVariables = extractFiles(variables, ["variables"], files);
5
+ if (files.size === 0) {
6
+ return { contentType: "application/json", body: JSON.stringify({ query, variables }) };
7
+ }
8
+ const form = new FormData();
9
+ form.set("operations", JSON.stringify({ query, variables: operationVariables }));
10
+ const map = {};
11
+ const parts = [];
12
+ let i = 0;
13
+ for (const [file, paths] of files) {
14
+ const key = String(++i);
15
+ map[key] = paths;
16
+ parts.push([key, file]);
17
+ }
18
+ form.set("map", JSON.stringify(map));
19
+ for (const [key, file] of parts) {
20
+ form.set(key, file, file.name);
21
+ }
22
+ return { body: form };
23
+ }
24
+ function extractFiles(value, path, files) {
25
+ if (isFile(value)) {
26
+ const dotted = path.join(".");
27
+ const existing = files.get(value);
28
+ if (existing) {
29
+ existing.push(dotted);
30
+ } else {
31
+ files.set(value, [dotted]);
32
+ }
33
+ return null;
34
+ }
35
+ if (Array.isArray(value)) {
36
+ return value.map((entry, i) => extractFiles(entry, [...path, String(i)], files));
37
+ }
38
+ if (value && typeof value === "object") {
39
+ const clone = {};
40
+ for (const key of Object.keys(value)) {
41
+ clone[key] = extractFiles(value[key], [...path, key], files);
42
+ }
43
+ return clone;
44
+ }
45
+ return value;
46
+ }
47
+ export {
48
+ buildGraphQLBody
49
+ };
@@ -1,7 +1,7 @@
1
- import type { GraphQLObject, PageInfo } from './types';
1
+ import type { GraphQLObject, PageInfo } from './types.js';
2
2
  export declare function nullPageInfo(): PageInfo;
3
3
  export declare function missingPageSizeError(fnName: string): {
4
4
  message: string;
5
5
  };
6
- export declare function extractPageInfo(data: any, path: string[]): PageInfo;
7
- export declare function countPage<_Data extends GraphQLObject>(source: string[], value: _Data | null): number;
6
+ export declare function extractPageInfo(data: any, path: readonly string[]): PageInfo;
7
+ export declare function countPage<_Data extends GraphQLObject>(source: readonly string[], value: _Data | null): number;
@@ -1,4 +1,4 @@
1
- import { siteURL } from "./constants";
1
+ import { siteURL } from "./constants.js";
2
2
  function nullPageInfo() {
3
3
  return { startCursor: null, endCursor: null, hasNextPage: false, hasPreviousPage: false };
4
4
  }
@@ -16,7 +16,7 @@ function extractPageInfo(data, path) {
16
16
  hasPreviousPage: false
17
17
  };
18
18
  }
19
- let localPath = [...path];
19
+ const localPath = [...path];
20
20
  let current = data;
21
21
  while (localPath.length > 0) {
22
22
  if (!current) {
@@ -1,14 +1,17 @@
1
- import type { SendParams } from '../client/documentStore';
2
- import type { CursorHandlers, FetchFn, GraphQLObject, GraphQLVariables, QueryArtifact, QueryResult, FetchParams } from './types';
3
- export declare function cursorHandlers<_Data extends GraphQLObject, _Input extends GraphQLVariables>({ artifact, fetchUpdate: parentFetchUpdate, fetch: parentFetch, getState, getVariables, getSession, }: {
1
+ import type { SendParams } from './documentStore.js';
2
+ import type { CursorHandlers, FetchFn, GraphQLObject, GraphQLVariables, QueryArtifact, QueryResult, FetchParams } from './types.js';
3
+ export declare function cursorHandlers<_Data extends GraphQLObject, _Input extends GraphQLVariables | null | undefined>({ artifact, fetchUpdate: parentFetchUpdate, fetch: parentFetch, getState, getVariables, getSession, getLoading, previousCursors, nextCursors, }: {
4
4
  artifact: QueryArtifact;
5
5
  getState: () => _Data | null;
6
6
  getVariables: () => NonNullable<_Input>;
7
7
  getSession: () => Promise<App.Session>;
8
8
  fetch: FetchFn<_Data, _Input>;
9
9
  fetchUpdate: (arg: SendParams, updates: string[]) => ReturnType<FetchFn<_Data, _Input>>;
10
+ getLoading?: () => boolean;
11
+ previousCursors?: (string | null)[];
12
+ nextCursors?: (string | null)[];
10
13
  }): CursorHandlers<_Data, _Input>;
11
- export declare function offsetHandlers<_Data extends GraphQLObject, _Input extends GraphQLVariables>({ artifact, storeName, getState, getVariables, fetch: parentFetch, fetchUpdate: parentFetchUpdate, getSession, }: {
14
+ export declare function offsetHandlers<_Data extends GraphQLObject, _Input extends GraphQLVariables | null | undefined>({ artifact, storeName: _storeName, getState, getVariables, fetch: parentFetch, fetchUpdate: parentFetchUpdate, getSession, getLoading, }: {
12
15
  artifact: QueryArtifact;
13
16
  fetch: FetchFn<_Data, _Input>;
14
17
  fetchUpdate: (arg: SendParams) => ReturnType<FetchFn<_Data, _Input>>;
@@ -16,12 +19,13 @@ export declare function offsetHandlers<_Data extends GraphQLObject, _Input exten
16
19
  getState: () => _Data | null;
17
20
  getVariables: () => _Input;
18
21
  getSession: () => Promise<App.Session>;
22
+ getLoading?: () => boolean;
19
23
  }): {
20
24
  loadNextPage: ({ limit, offset, fetch, metadata, }?: {
21
- limit?: number | undefined;
22
- offset?: number | undefined;
23
- fetch?: typeof fetch | undefined;
24
- metadata?: {} | undefined;
25
+ limit?: number;
26
+ offset?: number;
27
+ fetch?: typeof globalThis.fetch;
28
+ metadata?: {};
25
29
  }) => Promise<void>;
26
30
  fetch(params?: FetchParams<_Input>): Promise<QueryResult<_Data, _Input>>;
27
31
  };
@@ -1,14 +1,31 @@
1
- import { deepEquals } from "./deepEquals";
2
- import { countPage, extractPageInfo, missingPageSizeError } from "./pageInfo";
3
- import { CachePolicy, DataSource } from "./types";
1
+ import { deepEquals } from "./deepEquals.js";
2
+ import { countPage, extractPageInfo, missingPageSizeError } from "./pageInfo.js";
3
+ import { defaultConfigValues, getCurrentConfig, keyFieldsForType } from "./config.js";
4
+ import { CachePolicy, DataSource } from "./types.js";
4
5
  function cursorHandlers({
5
6
  artifact,
6
7
  fetchUpdate: parentFetchUpdate,
7
8
  fetch: parentFetch,
8
9
  getState,
9
10
  getVariables,
10
- getSession
11
+ getSession,
12
+ getLoading,
13
+ previousCursors = [],
14
+ nextCursors = []
11
15
  }) {
16
+ const targetType = artifact.refetch?.targetType;
17
+ const getEntityVars = () => {
18
+ if (!targetType || targetType === "Query") return {};
19
+ const config = defaultConfigValues(getCurrentConfig());
20
+ const typeConfig = config.types?.[targetType];
21
+ const state = getState();
22
+ if (!state) return {};
23
+ if (typeConfig?.resolve?.arguments) {
24
+ return typeConfig.resolve.arguments(state) ?? {};
25
+ }
26
+ const keys = keyFieldsForType(config, targetType);
27
+ return Object.fromEntries(keys.map((key) => [key, state[key]]));
28
+ };
12
29
  const loadPage = async ({
13
30
  pageSizeVar,
14
31
  input,
@@ -18,19 +35,22 @@ function cursorHandlers({
18
35
  where
19
36
  }) => {
20
37
  const loadVariables = {
38
+ ...artifact.input?.defaults ?? {},
39
+ ...getEntityVars(),
21
40
  ...getVariables(),
22
41
  ...input
23
42
  };
24
43
  if (!loadVariables[pageSizeVar] && !artifact.refetch.pageSize) {
25
44
  throw missingPageSizeError(functionName);
26
45
  }
27
- let isSinglePage = artifact.refetch?.mode === "SinglePage";
46
+ const isSinglePage = artifact.refetch?.mode === "SinglePage";
47
+ const policy = isSinglePage ? artifact.policy : CachePolicy.NetworkOnly;
28
48
  return (isSinglePage ? parentFetch : parentFetchUpdate)(
29
49
  {
30
50
  variables: loadVariables,
31
51
  fetch,
32
52
  metadata,
33
- policy: isSinglePage ? artifact.policy : CachePolicy.NetworkOnly,
53
+ policy,
34
54
  session: await getSession()
35
55
  },
36
56
  isSinglePage ? [] : [where === "start" ? "prepend" : "append"]
@@ -39,6 +59,15 @@ function cursorHandlers({
39
59
  const getPageInfo = () => {
40
60
  return extractPageInfo(getState(), artifact.refetch?.path ?? []);
41
61
  };
62
+ const loadingNoOp = () => Promise.resolve({
63
+ data: getState(),
64
+ errors: null,
65
+ fetching: false,
66
+ partial: false,
67
+ stale: false,
68
+ source: DataSource.Cache,
69
+ variables: getVariables()
70
+ });
42
71
  return {
43
72
  loadNextPage: ({
44
73
  first,
@@ -46,6 +75,54 @@ function cursorHandlers({
46
75
  fetch,
47
76
  metadata
48
77
  } = {}) => {
78
+ if (getLoading?.()) {
79
+ return loadingNoOp();
80
+ }
81
+ const isSinglePage = artifact.refetch?.mode === "SinglePage";
82
+ const direction = artifact.refetch?.direction;
83
+ if (isSinglePage && direction === "backward") {
84
+ if (nextCursors.length === 0) {
85
+ return Promise.resolve({
86
+ data: getState(),
87
+ errors: null,
88
+ fetching: false,
89
+ partial: false,
90
+ stale: false,
91
+ source: DataSource.Cache,
92
+ variables: getVariables()
93
+ });
94
+ }
95
+ const beforeCursor = nextCursors.pop();
96
+ return loadPage({
97
+ pageSizeVar: "last",
98
+ functionName: "loadNextPage",
99
+ input: {
100
+ before: beforeCursor,
101
+ last: first ?? artifact.refetch.pageSize,
102
+ first: null,
103
+ after: null
104
+ },
105
+ fetch,
106
+ metadata,
107
+ where: "start"
108
+ });
109
+ }
110
+ if (isSinglePage && direction === "both" && nextCursors.length > 0) {
111
+ const beforeCursor = nextCursors.pop();
112
+ return loadPage({
113
+ pageSizeVar: "last",
114
+ functionName: "loadNextPage",
115
+ input: {
116
+ before: beforeCursor,
117
+ last: first ?? artifact.refetch.pageSize,
118
+ first: null,
119
+ after: null
120
+ },
121
+ fetch,
122
+ metadata,
123
+ where: "start"
124
+ });
125
+ }
49
126
  const currentPageInfo = getPageInfo();
50
127
  if (!currentPageInfo.hasNextPage) {
51
128
  return Promise.resolve({
@@ -58,6 +135,9 @@ function cursorHandlers({
58
135
  variables: getVariables()
59
136
  });
60
137
  }
138
+ if (isSinglePage && (direction === "forward" || direction === "both")) {
139
+ previousCursors.push(getVariables()?.after ?? null);
140
+ }
61
141
  const input = {
62
142
  first: first ?? artifact.refetch.pageSize,
63
143
  after: after ?? currentPageInfo.endCursor,
@@ -79,6 +159,38 @@ function cursorHandlers({
79
159
  fetch,
80
160
  metadata
81
161
  } = {}) => {
162
+ if (getLoading?.()) {
163
+ return loadingNoOp();
164
+ }
165
+ const isSinglePage = artifact.refetch?.mode === "SinglePage";
166
+ const direction = artifact.refetch?.direction;
167
+ if (isSinglePage && (direction === "forward" || direction === "both") && previousCursors.length > 0) {
168
+ const afterCursor = previousCursors.pop();
169
+ return loadPage({
170
+ pageSizeVar: "first",
171
+ functionName: "loadPreviousPage",
172
+ input: {
173
+ after: afterCursor,
174
+ first: last ?? artifact.refetch.pageSize,
175
+ before: null,
176
+ last: null
177
+ },
178
+ fetch,
179
+ metadata,
180
+ where: "end"
181
+ });
182
+ }
183
+ if (isSinglePage && direction === "forward") {
184
+ return Promise.resolve({
185
+ data: getState(),
186
+ errors: null,
187
+ fetching: false,
188
+ partial: false,
189
+ stale: false,
190
+ source: DataSource.Cache,
191
+ variables: getVariables()
192
+ });
193
+ }
82
194
  const currentPageInfo = getPageInfo();
83
195
  if (!currentPageInfo.hasPreviousPage) {
84
196
  return Promise.resolve({
@@ -91,6 +203,11 @@ function cursorHandlers({
91
203
  variables: getVariables()
92
204
  });
93
205
  }
206
+ const pVars = getVariables();
207
+ const isForwardPage = pVars?.first != null || pVars?.after != null;
208
+ if (isSinglePage && (direction === "backward" || direction === "both") && !isForwardPage) {
209
+ nextCursors.push(pVars?.before ?? null);
210
+ }
94
211
  const input = {
95
212
  before: before ?? currentPageInfo.startCursor,
96
213
  last: last ?? artifact.refetch.pageSize,
@@ -108,11 +225,15 @@ function cursorHandlers({
108
225
  },
109
226
  async fetch(args) {
110
227
  const { variables } = args ?? {};
228
+ if (getLoading?.()) {
229
+ return loadingNoOp();
230
+ }
111
231
  if (variables && !deepEquals(getVariables(), variables)) {
112
232
  return await parentFetch(args);
113
233
  }
234
+ let currentPageInfo;
114
235
  try {
115
- var currentPageInfo = extractPageInfo(getState(), artifact.refetch.path);
236
+ currentPageInfo = extractPageInfo(getState(), artifact.refetch.path);
116
237
  } catch {
117
238
  return await parentFetch(args);
118
239
  }
@@ -120,21 +241,21 @@ function cursorHandlers({
120
241
  const count = countPage(artifact.refetch.path.concat("edges"), getState()) || artifact.refetch.pageSize;
121
242
  if (count && count > artifact.refetch.pageSize) {
122
243
  if (currentPageInfo.hasPreviousPage && currentPageInfo.hasNextPage && // only log if they haven't provided special parameters
123
- !(variables?.["first"] && variables?.["after"] || variables?.["last"] && variables?.["before"])) {
124
- console.warn(`\u26A0\uFE0F Encountered a fetch() in the middle of the connection.
244
+ !(variables?.first && variables?.after || variables?.last && variables?.before)) {
245
+ console.warn(`! Encountered a fetch() in the middle of the connection.
125
246
  Make sure to pass a cursor value by hand that includes the current set (ie the entry before startCursor)
126
247
  `);
127
248
  }
128
249
  if (!currentPageInfo.hasPreviousPage) {
129
- queryVariables["first"] = count;
130
- queryVariables["after"] = null;
131
- queryVariables["last"] = null;
132
- queryVariables["before"] = null;
250
+ queryVariables.first = count;
251
+ queryVariables.after = null;
252
+ queryVariables.last = null;
253
+ queryVariables.before = null;
133
254
  } else if (!currentPageInfo.hasNextPage) {
134
- queryVariables["last"] = count;
135
- queryVariables["first"] = null;
136
- queryVariables["after"] = null;
137
- queryVariables["before"] = null;
255
+ queryVariables.last = count;
256
+ queryVariables.first = null;
257
+ queryVariables.after = null;
258
+ queryVariables.before = null;
138
259
  }
139
260
  }
140
261
  Object.assign(queryVariables, variables ?? {});
@@ -148,15 +269,16 @@ Make sure to pass a cursor value by hand that includes the current set (ie the e
148
269
  }
149
270
  function offsetHandlers({
150
271
  artifact,
151
- storeName,
272
+ storeName: _storeName,
152
273
  getState,
153
274
  getVariables,
154
275
  fetch: parentFetch,
155
276
  fetchUpdate: parentFetchUpdate,
156
- getSession
277
+ getSession,
278
+ getLoading
157
279
  }) {
158
- let isSinglePage = artifact.refetch?.mode === "SinglePage";
159
- let getOffset = () => {
280
+ const isSinglePage = artifact.refetch?.mode === "SinglePage";
281
+ const getOffset = () => {
160
282
  let offset = artifact.refetch?.start || countPage(artifact.refetch.path, getState()) || artifact.refetch.pageSize;
161
283
  if (isSinglePage) {
162
284
  offset += getVariables()?.offset ?? 0;
@@ -171,6 +293,9 @@ function offsetHandlers({
171
293
  fetch,
172
294
  metadata
173
295
  } = {}) => {
296
+ if (getLoading?.()) {
297
+ return;
298
+ }
174
299
  const queryVariables = {
175
300
  ...getVariables(),
176
301
  offset: offset ?? getOffset()
@@ -194,6 +319,17 @@ function offsetHandlers({
194
319
  },
195
320
  async fetch(params = {}) {
196
321
  const { variables } = params;
322
+ if (getLoading?.()) {
323
+ return {
324
+ data: getState(),
325
+ errors: null,
326
+ fetching: false,
327
+ partial: false,
328
+ stale: false,
329
+ source: DataSource.Cache,
330
+ variables: getVariables() ?? null
331
+ };
332
+ }
197
333
  if (variables && !deepEquals(getVariables(), variables)) {
198
334
  return parentFetch.call(this, params);
199
335
  }
@@ -1,14 +1,14 @@
1
- import type { ConfigFile } from './config';
2
- import { type FragmentArtifact, type MutationArtifact, type QueryArtifact, type SubscriptionArtifact, type SubscriptionSelection } from './types';
3
- export declare function marshalSelection({ selection, data, }: {
1
+ import type { ConfigFile } from 'houdini';
2
+ import { type FragmentArtifact, type MutationArtifact, type QueryArtifact, type SubscriptionArtifact, type SubscriptionSelection } from './types.js';
3
+ export declare function marshalSelection({ selection, data, config, }: {
4
4
  selection: SubscriptionSelection;
5
5
  data: any;
6
+ config?: ConfigFile;
6
7
  }): {} | null | undefined;
7
- export declare function marshalInputs<T>({ artifact, input, config, rootType, }: {
8
+ export declare function marshalInputs({ artifact, input, config, rootType, }: {
8
9
  artifact: QueryArtifact | MutationArtifact | SubscriptionArtifact | FragmentArtifact;
9
10
  input: unknown;
10
11
  rootType?: string;
11
- config: ConfigFile;
12
+ config?: ConfigFile;
12
13
  }): {} | null | undefined;
13
14
  export declare function isScalar(config: ConfigFile, type: string): boolean;
14
- export declare function parseScalar(config: ConfigFile, type: string, value?: string): string | number | boolean | undefined;
@@ -1,20 +1,20 @@
1
- import { getCurrentConfig } from "./config";
2
- import { getFieldsForType } from "./selection";
1
+ import { getCurrentConfig } from "./config.js";
2
+ import { getFieldsForType } from "./selection.js";
3
3
  import {
4
4
  fragmentKey
5
- } from "./types";
5
+ } from "./types.js";
6
6
  function marshalSelection({
7
7
  selection,
8
- data
8
+ data,
9
+ config = getCurrentConfig()
9
10
  }) {
10
- const config = getCurrentConfig();
11
11
  if (data === null || typeof data === "undefined") {
12
12
  return data;
13
13
  }
14
14
  if (Array.isArray(data)) {
15
- return data.map((val) => marshalSelection({ selection, data: val }));
15
+ return data.map((val) => marshalSelection({ selection, data: val, config }));
16
16
  }
17
- const targetSelection = getFieldsForType(selection, data["__typename"], false);
17
+ const targetSelection = getFieldsForType(selection, data.__typename, false);
18
18
  return Object.fromEntries(
19
19
  Object.entries(data).map(([fieldName, value]) => {
20
20
  if (fieldName === fragmentKey) {
@@ -25,7 +25,7 @@ function marshalSelection({
25
25
  return [fieldName, value];
26
26
  }
27
27
  if (selection2) {
28
- return [fieldName, marshalSelection({ selection: selection2, data: value })];
28
+ return [fieldName, marshalSelection({ selection: selection2, data: value, config })];
29
29
  }
30
30
  if (config.scalars?.[type]) {
31
31
  const marshalFn = config.scalars[type].marshal;
@@ -46,7 +46,7 @@ function marshalSelection({
46
46
  function marshalInputs({
47
47
  artifact,
48
48
  input,
49
- config,
49
+ config = getCurrentConfig(),
50
50
  rootType = "@root"
51
51
  }) {
52
52
  if (input === null || typeof input === "undefined") {
@@ -82,41 +82,8 @@ function marshalInputs({
82
82
  function isScalar(config, type) {
83
83
  return ["String", "Boolean", "Float", "ID", "Int"].concat(Object.keys(config.scalars || {})).includes(type);
84
84
  }
85
- function parseScalar(config, type, value) {
86
- if (typeof value === "undefined") {
87
- return void 0;
88
- }
89
- if (type === "Boolean") {
90
- return value === "true";
91
- }
92
- if (type === "ID") {
93
- return value;
94
- }
95
- if (type === "String") {
96
- return value;
97
- }
98
- if (type === "Int") {
99
- const result = parseInt(value, 10);
100
- if (Number.isNaN(result)) {
101
- return void 0;
102
- }
103
- return result;
104
- }
105
- if (type === "Float") {
106
- const result = parseFloat(value);
107
- if (Number.isNaN(result)) {
108
- return void 0;
109
- }
110
- return result;
111
- }
112
- if (config.scalars?.[type]?.marshal) {
113
- return config.scalars[type]?.marshal(value);
114
- }
115
- return value;
116
- }
117
85
  export {
118
86
  isScalar,
119
87
  marshalInputs,
120
- marshalSelection,
121
- parseScalar
88
+ marshalSelection
122
89
  };
@@ -1,2 +1,2 @@
1
- import type { SubscriptionSelection } from './types';
1
+ import type { SubscriptionSelection } from './types.js';
2
2
  export declare function getFieldsForType(selection: SubscriptionSelection, __typename: string | undefined | null, loading: boolean): Required<SubscriptionSelection>['fields'];
@@ -1,4 +1,19 @@
1
+ const _memoCache = /* @__PURE__ */ new WeakMap();
1
2
  function getFieldsForType(selection, __typename, loading) {
3
+ const cacheKey = `${__typename ?? ""}:${loading ? 1 : 0}`;
4
+ let inner = _memoCache.get(selection);
5
+ if (inner !== void 0) {
6
+ const cached = inner.get(cacheKey);
7
+ if (cached !== void 0) return cached;
8
+ } else {
9
+ inner = /* @__PURE__ */ new Map();
10
+ _memoCache.set(selection, inner);
11
+ }
12
+ const result = _getFieldsForType(selection, __typename, loading);
13
+ inner.set(cacheKey, result);
14
+ return result;
15
+ }
16
+ function _getFieldsForType(selection, __typename, loading) {
2
17
  if (loading) {
3
18
  if (selection.loadingTypes && selection.loadingTypes.length > 0) {
4
19
  return deepMerge(
@@ -20,11 +35,11 @@ function getFieldsForType(selection, __typename, loading) {
20
35
  }
21
36
  function deepMerge(...objects) {
22
37
  const mergedObj = {};
23
- for (let obj of objects) {
38
+ for (const obj of objects) {
24
39
  if (!obj) {
25
40
  continue;
26
41
  }
27
- for (let prop in obj) {
42
+ for (const prop in obj) {
28
43
  if (prop in obj) {
29
44
  const val = obj[prop];
30
45
  if (typeof val === "object" && val !== null && !Array.isArray(val)) {
@@ -7,7 +7,7 @@ export declare class Writable<T> {
7
7
  subscribe(run: Subscriber<T>, invalidate?: Invalidator<T>): Unsubscriber;
8
8
  }
9
9
  /** Start and stop notification callbacks. */
10
- type StartStopNotifier<T> = (set: Subscriber<T>) => Unsubscriber | void;
10
+ type StartStopNotifier<T> = (set: Subscriber<T>) => Unsubscriber | undefined;
11
11
  /** Callback to inform of a value updates. */
12
12
  export type Subscriber<T> = (value: T) => void;
13
13
  /** Unsubscribes from value updates. */
@@ -1,6 +1,5 @@
1
1
  const subscriber_queue = [];
2
- const noop = () => {
3
- };
2
+ const noop = () => void 0;
4
3
  class Writable {
5
4
  state;
6
5
  #subscribers;
@@ -50,7 +49,7 @@ class Writable {
50
49
  }
51
50
  }
52
51
  function safe_not_equal(a, b) {
53
- return a != a ? b == b : a !== b || a && typeof a === "object" || typeof a === "function";
52
+ return a !== a ? b === b : a !== b || a && typeof a === "object" || typeof a === "function";
54
53
  }
55
54
  export {
56
55
  Writable