soseki 0.0.5 → 0.0.7

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 (352) hide show
  1. package/LICENSE +21 -0
  2. package/dist/src/components/browser-router.d.ts +19 -0
  3. package/dist/src/components/browser-router.d.ts.map +1 -0
  4. package/dist/src/components/browser-router.jsx +15 -0
  5. package/dist/src/components/outlet.d.ts +8 -0
  6. package/dist/src/components/outlet.d.ts.map +1 -0
  7. package/dist/src/components/outlet.jsx +15 -0
  8. package/dist/src/components/router.d.ts +21 -0
  9. package/dist/src/components/router.d.ts.map +1 -0
  10. package/dist/src/components/router.jsx +138 -0
  11. package/dist/src/contexts/route-context.d.ts +19 -0
  12. package/dist/src/contexts/route-context.d.ts.map +1 -0
  13. package/dist/src/contexts/route-context.js +6 -0
  14. package/dist/src/contexts/router-context.d.ts +55 -0
  15. package/dist/src/contexts/router-context.d.ts.map +1 -0
  16. package/dist/src/contexts/router-context.js +8 -0
  17. package/dist/src/core/_compare-route-paths.d.ts +11 -0
  18. package/dist/src/core/_compare-route-paths.d.ts.map +1 -0
  19. package/dist/src/core/_compare-route-paths.js +92 -0
  20. package/dist/src/core/_match-route-path.d.ts +22 -0
  21. package/dist/src/core/_match-route-path.d.ts.map +1 -0
  22. package/dist/src/core/_match-route-path.js +26 -0
  23. package/dist/src/core/_process-routes.d.ts +14 -0
  24. package/dist/src/core/_process-routes.d.ts.map +1 -0
  25. package/dist/src/core/_process-routes.js +45 -0
  26. package/dist/src/core/_singleton.d.ts +12 -0
  27. package/dist/src/core/_singleton.d.ts.map +1 -0
  28. package/dist/src/core/_singleton.js +18 -0
  29. package/dist/src/core/_unreachable.d.ts +16 -0
  30. package/dist/src/core/_unreachable.d.ts.map +1 -0
  31. package/dist/src/core/_unreachable.js +8 -0
  32. package/dist/src/core/_valibot.d.ts +25 -0
  33. package/dist/src/core/_valibot.d.ts.map +1 -0
  34. package/dist/src/core/_valibot.js +30 -0
  35. package/dist/src/core/errors.d.ts +182 -0
  36. package/dist/src/core/errors.d.ts.map +1 -0
  37. package/dist/src/core/errors.js +166 -0
  38. package/dist/src/core/expect-history-entry.d.ts +59 -0
  39. package/dist/src/core/expect-history-entry.d.ts.map +1 -0
  40. package/dist/src/core/expect-history-entry.js +42 -0
  41. package/dist/src/core/form-data-to-html-form-element.d.ts +11 -0
  42. package/dist/src/core/form-data-to-html-form-element.d.ts.map +1 -0
  43. package/dist/src/core/form-data-to-html-form-element.js +31 -0
  44. package/dist/src/core/history-entry-id-schema.d.ts +17 -0
  45. package/dist/src/core/history-entry-id-schema.d.ts.map +1 -0
  46. package/dist/src/core/history-entry-id-schema.js +9 -0
  47. package/dist/src/core/history-entry-url-schema.d.ts +18 -0
  48. package/dist/src/core/history-entry-url-schema.d.ts.map +1 -0
  49. package/dist/src/core/history-entry-url-schema.js +20 -0
  50. package/dist/src/core/init-loaders.d.ts +28 -0
  51. package/dist/src/core/init-loaders.d.ts.map +1 -0
  52. package/dist/src/core/init-loaders.js +30 -0
  53. package/dist/src/core/match-routes.d.ts +28 -0
  54. package/dist/src/core/match-routes.d.ts.map +1 -0
  55. package/dist/src/core/match-routes.js +31 -0
  56. package/dist/src/core/readonly-form-data.types.d.ts +74 -0
  57. package/dist/src/core/readonly-form-data.types.d.ts.map +1 -0
  58. package/dist/src/core/readonly-url.types.d.ts +164 -0
  59. package/dist/src/core/readonly-url.types.d.ts.map +1 -0
  60. package/dist/src/core/redirect-response.d.ts +37 -0
  61. package/dist/src/core/redirect-response.d.ts.map +1 -0
  62. package/dist/src/core/redirect-response.js +19 -0
  63. package/dist/src/core/route-path.d.ts +57 -0
  64. package/dist/src/core/route-path.d.ts.map +1 -0
  65. package/dist/src/core/route-path.js +93 -0
  66. package/dist/src/core/route-request.d.ts +149 -0
  67. package/dist/src/core/route-request.d.ts.map +1 -0
  68. package/dist/src/core/route-request.js +41 -0
  69. package/dist/src/core/route.types.d.ts +296 -0
  70. package/dist/src/core/route.types.d.ts.map +1 -0
  71. package/dist/src/core/start-action.d.ts +53 -0
  72. package/dist/src/core/start-action.d.ts.map +1 -0
  73. package/dist/src/core/start-action.js +95 -0
  74. package/dist/src/core/start-loaders.d.ts +63 -0
  75. package/dist/src/core/start-loaders.d.ts.map +1 -0
  76. package/dist/src/core/start-loaders.js +138 -0
  77. package/dist/{core.d.ts → src/core.d.ts} +7 -11
  78. package/dist/src/core.d.ts.map +1 -0
  79. package/dist/{core.js → src/core.js} +2 -4
  80. package/dist/src/engines/engine.types.d.ts +216 -0
  81. package/dist/src/engines/engine.types.d.ts.map +1 -0
  82. package/dist/src/engines/navigation-api-engine.d.ts +50 -0
  83. package/dist/src/engines/navigation-api-engine.d.ts.map +1 -0
  84. package/dist/src/engines/navigation-api-engine.js +411 -0
  85. package/dist/src/engines.d.ts +4 -0
  86. package/dist/src/engines.d.ts.map +1 -0
  87. package/dist/src/engines.js +1 -0
  88. package/dist/src/hooks/_use-singleton.d.ts +11 -0
  89. package/dist/src/hooks/_use-singleton.d.ts.map +1 -0
  90. package/dist/src/hooks/_use-singleton.js +26 -0
  91. package/dist/src/hooks/use-action-data.d.ts +17 -0
  92. package/dist/src/hooks/use-action-data.d.ts.map +1 -0
  93. package/dist/src/hooks/use-action-data.js +16 -0
  94. package/dist/src/hooks/use-form-action.d.ts +7 -0
  95. package/dist/src/hooks/use-form-action.d.ts.map +1 -0
  96. package/dist/src/hooks/use-form-action.js +9 -0
  97. package/dist/src/hooks/use-loader-data.d.ts +9 -0
  98. package/dist/src/hooks/use-loader-data.d.ts.map +1 -0
  99. package/dist/src/hooks/use-loader-data.js +20 -0
  100. package/dist/src/hooks/use-navigate.d.ts +53 -0
  101. package/dist/src/hooks/use-navigate.d.ts.map +1 -0
  102. package/dist/src/hooks/use-navigate.js +43 -0
  103. package/dist/{hooks → src/hooks}/use-params.d.ts +2 -2
  104. package/dist/src/hooks/use-params.d.ts.map +1 -0
  105. package/dist/{hooks → src/hooks}/use-params.js +1 -1
  106. package/dist/src/hooks/use-route-context.d.ts +10 -0
  107. package/dist/src/hooks/use-route-context.d.ts.map +1 -0
  108. package/dist/src/hooks/use-route-context.js +17 -0
  109. package/dist/src/hooks/use-router-context.d.ts +12 -0
  110. package/dist/src/hooks/use-router-context.d.ts.map +1 -0
  111. package/dist/src/hooks/use-router-context.js +20 -0
  112. package/dist/src/hooks/use-submit.d.ts +59 -0
  113. package/dist/src/hooks/use-submit.d.ts.map +1 -0
  114. package/dist/src/hooks/use-submit.js +38 -0
  115. package/dist/src/soseki.d.ts +31 -0
  116. package/dist/src/soseki.d.ts.map +1 -0
  117. package/dist/src/soseki.js +12 -0
  118. package/dist/src/utils/redirect.d.ts +11 -0
  119. package/dist/src/utils/redirect.d.ts.map +1 -0
  120. package/dist/src/utils/redirect.js +12 -0
  121. package/package.json +47 -40
  122. package/src/components/browser-router.tsx +8 -11
  123. package/src/components/outlet.tsx +3 -2
  124. package/src/components/router.tsx +139 -145
  125. package/src/contexts/route-context.ts +6 -5
  126. package/src/contexts/router-context.ts +36 -19
  127. package/src/core/_compare-route-paths.ts +48 -34
  128. package/src/core/_match-route-path.ts +21 -15
  129. package/src/core/_process-routes.ts +44 -46
  130. package/src/core/_singleton.ts +13 -38
  131. package/src/core/_unreachable.ts +12 -7
  132. package/src/core/_valibot.ts +19 -116
  133. package/src/core/errors.ts +150 -495
  134. package/src/core/expect-history-entry.ts +40 -41
  135. package/src/core/form-data-to-html-form-element.ts +37 -0
  136. package/src/core/history-entry-id-schema.ts +6 -11
  137. package/src/core/history-entry-url-schema.ts +25 -18
  138. package/src/core/init-loaders.ts +35 -57
  139. package/src/core/match-routes.ts +33 -65
  140. package/src/core/readonly-form-data.types.ts +48 -28
  141. package/src/core/readonly-url.types.ts +57 -28
  142. package/src/core/redirect-response.ts +26 -15
  143. package/src/core/route-path.ts +114 -0
  144. package/src/core/route-request.ts +144 -32
  145. package/src/core/route.types.ts +250 -226
  146. package/src/core/start-action.ts +164 -0
  147. package/src/core/start-loaders.ts +190 -212
  148. package/src/core.ts +8 -15
  149. package/src/engines/engine.types.ts +204 -166
  150. package/src/engines/navigation-api-engine.ts +332 -233
  151. package/src/engines.ts +4 -0
  152. package/src/hooks/_use-singleton.ts +30 -0
  153. package/src/hooks/use-action-data.ts +21 -26
  154. package/src/hooks/use-form-action.ts +4 -5
  155. package/src/hooks/use-loader-data.ts +16 -18
  156. package/src/hooks/use-navigate.ts +69 -28
  157. package/src/hooks/use-params.ts +4 -4
  158. package/src/hooks/use-route-context.ts +20 -0
  159. package/src/hooks/use-router-context.ts +25 -0
  160. package/src/hooks/use-submit.ts +48 -53
  161. package/src/soseki.ts +27 -34
  162. package/src/utils/redirect.ts +5 -5
  163. package/dist/components/action-id.d.ts +0 -19
  164. package/dist/components/action-id.d.ts.map +0 -1
  165. package/dist/components/action-id.jsx +0 -14
  166. package/dist/components/browser-router.d.ts +0 -17
  167. package/dist/components/browser-router.d.ts.map +0 -1
  168. package/dist/components/browser-router.jsx +0 -13
  169. package/dist/components/hidden-input.d.ts +0 -20
  170. package/dist/components/hidden-input.d.ts.map +0 -1
  171. package/dist/components/hidden-input.jsx +0 -8
  172. package/dist/components/outlet.d.ts +0 -8
  173. package/dist/components/outlet.d.ts.map +0 -1
  174. package/dist/components/outlet.jsx +0 -15
  175. package/dist/components/router.d.ts +0 -23
  176. package/dist/components/router.d.ts.map +0 -1
  177. package/dist/components/router.jsx +0 -128
  178. package/dist/contexts/route-context.d.ts +0 -19
  179. package/dist/contexts/route-context.d.ts.map +0 -1
  180. package/dist/contexts/route-context.js +0 -6
  181. package/dist/contexts/router-context.d.ts +0 -46
  182. package/dist/contexts/router-context.d.ts.map +0 -1
  183. package/dist/contexts/router-context.js +0 -8
  184. package/dist/core/_action-id-registry.d.ts +0 -10
  185. package/dist/core/_action-id-registry.d.ts.map +0 -1
  186. package/dist/core/_action-id-registry.js +0 -8
  187. package/dist/core/_capture-stack-trace.d.ts +0 -8
  188. package/dist/core/_capture-stack-trace.d.ts.map +0 -1
  189. package/dist/core/_capture-stack-trace.js +0 -12
  190. package/dist/core/_compare-route-paths.d.ts +0 -11
  191. package/dist/core/_compare-route-paths.d.ts.map +0 -1
  192. package/dist/core/_compare-route-paths.js +0 -80
  193. package/dist/core/_create-html-form-element-form-form-data.d.ts +0 -9
  194. package/dist/core/_create-html-form-element-form-form-data.d.ts.map +0 -1
  195. package/dist/core/_create-html-form-element-form-form-data.js +0 -27
  196. package/dist/core/_encode-pathname.d.ts +0 -10
  197. package/dist/core/_encode-pathname.d.ts.map +0 -1
  198. package/dist/core/_encode-pathname.js +0 -16
  199. package/dist/core/_is-error.d.ts +0 -3
  200. package/dist/core/_is-error.d.ts.map +0 -1
  201. package/dist/core/_is-error.js +0 -13
  202. package/dist/core/_is-promise-like.d.ts +0 -8
  203. package/dist/core/_is-promise-like.d.ts.map +0 -1
  204. package/dist/core/_is-promise-like.js +0 -12
  205. package/dist/core/_match-route-path.d.ts +0 -19
  206. package/dist/core/_match-route-path.d.ts.map +0 -1
  207. package/dist/core/_match-route-path.js +0 -22
  208. package/dist/core/_process-routes.d.ts +0 -9
  209. package/dist/core/_process-routes.d.ts.map +0 -1
  210. package/dist/core/_process-routes.js +0 -47
  211. package/dist/core/_singleton.d.ts +0 -18
  212. package/dist/core/_singleton.d.ts.map +0 -1
  213. package/dist/core/_singleton.js +0 -37
  214. package/dist/core/_unreachable.d.ts +0 -12
  215. package/dist/core/_unreachable.d.ts.map +0 -1
  216. package/dist/core/_unreachable.js +0 -8
  217. package/dist/core/_use-singleton.d.ts +0 -11
  218. package/dist/core/_use-singleton.d.ts.map +0 -1
  219. package/dist/core/_use-singleton.js +0 -21
  220. package/dist/core/_valibot.d.ts +0 -52
  221. package/dist/core/_valibot.d.ts.map +0 -1
  222. package/dist/core/_valibot.js +0 -107
  223. package/dist/core/_weak-id-registry.d.ts +0 -76
  224. package/dist/core/_weak-id-registry.d.ts.map +0 -1
  225. package/dist/core/_weak-id-registry.js +0 -67
  226. package/dist/core/constants.d.ts +0 -5
  227. package/dist/core/constants.d.ts.map +0 -1
  228. package/dist/core/constants.js +0 -4
  229. package/dist/core/data-map.types.d.ts +0 -23
  230. package/dist/core/data-map.types.d.ts.map +0 -1
  231. package/dist/core/data-map.types.js +0 -1
  232. package/dist/core/data-store.types.d.ts +0 -22
  233. package/dist/core/data-store.types.d.ts.map +0 -1
  234. package/dist/core/data-store.types.js +0 -1
  235. package/dist/core/deferred-promise.d.ts +0 -203
  236. package/dist/core/deferred-promise.d.ts.map +0 -1
  237. package/dist/core/deferred-promise.js +0 -200
  238. package/dist/core/errors.d.ts +0 -303
  239. package/dist/core/errors.d.ts.map +0 -1
  240. package/dist/core/errors.js +0 -400
  241. package/dist/core/expect-history-entry.d.ts +0 -52
  242. package/dist/core/expect-history-entry.d.ts.map +0 -1
  243. package/dist/core/expect-history-entry.js +0 -38
  244. package/dist/core/history-entry-id-schema.d.ts +0 -17
  245. package/dist/core/history-entry-id-schema.d.ts.map +0 -1
  246. package/dist/core/history-entry-id-schema.js +0 -9
  247. package/dist/core/history-entry-url-schema.d.ts +0 -20
  248. package/dist/core/history-entry-url-schema.d.ts.map +0 -1
  249. package/dist/core/history-entry-url-schema.js +0 -16
  250. package/dist/core/init-loaders.d.ts +0 -37
  251. package/dist/core/init-loaders.d.ts.map +0 -1
  252. package/dist/core/init-loaders.js +0 -38
  253. package/dist/core/match-routes.d.ts +0 -31
  254. package/dist/core/match-routes.d.ts.map +0 -1
  255. package/dist/core/match-routes.js +0 -54
  256. package/dist/core/readonly-form-data.types.d.ts +0 -32
  257. package/dist/core/readonly-form-data.types.d.ts.map +0 -1
  258. package/dist/core/readonly-url.types.d.ts +0 -135
  259. package/dist/core/readonly-url.types.d.ts.map +0 -1
  260. package/dist/core/redirect-response.d.ts +0 -29
  261. package/dist/core/redirect-response.d.ts.map +0 -1
  262. package/dist/core/redirect-response.js +0 -17
  263. package/dist/core/route-request.d.ts +0 -52
  264. package/dist/core/route-request.d.ts.map +0 -1
  265. package/dist/core/route-request.js +0 -26
  266. package/dist/core/route.types.d.ts +0 -309
  267. package/dist/core/route.types.d.ts.map +0 -1
  268. package/dist/core/start-actions.d.ts +0 -60
  269. package/dist/core/start-actions.d.ts.map +0 -1
  270. package/dist/core/start-actions.js +0 -186
  271. package/dist/core/start-loaders.d.ts +0 -69
  272. package/dist/core/start-loaders.d.ts.map +0 -1
  273. package/dist/core/start-loaders.js +0 -154
  274. package/dist/core.d.ts.map +0 -1
  275. package/dist/engines/engine.types.d.ts +0 -190
  276. package/dist/engines/engine.types.d.ts.map +0 -1
  277. package/dist/engines/navigation-api-engine.d.ts +0 -48
  278. package/dist/engines/navigation-api-engine.d.ts.map +0 -1
  279. package/dist/engines/navigation-api-engine.js +0 -332
  280. package/dist/hooks/_use-route-context.d.ts +0 -10
  281. package/dist/hooks/_use-route-context.d.ts.map +0 -1
  282. package/dist/hooks/_use-route-context.js +0 -17
  283. package/dist/hooks/_use-router-context.d.ts +0 -10
  284. package/dist/hooks/_use-router-context.d.ts.map +0 -1
  285. package/dist/hooks/_use-router-context.js +0 -18
  286. package/dist/hooks/use-action-data.d.ts +0 -23
  287. package/dist/hooks/use-action-data.d.ts.map +0 -1
  288. package/dist/hooks/use-action-data.js +0 -16
  289. package/dist/hooks/use-form-action.d.ts +0 -7
  290. package/dist/hooks/use-form-action.d.ts.map +0 -1
  291. package/dist/hooks/use-form-action.js +0 -10
  292. package/dist/hooks/use-loader-data.d.ts +0 -11
  293. package/dist/hooks/use-loader-data.d.ts.map +0 -1
  294. package/dist/hooks/use-loader-data.js +0 -19
  295. package/dist/hooks/use-navigate.d.ts +0 -39
  296. package/dist/hooks/use-navigate.d.ts.map +0 -1
  297. package/dist/hooks/use-navigate.js +0 -26
  298. package/dist/hooks/use-params.d.ts.map +0 -1
  299. package/dist/hooks/use-pathname.d.ts +0 -7
  300. package/dist/hooks/use-pathname.d.ts.map +0 -1
  301. package/dist/hooks/use-pathname.js +0 -9
  302. package/dist/hooks/use-submit.d.ts +0 -66
  303. package/dist/hooks/use-submit.d.ts.map +0 -1
  304. package/dist/hooks/use-submit.js +0 -35
  305. package/dist/soseki.d.ts +0 -42
  306. package/dist/soseki.d.ts.map +0 -1
  307. package/dist/soseki.js +0 -19
  308. package/dist/utils/get-action-id.d.ts +0 -8
  309. package/dist/utils/get-action-id.d.ts.map +0 -1
  310. package/dist/utils/get-action-id.js +0 -11
  311. package/dist/utils/href.d.ts +0 -11
  312. package/dist/utils/href.d.ts.map +0 -1
  313. package/dist/utils/href.js +0 -12
  314. package/dist/utils/redirect.d.ts +0 -11
  315. package/dist/utils/redirect.d.ts.map +0 -1
  316. package/dist/utils/redirect.js +0 -12
  317. package/dist/utils/route-index.d.ts +0 -41
  318. package/dist/utils/route-index.d.ts.map +0 -1
  319. package/dist/utils/route-index.js +0 -12
  320. package/dist/utils/route-route.d.ts +0 -62
  321. package/dist/utils/route-route.d.ts.map +0 -1
  322. package/dist/utils/route-route.js +0 -25
  323. package/dist/utils/set-action-id.d.ts +0 -9
  324. package/dist/utils/set-action-id.d.ts.map +0 -1
  325. package/dist/utils/set-action-id.js +0 -12
  326. package/src/components/action-id.tsx +0 -35
  327. package/src/components/hidden-input.tsx +0 -39
  328. package/src/core/_action-id-registry.ts +0 -11
  329. package/src/core/_capture-stack-trace.ts +0 -12
  330. package/src/core/_create-html-form-element-form-form-data.ts +0 -32
  331. package/src/core/_encode-pathname.ts +0 -17
  332. package/src/core/_is-error.ts +0 -16
  333. package/src/core/_is-promise-like.ts +0 -14
  334. package/src/core/_use-singleton.ts +0 -24
  335. package/src/core/_weak-id-registry.ts +0 -125
  336. package/src/core/constants.ts +0 -4
  337. package/src/core/data-map.types.ts +0 -28
  338. package/src/core/data-store.types.ts +0 -25
  339. package/src/core/deferred-promise.ts +0 -408
  340. package/src/core/start-actions.ts +0 -274
  341. package/src/hooks/_use-route-context.ts +0 -19
  342. package/src/hooks/_use-router-context.ts +0 -25
  343. package/src/hooks/use-pathname.ts +0 -10
  344. package/src/utils/get-action-id.ts +0 -12
  345. package/src/utils/href.ts +0 -17
  346. package/src/utils/route-index.ts +0 -70
  347. package/src/utils/route-route.ts +0 -111
  348. package/src/utils/set-action-id.ts +0 -14
  349. /package/dist/{core → src/core}/readonly-form-data.types.js +0 -0
  350. /package/dist/{core → src/core}/readonly-url.types.js +0 -0
  351. /package/dist/{core → src/core}/route.types.js +0 -0
  352. /package/dist/{engines → src/engines}/engine.types.js +0 -0
