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
@@ -1,314 +1,103 @@
1
- import type * as graphql from 'graphql';
2
1
  import type * as recast from 'recast';
3
- import type { CustomPluginOptions, InputOptions, LoadResult, MinimalPluginContext, NormalizedInputOptions, NullValue, ObjectHook, PluginContext, ResolveIdResult, SourceMapInput } from 'rollup';
4
- import type { ConfigEnv, ResolvedConfig, UserConfig, ViteDevServer } from 'vite';
5
- import type { ConfigFile } from '../runtime/lib/config';
6
- import type { ArtifactKinds, BaseCompiledDocument, DocumentArtifact, ValueOf } from '../runtime/lib/types';
7
- import type { TransformPage } from '../vite/houdini';
8
- import type { Config } from './config';
9
- import type { Adapter } from './router';
10
- type Program = recast.types.namedTypes.Program;
11
- export type Maybe<T> = T | null | undefined;
12
- export type Script = Program;
13
- export type TransformDocument = {
14
- instance: Maybe<Script>;
15
- config: Config;
16
- dependencies: string[];
17
- filename: string;
18
- };
19
- /**
20
- * The result of collecting documents from source code
21
- */
22
- export type Document = {
23
- /**
24
- * The name of the document.
25
- */
26
- name: string;
27
- /**
28
- * A field you can use to distinguish documents by type (query, mutation, subscription, fragment)
29
- */
30
- kind: ArtifactKinds;
31
- /**
32
- * The artifact generated for the document. This will only have a value in the last phase
33
- * of the Generation Pipeline.
34
- */
35
- artifact: DocumentArtifact | null;
36
- /**
37
- * The path of the file containing this document
38
- */
39
- filename: string;
40
- /**
41
- * The parsed document. This value should be modified throughout the pipeline.
42
- * */
43
- document: graphql.DocumentNode;
44
- /**
45
- * Whether an artifact should be generated for the document. This should be set to false for internal
46
- * or virtual documents .
47
- */
48
- generateArtifact: boolean;
49
- /**
50
- * Whether a runtime equivalent should be generated for the document. This should be set to false for internal
51
- * or virtual documents .
52
- */
53
- generateStore: boolean;
54
- /**
55
- * The original document string that the user passed
56
- */
57
- originalString: string;
58
- /**
59
- * The parsed document that the user provided
60
- * */
61
- originalParsed: graphql.DocumentNode;
62
- /**
63
- * Refetch logic that has been built up throughout the pipeline
64
- */
65
- refetch?: BaseCompiledDocument<'HoudiniQuery'>['refetch'];
66
- };
2
+ import type { SourceMapInput } from 'rollup';
3
+ import type { Config } from './config.js';
67
4
  export declare const LogLevel: {
68
- readonly Full: "full";
5
+ readonly Quiet: "quiet";
69
6
  readonly Summary: "summary";
70
7
  readonly ShortSummary: "short-summary";
71
- readonly Quiet: "quiet";
8
+ readonly Verbose: "full";
9
+ };
10
+ export type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];
11
+ export type ProjectManifest = {
12
+ /** All of the pages in the project */
13
+ pages: Record<string, PageManifest>;
14
+ /** All of the layouts in the project */
15
+ layouts: Record<string, PageManifest>;
16
+ /** All of the page queries in the project */
17
+ page_queries: Record<string, QueryManifest>;
18
+ /** All of the layout queries in the project */
19
+ layout_queries: Record<string, QueryManifest>;
20
+ /** All of the artifacts in the project */
21
+ artifacts: string[];
22
+ /** Whether or not there is a local schema defined */
23
+ local_schema: boolean;
24
+ /** Whether or not there is a custom instance of yoga defined */
25
+ local_yoga: boolean;
26
+ /** Information about componentFields defined in the project */
27
+ component_fields: Record<string, {
28
+ filepath: string;
29
+ }>;
72
30
  };
