houdini 2.0.0-next.8 → 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 (450) 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 -89304
  134. package/build/cmd-cjs/package.json +0 -1
  135. package/build/cmd-esm/index.js +0 -89308
  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 -74661
  186. package/build/codegen-cjs/package.json +0 -1
  187. package/build/codegen-esm/index.js +0 -74660
  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 -79736
  198. package/build/lib-cjs/package.json +0 -1
  199. package/build/lib-esm/index.js +0 -79645
  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 -43
  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-cjs/cache/cache.d.ts +0 -169
  240. package/build/runtime-cjs/cache/cache.js +0 -1077
  241. package/build/runtime-cjs/cache/constants.d.ts +0 -1
  242. package/build/runtime-cjs/cache/constants.js +0 -28
  243. package/build/runtime-cjs/cache/gc.d.ts +0 -10
  244. package/build/runtime-cjs/cache/gc.js +0 -74
  245. package/build/runtime-cjs/cache/index.d.ts +0 -3
  246. package/build/runtime-cjs/cache/index.js +0 -25
  247. package/build/runtime-cjs/cache/lists.d.ts +0 -89
  248. package/build/runtime-cjs/cache/lists.js +0 -467
  249. package/build/runtime-cjs/cache/staleManager.d.ts +0 -31
  250. package/build/runtime-cjs/cache/staleManager.js +0 -123
  251. package/build/runtime-cjs/cache/storage.d.ts +0 -110
  252. package/build/runtime-cjs/cache/storage.js +0 -451
  253. package/build/runtime-cjs/cache/stuff.d.ts +0 -2
  254. package/build/runtime-cjs/cache/stuff.js +0 -56
  255. package/build/runtime-cjs/cache/subscription.d.ts +0 -52
  256. package/build/runtime-cjs/cache/subscription.js +0 -349
  257. package/build/runtime-cjs/client/documentStore.d.ts +0 -107
  258. package/build/runtime-cjs/client/documentStore.js +0 -487
  259. package/build/runtime-cjs/client/index.d.ts +0 -50
  260. package/build/runtime-cjs/client/index.js +0 -162
  261. package/build/runtime-cjs/client/plugins/cache.d.ts +0 -9
  262. package/build/runtime-cjs/client/plugins/cache.js +0 -138
  263. package/build/runtime-cjs/client/plugins/fetch.d.ts +0 -38
  264. package/build/runtime-cjs/client/plugins/fetch.js +0 -210
  265. package/build/runtime-cjs/client/plugins/fetchParams.d.ts +0 -9
  266. package/build/runtime-cjs/client/plugins/fetchParams.js +0 -47
  267. package/build/runtime-cjs/client/plugins/fragment.d.ts +0 -2
  268. package/build/runtime-cjs/client/plugins/fragment.js +0 -77
  269. package/build/runtime-cjs/client/plugins/index.d.ts +0 -9
  270. package/build/runtime-cjs/client/plugins/index.js +0 -45
  271. package/build/runtime-cjs/client/plugins/injectedPlugins.d.ts +0 -4
  272. package/build/runtime-cjs/client/plugins/injectedPlugins.js +0 -25
  273. package/build/runtime-cjs/client/plugins/mutation.d.ts +0 -2
  274. package/build/runtime-cjs/client/plugins/mutation.js +0 -89
  275. package/build/runtime-cjs/client/plugins/optimisticKeys.d.ts +0 -7
  276. package/build/runtime-cjs/client/plugins/optimisticKeys.js +0 -324
  277. package/build/runtime-cjs/client/plugins/query.d.ts +0 -2
  278. package/build/runtime-cjs/client/plugins/query.js +0 -93
  279. package/build/runtime-cjs/client/plugins/subscription.d.ts +0 -20
  280. package/build/runtime-cjs/client/plugins/subscription.js +0 -114
  281. package/build/runtime-cjs/client/plugins/test.d.ts +0 -15
  282. package/build/runtime-cjs/client/plugins/test.js +0 -118
  283. package/build/runtime-cjs/client/plugins/throwOnError.d.ts +0 -8
  284. package/build/runtime-cjs/client/plugins/throwOnError.js +0 -47
  285. package/build/runtime-cjs/client/utils/documentPlugins.d.ts +0 -3
  286. package/build/runtime-cjs/client/utils/documentPlugins.js +0 -57
  287. package/build/runtime-cjs/client/utils/index.d.ts +0 -1
  288. package/build/runtime-cjs/client/utils/index.js +0 -22
  289. package/build/runtime-cjs/generated.d.ts +0 -5
  290. package/build/runtime-cjs/generated.js +0 -16
  291. package/build/runtime-cjs/imports/config.d.ts +0 -3
  292. package/build/runtime-cjs/imports/config.js +0 -24
  293. package/build/runtime-cjs/imports/pluginConfig.d.ts +0 -3
  294. package/build/runtime-cjs/imports/pluginConfig.js +0 -25
  295. package/build/runtime-cjs/index.d.ts +0 -8
  296. package/build/runtime-cjs/index.js +0 -61
  297. package/build/runtime-cjs/lib/config.d.ts +0 -216
  298. package/build/runtime-cjs/lib/config.js +0 -110
  299. package/build/runtime-cjs/lib/constants.d.ts +0 -6
  300. package/build/runtime-cjs/lib/constants.js +0 -38
  301. package/build/runtime-cjs/lib/deepEquals.js +0 -52
  302. package/build/runtime-cjs/lib/flatten.js +0 -41
  303. package/build/runtime-cjs/lib/index.d.ts +0 -10
  304. package/build/runtime-cjs/lib/index.js +0 -40
  305. package/build/runtime-cjs/lib/key.js +0 -41
  306. package/build/runtime-cjs/lib/log.js +0 -72
  307. package/build/runtime-cjs/lib/lru.js +0 -73
  308. package/build/runtime-cjs/lib/pageInfo.js +0 -79
  309. package/build/runtime-cjs/lib/pagination.js +0 -240
  310. package/build/runtime-cjs/lib/scalars.js +0 -147
  311. package/build/runtime-cjs/lib/selection.js +0 -66
  312. package/build/runtime-cjs/lib/store.d.ts +0 -19
  313. package/build/runtime-cjs/lib/store.js +0 -81
  314. package/build/runtime-cjs/lib/types.d.ts +0 -417
  315. package/build/runtime-cjs/lib/types.js +0 -104
  316. package/build/runtime-cjs/package.json +0 -1
  317. package/build/runtime-cjs/public/cache.d.ts +0 -43
  318. package/build/runtime-cjs/public/cache.js +0 -112
  319. package/build/runtime-cjs/public/index.d.ts +0 -1
  320. package/build/runtime-cjs/public/index.js +0 -28
  321. package/build/runtime-cjs/public/list.d.ts +0 -18
  322. package/build/runtime-cjs/public/list.js +0 -151
  323. package/build/runtime-cjs/public/record.d.ts +0 -40
  324. package/build/runtime-cjs/public/record.js +0 -94
  325. package/build/runtime-cjs/public/tests/test.d.ts +0 -156
  326. package/build/runtime-cjs/public/tests/test.js +0 -60
  327. package/build/runtime-cjs/public/types.d.ts +0 -62
  328. package/build/runtime-cjs/public/types.js +0 -16
  329. package/build/runtime-cjs/router/cookies.js +0 -168
  330. package/build/runtime-cjs/router/jwt.js +0 -168
  331. package/build/runtime-cjs/router/match.d.ts +0 -39
  332. package/build/runtime-cjs/router/match.js +0 -158
  333. package/build/runtime-cjs/router/server.d.ts +0 -24
  334. package/build/runtime-cjs/router/server.js +0 -112
  335. package/build/runtime-cjs/router/session.d.ts +0 -22
  336. package/build/runtime-cjs/router/session.js +0 -97
  337. package/build/runtime-cjs/router/types.d.ts +0 -26
  338. package/build/runtime-cjs/router/types.js +0 -16
  339. package/build/runtime-esm/cache/cache.d.ts +0 -169
  340. package/build/runtime-esm/cache/constants.d.ts +0 -1
  341. package/build/runtime-esm/cache/gc.d.ts +0 -10
  342. package/build/runtime-esm/cache/index.d.ts +0 -3
  343. package/build/runtime-esm/cache/index.js +0 -5
  344. package/build/runtime-esm/cache/lists.d.ts +0 -89
  345. package/build/runtime-esm/cache/staleManager.d.ts +0 -31
  346. package/build/runtime-esm/cache/storage.d.ts +0 -110
  347. package/build/runtime-esm/cache/stuff.d.ts +0 -2
  348. package/build/runtime-esm/cache/subscription.d.ts +0 -52
  349. package/build/runtime-esm/client/documentStore.d.ts +0 -107
  350. package/build/runtime-esm/client/index.d.ts +0 -50
  351. package/build/runtime-esm/client/index.js +0 -130
  352. package/build/runtime-esm/client/plugins/cache.d.ts +0 -9
  353. package/build/runtime-esm/client/plugins/cache.js +0 -104
  354. package/build/runtime-esm/client/plugins/fetch.d.ts +0 -38
  355. package/build/runtime-esm/client/plugins/fetch.js +0 -184
  356. package/build/runtime-esm/client/plugins/fetchParams.d.ts +0 -9
  357. package/build/runtime-esm/client/plugins/fetchParams.js +0 -23
  358. package/build/runtime-esm/client/plugins/fragment.d.ts +0 -2
  359. package/build/runtime-esm/client/plugins/fragment.js +0 -53
  360. package/build/runtime-esm/client/plugins/index.d.ts +0 -9
  361. package/build/runtime-esm/client/plugins/index.js +0 -12
  362. package/build/runtime-esm/client/plugins/injectedPlugins.d.ts +0 -4
  363. package/build/runtime-esm/client/plugins/injectedPlugins.js +0 -5
  364. package/build/runtime-esm/client/plugins/mutation.d.ts +0 -2
  365. package/build/runtime-esm/client/plugins/mutation.js +0 -65
  366. package/build/runtime-esm/client/plugins/optimisticKeys.d.ts +0 -7
  367. package/build/runtime-esm/client/plugins/optimisticKeys.js +0 -290
  368. package/build/runtime-esm/client/plugins/query.d.ts +0 -2
  369. package/build/runtime-esm/client/plugins/query.js +0 -69
  370. package/build/runtime-esm/client/plugins/subscription.d.ts +0 -20
  371. package/build/runtime-esm/client/plugins/subscription.js +0 -90
  372. package/build/runtime-esm/client/plugins/test.d.ts +0 -15
  373. package/build/runtime-esm/client/plugins/test.js +0 -93
  374. package/build/runtime-esm/client/plugins/throwOnError.d.ts +0 -8
  375. package/build/runtime-esm/client/plugins/throwOnError.js +0 -23
  376. package/build/runtime-esm/client/utils/documentPlugins.d.ts +0 -3
  377. package/build/runtime-esm/client/utils/documentPlugins.js +0 -33
  378. package/build/runtime-esm/client/utils/index.d.ts +0 -1
  379. package/build/runtime-esm/client/utils/index.js +0 -1
  380. package/build/runtime-esm/generated.d.ts +0 -5
  381. package/build/runtime-esm/generated.js +0 -0
  382. package/build/runtime-esm/imports/config.d.ts +0 -3
  383. package/build/runtime-esm/imports/config.js +0 -4
  384. package/build/runtime-esm/imports/pluginConfig.d.ts +0 -3
  385. package/build/runtime-esm/imports/pluginConfig.js +0 -5
  386. package/build/runtime-esm/index.d.ts +0 -8
  387. package/build/runtime-esm/index.js +0 -22
  388. package/build/runtime-esm/lib/config.d.ts +0 -216
  389. package/build/runtime-esm/lib/config.js +0 -69
  390. package/build/runtime-esm/lib/constants.d.ts +0 -6
  391. package/build/runtime-esm/lib/deepEquals.d.ts +0 -1
  392. package/build/runtime-esm/lib/flatten.d.ts +0 -2
  393. package/build/runtime-esm/lib/index.d.ts +0 -10
  394. package/build/runtime-esm/lib/index.js +0 -10
  395. package/build/runtime-esm/lib/key.d.ts +0 -6
  396. package/build/runtime-esm/lib/log.d.ts +0 -6
  397. package/build/runtime-esm/lib/lru.d.ts +0 -52
  398. package/build/runtime-esm/lib/pageInfo.d.ts +0 -7
  399. package/build/runtime-esm/lib/pagination.d.ts +0 -27
  400. package/build/runtime-esm/lib/scalars.d.ts +0 -14
  401. package/build/runtime-esm/lib/selection.d.ts +0 -2
  402. package/build/runtime-esm/lib/store.d.ts +0 -19
  403. package/build/runtime-esm/lib/types.d.ts +0 -417
  404. package/build/runtime-esm/public/cache.d.ts +0 -43
  405. package/build/runtime-esm/public/cache.js +0 -88
  406. package/build/runtime-esm/public/index.d.ts +0 -1
  407. package/build/runtime-esm/public/index.js +0 -4
  408. package/build/runtime-esm/public/list.d.ts +0 -18
  409. package/build/runtime-esm/public/list.js +0 -127
  410. package/build/runtime-esm/public/record.d.ts +0 -40
  411. package/build/runtime-esm/public/record.js +0 -70
  412. package/build/runtime-esm/public/tests/test.d.ts +0 -156
  413. package/build/runtime-esm/public/tests/test.js +0 -36
  414. package/build/runtime-esm/public/types.d.ts +0 -62
  415. package/build/runtime-esm/router/cookies.d.ts +0 -41
  416. package/build/runtime-esm/router/jwt.d.ts +0 -117
  417. package/build/runtime-esm/router/match.d.ts +0 -39
  418. package/build/runtime-esm/router/match.js +0 -131
  419. package/build/runtime-esm/router/server.d.ts +0 -24
  420. package/build/runtime-esm/router/server.js +0 -87
  421. package/build/runtime-esm/router/session.d.ts +0 -22
  422. package/build/runtime-esm/router/session.js +0 -71
  423. package/build/runtime-esm/router/types.d.ts +0 -26
  424. package/build/runtime-esm/router/types.js +0 -0
  425. package/build/test-cjs/index.js +0 -75254
  426. package/build/test-cjs/package.json +0 -1
  427. package/build/test-esm/index.js +0 -75249
  428. package/build/vite/imports.d.ts +0 -40
  429. package/build/vite-cjs/index.js +0 -86271
  430. package/build/vite-cjs/package.json +0 -1
  431. package/build/vite-esm/index.js +0 -86263
  432. /package/build/{adapter-esm → adapter}/package.json +0 -0
  433. /package/build/{cmd-esm → cmd}/package.json +0 -0
  434. /package/build/{vite → lib}/ast.d.ts +0 -0
  435. /package/build/{codegen-esm → lib}/package.json +0 -0
  436. /package/build/{lib-esm → node}/package.json +0 -0
  437. /package/build/{runtime-esm → oauth}/package.json +0 -0
  438. /package/build/{runtime-cjs/router → router}/cookies.d.ts +0 -0
  439. /package/build/{runtime-cjs/router → router}/jwt.d.ts +0 -0
  440. /package/build/{test-esm → router}/package.json +0 -0
  441. /package/build/{runtime-esm/public → router}/types.js +0 -0
  442. /package/build/{runtime-esm → runtime}/cache/constants.js +0 -0
  443. /package/build/{runtime-esm/lib → runtime}/constants.js +0 -0
  444. /package/build/{runtime-cjs/lib → runtime}/deepEquals.d.ts +0 -0
  445. /package/build/{runtime-esm/lib → runtime}/deepEquals.js +0 -0
  446. /package/build/{runtime-esm/lib → runtime}/flatten.js +0 -0
  447. /package/build/{runtime-cjs/lib → runtime}/log.d.ts +0 -0
  448. /package/build/{runtime-cjs/lib → runtime}/lru.d.ts +0 -0
  449. /package/build/{runtime-esm/lib → runtime}/lru.js +0 -0
  450. /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 {};