houdini 2.0.0-next.9 → 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 (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 +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 -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
@@ -4,18 +4,18 @@
4
4
  * Copyright(c) 2015 Douglas Christopher Wilson
5
5
  * MIT Licensed
6
6
  */
7
- let __toString = Object.prototype.toString;
8
- let fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
7
+ const __toString = Object.prototype.toString;
8
+ const fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;
9
9
  function parse(str, options) {
10
10
  if (typeof str !== "string") {
11
11
  throw new TypeError("argument str must be a string");
12
12
  }
13
- let obj = {};
14
- let opt = options || {};
15
- let dec = opt.decode || decode;
13
+ const obj = {};
14
+ const opt = options || {};
15
+ const dec = opt.decode || decode;
16
16
  let index = 0;
17
17
  while (index < str.length) {
18
- let eqIdx = str.indexOf("=", index);
18
+ const eqIdx = str.indexOf("=", index);
19
19
  if (eqIdx === -1) {
20
20
  break;
21
21
  }
@@ -26,7 +26,7 @@ function parse(str, options) {
26
26
  index = str.lastIndexOf(";", eqIdx - 1) + 1;
27
27
  continue;
28
28
  }
29
- let key = str.slice(index, eqIdx).trim();
29
+ const key = str.slice(index, eqIdx).trim();
30
30
  if (void 0 === obj[key]) {
31
31
  let val = str.slice(eqIdx + 1, endIdx).trim();
32
32
  if (val.charCodeAt(0) === 34) {
@@ -39,44 +39,44 @@ function parse(str, options) {
39
39
  return obj;
40
40
  }
41
41
  function serialize(name, val, options) {
42
- let opt = options || {};
43
- let enc = opt.encode || encode;
42
+ const opt = options || {};
43
+ const enc = opt.encode || encode;
44
44
  if (typeof enc !== "function") {
45
45
  throw new TypeError("option encode is invalid");
46
46
  }
47
47
  if (!fieldContentRegExp.test(name)) {
48
48
  throw new TypeError("argument name is invalid");
49
49
  }
50
- let value = enc(val);
50
+ const value = enc(val);
51
51
  if (value && !fieldContentRegExp.test(value)) {
52
52
  throw new TypeError("argument val is invalid");
53
53
  }
54
- let str = name + "=" + value;
54
+ let str = `${name}=${value}`;
55
55
  if (opt.maxAge) {
56
- let maxAge = opt.maxAge - 0;
57
- if (Number.isNaN(maxAge) || !isFinite(maxAge)) {
56
+ const maxAge = opt.maxAge - 0;
57
+ if (Number.isNaN(maxAge) || !Number.isFinite(maxAge)) {
58
58
  throw new TypeError("option maxAge is invalid");
59
59
  }
60
- str += "; Max-Age=" + Math.floor(maxAge);
60
+ str += `; Max-Age=${Math.floor(maxAge)}`;
61
61
  }
62
62
  if (opt.domain) {
63
63
  if (!fieldContentRegExp.test(opt.domain)) {
64
64
  throw new TypeError("option domain is invalid");
65
65
  }
66
- str += "; Domain=" + opt.domain;
66
+ str += `; Domain=${opt.domain}`;
67
67
  }
68
68
  if (opt.path) {
69
69
  if (!fieldContentRegExp.test(opt.path)) {
70
70
  throw new TypeError("option path is invalid");
71
71
  }
72
- str += "; Path=" + opt.path;
72
+ str += `; Path=${opt.path}`;
73
73
  }
74
74
  if (opt.expires) {
75
- let expires = opt.expires;
75
+ const expires = opt.expires;
76
76
  if (!isDate(expires) || Number.isNaN(expires.valueOf())) {
77
77
  throw new TypeError("option expires is invalid");
78
78
  }
79
- str += "; Expires=" + expires.toUTCString();
79
+ str += `; Expires=${expires.toUTCString()}`;
80
80
  }
81
81
  if (opt.httpOnly) {
82
82
  str += "; HttpOnly";
@@ -85,7 +85,7 @@ function serialize(name, val, options) {
85
85
  str += "; Secure";
86
86
  }
87
87
  if (opt.priority) {
88
- let priority = typeof opt.priority === "string" ? opt.priority.toLowerCase() : opt.priority;
88
+ const priority = typeof opt.priority === "string" ? opt.priority.toLowerCase() : opt.priority;
89
89
  switch (priority) {
90
90
  case "low":
91
91
  str += "; Priority=Low";
@@ -101,7 +101,7 @@ function serialize(name, val, options) {
101
101
  }
102
102
  }
103
103
  if (opt.sameSite) {
104
- let sameSite = typeof opt.sameSite === "string" ? opt.sameSite.toLowerCase() : opt.sameSite;
104
+ const sameSite = typeof opt.sameSite === "string" ? opt.sameSite.toLowerCase() : opt.sameSite;
105
105
  switch (sameSite) {
106
106
  case true:
107
107
  str += "; SameSite=Strict";
@@ -133,7 +133,7 @@ function isDate(val) {
133
133
  function tryDecode(str, decode2) {
134
134
  try {
135
135
  return decode2(str);
136
- } catch (e) {
136
+ } catch (_e) {
137
137
  return str;
138
138
  }
139
139
  }
@@ -1,14 +1,12 @@
1
1
  function base64UrlParse(s) {
2
2
  return new Uint8Array(
3
- // @ts-ignore
4
- Array.prototype.map.call(
5
- atob(s.replace(/-/g, "+").replace(/_/g, "/").replace(/\s/g, "")),
3
+ Array.from(atob(s.replace(/-/g, "+").replace(/_/g, "/").replace(/\s/g, ""))).map(
6
4
  (c) => c.charCodeAt(0)
7
5
  )
8
6
  );
9
7
  }
10
8
  function base64UrlStringify(a) {
11
- return btoa(String.fromCharCode.apply(0, a)).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
9
+ return btoa(String.fromCharCode.apply(0, Array.from(a))).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
12
10
  }
13
11
  const algorithms = {
14
12
  ES256: { name: "ECDSA", namedCurve: "P-256", hash: { name: "SHA-256" } },
@@ -44,7 +42,7 @@ function _decodePayload(raw) {
44
42
  raw += "=";
45
43
  break;
46
44
  default:
47
- throw new Error("Illegal base64url string!" + raw);
45
+ throw new Error(`Illegal base64url string!${raw}`);
48
46
  }
49
47
  try {
50
48
  return JSON.parse(decodeURIComponent(escape(atob(raw))));
@@ -79,7 +77,11 @@ async function encode(payload, secret, options = { algorithm: "HS256", header: {
79
77
  );
80
78
  } else keyData = _utf8ToUint8Array(secret);
81
79
  const key = await crypto.subtle.importKey(keyFormat, keyData, algorithm, false, ["sign"]);
82
- const signature = await crypto.subtle.sign(algorithm, key, _utf8ToUint8Array(partialToken));
80
+ const signature = await crypto.subtle.sign(
81
+ algorithm,
82
+ key,
83
+ _utf8ToUint8Array(partialToken)
84
+ );
83
85
  return `${partialToken}.${base64UrlStringify(new Uint8Array(signature))}`;
84
86
  }
85
87
  async function verify(token, secret, options = { algorithm: "HS256", throwError: false }) {
@@ -1,5 +1,5 @@
1
- import type { ProjectManifest, PageManifest, QueryManifest } from '../../runtime/lib/types';
2
- import type { Config } from '../config';
1
+ import type { Config } from '../lib/config.js';
2
+ import type { ProjectManifest, PageManifest, QueryManifest } from '../lib/types.js';
3
3
  export type { ProjectManifest, PageManifest, QueryManifest };
4
4
  /**
5
5
  * Walk down the routes directory and build a normalized description of the project's
@@ -0,0 +1,279 @@
1
+ import * as t from "@babel/types";
2
+ import * as graphql from "graphql";
3
+ import * as fs from "../lib/fs.js";
4
+ import { unwrapType } from "../lib/graphql.js";
5
+ import { parseJS } from "../lib/parse.js";
6
+ import * as path from "../lib/path.js";
7
+ import {
8
+ read_layoutQuery,
9
+ read_layoutView,
10
+ read_pageView,
11
+ read_pageQuery,
12
+ page_id
13
+ } from "./conventions.js";
14
+ import { parse_page_pattern } from "./match.js";
15
+ async function load_manifest(args) {
16
+ const manifest = await walk_routes({
17
+ config: args.config,
18
+ url: "/",
19
+ filepath: args.config.routes_dir,
20
+ project: {
21
+ component_fields: {},
22
+ pages: {},
23
+ layouts: {},
24
+ page_queries: {},
25
+ layout_queries: {},
26
+ artifacts: [],
27
+ local_schema: false,
28
+ local_yoga: false
29
+ },
30
+ queries: [],
31
+ layouts: [],
32
+ variables: {}
33
+ });
34
+ if (args.includeArtifacts) {
35
+ try {
36
+ for (const artifactPath of await fs.readdir(args.config.artifact_dir)) {
37
+ if (!artifactPath.endsWith(".js") || artifactPath === "index.js") {
38
+ continue;
39
+ }
40
+ manifest.artifacts.push(artifactPath.substring(0, artifactPath.length - 3));
41
+ }
42
+ } catch {
43
+ }
44
+ }
45
+ try {
46
+ await fs.stat(args.config.localApiDir);
47
+ for (const child of await fs.readdir(args.config.localApiDir, {
48
+ withFileTypes: true
49
+ })) {
50
+ const name = child.isDirectory() ? child.name : path.parse(child.name).name;
51
+ if (name === "+schema") {
52
+ manifest.local_schema = true;
53
+ } else if (name === "+yoga") {
54
+ manifest.local_yoga = true;
55
+ }
56
+ }
57
+ } catch {
58
+ }
59
+ return manifest;
60
+ }
61
+ async function walk_routes(args) {
62
+ const directory_contents = await fs.readdir(args.filepath, {
63
+ withFileTypes: true
64
+ });
65
+ const variables = { ...args.variables };
66
+ let newLayouts = args.layouts;
67
+ let newLayoutQueries = args.queries;
68
+ let layout = null;
69
+ let layoutQuery = null;
70
+ let pageQuery = null;
71
+ const [
72
+ [layoutQueryPath, layoutQueryContents],
73
+ [layoutViewPath, layoutViewContents],
74
+ [pageQueryPath, pageQueryContents],
75
+ [pageViewPath, pageViewContents]
76
+ ] = await Promise.all([
77
+ read_layoutQuery(args.filepath),
78
+ read_layoutView(args.filepath),
79
+ read_pageQuery(args.filepath),
80
+ read_pageView(args.filepath)
81
+ ]);
82
+ if (layoutQueryContents) {
83
+ layoutQuery = await add_query({
84
+ path: layoutQueryPath,
85
+ config: args.config,
86
+ url: args.url,
87
+ project: args.project,
88
+ type: "layout",
89
+ contents: layoutQueryContents,
90
+ variables
91
+ });
92
+ newLayoutQueries = [...args.queries, layoutQuery.name];
93
+ }
94
+ if (layoutViewContents) {
95
+ layout = await add_view({
96
+ url: args.url,
97
+ path: layoutViewPath,
98
+ project: args.project,
99
+ type: "layout",
100
+ contents: layoutViewContents,
101
+ layouts: args.layouts,
102
+ queries: newLayoutQueries,
103
+ config: args.config,
104
+ variables
105
+ });
106
+ newLayouts = [...args.layouts, page_id(layout.url)];
107
+ }
108
+ if (pageQueryContents) {
109
+ pageQuery = await add_query({
110
+ path: pageQueryPath,
111
+ config: args.config,
112
+ url: args.url,
113
+ project: args.project,
114
+ type: "page",
115
+ contents: pageQueryContents,
116
+ variables
117
+ });
118
+ }
119
+ if (pageViewContents) {
120
+ await add_view({
121
+ path: pageViewPath,
122
+ url: args.url.substring(0, args.url.length - 1) || "/",
123
+ project: args.project,
124
+ type: "page",
125
+ contents: pageViewContents,
126
+ layouts: newLayouts,
127
+ queries: pageQuery ? [...newLayoutQueries, pageQuery.name] : newLayoutQueries,
128
+ config: args.config,
129
+ variables
130
+ });
131
+ }
132
+ await Promise.all(
133
+ directory_contents.map((dir) => {
134
+ if (!dir.isDirectory()) {
135
+ return null;
136
+ }
137
+ return walk_routes({
138
+ ...args,
139
+ filepath: path.join(args.filepath, dir.name),
140
+ url: `${args.url}${dir.name}/`,
141
+ queries: newLayoutQueries,
142
+ layouts: newLayouts,
143
+ variables
144
+ });
145
+ })
146
+ );
147
+ return args.project;
148
+ }
149
+ async function add_view(args) {
150
+ const target = args.type === "page" ? args.project.pages : args.project.layouts;
151
+ const queries = await extractQueries(args.contents);
152
+ const missing_queries = queries.filter((query) => !args.queries.includes(query));
153
+ if (missing_queries.length > 0) {
154
+ throw {
155
+ message: `Unknown queries in ${args.path}: ${missing_queries.join(", ")}`
156
+ };
157
+ }
158
+ const id = page_id(args.url);
159
+ target[id] = {
160
+ id,
161
+ queries,
162
+ url: args.url,
163
+ layouts: args.layouts,
164
+ path: path.relative(args.config.root_dir, args.path),
165
+ query_options: args.queries,
166
+ params: Object.fromEntries(
167
+ parse_page_pattern(args.url).params.map((param) => [
168
+ param.name,
169
+ args.variables[param.name] ?? null
170
+ ])
171
+ )
172
+ };
173
+ return target[id];
174
+ }
175
+ async function add_query(args) {
176
+ const parsed = graphql.parse(args.contents);
177
+ const query = parsed.definitions.find(
178
+ (def) => def.kind === "OperationDefinition" && def.operation === "query"
179
+ );
180
+ if (!query?.name) {
181
+ throw new Error("No query found");
182
+ }
183
+ let loading = false;
184
+ await graphql.visit(parsed, {
185
+ Directive(node) {
186
+ if (node.name.value === "loading") {
187
+ loading = true;
188
+ }
189
+ }
190
+ });
191
+ const queryVariables = Object.fromEntries(
192
+ query.variableDefinitions?.map((variable) => {
193
+ const { type, wrappers } = unwrapType(args.config, variable.type, [], true);
194
+ return [
195
+ variable.variable.name.value,
196
+ { wrappers, type: type.name }
197
+ ];
198
+ }) ?? []
199
+ );
200
+ Object.assign(args.variables, queryVariables);
201
+ const target = args.type === "page" ? args.project.page_queries : args.project.layout_queries;
202
+ target[page_id(args.url)] = {
203
+ path: path.relative(args.config.routes_dir, args.path),
204
+ name: query.name.value,
205
+ url: args.url,
206
+ loading,
207
+ variables: queryVariables
208
+ };
209
+ return target[page_id(args.url)];
210
+ }
211
+ async function extractQueries(source) {
212
+ const ast = parseJS(source, { plugins: ["jsx"] });
213
+ let defaultExportNode = null;
214
+ let defaultExportIdentifier = null;
215
+ for (const n of ast.body) {
216
+ const node = n;
217
+ if (t.isExportDefaultDeclaration(node)) {
218
+ if (t.isFunctionDeclaration(node.declaration) || t.isArrowFunctionExpression(node.declaration) || t.isFunctionExpression(node.declaration)) {
219
+ defaultExportNode = node.declaration;
220
+ break;
221
+ } else if (t.isIdentifier(node.declaration)) {
222
+ defaultExportIdentifier = node.declaration.name;
223
+ }
224
+ }
225
+ }
226
+ if (defaultExportIdentifier) {
227
+ for (const n of ast.body) {
228
+ const node = n;
229
+ if (t.isVariableDeclaration(node)) {
230
+ for (const declaration of node.declarations) {
231
+ if (t.isVariableDeclarator(declaration) && t.isIdentifier(declaration.id) && declaration.id.name === defaultExportIdentifier) {
232
+ if (t.isArrowFunctionExpression(declaration.init) || t.isFunctionExpression(declaration.init)) {
233
+ defaultExportNode = declaration.init;
234
+ break;
235
+ } else if (t.isTSAsExpression(declaration.init) && (t.isArrowFunctionExpression(declaration.init.expression) || t.isFunctionExpression(declaration.init.expression))) {
236
+ defaultExportNode = declaration.init.expression;
237
+ break;
238
+ }
239
+ }
240
+ }
241
+ }
242
+ }
243
+ }
244
+ if (!defaultExportNode) {
245
+ return [];
246
+ }
247
+ const props = [];
248
+ const componentFunction = defaultExportNode;
249
+ if (componentFunction && componentFunction.params.length > 0) {
250
+ const firstParam = componentFunction.params[0];
251
+ if (t.isObjectPattern(firstParam)) {
252
+ for (const property of firstParam.properties) {
253
+ if (t.isObjectProperty(property) && t.isIdentifier(property.key)) {
254
+ props.push(property.key.name);
255
+ }
256
+ }
257
+ } else {
258
+ throw new Error("Props should be specified as an object pattern.");
259
+ }
260
+ } else {
261
+ return [];
262
+ }
263
+ return props.reduce((queries, query) => {
264
+ if (query === "children") {
265
+ return queries;
266
+ }
267
+ if (query.endsWith("$handle")) {
268
+ query = query.substring(0, query.length - "$handle".length);
269
+ }
270
+ if (queries.includes(query)) {
271
+ return queries;
272
+ }
273
+ return queries.concat([query]);
274
+ }, []);
275
+ }
276
+ export {
277
+ extractQueries,
278
+ load_manifest
279
+ };
@@ -1,18 +1,16 @@
1
- import type { GraphQLVariables } from '$houdini/runtime/lib/types';
2
- import { type ConfigFile } from '../lib';
3
- import type { RouterManifest, RouterPageManifest } from './types';
1
+ import type { RouterManifest, RouterPageManifest } from './types.js';
2
+ type GraphQLScalar = string | number | boolean | null;
3
+ type GraphQLVariables = Record<string, GraphQLScalar | GraphQLScalar[]> | null;
4
4
  export type RouteParam = {
5
5
  name: string;
6
- matcher: string;
7
6
  optional: boolean;
8
7
  rest: boolean;
9
8
  chained: boolean;
9
+ type?: string;
10
10
  };
11
- export interface ParamMatcher {
12
- (param: string): boolean;
13
- }
14
- export declare function find_match<_ComponentType>(config: ConfigFile, manifest: RouterManifest<_ComponentType>, current: string, allowNull: true): [RouterPageManifest<_ComponentType> | null, GraphQLVariables];
15
- export declare function find_match<_ComponentType>(config: ConfigFile, manifest: RouterManifest<_ComponentType>, current: string, allowNull?: false): [RouterPageManifest<_ComponentType>, GraphQLVariables];
11
+ export declare function find_prefix_match<_ComponentType>(manifest: RouterManifest<_ComponentType>, url: string): RouterPageManifest<_ComponentType> | null;
12
+ export declare function find_match<_ComponentType>(manifest: RouterManifest<_ComponentType>, current: string, allowNull: true): [RouterPageManifest<_ComponentType> | null, GraphQLVariables, Record<string, any>];
13
+ export declare function find_match<_ComponentType>(manifest: RouterManifest<_ComponentType>, current: string, allowNull?: false): [RouterPageManifest<_ComponentType>, GraphQLVariables, Record<string, any>];
16
14
  /**
17
15
  * Creates the regex pattern, extracts parameter names, and generates types for a route
18
16
  */
@@ -27,7 +25,9 @@ export declare function parse_page_pattern(id: string): {
27
25
  * and will be returned as `['']`.
28
26
  */
29
27
  export declare function get_route_segments(route: string): string[];
30
- export declare function exec(match: RegExpMatchArray, params: RouteParam[]): Record<string, string> | undefined;
28
+ export declare function exec(match: RegExpMatchArray, params: readonly RouteParam[]): Record<string, string> | undefined;
29
+ export declare function parseScalar(type: string, value?: string): string | number | boolean | undefined;
30
+ export {};
31
31
  /**
32
32
  Copyright (c) 2020 [these people](https://github.com/sveltejs/kit/graphs/contributors)
33
33
 
@@ -0,0 +1,219 @@
1
+ const param_pattern = /^(\[)?(\.\.\.)?(\w+)(\])?$/;
2
+ function find_prefix_match(manifest, url) {
3
+ const path = url.split("?")[0];
4
+ const urlSegments = path.split("/").filter(Boolean);
5
+ let best = null;
6
+ let bestCount = -1;
7
+ for (const page of Object.values(manifest.pages)) {
8
+ const pageSegments = page.url.split("/").filter(Boolean);
9
+ let staticCount = 0;
10
+ for (const seg of pageSegments) {
11
+ if (seg.startsWith("[") || seg.startsWith("(") || seg === "*") break;
12
+ staticCount++;
13
+ }
14
+ if (staticCount > urlSegments.length) continue;
15
+ let matches = true;
16
+ for (let i = 0; i < staticCount; i++) {
17
+ if (pageSegments[i] !== urlSegments[i]) {
18
+ matches = false;
19
+ break;
20
+ }
21
+ }
22
+ if (matches && staticCount > bestCount) {
23
+ bestCount = staticCount;
24
+ best = page;
25
+ }
26
+ }
27
+ return best;
28
+ }
29
+ function find_match(manifest, current, allowNull = true) {
30
+ const queryIndex = current.indexOf("?");
31
+ const path = queryIndex === -1 ? current : current.slice(0, queryIndex);
32
+ const search = queryIndex === -1 ? "" : current.slice(queryIndex + 1);
33
+ let match = null;
34
+ let matchVariables = null;
35
+ for (const page of Object.values(manifest.pages)) {
36
+ const urlMatch = path.match(page.pattern);
37
+ if (!urlMatch) {
38
+ continue;
39
+ }
40
+ match = page;
41
+ matchVariables = exec(urlMatch, page.params) || {};
42
+ break;
43
+ }
44
+ if (!match && !allowNull) {
45
+ throw new Error("404");
46
+ }
47
+ const variables = {
48
+ ...matchVariables
49
+ };
50
+ for (const document of Object.values(match?.documents ?? {})) {
51
+ for (const [variable, { type }] of Object.entries(document.variables)) {
52
+ if (matchVariables?.[variable]) {
53
+ variables[variable] = parseScalar(
54
+ type,
55
+ matchVariables[variable]
56
+ );
57
+ }
58
+ }
59
+ }
60
+ const searchObject = {};
61
+ if (search) {
62
+ const searchParams = new URLSearchParams(search);
63
+ for (const key of new Set(searchParams.keys())) {
64
+ const values = searchParams.getAll(key);
65
+ searchObject[key] = values.length > 1 ? values : values[0];
66
+ }
67
+ for (const { name, type, wrappers } of match?.searchParams ?? []) {
68
+ if (variables[name] != null) {
69
+ continue;
70
+ }
71
+ if (wrappers.includes("List")) {
72
+ const raw = searchParams.getAll(name);
73
+ if (raw.length === 0) {
74
+ continue;
75
+ }
76
+ variables[name] = raw.map((value) => parseScalar(type, value)).filter((value) => value !== void 0);
77
+ } else if (searchParams.has(name)) {
78
+ const parsed = parseScalar(type, searchParams.get(name) ?? void 0);
79
+ if (parsed !== void 0) {
80
+ variables[name] = parsed;
81
+ }
82
+ }
83
+ if (name in searchObject && variables[name] != null) {
84
+ searchObject[name] = variables[name];
85
+ }
86
+ }
87
+ }
88
+ return [match, variables, searchObject];
89
+ }
90
+ function parse_page_pattern(id) {
91
+ const params = [];
92
+ const pattern = id === "/" ? /^\/$/ : new RegExp(
93
+ `^${get_route_segments(id).map((segment) => {
94
+ const rest_match = /^\[\.\.\.(\w+)\]$/.exec(segment);
95
+ if (rest_match) {
96
+ params.push({
97
+ name: rest_match[1],
98
+ optional: false,
99
+ rest: true,
100
+ chained: true
101
+ });
102
+ return "(?:/(.*))?";
103
+ }
104
+ const optional_match = /^\[\[(\w+)\]\]$/.exec(segment);
105
+ if (optional_match) {
106
+ params.push({
107
+ name: optional_match[1],
108
+ optional: true,
109
+ rest: false,
110
+ chained: true
111
+ });
112
+ return "(?:/([^/]+))?";
113
+ }
114
+ if (!segment) {
115
+ return "";
116
+ }
117
+ const parts = segment.split(/\[(.+?)\](?!\])/);
118
+ const result = parts.map((content, i) => {
119
+ if (i % 2) {
120
+ if (content.startsWith("x+")) {
121
+ return escapeRegex(
122
+ String.fromCharCode(parseInt(content.slice(2), 16))
123
+ );
124
+ }
125
+ if (content.startsWith("u+")) {
126
+ return escapeRegex(
127
+ String.fromCharCode(
128
+ ...content.slice(2).split("-").map((code) => parseInt(code, 16))
129
+ )
130
+ );
131
+ }
132
+ const match = param_pattern.exec(content);
133
+ if (!match) {
134
+ throw new Error(
135
+ `Invalid param: ${content}. Params can only have underscores and alphanumeric characters.`
136
+ );
137
+ }
138
+ const [, is_optional, is_rest, name] = match;
139
+ params.push({
140
+ name,
141
+ optional: !!is_optional,
142
+ rest: !!is_rest,
143
+ chained: is_rest ? i === 1 && parts[0] === "" : false
144
+ });
145
+ return is_rest ? "(.*?)" : is_optional ? "([^/]*)?" : "([^/]+?)";
146
+ }
147
+ return escapeRegex(content);
148
+ }).join("");
149
+ return `/${result}`;
150
+ }).join("")}/?$`
151
+ );
152
+ return { pattern, params, page_id: id };
153
+ }
154
+ function affects_path(segment) {
155
+ return !/^\([^)]+\)$/.test(segment);
156
+ }
157
+ function get_route_segments(route) {
158
+ return route.slice(1).split("/").filter(affects_path);
159
+ }
160
+ function exec(match, params) {
161
+ const result = {};
162
+ const values = match.slice(1);
163
+ let buffered = "";
164
+ for (let i = 0; i < (params || []).length; i += 1) {
165
+ const param = params[i];
166
+ let value = values[i];
167
+ if (param.chained && param.rest && buffered) {
168
+ value = value ? `${buffered}/${value}` : buffered;
169
+ }
170
+ buffered = "";
171
+ if (value === void 0) {
172
+ if (param.rest) result[param.name] = "";
173
+ } else {
174
+ result[param.name] = decodeURIComponent(value);
175
+ }
176
+ }
177
+ if (buffered) return;
178
+ return result;
179
+ }
180
+ function escapeRegex(str) {
181
+ return str.normalize().replace(/[[\]]/g, "\\$&").replace(/%/g, "%25").replace(/\//g, "%2[Ff]").replace(/\?/g, "%3[Ff]").replace(/#/g, "%23").replace(/[.*+?^${}()|\\]/g, "\\$&");
182
+ }
183
+ function parseScalar(type, value) {
184
+ if (typeof value === "undefined") {
185
+ return void 0;
186
+ }
187
+ if (type === "Boolean") {
188
+ return value === "true";
189
+ }
190
+ if (type === "ID") {
191
+ return value;
192
+ }
193
+ if (type === "String") {
194
+ return value;
195
+ }
196
+ if (type === "Int") {
197
+ const result = parseInt(value, 10);
198
+ if (Number.isNaN(result)) {
199
+ return void 0;
200
+ }
201
+ return result;
202
+ }
203
+ if (type === "Float") {
204
+ const result = parseFloat(value);
205
+ if (Number.isNaN(result)) {
206
+ return void 0;
207
+ }
208
+ return result;
209
+ }
210
+ return value;
211
+ }
212
+ export {
213
+ exec,
214
+ find_match,
215
+ find_prefix_match,
216
+ get_route_segments,
217
+ parseScalar,
218
+ parse_page_pattern
219
+ };