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
@@ -0,0 +1,433 @@
1
+ import { readFileSync, writeFileSync } from "fs";
2
+ import { codegen_setup, get_config, path, run_pipeline } from "../lib/index.js";
3
+ let compiler;
4
+ function document_hmr(ctx) {
5
+ const debounceHmr = createDebounceHmr(50);
6
+ let config;
7
+ const ownWrites = /* @__PURE__ */ new Map();
8
+ let generatedDir;
9
+ let rootPrefix;
10
+ const cleanupFiles = /* @__PURE__ */ new Set();
11
+ function isManifestFile(filepath) {
12
+ return (filepath.split("/").pop() ?? "").startsWith("+");
13
+ }
14
+ return {
15
+ name: "houdini",
16
+ enforce: "pre",
17
+ // this is called when the dev server starts
18
+ async configureServer(server) {
19
+ config = await get_config();
20
+ compiler = await codegen_setup(config, "dev", ctx.db, ctx.db_file);
21
+ generatedDir = path.join(
22
+ server.config.root,
23
+ ctx.config.config_file.runtimeDir ?? ".houdini"
24
+ );
25
+ rootPrefix = server.config.root.endsWith("/") ? server.config.root : `${server.config.root}/`;
26
+ server.httpServer?.once("close", () => {
27
+ compiler.close();
28
+ });
29
+ try {
30
+ await compiler.run_pipeline({
31
+ // the pipeline through schema is run as part of codegen_setup
32
+ after: "Schema"
33
+ });
34
+ const docCount = ctx.db.get(
35
+ "SELECT COUNT(*) as count FROM documents WHERE visible = 1"
36
+ );
37
+ console.log(
38
+ `\u{1F3A9} Generated ${docCount?.count ?? 0} ${(docCount?.count ?? 0) === 1 ? "document" : "documents"}`
39
+ );
40
+ } catch {
41
+ }
42
+ },
43
+ // hotUpdate is called for 'create', 'update', and 'delete' events in Vite 8+.
44
+ // The legacy handleHotUpdate hook is only called for 'update', so new .gql files
45
+ // (type === 'create') would be silently ignored without this hook.
46
+ // Async so we can read file content eagerly to determine ownership before debouncing.
47
+ async hotUpdate(opts) {
48
+ if (!generatedDir) return;
49
+ const now = Date.now();
50
+ for (const [fp, ts] of ownWrites.entries()) {
51
+ if (now - ts > 1e3) ownWrites.delete(fp);
52
+ }
53
+ const server = opts.server;
54
+ if (opts.file.startsWith(`${generatedDir}/`) || opts.file === generatedDir) {
55
+ return [];
56
+ }
57
+ if (opts.type === "delete") {
58
+ const relPath = opts.file.substring(rootPrefix.length);
59
+ if (!opts.file.endsWith(".gql") && !isManifestFile(opts.file)) {
60
+ const rowCount = ctx.db.get(
61
+ "SELECT COUNT(*) as count FROM raw_documents WHERE filepath = ?",
62
+ [relPath]
63
+ )?.count ?? 0;
64
+ if (rowCount === 0) return;
65
+ }
66
+ debounceHmr.queueDelete(relPath, batchCallback);
67
+ return [];
68
+ }
69
+ const ownWriteTime = ownWrites.get(opts.file);
70
+ if (ownWriteTime !== void 0) {
71
+ if (Date.now() - ownWriteTime < 500) return [];
72
+ ownWrites.delete(opts.file);
73
+ }
74
+ let preReadContent = null;
75
+ if (!opts.file.endsWith(".gql")) {
76
+ try {
77
+ preReadContent = await opts.read();
78
+ } catch {
79
+ return;
80
+ }
81
+ if (!preReadContent.includes("$houdini")) {
82
+ if (!isManifestFile(opts.file)) {
83
+ const relPath = opts.file.substring(rootPrefix.length);
84
+ const rowCount = ctx.db.get(
85
+ "SELECT COUNT(*) as count FROM raw_documents WHERE filepath = ?",
86
+ [relPath]
87
+ )?.count ?? 0;
88
+ if (rowCount === 0) return;
89
+ cleanupFiles.add(opts.file);
90
+ }
91
+ }
92
+ }
93
+ debounceHmr.queueUpdate(opts, preReadContent, batchCallback);
94
+ async function batchCallback(files, deletedFiles, task_id) {
95
+ if (!compiler) return;
96
+ await compiler.pipeline_lock(async () => {
97
+ if (deletedFiles.length > 0) {
98
+ const delClause = deletedFiles.map(() => "filepath = ?").join(" OR ");
99
+ ctx.db.run(`DELETE FROM raw_documents WHERE ${delClause}`, deletedFiles);
100
+ }
101
+ const filepaths = [];
102
+ const relativePaths = [];
103
+ const useStdio = config.config_file.pluginTransport === "stdio";
104
+ for (const [filepath, content] of Object.entries(files)) {
105
+ if (!filepath.includes(generatedDir) && (filepath.endsWith(".gql") || content.includes("$houdini") || cleanupFiles.delete(filepath) || isManifestFile(filepath))) {
106
+ const relPath = filepath.substring(rootPrefix.length);
107
+ relativePaths.push(relPath);
108
+ filepaths.push(filepath);
109
+ if (useStdio) {
110
+ let fileContent;
111
+ try {
112
+ fileContent = readFileSync(filepath, "utf-8");
113
+ } catch {
114
+ fileContent = content;
115
+ }
116
+ if (fileContent.trim() !== "") {
117
+ ownWrites.set(filepath, Date.now());
118
+ try {
119
+ writeFileSync(filepath, fileContent, "utf-8");
120
+ } catch {
121
+ ownWrites.delete(filepath);
122
+ }
123
+ }
124
+ }
125
+ }
126
+ }
127
+ if (filepaths.length === 0) {
128
+ if (deletedFiles.length > 0) {
129
+ console.log(
130
+ `\u{1F3A9} Detected ${deletedFiles.length} deleted ${deletedFiles.length === 1 ? "file" : "files"}, re-running compiler`
131
+ );
132
+ ctx.db.run(`
133
+ UPDATE selections AS s
134
+ SET field_name = s.fragment_ref
135
+ WHERE s.fragment_ref IS NOT NULL
136
+ AND s.kind = 'fragment'
137
+ AND NOT EXISTS (SELECT 1 FROM documents d WHERE d.name = s.field_name)
138
+ `);
139
+ ctx.db.run(`
140
+ WITH orphan_selections AS (
141
+ SELECT s.id FROM selections s
142
+ LEFT JOIN selection_refs rp ON rp.parent_id = s.id
143
+ LEFT JOIN selection_refs rc ON rc.child_id = s.id
144
+ WHERE rp.id IS NULL AND rc.id IS NULL
145
+ )
146
+ DELETE FROM selections WHERE id IN (SELECT id FROM orphan_selections)
147
+ `);
148
+ try {
149
+ const results2 = await run_pipeline(compiler.trigger_hook, {
150
+ after: "AfterExtract"
151
+ });
152
+ const updated_modules2 = [
153
+ ...Object.values(results2.GenerateDocuments || {}).flat(),
154
+ ...Object.values(results2.GenerateRuntime || {}).flat()
155
+ ];
156
+ const seenUrls2 = /* @__PURE__ */ new Set();
157
+ const updates2 = updated_modules2.flatMap((module_path) => {
158
+ const resolvedPath = module_path.startsWith("$houdini/") ? module_path.replace("$houdini", generatedDir) : module_path;
159
+ const mods = [
160
+ ...server.moduleGraph.getModulesByFile(resolvedPath) ?? []
161
+ ];
162
+ return mods.flatMap((mod) => {
163
+ if (seenUrls2.has(mod.url)) return [];
164
+ seenUrls2.add(mod.url);
165
+ server.moduleGraph.invalidateModule(mod);
166
+ return [
167
+ {
168
+ type: "js-update",
169
+ path: mod.url,
170
+ acceptedPath: mod.url,
171
+ timestamp: Date.now()
172
+ }
173
+ ];
174
+ });
175
+ });
176
+ if (updates2.length > 0) {
177
+ server.ws.send({ type: "update", updates: updates2 });
178
+ }
179
+ } catch (err) {
180
+ console.error("[houdini] pipeline error after deletion:", err);
181
+ }
182
+ }
183
+ return;
184
+ }
185
+ const fileCount = filepaths.length;
186
+ console.log(
187
+ `\u{1F3A9} Detected ${fileCount} file ${fileCount === 1 ? "change" : "changes"}, re-running compiler`
188
+ );
189
+ const eqClause = relativePaths.map(() => "filepath = ?").join(" OR ");
190
+ const savedDocs = ctx.db.all(
191
+ `SELECT id, offset_line, offset_column, filepath, content, current_task, loaded_with
192
+ FROM raw_documents WHERE ${eqClause}`,
193
+ relativePaths
194
+ );
195
+ ctx.db.run(`DELETE from raw_documents WHERE ${eqClause}`, relativePaths);
196
+ ctx.db.run(`
197
+ UPDATE selections AS s
198
+ SET field_name = s.fragment_ref
199
+ WHERE s.fragment_ref IS NOT NULL
200
+ AND s.kind = 'fragment'
201
+ AND NOT EXISTS (SELECT 1 FROM documents d WHERE d.name = s.field_name)
202
+ `);
203
+ ctx.db.run(`
204
+ WITH orphan_selections AS (
205
+ SELECT s.id FROM selections s
206
+ LEFT JOIN selection_refs rp ON rp.parent_id = s.id
207
+ LEFT JOIN selection_refs rc ON rc.child_id = s.id
208
+ WHERE rp.id IS NULL AND rc.id IS NULL
209
+ )
210
+ DELETE FROM selections WHERE id IN (SELECT id FROM orphan_selections)
211
+ `);
212
+ try {
213
+ await compiler.trigger_hook("ExtractDocuments", {
214
+ payload: { filepaths }
215
+ });
216
+ } catch (err) {
217
+ for (const doc of savedDocs) {
218
+ try {
219
+ ctx.db.run(
220
+ `INSERT OR IGNORE INTO raw_documents
221
+ (offset_line, offset_column, filepath, content, loaded_with)
222
+ VALUES (?, ?, ?, ?, ?)`,
223
+ [
224
+ doc.offset_line,
225
+ doc.offset_column,
226
+ doc.filepath,
227
+ doc.content,
228
+ doc.loaded_with
229
+ ]
230
+ );
231
+ } catch {
232
+ }
233
+ }
234
+ ctx.db.flush();
235
+ ctx.db.reload();
236
+ throw err;
237
+ }
238
+ ctx.db.run(`UPDATE raw_documents SET current_task = ? WHERE ${eqClause}`, [
239
+ task_id,
240
+ ...relativePaths
241
+ ]);
242
+ const changes = ctx.db.rowsModified();
243
+ if (changes === 0 && savedDocs.length === 0) {
244
+ if (!filepaths.some(isManifestFile)) return;
245
+ }
246
+ await compiler.trigger_hook("AfterExtract", { task_id });
247
+ ctx.db.run(
248
+ `
249
+ WITH RECURSIVE
250
+ seed AS (
251
+ SELECT DISTINCT d.name FROM raw_documents rd
252
+ JOIN documents d ON d.raw_document = rd.id
253
+ WHERE rd.current_task = $task_id
254
+ ),
255
+ up AS (
256
+ SELECT name FROM seed
257
+ UNION
258
+ SELECT d2.name FROM up u
259
+ JOIN document_dependencies dd ON dd.depends_on = u.name
260
+ JOIN documents d2 ON d2.id = dd.document
261
+ ),
262
+ down AS (
263
+ SELECT name FROM seed
264
+ UNION
265
+ SELECT dd.depends_on FROM down v
266
+ JOIN documents d ON d.name = v.name
267
+ JOIN document_dependencies dd ON dd.document = d.id
268
+ ),
269
+ targets_up AS (
270
+ SELECT DISTINCT d.raw_document AS raw_id FROM documents d
271
+ JOIN up u ON u.name = d.name WHERE d.raw_document IS NOT NULL
272
+ ),
273
+ targets_down AS (
274
+ SELECT DISTINCT d.raw_document AS raw_id FROM documents d
275
+ JOIN down v ON v.name = d.name
276
+ JOIN raw_documents rd ON rd.id = d.raw_document
277
+ WHERE d.raw_document IS NOT NULL
278
+ ),
279
+ targets AS (SELECT raw_id FROM targets_up UNION SELECT raw_id FROM targets_down)
280
+ UPDATE raw_documents SET current_task = $task_id
281
+ WHERE id IN (SELECT raw_id FROM targets)
282
+ `,
283
+ { $task_id: task_id }
284
+ );
285
+ let results;
286
+ try {
287
+ results = await run_pipeline(compiler.trigger_hook, {
288
+ task_id,
289
+ after: "AfterExtract"
290
+ });
291
+ } finally {
292
+ ctx.db.run(
293
+ `UPDATE raw_documents SET current_task = NULL WHERE current_task = ?`,
294
+ [task_id]
295
+ );
296
+ }
297
+ const changedDocCount = Object.values(results.GenerateDocuments || {}).flat().length;
298
+ console.log(
299
+ `\u{1F3A9} Updated ${changedDocCount} ${changedDocCount === 1 ? "document" : "documents"}`
300
+ );
301
+ const updated_modules = [
302
+ ...Object.values(results.GenerateDocuments || {}).flat(),
303
+ ...Object.values(results.GenerateRuntime || {}).flat()
304
+ ];
305
+ const seenUrls = /* @__PURE__ */ new Set();
306
+ const updates = updated_modules.flatMap((module_path) => {
307
+ const resolvedPath = module_path.startsWith("$houdini/") ? module_path.replace("$houdini", generatedDir) : module_path;
308
+ const mods = [...server.moduleGraph.getModulesByFile(resolvedPath) ?? []];
309
+ return mods.flatMap((mod) => {
310
+ if (seenUrls.has(mod.url)) return [];
311
+ seenUrls.add(mod.url);
312
+ server.moduleGraph.invalidateModule(mod);
313
+ return [
314
+ {
315
+ type: "js-update",
316
+ path: mod.url,
317
+ acceptedPath: mod.url,
318
+ timestamp: Date.now()
319
+ }
320
+ ];
321
+ });
322
+ });
323
+ if (updates.length > 0) {
324
+ server.ws.send({ type: "update", updates });
325
+ }
326
+ });
327
+ }
328
+ }
329
+ };
330
+ }
331
+ function createDebounceHmr(debounceMs = 50) {
332
+ const updateQueue = /* @__PURE__ */ new Map();
333
+ const deleteQueue = /* @__PURE__ */ new Set();
334
+ let updateTimer = null;
335
+ let batchId = 0;
336
+ let isProcessing = false;
337
+ let pendingBatch = null;
338
+ function scheduleFlush(callback) {
339
+ if (updateTimer) {
340
+ clearTimeout(updateTimer);
341
+ }
342
+ updateTimer = setTimeout(async () => {
343
+ const filesToProcess = new Map(updateQueue);
344
+ const filesToDelete = new Set(deleteQueue);
345
+ const currentBatchId = ++batchId;
346
+ updateQueue.clear();
347
+ deleteQueue.clear();
348
+ updateTimer = null;
349
+ if (isProcessing) {
350
+ if (pendingBatch) {
351
+ for (const [fp, entry] of filesToProcess.entries()) {
352
+ pendingBatch.files.set(fp, entry);
353
+ }
354
+ for (const relPath of filesToDelete) {
355
+ pendingBatch.deletedFiles.add(relPath);
356
+ }
357
+ pendingBatch.batchId = currentBatchId;
358
+ } else {
359
+ pendingBatch = {
360
+ files: filesToProcess,
361
+ deletedFiles: filesToDelete,
362
+ batchId: currentBatchId
363
+ };
364
+ }
365
+ return;
366
+ }
367
+ isProcessing = true;
368
+ try {
369
+ const filesWithContent = {};
370
+ await Promise.all(
371
+ Array.from(filesToProcess.entries()).map(async ([filepath, entry]) => {
372
+ try {
373
+ filesWithContent[filepath] = typeof entry === "string" ? entry : await entry();
374
+ } catch {
375
+ }
376
+ })
377
+ );
378
+ try {
379
+ await callback(filesWithContent, [...filesToDelete], currentBatchId.toString());
380
+ } catch (err) {
381
+ if (!err?.alreadyLogged) {
382
+ console.error("[houdini] HMR pipeline error:", err);
383
+ }
384
+ }
385
+ while (pendingBatch) {
386
+ const {
387
+ files: nextFiles,
388
+ deletedFiles: nextDeleted,
389
+ batchId: nextBatchId
390
+ } = pendingBatch;
391
+ pendingBatch = null;
392
+ const nextFilesWithContent = {};
393
+ await Promise.all(
394
+ Array.from(nextFiles.entries()).map(async ([filepath, entry]) => {
395
+ try {
396
+ nextFilesWithContent[filepath] = typeof entry === "string" ? entry : await entry();
397
+ } catch {
398
+ }
399
+ })
400
+ );
401
+ try {
402
+ await callback(
403
+ nextFilesWithContent,
404
+ [...nextDeleted],
405
+ nextBatchId.toString()
406
+ );
407
+ } catch (err) {
408
+ console.error("[houdini] HMR pipeline error:", err);
409
+ }
410
+ }
411
+ } finally {
412
+ isProcessing = false;
413
+ }
414
+ }, debounceMs);
415
+ }
416
+ return {
417
+ queueUpdate(ctx, preReadContent, callback) {
418
+ if (!updateQueue.has(ctx.file)) {
419
+ updateQueue.set(ctx.file, preReadContent !== null ? preReadContent : ctx.read);
420
+ }
421
+ scheduleFlush(callback);
422
+ },
423
+ queueDelete(relativePath, callback) {
424
+ deleteQueue.add(relativePath);
425
+ scheduleFlush(callback);
426
+ }
427
+ };
428
+ }
429
+ export {
430
+ compiler,
431
+ createDebounceHmr,
432
+ document_hmr
433
+ };
@@ -1,11 +1,5 @@
1
- import type { SourceMapInput } from 'rollup';
2
1
  import type { Plugin as VitePlugin } from 'vite';
