authorgravatar for git@paperclover.netclover caruso <git@paperclover.net> 2025-09-06 03:52:38-07:00
committergravatar for git@paperclover.netclover caruso <git@paperclover.net> 2025-10-14 02:40:47-07:00
loge3ec694572331c182f19033be1521321b2f6c8fb
tree4adbcfe845629e4329b7249b7f9ccf6cb8bf91d4
parentfaaeaf2335c85cea2985085469b706f7b6e40939
signature Commit is signed but in an unrecognized format.

feat: init clover's typescript library

see #29

4 files changed, 62 insertions(+), 2 deletions(-)

lib/jsr.json created+7
...@@ -0,0 +1,7 @@
1{
2 "name": "@clo/lib",
3 "version": "1.0.0",
4 "license": "MIT",
5 "exports": {
6 }
7}
lib/license.txt created+21
...@@ -0,0 +1,21 @@
1Copyright 2025 clover caruso
2
3Permission is hereby granted, free of charge, to any person obtaining a copy of
4this software and associated documentation files (the “Software”), to deal in
5the Software without restriction, including without limitation the rights to
6use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7of the Software, and to permit persons to whom the Software is furnished to do
8so, subject to the following conditions:
9
10The above copyright notice and this permission notice shall be included in all
11copies or substantial portions of the Software.
12
13THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19SOFTWARE.
20
21
lib/readme.md created+32
...@@ -0,0 +1,32 @@
1# clover's typescript library
2
3`lib` is a collection of high-quality typescript libraries for things missing in
4either browsers or node.js. originally, these were helper functions used to
5create my website, <https://paperclover.net>, but i started wanting them across
6projects.
7
8all top-level namespaces stand alone as their own projects, and generally do not
9depend on each other. no external dependencies == easy to audit.
10
11the public api is simply all of the code. an overview:
12
13<!-- - `async` -->
14<!-- - `error` - interop with the `unknown` type in error handlers -->
15<!-- - `fs` - rebuilt api for `node:fs` -->
16<!-- - `lru` - least recently used cache -->
17<!-- - `mime` - trimmed database of mime types -->
18<!-- - `subprocess` - rebuilt api for `node:child_process` -->
19<!-- - `testing` -->
20
21- `string`
22- `term` - logging, terminal, interactive widgets
23- `term/ansi` - cursor and color constants
24- `term/headless` - use `term` and `term/progress` without a pty
25- `term/progress` - progress bar, spinner, and tree
26- `ts` typescript types and general purpose code
27
28these libraries are published as is, **without versioning or maintainance
29guarantees**. note that on package registries where a semantic version is
30required, a major version bump is done on each publication.
31
32to contribute bug fixes, please send patches to <git@paperclover.net>.
tsconfig.json+2-2
...@@ -14,8 +14,8 @@...@@ -14,8 +14,8 @@
14 "skipLibCheck": true,14 "skipLibCheck": true,
15 "strict": true,15 "strict": true,
16 "verbatimModuleSyntax": true,16 "verbatimModuleSyntax": true,
17 "target": "es2022",17 "target": "es2024",
18 "noUncheckedIndexedAccess": true18 "noUncheckedIndexedAccess": true
19 },19 },
20 "include": ["framework/**/*", "src/**/*"]20 "include": ["framework/**/*", "src/**/*", "lib/**/*"]
21}21}