houdini 2.0.0-next.9 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/build/adapter/index.d.ts +2 -2
  2. package/build/adapter/index.js +6 -0
  3. package/build/cmd/generate.d.ts +5 -0
  4. package/build/cmd/generate.js +77 -0
  5. package/build/cmd/index.js +32 -0
  6. package/build/cmd/init.js +565 -0
  7. package/build/cmd/pullSchema.js +26 -0
  8. package/build/lib/ast.js +71 -0
  9. package/build/lib/codegen.d.ts +57 -0
  10. package/build/lib/codegen.js +617 -0
  11. package/build/lib/config.d.ts +240 -177
  12. package/build/lib/config.js +143 -0
  13. package/build/lib/constants.js +14 -0
  14. package/build/lib/database.d.ts +7 -0
  15. package/build/lib/database.js +624 -0
  16. package/build/lib/db.d.ts +13 -0
  17. package/build/lib/db.js +135 -0
  18. package/build/lib/deepMerge.js +23 -0
  19. package/build/lib/error.d.ts +16 -0
  20. package/build/lib/error.js +115 -0
  21. package/build/lib/fs.d.ts +9 -11
  22. package/build/lib/fs.js +245 -0
  23. package/build/lib/graphql.d.ts +5 -32
  24. package/build/lib/graphql.js +36 -0
  25. package/build/lib/imports.d.ts +29 -14
  26. package/build/lib/imports.js +66 -0
  27. package/build/lib/index.d.ts +17 -24
  28. package/build/lib/index.js +21 -0
  29. package/build/lib/logger.d.ts +12 -0
  30. package/build/lib/logger.js +45 -0
  31. package/build/lib/parse.d.ts +1 -2
  32. package/build/lib/parse.js +32 -0
  33. package/build/lib/path.d.ts +0 -1
  34. package/build/lib/path.js +44 -0
  35. package/build/lib/pipeline.d.ts +1 -1
  36. package/build/lib/pipeline.js +8 -0
  37. package/build/lib/plugins.d.ts +4 -0
  38. package/build/lib/plugins.js +88 -0
  39. package/build/lib/project.d.ts +19 -0
  40. package/build/lib/project.js +296 -0
  41. package/build/lib/schema.d.ts +1 -0
  42. package/build/lib/schema.js +61 -0
  43. package/build/lib/sleep.d.ts +1 -0
  44. package/build/lib/sleep.js +8 -0
  45. package/build/lib/types.d.ts +92 -303
  46. package/build/lib/types.js +37 -0
  47. package/build/lib/walk.d.ts +11 -6
  48. package/build/lib/walk.js +138 -0
  49. package/build/node/index.d.ts +44 -0
  50. package/build/node/index.js +402 -0
  51. package/build/oauth/index.d.ts +41 -0
  52. package/build/oauth/index.js +108 -0
  53. package/build/package.json +212 -0
  54. package/build/router/auth-token.d.ts +29 -0
  55. package/build/router/auth-token.js +168 -0
  56. package/build/{lib/router → router}/conventions.d.ts +10 -1
  57. package/build/router/conventions.js +165 -0
  58. package/build/{runtime-esm/router → router}/cookies.js +21 -21
  59. package/build/{runtime-esm/router → router}/jwt.js +8 -6
  60. package/build/{lib/router → router}/manifest.d.ts +2 -2
  61. package/build/router/manifest.js +279 -0
  62. package/build/{runtime/router → router}/match.d.ts +10 -10
  63. package/build/router/match.js +219 -0
  64. package/build/router/server.d.ts +57 -0
  65. package/build/router/server.js +500 -0
  66. package/build/{runtime/router → router}/session.d.ts +8 -3
  67. package/build/router/session.js +338 -0
  68. package/build/router/types.d.ts +44 -0
  69. package/build/runtime/cache/benchmarks/cache.bench.d.ts +1 -0
  70. package/build/runtime/cache/benchmarks/cache.bench.js +943 -0
  71. package/build/runtime/cache/gc.d.ts +2 -1
  72. package/build/{runtime-esm → runtime}/cache/gc.js +4 -1
  73. package/build/runtime/cache/index.d.ts +173 -3
  74. package/build/{runtime-esm/cache/cache.js → runtime/cache/index.js} +197 -70
  75. package/build/runtime/cache/lists.d.ts +9 -4
  76. package/build/{runtime-esm → runtime}/cache/lists.js +116 -27
  77. package/build/runtime/cache/staleManager.d.ts +2 -1
  78. package/build/{runtime-esm → runtime}/cache/staleManager.js +6 -2
  79. package/build/runtime/cache/storage.d.ts +5 -2
  80. package/build/{runtime-esm → runtime}/cache/storage.js +126 -54
  81. package/build/{runtime-esm → runtime}/cache/stuff.js +4 -3
  82. package/build/runtime/cache/subscription.d.ts +23 -9
  83. package/build/{runtime-esm → runtime}/cache/subscription.js +103 -65
  84. package/build/runtime/{client/index.d.ts → client.d.ts} +15 -22
  85. package/build/runtime/client.js +86 -0
  86. package/build/runtime/coerce.d.ts +4 -0
  87. package/build/runtime/coerce.js +31 -0
  88. package/build/runtime/config.d.ts +20 -0
  89. package/build/runtime/config.js +88 -0
  90. package/build/runtime/{lib/constants.d.ts → constants.d.ts} +1 -1
  91. package/build/runtime/{client/documentStore.d.ts → documentStore.d.ts} +18 -11
  92. package/build/{runtime-esm/client → runtime}/documentStore.js +53 -56
  93. package/build/runtime/endpoint.d.ts +14 -0
  94. package/build/runtime/endpoint.js +29 -0
  95. package/build/{runtime-cjs/lib → runtime}/flatten.d.ts +1 -1
  96. package/build/runtime/formData.d.ts +24 -0
  97. package/build/runtime/formData.js +93 -0
  98. package/build/runtime/index.d.ts +16 -8
  99. package/build/runtime/index.js +54 -0
  100. package/build/{runtime-cjs/lib → runtime}/key.d.ts +1 -1
  101. package/build/{runtime-esm/lib → runtime}/key.js +4 -4
  102. package/build/{runtime-esm/lib → runtime}/log.js +3 -3
  103. package/build/runtime/multipart.d.ts +8 -0
  104. package/build/runtime/multipart.js +49 -0
  105. package/build/{runtime-cjs/lib → runtime}/pageInfo.d.ts +3 -3
  106. package/build/{runtime-esm/lib → runtime}/pageInfo.js +2 -2
  107. package/build/{runtime-cjs/lib → runtime}/pagination.d.ts +12 -8
  108. package/build/{runtime-esm/lib → runtime}/pagination.js +157 -21
  109. package/build/{runtime-cjs/lib → runtime}/scalars.d.ts +6 -6
  110. package/build/{runtime-esm/lib → runtime}/scalars.js +10 -43
  111. package/build/{runtime-cjs/lib → runtime}/selection.d.ts +1 -1
  112. package/build/{runtime-esm/lib → runtime}/selection.js +17 -2
  113. package/build/runtime/{lib/store.d.ts → store.d.ts} +1 -1
  114. package/build/{runtime-esm/lib → runtime}/store.js +2 -3
  115. package/build/runtime/{lib/types.d.ts → types.d.ts} +102 -101
  116. package/build/{runtime-esm/lib → runtime}/types.js +9 -14
  117. package/build/test/index.d.ts +6 -25
  118. package/build/test/index.js +329 -0
  119. package/build/test/package.json +1 -0
  120. package/build/vite/hmr.d.ts +26 -3
  121. package/build/vite/hmr.js +431 -0
  122. package/build/vite/houdini.d.ts +4 -10
  123. package/build/vite/houdini.js +134 -0
  124. package/build/vite/index.d.ts +13 -7
  125. package/build/vite/index.js +104 -0
  126. package/build/vite/package.json +1 -0
  127. package/build/vite/schema.d.ts +5 -3
  128. package/build/vite/schema.js +193 -0
  129. package/package.json +148 -57
  130. package/build/adapter-cjs/index.js +0 -33
  131. package/build/adapter-cjs/package.json +0 -1
  132. package/build/adapter-esm/index.js +0 -9
  133. package/build/cmd-cjs/index.js +0 -89299
  134. package/build/cmd-cjs/package.json +0 -1
  135. package/build/cmd-esm/index.js +0 -89303
  136. package/build/codegen/generators/artifacts/fieldKey.d.ts +0 -3
  137. package/build/codegen/generators/artifacts/index.d.ts +0 -17
  138. package/build/codegen/generators/artifacts/indexFile.d.ts +0 -2
  139. package/build/codegen/generators/artifacts/inputs.d.ts +0 -4
  140. package/build/codegen/generators/artifacts/operations.d.ts +0 -11
  141. package/build/codegen/generators/artifacts/selection.d.ts +0 -20
  142. package/build/codegen/generators/artifacts/utils.d.ts +0 -8
  143. package/build/codegen/generators/comments/jsdoc.d.ts +0 -2
  144. package/build/codegen/generators/definitions/enums.d.ts +0 -2
  145. package/build/codegen/generators/definitions/index.d.ts +0 -2
  146. package/build/codegen/generators/index.d.ts +0 -6
  147. package/build/codegen/generators/indexFile/index.d.ts +0 -2
  148. package/build/codegen/generators/persistedQueries/index.d.ts +0 -2
  149. package/build/codegen/generators/runtime/graphqlFunction.d.ts +0 -2
  150. package/build/codegen/generators/runtime/index.d.ts +0 -3
  151. package/build/codegen/generators/runtime/injectPlugins.d.ts +0 -7
  152. package/build/codegen/generators/runtime/pluginIndex.d.ts +0 -5
  153. package/build/codegen/generators/runtime/pluginRuntime.d.ts +0 -15
  154. package/build/codegen/generators/runtime/runtimeConfig.d.ts +0 -7
  155. package/build/codegen/generators/typescript/addReferencedInputTypes.d.ts +0 -4
  156. package/build/codegen/generators/typescript/documentTypes.d.ts +0 -2
  157. package/build/codegen/generators/typescript/imperativeTypeDef.d.ts +0 -2
  158. package/build/codegen/generators/typescript/index.d.ts +0 -2
  159. package/build/codegen/generators/typescript/inlineType.d.ts +0 -29
  160. package/build/codegen/generators/typescript/loadingState.d.ts +0 -8
  161. package/build/codegen/index.d.ts +0 -8
  162. package/build/codegen/transforms/addFields.d.ts +0 -2
  163. package/build/codegen/transforms/collectDefinitions.d.ts +0 -9
  164. package/build/codegen/transforms/componentFields.d.ts +0 -8
  165. package/build/codegen/transforms/fragmentVariables.d.ts +0 -17
  166. package/build/codegen/transforms/index.d.ts +0 -9
  167. package/build/codegen/transforms/list.d.ts +0 -9
  168. package/build/codegen/transforms/paginate.d.ts +0 -4
  169. package/build/codegen/transforms/runtimeScalars.d.ts +0 -2
  170. package/build/codegen/transforms/schema.d.ts +0 -2
  171. package/build/codegen/transforms/typename.d.ts +0 -2
  172. package/build/codegen/utils/commonjs.d.ts +0 -5
  173. package/build/codegen/utils/flattenSelections.d.ts +0 -11
  174. package/build/codegen/utils/index.d.ts +0 -4
  175. package/build/codegen/utils/moduleExport.d.ts +0 -4
  176. package/build/codegen/utils/murmur.d.ts +0 -9
  177. package/build/codegen/utils/objectIdentificationSelection.d.ts +0 -3
  178. package/build/codegen/utils/stripLoc.d.ts +0 -3
  179. package/build/codegen/validators/componentFields.d.ts +0 -2
  180. package/build/codegen/validators/index.d.ts +0 -5
  181. package/build/codegen/validators/noIDAlias.d.ts +0 -2
  182. package/build/codegen/validators/plugins.d.ts +0 -3
  183. package/build/codegen/validators/typeCheck.d.ts +0 -5
  184. package/build/codegen/validators/uniqueNames.d.ts +0 -2
  185. package/build/codegen-cjs/index.js +0 -74656
  186. package/build/codegen-cjs/package.json +0 -1
  187. package/build/codegen-esm/index.js +0 -74655
  188. package/build/lib/cleanupFiles.d.ts +0 -1
  189. package/build/lib/detectTools.d.ts +0 -16
  190. package/build/lib/introspection.d.ts +0 -3
  191. package/build/lib/plugin.d.ts +0 -2
  192. package/build/lib/router/index.d.ts +0 -9
  193. package/build/lib/router/server.d.ts +0 -7
  194. package/build/lib/router/types.d.ts +0 -23
  195. package/build/lib/typescript.d.ts +0 -20
  196. package/build/lib/watchAndRun.d.ts +0 -61
  197. package/build/lib-cjs/index.js +0 -79739
  198. package/build/lib-cjs/package.json +0 -1
  199. package/build/lib-esm/index.js +0 -79648
  200. package/build/runtime/cache/cache.d.ts +0 -169
  201. package/build/runtime/client/plugins/cache.d.ts +0 -9
  202. package/build/runtime/client/plugins/fetch.d.ts +0 -38
  203. package/build/runtime/client/plugins/fetchParams.d.ts +0 -9
  204. package/build/runtime/client/plugins/fragment.d.ts +0 -2
  205. package/build/runtime/client/plugins/index.d.ts +0 -9
  206. package/build/runtime/client/plugins/injectedPlugins.d.ts +0 -4
  207. package/build/runtime/client/plugins/mutation.d.ts +0 -2
  208. package/build/runtime/client/plugins/optimisticKeys.d.ts +0 -7
  209. package/build/runtime/client/plugins/query.d.ts +0 -2
  210. package/build/runtime/client/plugins/subscription.d.ts +0 -20
  211. package/build/runtime/client/plugins/test.d.ts +0 -15
  212. package/build/runtime/client/plugins/throwOnError.d.ts +0 -8
  213. package/build/runtime/client/utils/documentPlugins.d.ts +0 -3
  214. package/build/runtime/client/utils/index.d.ts +0 -1
  215. package/build/runtime/generated.d.ts +0 -5
  216. package/build/runtime/imports/config.d.ts +0 -3
  217. package/build/runtime/imports/pluginConfig.d.ts +0 -3
  218. package/build/runtime/lib/config.d.ts +0 -216
  219. package/build/runtime/lib/deepEquals.d.ts +0 -1
  220. package/build/runtime/lib/flatten.d.ts +0 -2
  221. package/build/runtime/lib/index.d.ts +0 -10
  222. package/build/runtime/lib/key.d.ts +0 -6
  223. package/build/runtime/lib/log.d.ts +0 -6
  224. package/build/runtime/lib/lru.d.ts +0 -52
  225. package/build/runtime/lib/pageInfo.d.ts +0 -7
  226. package/build/runtime/lib/pagination.d.ts +0 -27
  227. package/build/runtime/lib/scalars.d.ts +0 -14
  228. package/build/runtime/lib/selection.d.ts +0 -2
  229. package/build/runtime/public/cache.d.ts +0 -42
  230. package/build/runtime/public/index.d.ts +0 -1
  231. package/build/runtime/public/list.d.ts +0 -18
  232. package/build/runtime/public/record.d.ts +0 -40
  233. package/build/runtime/public/tests/test.d.ts +0 -156
  234. package/build/runtime/public/types.d.ts +0 -62
  235. package/build/runtime/router/cookies.d.ts +0 -41
  236. package/build/runtime/router/jwt.d.ts +0 -117
  237. package/build/runtime/router/server.d.ts +0 -24
  238. package/build/runtime/router/types.d.ts +0 -26
  239. package/build/runtime/server/index.d.ts +0 -17
  240. package/build/runtime-cjs/cache/cache.d.ts +0 -169
  241. package/build/runtime-cjs/cache/cache.js +0 -1077
  242. package/build/runtime-cjs/cache/constants.d.ts +0 -1
  243. package/build/runtime-cjs/cache/constants.js +0 -28
  244. package/build/runtime-cjs/cache/gc.d.ts +0 -10
  245. package/build/runtime-cjs/cache/gc.js +0 -74
  246. package/build/runtime-cjs/cache/index.d.ts +0 -3
  247. package/build/runtime-cjs/cache/index.js +0 -25
  248. package/build/runtime-cjs/cache/lists.d.ts +0 -89
  249. package/build/runtime-cjs/cache/lists.js +0 -467
  250. package/build/runtime-cjs/cache/staleManager.d.ts +0 -31
  251. package/build/runtime-cjs/cache/staleManager.js +0 -123
  252. package/build/runtime-cjs/cache/storage.d.ts +0 -110
  253. package/build/runtime-cjs/cache/storage.js +0 -451
  254. package/build/runtime-cjs/cache/stuff.d.ts +0 -2
  255. package/build/runtime-cjs/cache/stuff.js +0 -56
  256. package/build/runtime-cjs/cache/subscription.d.ts +0 -52
  257. package/build/runtime-cjs/cache/subscription.js +0 -349
  258. package/build/runtime-cjs/client/documentStore.d.ts +0 -107
  259. package/build/runtime-cjs/client/documentStore.js +0 -487
  260. package/build/runtime-cjs/client/index.d.ts +0 -50
  261. package/build/runtime-cjs/client/index.js +0 -162
  262. package/build/runtime-cjs/client/plugins/cache.d.ts +0 -9
  263. package/build/runtime-cjs/client/plugins/cache.js +0 -138
  264. package/build/runtime-cjs/client/plugins/fetch.d.ts +0 -38
  265. package/build/runtime-cjs/client/plugins/fetch.js +0 -210
  266. package/build/runtime-cjs/client/plugins/fetchParams.d.ts +0 -9
  267. package/build/runtime-cjs/client/plugins/fetchParams.js +0 -47
  268. package/build/runtime-cjs/client/plugins/fragment.d.ts +0 -2
  269. package/build/runtime-cjs/client/plugins/fragment.js +0 -77
  270. package/build/runtime-cjs/client/plugins/index.d.ts +0 -9
  271. package/build/runtime-cjs/client/plugins/index.js +0 -45
  272. package/build/runtime-cjs/client/plugins/injectedPlugins.d.ts +0 -4
  273. package/build/runtime-cjs/client/plugins/injectedPlugins.js +0 -25
  274. package/build/runtime-cjs/client/plugins/mutation.d.ts +0 -2
  275. package/build/runtime-cjs/client/plugins/mutation.js +0 -89
  276. package/build/runtime-cjs/client/plugins/optimisticKeys.d.ts +0 -7
  277. package/build/runtime-cjs/client/plugins/optimisticKeys.js +0 -324
  278. package/build/runtime-cjs/client/plugins/query.d.ts +0 -2
  279. package/build/runtime-cjs/client/plugins/query.js +0 -93
  280. package/build/runtime-cjs/client/plugins/subscription.d.ts +0 -20
  281. package/build/runtime-cjs/client/plugins/subscription.js +0 -114
  282. package/build/runtime-cjs/client/plugins/test.d.ts +0 -15
  283. package/build/runtime-cjs/client/plugins/test.js +0 -118
  284. package/build/runtime-cjs/client/plugins/throwOnError.d.ts +0 -8
  285. package/build/runtime-cjs/client/plugins/throwOnError.js +0 -47
  286. package/build/runtime-cjs/client/utils/documentPlugins.d.ts +0 -3
  287. package/build/runtime-cjs/client/utils/documentPlugins.js +0 -57
  288. package/build/runtime-cjs/client/utils/index.d.ts +0 -1
  289. package/build/runtime-cjs/client/utils/index.js +0 -22
  290. package/build/runtime-cjs/generated.d.ts +0 -5
  291. package/build/runtime-cjs/generated.js +0 -16
  292. package/build/runtime-cjs/imports/config.d.ts +0 -3
  293. package/build/runtime-cjs/imports/config.js +0 -24
  294. package/build/runtime-cjs/imports/pluginConfig.d.ts +0 -3
  295. package/build/runtime-cjs/imports/pluginConfig.js +0 -25
  296. package/build/runtime-cjs/index.d.ts +0 -8
  297. package/build/runtime-cjs/index.js +0 -61
  298. package/build/runtime-cjs/lib/config.d.ts +0 -216
  299. package/build/runtime-cjs/lib/config.js +0 -110
  300. package/build/runtime-cjs/lib/constants.d.ts +0 -6
  301. package/build/runtime-cjs/lib/constants.js +0 -38
  302. package/build/runtime-cjs/lib/deepEquals.js +0 -52
  303. package/build/runtime-cjs/lib/flatten.js +0 -41
  304. package/build/runtime-cjs/lib/index.d.ts +0 -10
  305. package/build/runtime-cjs/lib/index.js +0 -40
  306. package/build/runtime-cjs/lib/key.js +0 -41
  307. package/build/runtime-cjs/lib/log.js +0 -72
  308. package/build/runtime-cjs/lib/lru.js +0 -73
  309. package/build/runtime-cjs/lib/pageInfo.js +0 -79
  310. package/build/runtime-cjs/lib/pagination.js +0 -240
  311. package/build/runtime-cjs/lib/scalars.js +0 -147
  312. package/build/runtime-cjs/lib/selection.js +0 -66
  313. package/build/runtime-cjs/lib/store.d.ts +0 -19
  314. package/build/runtime-cjs/lib/store.js +0 -81
  315. package/build/runtime-cjs/lib/types.d.ts +0 -417
  316. package/build/runtime-cjs/lib/types.js +0 -104
  317. package/build/runtime-cjs/package.json +0 -1
  318. package/build/runtime-cjs/public/cache.d.ts +0 -42
  319. package/build/runtime-cjs/public/cache.js +0 -98
  320. package/build/runtime-cjs/public/index.d.ts +0 -1
  321. package/build/runtime-cjs/public/index.js +0 -28
  322. package/build/runtime-cjs/public/list.d.ts +0 -18
  323. package/build/runtime-cjs/public/list.js +0 -151
  324. package/build/runtime-cjs/public/record.d.ts +0 -40
  325. package/build/runtime-cjs/public/record.js +0 -94
  326. package/build/runtime-cjs/public/tests/test.d.ts +0 -156
  327. package/build/runtime-cjs/public/tests/test.js +0 -60
  328. package/build/runtime-cjs/public/types.d.ts +0 -62
  329. package/build/runtime-cjs/public/types.js +0 -16
  330. package/build/runtime-cjs/router/cookies.js +0 -168
  331. package/build/runtime-cjs/router/jwt.js +0 -168
  332. package/build/runtime-cjs/router/match.d.ts +0 -39
  333. package/build/runtime-cjs/router/match.js +0 -158
  334. package/build/runtime-cjs/router/server.d.ts +0 -24
  335. package/build/runtime-cjs/router/server.js +0 -117
  336. package/build/runtime-cjs/router/session.d.ts +0 -22
  337. package/build/runtime-cjs/router/session.js +0 -100
  338. package/build/runtime-cjs/router/types.d.ts +0 -26
  339. package/build/runtime-cjs/router/types.js +0 -16
  340. package/build/runtime-cjs/server/index.d.ts +0 -17
  341. package/build/runtime-cjs/server/index.js +0 -62
  342. package/build/runtime-esm/cache/cache.d.ts +0 -169
  343. package/build/runtime-esm/cache/constants.d.ts +0 -1
  344. package/build/runtime-esm/cache/gc.d.ts +0 -10
  345. package/build/runtime-esm/cache/index.d.ts +0 -3
  346. package/build/runtime-esm/cache/index.js +0 -5
  347. package/build/runtime-esm/cache/lists.d.ts +0 -89
  348. package/build/runtime-esm/cache/staleManager.d.ts +0 -31
  349. package/build/runtime-esm/cache/storage.d.ts +0 -110
  350. package/build/runtime-esm/cache/stuff.d.ts +0 -2
  351. package/build/runtime-esm/cache/subscription.d.ts +0 -52
  352. package/build/runtime-esm/client/documentStore.d.ts +0 -107
  353. package/build/runtime-esm/client/index.d.ts +0 -50
  354. package/build/runtime-esm/client/index.js +0 -130
  355. package/build/runtime-esm/client/plugins/cache.d.ts +0 -9
  356. package/build/runtime-esm/client/plugins/cache.js +0 -104
  357. package/build/runtime-esm/client/plugins/fetch.d.ts +0 -38
  358. package/build/runtime-esm/client/plugins/fetch.js +0 -184
  359. package/build/runtime-esm/client/plugins/fetchParams.d.ts +0 -9
  360. package/build/runtime-esm/client/plugins/fetchParams.js +0 -23
  361. package/build/runtime-esm/client/plugins/fragment.d.ts +0 -2
  362. package/build/runtime-esm/client/plugins/fragment.js +0 -53
  363. package/build/runtime-esm/client/plugins/index.d.ts +0 -9
  364. package/build/runtime-esm/client/plugins/index.js +0 -12
  365. package/build/runtime-esm/client/plugins/injectedPlugins.d.ts +0 -4
  366. package/build/runtime-esm/client/plugins/injectedPlugins.js +0 -5
  367. package/build/runtime-esm/client/plugins/mutation.d.ts +0 -2
  368. package/build/runtime-esm/client/plugins/mutation.js +0 -65
  369. package/build/runtime-esm/client/plugins/optimisticKeys.d.ts +0 -7
  370. package/build/runtime-esm/client/plugins/optimisticKeys.js +0 -290
  371. package/build/runtime-esm/client/plugins/query.d.ts +0 -2
  372. package/build/runtime-esm/client/plugins/query.js +0 -69
  373. package/build/runtime-esm/client/plugins/subscription.d.ts +0 -20
  374. package/build/runtime-esm/client/plugins/subscription.js +0 -90
  375. package/build/runtime-esm/client/plugins/test.d.ts +0 -15
  376. package/build/runtime-esm/client/plugins/test.js +0 -93
  377. package/build/runtime-esm/client/plugins/throwOnError.d.ts +0 -8
  378. package/build/runtime-esm/client/plugins/throwOnError.js +0 -23
  379. package/build/runtime-esm/client/utils/documentPlugins.d.ts +0 -3
  380. package/build/runtime-esm/client/utils/documentPlugins.js +0 -33
  381. package/build/runtime-esm/client/utils/index.d.ts +0 -1
  382. package/build/runtime-esm/client/utils/index.js +0 -1
  383. package/build/runtime-esm/generated.d.ts +0 -5
  384. package/build/runtime-esm/generated.js +0 -0
  385. package/build/runtime-esm/imports/config.d.ts +0 -3
  386. package/build/runtime-esm/imports/config.js +0 -4
  387. package/build/runtime-esm/imports/pluginConfig.d.ts +0 -3
  388. package/build/runtime-esm/imports/pluginConfig.js +0 -5
  389. package/build/runtime-esm/index.d.ts +0 -8
  390. package/build/runtime-esm/index.js +0 -22
  391. package/build/runtime-esm/lib/config.d.ts +0 -216
  392. package/build/runtime-esm/lib/config.js +0 -69
  393. package/build/runtime-esm/lib/constants.d.ts +0 -6
  394. package/build/runtime-esm/lib/deepEquals.d.ts +0 -1
  395. package/build/runtime-esm/lib/flatten.d.ts +0 -2
  396. package/build/runtime-esm/lib/index.d.ts +0 -10
  397. package/build/runtime-esm/lib/index.js +0 -10
  398. package/build/runtime-esm/lib/key.d.ts +0 -6
  399. package/build/runtime-esm/lib/log.d.ts +0 -6
  400. package/build/runtime-esm/lib/lru.d.ts +0 -52
  401. package/build/runtime-esm/lib/pageInfo.d.ts +0 -7
  402. package/build/runtime-esm/lib/pagination.d.ts +0 -27
  403. package/build/runtime-esm/lib/scalars.d.ts +0 -14
  404. package/build/runtime-esm/lib/selection.d.ts +0 -2
  405. package/build/runtime-esm/lib/store.d.ts +0 -19
  406. package/build/runtime-esm/lib/types.d.ts +0 -417
  407. package/build/runtime-esm/public/cache.d.ts +0 -42
  408. package/build/runtime-esm/public/cache.js +0 -74
  409. package/build/runtime-esm/public/index.d.ts +0 -1
  410. package/build/runtime-esm/public/index.js +0 -4
  411. package/build/runtime-esm/public/list.d.ts +0 -18
  412. package/build/runtime-esm/public/list.js +0 -127
  413. package/build/runtime-esm/public/record.d.ts +0 -40
  414. package/build/runtime-esm/public/record.js +0 -70
  415. package/build/runtime-esm/public/tests/test.d.ts +0 -156
  416. package/build/runtime-esm/public/tests/test.js +0 -36
  417. package/build/runtime-esm/public/types.d.ts +0 -62
  418. package/build/runtime-esm/router/cookies.d.ts +0 -41
  419. package/build/runtime-esm/router/jwt.d.ts +0 -117
  420. package/build/runtime-esm/router/match.d.ts +0 -39
  421. package/build/runtime-esm/router/match.js +0 -131
  422. package/build/runtime-esm/router/server.d.ts +0 -24
  423. package/build/runtime-esm/router/server.js +0 -92
  424. package/build/runtime-esm/router/session.d.ts +0 -22
  425. package/build/runtime-esm/router/session.js +0 -74
  426. package/build/runtime-esm/router/types.d.ts +0 -26
  427. package/build/runtime-esm/router/types.js +0 -0
  428. package/build/runtime-esm/server/index.d.ts +0 -17
  429. package/build/runtime-esm/server/index.js +0 -38
  430. package/build/test-cjs/index.js +0 -75249
  431. package/build/test-cjs/package.json +0 -1
  432. package/build/test-esm/index.js +0 -75244
  433. package/build/vite/imports.d.ts +0 -40
  434. package/build/vite-cjs/index.js +0 -86272
  435. package/build/vite-cjs/package.json +0 -1
  436. package/build/vite-esm/index.js +0 -86264
  437. /package/build/{adapter-esm → adapter}/package.json +0 -0
  438. /package/build/{cmd-esm → cmd}/package.json +0 -0
  439. /package/build/{vite → lib}/ast.d.ts +0 -0
  440. /package/build/{codegen-esm → lib}/package.json +0 -0
  441. /package/build/{lib-esm → node}/package.json +0 -0
  442. /package/build/{runtime-esm → oauth}/package.json +0 -0
  443. /package/build/{runtime-cjs/router → router}/cookies.d.ts +0 -0
  444. /package/build/{runtime-cjs/router → router}/jwt.d.ts +0 -0
  445. /package/build/{test-esm → router}/package.json +0 -0
  446. /package/build/{runtime-esm/public → router}/types.js +0 -0
  447. /package/build/{runtime-esm → runtime}/cache/constants.js +0 -0
  448. /package/build/{runtime-esm/lib → runtime}/constants.js +0 -0
  449. /package/build/{runtime-cjs/lib → runtime}/deepEquals.d.ts +0 -0
  450. /package/build/{runtime-esm/lib → runtime}/deepEquals.js +0 -0
  451. /package/build/{runtime-esm/lib → runtime}/flatten.js +0 -0
  452. /package/build/{runtime-cjs/lib → runtime}/log.d.ts +0 -0
  453. /package/build/{runtime-cjs/lib → runtime}/lru.d.ts +0 -0
  454. /package/build/{runtime-esm/lib → runtime}/lru.js +0 -0
  455. /package/build/{vite-esm → runtime}/package.json +0 -0
