houdini 2.0.0-next.9 → 2.0.1

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 +627 -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 +2 -3
  32. package/build/lib/parse.js +33 -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} +107 -102
  116. package/build/{runtime-esm/lib → runtime}/types.js +37 -15
  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 +433 -0
  122. package/build/vite/houdini.d.ts +4 -10
  123. package/build/vite/houdini.js +144 -0
  124. package/build/vite/index.d.ts +13 -7
  125. package/build/vite/index.js +106 -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,23 +0,0 @@
1
- const fetchParams = (fn = () => ({})) => () => ({
2
- start(ctx, { next, marshalVariables }) {
3
- next({
4
- ...ctx,
5
- fetchParams: fn({
6
- // most of the stuff comes straight from the context
7
- config: ctx.config,
8
- policy: ctx.policy,
9
- metadata: ctx.metadata,
10
- session: ctx.session,
11
- stuff: ctx.stuff,
12
- // a few fields are renamed or modified
13
- document: ctx.artifact,
14
- variables: marshalVariables(ctx),
15
- text: ctx.text,
16
- hash: ctx.hash
17
- })
18
- });
19
- }
20
- });
21
- export {
22
- fetchParams
23
- };
@@ -1,2 +0,0 @@
1
- import type { Cache } from '../../cache/cache';
2
- export declare const fragment: (cache: Cache) => import("..").ClientPlugin;
@@ -1,53 +0,0 @@
1
- import { deepEquals } from "../../lib/deepEquals";
2
- import { ArtifactKind, DataSource } from "../../lib/types";
3
- import { documentPlugin } from "../utils";
4
- const fragment = (cache) => documentPlugin(ArtifactKind.Fragment, function() {
5
- let subscriptionSpec = null;
6
- let lastReference = null;
7
- return {
8
- // establish the cache subscription
9
- start(ctx, { next, resolve, variablesChanged, marshalVariables }) {
10
- if (!ctx.stuff.parentID) {
11
- return next(ctx);
12
- }
13
- const currentReference = {
14
- parent: ctx.stuff.parentID,
15
- variables: marshalVariables(ctx)
16
- };
17
- if (!ctx.cacheParams?.disableSubscriptions && (!deepEquals(lastReference, currentReference) || variablesChanged(ctx))) {
18
- if (subscriptionSpec) {
19
- cache.unsubscribe(subscriptionSpec, subscriptionSpec.variables?.() || {});
20
- }
21
- const variables = marshalVariables(ctx);
22
- subscriptionSpec = {
23
- rootType: ctx.artifact.rootType,
24
- selection: ctx.artifact.selection,
25
- variables: () => variables,
26
- parentID: ctx.stuff.parentID,
27
- set: (newValue) => {
28
- resolve(ctx, {
29
- data: newValue,
30
- errors: null,
31
- fetching: false,
32
- partial: false,
33
- stale: false,
34
- source: DataSource.Cache,
35
- variables
36
- });
37
- }
38
- };
39
- cache.subscribe(subscriptionSpec, variables);
40
- lastReference = currentReference;
41
- }
42
- next(ctx);
43
- },
44
- cleanup() {
45
- if (subscriptionSpec) {
46
- cache.unsubscribe(subscriptionSpec, subscriptionSpec.variables?.());
47
- }
48
- }
49
- };
50
- });
51
- export {
52
- fragment
53
- };
@@ -1,9 +0,0 @@
1
- export * from './fetch';
2
- export * from './cache';
3
- export * from './query';
4
- export * from './fragment';
5
- export * from './mutation';
6
- export * from './subscription';
7
- export * from './throwOnError';
8
- export * from './fetchParams';
9
- export { optimisticKeys } from './optimisticKeys';
@@ -1,12 +0,0 @@
1
- export * from "./fetch";
2
- export * from "./cache";
3
- export * from "./query";
4
- export * from "./fragment";
5
- export * from "./mutation";
6
- export * from "./subscription";
7
- export * from "./throwOnError";
8
- export * from "./fetchParams";
9
- import { optimisticKeys } from "./optimisticKeys";
10
- export {
11
- optimisticKeys
12
- };
@@ -1,4 +0,0 @@
1
- import type { NestedList } from '../../lib/types';
2
- import type { ClientPlugin } from '../documentStore';
3
- declare const plugins: NestedList<ClientPlugin>;
4
- export default plugins;
@@ -1,5 +0,0 @@
1
- const plugins = [];
2
- var injectedPlugins_default = plugins;
3
- export {
4
- injectedPlugins_default as default
5
- };
@@ -1,2 +0,0 @@
1
- import type { Cache } from '../../cache/cache';
2
- export declare const mutation: (cache: Cache) => import("..").ClientPlugin;
@@ -1,65 +0,0 @@
1
- import { marshalSelection } from "../../lib/scalars";
2
- import { ArtifactKind } from "../../lib/types";
3
- import { documentPlugin } from "../utils";
4
- const mutation = (cache) => documentPlugin(ArtifactKind.Mutation, () => {
5
- return {
6
- async start(ctx, { next, marshalVariables }) {
7
- const layerOptimistic = cache._internal_unstable.storage.createLayer(true);
8
- let toNotify = [];
9
- const optimisticResponse = ctx.stuff.optimisticResponse;
10
- if (optimisticResponse) {
11
- toNotify = cache.write({
12
- selection: ctx.artifact.selection,
13
- // make sure that any scalar values get processed into something we can cache
14
- data: await marshalSelection({
15
- selection: ctx.artifact.selection,
16
- data: optimisticResponse
17
- }),
18
- variables: marshalVariables(ctx),
19
- layer: layerOptimistic.id
20
- });
21
- }
22
- ctx.cacheParams = {
23
- ...ctx.cacheParams,
24
- // write to the mutation's layer
25
- layer: layerOptimistic,
26
- // notify any subscribers that we updated with the optimistic response
27
- // in order to address situations where the optimistic update was wrong
28
- notifySubscribers: toNotify,
29
- // make sure that we notify subscribers for any values that we compare
30
- // in order to address any race conditions when comparing the previous value
31
- forceNotify: true
32
- };
33
- next(ctx);
34
- },
35
- afterNetwork(ctx, { resolve }) {
36
- if (ctx.cacheParams?.layer) {
37
- cache.clearLayer(ctx.cacheParams.layer.id);
38
- }
39
- resolve(ctx);
40
- },
41
- end(ctx, { resolve, value }) {
42
- const hasErrors = value.errors && value.errors.length > 0;
43
- if (hasErrors) {
44
- if (ctx.cacheParams?.layer) {
45
- cache.clearLayer(ctx.cacheParams.layer.id);
46
- }
47
- }
48
- if (ctx.cacheParams?.layer) {
49
- cache._internal_unstable.storage.resolveLayer(ctx.cacheParams.layer.id);
50
- }
51
- resolve(ctx);
52
- },
53
- catch(ctx, { error }) {
54
- if (ctx.cacheParams?.layer) {
55
- const { layer } = ctx.cacheParams;
56
- cache.clearLayer(layer.id);
57
- cache._internal_unstable.storage.resolveLayer(layer.id);
58
- }
59
- throw error;
60
- }
61
- };
62
- });
63
- export {
64
- mutation
65
- };
@@ -1,7 +0,0 @@
1
- import type { Cache } from '../../cache/cache';
2
- import type { ClientPlugin } from '../documentStore';
3
- export type CallbackMap = Record<string | number, Array<(newID: any) => void>>;
4
- export type KeyMap = Record<number, Record<string, keyof CallbackMap>>;
5
- type OptimisticObjectIDMap = Record<number, Record<string, string>>;
6
- export declare const optimisticKeys: (cache: Cache, callbackCache?: CallbackMap, keyCache?: KeyMap, objectIDs?: OptimisticObjectIDMap, invocationCounter?: number) => ClientPlugin;
7
- export {};
@@ -1,290 +0,0 @@
1
- import configFile from "../../imports/config";
2
- import { computeID, getFieldsForType, keyFieldsForType, marshalSelection } from "../../lib";
3
- import { ArtifactKind } from "../../lib/types";
4
- const keys = {};
5
- const callbacks = {};
6
- const objectIDMap = {};
7
- const optimisticKeys = (cache, callbackCache = callbacks, keyCache = keys, objectIDs = objectIDMap, invocationCounter = 1) => () => {
8
- return {
9
- async start(ctx, { next }) {
10
- const optimisticResponse = ctx.stuff.optimisticResponse;
11
- const newCtx = { ...ctx };
12
- if (optimisticResponse && ctx.artifact.kind === ArtifactKind.Mutation && ctx.artifact.optimisticKeys) {
13
- newCtx.stuff.mutationID = invocationCounter++;
14
- addKeysToResponse({
15
- selection: ctx.artifact.selection,
16
- response: optimisticResponse,
17
- callbackStore: callbackCache,
18
- keyStore: keyCache,
19
- objectIDs,
20
- mutationID: newCtx.stuff.mutationID
21
- });
22
- newCtx.stuff.optimisticResponse = optimisticResponse;
23
- }
24
- next(newCtx);
25
- },
26
- // if a request has variables that contain an optimistic key we need to block the
27
- // request before it is sent to the server
28
- beforeNetwork(ctx, { next }) {
29
- if (Object.keys(keyCache).length === 0) {
30
- return next(ctx);
31
- }
32
- const pendingVariables = extractInputKeys(
33
- ctx.variables ?? {},
34
- callbackCache
35
- );
36
- if (Object.keys(pendingVariables).length === 0) {
37
- return next(ctx);
38
- }
39
- for (const key of Object.keys(pendingVariables)) {
40
- callbackCache[key].push((newID) => {
41
- pendingVariables[key] = newID;
42
- if (Object.values(pendingVariables).every((value) => value !== null)) {
43
- next({
44
- ...ctx,
45
- variables: replaceKeyWithVariable(
46
- { ...ctx.variables },
47
- pendingVariables
48
- )
49
- });
50
- }
51
- });
52
- }
53
- },
54
- afterNetwork(ctx, { value, resolve }) {
55
- if (ctx.artifact.kind === ArtifactKind.Mutation && ctx.artifact.optimisticKeys && typeof ctx.stuff.mutationID !== "undefined") {
56
- extractResponseKeys(
57
- cache,
58
- value.data ?? {},
59
- ctx.artifact.selection,
60
- keyCache,
61
- ctx.stuff.mutationID,
62
- {
63
- onNewKey: (optimisticValue, realValue) => {
64
- callbackCache[optimisticValue].forEach((cb) => {
65
- cb(realValue);
66
- });
67
- delete callbackCache[optimisticValue];
68
- },
69
- onIDChange: (optimisticValue, realValue) => {
70
- cache.registerKeyMap(optimisticValue, realValue);
71
- }
72
- }
73
- );
74
- }
75
- resolve(ctx);
76
- },
77
- // when the mutation ends, we no longer have any dependents that we have to track
78
- end(ctx, { resolve }) {
79
- if (typeof ctx.stuff.mutationID !== "undefined") {
80
- delete keyCache[ctx.stuff.mutationID];
81
- delete objectIDs[ctx.stuff.mutationID];
82
- }
83
- resolve(ctx);
84
- }
85
- };
86
- };
87
- function addKeysToResponse(args) {
88
- let targetSelection = getFieldsForType(
89
- args.selection,
90
- args.response["__typename"],
91
- false
92
- );
93
- const newKeys = [];
94
- for (const [field, { type, selection: fieldSelection, optimisticKey }] of Object.entries(
95
- targetSelection
96
- )) {
97
- const value = args.response[field];
98
- const pathSoFar = `${args.path ?? ""}.${field}`;
99
- if (optimisticKey) {
100
- let keyValue;
101
- if (value) {
102
- const { marshaled } = marshalSelection({
103
- data: { marshaled: value },
104
- selection: {
105
- fields: {
106
- value: {
107
- type,
108
- keyRaw: "value"
109
- }
110
- }
111
- }
112
- });
113
- keyValue = marshaled;
114
- } else {
115
- keyValue = generateKey(type);
116
- }
117
- newKeys.push(keyValue);
118
- args.response[field] = keyValue;
119
- args.callbackStore[keyValue] = [];
120
- args.keyStore[args.mutationID] = {
121
- [pathSoFar]: keyValue
122
- };
123
- }
124
- if (fieldSelection) {
125
- if (Array.isArray(value)) {
126
- for (const [index, item] of flattenList(value).entries()) {
127
- if (item && typeof item === "object" && !Array.isArray(item)) {
128
- addKeysToResponse({
129
- ...args,
130
- selection: fieldSelection,
131
- response: item,
132
- type,
133
- path: `${pathSoFar}[${index}]`
134
- });
135
- }
136
- }
137
- } else if (value && typeof value == "object") {
138
- addKeysToResponse({
139
- ...args,
140
- selection: fieldSelection,
141
- response: value,
142
- type,
143
- path: pathSoFar
144
- });
145
- }
146
- }
147
- }
148
- if (newKeys.length > 0) {
149
- const objID = `${args.type}:${computeID(configFile, args.type ?? "", args.response)}`;
150
- for (const key of newKeys) {
151
- args.objectIDs[args.mutationID] = {
152
- ...args.objectIDs[args.mutationID],
153
- [key]: objID
154
- };
155
- }
156
- }
157
- return args.response;
158
- }
159
- function extractInputKeys(obj, store, found = {}) {
160
- for (const value of Object.values(obj)) {
161
- if (typeof value === "string" && store[value]) {
162
- found[value] = null;
163
- }
164
- if (Array.isArray(value)) {
165
- for (const item of flattenList(value)) {
166
- if (item && typeof item === "object") {
167
- extractInputKeys(item, store, found);
168
- }
169
- }
170
- } else if (value && typeof value === "object") {
171
- extractInputKeys(value, store, found);
172
- }
173
- }
174
- return found;
175
- }
176
- function extractResponseKeys(cache, response, selection, keyMap, mutationID, events, objectIDs = objectIDMap, path = "", type = "") {
177
- let targetSelection = getFieldsForType(
178
- selection,
179
- response["__typename"],
180
- false
181
- );
182
- let optimisticID = null;
183
- for (const [field, value] of Object.entries(response)) {
184
- const pathSoFar = `${path ?? ""}.${field}`;
185
- if (typeof value === "string" && keyMap[mutationID][pathSoFar]) {
186
- const newKey = keyMap[mutationID][pathSoFar];
187
- events.onNewKey(newKey, value);
188
- optimisticID = objectIDs[mutationID][newKey];
189
- }
190
- if (!selection || !targetSelection[field]) {
191
- continue;
192
- }
193
- let { type: type2, selection: fieldSelection } = targetSelection[field];
194
- if (Array.isArray(value)) {
195
- for (const [index, item] of flattenList(value).entries()) {
196
- if (item && typeof item === "object" && fieldSelection) {
197
- extractResponseKeys(
198
- cache,
199
- item,
200
- fieldSelection,
201
- keyMap,
202
- mutationID,
203
- events,
204
- objectIDs,
205
- `${pathSoFar}[${index}]`,
206
- type2
207
- );
208
- }
209
- }
210
- } else if (value && typeof value === "object" && fieldSelection) {
211
- extractResponseKeys(
212
- cache,
213
- value,
214
- fieldSelection,
215
- keyMap,
216
- mutationID,
217
- events,
218
- objectIDs,
219
- pathSoFar,
220
- type2
221
- );
222
- }
223
- }
224
- if (optimisticID) {
225
- const id = computeID(configFile, type, response);
226
- events.onIDChange(`${type}:${id}`, optimisticID);
227
- cache.write({
228
- selection: {
229
- fields: Object.fromEntries(
230
- keyFieldsForType(configFile, type).map((key) => [
231
- key,
232
- {
233
- type: "scalar",
234
- keyRaw: key
235
- }
236
- ])
237
- )
238
- },
239
- parent: optimisticID,
240
- data: response
241
- });
242
- }
243
- }
244
- function flattenList(source) {
245
- const result = [];
246
- const left = [...source];
247
- while (left.length > 0) {
248
- const head = left.shift();
249
- if (Array.isArray(head)) {
250
- left.push(...head);
251
- } else {
252
- result.push(head);
253
- }
254
- }
255
- return result;
256
- }
257
- function replaceKeyWithVariable(variables, keys2) {
258
- for (const [key, value] of Object.entries(variables)) {
259
- if (typeof value === "string" && keys2[value]) {
260
- variables[key] = keys2[value];
261
- }
262
- if (Array.isArray(value)) {
263
- for (const item of flattenList(value)) {
264
- if (item && typeof item === "object") {
265
- replaceKeyWithVariable(item, keys2);
266
- }
267
- }
268
- } else if (value && typeof value === "object") {
269
- replaceKeyWithVariable(value, keys2);
270
- }
271
- }
272
- return variables;
273
- }
274
- function generateKey(type) {
275
- if (type === "Int") {
276
- return (/* @__PURE__ */ new Date()).getTime();
277
- }
278
- if (type === "String") {
279
- return (/* @__PURE__ */ new Date()).getTime().toString();
280
- }
281
- if (type === "ID") {
282
- return (/* @__PURE__ */ new Date()).getTime().toString();
283
- }
284
- throw new Error(
285
- `unsupported type for optimistic key: ${type}. Please provide a value in your mutation arguments.`
286
- );
287
- }
288
- export {
289
- optimisticKeys
290
- };
@@ -1,2 +0,0 @@
1
- import type { Cache } from '../../cache/cache';
2
- export declare const query: (cache: Cache) => import("..").ClientPlugin;
@@ -1,69 +0,0 @@
1
- import { ArtifactKind, DataSource } from "../../lib/types";
2
- import { documentPlugin } from "../utils";
3
- const query = (cache) => documentPlugin(ArtifactKind.Query, function() {
4
- let subscriptionSpec = null;
5
- let lastVariables = null;
6
- return {
7
- start(ctx, { next }) {
8
- const runtimeScalarPayload = {
9
- session: ctx.session
10
- };
11
- ctx.variables = {
12
- ...lastVariables,
13
- // we need to evaluate any runtime scalars but allow the user to overwrite them
14
- // by explicitly passing variables
15
- ...Object.fromEntries(
16
- Object.entries(ctx.artifact.input?.runtimeScalars ?? {}).map(
17
- ([field, type]) => {
18
- const runtimeScalar = ctx.config.features?.runtimeScalars?.[type];
19
- if (!runtimeScalar) {
20
- return [field, type];
21
- }
22
- return [field, runtimeScalar.resolve(runtimeScalarPayload)];
23
- }
24
- )
25
- ),
26
- ...ctx.variables
27
- };
28
- next(ctx);
29
- },
30
- // patch subscriptions on the way out so that we don't get a cache update
31
- // before the promise resolves
32
- end(ctx, { resolve, marshalVariables, variablesChanged }) {
33
- if (variablesChanged(ctx) && !ctx.cacheParams?.disableSubscriptions) {
34
- if (subscriptionSpec) {
35
- cache.unsubscribe(subscriptionSpec, subscriptionSpec.variables?.() || {});
36
- }
37
- lastVariables = { ...marshalVariables(ctx) };
38
- const variables = lastVariables;
39
- subscriptionSpec = {
40
- rootType: ctx.artifact.rootType,
41
- selection: ctx.artifact.selection,
42
- variables: () => variables,
43
- set: (newValue) => {
44
- resolve(ctx, {
45
- data: newValue,
46
- errors: null,
47
- fetching: false,
48
- partial: false,
49
- stale: false,
50
- source: DataSource.Cache,
51
- variables: ctx.variables ?? {}
52
- });
53
- }
54
- };
55
- cache.subscribe(subscriptionSpec, lastVariables);
56
- }
57
- resolve(ctx);
58
- },
59
- cleanup() {
60
- if (subscriptionSpec) {
61
- cache.unsubscribe(subscriptionSpec, subscriptionSpec.variables?.());
62
- lastVariables = null;
63
- }
64
- }
65
- };
66
- });
67
- export {
68
- query
69
- };
@@ -1,20 +0,0 @@
1
- import type { ClientPluginContext } from '../documentStore';
2
- export declare function subscription(factory: SubscriptionHandler): import("../documentStore").ClientPlugin;
3
- export type SubscriptionHandler = (ctx: ClientPluginContext) => SubscriptionClient;
4
- export type SubscriptionClient = {
5
- subscribe: (payload: {
6
- operationName?: string;
7
- query: string;
8
- variables?: Record<string, unknown>;
9
- extensions?: Record<'persistedQuery', string> | Record<string, unknown>;
10
- }, handlers: {
11
- next: (payload: {
12
- data?: {} | null;
13
- errors?: readonly {
14
- message: string;
15
- }[];
16
- }) => void;
17
- error: (data: {}) => void;
18
- complete: () => void;
19
- }) => () => void;
20
- };
@@ -1,90 +0,0 @@
1
- import { deepEquals } from "../../lib/deepEquals";
2
- import { ArtifactKind, DataSource } from "../../lib/types";
3
- import { documentPlugin } from "../utils";
4
- function subscription(factory) {
5
- return documentPlugin(ArtifactKind.Subscription, () => {
6
- let clearSubscription = null;
7
- let check = null;
8
- return {
9
- start(ctx, { resolve, next, initialValue }) {
10
- if (typeof globalThis.window === "undefined") {
11
- resolve(ctx, initialValue);
12
- return;
13
- }
14
- next(ctx);
15
- },
16
- async network(ctx, { resolve, initialValue, variablesChanged, marshalVariables }) {
17
- const checkValue = {
18
- fetchParams: ctx.fetchParams ?? {},
19
- session: ctx.session ?? {},
20
- metadata: ctx.metadata ?? {}
21
- };
22
- const changed = variablesChanged(ctx);
23
- const sessionChange = !deepEquals(check, checkValue);
24
- if (!changed && !sessionChange) {
25
- resolve(ctx, initialValue);
26
- return;
27
- }
28
- check = checkValue;
29
- if (sessionChange) {
30
- await loadClient(ctx, factory);
31
- }
32
- clearSubscription?.();
33
- clearSubscription = client.subscribe(
34
- {
35
- operationName: ctx.name,
36
- query: ctx.text,
37
- variables: marshalVariables(ctx)
38
- },
39
- {
40
- next: ({ data, errors }) => {
41
- resolve(ctx, {
42
- data: data ?? null,
43
- errors: [...errors ?? []],
44
- fetching: false,
45
- partial: true,
46
- stale: false,
47
- source: DataSource.Network,
48
- variables: ctx.variables ?? {}
49
- });
50
- },
51
- error(data) {
52
- clearSubscription?.();
53
- resolve(ctx, {
54
- partial: true,
55
- stale: false,
56
- source: DataSource.Network,
57
- data: null,
58
- errors: [data],
59
- fetching: false,
60
- variables: ctx.variables ?? {}
61
- });
62
- },
63
- complete() {
64
- }
65
- }
66
- );
67
- },
68
- cleanup() {
69
- clearSubscription?.();
70
- check = null;
71
- }
72
- };
73
- });
74
- }
75
- let pendingCreate = null;
76
- let client;
77
- function loadClient(ctx, factory) {
78
- if (pendingCreate) {
79
- return pendingCreate;
80
- }
81
- pendingCreate = new Promise((resolve) => {
82
- client = factory(ctx);
83
- resolve();
84
- pendingCreate = null;
85
- });
86
- return pendingCreate;
87
- }
88
- export {
89
- subscription
90
- };
@@ -1,15 +0,0 @@
1
- import { type HoudiniClientConstructorArgs } from '..';
2
- import type { DocumentArtifact, GraphQLObject } from '../../lib';
3
- import type { ClientPlugin, ClientPluginContext } from '../documentStore';
4
- import { DocumentStore } from '../documentStore';
5
- /**
6
- * Utilities for testing the cache plugin
7
- */
8
- export declare function createStore(args?: Partial<HoudiniClientConstructorArgs> & {
9
- artifact?: DocumentArtifact;
10
- }): DocumentStore<any, any>;
11
- export declare function fakeFetch({ data, spy, onRequest, }: {
12
- data?: any;
13
- spy?: (ctx: ClientPluginContext) => void;
14
- onRequest?: (variables: GraphQLObject, cb: () => void) => void;
15
- }): ClientPlugin;