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,5 +1,5 @@
1
- import type { GraphQLValue, SubscriptionSelection, SubscriptionSpec } from '../lib/types';
2
- import { type Cache } from './cache';
1
+ import type { GraphQLValue, ListFilter, SubscriptionSelection, SubscriptionSpec } from '../types.js';
2
+ import type { Cache } from './index.js';
3
3
  export type FieldSelection = [
4
4
  SubscriptionSpec,
5
5
  Required<SubscriptionSelection>['fields'] | undefined
@@ -11,7 +11,7 @@ export declare class InMemorySubscriptions {
11
11
  private keyVersions;
12
12
  activeFields(parent: string): string[];
13
13
  copySubscribers(from: string, to: string): void;
14
- add({ parent, spec, selection, variables, parentType, }: {
14
+ add({ parent, spec, selection, variables, parentType, masked, }: {
15
15
  parent: string;
16
16
  parentType?: string;
17
17
  spec: SubscriptionSpec;
@@ -19,12 +19,14 @@ export declare class InMemorySubscriptions {
19
19
  variables: {
20
20
  [key: string]: GraphQLValue;
21
21
  };
22
+ masked?: boolean;
22
23
  }): void;
23
- addFieldSubscription({ id, key, selection, type, }: {
24
+ addFieldSubscription({ id, key, selection, type: _type, masked, }: {
24
25
  id: string;
25
26
  key: string;
26
27
  selection: FieldSelection;
27
28
  type: string;
29
+ masked?: boolean;
28
30
  }): void;
29
31
  registerList({ list, id, key, parentType, selection, filters, variables, }: {
30
32
  list: Required<Required<SubscriptionSelection>['fields'][string]>['list'];
@@ -35,18 +37,30 @@ export declare class InMemorySubscriptions {
35
37
  filters: Required<SubscriptionSelection>['fields'][string]['filters'];
36
38
  variables: Record<string, any>;
37
39
  }): void;
38
- addMany({ parent, variables, subscribers, parentType, }: {
40
+ addMany({ parent, variables, subscribers, parentType, masked, }: {
39
41
  parent: string;
40
42
  variables: {};
41
43
  subscribers: FieldSelection[];
42
44
  parentType: string;
45
+ masked?: boolean;
43
46
  }): void;
44
47
  get(id: string, field: string): FieldSelection[];
45
- getAll(id: string): FieldSelection[];
46
- remove(id: string, selection: SubscriptionSelection, targets: SubscriptionSpec[], variables: {}, visited?: string[]): void;
47
- reset(): SubscriptionSpec[];
48
+ getMaskedParents(id: string, field: string): FieldSelection[];
49
+ getAll(id: string, { includeMaskedParents }?: {
50
+ includeMaskedParents?: boolean;
51
+ }): FieldSelection[];
52
+ remove(id: string, selection: SubscriptionSelection, targets: SubscriptionSpec[], variables: {}, visited?: string[], masked?: boolean): void;
53
+ reset(): Readonly<{
54
+ rootType: string;
55
+ kind?: import("../types.js").ArtifactKinds;
56
+ selection: SubscriptionSelection;
57
+ onMessage: (message: import("../types.js").CacheMessage) => void;
58
+ parentID?: string;
59
+ variables?: () => any;
60
+ }>[];
48
61
  private removeSubscribers;
49
62
  removeAllSubscribers(id: string, targets?: SubscriptionSpec[]): void;
50
63
  get size(): number;
51
- findSubSelections(parentID: string, selection: SubscriptionSelection, variables: {}, searchTarget: string, selections?: SubscriptionSelection[]): Array<SubscriptionSelection>;
64
+ findSubSelections(parentID: string, selection: SubscriptionSelection, variables: {}, searchTarget: string, selections?: Array<SubscriptionSelection>): Array<SubscriptionSelection>;
52
65
  }
66
+ export declare function filterValue(filter: ListFilter, variables: Record<string, any>): any;
@@ -1,6 +1,6 @@
1
- import { flatten } from "../lib/flatten";
2
- import { getFieldsForType } from "../lib/selection";
3
- import { evaluateKey, rootID } from "./stuff";
1
+ import { flatten } from "../flatten.js";
2
+ import { getFieldsForType } from "../selection.js";
3
+ import { evaluateKey, rootID } from "./stuff.js";
4
4
  class InMemorySubscriptions {
5
5
  cache;
6
6
  constructor(cache) {
@@ -19,10 +19,11 @@ class InMemorySubscriptions {
19
19
  spec,
20
20
  selection,
21
21
  variables,
22
- parentType
22
+ parentType,
23
+ masked = false
23
24
  }) {
24
- const __typename = this.cache._internal_unstable.storage.get(parent, "__typename").value;
25
- let targetSelection = getFieldsForType(selection, __typename, false);
25
+ const __typename = this.cache._internal_unstable.storage.getTypename(parent);
26
+ const targetSelection = getFieldsForType(selection, __typename, false);
26
27
  for (const fieldSelection of Object.values(targetSelection || {})) {
27
28
  const {
28
29
  keyRaw,
@@ -32,22 +33,20 @@ class InMemorySubscriptions {
32
33
  filters,
33
34
  visible
34
35
  } = fieldSelection;
35
- if (!visible) {
36
- continue;
37
- }
36
+ const fieldMasked = masked || !visible;
38
37
  const key = evaluateKey(keyRaw, variables);
39
38
  let targetSelection2;
40
39
  if (innerSelection) {
41
- const __typename2 = this.cache._internal_unstable.storage.get(parent, "__typename").value;
42
- targetSelection2 = getFieldsForType(innerSelection, __typename2, false);
40
+ targetSelection2 = getFieldsForType(innerSelection, __typename, false);
43
41
  }
44
42
  this.addFieldSubscription({
45
43
  id: parent,
46
44
  key,
47
45
  selection: [spec, targetSelection2],
48
- type
46
+ type,
47
+ masked: fieldMasked
49
48
  });
50
- if (list) {
49
+ if (list && !fieldMasked) {
51
50
  this.registerList({
52
51
  list,
53
52
  filters,
@@ -63,7 +62,7 @@ class InMemorySubscriptions {
63
62
  parent,
64
63
  key
65
64
  );
66
- let children = !Array.isArray(linkedRecord) ? [linkedRecord] : flatten(linkedRecord) || [];
65
+ const children = !Array.isArray(linkedRecord) ? [linkedRecord] : flatten(linkedRecord) || [];
67
66
  for (const child of children) {
68
67
  if (!child) {
69
68
  continue;
@@ -73,7 +72,8 @@ class InMemorySubscriptions {
73
72
  spec,
74
73
  selection: innerSelection,
75
74
  variables,
76
- parentType: type
75
+ parentType: type,
76
+ masked: fieldMasked
77
77
  });
78
78
  }
79
79
  }
@@ -83,7 +83,8 @@ class InMemorySubscriptions {
83
83
  id,
84
84
  key,
85
85
  selection,
86
- type
86
+ type: _type,
87
+ masked = false
87
88
  }) {
88
89
  const spec = selection[0];
89
90
  if (!this.subscribers.has(id)) {
@@ -93,21 +94,22 @@ class InMemorySubscriptions {
93
94
  if (!subscriber.has(key)) {
94
95
  subscriber.set(key, {
95
96
  selections: [],
96
- referenceCounts: /* @__PURE__ */ new Map()
97
+ referenceCounts: /* @__PURE__ */ new Map(),
98
+ maskedParentSelections: [],
99
+ maskedParentReferenceCounts: /* @__PURE__ */ new Map()
97
100
  });
98
101
  }
99
102
  const subscriberField = subscriber.get(key);
103
+ const selections = masked ? subscriberField.maskedParentSelections : subscriberField.selections;
104
+ const referenceCounts = masked ? subscriberField.maskedParentReferenceCounts : subscriberField.referenceCounts;
100
105
  if (!this.keyVersions[key]) {
101
106
  this.keyVersions[key] = /* @__PURE__ */ new Set();
102
107
  }
103
108
  this.keyVersions[key].add(key);
104
- if (!subscriberField.selections.some(([{ set }]) => set === spec.set)) {
105
- subscriberField.selections.push([spec, selection[1]]);
109
+ if (!referenceCounts.has(spec.onMessage)) {
110
+ selections.push([spec, selection[1]]);
106
111
  }
107
- subscriberField.referenceCounts.set(
108
- spec.set,
109
- (subscriberField.referenceCounts.get(spec.set) || 0) + 1
110
- );
112
+ referenceCounts.set(spec.onMessage, (referenceCounts.get(spec.onMessage) || 0) + 1);
111
113
  this.cache._internal_unstable.lifetimes.resetLifetime(id, key);
112
114
  }
113
115
  registerList({
@@ -123,14 +125,14 @@ class InMemorySubscriptions {
123
125
  name: list.name,
124
126
  connection: list.connection,
125
127
  recordID: id,
126
- recordType: this.cache._internal_unstable.storage.get(id, "__typename")?.value || parentType,
128
+ recordType: this.cache._internal_unstable.storage.getTypename(id) || parentType,
127
129
  listType: list.type,
128
130
  key,
129
131
  selection,
130
- filters: Object.entries(filters || {}).reduce((acc, [key2, { kind, value }]) => {
132
+ filters: Object.entries(filters || {}).reduce((acc, [key2, filter]) => {
131
133
  return {
132
134
  ...acc,
133
- [key2]: kind !== "Variable" ? value : variables[value]
135
+ [key2]: filterValue(filter, variables)
134
136
  };
135
137
  }, {})
136
138
  });
@@ -140,7 +142,8 @@ class InMemorySubscriptions {
140
142
  parent,
141
143
  variables,
142
144
  subscribers,
143
- parentType
145
+ parentType,
146
+ masked = false
144
147
  }) {
145
148
  for (const [spec, targetSelection] of subscribers) {
146
149
  for (const selection of Object.values(targetSelection ?? {})) {
@@ -149,17 +152,20 @@ class InMemorySubscriptions {
149
152
  keyRaw,
150
153
  selection: innerSelection,
151
154
  list,
152
- filters
155
+ filters,
156
+ visible
153
157
  } = selection;
158
+ const fieldMasked = masked || !visible;
154
159
  const key = evaluateKey(keyRaw, variables);
155
160
  const fieldSelection = innerSelection ? getFieldsForType(innerSelection, parentType, false) : void 0;
156
161
  this.addFieldSubscription({
157
162
  id: parent,
158
163
  key,
159
164
  selection: [spec, fieldSelection],
160
- type: linkedType
165
+ type: linkedType,
166
+ masked: fieldMasked
161
167
  });
162
- if (list) {
168
+ if (list && !fieldMasked) {
163
169
  this.registerList({
164
170
  list,
165
171
  filters,
@@ -178,16 +184,14 @@ class InMemorySubscriptions {
178
184
  if (!linkedRecord) {
179
185
  continue;
180
186
  }
181
- const __typename = this.cache._internal_unstable.storage.get(
182
- linkedRecord,
183
- "__typename"
184
- ).value;
185
- let targetSelection2 = getFieldsForType(childSelection, __typename, false);
187
+ const __typename = this.cache._internal_unstable.storage.getTypename(linkedRecord);
188
+ const targetSelection2 = getFieldsForType(childSelection, __typename, false);
186
189
  this.addMany({
187
190
  parent: linkedRecord,
188
191
  variables,
189
192
  subscribers: subscribers.map(([sub]) => [sub, targetSelection2]),
190
- parentType: linkedType
193
+ parentType: linkedType,
194
+ masked: fieldMasked
191
195
  });
192
196
  }
193
197
  }
@@ -197,19 +201,23 @@ class InMemorySubscriptions {
197
201
  get(id, field) {
198
202
  return this.subscribers.get(id)?.get(field)?.selections || [];
199
203
  }
200
- getAll(id) {
204
+ getMaskedParents(id, field) {
205
+ return this.subscribers.get(id)?.get(field)?.maskedParentSelections || [];
206
+ }
207
+ getAll(id, { includeMaskedParents = false } = {}) {
201
208
  return [...this.subscribers.get(id)?.values() || []].flatMap(
202
- (fieldSub) => fieldSub.selections
209
+ (fieldSub) => includeMaskedParents ? fieldSub.selections.concat(fieldSub.maskedParentSelections) : fieldSub.selections
203
210
  );
204
211
  }
205
- remove(id, selection, targets, variables, visited = []) {
212
+ remove(id, selection, targets, variables, visited = [], masked = false) {
206
213
  visited.push(id);
207
214
  const linkedIDs = [];
208
- const __typename = this.cache._internal_unstable.storage.get(id, "__typename").value;
209
- let targetSelection = getFieldsForType(selection, __typename, false);
215
+ const __typename = this.cache._internal_unstable.storage.getTypename(id);
216
+ const targetSelection = getFieldsForType(selection, __typename, false);
210
217
  for (const fieldSelection of Object.values(targetSelection || {})) {
211
218
  const key = evaluateKey(fieldSelection.keyRaw, variables);
212
- this.removeSubscribers(id, key, targets);
219
+ const fieldMasked = masked || !fieldSelection.visible;
220
+ this.removeSubscribers(id, key, targets, fieldMasked);
213
221
  if (!fieldSelection.selection) {
214
222
  continue;
215
223
  }
@@ -217,12 +225,12 @@ class InMemorySubscriptions {
217
225
  const links = !Array.isArray(previousValue) ? [previousValue] : flatten(previousValue);
218
226
  for (const link of links) {
219
227
  if (link !== null) {
220
- linkedIDs.push([link, fieldSelection.selection || {}]);
228
+ linkedIDs.push([link, fieldSelection.selection || {}, fieldMasked]);
221
229
  }
222
230
  }
223
231
  }
224
- for (const [linkedRecordID, linkFields] of linkedIDs) {
225
- this.remove(linkedRecordID, linkFields, targets, visited);
232
+ for (const [linkedRecordID, linkFields, linkMasked] of linkedIDs) {
233
+ this.remove(linkedRecordID, linkFields, targets, variables, visited, linkMasked);
226
234
  }
227
235
  }
228
236
  reset() {
@@ -231,36 +239,51 @@ class InMemorySubscriptions {
231
239
  this.subscribers.delete(id);
232
240
  }
233
241
  const subscriptionSpecs = subscribers.flatMap(
234
- ([_id, fields]) => [...fields.values()].flatMap((field) => field.selections.map(([spec]) => spec))
242
+ ([_id, fields]) => [...fields.values()].flatMap(
243
+ (field) => field.selections.concat(field.maskedParentSelections).map(([spec]) => spec)
244
+ )
235
245
  );
236
246
  return subscriptionSpecs;
237
247
  }
238
- removeSubscribers(id, fieldName, specs) {
239
- let targets = [];
248
+ removeSubscribers(id, fieldName, specs, preferMasked = false) {
249
+ const targets = [];
250
+ const maskedParentTargets = [];
240
251
  const subscriber = this.subscribers.get(id);
241
252
  if (!subscriber) {
242
253
  return;
243
254
  }
244
255
  const subscriberField = subscriber.get(fieldName);
256
+ if (!subscriberField) {
257
+ return;
258
+ }
245
259
  for (const spec of specs) {
246
- const counts = subscriberField?.referenceCounts;
247
- if (!counts?.has(spec.set)) {
260
+ const ordered = preferMasked ? [
261
+ [subscriberField.maskedParentReferenceCounts, maskedParentTargets],
262
+ [subscriberField.referenceCounts, targets]
263
+ ] : [
264
+ [subscriberField.referenceCounts, targets],
265
+ [subscriberField.maskedParentReferenceCounts, maskedParentTargets]
266
+ ];
267
+ const match = ordered.find(([counts2]) => counts2.has(spec.onMessage));
268
+ if (!match) {
248
269
  continue;
249
270
  }
250
- const newVal = (counts.get(spec.set) || 0) - 1;
251
- counts.set(spec.set, newVal);
271
+ const [counts, removed] = match;
272
+ const newVal = (counts.get(spec.onMessage) || 0) - 1;
273
+ counts.set(spec.onMessage, newVal);
252
274
  if (newVal <= 0) {
253
- targets.push(spec.set);
254
- counts.delete(spec.set);
255
- }
256
- if (counts.size === 0) {
257
- subscriber.delete(fieldName);
275
+ removed.push(spec.onMessage);
276
+ counts.delete(spec.onMessage);
258
277
  }
259
278
  }
260
- if (subscriberField) {
261
- subscriberField.selections = this.get(id, fieldName).filter(
262
- ([{ set }]) => !targets.includes(set)
263
- );
279
+ subscriberField.selections = subscriberField.selections.filter(
280
+ ([{ onMessage }]) => !targets.includes(onMessage)
281
+ );
282
+ subscriberField.maskedParentSelections = subscriberField.maskedParentSelections.filter(
283
+ ([{ onMessage }]) => !maskedParentTargets.includes(onMessage)
284
+ );
285
+ if (subscriberField.referenceCounts.size === 0 && subscriberField.maskedParentReferenceCounts.size === 0) {
286
+ subscriber.delete(fieldName);
264
287
  }
265
288
  if (subscriber.size === 0) {
266
289
  this.subscribers.delete(id);
@@ -269,7 +292,7 @@ class InMemorySubscriptions {
269
292
  removeAllSubscribers(id, targets) {
270
293
  if (!targets) {
271
294
  targets = [...this.subscribers.get(id)?.values() || []].flatMap(
272
- (spec) => spec.selections.flatMap((sel) => sel[0])
295
+ (fieldSub) => fieldSub.selections.concat(fieldSub.maskedParentSelections).flatMap((sel) => sel[0])
273
296
  );
274
297
  }
275
298
  for (const target of targets) {
@@ -294,8 +317,8 @@ class InMemorySubscriptions {
294
317
  return size;
295
318
  }
296
319
  findSubSelections(parentID, selection, variables, searchTarget, selections = []) {
297
- const __typename = this.cache._internal_unstable.storage.get(parentID, "__typename").value;
298
- let targetSelection = getFieldsForType(selection, __typename, false);
320
+ const __typename = this.cache._internal_unstable.storage.getTypename(parentID);
321
+ const targetSelection = getFieldsForType(selection, __typename, false);
299
322
  for (const fieldSelection of Object.values(targetSelection || {})) {
300
323
  if (!fieldSelection.selection) {
301
324
  continue;
@@ -320,6 +343,21 @@ class InMemorySubscriptions {
320
343
  return selections;
321
344
  }
322
345
  }
346
+ function filterValue(filter, variables) {
347
+ if (filter.kind === "Variable") {
348
+ return variables[filter.value];
349
+ }
350
+ if (filter.kind === "Object") {
351
+ return Object.fromEntries(
352
+ Object.entries(filter.value).map(([key, value]) => [key, filterValue(value, variables)])
353
+ );
354
+ }
355
+ if (filter.kind === "List") {
356
+ return filter.value.map((value) => filterValue(value, variables));
357
+ }
358
+ return filter.value;
359
+ }
323
360
  export {
324
- InMemorySubscriptions
361
+ InMemorySubscriptions,
362
+ filterValue
325
363
  };
@@ -1,19 +1,17 @@
1
- /// <reference path="../../../../../houdini.d.ts" />
2
- import type { Cache } from '../cache/cache';
3
- import type { DocumentArtifact, GraphQLVariables, GraphQLObject, NestedList } from '../lib/types';
4
- import type { ClientHooks, ClientPlugin } from './documentStore';
5
- import { DocumentStore } from './documentStore';
6
- import type { FetchParamFn, ThrowOnErrorOperations, ThrowOnErrorParams } from './plugins';
7
- export { DocumentStore, type ClientPlugin, type SendParams } from './documentStore';
8
- export { fetch, mutation, query, subscription } from './plugins';
1
+ import type { ConfigFile } from 'houdini';
2
+ import type { Cache } from './cache/index.js';
3
+ import type { ClientHooks, ClientPlugin } from './documentStore.js';
4
+ import { DocumentStore } from './documentStore.js';
5
+ import type { DocumentArtifact, GraphQLVariables, GraphQLObject, NestedList } from './types.js';
6
+ export { DocumentStore } from './documentStore.js';
7
+ export type { ClientPlugin, SendParams } from './documentStore.js';
9
8
  export type HoudiniClientConstructorArgs = {
9
+ config: () => ConfigFile;
10
10
  url?: string;
11
- fetchParams?: FetchParamFn;
12
11
  plugins?: NestedList<ClientPlugin>;
13
12
  pipeline?: NestedList<ClientPlugin>;
14
- throwOnError?: ThrowOnErrorParams;
15
13
  };
16
- export type ObserveParams<_Data extends GraphQLObject, _Artifact extends DocumentArtifact = DocumentArtifact, _Input extends GraphQLVariables = GraphQLVariables> = {
14
+ export type ObserveParams<_Data extends GraphQLObject, _Artifact extends DocumentArtifact = DocumentArtifact, _Input extends GraphQLVariables | undefined = GraphQLVariables> = {
17
15
  artifact: _Artifact;
18
16
  enableCache?: boolean;
19
17
  cache?: Cache;
@@ -23,28 +21,23 @@ export type ObserveParams<_Data extends GraphQLObject, _Artifact extends Documen
23
21
  };
24
22
  export declare class HoudiniClient {
25
23
  url: string;
26
- readonly throwOnError_operations: ThrowOnErrorOperations[];
27
- private cache;
28
- private throwOnError;
29
- private fetchParams;
30
- private pipeline;
31
- private extraPlugins;
24
+ protected cache: Cache | null;
25
+ protected plugins: Array<ClientPlugin>;
26
+ protected config: ConfigFile;
27
+ componentCache: Record<string, any>;
28
+ constructor({ url, plugins, pipeline, config }?: HoudiniClientConstructorArgs);
32
29
  proxies: Record<string, (operation: {
33
30
  query: string;
34
31
  variables: any;
35
32
  operationName: string;
36
33
  session: App.Session | null | undefined;
37
34
  }) => Promise<any>>;
38
- componentCache: Record<string, any>;
39
- setCache(cache: Cache): void;
40
- constructor({ url, fetchParams, plugins, pipeline, throwOnError, }?: HoudiniClientConstructorArgs);
41
- get plugins(): ClientPlugin[];
42
- observe<_Data extends GraphQLObject, _Input extends GraphQLVariables>({ enableCache, fetching, ...rest }: ObserveParams<_Data, DocumentArtifact, _Input>): DocumentStore<_Data, _Input>;
43
35
  registerProxy(url: string, handler: (operation: {
44
36
  query: string;
45
37
  variables: any;
46
38
  operationName: string;
47
39
  session: App.Session | null | undefined;
48
40
  }) => Promise<any>): void;
41
+ observe<_Data extends GraphQLObject, _Input extends GraphQLVariables | undefined>({ enableCache, fetching, ...rest }: ObserveParams<_Data, DocumentArtifact, _Input>): DocumentStore<_Data, _Input>;
49
42
  }
50
43
  export declare function createPluginHooks(plugins: ClientPlugin[]): ClientHooks[];
@@ -0,0 +1,86 @@
1
+ import { resolveApiEndpoint } from "./config.js";
2
+ import { DocumentStore } from "./documentStore.js";
3
+ import { DocumentStore as DocumentStore2 } from "./documentStore.js";
4
+ class HoudiniClient {
5
+ // the URL of the api
6
+ url;
7
+ cache = null;
8
+ plugins = [];
9
+ config;
10
+ // this is modified by page entries when they load in order to register the components source
11
+ componentCache = {};
12
+ constructor({ url, plugins, pipeline, config } = {
13
+ config: () => ({})
14
+ }) {
15
+ if (plugins && pipeline) {
16
+ throw new Error(
17
+ "A client cannot be given a pipeline and a list of plugins at the same time."
18
+ );
19
+ }
20
+ const serverPort = globalThis.process?.env?.HOUDINI_PORT ?? "5173";
21
+ this.url = url ?? (globalThis.window ? "" : `http://localhost:${serverPort}`) + resolveApiEndpoint(config());
22
+ this.plugins = flatten(plugins);
23
+ this.config = config();
24
+ }
25
+ proxies = {};
26
+ registerProxy(url, handler) {
27
+ this.proxies[url] = handler;
28
+ }
29
+ observe({
30
+ enableCache = true,
31
+ fetching = false,
32
+ ...rest
33
+ }) {
34
+ return new DocumentStore({
35
+ client: this,
36
+ plugins: createPluginHooks(this.plugins),
37
+ fetching,
38
+ enableCache,
39
+ config: this.config,
40
+ ...rest
41
+ });
42
+ }
43
+ }
44
+ function createPluginHooks(plugins) {
45
+ return plugins.reduce((hooks, plugin) => {
46
+ if (typeof plugin !== "function") {
47
+ throw new Error("Encountered client plugin that's not a function");
48
+ }
49
+ const result = plugin();
50
+ if (!result) {
51
+ return hooks;
52
+ }
53
+ if (!Array.isArray(result)) {
54
+ return hooks.concat(result);
55
+ }
56
+ for (const value of result) {
57
+ if (!value) {
58
+ continue;
59
+ }
60
+ if (typeof value === "function") {
61
+ return hooks.concat(createPluginHooks([value]));
62
+ }
63
+ hooks.push(value);
64
+ }
65
+ return hooks;
66
+ }, []);
67
+ }
68
+ function flatten(source) {
69
+ if (!source) {
70
+ return [];
71
+ }
72
+ return source.reduce((acc, element) => {
73
+ if (!element) {
74
+ return acc;
75
+ }
76
+ if (Array.isArray(element)) {
77
+ return acc.concat(flatten(element));
78
+ }
79
+ return acc.concat(element);
80
+ }, []);
81
+ }
82
+ export {
83
+ DocumentStore2 as DocumentStore,
84
+ HoudiniClient,
85
+ createPluginHooks
86
+ };
@@ -0,0 +1,4 @@
1
+ export type Unmarshaler = (value: any) => any;
2
+ export declare function isFile(value: any): value is Blob;
3
+ export declare function decodeScalar(value: string): unknown;
4
+ export declare function unmarshalValue(value: any, unmarshal?: Unmarshaler): any;
@@ -0,0 +1,31 @@
1
+ function isFile(value) {
2
+ if (typeof Blob !== "undefined" && value instanceof Blob) {
3
+ return true;
4
+ }
5
+ if (typeof File !== "undefined" && value instanceof File) {
6
+ return true;
7
+ }
8
+ return false;
9
+ }
10
+ function decodeScalar(value) {
11
+ try {
12
+ return JSON.parse(value);
13
+ } catch {
14
+ return value;
15
+ }
16
+ }
17
+ function unmarshalValue(value, unmarshal) {
18
+ if (value === null || value === void 0) {
19
+ return value;
20
+ }
21
+ if (Array.isArray(value)) {
22
+ return value.map((entry) => unmarshalValue(entry, unmarshal));
23
+ }
24
+ const decoded = typeof value === "string" ? decodeScalar(value) : value;
25
+ return unmarshal ? unmarshal(decoded) : decoded;
26
+ }
27
+ export {
28
+ decodeScalar,
29
+ isFile,
30
+ unmarshalValue
31
+ };
@@ -0,0 +1,20 @@
1
+ import type { ConfigFile } from 'houdini';
2
+ export declare const DEFAULT_AUTH_URL = "/_auth";
3
+ export declare function setAuthUrl(url: string | undefined | null): void;
4
+ export declare function getAuthUrl(): string;
5
+ export declare const DEFAULT_API_ENDPOINT = "/_api";
6
+ export declare function resolveApiEndpoint(config: ConfigFile & {
7
+ apiURL?: string;
8
+ }): string;
9
+ export declare const HOUDINI_SESSION_EVENT = "_houdini_session_";
10
+ export type HoudiniSessionEventDetail = {
11
+ session: App.Session;
12
+ merge: boolean;
13
+ };
14
+ export declare function getMockConfig(): ConfigFile | null;
15
+ export declare function setMockConfig(config: ConfigFile | null): void;
16
+ export declare function defaultConfigValues(file: ConfigFile): ConfigFile;
17
+ export declare function keyFieldsForType(configFile: ConfigFile, type: string): string[];
18
+ export declare function entityRefetchVariables(configFile: ConfigFile, targetType: string | undefined | null, state: Record<string, any> | null | undefined): Record<string, any>;
19
+ export declare function computeID(configFile: ConfigFile, type: string, data: any): string;
20
+ export declare function getCurrentConfig(): ConfigFile;