shelving 1.236.0 → 1.236.2

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 (793) hide show
  1. package/api/cache/APICache.d.ts +69 -6
  2. package/api/cache/APICache.js +61 -5
  3. package/api/cache/EndpointCache.d.ts +75 -7
  4. package/api/cache/EndpointCache.js +75 -7
  5. package/api/endpoint/Endpoint.d.ts +141 -25
  6. package/api/endpoint/Endpoint.js +55 -9
  7. package/api/endpoint/util.d.ts +28 -6
  8. package/api/provider/APIProvider.d.ts +58 -14
  9. package/api/provider/APIProvider.js +24 -2
  10. package/api/provider/CachedAPIProvider.d.ts +58 -5
  11. package/api/provider/CachedAPIProvider.js +58 -6
  12. package/api/provider/ClientAPIProvider.d.ts +80 -4
  13. package/api/provider/ClientAPIProvider.js +75 -4
  14. package/api/provider/DebugAPIProvider.d.ts +40 -1
  15. package/api/provider/DebugAPIProvider.js +40 -1
  16. package/api/provider/JSONAPIProvider.d.ts +18 -2
  17. package/api/provider/JSONAPIProvider.js +18 -2
  18. package/api/provider/LoggingAPIProvider.d.ts +25 -2
  19. package/api/provider/LoggingAPIProvider.js +25 -2
  20. package/api/provider/MockAPIProvider.d.ts +72 -1
  21. package/api/provider/MockAPIProvider.js +60 -4
  22. package/api/provider/MockEndpointAPIProvider.d.ts +9 -0
  23. package/api/provider/MockEndpointAPIProvider.js +9 -0
  24. package/api/provider/ThroughAPIProvider.d.ts +67 -1
  25. package/api/provider/ThroughAPIProvider.js +67 -1
  26. package/api/provider/ValidationAPIProvider.d.ts +32 -1
  27. package/api/provider/ValidationAPIProvider.js +32 -1
  28. package/api/provider/XMLAPIProvider.d.ts +18 -2
  29. package/api/provider/XMLAPIProvider.js +18 -2
  30. package/api/store/EndpointStore.d.ts +24 -1
  31. package/api/store/EndpointStore.js +24 -1
  32. package/bun/BunPostgreSQLProvider.d.ts +38 -0
  33. package/bun/BunPostgreSQLProvider.js +38 -2
  34. package/cloudflare/CloudflareD1Provider.d.ts +29 -2
  35. package/cloudflare/CloudflareD1Provider.js +29 -2
  36. package/cloudflare/CloudflareKVProvider.d.ts +115 -0
  37. package/cloudflare/CloudflareKVProvider.js +115 -0
  38. package/cloudflare/types.d.ts +41 -7
  39. package/db/cache/CollectionCache.d.ts +83 -7
  40. package/db/cache/CollectionCache.js +83 -7
  41. package/db/cache/DBCache.d.ts +93 -8
  42. package/db/cache/DBCache.js +85 -7
  43. package/db/collection/Collection.d.ts +103 -15
  44. package/db/collection/Collection.js +58 -6
  45. package/db/migrate/DBMigrator.d.ts +29 -1
  46. package/db/migrate/DBMigrator.js +20 -1
  47. package/db/migrate/PostgreSQLMigrator.d.ts +8 -1
  48. package/db/migrate/PostgreSQLMigrator.js +8 -1
  49. package/db/migrate/SQLMigrator.d.ts +63 -4
  50. package/db/migrate/SQLMigrator.js +51 -1
  51. package/db/migrate/SQLiteMigrator.d.ts +8 -1
  52. package/db/migrate/SQLiteMigrator.js +8 -1
  53. package/db/provider/CacheDBProvider.d.ts +135 -1
  54. package/db/provider/CacheDBProvider.js +135 -1
  55. package/db/provider/ChangesDBProvider.d.ts +84 -3
  56. package/db/provider/ChangesDBProvider.js +77 -2
  57. package/db/provider/DBProvider.d.ts +148 -1
  58. package/db/provider/DBProvider.js +51 -1
  59. package/db/provider/DebugDBProvider.d.ts +118 -1
  60. package/db/provider/DebugDBProvider.js +118 -1
  61. package/db/provider/MemoryDBProvider.d.ts +262 -7
  62. package/db/provider/MemoryDBProvider.js +262 -7
  63. package/db/provider/MockDBProvider.d.ts +113 -2
  64. package/db/provider/MockDBProvider.js +106 -1
  65. package/db/provider/PostgreSQLProvider.d.ts +34 -2
  66. package/db/provider/PostgreSQLProvider.js +34 -4
  67. package/db/provider/SQLProvider.d.ts +250 -14
  68. package/db/provider/SQLProvider.js +237 -13
  69. package/db/provider/SQLiteProvider.d.ts +41 -1
  70. package/db/provider/SQLiteProvider.js +41 -4
  71. package/db/provider/ThroughDBProvider.d.ts +156 -1
  72. package/db/provider/ThroughDBProvider.js +156 -1
  73. package/db/provider/ValidationDBProvider.d.ts +120 -1
  74. package/db/provider/ValidationDBProvider.js +120 -1
  75. package/db/store/ItemStore.d.ts +38 -2
  76. package/db/store/ItemStore.js +38 -2
  77. package/db/store/QueryStore.d.ts +64 -6
  78. package/db/store/QueryStore.js +64 -6
  79. package/error/BaseError.d.ts +27 -2
  80. package/error/BaseError.js +14 -0
  81. package/error/Errors.d.ts +12 -1
  82. package/error/Errors.js +12 -1
  83. package/error/NetworkError.d.ts +13 -1
  84. package/error/NetworkError.js +13 -1
  85. package/error/RequestError.d.ts +90 -7
  86. package/error/RequestError.js +90 -7
  87. package/error/RequiredError.d.ts +11 -1
  88. package/error/RequiredError.js +11 -1
  89. package/error/ResponseError.d.ts +19 -2
  90. package/error/ResponseError.js +19 -2
  91. package/error/UnexpectedError.d.ts +14 -1
  92. package/error/UnexpectedError.js +14 -1
  93. package/error/UnimplementedError.d.ts +13 -1
  94. package/error/UnimplementedError.js +13 -1
  95. package/error/ValueError.d.ts +14 -1
  96. package/error/ValueError.js +14 -1
  97. package/extract/DirectoryExtractor.d.ts +35 -1
  98. package/extract/DirectoryExtractor.js +30 -0
  99. package/extract/Extractor.d.ts +21 -2
  100. package/extract/Extractor.js +7 -1
  101. package/extract/FileExtractor.d.ts +18 -0
  102. package/extract/FileExtractor.js +18 -0
  103. package/extract/IndexExtractor.d.ts +36 -1
  104. package/extract/IndexExtractor.js +31 -0
  105. package/extract/MarkupExtractor.d.ts +15 -0
  106. package/extract/MarkupExtractor.js +15 -0
  107. package/extract/MergingExtractor.d.ts +36 -1
  108. package/extract/MergingExtractor.js +31 -0
  109. package/extract/ModuleExtractor.d.ts +25 -1
  110. package/extract/ModuleExtractor.js +20 -0
  111. package/extract/PackageExtractor.d.ts +36 -1
  112. package/extract/PackageExtractor.js +31 -0
  113. package/extract/ThroughExtractor.d.ts +22 -1
  114. package/extract/ThroughExtractor.js +22 -1
  115. package/extract/TypescriptExtractor.d.ts +21 -0
  116. package/extract/TypescriptExtractor.js +28 -3
  117. package/firestore/client/FirestoreClientProvider.d.ts +129 -4
  118. package/firestore/client/FirestoreClientProvider.js +129 -4
  119. package/firestore/lite/FirestoreLiteProvider.d.ts +128 -3
  120. package/firestore/lite/FirestoreLiteProvider.js +128 -3
  121. package/firestore/server/FirestoreServerProvider.d.ts +129 -2
  122. package/firestore/server/FirestoreServerProvider.js +129 -2
  123. package/markup/MarkupParser.d.ts +57 -10
  124. package/markup/MarkupParser.js +50 -9
  125. package/markup/MarkupRule.d.ts +34 -1
  126. package/markup/Parser.d.ts +18 -0
  127. package/markup/Parser.js +11 -0
  128. package/markup/rule/blockquote.d.ts +3 -0
  129. package/markup/rule/blockquote.js +3 -0
  130. package/markup/rule/code.d.ts +3 -0
  131. package/markup/rule/code.js +3 -0
  132. package/markup/rule/fenced.d.ts +3 -0
  133. package/markup/rule/fenced.js +3 -0
  134. package/markup/rule/heading.d.ts +3 -0
  135. package/markup/rule/heading.js +3 -0
  136. package/markup/rule/index.d.ts +16 -3
  137. package/markup/rule/index.js +16 -3
  138. package/markup/rule/inline.d.ts +4 -1
  139. package/markup/rule/inline.js +5 -2
  140. package/markup/rule/linebreak.d.ts +3 -0
  141. package/markup/rule/linebreak.js +3 -0
  142. package/markup/rule/link.d.ts +6 -0
  143. package/markup/rule/link.js +6 -0
  144. package/markup/rule/ordered.d.ts +3 -0
  145. package/markup/rule/ordered.js +3 -0
  146. package/markup/rule/paragraph.d.ts +3 -0
  147. package/markup/rule/paragraph.js +3 -0
  148. package/markup/rule/separator.d.ts +3 -0
  149. package/markup/rule/separator.js +3 -0
  150. package/markup/rule/table.d.ts +3 -0
  151. package/markup/rule/table.js +3 -0
  152. package/markup/rule/unordered.d.ts +3 -0
  153. package/markup/rule/unordered.js +3 -0
  154. package/markup/util/regexp.d.ts +80 -3
  155. package/markup/util/regexp.js +44 -0
  156. package/package.json +1 -1
  157. package/react/createAPIContext.d.ts +15 -0
  158. package/react/createAPIContext.js +10 -0
  159. package/react/createDBContext.d.ts +15 -0
  160. package/react/createDBContext.js +10 -0
  161. package/react/useInstance.d.ts +11 -0
  162. package/react/useInstance.js +11 -0
  163. package/react/useLazy.d.ts +11 -0
  164. package/react/useMap.d.ts +14 -1
  165. package/react/useMap.js +14 -1
  166. package/react/useReduce.d.ts +12 -0
  167. package/react/useSequence.d.ts +10 -0
  168. package/react/useSequence.js +10 -0
  169. package/react/useStore.d.ts +16 -1
  170. package/schema/AddressSchema.d.ts +41 -4
  171. package/schema/AddressSchema.js +36 -3
  172. package/schema/ArraySchema.d.ts +48 -6
  173. package/schema/ArraySchema.js +40 -5
  174. package/schema/BooleanSchema.d.ts +59 -3
  175. package/schema/BooleanSchema.js +51 -2
  176. package/schema/ChoiceSchema.d.ts +61 -7
  177. package/schema/ChoiceSchema.js +44 -2
  178. package/schema/ColorSchema.d.ts +41 -8
  179. package/schema/ColorSchema.js +36 -7
  180. package/schema/CountrySchema.d.ts +44 -4
  181. package/schema/CountrySchema.js +39 -3
  182. package/schema/CurrencyAmountSchema.d.ts +104 -8
  183. package/schema/CurrencyAmountSchema.js +91 -4
  184. package/schema/CurrencyCodeSchema.d.ts +56 -4
  185. package/schema/CurrencyCodeSchema.js +49 -3
  186. package/schema/DataSchema.d.ts +101 -10
  187. package/schema/DataSchema.js +87 -8
  188. package/schema/DateSchema.d.ts +73 -4
  189. package/schema/DateSchema.js +57 -2
  190. package/schema/DateTimeSchema.d.ts +40 -3
  191. package/schema/DateTimeSchema.js +40 -3
  192. package/schema/DictionarySchema.d.ts +54 -4
  193. package/schema/DictionarySchema.js +47 -3
  194. package/schema/EmailSchema.d.ts +34 -3
  195. package/schema/EmailSchema.js +34 -3
  196. package/schema/EntitySchema.d.ts +45 -4
  197. package/schema/EntitySchema.js +38 -3
  198. package/schema/FileSchema.d.ts +45 -4
  199. package/schema/FileSchema.js +39 -3
  200. package/schema/KeySchema.d.ts +32 -3
  201. package/schema/KeySchema.js +32 -3
  202. package/schema/NullableSchema.d.ts +64 -4
  203. package/schema/NullableSchema.js +59 -3
  204. package/schema/NumberSchema.d.ts +137 -12
  205. package/schema/NumberSchema.js +127 -11
  206. package/schema/OptionalSchema.d.ts +61 -4
  207. package/schema/OptionalSchema.js +56 -4
  208. package/schema/PasswordSchema.d.ts +37 -1
  209. package/schema/PasswordSchema.js +32 -1
  210. package/schema/PhoneSchema.d.ts +40 -4
  211. package/schema/PhoneSchema.js +35 -3
  212. package/schema/RequiredSchema.d.ts +39 -3
  213. package/schema/RequiredSchema.js +41 -3
  214. package/schema/Schema.d.ts +67 -7
  215. package/schema/Schema.js +42 -6
  216. package/schema/SlugSchema.d.ts +37 -5
  217. package/schema/SlugSchema.js +37 -5
  218. package/schema/StringSchema.d.ts +124 -19
  219. package/schema/StringSchema.js +107 -17
  220. package/schema/ThroughSchema.d.ts +35 -2
  221. package/schema/ThroughSchema.js +30 -1
  222. package/schema/TimeSchema.d.ts +43 -3
  223. package/schema/TimeSchema.js +43 -3
  224. package/schema/URISchema.d.ts +67 -6
  225. package/schema/URISchema.js +60 -6
  226. package/schema/URLSchema.d.ts +69 -6
  227. package/schema/URLSchema.js +61 -6
  228. package/schema/UUIDSchema.d.ts +37 -4
  229. package/schema/UUIDSchema.js +37 -4
  230. package/sequence/DeferredSequence.d.ts +49 -3
  231. package/sequence/DeferredSequence.js +39 -3
  232. package/sequence/InspectSequence.d.ts +59 -5
  233. package/sequence/InspectSequence.js +59 -5
  234. package/sequence/LazySequence.d.ts +30 -2
  235. package/sequence/LazySequence.js +30 -2
  236. package/sequence/Sequence.d.ts +11 -0
  237. package/sequence/Sequence.js +10 -0
  238. package/sequence/ThroughSequence.d.ts +15 -0
  239. package/sequence/ThroughSequence.js +15 -0
  240. package/store/ArrayStore.d.ts +74 -11
  241. package/store/ArrayStore.js +74 -11
  242. package/store/BooleanStore.d.ts +19 -2
  243. package/store/BooleanStore.js +19 -2
  244. package/store/BusyStore.d.ts +13 -1
  245. package/store/BusyStore.js +13 -1
  246. package/store/DataStore.d.ts +118 -15
  247. package/store/DataStore.js +118 -15
  248. package/store/DictionaryStore.d.ts +66 -8
  249. package/store/DictionaryStore.js +66 -8
  250. package/store/FetchStore.d.ts +43 -6
  251. package/store/FetchStore.js +36 -5
  252. package/store/PathStore.d.ts +44 -5
  253. package/store/PathStore.js +44 -5
  254. package/store/PayloadFetchStore.d.ts +16 -1
  255. package/store/PayloadFetchStore.js +9 -1
  256. package/store/Store.d.ts +85 -16
  257. package/store/Store.js +52 -10
  258. package/store/URLStore.d.ts +173 -15
  259. package/store/URLStore.js +173 -15
  260. package/test/basics.d.ts +70 -0
  261. package/test/basics.js +60 -0
  262. package/test/people.d.ts +45 -0
  263. package/test/people.js +35 -0
  264. package/test/util.d.ts +30 -3
  265. package/test/util.js +30 -3
  266. package/ui/app/App.d.ts +14 -2
  267. package/ui/app/App.js +9 -2
  268. package/ui/app/App.tsx +14 -2
  269. package/ui/block/Address.d.ts +45 -3
  270. package/ui/block/Address.js +30 -3
  271. package/ui/block/Address.tsx +46 -3
  272. package/ui/block/Block.d.ts +23 -1
  273. package/ui/block/Block.js +13 -1
  274. package/ui/block/Block.tsx +23 -1
  275. package/ui/block/Blockquote.d.ts +21 -0
  276. package/ui/block/Blockquote.js +16 -0
  277. package/ui/block/Blockquote.tsx +22 -0
  278. package/ui/block/Caption.d.ts +21 -1
  279. package/ui/block/Caption.js +16 -1
  280. package/ui/block/Caption.tsx +22 -1
  281. package/ui/block/Card.d.ts +6 -0
  282. package/ui/block/Card.js +1 -0
  283. package/ui/block/Card.tsx +6 -0
  284. package/ui/block/Definitions.d.ts +18 -0
  285. package/ui/block/Definitions.js +13 -0
  286. package/ui/block/Definitions.tsx +19 -0
  287. package/ui/block/Divider.d.ts +21 -0
  288. package/ui/block/Divider.js +16 -0
  289. package/ui/block/Divider.tsx +22 -0
  290. package/ui/block/Heading.d.ts +20 -1
  291. package/ui/block/Heading.js +15 -0
  292. package/ui/block/Heading.tsx +21 -1
  293. package/ui/block/Image.d.ts +23 -0
  294. package/ui/block/Image.js +18 -0
  295. package/ui/block/Image.tsx +24 -0
  296. package/ui/block/Label.d.ts +18 -3
  297. package/ui/block/Label.js +13 -3
  298. package/ui/block/Label.tsx +18 -3
  299. package/ui/block/List.d.ts +30 -0
  300. package/ui/block/List.js +25 -0
  301. package/ui/block/List.tsx +32 -0
  302. package/ui/block/Panel.d.ts +13 -1
  303. package/ui/block/Panel.js +3 -0
  304. package/ui/block/Panel.tsx +13 -1
  305. package/ui/block/Paragraph.d.ts +23 -0
  306. package/ui/block/Paragraph.js +18 -0
  307. package/ui/block/Paragraph.tsx +24 -0
  308. package/ui/block/Preformatted.d.ts +20 -0
  309. package/ui/block/Preformatted.js +15 -0
  310. package/ui/block/Preformatted.tsx +21 -0
  311. package/ui/block/Prose.d.ts +14 -1
  312. package/ui/block/Prose.js +9 -1
  313. package/ui/block/Prose.tsx +14 -1
  314. package/ui/block/Section.d.ts +69 -6
  315. package/ui/block/Section.js +59 -6
  316. package/ui/block/Section.tsx +70 -6
  317. package/ui/block/Subheading.d.ts +20 -1
  318. package/ui/block/Subheading.js +15 -0
  319. package/ui/block/Subheading.tsx +21 -1
  320. package/ui/block/Table.d.ts +20 -0
  321. package/ui/block/Table.js +15 -0
  322. package/ui/block/Table.tsx +21 -0
  323. package/ui/block/Title.d.ts +20 -1
  324. package/ui/block/Title.js +15 -0
  325. package/ui/block/Title.tsx +21 -1
  326. package/ui/block/Video.d.ts +50 -3
  327. package/ui/block/Video.js +30 -3
  328. package/ui/block/Video.tsx +50 -3
  329. package/ui/dialog/Dialog.d.ts +28 -1
  330. package/ui/dialog/Dialog.js +18 -1
  331. package/ui/dialog/Dialog.tsx +28 -1
  332. package/ui/dialog/Dialogs.d.ts +53 -6
  333. package/ui/dialog/Dialogs.js +43 -6
  334. package/ui/dialog/Dialogs.tsx +53 -6
  335. package/ui/dialog/Modal.d.ts +13 -0
  336. package/ui/dialog/Modal.js +8 -0
  337. package/ui/dialog/Modal.tsx +13 -0
  338. package/ui/docs/DocumentationButtons.d.ts +5 -1
  339. package/ui/docs/DocumentationButtons.tsx +5 -1
  340. package/ui/docs/DocumentationCard.d.ts +6 -1
  341. package/ui/docs/DocumentationCard.js +6 -1
  342. package/ui/docs/DocumentationCard.tsx +6 -1
  343. package/ui/docs/DocumentationKind.d.ts +13 -1
  344. package/ui/docs/DocumentationKind.js +8 -0
  345. package/ui/docs/DocumentationKind.tsx +13 -1
  346. package/ui/docs/DocumentationPage.d.ts +6 -1
  347. package/ui/docs/DocumentationPage.js +6 -1
  348. package/ui/docs/DocumentationPage.tsx +6 -1
  349. package/ui/docs/DocumentationSignatures.d.ts +10 -1
  350. package/ui/docs/DocumentationSignatures.js +5 -0
  351. package/ui/docs/DocumentationSignatures.tsx +10 -1
  352. package/ui/form/ArrayInput.d.ts +15 -0
  353. package/ui/form/ArrayInput.tsx +15 -0
  354. package/ui/form/ArrayRadioInputs.d.ts +10 -0
  355. package/ui/form/ArrayRadioInputs.js +5 -0
  356. package/ui/form/ArrayRadioInputs.tsx +10 -0
  357. package/ui/form/Button.d.ts +19 -3
  358. package/ui/form/Button.js +14 -2
  359. package/ui/form/Button.tsx +19 -3
  360. package/ui/form/ButtonInput.d.ts +14 -1
  361. package/ui/form/ButtonInput.js +9 -1
  362. package/ui/form/ButtonInput.tsx +14 -1
  363. package/ui/form/ButtonInputPopover.d.ts +10 -0
  364. package/ui/form/ButtonInputPopover.js +5 -0
  365. package/ui/form/ButtonInputPopover.tsx +10 -0
  366. package/ui/form/ButtonPopover.d.ts +11 -1
  367. package/ui/form/ButtonPopover.js +6 -1
  368. package/ui/form/ButtonPopover.tsx +11 -1
  369. package/ui/form/CheckboxInput.d.ts +14 -1
  370. package/ui/form/CheckboxInput.js +9 -1
  371. package/ui/form/CheckboxInput.tsx +14 -1
  372. package/ui/form/ChoiceRadioInputs.d.ts +10 -0
  373. package/ui/form/ChoiceRadioInputs.tsx +10 -0
  374. package/ui/form/Clickable.d.ts +45 -5
  375. package/ui/form/Clickable.js +30 -3
  376. package/ui/form/Clickable.tsx +45 -5
  377. package/ui/form/DataInput.d.ts +14 -0
  378. package/ui/form/DataInput.tsx +14 -0
  379. package/ui/form/DateInput.d.ts +14 -0
  380. package/ui/form/DateInput.js +9 -0
  381. package/ui/form/DateInput.tsx +14 -0
  382. package/ui/form/DictionaryInput.d.ts +15 -0
  383. package/ui/form/DictionaryInput.tsx +15 -0
  384. package/ui/form/Field.d.ts +5 -0
  385. package/ui/form/Field.tsx +5 -0
  386. package/ui/form/FileInput.d.ts +14 -0
  387. package/ui/form/FileInput.js +9 -0
  388. package/ui/form/FileInput.tsx +14 -0
  389. package/ui/form/Form.d.ts +55 -6
  390. package/ui/form/Form.js +35 -3
  391. package/ui/form/Form.tsx +55 -6
  392. package/ui/form/FormContext.d.ts +24 -3
  393. package/ui/form/FormContext.js +5 -1
  394. package/ui/form/FormContext.tsx +24 -3
  395. package/ui/form/FormFields.d.ts +15 -2
  396. package/ui/form/FormFields.js +15 -2
  397. package/ui/form/FormFields.tsx +15 -2
  398. package/ui/form/FormFooter.d.ts +13 -3
  399. package/ui/form/FormFooter.js +8 -3
  400. package/ui/form/FormFooter.tsx +13 -3
  401. package/ui/form/FormInput.d.ts +21 -2
  402. package/ui/form/FormInput.js +16 -2
  403. package/ui/form/FormInput.tsx +21 -2
  404. package/ui/form/FormMessage.d.ts +8 -1
  405. package/ui/form/FormMessage.js +8 -1
  406. package/ui/form/FormMessage.tsx +8 -2
  407. package/ui/form/FormNotice.d.ts +8 -1
  408. package/ui/form/FormNotice.js +8 -1
  409. package/ui/form/FormNotice.tsx +8 -2
  410. package/ui/form/FormNotify.d.ts +8 -1
  411. package/ui/form/FormNotify.js +8 -1
  412. package/ui/form/FormNotify.tsx +8 -2
  413. package/ui/form/FormStore.d.ts +50 -6
  414. package/ui/form/FormStore.js +50 -6
  415. package/ui/form/FormStore.tsx +50 -6
  416. package/ui/form/Input.d.ts +65 -1
  417. package/ui/form/Input.js +60 -0
  418. package/ui/form/Input.tsx +77 -1
  419. package/ui/form/NumberInput.d.ts +14 -0
  420. package/ui/form/NumberInput.js +9 -0
  421. package/ui/form/NumberInput.tsx +14 -0
  422. package/ui/form/OutputInput.d.ts +13 -1
  423. package/ui/form/OutputInput.js +8 -1
  424. package/ui/form/OutputInput.tsx +13 -1
  425. package/ui/form/Popover.d.ts +18 -2
  426. package/ui/form/Popover.js +8 -2
  427. package/ui/form/Popover.tsx +18 -2
  428. package/ui/form/Progress.d.ts +26 -2
  429. package/ui/form/Progress.js +16 -2
  430. package/ui/form/Progress.tsx +26 -2
  431. package/ui/form/QueryInput.d.ts +14 -5
  432. package/ui/form/QueryInput.js +9 -5
  433. package/ui/form/QueryInput.tsx +14 -5
  434. package/ui/form/RadioInput.d.ts +14 -1
  435. package/ui/form/RadioInput.js +9 -1
  436. package/ui/form/RadioInput.tsx +14 -1
  437. package/ui/form/SchemaInput.d.ts +138 -7
  438. package/ui/form/SchemaInput.js +79 -4
  439. package/ui/form/SchemaInput.tsx +138 -7
  440. package/ui/form/SelectInput.d.ts +14 -0
  441. package/ui/form/SelectInput.tsx +14 -0
  442. package/ui/form/SubmitButton.d.ts +14 -1
  443. package/ui/form/SubmitButton.js +9 -1
  444. package/ui/form/SubmitButton.tsx +14 -1
  445. package/ui/form/TextInput.d.ts +15 -0
  446. package/ui/form/TextInput.js +10 -0
  447. package/ui/form/TextInput.tsx +15 -0
  448. package/ui/inline/Code.d.ts +29 -0
  449. package/ui/inline/Code.js +24 -0
  450. package/ui/inline/Code.tsx +31 -0
  451. package/ui/inline/Deleted.d.ts +23 -0
  452. package/ui/inline/Deleted.js +18 -0
  453. package/ui/inline/Deleted.tsx +24 -0
  454. package/ui/inline/Emphasis.d.ts +23 -0
  455. package/ui/inline/Emphasis.js +18 -0
  456. package/ui/inline/Emphasis.tsx +24 -0
  457. package/ui/inline/Inserted.d.ts +23 -0
  458. package/ui/inline/Inserted.js +18 -0
  459. package/ui/inline/Inserted.tsx +24 -0
  460. package/ui/inline/Link.d.ts +23 -0
  461. package/ui/inline/Link.js +18 -0
  462. package/ui/inline/Link.tsx +24 -0
  463. package/ui/inline/Mark.d.ts +23 -0
  464. package/ui/inline/Mark.js +18 -0
  465. package/ui/inline/Mark.tsx +24 -0
  466. package/ui/inline/Small.d.ts +23 -0
  467. package/ui/inline/Small.js +18 -0
  468. package/ui/inline/Small.tsx +24 -0
  469. package/ui/inline/Strong.d.ts +23 -0
  470. package/ui/inline/Strong.js +18 -0
  471. package/ui/inline/Strong.tsx +24 -0
  472. package/ui/inline/Subscript.d.ts +23 -0
  473. package/ui/inline/Subscript.js +18 -0
  474. package/ui/inline/Subscript.tsx +24 -0
  475. package/ui/inline/Superscript.d.ts +23 -0
  476. package/ui/inline/Superscript.js +18 -0
  477. package/ui/inline/Superscript.tsx +24 -0
  478. package/ui/inline/When.d.ts +42 -3
  479. package/ui/inline/When.js +27 -3
  480. package/ui/inline/When.tsx +42 -3
  481. package/ui/layout/CenteredLayout.d.ts +12 -1
  482. package/ui/layout/CenteredLayout.js +7 -1
  483. package/ui/layout/CenteredLayout.tsx +12 -1
  484. package/ui/layout/Layout.d.ts +12 -3
  485. package/ui/layout/Layout.js +12 -3
  486. package/ui/layout/Layout.ts +12 -3
  487. package/ui/layout/SidebarLayout.d.ts +12 -0
  488. package/ui/layout/SidebarLayout.js +7 -0
  489. package/ui/layout/SidebarLayout.tsx +12 -0
  490. package/ui/menu/Menu.d.ts +22 -0
  491. package/ui/menu/Menu.js +12 -0
  492. package/ui/menu/Menu.tsx +22 -0
  493. package/ui/misc/Catcher.d.ts +77 -5
  494. package/ui/misc/Catcher.js +47 -5
  495. package/ui/misc/Catcher.tsx +77 -5
  496. package/ui/misc/Loading.d.ts +20 -0
  497. package/ui/misc/Loading.js +15 -0
  498. package/ui/misc/Loading.tsx +20 -0
  499. package/ui/misc/Mapper.d.ts +13 -1
  500. package/ui/misc/Mapper.js +4 -0
  501. package/ui/misc/Mapper.tsx +13 -1
  502. package/ui/misc/Markup.d.ts +9 -1
  503. package/ui/misc/Markup.js +4 -0
  504. package/ui/misc/Markup.tsx +9 -1
  505. package/ui/misc/MetaContext.d.ts +24 -7
  506. package/ui/misc/MetaContext.js +19 -6
  507. package/ui/misc/MetaContext.tsx +24 -7
  508. package/ui/misc/StatusIcon.d.ts +16 -1
  509. package/ui/misc/StatusIcon.js +11 -1
  510. package/ui/misc/StatusIcon.tsx +16 -1
  511. package/ui/misc/Tag.d.ts +21 -0
  512. package/ui/misc/Tag.js +11 -0
  513. package/ui/misc/Tag.tsx +21 -0
  514. package/ui/notice/Message.d.ts +27 -1
  515. package/ui/notice/Message.js +22 -1
  516. package/ui/notice/Message.tsx +27 -1
  517. package/ui/notice/Notice.d.ts +24 -0
  518. package/ui/notice/Notice.js +19 -0
  519. package/ui/notice/Notice.tsx +24 -0
  520. package/ui/notice/NoticeStore.d.ts +30 -2
  521. package/ui/notice/NoticeStore.js +30 -2
  522. package/ui/notice/NoticeStore.ts +30 -2
  523. package/ui/notice/Notices.d.ts +11 -1
  524. package/ui/notice/Notices.js +6 -1
  525. package/ui/notice/Notices.tsx +11 -1
  526. package/ui/notice/NoticesStore.d.ts +23 -3
  527. package/ui/notice/NoticesStore.js +23 -3
  528. package/ui/notice/NoticesStore.ts +23 -3
  529. package/ui/page/HTML.d.ts +13 -2
  530. package/ui/page/HTML.js +8 -2
  531. package/ui/page/HTML.tsx +13 -2
  532. package/ui/page/Head.d.ts +5 -1
  533. package/ui/page/Head.js +5 -1
  534. package/ui/page/Head.tsx +5 -1
  535. package/ui/page/Page.d.ts +12 -1
  536. package/ui/page/Page.js +7 -1
  537. package/ui/page/Page.tsx +12 -1
  538. package/ui/router/Navigation.d.ts +11 -0
  539. package/ui/router/Navigation.js +6 -0
  540. package/ui/router/Navigation.tsx +11 -0
  541. package/ui/router/NavigationContext.d.ts +14 -2
  542. package/ui/router/NavigationContext.js +14 -2
  543. package/ui/router/NavigationContext.tsx +14 -2
  544. package/ui/router/NavigationStore.d.ts +29 -1
  545. package/ui/router/NavigationStore.js +29 -1
  546. package/ui/router/NavigationStore.tsx +29 -1
  547. package/ui/router/Router.d.ts +12 -1
  548. package/ui/router/Router.js +7 -1
  549. package/ui/router/Router.tsx +12 -1
  550. package/ui/router/Routes.d.ts +14 -4
  551. package/ui/router/Routes.tsx +14 -4
  552. package/ui/style/Color.d.ts +15 -2
  553. package/ui/style/Color.js +5 -0
  554. package/ui/style/Color.tsx +15 -2
  555. package/ui/style/Flex.d.ts +41 -4
  556. package/ui/style/Flex.js +26 -3
  557. package/ui/style/Flex.tsx +41 -4
  558. package/ui/style/Gap.d.ts +18 -3
  559. package/ui/style/Gap.js +8 -1
  560. package/ui/style/Gap.tsx +18 -3
  561. package/ui/style/Padding.d.ts +18 -3
  562. package/ui/style/Padding.js +8 -1
  563. package/ui/style/Padding.tsx +18 -3
  564. package/ui/style/Scroll.d.ts +36 -1
  565. package/ui/style/Scroll.js +26 -1
  566. package/ui/style/Scroll.tsx +37 -1
  567. package/ui/style/Space.d.ts +18 -3
  568. package/ui/style/Space.js +8 -1
  569. package/ui/style/Space.tsx +18 -3
  570. package/ui/style/Status.d.ts +23 -7
  571. package/ui/style/Status.js +13 -5
  572. package/ui/style/Status.tsx +23 -7
  573. package/ui/style/Tint.d.ts +7 -1
  574. package/ui/style/Tint.js +7 -1
  575. package/ui/style/Tint.tsx +7 -1
  576. package/ui/style/Typography.d.ts +38 -6
  577. package/ui/style/Typography.js +8 -0
  578. package/ui/style/Typography.tsx +38 -6
  579. package/ui/style/Width.d.ts +18 -1
  580. package/ui/style/Width.js +8 -0
  581. package/ui/style/Width.tsx +18 -1
  582. package/ui/transition/CollapseTransition.d.ts +13 -0
  583. package/ui/transition/CollapseTransition.js +8 -0
  584. package/ui/transition/CollapseTransition.tsx +13 -0
  585. package/ui/transition/FadeTransition.d.ts +13 -0
  586. package/ui/transition/FadeTransition.js +8 -0
  587. package/ui/transition/FadeTransition.tsx +13 -0
  588. package/ui/transition/HorizontalTransition.d.ts +13 -0
  589. package/ui/transition/HorizontalTransition.js +8 -0
  590. package/ui/transition/HorizontalTransition.tsx +13 -0
  591. package/ui/transition/Transition.d.ts +12 -4
  592. package/ui/transition/Transition.js +7 -3
  593. package/ui/transition/Transition.tsx +12 -4
  594. package/ui/transition/VerticalTransition.d.ts +13 -0
  595. package/ui/transition/VerticalTransition.js +8 -0
  596. package/ui/transition/VerticalTransition.tsx +13 -0
  597. package/ui/transition/util.d.ts +16 -6
  598. package/ui/transition/util.js +7 -1
  599. package/ui/transition/util.tsx +16 -6
  600. package/ui/tree/TreeApp.d.ts +11 -0
  601. package/ui/tree/TreeApp.js +6 -0
  602. package/ui/tree/TreeApp.tsx +11 -0
  603. package/ui/tree/TreeBreadcrumbs.d.ts +11 -0
  604. package/ui/tree/TreeBreadcrumbs.js +6 -0
  605. package/ui/tree/TreeBreadcrumbs.tsx +11 -0
  606. package/ui/tree/TreeButton.d.ts +9 -1
  607. package/ui/tree/TreeButton.js +4 -0
  608. package/ui/tree/TreeButton.tsx +9 -1
  609. package/ui/tree/TreeCard.d.ts +8 -1
  610. package/ui/tree/TreeCard.js +8 -1
  611. package/ui/tree/TreeCard.tsx +8 -1
  612. package/ui/tree/TreeCards.d.ts +16 -1
  613. package/ui/tree/TreeCards.js +11 -1
  614. package/ui/tree/TreeCards.tsx +16 -1
  615. package/ui/tree/TreeContext.d.ts +18 -1
  616. package/ui/tree/TreeContext.js +18 -1
  617. package/ui/tree/TreeContext.tsx +18 -1
  618. package/ui/tree/TreeMenu.d.ts +28 -1
  619. package/ui/tree/TreeMenu.js +23 -1
  620. package/ui/tree/TreeMenu.tsx +28 -1
  621. package/ui/tree/TreePage.d.ts +6 -0
  622. package/ui/tree/TreePage.js +6 -0
  623. package/ui/tree/TreePage.tsx +6 -0
  624. package/ui/tree/TreeRouter.d.ts +17 -2
  625. package/ui/tree/TreeRouter.js +12 -2
  626. package/ui/tree/TreeRouter.tsx +17 -2
  627. package/ui/tree/TreeSidebar.d.ts +11 -0
  628. package/ui/tree/TreeSidebar.js +6 -0
  629. package/ui/tree/TreeSidebar.tsx +11 -0
  630. package/ui/util/context.d.ts +13 -1
  631. package/ui/util/context.ts +13 -1
  632. package/ui/util/css.d.ts +17 -4
  633. package/ui/util/css.js +5 -1
  634. package/ui/util/css.ts +17 -4
  635. package/ui/util/event.d.ts +9 -1
  636. package/ui/util/event.js +9 -1
  637. package/ui/util/event.ts +9 -1
  638. package/ui/util/focus.d.ts +24 -5
  639. package/ui/util/focus.js +24 -5
  640. package/ui/util/focus.ts +24 -5
  641. package/ui/util/meta.d.ts +113 -21
  642. package/ui/util/meta.js +73 -13
  643. package/ui/util/meta.ts +113 -21
  644. package/ui/util/notice.d.ts +98 -10
  645. package/ui/util/notice.js +93 -9
  646. package/ui/util/notice.ts +98 -10
  647. package/ui/util/props.d.ts +10 -2
  648. package/ui/util/props.ts +10 -2
  649. package/ui/util/refresh.d.ts +10 -1
  650. package/ui/util/refresh.js +10 -1
  651. package/ui/util/refresh.ts +10 -1
  652. package/ui/util/scroll.d.ts +20 -4
  653. package/ui/util/scroll.js +20 -4
  654. package/ui/util/scroll.ts +20 -4
  655. package/ui/util/state.d.ts +19 -5
  656. package/ui/util/state.js +19 -5
  657. package/ui/util/state.ts +19 -5
  658. package/util/ansi.d.ts +118 -0
  659. package/util/ansi.js +116 -0
  660. package/util/array.d.ts +349 -33
  661. package/util/array.js +284 -27
  662. package/util/async.d.ts +87 -9
  663. package/util/async.js +80 -8
  664. package/util/base64.d.ts +56 -6
  665. package/util/base64.js +56 -6
  666. package/util/boolean.d.ts +75 -10
  667. package/util/boolean.js +75 -10
  668. package/util/buffer.d.ts +26 -3
  669. package/util/buffer.js +21 -3
  670. package/util/bytes.d.ts +42 -4
  671. package/util/bytes.js +32 -2
  672. package/util/class.d.ts +59 -8
  673. package/util/class.js +44 -5
  674. package/util/color.d.ts +131 -13
  675. package/util/color.js +126 -12
  676. package/util/constants.d.ts +132 -19
  677. package/util/constants.js +132 -19
  678. package/util/crypto.d.ts +17 -1
  679. package/util/crypto.js +17 -1
  680. package/util/currency.d.ts +38 -4
  681. package/util/currency.js +33 -3
  682. package/util/data.d.ts +139 -24
  683. package/util/data.js +39 -5
  684. package/util/date.d.ts +152 -18
  685. package/util/date.js +147 -17
  686. package/util/debug.d.ts +112 -11
  687. package/util/debug.js +114 -11
  688. package/util/dictionary.d.ts +205 -24
  689. package/util/dictionary.js +162 -17
  690. package/util/diff.d.ts +22 -3
  691. package/util/diff.js +11 -1
  692. package/util/dispose.d.ts +74 -2
  693. package/util/dispose.js +74 -2
  694. package/util/duration.d.ts +278 -16
  695. package/util/duration.js +267 -15
  696. package/util/element.d.ts +59 -6
  697. package/util/element.js +32 -3
  698. package/util/entity.d.ts +39 -6
  699. package/util/entity.js +5 -1
  700. package/util/entry.d.ts +56 -9
  701. package/util/entry.js +32 -4
  702. package/util/env.d.ts +26 -4
  703. package/util/env.js +26 -4
  704. package/util/equal.d.ts +181 -17
  705. package/util/equal.js +181 -17
  706. package/util/error.d.ts +57 -5
  707. package/util/error.js +52 -4
  708. package/util/file.d.ts +30 -7
  709. package/util/file.js +25 -6
  710. package/util/filter.d.ts +36 -4
  711. package/util/filter.js +31 -3
  712. package/util/focus.d.ts +9 -1
  713. package/util/focus.js +9 -1
  714. package/util/format.d.ts +186 -22
  715. package/util/format.js +135 -14
  716. package/util/function.d.ts +66 -11
  717. package/util/function.js +31 -4
  718. package/util/geo.d.ts +60 -8
  719. package/util/geo.js +45 -5
  720. package/util/hash.d.ts +21 -2
  721. package/util/hash.js +21 -2
  722. package/util/http.d.ts +134 -19
  723. package/util/http.js +94 -11
  724. package/util/hydrate.d.ts +19 -2
  725. package/util/hydrate.js +12 -1
  726. package/util/item.d.ts +70 -11
  727. package/util/item.js +35 -4
  728. package/util/iterate.d.ts +109 -13
  729. package/util/iterate.js +86 -10
  730. package/util/jwt.d.ts +47 -13
  731. package/util/jwt.js +36 -12
  732. package/util/lazy.d.ts +9 -6
  733. package/util/link.d.ts +10 -3
  734. package/util/link.js +5 -2
  735. package/util/log.d.ts +26 -3
  736. package/util/log.js +26 -3
  737. package/util/map.d.ts +144 -19
  738. package/util/map.js +101 -11
  739. package/util/merge.d.ts +23 -1
  740. package/util/merge.js +6 -0
  741. package/util/null.d.ts +102 -13
  742. package/util/null.js +92 -11
  743. package/util/number.d.ts +125 -8
  744. package/util/number.js +120 -7
  745. package/util/object.d.ts +263 -31
  746. package/util/object.js +154 -17
  747. package/util/path.d.ts +91 -15
  748. package/util/path.js +60 -9
  749. package/util/query.d.ts +78 -9
  750. package/util/query.js +58 -6
  751. package/util/random.d.ts +67 -4
  752. package/util/random.js +67 -4
  753. package/util/regexp.d.ts +201 -24
  754. package/util/regexp.js +106 -11
  755. package/util/sequence.d.ts +66 -8
  756. package/util/sequence.js +52 -7
  757. package/util/serialise.d.ts +7 -1
  758. package/util/serialise.js +7 -1
  759. package/util/set.d.ts +103 -13
  760. package/util/set.js +83 -9
  761. package/util/sort.d.ts +32 -7
  762. package/util/sort.js +26 -6
  763. package/util/source.d.ts +28 -3
  764. package/util/source.js +22 -2
  765. package/util/start.d.ts +62 -5
  766. package/util/start.js +47 -2
  767. package/util/string.d.ts +209 -25
  768. package/util/string.js +188 -21
  769. package/util/template.d.ts +58 -9
  770. package/util/template.js +45 -6
  771. package/util/timeout.d.ts +35 -11
  772. package/util/timeout.js +35 -11
  773. package/util/transform.d.ts +87 -8
  774. package/util/transform.js +75 -7
  775. package/util/tree.d.ts +39 -6
  776. package/util/tree.js +3 -0
  777. package/util/types.d.ts +8 -2
  778. package/util/undefined.d.ts +47 -6
  779. package/util/undefined.js +47 -6
  780. package/util/units.d.ts +107 -12
  781. package/util/units.js +97 -12
  782. package/util/update.d.ts +36 -4
  783. package/util/update.js +24 -2
  784. package/util/uri.d.ts +138 -6
  785. package/util/uri.js +44 -3
  786. package/util/url.d.ts +152 -7
  787. package/util/url.js +136 -5
  788. package/util/uuid.d.ts +28 -3
  789. package/util/uuid.js +28 -3
  790. package/util/validate.d.ts +85 -20
  791. package/util/validate.js +61 -12
  792. package/util/xml.d.ts +9 -10
  793. package/util/xml.js +9 -10
