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
@@ -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
+ };