@@ -0,0 +1,338 @@
1
+ import * as oauth from "oauth4webapi";
2
+ import { getAuthUrl } from "../runtime/config.js";
3
+ import {
4
+ sessionTokenFingerprint,
5
+ verifySessionToken,
6
+ signRedirectTxn,
7
+ verifyRedirectTxn,
8
+ randomToken,
9
+ timingSafeEqual,
10
+ REDIRECT_TXN_TTL_SECONDS
11
+ } from "./auth-token.js";
12
+ import { parse } from "./cookies.js";
13
+ import { decode, encode, verify } from "./jwt.js";
14
+ const REDIRECT_TXN_COOKIE = "__Host-houdini-txn";
15
+ function redirectTxnCookie(value) {
16
+ return `${REDIRECT_TXN_COOKIE}=${value}; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=${REDIRECT_TXN_TTL_SECONDS}`;
17
+ }
18
+ function clearRedirectTxnCookie() {
19
+ return `${REDIRECT_TXN_COOKIE}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`;
20
+ }
21
+ function isAllowedOrigin(request, server_config) {
22
+ const origin = request.headers.get("origin");
23
+ const allowedOrigins = [new URL(request.url).origin, ...server_config?.allowedOrigins ?? []];
24
+ return !!origin && allowedOrigins.includes(origin);
25
+ }
26
+ const SESSION_TOKEN_TTL_MS = 60 * 1e3;
27
+ const consumedSessionTokens = /* @__PURE__ */ new Map();
28
+ const defaultConsumedTokenStore = {
29
+ consume(jti, ttlMs) {
30
+ const now = Date.now();
31
+ for (const [id, expiry] of consumedSessionTokens) {
32
+ if (expiry <= now) {
33
+ consumedSessionTokens.delete(id);
34
+ }
35
+ }
36
+ if (consumedSessionTokens.has(jti)) {
37
+ return false;
38
+ }
39
+ consumedSessionTokens.set(jti, now + ttlMs);
40
+ return true;
41
+ }
42
+ };
43
+ async function applySessionToken(args, response, token) {
44
+ const verified = await verifySessionToken(token, args.session_keys);
45
+ if (!verified) {
46
+ return false;
47
+ }
48
+ const presenter = await get_session(args.request.headers, args.session_keys);
49
+ const presenterSid = await sessionTokenFingerprint(presenter, args.session_keys);
50
+ const store = args.server_config?.auth?.consumedTokenStore ?? defaultConsumedTokenStore;
51
+ if (!timingSafeEqual(verified.sid, presenterSid) || !await store.consume(verified.jti, SESSION_TOKEN_TTL_MS)) {
52
+ return false;
53
+ }
54
+ if ("clear" in verified) {
55
+ clear_session(response);
56
+ } else if (verified.merge) {
57
+ await set_session(args, response, { ...presenter, ...verified.session });
58
+ } else {
59
+ await set_session(args, response, verified.session);
60
+ }
61
+ return true;
62
+ }
63
+ async function handle_request(args) {
64
+ const { pathname } = new URL(args.request.url);
65
+ const authUrl = getAuthUrl();
66
+ if (pathname === authUrl + "/login") {
67
+ return await login_endpoint(args);
68
+ }
69
+ if (pathname.startsWith(authUrl)) {
70
+ return await auth_endpoint(args);
71
+ }
72
+ }
73
+ function sameOriginRefererPath(request) {
74
+ const referer = request.headers.get("referer");
75
+ if (!referer) {
76
+ return null;
77
+ }
78
+ try {
79
+ const ref = new URL(referer);
80
+ if (ref.origin !== new URL(request.url).origin) {
81
+ return null;
82
+ }
83
+ return ref.pathname + ref.search;
84
+ } catch {
85
+ return null;
86
+ }
87
+ }
88
+ function oauthCallbackUrl(request) {
89
+ return `${new URL(request.url).origin}${getAuthUrl()}`;
90
+ }
91
+ async function login_endpoint(args) {
92
+ const auth = args.server_config?.auth;
93
+ if (!auth?.redirect?.url && !auth?.providers) {
94
+ return void 0;
95
+ }
96
+ if (args.request.method !== "GET") {
97
+ return new Response("Method Not Allowed", { status: 405 });
98
+ }
99
+ const url = new URL(args.request.url);
100
+ const redirectTo = safeRelative(
101
+ url.searchParams.get("redirectTo") ?? sameOriginRefererPath(args.request)
102
+ );
103
+ const requested = url.searchParams.get("provider");
104
+ const provider = requested ? auth.providers?.[requested] : void 0;
105
+ if (provider) {
106
+ return oauth_start(args, provider, requested, redirectTo);
107
+ }
108
+ if (auth.redirect?.url) {
109
+ const nonce = randomToken();
110
+ const target = new URL(auth.redirect.url);
111
+ for (const [key, value] of url.searchParams) {
112
+ if (key !== "redirectTo") {
113
+ target.searchParams.set(key, value);
114
+ }
115
+ }
116
+ target.searchParams.set("state", nonce);
117
+ target.searchParams.set("return", oauthCallbackUrl(args.request));
118
+ const txn = await signRedirectTxn({ nonce, redirectTo }, args.session_keys);
119
+ const response = new Response(null, {
120
+ status: 302,
121
+ headers: { Location: target.toString() }
122
+ });
123
+ response.headers.append("Set-Cookie", redirectTxnCookie(txn));
124
+ return response;
125
+ }
126
+ return new Response("Unknown provider", { status: 400 });
127
+ }
128
+ async function oauth_start(args, provider, providerName, redirectTo) {
129
+ const as = await provider.server();
130
+ const state = oauth.generateRandomState();
131
+ const oidcNonce = provider.issuer ? oauth.generateRandomNonce() : void 0;
132
+ const codeVerifier = provider.pkce === "S256" ? oauth.generateRandomCodeVerifier() : void 0;
133
+ const authorizeUrl = new URL(as.authorization_endpoint);
134
+ authorizeUrl.searchParams.set("client_id", provider.clientId);
135
+ authorizeUrl.searchParams.set("redirect_uri", oauthCallbackUrl(args.request));
136
+ authorizeUrl.searchParams.set("response_type", "code");
137
+ authorizeUrl.searchParams.set("scope", provider.scopes.join(" "));
138
+ authorizeUrl.searchParams.set("state", state);
139
+ if (codeVerifier) {
140
+ authorizeUrl.searchParams.set(
141
+ "code_challenge",
142
+ await oauth.calculatePKCECodeChallenge(codeVerifier)
143
+ );
144
+ authorizeUrl.searchParams.set("code_challenge_method", "S256");
145
+ }
146
+ if (oidcNonce) {
147
+ authorizeUrl.searchParams.set("nonce", oidcNonce);
148
+ }
149
+ const txn = await signRedirectTxn(
150
+ { nonce: state, redirectTo, provider: providerName, codeVerifier, oidcNonce },
151
+ args.session_keys
152
+ );
153
+ const response = new Response(null, {
154
+ status: 302,
155
+ headers: { Location: authorizeUrl.toString() }
156
+ });
157
+ response.headers.append("Set-Cookie", redirectTxnCookie(txn));
158
+ return response;
159
+ }
160
+ async function oauth_callback(args, txn, searchParams) {
161
+ const deny = () => new Response("Forbidden", {
162
+ status: 403,
163
+ headers: { "Set-Cookie": clearRedirectTxnCookie() }
164
+ });
165
+ const provider = args.server_config.auth.providers[txn.provider];
166
+ const as = await provider.server();
167
+ const client = { client_id: provider.clientId };
168
+ const clientAuth = oauth.ClientSecretPost(provider.clientSecret);
169
+ let result;
170
+ try {
171
+ const params = oauth.validateAuthResponse(as, client, searchParams, txn.nonce);
172
+ const tokenResponse = await oauth.authorizationCodeGrantRequest(
173
+ as,
174
+ client,
175
+ clientAuth,
176
+ params,
177
+ oauthCallbackUrl(args.request),
178
+ txn.codeVerifier ?? oauth.nopkce,
179
+ { [oauth.allowInsecureRequests]: Boolean(provider.allowInsecureRequests) }
180
+ );
181
+ result = await oauth.processAuthorizationCodeResponse(as, client, tokenResponse, {
182
+ expectedNonce: txn.oidcNonce,
183
+ requireIdToken: Boolean(provider.issuer),
184
+ // permit the http JWKS fetch for local dev providers. The runtime reads this symbol (its
185
+ // resolveEndpoint honors it), but oauth4webapi omits it from this options type, so cast.
186
+ [oauth.allowInsecureRequests]: Boolean(provider.allowInsecureRequests)
187
+ });
188
+ } catch {
189
+ return deny();
190
+ }
191
+ const tokens = {
192
+ accessToken: result.access_token,
193
+ refreshToken: result.refresh_token,
194
+ expiresAt: typeof result.expires_in === "number" ? Math.floor(Date.now() / 1e3) + result.expires_in : void 0,
195
+ scope: result.scope,
196
+ idToken: result.id_token
197
+ };
198
+ const claims = oauth.getValidatedIdTokenClaims(result);
199
+ const user = await provider.user({ tokens, claims });
200
+ const onSignIn = args.server_config?.auth?.onSignIn;
201
+ const session = onSignIn ? await onSignIn({ provider: txn.provider, user, tokens }) : {};
202
+ const response = new Response("ok", { status: 302, headers: { Location: txn.redirectTo } });
203
+ await set_session(args, response, session ?? {});
204
+ response.headers.append("Set-Cookie", clearRedirectTxnCookie());
205
+ return response;
206
+ }
207
+ async function auth_endpoint(args) {
208
+ if (args.request.method === "GET") {
209
+ const auth = args.server_config?.auth;
210
+ if (!auth?.redirect?.url && !auth?.providers) {
211
+ return void 0;
212
+ }
213
+ const { searchParams } = new URL(
214
+ args.request.url,
215
+ `http://${args.request.headers.get("host")}`
216
+ );
217
+ const cookies = parse(args.request.headers.get("cookie") ?? "");
218
+ const txn = await verifyRedirectTxn(cookies[REDIRECT_TXN_COOKIE], args.session_keys);
219
+ const state = searchParams.get("state");
220
+ if (!txn || !state || !timingSafeEqual(txn.nonce, state)) {
221
+ return new Response("Forbidden", {
222
+ status: 403,
223
+ headers: { "Set-Cookie": clearRedirectTxnCookie() }
224
+ });
225
+ }
226
+ if (txn.provider && auth.providers?.[txn.provider]) {
227
+ return oauth_callback(args, txn, searchParams);
228
+ }
229
+ const response = new Response("ok", { status: 302, headers: { Location: txn.redirectTo } });
230
+ const applied = await applySessionToken(args, response, searchParams.get("token"));
231
+ const result = applied ? response : new Response("Forbidden", { status: 403 });
232
+ result.headers.append("Set-Cookie", clearRedirectTxnCookie());
233
+ return result;
234
+ }
235
+ if (args.request.method === "POST") {
236
+ if (!isAllowedOrigin(args.request, args.server_config)) {
237
+ return new Response("Forbidden", { status: 403 });
238
+ }
239
+ const contentType = args.request.headers.get("content-type") ?? "";
240
+ if (contentType.includes("urlencoded") || contentType.includes("multipart")) {
241
+ const formData = await args.request.formData();
242
+ if (formData.get("__houdini_logout") == null) {
243
+ return new Response("Bad Request", { status: 400 });
244
+ }
245
+ const response2 = new Response(null, {
246
+ status: 303,
247
+ headers: { Location: safeRelative(formData.get("redirectTo")) }
248
+ });
249
+ clear_session(response2);
250
+ return response2;
251
+ }
252
+ const body = await args.request.json().catch(() => null);
253
+ if (!body || typeof body !== "object") {
254
+ return new Response("Bad Request", { status: 400 });
255
+ }
256
+ const response = new Response("ok", { status: 200 });
257
+ if (typeof body.token === "string") {
258
+ if (!await applySessionToken(args, response, body.token)) {
259
+ return new Response("Forbidden", { status: 403 });
260
+ }
261
+ return response;
262
+ }
263
+ if (body.session === null) {
264
+ clear_session(response);
265
+ return response;
266
+ }
267
+ const existing = await get_session(args.request.headers, args.session_keys);
268
+ await set_session(args, response, { ...existing, ...body.session ?? {} });
269
+ return response;
270
+ }
271
+ }
272
+ const session_cookie_name = "__houdini__";
273
+ function clear_session(response) {
274
+ response.headers.set(
275
+ "Set-Cookie",
276
+ `${session_cookie_name}=; Path=/; HttpOnly; Secure; SameSite=Lax; Max-Age=0`
277
+ );
278
+ }
279
+ function safeRelative(value) {
280
+ if (typeof value !== "string" || !value.startsWith("/") || value.startsWith("//") || value.includes("\\") || value.includes("://")) {
281
+ return "/";
282
+ }
283
+ return value;
284
+ }
285
+ async function sign_session(session, key) {
286
+ return encode({ ...session }, key);
287
+ }
288
+ async function set_session(req, response, value) {
289
+ const today = /* @__PURE__ */ new Date();
290
+ const expires = new Date(today.getTime() + 7 * 24 * 60 * 60 * 1e3);
291
+ const serialized = await encode(
292
+ { ...value, exp: Math.floor(expires.getTime() / 1e3) },
293
+ req.session_keys[0]
294
+ );
295
+ response.headers.set(
296
+ "Set-Cookie",
297
+ `${session_cookie_name}=${serialized}; Path=/; HttpOnly; Secure; SameSite=Lax; Expires=${expires.toUTCString()} `
298
+ );
299
+ }
300
+ async function get_session(req, secrets) {
301
+ const cookies = req.get("cookie");
302
+ if (!cookies) {
303
+ return {};
304
+ }
305
+ const cookie = parse(cookies)[session_cookie_name];
306
+ if (!cookie) {
307
+ return {};
308
+ }
309
+ if (cookie === "{}") {
310
+ return {};
311
+ }
312
+ for (const secret of secrets) {
313
+ try {
314
+ if (!await verify(cookie, secret)) {
315
+ continue;
316
+ }
317
+ const parsed = decode(cookie);
318
+ if (!parsed) {
319
+ return {};
320
+ }
321
+ const { exp: _exp, iat: _iat, ...session } = parsed.payload;
322
+ return session;
323
+ } catch {
324
+ continue;
325
+ }
326
+ }
327
+ return {};
328
+ }
329
+ export {
330
+ applySessionToken,
331
+ clear_session,
332
+ get_session,
333
+ handle_request,
334
+ isAllowedOrigin,
335
+ session_cookie_name,
336
+ set_session,
337
+ sign_session
338
+ };
@@ -0,0 +1,44 @@
1
+ import type { createYoga } from 'graphql-yoga';
2
+ import type { MutationArtifact, QueryArtifact } from '../runtime/types.js';
3
+ import type { RouteParam } from './match.js';
4
+ export type YogaServer = ReturnType<typeof createYoga>;
5
+ export type YogaServerOptions = Parameters<typeof createYoga>[0];
6
+ export type RouterManifest<_ComponentType> = {
7
+ pages: Record<string, RouterPageManifest<_ComponentType>>;
8
+ pagesByUrl: Record<string, string>;
9
+ formActions?: Record<string, () => Promise<{
10
+ default: MutationArtifact;
11
+ }>>;
12
+ sessionMutations?: Record<string, {
13
+ sessionPath: string;
14
+ merge?: boolean;
15
+ }>;
16
+ };
17
+ export type { ServerAdapterFactory } from './server.js';
18
+ export type RouterPageManifest<_ComponentType> = {
19
+ id: string;
20
+ url: string;
21
+ pattern: RegExp;
22
+ params: readonly RouteParam[];
23
+ searchParams: readonly SearchParam[];
24
+ documents: Record<string, {
25
+ artifact: () => Promise<{
26
+ default: QueryArtifact;
27
+ }>;
28
+ loading: boolean;
29
+ variables: Record<string, {
30
+ type: string;
31
+ }>;
32
+ }>;
33
+ component: () => Promise<{
34
+ default: _ComponentType;
35
+ }>;
36
+ headers?: Array<() => Promise<RouteHeaderFunction | undefined>>;
37
+ };
38
+ export type SearchParam = {
39
+ name: string;
40
+ type: string;
41
+ wrappers: readonly string[];
42
+ };
43
+ export type RouteHeaderFunction = () => RouteHeaders | Promise<RouteHeaders>;
44
+ export type RouteHeaders = Record<string, string>;
@@ -0,0 +1 @@
1
+ export {};