houdini 2.0.0-next.9 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/build/adapter/index.d.ts +2 -2
  2. package/build/adapter/index.js +6 -0
  3. package/build/cmd/generate.d.ts +5 -0
  4. package/build/cmd/generate.js +77 -0
  5. package/build/cmd/index.js +32 -0
  6. package/build/cmd/init.js +565 -0
  7. package/build/cmd/pullSchema.js +26 -0
  8. package/build/lib/ast.js +71 -0
  9. package/build/lib/codegen.d.ts +57 -0
  10. package/build/lib/codegen.js +627 -0
  11. package/build/lib/config.d.ts +240 -177
  12. package/build/lib/config.js +143 -0
  13. package/build/lib/constants.js +14 -0
  14. package/build/lib/database.d.ts +7 -0
  15. package/build/lib/database.js +624 -0
  16. package/build/lib/db.d.ts +13 -0
  17. package/build/lib/db.js +135 -0
  18. package/build/lib/deepMerge.js +23 -0
  19. package/build/lib/error.d.ts +16 -0
  20. package/build/lib/error.js +115 -0
  21. package/build/lib/fs.d.ts +9 -11
  22. package/build/lib/fs.js +245 -0
  23. package/build/lib/graphql.d.ts +5 -32
  24. package/build/lib/graphql.js +36 -0
  25. package/build/lib/imports.d.ts +29 -14
  26. package/build/lib/imports.js +66 -0
  27. package/build/lib/index.d.ts +17 -24
  28. package/build/lib/index.js +21 -0
  29. package/build/lib/logger.d.ts +12 -0
  30. package/build/lib/logger.js +45 -0
  31. package/build/lib/parse.d.ts +2 -3
  32. package/build/lib/parse.js +33 -0
  33. package/build/lib/path.d.ts +0 -1
  34. package/build/lib/path.js +44 -0
  35. package/build/lib/pipeline.d.ts +1 -1
  36. package/build/lib/pipeline.js +8 -0
  37. package/build/lib/plugins.d.ts +4 -0
  38. package/build/lib/plugins.js +88 -0
  39. package/build/lib/project.d.ts +19 -0
  40. package/build/lib/project.js +296 -0
  41. package/build/lib/schema.d.ts +1 -0
  42. package/build/lib/schema.js +61 -0
  43. package/build/lib/sleep.d.ts +1 -0
  44. package/build/lib/sleep.js +8 -0
  45. package/build/lib/types.d.ts +92 -303
  46. package/build/lib/types.js +37 -0
  47. package/build/lib/walk.d.ts +11 -6
  48. package/build/lib/walk.js +138 -0
  49. package/build/node/index.d.ts +44 -0
  50. package/build/node/index.js +402 -0
  51. package/build/oauth/index.d.ts +41 -0
  52. package/build/oauth/index.js +108 -0
  53. package/build/package.json +212 -0
  54. package/build/router/auth-token.d.ts +29 -0
  55. package/build/router/auth-token.js +168 -0
  56. package/build/{lib/router → router}/conventions.d.ts +10 -1
  57. package/build/router/conventions.js +165 -0
  58. package/build/{runtime-esm/router → router}/cookies.js +21 -21
  59. package/build/{runtime-esm/router → router}/jwt.js +8 -6
  60. package/build/{lib/router → router}/manifest.d.ts +2 -2
  61. package/build/router/manifest.js +279 -0
  62. package/build/{runtime/router → router}/match.d.ts +10 -10
  63. package/build/router/match.js +219 -0
  64. package/build/router/server.d.ts +57 -0
  65. package/build/router/server.js +500 -0
  66. package/build/{runtime/router → router}/session.d.ts +8 -3
  67. package/build/router/session.js +338 -0
  68. package/build/router/types.d.ts +44 -0
  69. package/build/runtime/cache/benchmarks/cache.bench.d.ts +1 -0
  70. package/build/runtime/cache/benchmarks/cache.bench.js +943 -0
  71. package/build/runtime/cache/gc.d.ts +2 -1
  72. package/build/{runtime-esm → runtime}/cache/gc.js +4 -1
  73. package/build/runtime/cache/index.d.ts +173 -3
  74. package/build/{runtime-esm/cache/cache.js → runtime/cache/index.js} +197 -70
  75. package/build/runtime/cache/lists.d.ts +9 -4
  76. package/build/{runtime-esm → runtime}/cache/lists.js +116 -27
  77. package/build/runtime/cache/staleManager.d.ts +2 -1
  78. package/build/{runtime-esm → runtime}/cache/staleManager.js +6 -2
  79. package/build/runtime/cache/storage.d.ts +5 -2
  80. package/build/{runtime-esm → runtime}/cache/storage.js +126 -54
  81. package/build/{runtime-esm → runtime}/cache/stuff.js +4 -3
  82. package/build/runtime/cache/subscription.d.ts +23 -9
  83. package/build/{runtime-esm → runtime}/cache/subscription.js +103 -65
  84. package/build/runtime/{client/index.d.ts → client.d.ts} +15 -22
  85. package/build/runtime/client.js +86 -0
  86. package/build/runtime/coerce.d.ts +4 -0
  87. package/build/runtime/coerce.js +31 -0
  88. package/build/runtime/config.d.ts +20 -0
  89. package/build/runtime/config.js +88 -0
  90. package/build/runtime/{lib/constants.d.ts → constants.d.ts} +1 -1
  91. package/build/runtime/{client/documentStore.d.ts → documentStore.d.ts} +18 -11
  92. package/build/{runtime-esm/client → runtime}/documentStore.js +53 -56
  93. package/build/runtime/endpoint.d.ts +14 -0
  94. package/build/runtime/endpoint.js +29 -0
  95. package/build/{runtime-cjs/lib → runtime}/flatten.d.ts +1 -1
  96. package/build/runtime/formData.d.ts +24 -0
  97. package/build/runtime/formData.js +93 -0
  98. package/build/runtime/index.d.ts +16 -8
  99. package/build/runtime/index.js +54 -0
  100. package/build/{runtime-cjs/lib → runtime}/key.d.ts +1 -1
  101. package/build/{runtime-esm/lib → runtime}/key.js +4 -4
  102. package/build/{runtime-esm/lib → runtime}/log.js +3 -3
  103. package/build/runtime/multipart.d.ts +8 -0
  104. package/build/runtime/multipart.js +49 -0
  105. package/build/{runtime-cjs/lib → runtime}/pageInfo.d.ts +3 -3
  106. package/build/{runtime-esm/lib → runtime}/pageInfo.js +2 -2
  107. package/build/{runtime-cjs/lib → runtime}/pagination.d.ts +12 -8
  108. package/build/{runtime-esm/lib → runtime}/pagination.js +157 -21
  109. package/build/{runtime-cjs/lib → runtime}/scalars.d.ts +6 -6
  110. package/build/{runtime-esm/lib → runtime}/scalars.js +10 -43
  111. package/build/{runtime-cjs/lib → runtime}/selection.d.ts +1 -1
  112. package/build/{runtime-esm/lib → runtime}/selection.js +17 -2
  113. package/build/runtime/{lib/store.d.ts → store.d.ts} +1 -1
  114. package/build/{runtime-esm/lib → runtime}/store.js +2 -3
  115. package/build/runtime/{lib/types.d.ts → types.d.ts} +107 -102
  116. package/build/{runtime-esm/lib → runtime}/types.js +37 -15
  117. package/build/test/index.d.ts +6 -25
  118. package/build/test/index.js +329 -0
  119. package/build/test/package.json +1 -0
  120. package/build/vite/hmr.d.ts +26 -3
  121. package/build/vite/hmr.js +433 -0
  122. package/build/vite/houdini.d.ts +4 -10
  123. package/build/vite/houdini.js +144 -0
  124. package/build/vite/index.d.ts +13 -7
  125. package/build/vite/index.js +106 -0
  126. package/build/vite/package.json +1 -0
  127. package/build/vite/schema.d.ts +5 -3
  128. package/build/vite/schema.js +193 -0
  129. package/package.json +148 -57
  130. package/build/adapter-cjs/index.js +0 -33
  131. package/build/adapter-cjs/package.json +0 -1
  132. package/build/adapter-esm/index.js +0 -9
  133. package/build/cmd-cjs/index.js +0 -89299
  134. package/build/cmd-cjs/package.json +0 -1
  135. package/build/cmd-esm/index.js +0 -89303
  136. package/build/codegen/generators/artifacts/fieldKey.d.ts +0 -3
  137. package/build/codegen/generators/artifacts/index.d.ts +0 -17
  138. package/build/codegen/generators/artifacts/indexFile.d.ts +0 -2
  139. package/build/codegen/generators/artifacts/inputs.d.ts +0 -4
  140. package/build/codegen/generators/artifacts/operations.d.ts +0 -11
  141. package/build/codegen/generators/artifacts/selection.d.ts +0 -20
  142. package/build/codegen/generators/artifacts/utils.d.ts +0 -8
  143. package/build/codegen/generators/comments/jsdoc.d.ts +0 -2
  144. package/build/codegen/generators/definitions/enums.d.ts +0 -2
  145. package/build/codegen/generators/definitions/index.d.ts +0 -2
  146. package/build/codegen/generators/index.d.ts +0 -6
  147. package/build/codegen/generators/indexFile/index.d.ts +0 -2
  148. package/build/codegen/generators/persistedQueries/index.d.ts +0 -2
  149. package/build/codegen/generators/runtime/graphqlFunction.d.ts +0 -2
  150. package/build/codegen/generators/runtime/index.d.ts +0 -3
  151. package/build/codegen/generators/runtime/injectPlugins.d.ts +0 -7
  152. package/build/codegen/generators/runtime/pluginIndex.d.ts +0 -5
  153. package/build/codegen/generators/runtime/pluginRuntime.d.ts +0 -15
  154. package/build/codegen/generators/runtime/runtimeConfig.d.ts +0 -7
  155. package/build/codegen/generators/typescript/addReferencedInputTypes.d.ts +0 -4
  156. package/build/codegen/generators/typescript/documentTypes.d.ts +0 -2
  157. package/build/codegen/generators/typescript/imperativeTypeDef.d.ts +0 -2
  158. package/build/codegen/generators/typescript/index.d.ts +0 -2
  159. package/build/codegen/generators/typescript/inlineType.d.ts +0 -29
  160. package/build/codegen/generators/typescript/loadingState.d.ts +0 -8
  161. package/build/codegen/index.d.ts +0 -8
  162. package/build/codegen/transforms/addFields.d.ts +0 -2
  163. package/build/codegen/transforms/collectDefinitions.d.ts +0 -9
  164. package/build/codegen/transforms/componentFields.d.ts +0 -8
  165. package/build/codegen/transforms/fragmentVariables.d.ts +0 -17
  166. package/build/codegen/transforms/index.d.ts +0 -9
  167. package/build/codegen/transforms/list.d.ts +0 -9
  168. package/build/codegen/transforms/paginate.d.ts +0 -4
  169. package/build/codegen/transforms/runtimeScalars.d.ts +0 -2
  170. package/build/codegen/transforms/schema.d.ts +0 -2
  171. package/build/codegen/transforms/typename.d.ts +0 -2
  172. package/build/codegen/utils/commonjs.d.ts +0 -5
  173. package/build/codegen/utils/flattenSelections.d.ts +0 -11
  174. package/build/codegen/utils/index.d.ts +0 -4
  175. package/build/codegen/utils/moduleExport.d.ts +0 -4
  176. package/build/codegen/utils/murmur.d.ts +0 -9
  177. package/build/codegen/utils/objectIdentificationSelection.d.ts +0 -3
  178. package/build/codegen/utils/stripLoc.d.ts +0 -3
  179. package/build/codegen/validators/componentFields.d.ts +0 -2
  180. package/build/codegen/validators/index.d.ts +0 -5
  181. package/build/codegen/validators/noIDAlias.d.ts +0 -2
  182. package/build/codegen/validators/plugins.d.ts +0 -3
  183. package/build/codegen/validators/typeCheck.d.ts +0 -5
  184. package/build/codegen/validators/uniqueNames.d.ts +0 -2
  185. package/build/codegen-cjs/index.js +0 -74656
  186. package/build/codegen-cjs/package.json +0 -1
  187. package/build/codegen-esm/index.js +0 -74655
  188. package/build/lib/cleanupFiles.d.ts +0 -1
  189. package/build/lib/detectTools.d.ts +0 -16
  190. package/build/lib/introspection.d.ts +0 -3
  191. package/build/lib/plugin.d.ts +0 -2
  192. package/build/lib/router/index.d.ts +0 -9
  193. package/build/lib/router/server.d.ts +0 -7
  194. package/build/lib/router/types.d.ts +0 -23
  195. package/build/lib/typescript.d.ts +0 -20
  196. package/build/lib/watchAndRun.d.ts +0 -61
  197. package/build/lib-cjs/index.js +0 -79739
  198. package/build/lib-cjs/package.json +0 -1
  199. package/build/lib-esm/index.js +0 -79648
  200. package/build/runtime/cache/cache.d.ts +0 -169
  201. package/build/runtime/client/plugins/cache.d.ts +0 -9
  202. package/build/runtime/client/plugins/fetch.d.ts +0 -38
  203. package/build/runtime/client/plugins/fetchParams.d.ts +0 -9
  204. package/build/runtime/client/plugins/fragment.d.ts +0 -2
  205. package/build/runtime/client/plugins/index.d.ts +0 -9
  206. package/build/runtime/client/plugins/injectedPlugins.d.ts +0 -4
  207. package/build/runtime/client/plugins/mutation.d.ts +0 -2
  208. package/build/runtime/client/plugins/optimisticKeys.d.ts +0 -7
  209. package/build/runtime/client/plugins/query.d.ts +0 -2
  210. package/build/runtime/client/plugins/subscription.d.ts +0 -20
  211. package/build/runtime/client/plugins/test.d.ts +0 -15
  212. package/build/runtime/client/plugins/throwOnError.d.ts +0 -8
  213. package/build/runtime/client/utils/documentPlugins.d.ts +0 -3
  214. package/build/runtime/client/utils/index.d.ts +0 -1
  215. package/build/runtime/generated.d.ts +0 -5
  216. package/build/runtime/imports/config.d.ts +0 -3
  217. package/build/runtime/imports/pluginConfig.d.ts +0 -3
  218. package/build/runtime/lib/config.d.ts +0 -216
  219. package/build/runtime/lib/deepEquals.d.ts +0 -1
  220. package/build/runtime/lib/flatten.d.ts +0 -2
  221. package/build/runtime/lib/index.d.ts +0 -10
  222. package/build/runtime/lib/key.d.ts +0 -6
  223. package/build/runtime/lib/log.d.ts +0 -6
  224. package/build/runtime/lib/lru.d.ts +0 -52
  225. package/build/runtime/lib/pageInfo.d.ts +0 -7
  226. package/build/runtime/lib/pagination.d.ts +0 -27
  227. package/build/runtime/lib/scalars.d.ts +0 -14
  228. package/build/runtime/lib/selection.d.ts +0 -2
  229. package/build/runtime/public/cache.d.ts +0 -42
  230. package/build/runtime/public/index.d.ts +0 -1
  231. package/build/runtime/public/list.d.ts +0 -18
  232. package/build/runtime/public/record.d.ts +0 -40
  233. package/build/runtime/public/tests/test.d.ts +0 -156
  234. package/build/runtime/public/types.d.ts +0 -62
  235. package/build/runtime/router/cookies.d.ts +0 -41
  236. package/build/runtime/router/jwt.d.ts +0 -117
  237. package/build/runtime/router/server.d.ts +0 -24
  238. package/build/runtime/router/types.d.ts +0 -26
  239. package/build/runtime/server/index.d.ts +0 -17
  240. package/build/runtime-cjs/cache/cache.d.ts +0 -169
  241. package/build/runtime-cjs/cache/cache.js +0 -1077
  242. package/build/runtime-cjs/cache/constants.d.ts +0 -1
  243. package/build/runtime-cjs/cache/constants.js +0 -28
  244. package/build/runtime-cjs/cache/gc.d.ts +0 -10
  245. package/build/runtime-cjs/cache/gc.js +0 -74
  246. package/build/runtime-cjs/cache/index.d.ts +0 -3
  247. package/build/runtime-cjs/cache/index.js +0 -25
  248. package/build/runtime-cjs/cache/lists.d.ts +0 -89
  249. package/build/runtime-cjs/cache/lists.js +0 -467
  250. package/build/runtime-cjs/cache/staleManager.d.ts +0 -31
  251. package/build/runtime-cjs/cache/staleManager.js +0 -123
  252. package/build/runtime-cjs/cache/storage.d.ts +0 -110
  253. package/build/runtime-cjs/cache/storage.js +0 -451
  254. package/build/runtime-cjs/cache/stuff.d.ts +0 -2
  255. package/build/runtime-cjs/cache/stuff.js +0 -56
  256. package/build/runtime-cjs/cache/subscription.d.ts +0 -52
  257. package/build/runtime-cjs/cache/subscription.js +0 -349
  258. package/build/runtime-cjs/client/documentStore.d.ts +0 -107
  259. package/build/runtime-cjs/client/documentStore.js +0 -487
  260. package/build/runtime-cjs/client/index.d.ts +0 -50
  261. package/build/runtime-cjs/client/index.js +0 -162
  262. package/build/runtime-cjs/client/plugins/cache.d.ts +0 -9
  263. package/build/runtime-cjs/client/plugins/cache.js +0 -138
  264. package/build/runtime-cjs/client/plugins/fetch.d.ts +0 -38
  265. package/build/runtime-cjs/client/plugins/fetch.js +0 -210
  266. package/build/runtime-cjs/client/plugins/fetchParams.d.ts +0 -9
  267. package/build/runtime-cjs/client/plugins/fetchParams.js +0 -47
  268. package/build/runtime-cjs/client/plugins/fragment.d.ts +0 -2
  269. package/build/runtime-cjs/client/plugins/fragment.js +0 -77
  270. package/build/runtime-cjs/client/plugins/index.d.ts +0 -9
  271. package/build/runtime-cjs/client/plugins/index.js +0 -45
  272. package/build/runtime-cjs/client/plugins/injectedPlugins.d.ts +0 -4
  273. package/build/runtime-cjs/client/plugins/injectedPlugins.js +0 -25
  274. package/build/runtime-cjs/client/plugins/mutation.d.ts +0 -2
  275. package/build/runtime-cjs/client/plugins/mutation.js +0 -89
  276. package/build/runtime-cjs/client/plugins/optimisticKeys.d.ts +0 -7
  277. package/build/runtime-cjs/client/plugins/optimisticKeys.js +0 -324
  278. package/build/runtime-cjs/client/plugins/query.d.ts +0 -2
  279. package/build/runtime-cjs/client/plugins/query.js +0 -93
  280. package/build/runtime-cjs/client/plugins/subscription.d.ts +0 -20
  281. package/build/runtime-cjs/client/plugins/subscription.js +0 -114
  282. package/build/runtime-cjs/client/plugins/test.d.ts +0 -15
  283. package/build/runtime-cjs/client/plugins/test.js +0 -118
  284. package/build/runtime-cjs/client/plugins/throwOnError.d.ts +0 -8
  285. package/build/runtime-cjs/client/plugins/throwOnError.js +0 -47
  286. package/build/runtime-cjs/client/utils/documentPlugins.d.ts +0 -3
  287. package/build/runtime-cjs/client/utils/documentPlugins.js +0 -57
  288. package/build/runtime-cjs/client/utils/index.d.ts +0 -1
  289. package/build/runtime-cjs/client/utils/index.js +0 -22
  290. package/build/runtime-cjs/generated.d.ts +0 -5
  291. package/build/runtime-cjs/generated.js +0 -16
  292. package/build/runtime-cjs/imports/config.d.ts +0 -3
  293. package/build/runtime-cjs/imports/config.js +0 -24
  294. package/build/runtime-cjs/imports/pluginConfig.d.ts +0 -3
  295. package/build/runtime-cjs/imports/pluginConfig.js +0 -25
  296. package/build/runtime-cjs/index.d.ts +0 -8
  297. package/build/runtime-cjs/index.js +0 -61
  298. package/build/runtime-cjs/lib/config.d.ts +0 -216
  299. package/build/runtime-cjs/lib/config.js +0 -110
  300. package/build/runtime-cjs/lib/constants.d.ts +0 -6
  301. package/build/runtime-cjs/lib/constants.js +0 -38
  302. package/build/runtime-cjs/lib/deepEquals.js +0 -52
  303. package/build/runtime-cjs/lib/flatten.js +0 -41
  304. package/build/runtime-cjs/lib/index.d.ts +0 -10
  305. package/build/runtime-cjs/lib/index.js +0 -40
  306. package/build/runtime-cjs/lib/key.js +0 -41
  307. package/build/runtime-cjs/lib/log.js +0 -72
  308. package/build/runtime-cjs/lib/lru.js +0 -73
  309. package/build/runtime-cjs/lib/pageInfo.js +0 -79
  310. package/build/runtime-cjs/lib/pagination.js +0 -240
  311. package/build/runtime-cjs/lib/scalars.js +0 -147
  312. package/build/runtime-cjs/lib/selection.js +0 -66
  313. package/build/runtime-cjs/lib/store.d.ts +0 -19
  314. package/build/runtime-cjs/lib/store.js +0 -81
  315. package/build/runtime-cjs/lib/types.d.ts +0 -417
  316. package/build/runtime-cjs/lib/types.js +0 -104
  317. package/build/runtime-cjs/package.json +0 -1
  318. package/build/runtime-cjs/public/cache.d.ts +0 -42
  319. package/build/runtime-cjs/public/cache.js +0 -98
  320. package/build/runtime-cjs/public/index.d.ts +0 -1
  321. package/build/runtime-cjs/public/index.js +0 -28
  322. package/build/runtime-cjs/public/list.d.ts +0 -18
  323. package/build/runtime-cjs/public/list.js +0 -151
  324. package/build/runtime-cjs/public/record.d.ts +0 -40
  325. package/build/runtime-cjs/public/record.js +0 -94
  326. package/build/runtime-cjs/public/tests/test.d.ts +0 -156
  327. package/build/runtime-cjs/public/tests/test.js +0 -60
  328. package/build/runtime-cjs/public/types.d.ts +0 -62
  329. package/build/runtime-cjs/public/types.js +0 -16
  330. package/build/runtime-cjs/router/cookies.js +0 -168
  331. package/build/runtime-cjs/router/jwt.js +0 -168
  332. package/build/runtime-cjs/router/match.d.ts +0 -39
  333. package/build/runtime-cjs/router/match.js +0 -158
  334. package/build/runtime-cjs/router/server.d.ts +0 -24
  335. package/build/runtime-cjs/router/server.js +0 -117
  336. package/build/runtime-cjs/router/session.d.ts +0 -22
  337. package/build/runtime-cjs/router/session.js +0 -100
  338. package/build/runtime-cjs/router/types.d.ts +0 -26
  339. package/build/runtime-cjs/router/types.js +0 -16
  340. package/build/runtime-cjs/server/index.d.ts +0 -17
  341. package/build/runtime-cjs/server/index.js +0 -62
  342. package/build/runtime-esm/cache/cache.d.ts +0 -169
  343. package/build/runtime-esm/cache/constants.d.ts +0 -1
  344. package/build/runtime-esm/cache/gc.d.ts +0 -10
  345. package/build/runtime-esm/cache/index.d.ts +0 -3
  346. package/build/runtime-esm/cache/index.js +0 -5
  347. package/build/runtime-esm/cache/lists.d.ts +0 -89
  348. package/build/runtime-esm/cache/staleManager.d.ts +0 -31
  349. package/build/runtime-esm/cache/storage.d.ts +0 -110
  350. package/build/runtime-esm/cache/stuff.d.ts +0 -2
  351. package/build/runtime-esm/cache/subscription.d.ts +0 -52
  352. package/build/runtime-esm/client/documentStore.d.ts +0 -107
  353. package/build/runtime-esm/client/index.d.ts +0 -50
  354. package/build/runtime-esm/client/index.js +0 -130
  355. package/build/runtime-esm/client/plugins/cache.d.ts +0 -9
  356. package/build/runtime-esm/client/plugins/cache.js +0 -104
  357. package/build/runtime-esm/client/plugins/fetch.d.ts +0 -38
  358. package/build/runtime-esm/client/plugins/fetch.js +0 -184
  359. package/build/runtime-esm/client/plugins/fetchParams.d.ts +0 -9
  360. package/build/runtime-esm/client/plugins/fetchParams.js +0 -23
  361. package/build/runtime-esm/client/plugins/fragment.d.ts +0 -2
  362. package/build/runtime-esm/client/plugins/fragment.js +0 -53
  363. package/build/runtime-esm/client/plugins/index.d.ts +0 -9
  364. package/build/runtime-esm/client/plugins/index.js +0 -12
  365. package/build/runtime-esm/client/plugins/injectedPlugins.d.ts +0 -4
  366. package/build/runtime-esm/client/plugins/injectedPlugins.js +0 -5
  367. package/build/runtime-esm/client/plugins/mutation.d.ts +0 -2
  368. package/build/runtime-esm/client/plugins/mutation.js +0 -65
  369. package/build/runtime-esm/client/plugins/optimisticKeys.d.ts +0 -7
  370. package/build/runtime-esm/client/plugins/optimisticKeys.js +0 -290
  371. package/build/runtime-esm/client/plugins/query.d.ts +0 -2
  372. package/build/runtime-esm/client/plugins/query.js +0 -69
  373. package/build/runtime-esm/client/plugins/subscription.d.ts +0 -20
  374. package/build/runtime-esm/client/plugins/subscription.js +0 -90
  375. package/build/runtime-esm/client/plugins/test.d.ts +0 -15
  376. package/build/runtime-esm/client/plugins/test.js +0 -93
  377. package/build/runtime-esm/client/plugins/throwOnError.d.ts +0 -8
  378. package/build/runtime-esm/client/plugins/throwOnError.js +0 -23
  379. package/build/runtime-esm/client/utils/documentPlugins.d.ts +0 -3
  380. package/build/runtime-esm/client/utils/documentPlugins.js +0 -33
  381. package/build/runtime-esm/client/utils/index.d.ts +0 -1
  382. package/build/runtime-esm/client/utils/index.js +0 -1
  383. package/build/runtime-esm/generated.d.ts +0 -5
  384. package/build/runtime-esm/generated.js +0 -0
  385. package/build/runtime-esm/imports/config.d.ts +0 -3
  386. package/build/runtime-esm/imports/config.js +0 -4
  387. package/build/runtime-esm/imports/pluginConfig.d.ts +0 -3
  388. package/build/runtime-esm/imports/pluginConfig.js +0 -5
  389. package/build/runtime-esm/index.d.ts +0 -8
  390. package/build/runtime-esm/index.js +0 -22
  391. package/build/runtime-esm/lib/config.d.ts +0 -216
  392. package/build/runtime-esm/lib/config.js +0 -69
  393. package/build/runtime-esm/lib/constants.d.ts +0 -6
  394. package/build/runtime-esm/lib/deepEquals.d.ts +0 -1
  395. package/build/runtime-esm/lib/flatten.d.ts +0 -2
  396. package/build/runtime-esm/lib/index.d.ts +0 -10
  397. package/build/runtime-esm/lib/index.js +0 -10
  398. package/build/runtime-esm/lib/key.d.ts +0 -6
  399. package/build/runtime-esm/lib/log.d.ts +0 -6
  400. package/build/runtime-esm/lib/lru.d.ts +0 -52
  401. package/build/runtime-esm/lib/pageInfo.d.ts +0 -7
  402. package/build/runtime-esm/lib/pagination.d.ts +0 -27
  403. package/build/runtime-esm/lib/scalars.d.ts +0 -14
  404. package/build/runtime-esm/lib/selection.d.ts +0 -2
  405. package/build/runtime-esm/lib/store.d.ts +0 -19
  406. package/build/runtime-esm/lib/types.d.ts +0 -417
  407. package/build/runtime-esm/public/cache.d.ts +0 -42
  408. package/build/runtime-esm/public/cache.js +0 -74
  409. package/build/runtime-esm/public/index.d.ts +0 -1
  410. package/build/runtime-esm/public/index.js +0 -4
  411. package/build/runtime-esm/public/list.d.ts +0 -18
  412. package/build/runtime-esm/public/list.js +0 -127
  413. package/build/runtime-esm/public/record.d.ts +0 -40
  414. package/build/runtime-esm/public/record.js +0 -70
  415. package/build/runtime-esm/public/tests/test.d.ts +0 -156
  416. package/build/runtime-esm/public/tests/test.js +0 -36
  417. package/build/runtime-esm/public/types.d.ts +0 -62
  418. package/build/runtime-esm/router/cookies.d.ts +0 -41
  419. package/build/runtime-esm/router/jwt.d.ts +0 -117
  420. package/build/runtime-esm/router/match.d.ts +0 -39
  421. package/build/runtime-esm/router/match.js +0 -131
  422. package/build/runtime-esm/router/server.d.ts +0 -24
  423. package/build/runtime-esm/router/server.js +0 -92
  424. package/build/runtime-esm/router/session.d.ts +0 -22
  425. package/build/runtime-esm/router/session.js +0 -74
  426. package/build/runtime-esm/router/types.d.ts +0 -26
  427. package/build/runtime-esm/router/types.js +0 -0
  428. package/build/runtime-esm/server/index.d.ts +0 -17
  429. package/build/runtime-esm/server/index.js +0 -38
  430. package/build/test-cjs/index.js +0 -75249
  431. package/build/test-cjs/package.json +0 -1
  432. package/build/test-esm/index.js +0 -75244
  433. package/build/vite/imports.d.ts +0 -40
  434. package/build/vite-cjs/index.js +0 -86272
  435. package/build/vite-cjs/package.json +0 -1
  436. package/build/vite-esm/index.js +0 -86264
  437. /package/build/{adapter-esm → adapter}/package.json +0 -0
  438. /package/build/{cmd-esm → cmd}/package.json +0 -0
  439. /package/build/{vite → lib}/ast.d.ts +0 -0
  440. /package/build/{codegen-esm → lib}/package.json +0 -0
  441. /package/build/{lib-esm → node}/package.json +0 -0
  442. /package/build/{runtime-esm → oauth}/package.json +0 -0
  443. /package/build/{runtime-cjs/router → router}/cookies.d.ts +0 -0
  444. /package/build/{runtime-cjs/router → router}/jwt.d.ts +0 -0
  445. /package/build/{test-esm → router}/package.json +0 -0
  446. /package/build/{runtime-esm/public → router}/types.js +0 -0
  447. /package/build/{runtime-esm → runtime}/cache/constants.js +0 -0
  448. /package/build/{runtime-esm/lib → runtime}/constants.js +0 -0
  449. /package/build/{runtime-cjs/lib → runtime}/deepEquals.d.ts +0 -0
  450. /package/build/{runtime-esm/lib → runtime}/deepEquals.js +0 -0
  451. /package/build/{runtime-esm/lib → runtime}/flatten.js +0 -0
  452. /package/build/{runtime-cjs/lib → runtime}/log.d.ts +0 -0
  453. /package/build/{runtime-cjs/lib → runtime}/lru.d.ts +0 -0
  454. /package/build/{runtime-esm/lib → runtime}/lru.js +0 -0
  455. /package/build/{vite-esm → runtime}/package.json +0 -0
