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,431 @@
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
+ console.error("[houdini] HMR pipeline error:", err);
382
+ }
383
+ while (pendingBatch) {
384
+ const {
385
+ files: nextFiles,
386
+ deletedFiles: nextDeleted,
387
+ batchId: nextBatchId
388
+ } = pendingBatch;
389
+ pendingBatch = null;
390
+ const nextFilesWithContent = {};
391
+ await Promise.all(
392
+ Array.from(nextFiles.entries()).map(async ([filepath, entry]) => {
393
+ try {
394
+ nextFilesWithContent[filepath] = typeof entry === "string" ? entry : await entry();
395
+ } catch {
396
+ }
397
+ })
398
+ );
399
+ try {
400
+ await callback(
401
+ nextFilesWithContent,
402
+ [...nextDeleted],
403
+ nextBatchId.toString()
404
+ );
405
+ } catch (err) {
406
+ console.error("[houdini] HMR pipeline error:", err);
407
+ }
408
+ }
409
+ } finally {
410
+ isProcessing = false;
411
+ }
412
+ }, debounceMs);
413
+ }
414
+ return {
415
+ queueUpdate(ctx, preReadContent, callback) {
416
+ if (!updateQueue.has(ctx.file)) {
417
+ updateQueue.set(ctx.file, preReadContent !== null ? preReadContent : ctx.read);
418
+ }
419
+ scheduleFlush(callback);
420
+ },
421
+ queueDelete(relativePath, callback) {
422
+ deleteQueue.add(relativePath);
423
+ scheduleFlush(callback);
424
+ }
425
+ };
426
+ }
427
+ export {
428
+ compiler,
429
+ createDebounceHmr,
430
+ document_hmr
431
+ };
@@ -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,134 @@
1
+ import path from "node:path";
2
+ import { codegen_setup } 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
+ },
19
+ async config(userConfig, env) {
20
+ viteEnv = env;
21
+ const runtimeDir = path.join(
22
+ ctx.config.root_dir,
23
+ ctx.config.config_file.runtimeDir ?? ".houdini"
24
+ );
25
+ const houdiniAliases = {
26
+ $houdini: runtimeDir,
27
+ "$houdini/*": path.join(runtimeDir, "*"),
28
+ "~": path.join(ctx.config.root_dir, "src"),
29
+ "~/*": path.join(ctx.config.root_dir, "src", "*")
30
+ };
31
+ return {
32
+ resolve: {
33
+ ...userConfig.resolve,
34
+ alias: Array.isArray(userConfig.resolve?.alias) ? [
35
+ ...userConfig.resolve.alias,
36
+ ...Object.entries(houdiniAliases).map(([find, replacement]) => ({
37
+ find,
38
+ replacement
39
+ }))
40
+ ] : { ...userConfig.resolve?.alias, ...houdiniAliases }
41
+ },
42
+ server: {
43
+ ...userConfig.server,
44
+ fs: {
45
+ ...userConfig.server?.fs,
46
+ allow: ["."].concat(userConfig.server?.fs?.allow || [])
47
+ },
48
+ watch: {
49
+ ...userConfig.server?.watch,
50
+ ignored: ["**/*.houdini_tmp"].concat(
51
+ userConfig.server?.watch?.ignored || []
52
+ )
53
+ }
54
+ }
55
+ };
56
+ },
57
+ async buildStart() {
58
+ if (!compiler && !devServer) {
59
+ compiler = await codegen_setup(ctx.config, "dev", ctx.db, ctx.db_file);
60
+ }
61
+ if (ctx.adapter?.pre && viteEnv.command === "build") {
62
+ const routerConventions = await import("../router/conventions.js");
63
+ await ctx.adapter.pre({
64
+ config: ctx.config,
65
+ conventions: routerConventions,
66
+ sourceDir: viteConfig.build.outDir,
67
+ publicBase: viteConfig.base,
68
+ outDir: routerConventions.router_build_directory(ctx.config)
69
+ });
70
+ }
71
+ if (!devServer && !process.env.HOUDINI_SKIP_GENERATE && !alreadyBuilt) {
72
+ const buildResults = await compiler.run_pipeline({
73
+ // the pipeline through schema is run as part of codegen_setup
74
+ after: "Schema"
75
+ });
76
+ const buildDocCount = Object.values(buildResults.GenerateDocuments ?? {}).flat().length;
77
+ console.log(
78
+ `\u{1F3A9} Generated ${buildDocCount} ${buildDocCount === 1 ? "document" : "documents"}`
79
+ );
80
+ alreadyBuilt = true;
81
+ await compiler.close();
82
+ }
83
+ },
84
+ closeBundle: {
85
+ order: "post",
86
+ async handler() {
87
+ if (viteEnv.mode !== "production" || devServer || viteConfig.build.ssr) {
88
+ return;
89
+ }
90
+ if (!ctx.adapter) {
91
+ return;
92
+ }
93
+ const routerConventions = await import("../router/conventions.js");
94
+ const outDir = routerConventions.router_build_directory(ctx.config);
95
+ const sourceDir = viteConfig.build.outDir;
96
+ console.log("\u{1F3A9} Generating Deployment Assets...");
97
+ try {
98
+ const stat = await fs.stat(outDir);
99
+ if (stat?.isDirectory()) {
100
+ await fs.rmdir(outDir);
101
+ }
102
+ } catch {
103
+ }
104
+ await fs.mkdirp(outDir);
105
+ const { load_manifest } = await import("../router/manifest.js");
106
+ const manifest = await load_manifest({
107
+ config: ctx.config,
108
+ includeArtifacts: true
109
+ });
110
+ if (!ctx.adapter?.disableServer) {
111
+ await fs.recursiveCopy(path.join(sourceDir, "ssr"), path.join(outDir, "ssr"));
112
+ await fs.rmdir(path.join(sourceDir, "ssr"));
113
+ }
114
+ await fs.recursiveCopy(sourceDir, path.join(outDir, "assets"));
115
+ await ctx.adapter({
116
+ config: ctx.config,
117
+ conventions: routerConventions,
118
+ sourceDir,
119
+ publicBase: viteConfig.base,
120
+ outDir,
121
+ manifest,
122
+ adapterPath: "./ssr/entries/adapter"
123
+ });
124
+ if (fs.existsSync(path.join(ctx.config.root_dir, "public"))) {
125
+ await fs.recursiveCopy(path.join(ctx.config.root_dir, "public"), outDir);
126
+ }
127
+ }
128
+ }
129
+ };
130
+ }
131
+ export {
132
+ compiler,
133
+ houdini
134
+ };
@@ -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>>;