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
package/util/random.js CHANGED
@@ -1,9 +1,37 @@
1
1
  import { requireDefined } from "./undefined.js";
2
- /** Generate a random integer between two numbers. */
2
+ /**
3
+ * Generate a random integer between two numbers (inclusive).
4
+ *
5
+ * @param min Lowest possible integer to return — defaults to `Number.MIN_SAFE_INTEGER`.
6
+ * @param max Highest possible integer to return — defaults to `Number.MAX_SAFE_INTEGER`.
7
+ * @returns Random integer in the range `min` to `max` (inclusive).
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * const dice = getRandom(1, 6); // e.g. `4`
12
+ * ```
13
+ *
14
+ * @see https://dhoulb.github.io/shelving/util/random/getRandom
15
+ */
3
16
  export function getRandom(min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {
4
17
  return Math.round(Math.random() * (max - min) + min);
5
18
  }
6
- /** Get a random number that is anything except an existing number. */
19
+ /**
20
+ * Get a random integer that is anything except an existing number.
21
+ * - Repeatedly draws a random integer until it differs from `existing`.
22
+ *
23
+ * @param existing Number that must not be returned.
24
+ * @param min Lowest possible integer to return — defaults to `Number.MIN_SAFE_INTEGER`.
25
+ * @param max Highest possible integer to return — defaults to `Number.MAX_SAFE_INTEGER`.
26
+ * @returns Random integer in the range `min` to `max` that is not equal to `existing`.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * const next = getRandomExcept(current, 1, 6); // any of `1`–`6` except `current`
31
+ * ```
32
+ *
33
+ * @see https://dhoulb.github.io/shelving/util/random/getRandomExcept
34
+ */
7
35
  export function getRandomExcept(existing, min, max) {
8
36
  let num;
9
37
  do
@@ -16,6 +44,16 @@ export function getRandomExcept(existing, min, max) {
16
44
  * - Not designed to be cryptographically random!
17
45
  * - Will probably clash — if you're making a random ID, check for existence of the record before saving.
18
46
  * - Designed to be semi-readable, doesn't use capital letters or `i` or `o` or `l` or `u`
47
+ *
48
+ * @param length Number of characters in the returned key — defaults to `12`.
49
+ * @returns Random string of `length` lowercase alphanumeric characters.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * const id = getRandomKey(); // e.g. `xs23r34hhsdx`
54
+ * ```
55
+ *
56
+ * @see https://dhoulb.github.io/shelving/util/random/getRandomKey
19
57
  */
20
58
  export function getRandomKey(length = 12) {
21
59
  return Array.from({ length }, getRandomKeyCharacter).join("");
@@ -24,11 +62,36 @@ const KEY_CHARS = "0123456789abcdefghjkmnpqrstvwxyz";
24
62
  function getRandomKeyCharacter() {
25
63
  return getRandomCharacter(KEY_CHARS);
26
64
  }
27
- /** Get a random character from a string. */
65
+ /**
66
+ * Get a random character from a string.
67
+ *
68
+ * @param str String to pick a character from.
69
+ * @returns Single character chosen at random from `str`.
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * const letter = getRandomCharacter("abcde"); // e.g. `"c"`
74
+ * ```
75
+ *
76
+ * @see https://dhoulb.github.io/shelving/util/random/getRandomCharacter
77
+ */
28
78
  export function getRandomCharacter(str) {
29
79
  return str[getRandom(0, str.length - 1)];
30
80
  }
31
- /** Get a random item from an array or random character from a string string. */
81
+ /**
82
+ * Get a random item from an array.
83
+ *
84
+ * @param arr Array to pick an item from.
85
+ * @returns Single item chosen at random from `arr`.
86
+ * @throws RequiredError If the chosen item is undefined (e.g. the array is empty).
87
+ *
88
+ * @example
89
+ * ```ts
90
+ * const item = getRandomItem(["a", "b", "c"]); // e.g. `"b"`
91
+ * ```
92
+ *
93
+ * @see https://dhoulb.github.io/shelving/util/random/getRandomItem
94
+ */
32
95
  export function getRandomItem(arr) {
33
96
  return requireDefined(arr[getRandom(0, arr.length - 1)]);
34
97
  }
package/util/regexp.d.ts CHANGED
@@ -1,48 +1,150 @@
1
1
  import { type ImmutableArray } from "./array.js";
2
2
  import { type Nullish } from "./null.js";
3
3
  import type { NotString } from "./string.js";
4
- /** A thing that a string can be matched against. */
4
+ /**
5
+ * A thing that a string can be matched against.
6
+ * - Either a `RegExp` instance, or a `string` that is matched using `===` equality.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/util/regexp/Matchable
9
+ */
5
10
  export type Matchable = string | RegExp;
6
- /** A list of things that strings can be matched against. */
11
+ /**
12
+ * A list of things that strings can be matched against.
13
+ *
14
+ * @see https://dhoulb.github.io/shelving/util/regexp/Matchables
15
+ */
7
16
  export type Matchables = ImmutableArray<Nullish<Matchable>>;
8
- /** Regular expression that always matches everything. */
17
+ /**
18
+ * Regular expression that always matches everything.
19
+ *
20
+ * @see https://dhoulb.github.io/shelving/util/regexp/ALWAYS_REGEXP
21
+ */
9
22
  export declare const ALWAYS_REGEXP: RegExp;
10
- /** Regular expression that never matches anything. */
23
+ /**
24
+ * Regular expression that never matches anything.
25
+ *
26
+ * @see https://dhoulb.github.io/shelving/util/regexp/NEVER_REGEXP
27
+ */
11
28
  export declare const NEVER_REGEXP: RegExp;
12
- /** Things that can be convert to a regular expression. */
29
+ /**
30
+ * Things that can be converted to a regular expression.
31
+ * - Either a `RegExp` instance, or a `string` source for a regular expression.
32
+ *
33
+ * @see https://dhoulb.github.io/shelving/util/regexp/PossibleRegExp
34
+ */
13
35
  export type PossibleRegExp = string | RegExp;
14
- /** Is an unknown value a `RegExp` instance? */
36
+ /**
37
+ * Is an unknown value a `RegExp` instance?
38
+ *
39
+ * @param value The value to test.
40
+ * @returns `true` if `value` is a `RegExp` instance, narrowing its type.
41
+ * @see https://dhoulb.github.io/shelving/util/regexp/isRegExp
42
+ */
15
43
  export declare function isRegExp(value: unknown): value is RegExp;
16
- /** Assert that an unknown value is a `RegExp` instance. */
44
+ /**
45
+ * Assert that an unknown value is a `RegExp` instance.
46
+ *
47
+ * @param value The value to assert.
48
+ * @throws {RequiredError} If `value` is not a `RegExp` instance.
49
+ * @see https://dhoulb.github.io/shelving/util/regexp/assertRegExp
50
+ */
17
51
  export declare function assertRegExp(value: unknown): asserts value is RegExp;
18
- /** Convert a string to a regular expression that matches that string. */
52
+ /**
53
+ * Convert a possible regular expression into a `RegExp` instance.
54
+ * - If `pattern` is a `string` a new `RegExp` is created from it, otherwise it is returned as-is.
55
+ *
56
+ * @param pattern The regular expression or string source to convert.
57
+ * @param flags The flags to use when creating a `RegExp` from a string source.
58
+ * @returns The corresponding `RegExp` instance.
59
+ * @example
60
+ * getRegExp("abc", "i"); // /abc/i
61
+ * @see https://dhoulb.github.io/shelving/util/regexp/getRegExp
62
+ */
19
63
  export declare function getRegExp<T extends NamedRegExpData>(pattern: NamedRegExp<T>, flags?: string): T extends NamedRegExpData ? NamedRegExp<T> : RegExp;
20
64
  export declare function getRegExp<T extends NamedRegExpData | undefined = undefined>(pattern: PossibleRegExp, flags?: string): T extends NamedRegExpData ? NamedRegExp<T> : RegExp;
21
- /** Convert a regular expression to its string source. */
65
+ /**
66
+ * Convert a regular expression to its string source.
67
+ * - If `regexp` is a `string` it is returned as-is, otherwise its `.source` is returned.
68
+ *
69
+ * @param regexp The regular expression or string source to read.
70
+ * @returns The string source of the regular expression.
71
+ * @example
72
+ * getRegExpSource(/abc/); // "abc"
73
+ * @see https://dhoulb.github.io/shelving/util/regexp/getRegExpSource
74
+ */
22
75
  export declare function getRegExpSource(regexp: PossibleRegExp): string;
23
- /** Escape special characters in a string regular expression. */
76
+ /**
77
+ * Escape special characters in a string regular expression.
78
+ * - Escapes any characters that have special meaning in a regular expression so the string matches literally.
79
+ *
80
+ * @param pattern The string to escape.
81
+ * @returns The escaped string, safe to use as a literal regular expression source.
82
+ * @example
83
+ * escapeRegExp("a.b"); // "a\\.b"
84
+ * @see https://dhoulb.github.io/shelving/util/regexp/escapeRegExp
85
+ */
24
86
  export declare function escapeRegExp(pattern: string): string;
25
- /** Create regular expression that matches any of a list of other expressions. */
87
+ /**
88
+ * Create a regular expression that matches any one of a list of other expressions.
89
+ * - If the list is empty the returned expression matches nothing (`NEVER_REGEXP`).
90
+ *
91
+ * @param patterns The regular expressions or string sources to combine.
92
+ * @param flags The flags to use when creating the combined `RegExp`.
93
+ * @returns A `RegExp` that matches if any of the provided expressions match.
94
+ * @example
95
+ * createRegExpAny(["abc", "def"]); // /(?:abc)|(?:def)/
96
+ * @see https://dhoulb.github.io/shelving/util/regexp/createRegExpAny
97
+ */
26
98
  export declare function createRegExpAny(patterns: Iterable<PossibleRegExp> & NotString, flags?: string): RegExp;
27
- /** Create regular expression that matches all of a list of other expressions. */
99
+ /**
100
+ * Create a regular expression that matches all of a list of other expressions.
101
+ * - If the list is empty the returned expression matches everything (`ALWAYS_REGEXP`).
102
+ *
103
+ * @param patterns The regular expressions or string sources to combine.
104
+ * @param flags The flags to use when creating the combined `RegExp`.
105
+ * @returns A `RegExp` that matches only if all of the provided expressions match.
106
+ * @example
107
+ * createRegExpAll(["abc", "def"]); // /^(?=.*?(?:abc))(?=.*?(?:def))/
108
+ * @see https://dhoulb.github.io/shelving/util/regexp/createRegExpAll
109
+ */
28
110
  export declare function createRegExpAll(patterns: Iterable<PossibleRegExp> & NotString, flags?: string): RegExp;
29
- /** Regular expression match array that matches a specific string format. */
111
+ /**
112
+ * Regular expression match array whose full match is a specific string format.
113
+ *
114
+ * @see https://dhoulb.github.io/shelving/util/regexp/TypedRegExpExecArray
115
+ */
30
116
  export interface TypedRegExpExecArray<T extends string = string> extends RegExpExecArray {
31
117
  0: T;
32
118
  }
33
- /** Regular expression that matches a specific string format. */
119
+ /**
120
+ * Regular expression that matches a specific string format.
121
+ *
122
+ * @see https://dhoulb.github.io/shelving/util/regexp/TypedRegExp
123
+ */
34
124
  export interface TypedRegExp<T extends string = string> extends RegExp {
35
125
  exec(input: string): TypedRegExpExecArray<T> | null;
36
126
  }
37
- /** Set of named match groups from a regular expression. */
127
+ /**
128
+ * Set of named match groups from a regular expression.
129
+ *
130
+ * @see https://dhoulb.github.io/shelving/util/regexp/NamedRegExpData
131
+ */
38
132
  export type NamedRegExpData = {
39
133
  [named: string]: string;
40
134
  };
41
- /** Regular expression match array that contains the specified named groups. */
135
+ /**
136
+ * Regular expression match array that contains the specified named groups.
137
+ *
138
+ * @see https://dhoulb.github.io/shelving/util/regexp/NamedRegExpExecArray
139
+ */
42
140
  export interface NamedRegExpExecArray<T extends NamedRegExpData = NamedRegExpData> extends RegExpExecArray {
43
141
  groups: T;
44
142
  }
45
- /** Regular expression that contains the specified named capture groups. */
143
+ /**
144
+ * Regular expression that contains the specified named capture groups.
145
+ *
146
+ * @see https://dhoulb.github.io/shelving/util/regexp/NamedRegExp
147
+ */
46
148
  export interface NamedRegExp<T extends NamedRegExpData = NamedRegExpData> extends RegExp {
47
149
  exec(input: string): NamedRegExpExecArray<T> | null;
48
150
  }
@@ -55,6 +157,9 @@ export interface NamedRegExp<T extends NamedRegExpData = NamedRegExpData> extend
55
157
  * - If `regexp` is a `RegExp` it is tested against the string using `RegExp.test()`.
56
158
  * - If `regexp` is a `string` it is simply tested against the string using `===` equality.
57
159
  * @returns `true` if the string matches the regular expression, otherwise `false`.
160
+ * @example
161
+ * isMatch("abc", /b/); // true
162
+ * @see https://dhoulb.github.io/shelving/util/regexp/isMatch
58
163
  */
59
164
  export declare function isMatch(str: string, regexp: Matchable): boolean;
60
165
  /**
@@ -65,34 +170,106 @@ export declare function isMatch(str: string, regexp: Matchable): boolean;
65
170
  * @param regexp Regular expression to test against the string.
66
171
  * - If `regexp` is a `RegExp` it is tested against the string using `RegExp.test()`.
67
172
  * - If `regexp` is a `string` it is simply tested against the string using `!==` equality.
68
- * @returns `true` if the string matches the regular expression, otherwise `false`.
173
+ * @returns `true` if the string does not match the regular expression, otherwise `false`.
174
+ * @example
175
+ * notMatch("abc", /z/); // true
176
+ * @see https://dhoulb.github.io/shelving/util/regexp/notMatch
69
177
  */
70
178
  export declare function notMatch(str: string, regexp: Matchable): boolean;
71
179
  /**
72
180
  * All of the provided regular expressions match the string.
73
181
  *
182
+ * @param str String to test against the regular expressions.
74
183
  * @param regexps - Regular expressions to match against the string.
75
184
  * - If empty the function returns `true` (since all zero of the provided regexps match everything).
76
185
  * - If a `RegExp` it is tested against the string using `RegExp.test()`.
77
186
  * - If a `string` it is simply tested against the string using `===` equality.
78
187
  * - If `null` or `undefined` it is ignored.
188
+ * @returns `true` if every provided regular expression matches the string, otherwise `false`.
189
+ * @example
190
+ * allMatch("abc", /a/, /b/); // true
191
+ * @see https://dhoulb.github.io/shelving/util/regexp/allMatch
79
192
  */
80
193
  export declare function allMatch(str: string, ...regexps: Matchables): boolean;
81
- /** At least one of the provided regular expressions matches the string. */
194
+ /**
195
+ * At least one of the provided regular expressions matches the string.
196
+ *
197
+ * @param str String to test against the regular expressions.
198
+ * @param regexps - Regular expressions to match against the string.
199
+ * - If empty the function returns `false` (since none of zero provided regexps can match).
200
+ * - If a `RegExp` it is tested against the string using `RegExp.test()`.
201
+ * - If a `string` it is simply tested against the string using `===` equality.
202
+ * - If `null` or `undefined` it is ignored.
203
+ * @returns `true` if at least one provided regular expression matches the string, otherwise `false`.
204
+ * @example
205
+ * anyMatch("abc", /z/, /b/); // true
206
+ * @see https://dhoulb.github.io/shelving/util/regexp/anyMatch
207
+ */
82
208
  export declare function anyMatch(str: string, ...regexps: Matchables): boolean;
83
- /** None of the provided regular expressions match the string. */
209
+ /**
210
+ * None of the provided regular expressions match the string.
211
+ *
212
+ * @param str String to test against the regular expressions.
213
+ * @param regexps - Regular expressions to match against the string.
214
+ * - If empty the function returns `false` (since the empty list of regexps matches everything).
215
+ * - If a `RegExp` it is tested against the string using `RegExp.test()`.
216
+ * - If a `string` it is simply tested against the string using `===` equality.
217
+ * - If `null` or `undefined` it is ignored.
218
+ * @returns `true` if none of the provided regular expressions match the string, otherwise `false`.
219
+ * @example
220
+ * noneMatch("abc", /x/, /y/); // true
221
+ * @see https://dhoulb.github.io/shelving/util/regexp/noneMatch
222
+ */
84
223
  export declare function noneMatch(str: string, ...regexps: Matchables): boolean;
85
- /** Get an optional regular expression match, or `undefined` if no match could be made. */
224
+ /**
225
+ * Get an optional regular expression match, or `undefined` if no match could be made.
226
+ *
227
+ * @param str String to match against the regular expression.
228
+ * @param regexp Regular expression to match against the string.
229
+ * @returns The match array, or `undefined` if the string did not match.
230
+ * @example
231
+ * getMatch("abc", /b/); // ["b"]
232
+ * @see https://dhoulb.github.io/shelving/util/regexp/getMatch
233
+ */
86
234
  export declare function getMatch<T extends NamedRegExpData>(str: string, regexp: NamedRegExp<T>): NamedRegExpExecArray<T> | undefined;
87
235
  export declare function getMatch<T extends string>(str: string, regexp: TypedRegExp<T>): TypedRegExpExecArray<T> | undefined;
88
236
  export declare function getMatch(str: string, regexp: RegExp): RegExpExecArray | undefined;
89
- /** Get a required regular expression match, or throw `ValueError` if no match could be made. */
237
+ /**
238
+ * Get a required regular expression match, or throw `ValueError` if no match could be made.
239
+ *
240
+ * @param str String to match against the regular expression.
241
+ * @param regexp Regular expression to match against the string.
242
+ * @returns The match array.
243
+ * @throws {ValueError} If the string did not match the regular expression.
244
+ * @example
245
+ * requireMatch("abc", /b/); // ["b"]
246
+ * @see https://dhoulb.github.io/shelving/util/regexp/requireMatch
247
+ */
90
248
  export declare function requireMatch<T extends NamedRegExpData>(str: string, regexp: NamedRegExp<T>): NamedRegExpExecArray<T>;
91
249
  export declare function requireMatch<T extends string>(str: string, regexp: TypedRegExp<T>): TypedRegExpExecArray<T>;
92
250
  export declare function requireMatch(str: string, regexp: RegExp): RegExpExecArray;
93
- /** Get an optional regular expression match, or `undefined` if no match could be made. */
251
+ /**
252
+ * Get the named groups of an optional regular expression match, or `undefined` if no match could be made.
253
+ *
254
+ * @param str String to match against the regular expression.
255
+ * @param regexp Regular expression to match against the string.
256
+ * @returns The set of named match groups, or `undefined` if the string did not match.
257
+ * @example
258
+ * getMatchGroups("abc", /(?<first>a)/); // { first: "a" }
259
+ * @see https://dhoulb.github.io/shelving/util/regexp/getMatchGroups
260
+ */
94
261
  export declare function getMatchGroups<T extends NamedRegExpData>(str: string, regexp: NamedRegExp<T>): T | undefined;
95
262
  export declare function getMatchGroups(str: string, regexp: RegExp): NamedRegExpData | undefined;
96
- /** Get a required regular expression match, or throw `ValueError` if no match could be made. */
263
+ /**
264
+ * Get the named groups of a required regular expression match, or throw `ValueError` if no match could be made.
265
+ *
266
+ * @param str String to match against the regular expression.
267
+ * @param regexp Regular expression to match against the string.
268
+ * @returns The set of named match groups.
269
+ * @throws {ValueError} If the string did not match the regular expression.
270
+ * @example
271
+ * requireMatchGroups("abc", /(?<first>a)/); // { first: "a" }
272
+ * @see https://dhoulb.github.io/shelving/util/regexp/requireMatchGroups
273
+ */
97
274
  export declare function requireMatchGroups<T extends NamedRegExpData>(str: string, regexp: NamedRegExp<T>): T;
98
275
  export declare function requireMatchGroups(str: string, regexp: RegExp): NamedRegExpData;
package/util/regexp.js CHANGED
@@ -2,15 +2,35 @@ import { RequiredError } from "../error/RequiredError.js";
2
2
  import { ValueError } from "../error/ValueError.js";
3
3
  import { requireArray } from "./array.js";
4
4
  import { isNullish } from "./null.js";
5
- /** Regular expression that always matches everything. */
5
+ /**
6
+ * Regular expression that always matches everything.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/util/regexp/ALWAYS_REGEXP
9
+ */
6
10
  export const ALWAYS_REGEXP = /^.*$/;
7
- /** Regular expression that never matches anything. */
11
+ /**
12
+ * Regular expression that never matches anything.
13
+ *
14
+ * @see https://dhoulb.github.io/shelving/util/regexp/NEVER_REGEXP
15
+ */
8
16
  export const NEVER_REGEXP = /^(?=a)a/;
9
- /** Is an unknown value a `RegExp` instance? */
17
+ /**
18
+ * Is an unknown value a `RegExp` instance?
19
+ *
20
+ * @param value The value to test.
21
+ * @returns `true` if `value` is a `RegExp` instance, narrowing its type.
22
+ * @see https://dhoulb.github.io/shelving/util/regexp/isRegExp
23
+ */
10
24
  export function isRegExp(value) {
11
25
  return value instanceof RegExp;
12
26
  }
13
- /** Assert that an unknown value is a `RegExp` instance. */
27
+ /**
28
+ * Assert that an unknown value is a `RegExp` instance.
29
+ *
30
+ * @param value The value to assert.
31
+ * @throws {RequiredError} If `value` is not a `RegExp` instance.
32
+ * @see https://dhoulb.github.io/shelving/util/regexp/assertRegExp
33
+ */
14
34
  export function assertRegExp(value) {
15
35
  if (!(value instanceof RegExp))
16
36
  throw new RequiredError("Must be regular expression", { received: value, caller: assertRegExp });
@@ -18,16 +38,44 @@ export function assertRegExp(value) {
18
38
  export function getRegExp(pattern, flags) {
19
39
  return typeof pattern === "string" ? new RegExp(pattern, flags) : pattern;
20
40
  }
21
- /** Convert a regular expression to its string source. */
41
+ /**
42
+ * Convert a regular expression to its string source.
43
+ * - If `regexp` is a `string` it is returned as-is, otherwise its `.source` is returned.
44
+ *
45
+ * @param regexp The regular expression or string source to read.
46
+ * @returns The string source of the regular expression.
47
+ * @example
48
+ * getRegExpSource(/abc/); // "abc"
49
+ * @see https://dhoulb.github.io/shelving/util/regexp/getRegExpSource
50
+ */
22
51
  export function getRegExpSource(regexp) {
23
52
  return typeof regexp === "string" ? regexp : regexp.source;
24
53
  }
25
- /** Escape special characters in a string regular expression. */
54
+ /**
55
+ * Escape special characters in a string regular expression.
56
+ * - Escapes any characters that have special meaning in a regular expression so the string matches literally.
57
+ *
58
+ * @param pattern The string to escape.
59
+ * @returns The escaped string, safe to use as a literal regular expression source.
60
+ * @example
61
+ * escapeRegExp("a.b"); // "a\\.b"
62
+ * @see https://dhoulb.github.io/shelving/util/regexp/escapeRegExp
63
+ */
26
64
  export function escapeRegExp(pattern) {
27
65
  return pattern.replace(REPLACE_ESCAPED, "\\$&");
28
66
  }
29
67
  const REPLACE_ESCAPED = /[-[\]/{}()*+?.\\^$|]/g;
30
- /** Create regular expression that matches any of a list of other expressions. */
68
+ /**
69
+ * Create a regular expression that matches any one of a list of other expressions.
70
+ * - If the list is empty the returned expression matches nothing (`NEVER_REGEXP`).
71
+ *
72
+ * @param patterns The regular expressions or string sources to combine.
73
+ * @param flags The flags to use when creating the combined `RegExp`.
74
+ * @returns A `RegExp` that matches if any of the provided expressions match.
75
+ * @example
76
+ * createRegExpAny(["abc", "def"]); // /(?:abc)|(?:def)/
77
+ * @see https://dhoulb.github.io/shelving/util/regexp/createRegExpAny
78
+ */
31
79
  export function createRegExpAny(patterns, flags) {
32
80
  const arr = requireArray(patterns).filter(Boolean);
33
81
  // If there are no patterns to match against then _no_ string can ever match against any of nothing.
@@ -36,7 +84,17 @@ export function createRegExpAny(patterns, flags) {
36
84
  // Create RegExp using multiple joined matches like `(?:AAA)|(?:BBB)`
37
85
  return new RegExp(`(?:${requireArray(patterns).map(getRegExpSource).join(")|(?:")})`, flags);
38
86
  }
39
- /** Create regular expression that matches all of a list of other expressions. */
87
+ /**
88
+ * Create a regular expression that matches all of a list of other expressions.
89
+ * - If the list is empty the returned expression matches everything (`ALWAYS_REGEXP`).
90
+ *
91
+ * @param patterns The regular expressions or string sources to combine.
92
+ * @param flags The flags to use when creating the combined `RegExp`.
93
+ * @returns A `RegExp` that matches only if all of the provided expressions match.
94
+ * @example
95
+ * createRegExpAll(["abc", "def"]); // /^(?=.*?(?:abc))(?=.*?(?:def))/
96
+ * @see https://dhoulb.github.io/shelving/util/regexp/createRegExpAll
97
+ */
40
98
  export function createRegExpAll(patterns, flags) {
41
99
  const arr = requireArray(patterns).filter(Boolean);
42
100
  // If there are no patterns to match against then _every_ string will match against the entire list of nothing.
@@ -54,6 +112,9 @@ export function createRegExpAll(patterns, flags) {
54
112
  * - If `regexp` is a `RegExp` it is tested against the string using `RegExp.test()`.
55
113
  * - If `regexp` is a `string` it is simply tested against the string using `===` equality.
56
114
  * @returns `true` if the string matches the regular expression, otherwise `false`.
115
+ * @example
116
+ * isMatch("abc", /b/); // true
117
+ * @see https://dhoulb.github.io/shelving/util/regexp/isMatch
57
118
  */
58
119
  export function isMatch(str, regexp) {
59
120
  return typeof regexp === "string" ? regexp === str : regexp.test(str);
@@ -66,7 +127,10 @@ export function isMatch(str, regexp) {
66
127
  * @param regexp Regular expression to test against the string.
67
128
  * - If `regexp` is a `RegExp` it is tested against the string using `RegExp.test()`.
68
129
  * - If `regexp` is a `string` it is simply tested against the string using `!==` equality.
69
- * @returns `true` if the string matches the regular expression, otherwise `false`.
130
+ * @returns `true` if the string does not match the regular expression, otherwise `false`.
131
+ * @example
132
+ * notMatch("abc", /z/); // true
133
+ * @see https://dhoulb.github.io/shelving/util/regexp/notMatch
70
134
  */
71
135
  export function notMatch(str, regexp) {
72
136
  return !isMatch(str, regexp);
@@ -74,11 +138,16 @@ export function notMatch(str, regexp) {
74
138
  /**
75
139
  * All of the provided regular expressions match the string.
76
140
  *
141
+ * @param str String to test against the regular expressions.
77
142
  * @param regexps - Regular expressions to match against the string.
78
143
  * - If empty the function returns `true` (since all zero of the provided regexps match everything).
79
144
  * - If a `RegExp` it is tested against the string using `RegExp.test()`.
80
145
  * - If a `string` it is simply tested against the string using `===` equality.
81
146
  * - If `null` or `undefined` it is ignored.
147
+ * @returns `true` if every provided regular expression matches the string, otherwise `false`.
148
+ * @example
149
+ * allMatch("abc", /a/, /b/); // true
150
+ * @see https://dhoulb.github.io/shelving/util/regexp/allMatch
82
151
  */
83
152
  export function allMatch(str, ...regexps) {
84
153
  for (const x of regexps) {
@@ -89,7 +158,20 @@ export function allMatch(str, ...regexps) {
89
158
  }
90
159
  return true;
91
160
  }
92
- /** At least one of the provided regular expressions matches the string. */
161
+ /**
162
+ * At least one of the provided regular expressions matches the string.
163
+ *
164
+ * @param str String to test against the regular expressions.
165
+ * @param regexps - Regular expressions to match against the string.
166
+ * - If empty the function returns `false` (since none of zero provided regexps can match).
167
+ * - If a `RegExp` it is tested against the string using `RegExp.test()`.
168
+ * - If a `string` it is simply tested against the string using `===` equality.
169
+ * - If `null` or `undefined` it is ignored.
170
+ * @returns `true` if at least one provided regular expression matches the string, otherwise `false`.
171
+ * @example
172
+ * anyMatch("abc", /z/, /b/); // true
173
+ * @see https://dhoulb.github.io/shelving/util/regexp/anyMatch
174
+ */
93
175
  export function anyMatch(str, ...regexps) {
94
176
  for (const x of regexps) {
95
177
  if (isNullish(x))
@@ -99,7 +181,20 @@ export function anyMatch(str, ...regexps) {
99
181
  }
100
182
  return false;
101
183
  }
102
- /** None of the provided regular expressions match the string. */
184
+ /**
185
+ * None of the provided regular expressions match the string.
186
+ *
187
+ * @param str String to test against the regular expressions.
188
+ * @param regexps - Regular expressions to match against the string.
189
+ * - If empty the function returns `false` (since the empty list of regexps matches everything).
190
+ * - If a `RegExp` it is tested against the string using `RegExp.test()`.
191
+ * - If a `string` it is simply tested against the string using `===` equality.
192
+ * - If `null` or `undefined` it is ignored.
193
+ * @returns `true` if none of the provided regular expressions match the string, otherwise `false`.
194
+ * @example
195
+ * noneMatch("abc", /x/, /y/); // true
196
+ * @see https://dhoulb.github.io/shelving/util/regexp/noneMatch
197
+ */
103
198
  export function noneMatch(str, ...regexps) {
104
199
  return !allMatch(str, ...regexps);
105
200
  }