@@ -1,190 +1,253 @@
1
1
  import * as graphql from 'graphql';
2
- import type { CachePolicies, ConfigFile, PaginateModes } from '../runtime/lib';
3
- import { type Adapter } from './router';
4
- import type { LogLevels, PluginConfig, PluginHooks, ValueMap } from './types';
5
- export type PluginMeta = PluginHooks & {
6
- name: string;
7
- filepath: string;
2
+ import type { GraphQLSchema } from 'graphql';
3
+ import type { OAuthProvider, OAuthUser, OAuthTokens } from '../oauth/index.js';
4
+ import type { PluginMeta } from './project.js';
5
+ import type { CachePolicies, PaginateModes } from './types.js';
6
+ declare namespace App {
7
+ type Session = {};
8
+ }
9
+ export type ConfigFile = {
10
+ /**
11
+ * A glob pointing to all files that houdini should consider. Note, this must include .js files
12
+ * for inline queries to work
13
+ * @default `src/** /*.{svelte,graphql,gql,ts,js}`
14
+ */
15
+ include?: string | string[];
16
+ /**
17
+ * A pattern used to remove matches from files that satisfy the include value
18
+ */
19
+ exclude?: string | string[];
20
+ /**
21
+ * A static representation of your schema
22
+ * @example path: `schema.graphql`
23
+ * @example glob: `src/** /*.graphql`
24
+ *
25
+ * FYI: `schemaPath` or `schema` should be defined
26
+ */
27
+ schemaPath?: string;
28
+ /**
29
+ * An object describing custom scalars for your project. For more information: https://www.houdinigraphql.com/api/config#custom-scalars
30
+ */
31
+ scalars?: ScalarMap;
32
+ /**
33
+ * A path that the generator will use to write schema.graphql and documents.gql files containing all of the internal fragment and directive definitions used in the project.
34
+ */
35
+ definitionsPath?: string;
36
+ /**
37
+ * One of "esm" or "commonjs". Tells the artifact generator what kind of modules to create. (default: `esm`)
38
+ */
39
+ module?: 'esm' | 'commonjs';
40
+ /**
41
+ * The number of queries that must occur before a value is removed from the cache. For more information: https://www.houdinigraphql.com/guides/caching-data
42
+ */
43
+ cacheBufferSize?: number;
44
+ /**
45
+ * The default cache policy to use for queries. For more information: https://www.houdinigraphql.com/guides/caching-data
46
+ */
47
+ defaultCachePolicy?: CachePolicies;
48
+ /**
49
+ * Specifies whether or not the cache should always use partial data. For more information: https://www.houdinigraphql.com/guides/caching-data#partial-data
50
+ */
51
+ defaultPartial?: boolean;
52
+ /**
53
+ * Specifies after how long a data goes stale in miliseconds. (default: `undefined`)
54
+ */
55
+ defaultLifetime?: number;
56
+ /**
57
+ * Specifies whether mutations should append or prepend list. For more information: https://www.houdinigraphql.com/api/graphql (default: `append`)
58
+ */
59
+ defaultListPosition?: 'append' | 'prepend';
60
+ /**
61
+ * Specifies whether mutation should apply a specific target list. When you set `all`, it's like adding the directive `@allLists` to all _insert fragment (default: `null`)
62
+ */
63
+ defaultListTarget?: 'all' | null;
64
+ /**
65
+ * Specifies whether the default paginate mode is Infinite or SinglePage. (default: `Infinite`)
66
+ */
67
+ defaultPaginateMode?: PaginateModes;
68
+ /**
69
+ * Prevents the runtime from deduplicating pagination requests
70
+ */
71
+ supressPaginationDeduplication?: boolean;
72
+ /**
73
+ * A list of fields to use when computing a record’s id. The default value is ['id']. For more information: https://www.houdinigraphql.com/guides/caching-data#custom-ids
74
+ */
75
+ defaultKeys?: string[];
76
+ /**
77
+ * An object that customizes the resolution behavior for a specific type. For more information: https://www.houdinigraphql.com/guides/caching-data#custom-ids
78
+ */
79
+ types?: TypeConfig;
80
+ /**
81
+ * Controls how much houdini logs during codegen. One of "quiet", "summary",
82
+ * "short-summary", or "full". Defaults to "summary".
83
+ */
84
+ logLevel?: import('./types.js').LogLevel;
85
+ /**
86
+ * A flag to specify the default fragment masking behavior.
87
+ * @default `enable`
88
+ */
89
+ defaultFragmentMasking?: 'enable' | 'disable';
90
+ /**
91
+ * The URL the CLIENT sends GraphQL requests to. Set this when the API is REMOTE; the client
92
+ * queries it directly and `@session` mutations are proxied through Houdini to it. It's public
93
+ * (it ships in the client bundle), so switch it per environment with `import.meta.env`, e.g.
94
+ * `import.meta.env.VITE_API_URL ?? 'http://localhost:4000/graphql'`. With a local
95
+ * `src/server/+schema` you can leave this unset — it's inferred from the server `endpoint`.
96
+ */
97
+ url?: string;
98
+ /**
99
+ * Configure the dev environment to watch a remote schema for changes. When omitted, `url` is
100
+ * used as the introspection endpoint. Set to `false` (or `null`) to disable schema polling and
101
+ * introspection entirely, even when `url` is set.
102
+ */
103
+ watchSchema?: WatchSchemaConfig | false | null;
104
+ /**
105
+ * Specifies the the persisted queries path and file. (default: `<rootDir>/persisted_queries.json`)
106
+ */
107
+ persistedQueriesPath?: string;
108
+ /**
109
+ * An object describing the plugins enabled for the project
110
+ */
111
+ plugins?: HoudiniPluginConfig;
112
+ /**
113
+ * The relative path from your houdini config file pointing to your application.
114
+ * @default process.cwd()
115
+ */
116
+ projectDir?: string;
117
+ /**
118
+ * The relative path from your project directory pointing to your output directory.
119
+ * @default `$houdini`
120
+ */
121
+ runtimeDir?: string;
122
+ /**
123
+ * Transport used between the Node.js orchestrator and plugin processes.
124
+ * 'stdio' routes all communication over stdin/stdout (required for WASI plugins).
125
+ * @default 'websocket'
126
+ */
127
+ pluginTransport?: 'websocket' | 'stdio' | `env:${string}`;
128
+ /**
129
+ * Configure the router to evaluate custom scalars using runtime values
130
+ */
131
+ runtimeScalars?: Record<string, {
132
+ type: string;
133
+ resolve: (args: RuntimeScalarPayload) => any;
134
+ }>;
135
+ };
136
+ export type RuntimeScalarPayload = {
137
+ session?: App.Session | null | undefined;
8
138
  };
139
+ export type ConsumedTokenStore = {
140
+ consume(jti: string, ttlMs: number): boolean | Promise<boolean>;
141
+ };
142
+ export type ServerConfigFile = {
143
+ auth?: {
144
+ sessionKeys?: string[];
145
+ url?: string;
146
+ redirect?: {
147
+ url: string;
148
+ };
149
+ providers?: Record<string, OAuthProvider>;
150
+ onSignIn?: (args: {
151
+ provider: string;
152
+ user: OAuthUser;
153
+ tokens: OAuthTokens;
154
+ }) => App.Session | Promise<App.Session>;
155
+ consumedTokenStore?: ConsumedTokenStore;
156
+ };
157
+ endpoint?: string;
158
+ allowedOrigins?: string[];
159
+ formMaxBodyBytes?: number;
160
+ };
161
+ type ScalarMap = {
162
+ [typeName: string]: ScalarSpec;
163
+ };
164
+ export type TypeConfig = {
165
+ [typeName: string]: {
166
+ keys?: string[];
167
+ resolve?: {
168
+ queryField: string;
169
+ arguments?: (data: any) => {
170
+ [key: string]: any;
171
+ };
172
+ };
173
+ };
174
+ };
175
+ export type WatchSchemaConfig = {
176
+ /**
177
+ * A url to use to pull the schema. For more information: https://www.houdinigraphql.com/api/cli#generate
178
+ * Defaults to the top-level `url` when omitted.
179
+ */
180
+ url?: string | ((env: Record<string, string | undefined>) => string);
181
+ /**
182
+ * sets the amount of time between each request in milliseconds (default 2 seconds).
183
+ * To limit the schema introspection to just on the start of the server, set interval to 0.
184
+ * To disable the schema introspection, set interval to null.
185
+ */
186
+ interval?: number | null;
187
+ /**
188
+ * Sets a custom timeout in milliseconds which is used to cancel fetching the schema. If the timeout is reached
189
+ * before the remote API has responded, the request is cancelled and an error is displayed.
190
+ * The default is 30 seconds (30000 milliseconds)
191
+ */
192
+ timeout?: number | null;
193
+ /**
194
+ * An object containing the environment variables you want passed onto the api when polling for a new schema.
195
+ * The keys dictate the header names. If the value is a string, the corresponding environment variable will be used
196
+ * directly. If the value is a function, the current environment will be passed to your function so you can perform any
197
+ * logic you need
198
+ */
199
+ headers?: Record<string, string | ((env: Record<string, string | undefined>) => string)> | ((env: Record<string, string | undefined>) => Record<string, string>);
200
+ /**
201
+ * When set to false, the pulled schema will not be written to disk.
202
+ * Useful when schemaPath is a glob pointing to multiple files.
203
+ * Defaults to true.
204
+ */
205
+ writePolledSchema?: boolean;
206
+ };
207
+ export type ScalarSpec = {
208
+ type: string;
209
+ inputTypes?: Array<'Int' | 'Float' | 'String' | 'Boolean' | 'ID'>;
210
+ marshal?: (val: any) => any;
211
+ unmarshal?: (val: any) => any;
212
+ module?: string;
213
+ default?: boolean;
214
+ };
215
+ export interface HoudiniPluginConfig {
216
+ }
217
+ export interface HoudiniClientPluginConfig {
218
+ }
9
219
  export declare class Config {
10
- #private;
220
+ config_file: ConfigFile;
221
+ server_config: ServerConfigFile;
11
222
  filepath: string;
12
- rootDir: string;
13
- localSchema: boolean;
14
- projectRoot: string;
15
- schema: graphql.GraphQLSchema;
16
- runtimeDir?: string;
17
- schemaPath?: string;
18
- persistedQueriesPath: string;
19
- exclude: string[];
20
- scalars?: ConfigFile['scalars'];
21
- module: 'commonjs' | 'esm';
22
- cacheBufferSize?: number;
23
- defaultCachePolicy: CachePolicies;
24
- defaultPartial: boolean;
25
- internalListPosition: 'first' | 'last';
26
- defaultListTarget: 'all' | null;
27
- defaultPaginateMode: PaginateModes;
28
- definitionsFolder?: string;
29
- newDocuments: string;
30
- defaultKeys: string[];
31
- typeConfig: ConfigFile['types'];
32
- configFile: ConfigFile;
33
- logLevel: LogLevels;
34
- defaultFragmentMasking: 'enable' | 'disable';
35
- configIsRoute: ((filepath: string) => boolean) | null;
36
- routesDir: string;
37
- schemaPollInterval: number | null;
38
- schemaPollTimeout: number;
39
- schemaPollWriteToDisk: boolean;
40
- schemaPollHeaders: ((env: any) => Record<string, string>) | Record<string, string | ((env: any) => string)>;
41
- pluginMode: boolean;
42
223
  plugins: PluginMeta[];
43
- adapter?: Adapter;
44
- componentFields: Record<string, Record<string, {
45
- fragment: string;
46
- directive: graphql.DirectiveNode;
47
- filepath: string;
48
- prop: string;
49
- parent: graphql.FragmentDefinitionNode | graphql.FragmentSpreadNode;
50
- }>>;
51
- constructor({ filepath, loadFrameworkConfig, ...configFile }: ConfigFile & {
224
+ root_dir: string;
225
+ schema: GraphQLSchema;
226
+ constructor(init: {
227
+ config_file: ConfigFile;
228
+ server_config?: ServerConfigFile;
52
229
  filepath: string;
53
- loadFrameworkConfig?: boolean;
230
+ plugins: PluginMeta[];
231
+ root_dir: string;
232
+ schema: GraphQLSchema;
54
233
  });
55
- apiURL(): Promise<string | undefined>;
56
- get include(): string[];
57
- pluginConfig<ConfigType extends {}>(name: string): ConfigType;
58
- getEnv(): Promise<Record<string, string | undefined>>;
59
- processEnvValues(env: Record<string, string | undefined>, value: string | ((env: any) => string)): string | undefined;
60
- pullHeaders(): Promise<any>;
61
- pluginRuntimeSource(plugin: PluginMeta): string | null;
62
- pluginStaticRuntimeSource(plugin: PluginMeta): string | null;
63
- sourceFiles(): Promise<string[]>;
64
- get componentScalar(): string;
65
- schemaString: string;
66
- set newSchema(value: string);
67
- get newSchema(): string;
68
- get artifactDirectory(): string;
69
- get artifactDirectoryName(): string;
70
- get sourceDir(): string;
234
+ schema_path(): string;
71
235
  get localApiDir(): string;
72
- get localSchemaPath(): string;
73
- get localAPIUrl(): string;
74
- get artifactTypeDirectory(): string;
75
- get runtimeDirectory(): string;
76
- get definitionsDirectory(): string;
77
- get enumRuntimeDefinitionsPath(): string;
78
- get enumTypesDefinitionsPath(): string;
79
- get definitionsSchemaPath(): string;
80
- get routerBuildDirectory(): string;
81
- get definitionsDocumentsPath(): string;
82
- get typeIndexPath(): string;
83
- get typeRootDir(): string;
84
- get typeRootFile(): string;
85
- get runtimeSource(): string;
86
- artifactTypePath(document: graphql.DocumentNode): string;
87
- artifactPath(document: graphql.DocumentNode): string;
88
- artifactImportPath(name: string): string;
89
- keyFieldsForType(type: string): string[];
90
- computeID(type: string, data: any): string;
91
- documentName(document: graphql.DocumentNode): string;
92
- isSelectionScalar(type: string): boolean;
93
- createDirectories(): void;
94
- get compiledAssetsDir(): string;
95
- compiledAssetPath(filepath: string): string;
96
- excludeFile(filepath: string, { root }: {
236
+ api_url(): Promise<string | undefined>;
237
+ get include(): Array<string>;
238
+ includeFile(filepath: string, { root }?: {
97
239
  root?: string;
240
+ ignore_plugins?: boolean;
98
241
  }): boolean;
99
- includeFile(filepath: string, { root, ignore_plugins, }?: {
242
+ get exclude(): Array<string>;
243
+ excludeFile(filepath: string, { root }: {
100
244
  root?: string;
101
- ignore_plugins?: boolean;
102
245
  }): boolean;
103
- pluginRuntimeDirectory(name: string): string;
104
- pluginStaticRuntimeDirectory(name: string): string;
105
- get pluginRootDirectory(): string;
106
- pluginDirectory(name: string): string;
107
- get loadDirective(): string;
108
- get maskEnableDirective(): string;
109
- get maskDisableDirective(): string;
110
- get listDirective(): string;
111
- get dedupeDirective(): string;
112
- get optimisticKeyDirective(): string;
113
- get listPrependDirective(): string;
114
- get listAppendDirective(): string;
115
- get listParentDirective(): string;
116
- get blockingDirective(): string;
117
- get blockingDisableDirective(): string;
118
- /**
119
- * @deprecated
120
- */
121
- get deprecatedlistDirectiveParentIDArg(): string;
122
- get listAllListsDirective(): string;
123
- get listOrPaginateNameArg(): string;
124
- get insertFragmentSuffix(): string;
125
- get removeFragmentSuffix(): string;
126
- get toggleFragmentSuffix(): string;
127
- get deleteDirectiveSuffix(): string;
128
- get loadingDirective(): string;
129
- get runtimeScalarDirective(): string;
130
- get whenDirective(): string;
131
- get whenNotDirective(): string;
132
- get liveDirective(): string;
133
- get argumentsDirective(): string;
134
- get withDirective(): string;
135
- get paginateDirective(): string;
136
- get paginateModeArg(): string;
137
- get cacheDirective(): string;
138
- get cachePartialArg(): string;
139
- get cachePolicyArg(): string;
140
- get requiredDirective(): string;
141
- paginationQueryName(documentName: string): string;
142
- isDeleteDirective(name: string): boolean;
143
- listDeleteDirective(name: string): string;
144
- deleteDirectiveType(name: string): string;
145
- isInsertFragment(name: string): boolean;
146
- listInsertFragment(name: string): string;
147
- listToggleFragment(name: string): string;
148
- isRemoveFragment(name: string): boolean;
149
- isToggleFragment(name: string): boolean;
150
- listRemoveFragment(name: string): string;
151
- isInternalEnum(node: graphql.EnumTypeDefinitionNode): boolean;
152
- isInternalDirective(name: string): boolean;
153
- get componentFieldDirective(): string;
154
- componentFieldFragmentName(args: {
155
- type: string;
156
- entry: graphql.DirectiveNode | string;
157
- }): string;
158
- localDocumentData(document: graphql.DocumentNode): {
159
- paginated: boolean;
160
- componentFields: {
161
- type: string;
162
- field: string;
163
- }[];
164
- };
165
- registerFragmentVariablesHash({ hash, args, fragment, }: {
166
- hash: string;
167
- args: ValueMap | null;
168
- fragment: string;
169
- }): void;
170
- getFragmentVariablesHash(hash: string): {
171
- args: ValueMap | null;
172
- fragment: string;
173
- };
174
- serializeValueMap(map: ValueMap | null): ValueMap | null;
175
- isListFragment(name: string): boolean;
176
- isListOperationDirective(name: string): boolean;
177
- isFragmentForList(listName: string, fragmentName: string): boolean;
178
- listOperationFromFragment(fragmentName: string): 'insert' | 'remove' | 'toggle';
179
- listNameFromDirective(directiveName: string): string;
180
- listNameFromFragment(fragmentName: string): string;
181
- extractDefinition(document: graphql.DocumentNode): graphql.ExecutableDefinitionNode;
182
- extractQueryDefinition(document: graphql.DocumentNode): graphql.OperationDefinitionNode;
183
- variableFunctionName(name: string): string;
246
+ schema_pull_headers(): Promise<any>;
247
+ process_env_values(env: Record<string, string | undefined>, value: string | ((env: any) => string)): string | undefined;
248
+ get artifact_dir(): string;
249
+ get routes_dir(): string;
250
+ artifactPath(document: graphql.DocumentNode): string;
251
+ pluginConfig<ConfigType extends {}>(name: string): ConfigType;
184
252
  }
185
- export declare function getConfig({ configPath, noSchema, forceReload, ...extraConfig }?: PluginConfig & {
186
- noSchema?: boolean;
187
- forceReload?: boolean;
188
- }): Promise<Config>;
189
- export declare function readConfigFile(configPath?: string): Promise<ConfigFile>;
190
- export declare const orderedPlugins: (plugins: PluginMeta[]) => PluginMeta[];
253
+ export {};
@@ -0,0 +1,143 @@
1
+ import * as graphql from "graphql";
2
+ import { minimatch } from "minimatch";
3
+ import { plugin_dir } from "../router/conventions.js";
4
+ import * as path from "./path.js";
5
+ class Config {
6
+ config_file;
7
+ // server_config is the server-only overlay loaded from src/server/+config (secrets like
8
+ // sessionKeys). Kept separate from config_file so it never flows into the client bundle.
9
+ server_config;
10
+ filepath;
11
+ plugins;
12
+ root_dir;
13
+ schema;
14
+ constructor(init) {
15
+ this.config_file = init.config_file;
16
+ this.server_config = init.server_config ?? {};
17
+ this.filepath = init.filepath;
18
+ this.plugins = init.plugins;
19
+ this.root_dir = init.root_dir;
20
+ this.schema = init.schema;
21
+ }
22
+ schema_path() {
23
+ return this.config_file.schemaPath ?? path.resolve(process.cwd(), "schema.json");
24
+ }
25
+ get localApiDir() {
26
+ return path.join(this.root_dir, "src", "api");
27
+ }
28
+ async api_url() {
29
+ const watchSchema = this.config_file.watchSchema;
30
+ if (watchSchema === false || watchSchema === null) {
31
+ return "";
32
+ }
33
+ const apiURL = watchSchema?.url ?? this.config_file.url;
34
+ if (!apiURL) {
35
+ return "";
36
+ }
37
+ return this.process_env_values(process.env, apiURL);
38
+ }
39
+ get include() {
40
+ if (this.config_file.include) {
41
+ return Array.isArray(this.config_file.include) ? this.config_file.include : [this.config_file.include];
42
+ }
43
+ const include = [`src/**/*`];
44
+ for (const plugin of this.plugins) {
45
+ const runtimeDir = path.join(plugin_dir(this, plugin.name), "runtime");
46
+ const staticDir = path.join(plugin_dir(this, plugin.name), "static");
47
+ if (!runtimeDir && !staticDir) {
48
+ continue;
49
+ }
50
+ for (const dir of [runtimeDir, staticDir]) {
51
+ if (!dir) {
52
+ continue;
53
+ }
54
+ const includePath = path.relative(this.root_dir, dir);
55
+ include.push(`${includePath}/**/*`);
56
+ }
57
+ }
58
+ return include;
59
+ }
60
+ includeFile(filepath, { root = this.root_dir } = {}) {
61
+ const parsed = path.parse(filepath);
62
+ filepath = `${parsed.dir}/${parsed.name}${parsed.ext.split("?")[0]}`;
63
+ const included = false;
64
+ if (!included && !this.include.some((pattern) => minimatch(filepath, path.join(root, pattern)))) {
65
+ return false;
66
+ }
67
+ return !this.excludeFile(filepath, { root });
68
+ }
69
+ get exclude() {
70
+ if (!this.config_file.exclude) {
71
+ return [];
72
+ }
73
+ return Array.isArray(this.config_file.exclude) ? this.config_file.exclude : [this.config_file.exclude];
74
+ }
75
+ excludeFile(filepath, { root = this.root_dir }) {
76
+ if (this.exclude.length > 0 && this.exclude.some((pattern) => minimatch(filepath, path.join(root, pattern)))) {
77
+ return true;
78
+ }
79
+ return false;
80
+ }
81
+ async schema_pull_headers() {
82
+ const env = process.env;
83
+ const config_headers = (this.config_file.watchSchema || void 0)?.headers;
84
+ if (typeof config_headers === "function") {
85
+ return config_headers(env);
86
+ }
87
+ const headers = Object.fromEntries(
88
+ Object.entries(config_headers || {}).map(([key, value]) => {
89
+ const headerValue = this.process_env_values(env, value);
90
+ if (!headerValue) {
91
+ return [];
92
+ }
93
+ return [key, headerValue];
94
+ }).filter(([key]) => key)
95
+ );
96
+ return headers;
97
+ }
98
+ process_env_values(env, value) {
99
+ let headerValue;
100
+ if (typeof value === "function") {
101
+ headerValue = value(env);
102
+ } else if (value.startsWith("env:")) {
103
+ headerValue = env[value.slice("env:".length)];
104
+ } else {
105
+ headerValue = value;
106
+ }
107
+ return headerValue;
108
+ }
109
+ get artifact_dir() {
110
+ return path.join(this.root_dir, this.config_file.runtimeDir || ".houdini", "artifacts");
111
+ }
112
+ get routes_dir() {
113
+ return path.join(this.root_dir, "src", "routes");
114
+ }
115
+ // the location of the artifact generated corresponding to the provided documents
116
+ artifactPath(document) {
117
+ return path.join(this.artifact_dir, `${documentName(document)}.js`);
118
+ }
119
+ pluginConfig(name) {
120
+ return this.config_file.plugins?.[name] ?? {};
121
+ }
122
+ }
123
+ function documentName(document) {
124
+ const operation = document.definitions.find(
125
+ ({ kind: _kind }) => graphql.Kind.OPERATION_DEFINITION
126
+ );
127
+ if (operation) {
128
+ if (!operation.name) {
129
+ throw new Error(`encountered operation with no name: ${graphql.print(document)}`);
130
+ }
131
+ return operation.name.value;
132
+ }
133
+ const fragmentDefinitions = document.definitions.filter(
134
+ ({ kind }) => kind === graphql.Kind.FRAGMENT_DEFINITION
135
+ );
136
+ if (fragmentDefinitions.length) {
137
+ return fragmentDefinitions.map((fragment) => fragment.name).join("_");
138
+ }
139
+ throw new Error(`Could not generate artifact name for document: ${graphql.print(document)}`);
140
+ }
141
+ export {
142
+ Config
143
+ };
@@ -0,0 +1,14 @@
1
+ const siteURL = "https://houdinigraphql.com";
2
+ const houdini_mode = {
3
+ /**
4
+ * to set the testing mode do like this:
5
+ * `process.env.HOUDINI_TEST = 'true'`
6
+ */
7
+ get is_testing() {
8
+ return process.env.HOUDINI_TEST === "true";
9
+ }
10
+ };
11
+ export {
12
+ houdini_mode,
13
+ siteURL
14
+ };
@@ -0,0 +1,7 @@
1
+ import type { PluginSpec } from './codegen.js';
2
+ import type { Db } from './db.js';
3
+ import type { Config } from './config.js';
4
+ import { Logger } from './logger.js';
5
+ export declare const create_schema = "\nCREATE TABLE IF NOT EXISTS plugins (\n name TEXT NOT NULL PRIMARY KEY UNIQUE,\n port INTEGER NOT NULL,\n hooks JSON NOT NULL,\n plugin_order TEXT CHECK (plugin_order IS NULL OR plugin_order IN ('before', 'after', 'core')),\n include_runtime TEXT,\n include_static_runtime TEXT,\n config JSON,\n\t config_module TEXT,\n\t\tclient_plugins JSON\n);\n\n-- Watch Schema Config\nCREATE TABLE IF NOT EXISTS watch_schema_config (\n url TEXT NOT NULL,\n headers JSON,\n interval INTEGER,\n timeout INTEGER\n);\n\n-- Router Config\nCREATE TABLE IF NOT EXISTS router_config (\n api_endpoint TEXT,\n redirect TEXT UNIQUE,\n session_keys TEXT NOT NULL UNIQUE,\n url TEXT,\n mutation TEXT UNIQUE,\n providers TEXT\n);\n\n-- Runtime Scalar Definition\nCREATE TABLE IF NOT EXISTS runtime_scalar_definitions (\n name TEXT NOT NULL PRIMARY KEY UNIQUE,\n type TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS component_fields (\n\tid INTEGER PRIMARY KEY AUTOINCREMENT,\n\tdocument INTEGER NOT NULL,\n type TEXT,\n\tprop TEXT,\n field TEXT,\n\tinline BOOLEAN default false,\n type_field TEXT,\n fragment TEXT,\n\tUNIQUE (document),\n\tFOREIGN KEY (document) REFERENCES raw_documents(id) ON DELETE CASCADE\n);\n\n-- Static Config (main config table)\nCREATE TABLE IF NOT EXISTS config (\n include JSON NOT NULL,\n exclude JSON NOT NULL,\n schema_path TEXT NOT NULL,\n definitions_path TEXT,\n cache_buffer_size INTEGER,\n default_cache_policy TEXT,\n default_partial BOOLEAN,\n default_lifetime INTEGER,\n default_list_position TEXT CHECK (default_list_position IN ('APPEND', 'PREPEND')),\n default_list_target TEXT CHECK (default_list_target IN ('ALL', 'NULL')),\n default_paginate_mode TEXT CHECK (default_paginate_mode IN ('Infinite', 'SinglePage')),\n suppress_pagination_deduplication BOOLEAN,\n log_level TEXT CHECK (log_level IN ('QUIET', 'FULL', 'SUMMARY', 'SHORT_SUMMARY')),\n default_fragment_masking BOOLEAN,\n default_keys JSON,\n persisted_queries_path TEXT NOT NULL,\n project_root TEXT,\n runtime_dir TEXT,\n\t\tpath TEXT\n);\n\nCREATE TABLE IF NOT EXISTS scalar_config (\n name TEXT NOT NULL PRIMARY KEY UNIQUE,\n type TEXT NOT NULL,\n\tinput_types JSON,\n\tmodule TEXT,\n\tdefault_import BOOLEAN\n);\n\n-- Types configuration\nCREATE TABLE IF NOT EXISTS type_configs (\n name TEXT NOT NULL,\n keys JSON NOT NULL,\n\tresolve_query TEXT\n);\n\n-- A table of original document contents (to be populated by plugins)\nCREATE TABLE IF NOT EXISTS raw_documents (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n offset_line INTEGER,\n offset_column INTEGER,\n filepath TEXT NOT NULL,\n content TEXT NOT NULL,\n current_task TEXT,\n loaded_with TEXT\n);\n\n-----------------------------------------------------------\n-- Schema Definition Tables\n-----------------------------------------------------------\n\nCREATE TABLE IF NOT EXISTS types (\n name TEXT NOT NULL PRIMARY KEY UNIQUE,\n kind TEXT NOT NULL CHECK (kind IN ('OBJECT', 'INTERFACE', 'UNION', 'ENUM', 'SCALAR', 'INPUT')),\n operation TEXT,\n\tdescription TEXT,\n\tinternal BOOLEAN default false,\n\tbuilt_in BOOLEAN default false\n);\n\nCREATE TABLE IF NOT EXISTS type_fields (\n id TEXT PRIMARY KEY, -- will be something like User.name so we don't have to look up the generated id\n parent TEXT NOT NULL, -- will be User\n name TEXT NOT NULL,\n type TEXT NOT NULL,\n\t type_modifiers TEXT,\n default_value TEXT,\n description TEXT,\n\t internal BOOLEAN default false,\n document INT,\n\n FOREIGN KEY (document) REFERENCES raw_documents(id) ON DELETE CASCADE,\n FOREIGN KEY (parent) REFERENCES types(name) ON DELETE CASCADE,\n FOREIGN KEY (type) REFERENCES types(name) ON DELETE CASCADE,\n UNIQUE (parent, name)\n);\n\nCREATE TABLE IF NOT EXISTS type_field_arguments (\n id TEXT PRIMARY KEY,\n field TEXT NOT NULL,\n name TEXT NOT NULL,\n type TEXT NOT NULL,\n type_modifiers TEXT,\n default_value TEXT,\n FOREIGN KEY (field) REFERENCES type_fields(id) ON DELETE CASCADE,\n UNIQUE (field, name)\n);\n\n\nCREATE TABLE IF NOT EXISTS enum_values (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n parent TEXT NOT NULL,\n value TEXT NOT NULL,\n description TEXT,\n FOREIGN KEY (parent) REFERENCES types(name) ON DELETE CASCADE,\n UNIQUE (parent, value)\n);\n\nCREATE TABLE IF NOT EXISTS possible_types (\n type TEXT NOT NULL,\n member TEXT NOT NULL,\n FOREIGN KEY (type) REFERENCES types(name) ON DELETE CASCADE,\n FOREIGN KEY (member) REFERENCES types(name) ON DELETE CASCADE,\n PRIMARY KEY (type, member)\n);\n\nCREATE TABLE IF NOT EXISTS directives (\n name TEXT NOT NULL UNIQUE PRIMARY KEY,\n\tinternal BOOLEAN default false,\n visible BOOLEAN default true,\n repeatable BOOLEAN default false,\n\tdescription TEXT\n);\n\nCREATE TABLE IF NOT EXISTS directive_arguments (\n parent TEXT NOT NULL,\n name TEXT NOT NULL,\n type TEXT NOT NULL,\n\ttype_modifiers TEXT,\n default_value TEXT,\n FOREIGN KEY (parent) REFERENCES directives(name),\n PRIMARY KEY (parent, name),\n UNIQUE (parent, name)\n);\n\nCREATE TABLE IF NOT EXISTS directive_locations (\n directive TEXT NOT NULL,\n location TEXT NOT NULL CHECK (location IN ('QUERY', 'MUTATION', 'SUBSCRIPTION', 'FIELD', 'FRAGMENT_DEFINITION', 'FRAGMENT_SPREAD', 'INLINE_FRAGMENT', 'SCHEMA', 'SCALAR', 'OBJECT', 'FIELD_DEFINITION', 'ARGUMENT_DEFINITION', 'INTERFACE', 'UNION', 'ENUM', 'ENUM_VALUE', 'INPUT_OBJECT', 'INPUT_FIELD_DEFINITION')),\n FOREIGN KEY (directive) REFERENCES directives(name),\n PRIMARY KEY (directive, location)\n);\n\nCREATE TABLE IF NOT EXISTS document_variable_directives (\n\tid INTEGER PRIMARY KEY AUTOINCREMENT,\n\tparent INTEGER NOT NULL,\n\tdirective TEXT NOT NULL,\n row INTEGER NOT NULL,\n column INTEGER NOT NULL,\n\tFOREIGN KEY (parent) REFERENCES document_variables(id) ON DELETE CASCADE,\n\tFOREIGN KEY (directive) REFERENCES directives(name) ON DELETE CASCADE\n);\n\nCREATE TABLE IF NOT EXISTS document_variable_directive_arguments (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n parent INTEGER NOT NULL,\n name TEXT NOT NULL,\n value INTEGER NOT NULL,\n\n FOREIGN KEY (value) REFERENCES argument_values(id) ON DELETE CASCADE,\n FOREIGN KEY (parent) REFERENCES document_variable_directives(id) ON DELETE CASCADE\n);\n\n-----------------------------------------------------------\n-- Document Tables\n-----------------------------------------------------------\n\nCREATE TABLE IF NOT EXISTS document_variables (\n \tid INTEGER PRIMARY KEY AUTOINCREMENT,\n document TEXT NOT NULL,\n name TEXT NOT NULL,\n type TEXT NOT NULL,\n type_modifiers TEXT,\n default_value INT,\n row INTEGER NOT NULL,\n column INTEGER NOT NULL,\n\n FOREIGN KEY (default_value) REFERENCES argument_values(id) ON DELETE CASCADE,\n FOREIGN KEY (document) REFERENCES documents(id) ON DELETE CASCADE,\n UNIQUE (document, name)\n);\n\n-- this is pulled out separately from operations and fragments so foreign keys can be used\nCREATE TABLE IF NOT EXISTS documents (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n name TEXT NOT NULL,\n kind TEXT NOT NULL CHECK (kind IN ('query', 'mutation', 'subscription', 'fragment')),\n raw_document INTEGER,\n type_condition TEXT,\n hash TEXT,\n printed TEXT,\n\t\tinternal boolean default false,\n\t\tvisible boolean default true,\n\t\tprocessed boolean default false,\n FOREIGN KEY (type_condition) REFERENCES types(name) ON DELETE CASCADE,\n FOREIGN KEY (raw_document) REFERENCES raw_documents(id) ON DELETE CASCADE\n);\n\nCREATE TABLE IF NOT EXISTS selections (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n field_name TEXT NOT NULL,\n\tkind TEXT NOT NULL CHECK (kind IN ('field', 'fragment', 'inline_fragment')),\n alias TEXT,\n type TEXT, -- should be something like User.Avatar\n fragment_ref TEXT, -- used when fragment arguments cause a hash to be inlined (removing the ability to track what the original fragment is)\n\t\tfragment_args JSON -- used to store the arguments that are used when fragment variables are expanded\n);\n\nCREATE TABLE IF NOT EXISTS selection_directives (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n selection_id INTEGER NOT NULL,\n directive TEXT NOT NULL,\n row INTEGER NOT NULL,\n column INTEGER NOT NULL,\n FOREIGN KEY (selection_id) REFERENCES selections(id) ON DELETE CASCADE,\n FOREIGN KEY (directive) REFERENCES directives(name) ON DELETE CASCADE\n);\n\nCREATE TABLE IF NOT EXISTS selection_directive_arguments (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n parent INTEGER NOT NULL,\n name TEXT NOT NULL,\n value INTEGER NOT NULL,\n document INTEGER NOT NULL,\n\n FOREIGN KEY (value) REFERENCES argument_values(id) ON DELETE CASCADE,\n FOREIGN KEY (parent) REFERENCES selection_directives(id) ON DELETE CASCADE,\n FOREIGN KEY (document) REFERENCES documents(id) ON DELETE CASCADE\n);\n\nCREATE TABLE IF NOT EXISTS document_directives (\n\tid INTEGER PRIMARY KEY AUTOINCREMENT,\n\tdocument int NOT NULL,\n\tdirective TEXT NOT NULL,\n\trow INTEGER NOT NULL,\n\tcolumn INTEGER NOT NULL,\n\tFOREIGN KEY (document) REFERENCES documents(id) ON DELETE CASCADE,\n\tFOREIGN KEY (directive) REFERENCES directives(name) ON DELETE CASCADE\n);\n\nCREATE TABLE IF NOT EXISTS document_directive_arguments (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n parent INTEGER NOT NULL,\n name TEXT NOT NULL,\n value INTEGER NOT NULL,\n\n FOREIGN KEY (value) REFERENCES argument_values(id) ON DELETE CASCADE,\n FOREIGN KEY (parent) REFERENCES document_directives(id) ON DELETE CASCADE\n);\n\nCREATE TABLE IF NOT EXISTS selection_refs (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n parent_id INTEGER,\n child_id INTEGER NOT NULL,\n path_index INTEGER NOT NULL,\n document INTEGER NOT NULL,\n\trow INTEGER NOT NULL,\n\tcolumn INTEGER NOT NULL,\n\tinternal BOOLEAN NOT NULL DEFAULT false,\n FOREIGN KEY (parent_id) REFERENCES selections(id) ON DELETE CASCADE,\n FOREIGN KEY (child_id) REFERENCES selections(id) ON DELETE CASCADE,\n FOREIGN KEY (document) REFERENCES documents(id) ON DELETE CASCADE\n);\n\nCREATE TABLE IF NOT EXISTS selection_arguments (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n selection_id INTEGER NOT NULL,\n document INTEGER NOT NULL,\n name TEXT NOT NULL,\n value INTEGER NOT NULL,\n row INTEGER NOT NULL,\n column INTEGER NOT NULL,\n field_argument TEXT NOT NULL,\n\n FOREIGN KEY (value) REFERENCES argument_values(id) ON DELETE CASCADE,\n FOREIGN KEY (selection_id) REFERENCES selections(id) ON DELETE CASCADE,\n FOREIGN KEY (document) REFERENCES documents(id) ON DELETE CASCADE\n);\n\n\nCREATE TABLE IF NOT EXISTS argument_values (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n kind TEXT NOT NULL CHECK (kind IN ('Variable', 'Int', 'Float', 'String', 'Block', 'Boolean', 'Null', 'Enum', 'List', 'Object')),\n raw TEXT NOT NULL,\n row INTEGER NOT NULL,\n column INTEGER NOT NULL,\n expected_type TEXT NOT NULL,\n expected_type_modifiers TEXT,\n document INTEGER NOT NULL,\n\n FOREIGN KEY (document) REFERENCES documents(id) ON DELETE CASCADE\n);\n\nCREATE TABLE IF NOT EXISTS argument_value_children (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n name TEXT,\n parent INTEGER NOT NULL,\n value INTEGER NOT NULL,\n row INTEGER NOT NULL,\n column INTEGER NOT NULL,\n document INTEGER NOT NULL,\n\n FOREIGN KEY (document) REFERENCES documents(id) ON DELETE CASCADE,\n FOREIGN KEY (parent) REFERENCES argument_values(id) ON DELETE CASCADE,\n FOREIGN KEY (value) REFERENCES argument_values(id) ON DELETE CASCADE\n);\n\nCREATE TABLE IF NOT EXISTS discovered_lists (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n name TEXT,\n node_type TEXT NOT NULL,\n edge_type TEXT,\n connection_type TEXT NOT NULL,\n node INTEGER NOT NULL,\n page_size INTEGER NOT NULL,\n document INTEGER NOT NULL,\n mode TEXT NOT NULL,\n embedded BOOLEAN NOT NULL,\n target_type TEXT NOT NULL,\n connection BOOLEAN default false,\n list_field INTEGER NOT NULL,\n paginate TEXT,\n supports_forward BOOLEAN default false,\n supports_backward BOOLEAN default false,\n cursor_type TEXT,\n\n FOREIGN KEY (list_field) REFERENCES selections(id) ON DELETE CASCADE,\n\t FOREIGN KEY (node) REFERENCES selections(id) ON DELETE CASCADE,\n FOREIGN KEY (node_type) REFERENCES types(name) ON DELETE CASCADE,\n FOREIGN KEY (document) REFERENCES documents(id) ON DELETE CASCADE\n);\n\n-- refetch_meta carries the \"refetch\" artifact-block metadata for documents that are\n-- refetchable but are NOT lists (e.g. @refetchable fragments). Lists keep their refetch\n-- metadata on discovered_lists since it is intrinsic to pagination; this table is for the\n-- list-less case so we don't have to fake a discovered_lists row.\nCREATE TABLE IF NOT EXISTS refetch_meta (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n document INTEGER NOT NULL,\n selection INTEGER NOT NULL,\n target_type TEXT NOT NULL,\n method TEXT NOT NULL DEFAULT 'offset',\n mode TEXT NOT NULL DEFAULT 'Infinite',\n page_size INTEGER NOT NULL DEFAULT 0,\n embedded BOOLEAN NOT NULL DEFAULT false,\n\n FOREIGN KEY (document) REFERENCES documents(id) ON DELETE CASCADE,\n FOREIGN KEY (selection) REFERENCES selections(id) ON DELETE CASCADE\n);\n\nCREATE TABLE IF NOT EXISTS document_dependencies (\n document INTEGER NOT NULL,\n depends_on TEXT NOT NULL,\n\n FOREIGN KEY (document) REFERENCES documents(id) ON DELETE CASCADE,\n UNIQUE (document, depends_on)\n);\n\n-----------------------------------------------------------\n-- Indices\n-----------------------------------------------------------\n\n-- component_fields\nCREATE INDEX IF NOT EXISTS idx_component_fields_type_fields ON component_fields(type_field);\n\n-- discovered_lists\nCREATE INDEX IF NOT EXISTS idx_discovered_lists_document ON discovered_lists(document);\nCREATE INDEX IF NOT EXISTS idx_discovered_lists_node ON discovered_lists(node);\nCREATE INDEX IF NOT EXISTS idx_discovered_lists_list_field ON discovered_lists(list_field);\n-- note: no index on discovered_lists(connection) \u2014 boolean column, ~2 distinct values\n\n-- refetch_meta\nCREATE INDEX IF NOT EXISTS idx_refetch_meta_selection ON refetch_meta(selection);\nCREATE INDEX IF NOT EXISTS idx_refetch_meta_document ON refetch_meta(document);\n\n-- types\nCREATE INDEX IF NOT EXISTS idx_types_kind_operation ON types(kind, operation);\n-- note: no index on types(name) \u2014 covered by PRIMARY KEY UNIQUE\n\n-- documents\nCREATE INDEX IF NOT EXISTS idx_documents_kind ON documents(kind);\nCREATE INDEX IF NOT EXISTS idx_documents_type_condition ON documents(type_condition);\nCREATE INDEX IF NOT EXISTS idx_documents_raw_document ON documents(raw_document);\nCREATE INDEX IF NOT EXISTS idx_documents_name_kind ON documents(name, kind);\n\n-- raw_documents\nCREATE INDEX IF NOT EXISTS idx_raw_documents_current_task ON raw_documents(current_task);\nCREATE INDEX IF NOT EXISTS idx_raw_documents_filepath ON raw_documents(filepath);\n\n-- selections\nCREATE INDEX IF NOT EXISTS idx_selections_type ON selections(type);\nCREATE INDEX IF NOT EXISTS idx_selections_alias ON selections(alias);\nCREATE INDEX IF NOT EXISTS idx_selections_field_name_kind ON selections(field_name, kind);\n\n-- selection_refs: composite covers document-only lookups, so no separate single-column index needed\nCREATE INDEX IF NOT EXISTS idx_selection_refs_parent_id ON selection_refs(parent_id);\n\nCREATE INDEX IF NOT EXISTS idx_selection_refs_child_id ON selection_refs(child_id);\nCREATE INDEX IF NOT EXISTS idx_selection_refs_document_parent_id ON selection_refs(document, parent_id);\n\n-- selection_directives / selection_directive_arguments / selection_arguments\nCREATE INDEX IF NOT EXISTS idx_selection_directives_selection ON selection_directives(selection_id);\nCREATE INDEX IF NOT EXISTS idx_selection_directives_directive ON selection_directives(directive);\nCREATE INDEX IF NOT EXISTS idx_selection_directive_arguments_parent_name ON selection_directive_arguments(parent, name);\n-- note: no index on selection_directive_arguments(parent) alone \u2014 covered by (parent,name) composite\nCREATE INDEX IF NOT EXISTS idx_selection_directive_arguments_value ON selection_directive_arguments(value);\n-- document FK on selection_directive_arguments and selection_arguments: used in WHERE/JOIN in CollectDocuments\nCREATE INDEX IF NOT EXISTS idx_selection_directive_arguments_document ON selection_directive_arguments(document);\nCREATE INDEX IF NOT EXISTS idx_selection_arguments_document ON selection_arguments(document);\nCREATE INDEX IF NOT EXISTS idx_selection_arguments_selection ON selection_arguments(selection_id);\nCREATE INDEX IF NOT EXISTS idx_selection_arguments_value ON selection_arguments(value);\n\n-- type_fields / type_field_arguments\n-- note: no index on type_fields(id) or type_field_arguments(id) \u2014 covered by their TEXT PRIMARY KEYs\nCREATE INDEX IF NOT EXISTS idx_type_fields_parent ON type_fields(parent);\nCREATE INDEX IF NOT EXISTS idx_type_fields_name ON type_fields(name);\nCREATE INDEX IF NOT EXISTS idx_type_configs_name ON type_configs(name);\n\n-- possible_types\n-- note: no index on possible_types(type) \u2014 covered by PRIMARY KEY(type,member) leading column\nCREATE INDEX IF NOT EXISTS idx_possible_types_member ON possible_types(member);\n\n-- type_fields: type and document FK columns have no implicit index\nCREATE INDEX IF NOT EXISTS idx_type_fields_type ON type_fields(type);\nCREATE INDEX IF NOT EXISTS idx_type_fields_document ON type_fields(document);\n\n-- enum_values\n-- note: no index on enum_values(parent) or (parent,value) \u2014 both covered by UNIQUE(parent,value)\n\n-- document_directives / document_directive_arguments\nCREATE INDEX IF NOT EXISTS idx_document_directives_document ON document_directives(document);\nCREATE INDEX IF NOT EXISTS idx_document_directives_directive ON document_directives(directive);\nCREATE INDEX IF NOT EXISTS idx_document_directive_arguments_parent_name ON document_directive_arguments(parent, name);\n-- note: no index on document_directive_arguments(parent) alone \u2014 covered by (parent,name) composite\nCREATE INDEX IF NOT EXISTS idx_document_directive_arguments_value on document_directive_arguments(value);\n\n-- document_variables\n-- note: no index on document_variables(document,name) \u2014 covered by UNIQUE(document,name)\n-- default_value FK is used as a JOIN column in validate and fragmentArguments transforms\nCREATE INDEX IF NOT EXISTS idx_document_variables_default_value ON document_variables(default_value);\nCREATE INDEX IF NOT EXISTS idx_document_variables_document_id ON document_variables(document, id);\nCREATE INDEX IF NOT EXISTS idx_document_variables_document_type_modifiers_default ON document_variables(document, type_modifiers, default_value);\n\n-- document_variable_directives / document_variable_directive_arguments\nCREATE INDEX IF NOT EXISTS idx_document_variable_directives_parent ON document_variable_directives(parent);\nCREATE INDEX IF NOT EXISTS idx_document_variable_directives_directive ON document_variable_directives(directive);\nCREATE INDEX IF NOT EXISTS idx_document_variable_directive_arguments_parent ON document_variable_directive_arguments(parent);\n\n-- document_dependencies\n-- note: no index on document_dependencies(document) \u2014 covered by UNIQUE(document,depends_on) leading column\nCREATE INDEX IF NOT EXISTS idx_document_dependency_depends_on on document_dependencies(depends_on);\n\n-- argument_values: composite (document,id) covers document-only lookups\n-- note: no separate index on argument_values(document) alone\nCREATE INDEX IF NOT EXISTS idx_argument_values_kind_raw ON argument_values(kind, raw);\nCREATE INDEX IF NOT EXISTS idx_argument_values_document_id ON argument_values(document, id);\nCREATE INDEX IF NOT EXISTS idx_argument_values_expected_type_document ON argument_values(expected_type, document);\n\n-- argument_value_children: composite (parent,value) covers parent-only lookups\n-- note: no separate index on argument_value_children(parent) alone\nCREATE INDEX IF NOT EXISTS idx_argument_value_children_parent_value ON argument_value_children(parent, value);\nCREATE INDEX IF NOT EXISTS idx_argument_value_children_value ON argument_value_children(value);\n-- document FK: large table; index needed for efficient CASCADE DELETE from documents\nCREATE INDEX IF NOT EXISTS idx_argument_value_children_document ON argument_value_children(document);\n";
6
+ export declare const schema_version: number;
7
+ export declare function write_config(db: Db, config: Config, invoke_hook: (plugin: string, hook: string, args: Record<string, any>) => Promise<Record<string, any>>, plugins: Array<PluginSpec>, mode: string, logger?: Logger): Promise<void>;