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
@@ -10,14 +10,32 @@ import { Extractor } from "./Extractor.js";
10
10
  * and used by `MergingExtractor` to pair siblings (`{base}.md` + `{base}.ts`) and by `PackageExtractor` to look up sources.
11
11
  * - Does NOT set `title` — `title` is only set by subclasses that have a confident source for one (e.g. `MarkupExtractor` uses the first `<h1>`). Renderers fall back to `name` when missing.
12
12
  * - Subclasses (e.g. `MarkupExtractor`, `TypescriptExtractor`) override `extractProps()` to parse the content into richer elements.
13
+ *
14
+ * @example new FileExtractor().extract(Bun.file("/abs/path/notes.txt"))
15
+ * @see https://dhoulb.github.io/shelving/extract/FileExtractor/FileExtractor
13
16
  */
14
17
  export declare class FileExtractor extends Extractor<BunFile, TreeElement> {
18
+ /**
19
+ * Read a file and build a `tree-element` from its text content.
20
+ *
21
+ * @param file The Bun file to read; its `name` must be an absolute path.
22
+ * @returns A promise resolving to the file's `tree-element`, keyed by its verbatim filename.
23
+ * @throws RequiredError If the file has no name or its path is not absolute.
24
+ * @example await new FileExtractor().extract(Bun.file("/abs/path/notes.txt"))
25
+ * @see https://dhoulb.github.io/shelving/extract/FileExtractor/FileExtractor/extract
26
+ */
15
27
  extract(file: BunFile): Promise<TreeElement>;
16
28
  /**
17
29
  * Build the file element props from the extracted content.
18
30
  * - `name` is the basename without extension (e.g. `"array"`) — display-ready, used by menus, cards, and URL paths.
19
31
  * - Override to parse `text` into richer elements (content/children/description) and to set
20
32
  * `title` if a confident title is available.
33
+ *
34
+ * @param name The basename of the file without extension (e.g. `"array"`).
35
+ * @param content The raw text content of the file.
36
+ * @returns The element props, always including a `name`; the base implementation stores `content` verbatim.
37
+ * @example extractProps("notes", "Some text") // { name: "notes", content: "Some text" }
38
+ * @see https://dhoulb.github.io/shelving/extract/FileExtractor/FileExtractor/extractProps
21
39
  */
22
40
  extractProps(name: string, content: string): Partial<TreeElementProps> & {
23
41
  name: string;
@@ -11,8 +11,20 @@ import { Extractor } from "./Extractor.js";
11
11
  * and used by `MergingExtractor` to pair siblings (`{base}.md` + `{base}.ts`) and by `PackageExtractor` to look up sources.
12
12
  * - Does NOT set `title` — `title` is only set by subclasses that have a confident source for one (e.g. `MarkupExtractor` uses the first `<h1>`). Renderers fall back to `name` when missing.
13
13
  * - Subclasses (e.g. `MarkupExtractor`, `TypescriptExtractor`) override `extractProps()` to parse the content into richer elements.
14
+ *
15
+ * @example new FileExtractor().extract(Bun.file("/abs/path/notes.txt"))
16
+ * @see https://dhoulb.github.io/shelving/extract/FileExtractor/FileExtractor
14
17
  */
15
18
  export class FileExtractor extends Extractor {
19
+ /**
20
+ * Read a file and build a `tree-element` from its text content.
21
+ *
22
+ * @param file The Bun file to read; its `name` must be an absolute path.
23
+ * @returns A promise resolving to the file's `tree-element`, keyed by its verbatim filename.
24
+ * @throws RequiredError If the file has no name or its path is not absolute.
25
+ * @example await new FileExtractor().extract(Bun.file("/abs/path/notes.txt"))
26
+ * @see https://dhoulb.github.io/shelving/extract/FileExtractor/FileExtractor/extract
27
+ */
16
28
  async extract(file) {
17
29
  const source = file.name;
18
30
  if (!source || !isAbsolutePath(source))
@@ -32,6 +44,12 @@ export class FileExtractor extends Extractor {
32
44
  * - `name` is the basename without extension (e.g. `"array"`) — display-ready, used by menus, cards, and URL paths.
33
45
  * - Override to parse `text` into richer elements (content/children/description) and to set
34
46
  * `title` if a confident title is available.
47
+ *
48
+ * @param name The basename of the file without extension (e.g. `"array"`).
49
+ * @param content The raw text content of the file.
50
+ * @returns The element props, always including a `name`; the base implementation stores `content` verbatim.
51
+ * @example extractProps("notes", "Some text") // { name: "notes", content: "Some text" }
52
+ * @see https://dhoulb.github.io/shelving/extract/FileExtractor/FileExtractor/extractProps
35
53
  */
36
54
  extractProps(name, content) {
37
55
  return { name, content };
@@ -2,7 +2,11 @@ import { type Matchables } from "../util/regexp.js";
2
2
  import type { TreeElement } from "../util/tree.js";
3
3
  import type { Extractor } from "./Extractor.js";
4
4
  import { ThroughExtractor } from "./ThroughExtractor.js";
5
- /** Options for an `IndexExtractor`. */
5
+ /**
6
+ * Options for an `IndexExtractor`.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/extract/IndexExtractor/IndexExtractorOptions
9
+ */
6
10
  export interface IndexExtractorOptions {
7
11
  /**
8
12
  * Filename patterns treated as a parent's index. Matched case-insensitively against each child element's `key`.
@@ -16,9 +20,40 @@ export interface IndexExtractorOptions {
16
20
  * - The matched child's `title`, `description`, `content`, and `children` are folded into the parent.
17
21
  * - The matched child is removed from the parent's children list.
18
22
  * - Purely name-based: it doesn't care whether an element is a directory or a file — any element with children is processed, deepest level first.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const extractor = new IndexExtractor(new DirectoryExtractor());
27
+ * ```
28
+ *
29
+ * @see https://dhoulb.github.io/shelving/extract/IndexExtractor
19
30
  */
20
31
  export declare class IndexExtractor<I> extends ThroughExtractor<I, TreeElement> {
21
32
  private readonly _index;
33
+ /**
34
+ * Wrap a source extractor so each element's index child is absorbed into the element itself.
35
+ *
36
+ * @param source Upstream extractor that produces the `tree-element` tree to process.
37
+ * @param options Options including the `index` filename patterns.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const extractor = new IndexExtractor(new DirectoryExtractor());
42
+ * ```
43
+ */
22
44
  constructor(source: Extractor<I, TreeElement>, { index }?: IndexExtractorOptions);
45
+ /**
46
+ * Extract the source tree and absorb each element's index child into its parent.
47
+ *
48
+ * @param input Input forwarded to the wrapped source extractor.
49
+ * @returns The source tree with index children folded into their parents.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * const tree = await new IndexExtractor(source).extract(input);
54
+ * ```
55
+ *
56
+ * @see https://dhoulb.github.io/shelving/extract/IndexExtractor/extract
57
+ */
23
58
  extract(input: I): Promise<TreeElement>;
24
59
  }
@@ -14,13 +14,44 @@ const DEFAULT_INDEX = [/^readme\.txt$/i, /^readme\.md$/i, /^index\.md$/i, /^inde
14
14
  * - The matched child's `title`, `description`, `content`, and `children` are folded into the parent.
15
15
  * - The matched child is removed from the parent's children list.
16
16
  * - Purely name-based: it doesn't care whether an element is a directory or a file — any element with children is processed, deepest level first.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const extractor = new IndexExtractor(new DirectoryExtractor());
21
+ * ```
22
+ *
23
+ * @see https://dhoulb.github.io/shelving/extract/IndexExtractor
17
24
  */
18
25
  export class IndexExtractor extends ThroughExtractor {
19
26
  _index;
27
+ /**
28
+ * Wrap a source extractor so each element's index child is absorbed into the element itself.
29
+ *
30
+ * @param source Upstream extractor that produces the `tree-element` tree to process.
31
+ * @param options Options including the `index` filename patterns.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const extractor = new IndexExtractor(new DirectoryExtractor());
36
+ * ```
37
+ */
20
38
  constructor(source, { index = DEFAULT_INDEX } = {}) {
21
39
  super(source);
22
40
  this._index = index;
23
41
  }
42
+ /**
43
+ * Extract the source tree and absorb each element's index child into its parent.
44
+ *
45
+ * @param input Input forwarded to the wrapped source extractor.
46
+ * @returns The source tree with index children folded into their parents.
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * const tree = await new IndexExtractor(source).extract(input);
51
+ * ```
52
+ *
53
+ * @see https://dhoulb.github.io/shelving/extract/IndexExtractor/extract
54
+ */
24
55
  async extract(input) {
25
56
  const root = await this.source.extract(input);
26
57
  return _absorbIndex(root, this._index);
@@ -8,8 +8,21 @@ import { FileExtractor } from "./FileExtractor.js";
8
8
  * - When a `title` is found, strips the leading `# h1` from `content` so renderers (which show
9
9
  * `title` separately) don't display the heading twice.
10
10
  * - Sets `description` to the first prose paragraph as a plain-text summary (used for card listings and `<meta>`).
11
+ *
12
+ * @example new MarkupExtractor().extract(Bun.file("/abs/path/README.md"))
13
+ * @see https://dhoulb.github.io/shelving/extract/MarkupExtractor/MarkupExtractor
11
14
  */
12
15
  export declare class MarkupExtractor extends FileExtractor {
16
+ /**
17
+ * Build the file element props for a Markdown file — storing the text as `content` and deriving `title` and `description`.
18
+ * - When a `# h1` title is found it is stripped from `content` so it isn't rendered twice.
19
+ *
20
+ * @param name The basename of the file without extension.
21
+ * @param text The raw Markdown source.
22
+ * @returns The element props with `name`, `content`, and (when present) `title` and `description`.
23
+ * @example new MarkupExtractor().extractProps("guide", "# Guide\n\nIntro text.")
24
+ * @see https://dhoulb.github.io/shelving/extract/MarkupExtractor/MarkupExtractor/extractProps
25
+ */
13
26
  extractProps(name: string, text: string): Partial<TreeElementProps> & {
14
27
  name: string;
15
28
  };
@@ -22,6 +35,8 @@ export declare class MarkupExtractor extends FileExtractor {
22
35
  *
23
36
  * @param text The markdown source string (a markdown file's text, or a JSDoc description).
24
37
  * @returns An object whose `title` and `description` are each a plain string, or `undefined` when absent.
38
+ * @example extractMarkdownProps("# Title\n\nSome intro.") // { title: "Title", description: "Some intro." }
39
+ * @see https://dhoulb.github.io/shelving/extract/MarkupExtractor/extractMarkdownProps
25
40
  */
26
41
  export declare function extractMarkdownProps(text: string): {
27
42
  title: string | undefined;
@@ -9,8 +9,21 @@ import { FileExtractor } from "./FileExtractor.js";
9
9
  * - When a `title` is found, strips the leading `# h1` from `content` so renderers (which show
10
10
  * `title` separately) don't display the heading twice.
11
11
  * - Sets `description` to the first prose paragraph as a plain-text summary (used for card listings and `<meta>`).
12
+ *
13
+ * @example new MarkupExtractor().extract(Bun.file("/abs/path/README.md"))
14
+ * @see https://dhoulb.github.io/shelving/extract/MarkupExtractor/MarkupExtractor
12
15
  */
13
16
  export class MarkupExtractor extends FileExtractor {
17
+ /**
18
+ * Build the file element props for a Markdown file — storing the text as `content` and deriving `title` and `description`.
19
+ * - When a `# h1` title is found it is stripped from `content` so it isn't rendered twice.
20
+ *
21
+ * @param name The basename of the file without extension.
22
+ * @param text The raw Markdown source.
23
+ * @returns The element props with `name`, `content`, and (when present) `title` and `description`.
24
+ * @example new MarkupExtractor().extractProps("guide", "# Guide\n\nIntro text.")
25
+ * @see https://dhoulb.github.io/shelving/extract/MarkupExtractor/MarkupExtractor/extractProps
26
+ */
14
27
  extractProps(name, text) {
15
28
  const { title, description } = extractMarkdownProps(text);
16
29
  // The title `# h1` is surfaced separately as `title`, so strip it from the body to avoid rendering it twice.
@@ -25,6 +38,8 @@ export class MarkupExtractor extends FileExtractor {
25
38
  *
26
39
  * @param text The markdown source string (a markdown file's text, or a JSDoc description).
27
40
  * @returns An object whose `title` and `description` are each a plain string, or `undefined` when absent.
41
+ * @example extractMarkdownProps("# Title\n\nSome intro.") // { title: "Title", description: "Some intro." }
42
+ * @see https://dhoulb.github.io/shelving/extract/MarkupExtractor/extractMarkdownProps
28
43
  */
29
44
  export function extractMarkdownProps(text) {
30
45
  let title;
@@ -2,7 +2,11 @@ import type { ImmutableDictionary } from "../util/dictionary.js";
2
2
  import type { TreeElement } from "../util/tree.js";
3
3
  import type { Extractor } from "./Extractor.js";
4
4
  import { ThroughExtractor } from "./ThroughExtractor.js";
5
- /** Options for a `MergingExtractor`. */
5
+ /**
6
+ * Options for a `MergingExtractor`.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/extract/MergingExtractor/MergingExtractorOptions
9
+ */
6
10
  export interface MergingExtractorOptions {
7
11
  /**
8
12
  * Templated key pairs that should merge. Each key is a `{base}` template matched against the secondary element's key;
@@ -19,9 +23,40 @@ export interface MergingExtractorOptions {
19
23
  * - The primary (winning) element keeps its `key`, `source`, and `type`; the secondary's `title`, `description`,
20
24
  * `content`, and `children` are folded in via `mergeTreeElements()`.
21
25
  * - A secondary with no matching primary is left in place — pure prose files (e.g. `concepts.md` with no `concepts.ts`) stand alone.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * const extractor = new MergingExtractor(new DirectoryExtractor());
30
+ * ```
31
+ *
32
+ * @see https://dhoulb.github.io/shelving/extract/MergingExtractor
22
33
  */
23
34
  export declare class MergingExtractor<I> extends ThroughExtractor<I, TreeElement> {
24
35
  private readonly _merges;
36
+ /**
37
+ * Wrap a source extractor so its produced tree has same-template sibling elements merged.
38
+ *
39
+ * @param source Upstream extractor that produces the `tree-element` tree to merge.
40
+ * @param options Options including the `merges` template map.
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * const extractor = new MergingExtractor(new DirectoryExtractor());
45
+ * ```
46
+ */
25
47
  constructor(source: Extractor<I, TreeElement>, { merges }?: MergingExtractorOptions);
48
+ /**
49
+ * Extract the source tree and merge same-template sibling elements at every level.
50
+ *
51
+ * @param input Input forwarded to the wrapped source extractor.
52
+ * @returns The source tree with matching sibling elements merged together.
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * const tree = await new MergingExtractor(source).extract(input);
57
+ * ```
58
+ *
59
+ * @see https://dhoulb.github.io/shelving/extract/MergingExtractor/extract
60
+ */
26
61
  extract(input: I): Promise<TreeElement>;
27
62
  }
@@ -18,13 +18,44 @@ const DEFAULT_MERGES = {
18
18
  * - The primary (winning) element keeps its `key`, `source`, and `type`; the secondary's `title`, `description`,
19
19
  * `content`, and `children` are folded in via `mergeTreeElements()`.
20
20
  * - A secondary with no matching primary is left in place — pure prose files (e.g. `concepts.md` with no `concepts.ts`) stand alone.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * const extractor = new MergingExtractor(new DirectoryExtractor());
25
+ * ```
26
+ *
27
+ * @see https://dhoulb.github.io/shelving/extract/MergingExtractor
21
28
  */
22
29
  export class MergingExtractor extends ThroughExtractor {
23
30
  _merges;
31
+ /**
32
+ * Wrap a source extractor so its produced tree has same-template sibling elements merged.
33
+ *
34
+ * @param source Upstream extractor that produces the `tree-element` tree to merge.
35
+ * @param options Options including the `merges` template map.
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * const extractor = new MergingExtractor(new DirectoryExtractor());
40
+ * ```
41
+ */
24
42
  constructor(source, { merges = DEFAULT_MERGES } = {}) {
25
43
  super(source);
26
44
  this._merges = merges;
27
45
  }
46
+ /**
47
+ * Extract the source tree and merge same-template sibling elements at every level.
48
+ *
49
+ * @param input Input forwarded to the wrapped source extractor.
50
+ * @returns The source tree with matching sibling elements merged together.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * const tree = await new MergingExtractor(source).extract(input);
55
+ * ```
56
+ *
57
+ * @see https://dhoulb.github.io/shelving/extract/MergingExtractor/extract
58
+ */
28
59
  async extract(input) {
29
60
  const root = await this.source.extract(input);
30
61
  return _mergeElement(root, this._merges);
@@ -1,6 +1,10 @@
1
1
  import type { DocumentationElement, TreeElement } from "../util/tree.js";
2
2
  import { Extractor } from "./Extractor.js";
3
- /** Input for a `ModuleExtractor`. */
3
+ /**
4
+ * Input for a `ModuleExtractor`.
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/extract/ModuleExtractor/ModuleExtractorInput
7
+ */
4
8
  export interface ModuleExtractorInput {
5
9
  /** Display name for the module, derived from the package.json export key (e.g. `"util/string"`, `"firestore/client"`). */
6
10
  readonly name: string;
@@ -17,7 +21,27 @@ export interface ModuleExtractorInput {
17
21
  * `IndexExtractor` are expected to have run upstream so `.md` siblings and `README.md` are already folded in).
18
22
  * - The module's `children` are every `tree-documentation` element found by deep-walking the source — flattened across
19
23
  * files and subdirectories, but never descending into a `tree-documentation`'s own members.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * const module = new ModuleExtractor().extract({ name: "util/string", source });
28
+ * ```
29
+ *
30
+ * @see https://dhoulb.github.io/shelving/extract/ModuleExtractor
20
31
  */
21
32
  export declare class ModuleExtractor extends Extractor<ModuleExtractorInput, DocumentationElement> {
33
+ /**
34
+ * Build a `kind: "module"` `DocumentationElement` from a source file or directory element.
35
+ *
36
+ * @param input Module name and source element to build from.
37
+ * @returns `tree-documentation` element of `kind: "module"` with flattened documented children.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const module = new ModuleExtractor().extract({ name: "util/string", source });
42
+ * ```
43
+ *
44
+ * @see https://dhoulb.github.io/shelving/extract/ModuleExtractor/extract
45
+ */
22
46
  extract({ name, source }: ModuleExtractorInput): DocumentationElement;
23
47
  }
@@ -7,8 +7,28 @@ import { Extractor } from "./Extractor.js";
7
7
  * `IndexExtractor` are expected to have run upstream so `.md` siblings and `README.md` are already folded in).
8
8
  * - The module's `children` are every `tree-documentation` element found by deep-walking the source — flattened across
9
9
  * files and subdirectories, but never descending into a `tree-documentation`'s own members.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const module = new ModuleExtractor().extract({ name: "util/string", source });
14
+ * ```
15
+ *
16
+ * @see https://dhoulb.github.io/shelving/extract/ModuleExtractor
10
17
  */
11
18
  export class ModuleExtractor extends Extractor {
19
+ /**
20
+ * Build a `kind: "module"` `DocumentationElement` from a source file or directory element.
21
+ *
22
+ * @param input Module name and source element to build from.
23
+ * @returns `tree-documentation` element of `kind: "module"` with flattened documented children.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * const module = new ModuleExtractor().extract({ name: "util/string", source });
28
+ * ```
29
+ *
30
+ * @see https://dhoulb.github.io/shelving/extract/ModuleExtractor/extract
31
+ */
12
32
  extract({ name, source }) {
13
33
  const children = _collectChildren(source);
14
34
  return {
@@ -3,7 +3,11 @@ import { type AbsolutePath, type Path } from "../util/path.js";
3
3
  import type { TreeElement } from "../util/tree.js";
4
4
  import { Extractor } from "./Extractor.js";
5
5
  import { ModuleExtractor } from "./ModuleExtractor.js";
6
- /** Options for a `PackageExtractor`. */
6
+ /**
7
+ * Options for a `PackageExtractor`.
8
+ *
9
+ * @see https://dhoulb.github.io/shelving/extract/PackageExtractor/PackageExtractorOptions
10
+ */
7
11
  export interface PackageExtractorOptions {
8
12
  /**
9
13
  * Pre-extracted source tree the `package.json` exports resolve against — typically the result of
@@ -30,13 +34,44 @@ export interface PackageExtractorOptions {
30
34
  * - Each export's *target* extension (e.g. the `.js` in `"./util/*.js"`) is mapped to source extensions via `extensions`, so built `.js` paths resolve to their `.ts` sources.
31
35
  * - The `"."` root export is skipped — its content is the root tree element itself.
32
36
  * - Throws if a static export key has no matching source element in the tree.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * const tree = await new PackageExtractor({ tree: sourceTree }).extract("package.json");
41
+ * ```
42
+ *
43
+ * @see https://dhoulb.github.io/shelving/extract/PackageExtractor
33
44
  */
34
45
  export declare class PackageExtractor extends Extractor<Path, TreeElement> {
35
46
  private readonly _tree;
36
47
  private readonly _extensions;
37
48
  private readonly _module;
38
49
  private readonly _base;
50
+ /**
51
+ * Create a package extractor bound to a pre-extracted source tree.
52
+ *
53
+ * @param options Options including the source `tree`, `extensions` mapping, `module` extractor, and `base` path.
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * const extractor = new PackageExtractor({ tree: sourceTree });
58
+ * ```
59
+ */
39
60
  constructor({ tree, extensions, module, base }: PackageExtractorOptions);
61
+ /**
62
+ * Read a `package.json` and produce a flat tree of one module element per export entry.
63
+ *
64
+ * @param packageJson Path of the `package.json` to read — resolved against the configured `base`.
65
+ * @returns Promise of the root `tree-element` whose children are the module elements.
66
+ * @throws Error If a static export key has no matching source element in the tree, or a wildcard export is malformed.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * const tree = await new PackageExtractor({ tree: sourceTree }).extract("package.json");
71
+ * ```
72
+ *
73
+ * @see https://dhoulb.github.io/shelving/extract/PackageExtractor/extract
74
+ */
40
75
  extract(packageJson: Path): Promise<TreeElement>;
41
76
  /** Source extensions to try for an export `target`, derived from the target's own extension via the `extensions` mapping. */
42
77
  private _sourceExtensions;
@@ -18,12 +18,29 @@ const DEFAULT_EXTENSIONS = {
18
18
  * - Each export's *target* extension (e.g. the `.js` in `"./util/*.js"`) is mapped to source extensions via `extensions`, so built `.js` paths resolve to their `.ts` sources.
19
19
  * - The `"."` root export is skipped — its content is the root tree element itself.
20
20
  * - Throws if a static export key has no matching source element in the tree.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * const tree = await new PackageExtractor({ tree: sourceTree }).extract("package.json");
25
+ * ```
26
+ *
27
+ * @see https://dhoulb.github.io/shelving/extract/PackageExtractor
21
28
  */
22
29
  export class PackageExtractor extends Extractor {
23
30
  _tree;
24
31
  _extensions;
25
32
  _module;
26
33
  _base;
34
+ /**
35
+ * Create a package extractor bound to a pre-extracted source tree.
36
+ *
37
+ * @param options Options including the source `tree`, `extensions` mapping, `module` extractor, and `base` path.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const extractor = new PackageExtractor({ tree: sourceTree });
42
+ * ```
43
+ */
27
44
  constructor({ tree, extensions = DEFAULT_EXTENSIONS, module = new ModuleExtractor(), base }) {
28
45
  super();
29
46
  this._tree = tree;
@@ -31,6 +48,20 @@ export class PackageExtractor extends Extractor {
31
48
  this._module = module;
32
49
  this._base = base;
33
50
  }
51
+ /**
52
+ * Read a `package.json` and produce a flat tree of one module element per export entry.
53
+ *
54
+ * @param packageJson Path of the `package.json` to read — resolved against the configured `base`.
55
+ * @returns Promise of the root `tree-element` whose children are the module elements.
56
+ * @throws Error If a static export key has no matching source element in the tree, or a wildcard export is malformed.
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * const tree = await new PackageExtractor({ tree: sourceTree }).extract("package.json");
61
+ * ```
62
+ *
63
+ * @see https://dhoulb.github.io/shelving/extract/PackageExtractor/extract
64
+ */
34
65
  async extract(packageJson) {
35
66
  const pkgPath = requirePath(packageJson, this._base, this.extract);
36
67
  const pkg = (await Bun.file(pkgPath).json());
@@ -4,10 +4,31 @@ import { Extractor } from "./Extractor.js";
4
4
  * Base class for an extractor that wraps another extractor.
5
5
  * - Subclasses delegate to `source` and (optionally) transform the input before or the output after.
6
6
  * - Composes the same way `Through*Provider` chains do — chain multiple `ThroughExtractor`s to build up behaviour.
7
+ *
8
+ * @example new MergingExtractor(new DirectoryExtractor()) // a ThroughExtractor wrapping a source extractor
9
+ * @see https://dhoulb.github.io/shelving/extract/ThroughExtractor/ThroughExtractor
7
10
  */
8
11
  export declare abstract class ThroughExtractor<I, O extends TreeElement = TreeElement> extends Extractor<I, O> {
12
+ /**
13
+ * The wrapped source extractor this through extractor delegates to.
14
+ * @see https://dhoulb.github.io/shelving/extract/ThroughExtractor/ThroughExtractor/source
15
+ */
9
16
  readonly source: Extractor<I, O>;
17
+ /**
18
+ * Create a `ThroughExtractor` wrapping a source extractor.
19
+ *
20
+ * @param source The inner extractor to delegate to.
21
+ * @see https://dhoulb.github.io/shelving/extract/ThroughExtractor/ThroughExtractor
22
+ */
10
23
  constructor(source: Extractor<I, O>);
11
- /** Default implementation forwards to `source.extract()`. Subclasses override to do work before or after. */
24
+ /**
25
+ * Extract from the input by forwarding to `source.extract()`.
26
+ * - Default implementation is a pass-through; subclasses override to do work before or after.
27
+ *
28
+ * @param input The input value to extract from.
29
+ * @returns The extracted `TreeElement`, or a promise resolving to one.
30
+ * @example await myThroughExtractor.extract(input)
31
+ * @see https://dhoulb.github.io/shelving/extract/ThroughExtractor/ThroughExtractor/extract
32
+ */
12
33
  extract(input: I): O | Promise<O>;
13
34
  }
@@ -3,14 +3,35 @@ import { Extractor } from "./Extractor.js";
3
3
  * Base class for an extractor that wraps another extractor.
4
4
  * - Subclasses delegate to `source` and (optionally) transform the input before or the output after.
5
5
  * - Composes the same way `Through*Provider` chains do — chain multiple `ThroughExtractor`s to build up behaviour.
6
+ *
7
+ * @example new MergingExtractor(new DirectoryExtractor()) // a ThroughExtractor wrapping a source extractor
8
+ * @see https://dhoulb.github.io/shelving/extract/ThroughExtractor/ThroughExtractor
6
9
  */
7
10
  export class ThroughExtractor extends Extractor {
11
+ /**
12
+ * The wrapped source extractor this through extractor delegates to.
13
+ * @see https://dhoulb.github.io/shelving/extract/ThroughExtractor/ThroughExtractor/source
14
+ */
8
15
  source;
16
+ /**
17
+ * Create a `ThroughExtractor` wrapping a source extractor.
18
+ *
19
+ * @param source The inner extractor to delegate to.
20
+ * @see https://dhoulb.github.io/shelving/extract/ThroughExtractor/ThroughExtractor
21
+ */
9
22
  constructor(source) {
10
23
  super();
11
24
  this.source = source;
12
25
  }
13
- /** Default implementation forwards to `source.extract()`. Subclasses override to do work before or after. */
26
+ /**
27
+ * Extract from the input by forwarding to `source.extract()`.
28
+ * - Default implementation is a pass-through; subclasses override to do work before or after.
29
+ *
30
+ * @param input The input value to extract from.
31
+ * @returns The extracted `TreeElement`, or a promise resolving to one.
32
+ * @example await myThroughExtractor.extract(input)
33
+ * @see https://dhoulb.github.io/shelving/extract/ThroughExtractor/ThroughExtractor/extract
34
+ */
14
35
  extract(input) {
15
36
  return this.source.extract(input);
16
37
  }
@@ -13,8 +13,29 @@ import { FileExtractor } from "./FileExtractor.js";
13
13
  * - Members declared with the `override` or `declare` modifier are skipped — the base class already documents overrides, and `declare` members are ambient type-only re-declarations rather than new API.
14
14
  * - Keys are the raw declared `name` (case-preserving) so case-distinct exports like `Collection` and `COLLECTION` stay separate.
15
15
  * - The file element itself has no `title` — a TS source file has no confident title source; renderers fall back to `name`.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const element = new TypescriptExtractor().extractProps("string.ts", sourceText);
20
+ * ```
21
+ *
22
+ * @see https://dhoulb.github.io/shelving/extract/TypescriptExtractor
16
23
  */
17
24
  export declare class TypescriptExtractor extends FileExtractor {
25
+ /**
26
+ * Parse a TypeScript source file into the props of a `tree-element`.
27
+ *
28
+ * @param name Filename of the source (used as the source file name and the element `name`).
29
+ * @param text Full TypeScript source text to parse.
30
+ * @returns Partial `tree-element` props with `name`, `description`, `content`, and `children`.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * const props = new TypescriptExtractor().extractProps("string.ts", sourceText);
35
+ * ```
36
+ *
37
+ * @see https://dhoulb.github.io/shelving/extract/TypescriptExtractor/extractProps
38
+ */
18
39
  extractProps(name: string, text: string): Partial<TreeElementProps> & {
19
40
  name: string;
20
41
  };