3
- import type { Config, PluginConfig } from '../lib';
4
- export default function Plugin(opts?: PluginConfig): VitePlugin;
5
- export interface TransformPage {
6
- config: Config;
7
- content: string;
8
- map?: SourceMapInput;
9
- filepath: string;
10
- watch_file: (path: string) => void;
11
- }
2
+ import type { VitePluginContext } from './index.js';
3
+ import type { CompilerProxy } from '../lib/index.js';
4
+ export declare let compiler: CompilerProxy;
5
+ export declare function houdini(ctx: VitePluginContext): VitePlugin;
@@ -0,0 +1,144 @@
1
+ import path from "node:path";
2
+ import { codegen_setup, init_db } from "../lib/codegen.js";
3
+ import * as fs from "../lib/fs.js";
4
+ let compiler;
5
+ let alreadyBuilt = false;
6
+ function houdini(ctx) {
7
+ let viteEnv;
8
+ let viteConfig;
9
+ let devServer = false;
10
+ return {
11
+ name: "houdini",
12
+ enforce: "pre",
13
+ async configureServer() {
14
+ devServer = true;
15
+ },
16
+ async configResolved(conf) {
17
+ viteConfig = conf;
18
+ if (conf.isWorker) {
19
+ return;
20
+ }
21
+ if (!ctx.db) {
22
+ const [db] = await init_db(ctx.config, false);
23
+ ctx.db = db;
24
+ }
25
+ },
26
+ async config(userConfig, env) {
27
+ viteEnv = env;
28
+ const runtimeDir = path.join(
29
+ ctx.config.root_dir,
30
+ ctx.config.config_file.runtimeDir ?? ".houdini"
31
+ );
32
+ const houdiniAliases = {
33
+ $houdini: runtimeDir,
34
+ "$houdini/*": path.join(runtimeDir, "*"),
35
+ "~": path.join(ctx.config.root_dir, "src"),
36
+ "~/*": path.join(ctx.config.root_dir, "src", "*")
37
+ };
38
+ return {
39
+ resolve: {
40
+ ...userConfig.resolve,
41
+ alias: Array.isArray(userConfig.resolve?.alias) ? [
42
+ ...userConfig.resolve.alias,
43
+ ...Object.entries(houdiniAliases).map(([find, replacement]) => ({
44
+ find,
45
+ replacement
46
+ }))
47
+ ] : { ...userConfig.resolve?.alias, ...houdiniAliases }
48
+ },
49
+ server: {
50
+ ...userConfig.server,
51
+ fs: {
52
+ ...userConfig.server?.fs,
53
+ allow: ["."].concat(userConfig.server?.fs?.allow || [])
54
+ },
55
+ watch: {
56
+ ...userConfig.server?.watch,
57
+ ignored: ["**/*.houdini_tmp"].concat(
58
+ userConfig.server?.watch?.ignored || []
59
+ )
60
+ }
61
+ }
62
+ };
63
+ },
64
+ async buildStart() {
65
+ if (viteConfig.isWorker) {
66
+ return;
67
+ }
68
+ if (!compiler && !devServer) {
69
+ compiler = await codegen_setup(ctx.config, "dev", ctx.db, ctx.db_file);
70
+ }
71
+ if (ctx.adapter?.pre && viteEnv.command === "build") {
72
+ const routerConventions = await import("../router/conventions.js");
73
+ await ctx.adapter.pre({
74
+ config: ctx.config,
75
+ conventions: routerConventions,
76
+ sourceDir: viteConfig.build.outDir,
77
+ publicBase: viteConfig.base,
78
+ outDir: routerConventions.router_build_directory(ctx.config)
79
+ });
80
+ }
81
+ if (!devServer && !process.env.HOUDINI_SKIP_GENERATE && !alreadyBuilt) {
82
+ const buildResults = await compiler.run_pipeline({
83
+ // the pipeline through schema is run as part of codegen_setup
84
+ after: "Schema"
85
+ });
86
+ const buildDocCount = Object.values(buildResults.GenerateDocuments ?? {}).flat().length;
87
+ console.log(
88
+ `\u{1F3A9} Generated ${buildDocCount} ${buildDocCount === 1 ? "document" : "documents"}`
89
+ );
90
+ alreadyBuilt = true;
91
+ await compiler.close();
92
+ }
93
+ },
94
+ closeBundle: {
95
+ order: "post",
96
+ async handler() {
97
+ if (viteEnv.mode !== "production" || devServer || viteConfig.build.ssr || viteConfig.isWorker) {
98
+ return;
99
+ }
100
+ if (!ctx.adapter) {
101
+ return;
102
+ }
103
+ const routerConventions = await import("../router/conventions.js");
104
+ const outDir = routerConventions.router_build_directory(ctx.config);
105
+ const sourceDir = viteConfig.build.outDir;
106
+ console.log("\u{1F3A9} Generating Deployment Assets...");
107
+ try {
108
+ const stat = await fs.stat(outDir);
109
+ if (stat?.isDirectory()) {
110
+ await fs.rmdir(outDir);
111
+ }
112
+ } catch {
113
+ }
114
+ await fs.mkdirp(outDir);
115
+ const { load_manifest } = await import("../router/manifest.js");
116
+ const manifest = await load_manifest({
117
+ config: ctx.config,
118
+ includeArtifacts: true
119
+ });
120
+ if (!ctx.adapter?.disableServer) {
121
+ await fs.recursiveCopy(path.join(sourceDir, "ssr"), path.join(outDir, "ssr"));
122
+ await fs.rmdir(path.join(sourceDir, "ssr"));
123
+ }
124
+ await fs.recursiveCopy(sourceDir, path.join(outDir, "assets"));
125
+ await ctx.adapter({
126
+ config: ctx.config,
127
+ conventions: routerConventions,
128
+ sourceDir,
129
+ publicBase: viteConfig.base,
130
+ outDir,
131
+ manifest,
132
+ adapterPath: "./ssr/entries/adapter"
133
+ });
134
+ if (fs.existsSync(path.join(ctx.config.root_dir, "public"))) {
135
+ await fs.recursiveCopy(path.join(ctx.config.root_dir, "public"), outDir);
136
+ }
137
+ }
138
+ }
139
+ };
140
+ }
141
+ export {
142
+ compiler,
143
+ houdini
144
+ };
@@ -1,7 +1,13 @@
1
- import type { Plugin } from 'vite';
2
- import type { PluginConfig } from '../lib';
3
- export * from './ast';
4
- export * from './imports';
5
- export * from './schema';
6
- export * from './houdini';
7
- export default function (opts?: PluginConfig): (Plugin | null)[];
1
+ import type { Db } from '../lib/db.js';
2
+ import type { PluginOption } from 'vite';
3
+ import { type Adapter, type ConfigFile, type Config } from '../lib/index.js';
4
+ export type PluginConfig = {
5
+ configPath?: string;
6
+ adapter?: Adapter;
7
+ } & Partial<ConfigFile>;
8
+ export type VitePluginContext = PluginConfig & {
9
+ db: Db;
10
+ db_file: string;
11
+ config: Config;
12
+ };
13
+ export default function (opts?: PluginConfig): Promise<Array<PluginOption>>;