@@ -3,49 +3,207 @@ import type { AbsolutePath } from "../util/index.js";
3
3
  import { type PossibleURIParams, type URIParams, type URIScheme } from "../util/uri.js";
4
4
  import { type ImmutableURL, type PossibleURL, type URLString } from "../util/url.js";
5
5
  import { BusyStore } from "./BusyStore.js";
6
- /** Store a URL, e.g. `https://top.com/a/b/c` */
6
+ /**
7
+ * Store a URL, e.g. `https://top.com/a/b/c`
8
+ * - Accepts any `PossibleURL` as input and normalises it to an `ImmutableURL` (resolved against `this.base`).
9
+ * - Exposes the URL's components (`href`, `origin`, `pathname`, etc.) and helpers to read and mutate its search params.
10
+ *
11
+ * @param url The initial URL value.
12
+ * @param base An optional base URL that relative URLs are resolved against.
13
+ * @example
14
+ * const store = new URLStore("https://top.com/a/b/c");
15
+ * store.setParam("page", 2); // https://top.com/a/b/c?page=2
16
+ * store.isActive("https://top.com/a/b/c?page=2"); // true
17
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore
18
+ */
7
19
  export declare class URLStore extends BusyStore<ImmutableURL, PossibleURL> {
20
+ /**
21
+ * Base URL that relative URL inputs are resolved against, or `undefined` if none was set.
22
+ *
23
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/base
24
+ */
8
25
  readonly base: ImmutableURL | undefined;
9
26
  constructor(url: PossibleURL, base?: PossibleURL);
10
27
  protected _convert(value: PossibleURL, caller: AnyCaller): ImmutableURL;
11
28
  protected _equal(a: ImmutableURL, b: ImmutableURL): boolean;
29
+ /**
30
+ * Get or set the full URL string (e.g. `https://top.com/a/b/c?x=1`).
31
+ *
32
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/href
33
+ */
12
34
  get href(): URLString;
13
35
  set href(href: URLString);
36
+ /**
37
+ * Get the origin of the URL (e.g. `https://top.com`).
38
+ *
39
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/origin
40
+ */
14
41
  get origin(): URLString;
42
+ /**
43
+ * Get the protocol/scheme of the URL (e.g. `https:`).
44
+ *
45
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/protocol
46
+ */
15
47
  get protocol(): URIScheme;
48
+ /**
49
+ * Get the username component of the URL.
50
+ *
51
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/username
52
+ */
16
53
  get username(): string;
54
+ /**
55
+ * Get the password component of the URL.
56
+ *
57
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/password
58
+ */
17
59
  get password(): string;
60
+ /**
61
+ * Get the hostname of the URL (e.g. `top.com`).
62
+ *
63
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/hostname
64
+ */
18
65
  get hostname(): string;
66
+ /**
67
+ * Get the host of the URL including port (e.g. `top.com:8080`).
68
+ *
69
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/host
70
+ */
19
71
  get host(): string;
72
+ /**
73
+ * Get the port of the URL, or an empty string if none is set.
74
+ *
75
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/port
76
+ */
20
77
  get port(): string;
78
+ /**
79
+ * Get the absolute pathname of the URL (e.g. `/a/b/c`).
80
+ *
81
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/pathname
82
+ */
21
83
  get pathname(): AbsolutePath;
22
- /** Get the URL params as a string. */
84
+ /**
85
+ * Get the URL params as a query string (e.g. `?x=1&y=2`).
86
+ *
87
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/search
88
+ */
23
89
  get search(): string;
24
- /** Get the URL params as a dictionary. */
90
+ /**
91
+ * Get the URL params as a dictionary of key/value pairs.
92
+ *
93
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/params
94
+ */
25
95
  get params(): URIParams;
26
- /** Return a single param in this URL, or `undefined` if it could not be found. */
96
+ /**
97
+ * Return a single param in this URL, or `undefined` if it could not be found.
98
+ *
99
+ * @param key The name of the param to read.
100
+ * @returns The param value, or `undefined` if it is not present.
101
+ * @example store.getParam("page"); // "2"
102
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/getParam
103
+ */
27
104
  getParam(key: string): string | undefined;
28
- /** Require a single param in this URL, or throw `RequiredError` if it could not be found. */
105
+ /**
106
+ * Require a single param in this URL, or throw `RequiredError` if it could not be found.
107
+ *
108
+ * @param key The name of the param to read.
109
+ * @returns The param value.
110
+ * @throws {RequiredError} If the param is not present.
111
+ * @example store.requireParam("page");
112
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/requireParam
113
+ */
29
114
  requireParam(key: string): string | undefined;
30
- /** Set all params in this URL (all current params are cleared). */
115
+ /**
116
+ * Set all params in this URL (all current params are cleared first).
117
+ *
118
+ * @param params The complete set of params to set.
119
+ * @returns Nothing.
120
+ * @example store.setParams({ page: 2, sort: "name" });
121
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/setParams
122
+ */
31
123
  setParams(params: PossibleURIParams): void;
32
- /** Set a single named param in this URL. */
124
+ /**
125
+ * Set a single named param in this URL.
126
+ *
127
+ * @param key The name of the param to set.
128
+ * @param value The new value for the param.
129
+ * @returns Nothing.
130
+ * @example store.setParam("page", 2);
131
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/setParam
132
+ */
33
133
  setParam(key: string, value: unknown): void;
34
- /** Update several params in this URL (merged with current params). */
134
+ /**
135
+ * Update several params in this URL (merged with current params).
136
+ *
137
+ * @param params The set of params to merge in.
138
+ * @returns Nothing.
139
+ * @example store.updateParams({ sort: "name" });
140
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/updateParams
141
+ */
35
142
  updateParams(params: PossibleURIParams): void;
36
- /** Delete one or more params in this URL. */
143
+ /**
144
+ * Delete one or more params from this URL.
145
+ *
146
+ * @param key The name of the first param to delete.
147
+ * @param keys Additional param names to delete.
148
+ * @returns Nothing.
149
+ * @example store.deleteParam("page", "sort");
150
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/deleteParam
151
+ */
37
152
  deleteParam(key: string, ...keys: string[]): void;
38
- /** Delete one or more params in this URL. */
153
+ /**
154
+ * Delete one or more params from this URL.
155
+ *
156
+ * @param key The name of the first param to delete.
157
+ * @param keys Additional param names to delete.
158
+ * @returns Nothing.
159
+ * @example store.deleteParams("page", "sort");
160
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/deleteParams
161
+ */
39
162
  deleteParams(key: string, ...keys: string[]): void;
40
- /** Clear all params from this URL. */
163
+ /**
164
+ * Clear all params from this URL.
165
+ *
166
+ * @returns Nothing.
167
+ * @example store.clearParams();
168
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/clearParams
169
+ */
41
170
  clearParams(): void;
42
- /** Return the current URL with an additional param. */
171
+ /**
172
+ * Return the current URL with an additional param (without mutating this store).
173
+ *
174
+ * @param key The name of the param to add.
175
+ * @param value The value for the param.
176
+ * @returns A new `ImmutableURL` with the param applied.
177
+ * @example store.withParam("page", 2);
178
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/withParam
179
+ */
43
180
  withParam(key: string, value: unknown): ImmutableURL;
44
- /** Return the current URL with an additional param. */
181
+ /**
182
+ * Return the current URL with additional params (without mutating this store).
183
+ *
184
+ * @param params The params to add.
185
+ * @returns A new `ImmutableURL` with the params applied.
186
+ * @example store.withParams({ page: 2, sort: "name" });
187
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/withParams
188
+ */
45
189
  withParams(params: PossibleURIParams): ImmutableURL;
46
- /** Return the current URL with an additional param. */
190
+ /**
191
+ * Return the current URL with one or more params removed (without mutating this store).
192
+ *
193
+ * @param keys The param names to remove.
194
+ * @returns A new `ImmutableURL` with the params removed.
195
+ * @example store.omitParams("page", "sort");
196
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/omitParams
197
+ */
47
198
  omitParams(...keys: string[]): ImmutableURL;
48
- /** Return the current URL with an additional param. */
199
+ /**
200
+ * Return the current URL with a single param removed (without mutating this store).
201
+ *
202
+ * @param key The param name to remove.
203
+ * @returns A new `ImmutableURL` with the param removed.
204
+ * @example store.omitParam("page");
205
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/omitParam
206
+ */
49
207
  omitParam(key: string): ImmutableURL;
50
208
  /**
51
209
  * Is `target` active relative to this store's URL?
package/store/URLStore.js CHANGED
@@ -2,8 +2,25 @@ import { getGetter, getSetter } from "../util/class.js";
2
2
  import { clearURIParams, getURIParam, getURIParams, omitURIParams, requireURIParam, withURIParam, withURIParams, } from "../util/uri.js";
3
3
  import { getURL, isURLActive, isURLProud, requireURL } from "../util/url.js";
4
4
  import { BusyStore } from "./BusyStore.js";
5
- /** Store a URL, e.g. `https://top.com/a/b/c` */
5
+ /**
6
+ * Store a URL, e.g. `https://top.com/a/b/c`
7
+ * - Accepts any `PossibleURL` as input and normalises it to an `ImmutableURL` (resolved against `this.base`).
8
+ * - Exposes the URL's components (`href`, `origin`, `pathname`, etc.) and helpers to read and mutate its search params.
9
+ *
10
+ * @param url The initial URL value.
11
+ * @param base An optional base URL that relative URLs are resolved against.
12
+ * @example
13
+ * const store = new URLStore("https://top.com/a/b/c");
14
+ * store.setParam("page", 2); // https://top.com/a/b/c?page=2
15
+ * store.isActive("https://top.com/a/b/c?page=2"); // true
16
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore
17
+ */
6
18
  export class URLStore extends BusyStore {
19
+ /**
20
+ * Base URL that relative URL inputs are resolved against, or `undefined` if none was set.
21
+ *
22
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/base
23
+ */
7
24
  base;
8
25
  // Override to convert possible URL to URL.
9
26
  constructor(url, base) {
@@ -19,89 +36,230 @@ export class URLStore extends BusyStore {
19
36
  _equal(a, b) {
20
37
  return a.href === b.href;
21
38
  }
39
+ /**
40
+ * Get or set the full URL string (e.g. `https://top.com/a/b/c?x=1`).
41
+ *
42
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/href
43
+ */
22
44
  get href() {
23
45
  return this.value.href;
24
46
  }
25
47
  set href(href) {
26
48
  this.value = href;
27
49
  }
50
+ /**
51
+ * Get the origin of the URL (e.g. `https://top.com`).
52
+ *
53
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/origin
54
+ */
28
55
  get origin() {
29
56
  return this.value.origin;
30
57
  }
58
+ /**
59
+ * Get the protocol/scheme of the URL (e.g. `https:`).
60
+ *
61
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/protocol
62
+ */
31
63
  get protocol() {
32
64
  return this.value.protocol;
33
65
  }
66
+ /**
67
+ * Get the username component of the URL.
68
+ *
69
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/username
70
+ */
34
71
  get username() {
35
72
  return this.value.username;
36
73
  }
74
+ /**
75
+ * Get the password component of the URL.
76
+ *
77
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/password
78
+ */
37
79
  get password() {
38
80
  return this.value.password;
39
81
  }
82
+ /**
83
+ * Get the hostname of the URL (e.g. `top.com`).
84
+ *
85
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/hostname
86
+ */
40
87
  get hostname() {
41
88
  return this.value.hostname;
42
89
  }
90
+ /**
91
+ * Get the host of the URL including port (e.g. `top.com:8080`).
92
+ *
93
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/host
94
+ */
43
95
  get host() {
44
96
  return this.value.host;
45
97
  }
98
+ /**
99
+ * Get the port of the URL, or an empty string if none is set.
100
+ *
101
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/port
102
+ */
46
103
  get port() {
47
104
  return this.value.port;
48
105
  }
106
+ /**
107
+ * Get the absolute pathname of the URL (e.g. `/a/b/c`).
108
+ *
109
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/pathname
110
+ */
49
111
  get pathname() {
50
112
  return this.value.pathname;
51
113
  }
52
- /** Get the URL params as a string. */
114
+ /**
115
+ * Get the URL params as a query string (e.g. `?x=1&y=2`).
116
+ *
117
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/search
118
+ */
53
119
  get search() {
54
120
  return this.value.search;
55
121
  }
56
- /** Get the URL params as a dictionary. */
122
+ /**
123
+ * Get the URL params as a dictionary of key/value pairs.
124
+ *
125
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/params
126
+ */
57
127
  get params() {
58
128
  return getURIParams(this.value.searchParams, getGetter(this, "params"));
59
129
  }
60
- /** Return a single param in this URL, or `undefined` if it could not be found. */
130
+ /**
131
+ * Return a single param in this URL, or `undefined` if it could not be found.
132
+ *
133
+ * @param key The name of the param to read.
134
+ * @returns The param value, or `undefined` if it is not present.
135
+ * @example store.getParam("page"); // "2"
136
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/getParam
137
+ */
61
138
  getParam(key) {
62
139
  return getURIParam(this.value.searchParams, key);
63
140
  }
64
- /** Require a single param in this URL, or throw `RequiredError` if it could not be found. */
141
+ /**
142
+ * Require a single param in this URL, or throw `RequiredError` if it could not be found.
143
+ *
144
+ * @param key The name of the param to read.
145
+ * @returns The param value.
146
+ * @throws {RequiredError} If the param is not present.
147
+ * @example store.requireParam("page");
148
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/requireParam
149
+ */
65
150
  requireParam(key) {
66
151
  return requireURIParam(this.value.searchParams, key, getSetter(this, "requireParam"));
67
152
  }
68
- /** Set all params in this URL (all current params are cleared). */
153
+ /**
154
+ * Set all params in this URL (all current params are cleared first).
155
+ *
156
+ * @param params The complete set of params to set.
157
+ * @returns Nothing.
158
+ * @example store.setParams({ page: 2, sort: "name" });
159
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/setParams
160
+ */
69
161
  setParams(params) {
70
162
  this.value = withURIParams(clearURIParams(this.value, this.setParams), params, this.setParams);
71
163
  }
72
- /** Set a single named param in this URL. */
164
+ /**
165
+ * Set a single named param in this URL.
166
+ *
167
+ * @param key The name of the param to set.
168
+ * @param value The new value for the param.
169
+ * @returns Nothing.
170
+ * @example store.setParam("page", 2);
171
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/setParam
172
+ */
73
173
  setParam(key, value) {
74
174
  this.value = withURIParam(this.value, key, value, this.setParam);
75
175
  }
76
- /** Update several params in this URL (merged with current params). */
176
+ /**
177
+ * Update several params in this URL (merged with current params).
178
+ *
179
+ * @param params The set of params to merge in.
180
+ * @returns Nothing.
181
+ * @example store.updateParams({ sort: "name" });
182
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/updateParams
183
+ */
77
184
  updateParams(params) {
78
185
  this.value = withURIParams(this.value, params, this.updateParams);
79
186
  }
80
- /** Delete one or more params in this URL. */
187
+ /**
188
+ * Delete one or more params from this URL.
189
+ *
190
+ * @param key The name of the first param to delete.
191
+ * @param keys Additional param names to delete.
192
+ * @returns Nothing.
193
+ * @example store.deleteParam("page", "sort");
194
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/deleteParam
195
+ */
81
196
  deleteParam(key, ...keys) {
82
197
  this.value = omitURIParams(this.value, key, ...keys);
83
198
  }
84
- /** Delete one or more params in this URL. */
199
+ /**
200
+ * Delete one or more params from this URL.
201
+ *
202
+ * @param key The name of the first param to delete.
203
+ * @param keys Additional param names to delete.
204
+ * @returns Nothing.
205
+ * @example store.deleteParams("page", "sort");
206
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/deleteParams
207
+ */
85
208
  deleteParams(key, ...keys) {
86
209
  this.value = omitURIParams(this.value, key, ...keys);
87
210
  }
88
- /** Clear all params from this URL. */
211
+ /**
212
+ * Clear all params from this URL.
213
+ *
214
+ * @returns Nothing.
215
+ * @example store.clearParams();
216
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/clearParams
217
+ */
89
218
  clearParams() {
90
219
  this.value = clearURIParams(this.value, this.clearParams);
91
220
  }
92
- /** Return the current URL with an additional param. */
221
+ /**
222
+ * Return the current URL with an additional param (without mutating this store).
223
+ *
224
+ * @param key The name of the param to add.
225
+ * @param value The value for the param.
226
+ * @returns A new `ImmutableURL` with the param applied.
227
+ * @example store.withParam("page", 2);
228
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/withParam
229
+ */
93
230
  withParam(key, value) {
94
231
  return withURIParam(this.value, key, value, this.withParam);
95
232
  }
96
- /** Return the current URL with an additional param. */
233
+ /**
234
+ * Return the current URL with additional params (without mutating this store).
235
+ *
236
+ * @param params The params to add.
237
+ * @returns A new `ImmutableURL` with the params applied.
238
+ * @example store.withParams({ page: 2, sort: "name" });
239
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/withParams
240
+ */
97
241
  withParams(params) {
98
242
  return withURIParams(this.value, params, this.withParams);
99
243
  }
100
- /** Return the current URL with an additional param. */
244
+ /**
245
+ * Return the current URL with one or more params removed (without mutating this store).
246
+ *
247
+ * @param keys The param names to remove.
248
+ * @returns A new `ImmutableURL` with the params removed.
249
+ * @example store.omitParams("page", "sort");
250
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/omitParams
251
+ */
101
252
  omitParams(...keys) {
102
253
  return omitURIParams(this.value, ...keys);
103
254
  }
104
- /** Return the current URL with an additional param. */
255
+ /**
256
+ * Return the current URL with a single param removed (without mutating this store).
257
+ *
258
+ * @param key The param name to remove.
259
+ * @returns A new `ImmutableURL` with the param removed.
260
+ * @example store.omitParam("page");
261
+ * @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/omitParam
262
+ */
105
263
  omitParam(key) {
106
264
  return omitURIParams(this.value, key);
107
265
  }
package/test/basics.d.ts CHANGED
@@ -1,5 +1,10 @@
1
1
  import type { Item } from "../util/item.js";
2
2
  import type { ValidatorType } from "../util/validate.js";
3
+ /**
4
+ * Schema for a test "basic" fixture, exercising string, number, choice, array, boolean, and nested-data props.
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/test/basics/BASIC_SCHEMA
7
+ */
3
8
  export declare const BASIC_SCHEMA: import("../schema/DataSchema.js").DataSchema<{
4
9
  str: string;
5
10
  num: number;
@@ -14,16 +19,81 @@ export declare const BASIC_SCHEMA: import("../schema/DataSchema.js").DataSchema<
14
19
  even: /*elided*/ any;
15
20
  };
16
21
  }>;
22
+ /**
23
+ * Validated data shape of a test basic, inferred from `BASIC_SCHEMA`.
24
+ *
25
+ * @see https://dhoulb.github.io/shelving/test/basics/BasicData
26
+ */
17
27
  export type BasicData = ValidatorType<typeof BASIC_SCHEMA>;
28
+ /**
29
+ * A test basic as a stored `Item` — `BasicData` plus a string `id`.
30
+ *
31
+ * @see https://dhoulb.github.io/shelving/test/basics/BasicItem
32
+ */
18
33
  export type BasicItem = Item<string, BasicData>;
34
+ /**
35
+ * Test basic fixture: `str: "aaa"`, `num: 100`, group `a`, odd.
36
+ *
37
+ * @see https://dhoulb.github.io/shelving/test/basics/basic1
38
+ */
19
39
  export declare const basic1: BasicItem;
40
+ /**
41
+ * Test basic fixture: `str: "bbb"`, `num: 200`, group `a`, even.
42
+ *
43
+ * @see https://dhoulb.github.io/shelving/test/basics/basic2
44
+ */
20
45
  export declare const basic2: BasicItem;
46
+ /**
47
+ * Test basic fixture: `str: "ccc"`, `num: 300`, group `a`, odd.
48
+ *
49
+ * @see https://dhoulb.github.io/shelving/test/basics/basic3
50
+ */
21
51
  export declare const basic3: BasicItem;
52
+ /**
53
+ * Test basic fixture: `str: "ddd"`, `num: 400`, group `b`, even.
54
+ *
55
+ * @see https://dhoulb.github.io/shelving/test/basics/basic4
56
+ */
22
57
  export declare const basic4: BasicItem;
58
+ /**
59
+ * Test basic fixture: `str: "eee"`, `num: 500`, group `b`, odd.
60
+ *
61
+ * @see https://dhoulb.github.io/shelving/test/basics/basic5
62
+ */
23
63
  export declare const basic5: BasicItem;
64
+ /**
65
+ * Test basic fixture: `str: "fff"`, `num: 600`, group `b`, even.
66
+ *
67
+ * @see https://dhoulb.github.io/shelving/test/basics/basic6
68
+ */
24
69
  export declare const basic6: BasicItem;
70
+ /**
71
+ * Test basic fixture: `str: "ggg"`, `num: 700`, group `c`, odd.
72
+ *
73
+ * @see https://dhoulb.github.io/shelving/test/basics/basic7
74
+ */
25
75
  export declare const basic7: BasicItem;
76
+ /**
77
+ * Test basic fixture: `str: "hhh"`, `num: 800`, group `c`, even.
78
+ *
79
+ * @see https://dhoulb.github.io/shelving/test/basics/basic8
80
+ */
26
81
  export declare const basic8: BasicItem;
82
+ /**
83
+ * Test basic fixture: `str: "iii"`, `num: 900`, group `c`, odd.
84
+ *
85
+ * @see https://dhoulb.github.io/shelving/test/basics/basic9
86
+ */
27
87
  export declare const basic9: BasicItem;
88
+ /**
89
+ * Array of all nine test basic fixtures in a deliberately shuffled order, for exercising sort/query behaviour.
90
+ *
91
+ * @see https://dhoulb.github.io/shelving/test/basics/basics
92
+ */
28
93
  export declare const basics: ReadonlyArray<BasicItem>;
94
+ /**
95
+ * Standalone test basic data (no `id`): `str: "zzz"`, `num: 999`, for use as new/unsaved data.
96
+ *
97
+ * @see https://dhoulb.github.io/shelving/test/basics/basic999
98
+ */
29
99
  export declare const basic999: BasicData;