@@ -0,0 +1,16 @@
1
+ /**
2
+ * 網羅性チェックにおいて、プログラムの制御フローが理論上決して到達しないはずの場所に達したことを示すための関数です。
3
+ */
4
+ declare function unreachable(): never;
5
+ /**
6
+ * 網羅性チェックにおいて、プログラムの制御フローが理論上決して到達しないはずの場所に達したことを示すための関数です。
7
+ *
8
+ * * `switch` 文の `default` 句などでこの関数に値を渡すことにより、すべての列挙型やユニオン型のケースが処理し尽くされているかを静的に検証します。
9
+ *
10
+ * 漏れがある場合、TypeScript は引数が `never` 型に適合しないというコンパイルエラーを報告します。
11
+ *
12
+ * @param value すべての分岐が処理された結果として、理論上 `never` 型になっているべき変数です。
13
+ */
14
+ declare function unreachable(value: never): never;
15
+ export default unreachable;
16
+ //# sourceMappingURL=_unreachable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_unreachable.d.ts","sourceRoot":"","sources":["../../../src/core/_unreachable.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,iBAAS,WAAW,IAAI,KAAK,CAAC;AAE9B;;;;;;;;GAQG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC;AAQ1C,eAAe,WAAW,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { tryCaptureStackTrace } from "try-capture-stack-trace";
2
+ import { UnreachableError } from "./errors.js";
3
+ function unreachable(...actual) {
4
+ const error = new UnreachableError({ actual });
5
+ tryCaptureStackTrace(error, unreachable);
6
+ throw error;
7
+ }
8
+ export default unreachable;
@@ -0,0 +1,25 @@
1
+ import { type InferOutput, safeParse } from "valibot";
2
+ /***************************************************************************************************
3
+ *
4
+ * 再エクスポート
5
+ *
6
+ **************************************************************************************************/
7
+ export { url, pipe, uuid, brand, number, string, minValue, nullable, safeInteger } from "valibot";
8
+ export type { InferInput, InferOutput } from "valibot";
9
+ export { object, transform } from "@tai-kun/valibot-extra-lab";
10
+ /***************************************************************************************************
11
+ *
12
+ * expect
13
+ *
14
+ **************************************************************************************************/
15
+ type BaseSchema = typeof safeParse extends (schema: infer TSchema, ...args: any) => any ? TSchema : never;
16
+ /**
17
+ * 指定されたスキーマに基づいて入力値の構造を検証し、成功した場合は型安全に解析済みの値を出力します。
18
+ *
19
+ * @template TSchema 評価に使用する `valibot` 形式のスキーマ定義型です。
20
+ * @param schema 入力値を検証するためのスキーマ定義オブジェクトです。
21
+ * @param input 整合性を検証する対象となる未知のデータです。
22
+ * @returns スキマの定義に完全に合致し、型付けが完了した解析済みの出力データを返します。
23
+ */
24
+ export declare function expect<const TSchema extends BaseSchema>(schema: TSchema, input: unknown): InferOutput<TSchema>;
25
+ //# sourceMappingURL=_valibot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_valibot.d.ts","sourceRoot":"","sources":["../../../src/core/_valibot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAItD;;;;oGAIoG;AAEpG,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClG,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE/D;;;;oGAIoG;AAEpG,KAAK,UAAU,GAAG,OAAO,SAAS,SAAS,CAAC,MAAM,EAAE,MAAM,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,GACnF,OAAO,GACP,KAAK,CAAC;AAEV;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,UAAU,EACrD,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,OAAO,GACb,WAAW,CAAC,OAAO,CAAC,CAYtB"}
@@ -0,0 +1,30 @@
1
+ import { tryCaptureStackTrace } from "try-capture-stack-trace";
2
+ import { safeParse } from "valibot";
3
+ import { UnexpectedValidationError } from "./errors.js";
4
+ /***************************************************************************************************
5
+ *
6
+ * 再エクスポート
7
+ *
8
+ **************************************************************************************************/
9
+ export { url, pipe, uuid, brand, number, string, minValue, nullable, safeInteger } from "valibot";
10
+ export { object, transform } from "@tai-kun/valibot-extra-lab";
11
+ /**
12
+ * 指定されたスキーマに基づいて入力値の構造を検証し、成功した場合は型安全に解析済みの値を出力します。
13
+ *
14
+ * @template TSchema 評価に使用する `valibot` 形式のスキーマ定義型です。
15
+ * @param schema 入力値を検証するためのスキーマ定義オブジェクトです。
16
+ * @param input 整合性を検証する対象となる未知のデータです。
17
+ * @returns スキマの定義に完全に合致し、型付けが完了した解析済みの出力データを返します。
18
+ */
19
+ export function expect(schema, input) {
20
+ const result = safeParse(schema, input);
21
+ if (result.success) {
22
+ return result.output;
23
+ }
24
+ const error = new UnexpectedValidationError({
25
+ value: input,
26
+ issues: result.issues,
27
+ });
28
+ tryCaptureStackTrace(error, expect);
29
+ throw error;
30
+ }
@@ -0,0 +1,182 @@
1
+ import { type ErrorMeta, type ErrorOptions, I18nErrorBase, setErrorMessage } from "i18n-error-base";
2
+ import type { BaseIssue } from "valibot";
3
+ /**************************************************************************************************/
4
+ export type { ErrorMeta, ErrorOptions };
5
+ export { setErrorMessage };
6
+ /**************************************************************************************************/
7
+ /**
8
+ * データ検証の過程で検出された具体的な問題点を表す型定義です。
9
+ *
10
+ * 外部のスキーマ検証ライブラリーである `valibot` の `BaseIssue` を基盤としています。
11
+ */
12
+ export type Issue = BaseIssue<unknown>;
13
+ /**************************************************************************************************/
14
+ /**
15
+ * soseki ルーティングライブラリーにおける、すべてのカスタムエラーの頂点に位置する基底クラスです。
16
+ *
17
+ * @template TMeta エラーの発生コンテキストを保持するために紐付けるメタデータオブジェクトの型定義です。
18
+ */
19
+ export declare class ErrorBase<TMeta extends ErrorMeta | undefined = undefined> extends I18nErrorBase<TMeta> {
20
+ }
21
+ /**************************************************************************************************/
22
+ /**
23
+ * プログラムの制御フローにおいて、理論上到達しないはずのコード領域へ侵入した際に付与されるメタデータの型定義です。
24
+ */
25
+ export type UnreachableErrorMeta = {
26
+ /**
27
+ * 網羅性チェックをすり抜けて、実行時に入り込んできた予期せぬ不正な値です。
28
+ */
29
+ readonly value?: unknown;
30
+ };
31
+ /**
32
+ * `UnreachableError` のインスタンスを初期化する際に渡される引数オブジェクトの型定義です。
33
+ */
34
+ export type UnreachableErrorArgs = ErrorOptions & {
35
+ /**
36
+ * 網羅性検証において `never` 型となるべき変数を格納した、要素数 1 のタプルまたは空の配列です。
37
+ */
38
+ readonly actual: [never?];
39
+ };
40
+ /**
41
+ * 網羅性チェックにおいて、プログラムの制御フローが理論上決して到達しないはずの場所に達した場合に投げるエラーです。
42
+ */
43
+ export declare class UnreachableError extends ErrorBase<UnreachableErrorMeta> {
44
+ /**
45
+ * `UnreachableError` クラスの新しいインスタンスを初期化します。
46
+ *
47
+ * @param args エラーオプションおよび実行時に混入した実際の値を含む引数オブジェクトです。
48
+ */
49
+ constructor(args: UnreachableErrorArgs);
50
+ }
51
+ /**************************************************************************************************/
52
+ /**
53
+ * データ検証の失敗に関連するエラーを集約するための共通基底クラスです。
54
+ *
55
+ * @template TMeta エラーに紐づく、検証結果の問題点などのメタデータ型定義です。
56
+ */
57
+ export declare class ValidationErrorBase<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> extends ErrorBase<TMeta> {
58
+ }
59
+ /**************************************************************************************************/
60
+ /**
61
+ * 予期しないデータ構造や型に遭遇した際に付与される、検証エラー情報のメタデータ型定義です。
62
+ */
63
+ export type UnexpectedValidationErrorMeta = {
64
+ /**
65
+ * スキーマ検証によって不適合と判定された問題点のリストです。最低 1 つ以上の要素を持つことが保証された読み取り専用の配列です。
66
+ */
67
+ readonly issues: readonly [Issue, ...Issue[]];
68
+ /**
69
+ * 検証の対象となった、予期しない生の入力値です。
70
+ */
71
+ readonly value: unknown;
72
+ };
73
+ /**
74
+ * `UnexpectedValidationError` のインスタンスを初期化する際に渡される引数オブジェクトの型定義です。
75
+ */
76
+ export type UnexpectedValidationErrorArgs = ErrorOptions & UnexpectedValidationErrorMeta;
77
+ /**
78
+ * スキーマによるデータ構造の検証において、予期しない形式の値に遭遇した場合に投げるエラーです。
79
+ */
80
+ export declare class UnexpectedValidationError extends ValidationErrorBase<UnexpectedValidationErrorMeta> {
81
+ /**
82
+ * `UnexpectedValidationError` クラスの新しいインスタンスを初期化します。
83
+ *
84
+ * @param args エラーオプション、入力値、および検出された不適合箇所の一覧を含む引数オブジェクトです。
85
+ */
86
+ constructor(args: UnexpectedValidationErrorArgs);
87
+ }
88
+ /**************************************************************************************************/
89
+ /**
90
+ * ブラウザー標準の Navigation API が、現在の実行環境でサポートされていない場合に投げるエラーです。
91
+ */
92
+ export declare class NavigationApiNotSupportedError extends ErrorBase<undefined> {
93
+ /**
94
+ * `NavigationApiNotSupportedError` クラスの新しいインスタンスを初期化します。
95
+ *
96
+ * @param options エラーの共通オプションです。
97
+ */
98
+ constructor(options?: ErrorOptions);
99
+ }
100
+ /**************************************************************************************************/
101
+ /**
102
+ * データの再読み込み判定において、不正なデータ型が検出された際に付与されるメタデータの型定義です。
103
+ */
104
+ export type LoaderConditionErrorMeta = {
105
+ /**
106
+ * エラーが発生した対象ルートの URL パス文字列です。
107
+ */
108
+ readonly url: string;
109
+ /**
110
+ * 不正な値を返した対象の `shouldReload` 関数の参照です。
111
+ */
112
+ readonly shouldReload: Function;
113
+ /**
114
+ * `shouldReload` 関数が実際に返した、期待値とは異なるオブジェクトやプリミティブ値です。
115
+ */
116
+ readonly returnValue: unknown;
117
+ };
118
+ /**
119
+ * `LoaderConditionError` のインスタンスを初期化する際に渡される引数オブジェクトの型定義です。
120
+ */
121
+ export type LoaderConditionErrorArgs = ErrorOptions & LoaderConditionErrorMeta;
122
+ /**
123
+ * ユーザーが定義した `shouldReload` 関数が、仕様に準拠した同期的な真偽値ではなく、不正な値を返した場合に投げるエラーです。
124
+ */
125
+ export declare class LoaderConditionError extends ErrorBase<LoaderConditionErrorMeta> {
126
+ /**
127
+ * `LoaderConditionError` クラスの新しいインスタンスを初期化します。
128
+ *
129
+ * @param args エラーオプション、対象URL、関数の参照、および実際の戻り値を含む引数オブジェクトです。
130
+ */
131
+ constructor(args: LoaderConditionErrorArgs);
132
+ }
133
+ /**************************************************************************************************/
134
+ /**
135
+ * ルーター全体の共通状態 `RouterContext` が、React のコンポーネントツリー内の上位から供給されていない場合に投げるエラーです。
136
+ */
137
+ export declare class RouterContextMissingError extends ErrorBase<undefined> {
138
+ /**
139
+ * `RouterContextMissingError` クラスの新しいインスタンスを初期化します。
140
+ *
141
+ * @param options エラーの共通オプションです。
142
+ */
143
+ constructor(options?: ErrorOptions);
144
+ }
145
+ /**************************************************************************************************/
146
+ /**
147
+ * 個々のルート固有の状態 `RouteContext` が、React のコンポーネントツリー内の上位から供給されていない場合に投げるエラーです。
148
+ */
149
+ export declare class RouteContextMissingError extends ErrorBase<undefined> {
150
+ /**
151
+ * `RouteContextMissingError` クラスの新しいインスタンスを初期化します。
152
+ *
153
+ * @param options エラーの共通オプションです。
154
+ */
155
+ constructor(options?: ErrorOptions);
156
+ }
157
+ /**************************************************************************************************/
158
+ /**
159
+ * ローダーデータの紛失を通知する際に付与されるメタデータの型定義です。
160
+ */
161
+ export type LoaderDataNotFoundErrorMeta = {
162
+ /**
163
+ * データの取得を試みた対象のローダー関数の参照です。未定義の場合は `undefined` となることがあります。
164
+ */
165
+ readonly loader: Function | undefined;
166
+ };
167
+ /**
168
+ * `LoaderDataNotFoundError` のインスタンスを初期化する際に渡される引数オブジェクトの型定義です。
169
+ */
170
+ export type LoaderDataNotFoundErrorArgs = ErrorOptions & LoaderDataNotFoundErrorMeta;
171
+ /**
172
+ * ルートに紐づくデータ取得用のローダー関数が正常に処理されたはずであるにもかかわらず、該当するキャッシュデータや応答結果が見つからない場合に投げるエラーです。
173
+ */
174
+ export declare class LoaderDataNotFoundError extends ErrorBase<LoaderDataNotFoundErrorMeta> {
175
+ /**
176
+ * `LoaderDataNotFoundError` クラスの新しいインスタンスを初期化します。
177
+ *
178
+ * @param args エラーオプションおよび対象ローダー関数の参照を含む引数オブジェクトです。
179
+ */
180
+ constructor(args: LoaderDataNotFoundErrorArgs);
181
+ }
182
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ var _a, _b, _c, _d, _e, _f, _g;
2
+ import { I18nErrorBase, setErrorMessage } from "i18n-error-base";
3
+ import { inspect } from "inspect-lite";
4
+ import { isThenable } from "maypromise";
5
+ import getTypeName from "type-name";
6
+ export { setErrorMessage };
7
+ /**************************************************************************************************/
8
+ /**
9
+ * soseki ルーティングライブラリーにおける、すべてのカスタムエラーの頂点に位置する基底クラスです。
10
+ *
11
+ * @template TMeta エラーの発生コンテキストを保持するために紐付けるメタデータオブジェクトの型定義です。
12
+ */
13
+ export class ErrorBase extends I18nErrorBase {
14
+ }
15
+ /**
16
+ * 網羅性チェックにおいて、プログラムの制御フローが理論上決して到達しないはずの場所に達した場合に投げるエラーです。
17
+ */
18
+ export class UnreachableError extends ErrorBase {
19
+ /**
20
+ * `UnreachableError` クラスの新しいインスタンスを初期化します。
21
+ *
22
+ * @param args エラーオプションおよび実行時に混入した実際の値を含む引数オブジェクトです。
23
+ */
24
+ constructor(args) {
25
+ const { actual, ...options } = args;
26
+ super(actual.length > 0 ? { value: actual[0] } : {}, (meta) => "value" in meta
27
+ ? "Encountered impossible value: " + inspect(meta.value)
28
+ : "Unreachable code reached", options);
29
+ }
30
+ }
31
+ _a = UnreachableError;
32
+ (() => {
33
+ _a.prototype.name = "SosekiUnreachableError";
34
+ })();
35
+ /*#__PURE__*/ setErrorMessage(UnreachableError, (meta) => "value" in meta
36
+ ? "不可能な値に遭遇しました: " + inspect(meta.value)
37
+ : "到達できないコードに到達しました", "ja");
38
+ /**************************************************************************************************/
39
+ /**
40
+ * データ検証の失敗に関連するエラーを集約するための共通基底クラスです。
41
+ *
42
+ * @template TMeta エラーに紐づく、検証結果の問題点などのメタデータ型定義です。
43
+ */
44
+ export class ValidationErrorBase extends ErrorBase {
45
+ }
46
+ /**
47
+ * スキーマによるデータ構造の検証において、予期しない形式の値に遭遇した場合に投げるエラーです。
48
+ */
49
+ export class UnexpectedValidationError extends ValidationErrorBase {
50
+ /**
51
+ * `UnexpectedValidationError` クラスの新しいインスタンスを初期化します。
52
+ *
53
+ * @param args エラーオプション、入力値、および検出された不適合箇所の一覧を含む引数オブジェクトです。
54
+ */
55
+ constructor(args) {
56
+ const { value, issues, ...options } = args;
57
+ super({ value, issues }, ({ issues }) => issues.map((issue) => issue.message).join(": "), options);
58
+ }
59
+ }
60
+ _b = UnexpectedValidationError;
61
+ (() => {
62
+ _b.prototype.name = "SosekiUnexpectedValidationError";
63
+ })();
64
+ /**************************************************************************************************/
65
+ /**
66
+ * ブラウザー標準の Navigation API が、現在の実行環境でサポートされていない場合に投げるエラーです。
67
+ */
68
+ export class NavigationApiNotSupportedError extends ErrorBase {
69
+ /**
70
+ * `NavigationApiNotSupportedError` クラスの新しいインスタンスを初期化します。
71
+ *
72
+ * @param options エラーの共通オプションです。
73
+ */
74
+ constructor(options) {
75
+ super("The Navigation API is not supported in this environment", options);
76
+ }
77
+ }
78
+ _c = NavigationApiNotSupportedError;
79
+ (() => {
80
+ _c.prototype.name = "SosekiNavigationApiNotSupportedError";
81
+ })();
82
+ /*#__PURE__*/ setErrorMessage(NavigationApiNotSupportedError, "現在の環境では Navigation API がサポートされていません", "ja");
83
+ /**
84
+ * ユーザーが定義した `shouldReload` 関数が、仕様に準拠した同期的な真偽値ではなく、不正な値を返した場合に投げるエラーです。
85
+ */
86
+ export class LoaderConditionError extends ErrorBase {
87
+ /**
88
+ * `LoaderConditionError` クラスの新しいインスタンスを初期化します。
89
+ *
90
+ * @param args エラーオプション、対象URL、関数の参照、および実際の戻り値を含む引数オブジェクトです。
91
+ */
92
+ constructor(args) {
93
+ const { url, returnValue, shouldReload, ...options } = args;
94
+ super({ url, returnValue, shouldReload }, ({ returnValue }) => isThenable(returnValue)
95
+ ? "shouldReload must return a boolean value synchronously"
96
+ : `Expected boolean, but got ${getTypeName(returnValue) || "unknown"}`, options);
97
+ }
98
+ }
99
+ _d = LoaderConditionError;
100
+ (() => {
101
+ _d.prototype.name = "SosekiLoaderConditionError";
102
+ })();
103
+ /*#__PURE__*/ setErrorMessage(LoaderConditionError, ({ returnValue }) => isThenable(returnValue)
104
+ ? "shouldReload は同期的に真偽値を返す必要があります"
105
+ : `真偽値を期待しましたが、${getTypeName(returnValue) || "unknown"} を得ました`, "ja");
106
+ /**************************************************************************************************/
107
+ /**
108
+ * ルーター全体の共通状態 `RouterContext` が、React のコンポーネントツリー内の上位から供給されていない場合に投げるエラーです。
109
+ */
110
+ export class RouterContextMissingError extends ErrorBase {
111
+ /**
112
+ * `RouterContextMissingError` クラスの新しいインスタンスを初期化します。
113
+ *
114
+ * @param options エラーの共通オプションです。
115
+ */
116
+ constructor(options) {
117
+ super("RouterContext not found. Did you forget to wrap your app in <Router />?", options);
118
+ }
119
+ }
120
+ _e = RouterContextMissingError;
121
+ (() => {
122
+ _e.prototype.name = "SosekiRouterContextMissingError";
123
+ })();
124
+ /*#__PURE__*/ setErrorMessage(RouterContextMissingError, "RouterContext が見つかりません。アプリを <Router /> で囲むのを忘れていませんか?", "ja");
125
+ /**************************************************************************************************/
126
+ /**
127
+ * 個々のルート固有の状態 `RouteContext` が、React のコンポーネントツリー内の上位から供給されていない場合に投げるエラーです。
128
+ */
129
+ export class RouteContextMissingError extends ErrorBase {
130
+ /**
131
+ * `RouteContextMissingError` クラスの新しいインスタンスを初期化します。
132
+ *
133
+ * @param options エラーの共通オプションです。
134
+ */
135
+ constructor(options) {
136
+ super("RouteContext not found. Did you forget to wrap your app in <Router />?", options);
137
+ }
138
+ }
139
+ _f = RouteContextMissingError;
140
+ (() => {
141
+ _f.prototype.name = "SosekiRouteContextMissingError";
142
+ })();
143
+ /*#__PURE__*/ setErrorMessage(RouteContextMissingError, "RouteContext が見つかりません。アプリを <Router /> で囲むのを忘れていませんか?", "ja");
144
+ /**
145
+ * ルートに紐づくデータ取得用のローダー関数が正常に処理されたはずであるにもかかわらず、該当するキャッシュデータや応答結果が見つからない場合に投げるエラーです。
146
+ */
147
+ export class LoaderDataNotFoundError extends ErrorBase {
148
+ /**
149
+ * `LoaderDataNotFoundError` クラスの新しいインスタンスを初期化します。
150
+ *
151
+ * @param args エラーオプションおよび対象ローダー関数の参照を含む引数オブジェクトです。
152
+ */
153
+ constructor(args) {
154
+ const { loader, ...options } = args;
155
+ super({ loader }, ({ loader }) => loader
156
+ ? `Loader data not found (Function name: ${loader.name || "anonymous"})`
157
+ : "Loader is undefined", options);
158
+ }
159
+ }
160
+ _g = LoaderDataNotFoundError;
161
+ (() => {
162
+ _g.prototype.name = "SosekiLoaderDataNotFoundError";
163
+ })();
164
+ /*#__PURE__*/ setErrorMessage(LoaderDataNotFoundError, ({ loader }) => loader
165
+ ? `ローダーデータが見つかりません(関数名: ${loader.name || "匿名"})`
166
+ : "ローダーが未定義です。", "ja");
@@ -0,0 +1,59 @@
1
+ import * as v from "./_valibot.js";
2
+ import { type HistoryEntryId } from "./history-entry-id-schema.js";
3
+ import { type HistoryEntryUrl } from "./history-entry-url-schema.js";
4
+ /**
5
+ * 履歴エントリーオブジェクト全体の構造を検証するためのスキーマを作成する関数です。
6
+ *
7
+ * スキーマの構築処理は一度だけ実行され、以降はシングルトンインスタンスとしてキャッシュから再利用されます。
8
+ */
9
+ declare const HistoryEntrySchema: () => import("@tai-kun/valibot-extra-lab").ObjectSchema<{
10
+ /**
11
+ * 履歴エントリーの識別子です。
12
+ */
13
+ readonly id: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").UuidAction<string, undefined>, import("valibot").BrandAction<string, "HistoryEntryId">]>;
14
+ /**
15
+ * 履歴エントリーの絶対 URL です。
16
+ */
17
+ readonly url: import("valibot").NullableSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").UrlAction<string, undefined>, import("@tai-kun/valibot-extra-lab").TransformAction<string, import("./readonly-url.types.js").ReadonlyURL>, import("valibot").BrandAction<import("./readonly-url.types.js").ReadonlyURL, "HistoryEntryUrl">]>, undefined>;
18
+ /**
19
+ * 履歴エントリーリスト内の履歴エントリーのインデックスです。
20
+ */
21
+ readonly index: import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").SafeIntegerAction<number, undefined>, import("valibot").MinValueAction<number, -1, undefined>]>;
22
+ }, undefined>;
23
+ /**
24
+ * `HistoryEntrySchema` による検証と構造変換を行う前の、生の入力オブジェクトに対応する型定義です。
25
+ */
26
+ export type HistoryEntryLike = v.InferInput<ReturnType<typeof HistoryEntrySchema>>;
27
+ /**
28
+ * `expectHistoryEntry` 関数による検証を通過した、ランタイムで確定的に使用可能な履歴エントリーの型定義です。
29
+ */
30
+ export type HistoryEntry = {
31
+ /**
32
+ * 履歴エントリーの識別子です。
33
+ */
34
+ readonly id: HistoryEntryId;
35
+ /**
36
+ * 履歴エントリーの絶対 URL です。
37
+ */
38
+ readonly url: HistoryEntryUrl;
39
+ /**
40
+ * 履歴エントリーリスト内の履歴エントリーのインデックスです。
41
+ */
42
+ readonly index: number;
43
+ };
44
+ /**
45
+ * 履歴エントリーオブジェクトを検証し、仕様を満たしている場合に確定的な `HistoryEntry` 型へと変換します。
46
+ *
47
+ * @param entry スキーマの基本構造を満たしていると予想される生の入力値です。
48
+ * @returns すべてのプロパティーが完全に確定した `HistoryEntry` を返します。
49
+ */
50
+ declare function expectHistoryEntry(entry: HistoryEntryLike): HistoryEntry;
51
+ /**
52
+ * 履歴エントリーオブジェクトを検証し、仕様を満たしている場合に確定的な `HistoryEntry` 型へと変換します。
53
+ *
54
+ * @param entry スキーマの入力形式を満たすオブジェクト、または空値です。
55
+ * @returns 入力値が空であった場合、あるいは検証の過程で必要なデータが欠落していた場合は `null` を返します。
56
+ */
57
+ declare function expectHistoryEntry(entry: HistoryEntryLike | null | undefined): HistoryEntry | null;
58
+ export default expectHistoryEntry;
59
+ //# sourceMappingURL=expect-history-entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expect-history-entry.d.ts","sourceRoot":"","sources":["../../../src/core/expect-history-entry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AACnC,OAA6B,EAAE,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAA8B,EAAE,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAE5F;;;;GAIG;AACH,QAAA,MAAM,kBAAkB;IAGlB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;aAGN,CAAC;AAEJ;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,iBAAS,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CAAC;AAEnE;;;;;GAKG;AACH,iBAAS,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,GAAG,IAAI,CAAC;AAwB7F,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import singleton from "./_singleton.js";
2
+ import * as v from "./_valibot.js";
3
+ import HistoryEntryIdSchema from "./history-entry-id-schema.js";
4
+ import HistoryEntryUrlSchema from "./history-entry-url-schema.js";
5
+ /**
6
+ * 履歴エントリーオブジェクト全体の構造を検証するためのスキーマを作成する関数です。
7
+ *
8
+ * スキーマの構築処理は一度だけ実行され、以降はシングルトンインスタンスとしてキャッシュから再利用されます。
9
+ */
10
+ const HistoryEntrySchema = () => singleton("HistoryEntrySchema", () => v.object({
11
+ /**
12
+ * 履歴エントリーの識別子です。
13
+ */
14
+ id: HistoryEntryIdSchema(),
15
+ /**
16
+ * 履歴エントリーの絶対 URL です。
17
+ */
18
+ url: v.nullable(HistoryEntryUrlSchema()),
19
+ /**
20
+ * 履歴エントリーリスト内の履歴エントリーのインデックスです。
21
+ */
22
+ index: v.pipe(v.number(), v.safeInteger(), v.minValue(-1)),
23
+ }));
24
+ function expectHistoryEntry(entry) {
25
+ if (entry == null) {
26
+ return null;
27
+ }
28
+ const { id, url, index } = v.expect(HistoryEntrySchema(), entry);
29
+ if (
30
+ // 特定の条件下で null に設定される場合があるので、そのときは null を返します。
31
+ !url ||
32
+ // 現在のドキュメントが完全にアクティブでない場合は -1 になってしまうので、そのときは null を返します。
33
+ index < 0) {
34
+ return null;
35
+ }
36
+ return {
37
+ id,
38
+ url,
39
+ index,
40
+ };
41
+ }
42
+ export default expectHistoryEntry;
@@ -0,0 +1,11 @@
1
+ import type { ReadonlyFormData } from "./readonly-form-data.types.js";
2
+ /**
3
+ * 読み取り専用のフォームデータを基に、プログラムによって仮想的な `HTMLFormElement` を動的に構築する関数です。
4
+ *
5
+ * 生成されたフォーム要素は画面上のレイアウトを崩さないよう非表示(`display: none`)に設定され、内包する各データは適切な `<input>` 要素にラップされてフォーム内に追加されます。
6
+ *
7
+ * @param formData 変換元となる読み取り専用のフォームデータです。
8
+ * @returns 子要素としてデータが詰め込まれた、DOM に未配置の非表示 `HTMLFormElement` を返します。
9
+ */
10
+ export default function formDataToHTMLFormElement(formData: ReadonlyFormData): HTMLFormElement;
11
+ //# sourceMappingURL=form-data-to-html-form-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-data-to-html-form-element.d.ts","sourceRoot":"","sources":["../../../src/core/form-data-to-html-form-element.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,eAAe,CA0B7F"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * 読み取り専用のフォームデータを基に、プログラムによって仮想的な `HTMLFormElement` を動的に構築する関数です。
3
+ *
4
+ * 生成されたフォーム要素は画面上のレイアウトを崩さないよう非表示(`display: none`)に設定され、内包する各データは適切な `<input>` 要素にラップされてフォーム内に追加されます。
5
+ *
6
+ * @param formData 変換元となる読み取り専用のフォームデータです。
7
+ * @returns 子要素としてデータが詰め込まれた、DOM に未配置の非表示 `HTMLFormElement` を返します。
8
+ */
9
+ export default function formDataToHTMLFormElement(formData) {
10
+ const form = document.createElement("form");
11
+ // 画面のレンダリングや視覚的なレイアウトに影響を及ぼさないよう、非表示スタイルを強制します。
12
+ form.style.display = "none";
13
+ formData.forEach((value, name) => {
14
+ const input = document.createElement("input");
15
+ if (value instanceof File) {
16
+ // DataTransfer オブジェクトを仲介役として利用し、FileList を安全に再構成します。
17
+ const df = new DataTransfer();
18
+ df.items.add(value);
19
+ input.type = "file";
20
+ input.name = name;
21
+ input.files = df.files;
22
+ }
23
+ else {
24
+ input.type = "hidden";
25
+ input.name = name;
26
+ input.value = value;
27
+ }
28
+ form.appendChild(input);
29
+ });
30
+ return form;
31
+ }
@@ -0,0 +1,17 @@
1
+ import * as v from "./_valibot.js";
2
+ /**
3
+ * 履歴エントリーの識別子を検証およびブランド化するためのスキーマを作成する関数です。
4
+ *
5
+ * スキーマの生成処理は一度だけ実行され、以降はシングルトンインスタンスとしてキャッシュから再利用されます。
6
+ */
7
+ declare const HistoryEntryIdSchema: () => import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").UuidAction<string, undefined>, import("valibot").BrandAction<string, "HistoryEntryId">]>;
8
+ /**
9
+ * `HistoryEntryIdSchema` による検証を通過する前の、入力値に対応する型定義です。
10
+ */
11
+ export type HistoryEntryIdLike = v.InferInput<ReturnType<typeof HistoryEntryIdSchema>>;
12
+ /**
13
+ * `HistoryEntryIdSchema` による検証および解析が正常に完了した、安全な出力値の型定義です。
14
+ */
15
+ export type HistoryEntryId = v.InferOutput<ReturnType<typeof HistoryEntryIdSchema>>;
16
+ export default HistoryEntryIdSchema;
17
+ //# sourceMappingURL=history-entry-id-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-entry-id-schema.d.ts","sourceRoot":"","sources":["../../../src/core/history-entry-id-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,eAAe,CAAC;AAEnC;;;;GAIG;AACH,QAAA,MAAM,oBAAoB,wMACwE,CAAC;AAEnG;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;AAEvF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;AAEpF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import singleton from "./_singleton.js";
2
+ import * as v from "./_valibot.js";
3
+ /**
4
+ * 履歴エントリーの識別子を検証およびブランド化するためのスキーマを作成する関数です。
5
+ *
6
+ * スキーマの生成処理は一度だけ実行され、以降はシングルトンインスタンスとしてキャッシュから再利用されます。
7
+ */
8
+ const HistoryEntryIdSchema = () => singleton("HistoryEntryIdSchema", () => v.pipe(v.string(), v.uuid(), v.brand("HistoryEntryId")));
9
+ export default HistoryEntryIdSchema;