73
- export type LogLevels = ValueOf<typeof LogLevel>;
74
- export type Plugin = (args?: PluginConfig) => Promise<(PluginHooks | PluginInit) | (PluginHooks | PluginInit)[] | null | false>;
75
- export type PluginInit = {
76
- __plugin_init__: boolean;
77
- plugin: Plugin;
31
+ export type PageManifest = {
32
+ id: string;
33
+ /** the name of every query that the page depends on */
34
+ queries: string[];
35
+ /** the list of queries that this page could potentially ask for */
36
+ query_options: string[];
37
+ /** the full url pattern of the page */
38
+ url: string;
39
+ /** the ids of layouts that wrap this page */
40
+ layouts: string[];
41
+ /** The filepath of the unit */
42
+ path: string;
43
+ /**
44
+ * The name and type of every route paramter that this page can use.
45
+ * null indicates the type is unknown (not constrained by a query)
46
+ **/
47
+ params: Record<string, {
48
+ type: string;
49
+ wrappers: string[];
50
+ } | null>;
51
+ };
52
+ export type QueryManifest = {
53
+ /** the name of the query */
78
54
  name: string;
79
- config?: {};
80
- local?: string;
81
- with(config: {}): PluginInit;
55
+ /** the url tied with the query */
56
+ url: string;
57
+ /** wether the query uses the loading directive (ie, wants a fallback) */
58
+ loading: boolean;
59
+ /** The filepath of the unit */
60
+ path: string;
61
+ /** The name and GraphQL type for the variables that this query cares about */
62
+ variables: Record<string, {
63
+ wrappers: string[];
64
+ type: string;
65
+ }>;
82
66
  };
83
- export type PluginHooks = {
84
- /**
85
- * Specify the priority for the hook. The order is before -> core -> after.
86
- * @default 'before'
87
- */
88
- order?: 'before' | 'after' | 'core';
89
- /**
90
- * Add extensions to the list that houdini uses to find valid source files
91
- */
92
- extensions?: string[];
93
- /**
94
- * A relative path from the file exporting your plugin to a runtime that will be
95
- * automatically included with your
96
- */
97
- includeRuntime?: string | {
98
- esm: string;
99
- commonjs: string;
100
- };
101
- /**
102
- * A relative path from the file exporting your plugin to a runtime that can be
103
- * added to the project before generating artifacts. This is useful for plugins
104
- * that want to add third-party documents to the user's application.
105
- */
106
- staticRuntime?: string | {
107
- esm: string;
108
- commonjs: string;
109
- };
110
- /**
111
- * Transform the plugin's runtime while houdini is copying it .
112
- * You must have passed a value to includeRuntime for this hook to matter.
113
- */
114
- transformRuntime?: Record<string, (args: {
115
- config: Config;
116
- content: string;
117
- importStatement: (where: string, as: string) => string;
118
- exportDefaultStatement: (val: string) => string;
119
- exportStarStatement: (val: string) => string;
120
- }) => string> | ((docs: Document[], opts: {
121
- config: Config;
122
- }) => Record<string, (args: {
123
- config: Config;
124
- content: string;
125
- importStatement: (where: string, as: string) => string;
126
- exportDefaultStatement: (val: string) => string;
127
- exportStarStatement: (val: string) => string;
128
- }) => string>);
129
- /**
130
- * An module with an default export that sets configuration values.
131
- */
132
- config?: string;
133
- /**
134
- *
135
- * Add environment variables to houdini's pipeline (ie, for schema polling headers, url, etc.)
136
- */
137
- env?: (args: {
138
- env: any;
139
- config: Config;
140
- }) => Promise<Record<string, string>>;
141
- /**
142
- * Invoked after all plugins have loaded and modified config values.
143
- */
144
- afterLoad?: (args: {
145
- config: Config;
146
- }) => Promise<void> | void;
147
- /**
148
- * A filter for whether a file should be included in the the processing. Return true to include.
149
- */
150
- include?: (args: {
151
- config: Config;
152
- filepath: string;
153
- }) => boolean | null | undefined;
154
- /**
155
- * A filter for whether a file should be included in the the processing. Return false to include.
156
- */
157
- exclude?: (args: {
158
- config: Config;
159
- filepath: string;
160
- }) => boolean | null | undefined;
161
- /**
162
- * Configure the codegen pipeline to extract graphql documents out of a file.
163
- */
164
- extractDocuments?: (args: {
165
- config: Config;
166
- filepath: string;
167
- content: string;
168
- }) => Promise<string[] | null> | string[] | null;
169
- /**
170
- * Can be used to add custom definitions to your project's schema. Definitions (like directives) added
171
- * here are automatically removed from the document before they are sent to the server. Useful
172
- * in connection with artifactData or artifact_selection to embed data in the artifact.
173
- */
174
- schema?: (args: {
175
- config: Config;
176
- }) => string;
177
- /**
178
- * A hook to transform the documents before they are validated.
179
- */
180
- beforeValidate?: (args: {
181
- config: Config;
182
- documents: Document[];
183
- }) => Promise<void> | void;
184
- /**
185
- * A hook to validate all of the documents in a project.
186
- */
187
- validate?: (args: {
188
- config: Config;
189
- documents: Document[];
190
- }) => Promise<void> | void;
191
- /**
192
- * A hook to transform the documents after they are validated.
193
- */
194
- afterValidate?: (args: {
195
- config: Config;
196
- documents: Document[];
197
- }) => Promise<void> | void;
198
- /**
199
- * A hook to transform the documents before documents are generated.
200
- */
201
- beforeGenerate?: (args: {
202
- config: Config;
203
- documents: Document[];
204
- }) => Promise<void> | void;
205
- /**
206
- * A hook to embed metadata at the root of the artifact.
207
- */
208
- artifactData?: (args: {
209
- config: Config;
210
- document: Document;
211
- }) => Record<string, any> | void;
212
- /**
213
- * A hook to customize the hash generated for your document.
214
- */
215
- hash?: (args: {
216
- config: Config;
217
- document: Document;
218
- }) => string;
219
- /**
220
- * A hook to customize the return type of the graphql function. If you need to add an import to the file
221
- * in order to resolve the import, you can use the `ensureImport` utility.
222
- */
223
- graphqlTagReturn?: (args: {
224
- config: Config;
225
- document: Document;
226
- ensureImport: (import_args: {
227
- identifier: string;
228
- module: string;
229
- }) => void;
230
- }) => string | undefined;
231
- /**
232
- * A hook to modify the root `index.js` of the generated runtime.
233
- */
234
- indexFile?: ModuleIndexTransform;
235
- /**
236
- * A hook to generate custom files for every document in a project.
237
- */
238
- generate?: GenerateHook;
239
- /**
240
- * A hook to modify the generated artifact before it is persisted
241
- */
242
- artifactEnd?: (args: {
243
- config: Config;
244
- document: Document;
245
- }) => void;
246
- /**
247
- * Specify the plugins that should be added to the user's client because
248
- * of this plugin.
249
- */
250
- clientPlugins?: Record<string, null | Record<string, any>> | ((config: ConfigFile, pluginConfig: any) => Record<string, null | Record<string, any>>);
251
- /**
252
- * A hook to transform the source file to support desired APIs.
253
- */
254
- transformFile?: (page: TransformPage) => Promise<{
255
- code: string;
256
- map?: SourceMapInput | string;
257
- }> | {
258
- code: string;
259
- map?: SourceMapInput | string;
260
- };
261
- vite?: {
262
- config?: (config: Config, env: ConfigEnv) => UserConfig | Promise<UserConfig>;
263
- buildStart?: (this: PluginContext, options: NormalizedInputOptions & {
264
- houdiniConfig: Config;
265
- }) => void | Promise<void>;
266
- buildEnd?: (this: PluginContext, error?: Error, houdiniConfig?: Config) => void | Promise<void>;
267
- closeBundle?: (this: PluginContext, config: Config) => void | Promise<void>;
268
- configResolved?: ObjectHook<(this: void, config: ResolvedConfig) => void | Promise<void>>;
269
- options?: (this: MinimalPluginContext, options: InputOptions & {
270
- houdiniConfig: Config;
271
- }) => InputOptions | NullValue;
272
- resolveId?: ObjectHook<(this: PluginContext, source: string, importer: string | undefined, options: {
273
- config: Config;
274
- custom?: CustomPluginOptions;
275
- ssr?: boolean;
276
- isEntry: boolean;
277
- }) => Promise<ResolveIdResult> | ResolveIdResult>;
278
- load?: ObjectHook<(this: PluginContext, id: string, options: {
279
- config: Config;
280
- ssr?: boolean;
281
- }) => Promise<LoadResult> | LoadResult>;
282
- configureServer?: ObjectHook<(this: void, server: ViteDevServer & {
283
- houdiniConfig: Config;
284
- }) => (() => void) | void | Promise<(() => void) | void>, {}> | undefined;
285
- };
67
+ export declare const PaginateMode: {
68
+ readonly Infinite: "Infinite";
69
+ readonly SinglePage: "SinglePage";
70
+ };
71
+ type ValuesOf<T> = T[keyof T];
72
+ export type PaginateModes = ValuesOf<typeof PaginateMode>;
73
+ export declare const CachePolicy: {
74
+ readonly CacheOrNetwork: "CacheOrNetwork";
75
+ readonly CacheOnly: "CacheOnly";
76
+ readonly NetworkOnly: "NetworkOnly";
77
+ readonly CacheAndNetwork: "CacheAndNetwork";
78
+ readonly NoCache: "NoCache";
286
79
  };
287
- type ModuleIndexTransform = (arg: {
80
+ export type CachePolicies = ValuesOf<typeof CachePolicy>;
81
+ export type Maybe<T> = T | null | undefined;
82
+ export type Script = Program;
83
+ type Program = recast.types.namedTypes.Program;
84
+ export interface TransformPage {
288
85
  config: Config;
289
86
  content: string;
290
- exportDefaultAs(args: {
291
- module: string;
292
- as: string;
293
- }): string;
294
- exportStarFrom(args: {
295
- module: string;
296
- }): string;
297
- pluginRoot: string;
298
- typedef: boolean;
299
- documents: Document[];
300
- }) => string;
301
- export type GenerateHook = (args: GenerateHookInput) => Promise<void> | void;
302
- export type GenerateHookInput = {
303
- config: Config;
304
- documents: Document[];
305
- pluginRoot: string;
87
+ map?: SourceMapInput;
88
+ filepath: string;
89
+ watch_file: (path: string) => void;
90
+ }
91
+ export declare const ArtifactKind: {
92
+ readonly Query: "HoudiniQuery";
93
+ readonly Subscription: "HoudiniSubscription";
94
+ readonly Mutation: "HoudiniMutation";
95
+ readonly Fragment: "HoudiniFragment";
306
96
  };
307
- export type PluginConfig = {
308
- configPath?: string;
309
- adapter?: Adapter;
310
- } & Partial<ConfigFile>;
311
- export * from '../runtime/lib/types';
312
- export * from '../runtime/lib/config';
313
- export * from '../runtime/client';
314
- export type ValueMap = Record<string, graphql.ValueNode>;
97
+ export type ArtifactKinds = ValuesOf<typeof ArtifactKind>;
98
+ export declare const CompiledFragmentKind: "HoudiniFragment";
99
+ export declare const CompiledMutationKind: "HoudiniMutation";
100
+ export declare const CompiledQueryKind: "HoudiniQuery";
101
+ export declare const CompiledSubscriptionKind: "HoudiniSubscription";
102
+ export type CompiledDocumentKind = ArtifactKinds;
103
+ export {};
@@ -0,0 +1,37 @@
1
+ const LogLevel = {
2
+ Quiet: "quiet",
3
+ Summary: "summary",
4
+ ShortSummary: "short-summary",
5
+ Verbose: "full"
6
+ };
7
+ const PaginateMode = {
8
+ Infinite: "Infinite",
9
+ SinglePage: "SinglePage"
10
+ };
11
+ const CachePolicy = {
12
+ CacheOrNetwork: "CacheOrNetwork",
13
+ CacheOnly: "CacheOnly",
14
+ NetworkOnly: "NetworkOnly",
15
+ CacheAndNetwork: "CacheAndNetwork",
16
+ NoCache: "NoCache"
17
+ };
18
+ const ArtifactKind = {
19
+ Query: "HoudiniQuery",
20
+ Subscription: "HoudiniSubscription",
21
+ Mutation: "HoudiniMutation",
22
+ Fragment: "HoudiniFragment"
23
+ };
24
+ const CompiledFragmentKind = ArtifactKind.Fragment;
25
+ const CompiledMutationKind = ArtifactKind.Mutation;
26
+ const CompiledQueryKind = ArtifactKind.Query;
27
+ const CompiledSubscriptionKind = ArtifactKind.Subscription;
28
+ export {
29
+ ArtifactKind,
30
+ CachePolicy,
31
+ CompiledFragmentKind,
32
+ CompiledMutationKind,
33
+ CompiledQueryKind,
34
+ CompiledSubscriptionKind,
35
+ LogLevel,
36
+ PaginateMode
37
+ };
@@ -1,8 +1,12 @@
1
- import type { BaseNode } from 'estree-walker';
1
+ export type BaseNode = {
2
+ type: string;
3
+ start?: number;
4
+ end?: number;
5
+ };
2
6
  import * as graphql from 'graphql';
3
- import type { CompiledDocumentKind } from '../runtime/lib/types';
4
- import type { Config } from './config';
5
- import type { Script } from './types';
7
+ import type { Config } from './config.js';
8
+ import type { CompiledDocumentKind } from './types.js';
9
+ import { type Script } from './types.js';
6
10
  export type EmbeddedGraphqlDocument = {
7
11
  parsedDocument: graphql.DocumentNode;
8
12
  artifact: {
@@ -14,16 +18,17 @@ export type EmbeddedGraphqlDocument = {
14
18
  replaceWith: (node: BaseNode) => void;
15
19
  };
16
20
  tagContent: string;
17
- parent: BaseNode;
21
+ parent: BaseNode | null;
18
22
  };
19
23
  type GraphqlTagWalker = {
20
24
  skipGraphqlType?: boolean;
21
25
  where?: (tag: graphql.DocumentNode, ast: {
22
26
  node: BaseNode;
23
- parent: BaseNode;
27
+ parent: BaseNode | null;
24
28
  }) => boolean;
25
29
  dependency?: (fp: string) => void;
26
30
  tag: (tag: EmbeddedGraphqlDocument) => void | Promise<void>;
27
31
  };
28
32
  export declare function find_graphql(config: Config, parsedScript: Script, walker: GraphqlTagWalker): Promise<void>;
33
+ export declare function extractDefinition(document: graphql.DocumentNode): graphql.ExecutableDefinitionNode;
29
34
  export {};
@@ -0,0 +1,138 @@
1
+ import { asyncWalk } from "estree-walker";
2
+ import * as graphql from "graphql";
3
+ import {
4
+ CompiledFragmentKind,
5
+ CompiledMutationKind,
6
+ CompiledQueryKind,
7
+ CompiledSubscriptionKind
8
+ } from "./types.js";
9
+ async function find_graphql(config, parsedScript, walker) {
10
+ await asyncWalk(parsedScript, {
11
+ async enter(node, parent) {
12
+ if (node.type !== "TaggedTemplateExpression" && node.type !== "CallExpression" && node.type !== "TSPropertySignature" && node.type !== "VariableDeclaration") {
13
+ return;
14
+ }
15
+ let documentString = "";
16
+ let _propName = "";
17
+ if (node.type === "TaggedTemplateExpression") {
18
+ const expr = node;
19
+ if (expr.tag.type !== "Identifier" || expr.tag.name !== "graphql") {
20
+ return;
21
+ }
22
+ documentString = expr.quasi.quasis[0].value.raw;
23
+ } else if (node.type === "CallExpression") {
24
+ const expr = node;
25
+ if (expr.callee.type !== "Identifier" || expr.callee.name !== "graphql" || expr.arguments.length !== 1) {
26
+ return;
27
+ }
28
+ const argument = expr.arguments[0];
29
+ if (argument.type === "TemplateLiteral") {
30
+ documentString = argument.quasis[0].value.raw;
31
+ } else if (argument.type === "StringLiteral") {
32
+ documentString = argument.value;
33
+ } else {
34
+ return;
35
+ }
36
+ } else if (node.type === "TSPropertySignature" && !walker.skipGraphqlType) {
37
+ const signature = node;
38
+ if (signature.typeAnnotation?.typeAnnotation?.type !== "TSTypeReference") {
39
+ return;
40
+ }
41
+ const annotation = signature.typeAnnotation?.typeAnnotation;
42
+ if (annotation.typeName.type !== "Identifier") {
43
+ return;
44
+ }
45
+ if (annotation.typeName.name !== "GraphQL") {
46
+ return;
47
+ }
48
+ if (annotation.typeParameters?.params[0].type !== "TSLiteralType") {
49
+ return;
50
+ }
51
+ const literal = annotation.typeParameters?.params[0];
52
+ if (literal.literal.type === "StringLiteral") {
53
+ documentString = literal.literal.value;
54
+ } else if (literal.literal.type === "TemplateLiteral") {
55
+ documentString = literal.literal.quasis[0].value.raw;
56
+ }
57
+ if (signature.key.type === "Identifier") {
58
+ _propName = signature.key.name;
59
+ }
60
+ } else if (!documentString) {
61
+ return;
62
+ }
63
+ const parsedTag = graphql.parse(documentString);
64
+ if (walker.where && !walker.where(parsedTag, { node, parent })) {
65
+ return;
66
+ }
67
+ let anonOkay = false;
68
+ let definitions = [
69
+ { raw: documentString, parsed: extractDefinition(parsedTag) }
70
+ ];
71
+ const name = definitions[0].parsed.name?.value;
72
+ let kind;
73
+ if (definitions[0].parsed.kind === "FragmentDefinition") {
74
+ kind = CompiledFragmentKind;
75
+ } else {
76
+ if (definitions[0].parsed.operation === "query") {
77
+ kind = CompiledQueryKind;
78
+ } else if (definitions[0].parsed.operation === "mutation") {
79
+ kind = CompiledMutationKind;
80
+ } else {
81
+ kind = CompiledSubscriptionKind;
82
+ }
83
+ }
84
+ if (kind === CompiledQueryKind) {
85
+ anonOkay = definitions[0].parsed.selectionSet.selections.every(
86
+ (selection) => selection.kind === "InlineFragment" && selection.directives?.find(
87
+ (directive) => directive.name.value === "componentField"
88
+ )
89
+ );
90
+ if (name) {
91
+ definitions = [{ parsed: definitions[0].parsed, raw: definitions[0].raw }];
92
+ }
93
+ }
94
+ if (!name && !anonOkay) {
95
+ throw new Error("Could not find definition name");
96
+ }
97
+ walker.dependency?.(config.artifactPath(parsedTag));
98
+ for (const definition of definitions) {
99
+ const name2 = definition.parsed.name?.value;
100
+ if (!name2) {
101
+ continue;
102
+ }
103
+ await walker.tag({
104
+ parsedDocument: {
105
+ kind: graphql.Kind.DOCUMENT,
106
+ definitions: [definition.parsed]
107
+ },
108
+ node: {
109
+ ...node,
110
+ ...this,
111
+ remove: this.remove,
112
+ replaceWith: this.replace
113
+ },
114
+ artifact: {
115
+ name: name2,
116
+ kind
117
+ },
118
+ parent,
119
+ tagContent: definition.raw
120
+ });
121
+ }
122
+ }
123
+ });
124
+ }
125
+ function extractDefinition(document) {
126
+ if (document.definitions.length !== 1) {
127
+ throw new Error("Encountered document with multiple definitions");
128
+ }
129
+ const definition = document.definitions[0];
130
+ if (definition.kind !== "OperationDefinition" && definition.kind !== "FragmentDefinition") {
131
+ throw new Error("Encountered document without a fragment or operation definition");
132
+ }
133
+ return definition;
134
+ }
135
+ export {
136
+ extractDefinition,
137
+ find_graphql
138
+ };
@@ -0,0 +1,44 @@
1
+ import { type Db } from '../lib/db.js';
2
+ export type { Db } from '../lib/db.js';
3
+ export type PipelineHook = 'config' | 'afterLoad' | 'schema' | 'extractDocuments' | 'afterExtract' | 'beforeValidate' | 'validate' | 'afterValidate' | 'beforeGenerate' | 'generateDocuments' | 'generateRuntime' | 'afterGenerate' | 'environment' | 'indexFile';
4
+ export type PluginContext = {
5
+ taskId: string;
6
+ pluginDirectory: string;
7
+ db: Db;
8
+ invokeHook(hook: string, payload?: Record<string, any>, options?: {
9
+ parallel?: boolean;
10
+ }): Promise<Record<string, any>>;
11
+ };
12
+ export type TransformFn = (source: string, content: string) => Promise<string> | string;
13
+ export type HookHandler = (ctx: PluginContext, payload: Record<string, any>) => Promise<Record<string, any> | string[] | string | undefined> | Record<string, any> | string[] | string | undefined;
14
+ export type NodePluginConfig = {
15
+ name: string;
16
+ order: 'before' | 'after' | 'core';
17
+ hooks: Partial<Record<PipelineHook, HookHandler>>;
18
+ includeRuntime?: string;
19
+ staticRuntime?: string;
20
+ transformRuntime?: TransformFn;
21
+ transformStaticRuntime?: TransformFn;
22
+ configModule?: string;
23
+ clientPlugins?: Record<string, any>;
24
+ };
25
+ export declare class PluginError extends Error {
26
+ detail?: string;
27
+ locations?: Array<{
28
+ filepath: string;
29
+ line?: number;
30
+ column?: number;
31
+ }>;
32
+ kind?: string;
33
+ constructor(opts: {
34
+ message: string;
35
+ detail?: string;
36
+ locations?: Array<{
37
+ filepath: string;
38
+ line?: number;
39
+ column?: number;
40
+ }>;
41
+ kind?: string;
42
+ });
43
+ }
44
+ export declare function plugin(config: NodePluginConfig): void;