diff --git a/.claude/diataxis.md b/.claude/diataxis.md new file mode 100644 index 0000000..e880b76 --- /dev/null +++ b/.claude/diataxis.md @@ -0,0 +1,41 @@ +--- +# The docs manifest the documentation tools read. Generated from the family's manifest +# table: change a key there and regenerate. The two prose lines below may be sharpened. +product: "@riddler/predicator" +family: statifier +audience: "TypeScript developers evaluating rules in a browser, Node or React Native" +tone: "plain, second person, no marketing" +terminology: + use: + - execution + - chart + - document + - revision + avoid: + - "run (noun)" + - workflow instance +example_world: library-loan +docs_root: docs +quadrants: + tutorials: docs/tutorials + how_to: docs/guides + reference: docs/reference + explanation: docs/explanation +readme: README.md +reference_generator: typedoc +publish: site-later +contributor_paths: + - docs/adr + - docs/plans + - docs/spikes + - docs/research + - docs/design + - docs/measurements + - CLAUDE.md +executed_snippets: + - test/readme.test.ts +readme_max_lines: 1200 +--- + +The same predicate language in TypeScript, corpus-identical to the Elixir evaluator. +Examples are written in the library loan: a copy of a book lent to a patron, due, renewed, returned or lost. diff --git a/.claude/firewall-allow.txt b/.claude/firewall-allow.txt new file mode 100644 index 0000000..16f12ec --- /dev/null +++ b/.claude/firewall-allow.txt @@ -0,0 +1,9 @@ +# Exact strings the maintainers' planning-reference scan may pass. One exact +# string per line; a line starting with "# " is a comment. An entry allows a +# match only where the entry's text covers it on the same line. + +# pnpm-lock.yaml: the integrity value of brace-expansion 5.0.12. The scan +# reads base64 as prose and a run inside this hash takes an id's shape; no +# planning reference is involved. Allowed by a ruling of the operator, +# 2026-10-05. +sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ== diff --git a/.gitignore b/.gitignore index 02ad99b..70c5feb 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,10 @@ dist/ coverage/ reports/ +# The generated API reference, built by `pnpm run docs` (typedoc.json). It is +# built locally and checked by the gate, and never committed. +/docs/api/ + # Temporary files, for example, from tests. /tmp/ diff --git a/README.md b/README.md index bb890e9..6b637c0 100644 --- a/README.md +++ b/README.md @@ -1060,6 +1060,8 @@ and is mirrored here in a later release. The records under `docs/adr/` are what this package decided for itself: what kind of thing it is, the value domain and the host boundary, the conformance apparatus, and the compiler surface. +`mise exec -- pnpm run docs` builds the API reference locally, into `docs/api/`. + ## Development ```bash diff --git a/package.json b/package.json index 7190ca5..8bf551e 100644 --- a/package.json +++ b/package.json @@ -49,13 +49,14 @@ }, "scripts": { "prepack": "node scripts/publish-guard.mjs", - "gate": "node --version && pnpm run typecheck && pnpm run lint && pnpm run neutrality && vitest run --coverage && pnpm run corpus:check && pnpm run cites && pnpm run build && pnpm run identity && pnpm run resolution", + "gate": "node --version && pnpm run typecheck && pnpm run lint && pnpm run neutrality && vitest run --coverage && pnpm run corpus:check && pnpm run cites && pnpm run build && pnpm run identity && pnpm run resolution && pnpm run docs", "gate:loop": "pnpm run typecheck && pnpm run lint && pnpm run test", "typecheck": "tsc --noEmit -p tsconfig.src.json && tsc --noEmit", "lint": "biome check .", "format": "biome format --write .", "test": "vitest run", "build": "tsup", + "docs": "typedoc", "neutrality": "node scripts/engine-neutrality.mjs", "corpus:check": "node scripts/corpus-check.mjs", "cites": "node scripts/record-cites.mjs", @@ -70,6 +71,7 @@ "@vitest/coverage-v8": "5.0.1", "tsup": "8.5.1", "tsx": "4.23.13", + "typedoc": "0.28.20", "typescript": "5.9.3", "vitest": "5.0.1" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c04a3f9..4b0e456 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -177,16 +177,19 @@ importers: version: 5.0.1(vitest@5.0.1) tsup: specifier: 8.5.1 - version: 8.5.1(postcss@8.5.28)(tsx@4.23.13)(typescript@5.9.3) + version: 8.5.1(postcss@8.5.28)(tsx@4.23.13)(typescript@5.9.3)(yaml@2.9.1) tsx: specifier: 4.23.13 version: 4.23.13 + typedoc: + specifier: 0.28.20 + version: 0.28.20(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 vitest: specifier: 5.0.1 - version: 5.0.1(@types/node@24.13.4)(@vitest/coverage-v8@5.0.1)(vite@8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13)) + version: 5.0.1(@types/node@24.13.4)(@vitest/coverage-v8@5.0.1)(vite@8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13)(yaml@2.9.1)) packages: @@ -580,6 +583,9 @@ packages: cpu: [x64] os: [win32] + '@gerrit0/mini-shiki@3.23.0': + resolution: {integrity: sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg==} + '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -840,6 +846,21 @@ packages: cpu: [x64] os: [win32] + '@shikijs/engine-oniguruma@3.23.0': + resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} + + '@shikijs/langs@3.23.0': + resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} + + '@shikijs/themes@3.23.0': + resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} + + '@shikijs/types@3.23.0': + resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -849,9 +870,15 @@ packages: '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + '@types/hast@3.0.5': + resolution: {integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==} + '@types/node@24.13.4': resolution: {integrity: sha512-YJ7EqCstVTzIr0fMr7qul/977en+pQHrfmuKIo6Zr9i75Be21dr3MovcfvGtyvi2HAUrRerWps5sMO9I7WaxDw==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@vitest/coverage-v8@5.0.1': resolution: {integrity: sha512-FRC8ACiudC3dI6MTplzRSYWHDRnIv2IPfbzs4FdoJNsMal/35sWV8hwIfV8ZcqzSPy+uXHeMVONt9CEqtOU17w==} peerDependencies: @@ -891,6 +918,9 @@ packages: any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -898,6 +928,14 @@ packages: ast-v8-to-istanbul@1.0.6: resolution: {integrity: sha512-fvpl29helSO2w/z7utIbrkNXILdrLwDwAMH2I/zPKlGf5244+gf+B4cyS1sANcrPY2h+hWCGSgC8N61s/+AF9A==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + brace-expansion@5.0.12: + resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} + engines: {node: 20 || >=22} + bundle-require@5.1.0: resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -940,6 +978,10 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + es-module-lexer@2.3.2: resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} @@ -1065,10 +1107,16 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + linkify-it@5.0.2: + resolution: {integrity: sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==} + load-tsconfig@0.2.5: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lunr@2.3.9: + resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} @@ -1078,6 +1126,17 @@ packages: magicast@0.5.5: resolution: {integrity: sha512-UicdXN8zQ3JHlxVq+28afMXPr1z7WNY6+7EJnzTdQWkTAlMLF5fNCCKxJHBQwGaNGR11581EiQmQzx73+MvszA==} + markdown-it@14.3.2: + resolution: {integrity: sha512-sHHjZ5fJKlgrG4qns2YwVcdNep35h5fERrfkD2YNsb9UFk0UIHarbiTaHKVMlPuWAoiilyK8Fv/jAm11slsY7Q==} + hasBin: true + + mdurl@2.1.0: + resolution: {integrity: sha512-1+HBaOx0zi/dQWht8rNv9MYf9qqpqL/kxI0hXImU6Y547zM6Sni8BQibt7ifgMcYtQg41ao3Ivd6cnSM86inpg==} + + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} + mlly@1.8.2: resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} @@ -1139,6 +1198,10 @@ packages: resolution: {integrity: sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==} engines: {node: ^10 || ^12 || >=14} + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + readdirp@4.1.2: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} @@ -1236,11 +1299,21 @@ packages: engines: {node: '>=18.0.0'} hasBin: true + typedoc@0.28.20: + resolution: {integrity: sha512-uSKqkh8Cr48vllnEy+jdaAgOeR6Y+QCBW7usgUsKj7gJEfR7stw9U/fE49LBnj2tPRKPY0c0EBJSWe9Appmplg==} + engines: {node: '>= 18', pnpm: '>= 10'} + hasBin: true + peerDependencies: + typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x || 6.0.x + typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + ufo@1.6.4: resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} @@ -1336,6 +1409,11 @@ packages: engines: {node: '>=8'} hasBin: true + yaml@2.9.1: + resolution: {integrity: sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==} + engines: {node: '>= 14.6'} + hasBin: true + snapshots: '@babel/helper-string-parser@7.29.7': {} @@ -1544,6 +1622,14 @@ snapshots: '@esbuild/win32-x64@0.28.2': optional: true + '@gerrit0/mini-shiki@3.23.0': + dependencies: + '@shikijs/engine-oniguruma': 3.23.0 + '@shikijs/langs': 3.23.0 + '@shikijs/themes': 3.23.0 + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.6.0 @@ -1685,6 +1771,26 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.63.3': optional: true + '@shikijs/engine-oniguruma@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + + '@shikijs/themes@3.23.0': + dependencies: + '@shikijs/types': 3.23.0 + + '@shikijs/types@3.23.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.5 + + '@shikijs/vscode-textmate@10.0.2': {} + '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 @@ -1694,10 +1800,16 @@ snapshots: '@types/estree@1.0.9': {} + '@types/hast@3.0.5': + dependencies: + '@types/unist': 3.0.3 + '@types/node@24.13.4': dependencies: undici-types: 7.18.2 + '@types/unist@3.0.3': {} + '@vitest/coverage-v8@5.0.1(vitest@5.0.1)': dependencies: '@bcoe/v8-coverage': 1.0.2 @@ -1708,7 +1820,7 @@ snapshots: obug: 2.2.1 std-env: 4.2.0 tinyrainbow: 3.1.1 - vitest: 5.0.1(@types/node@24.13.4)(@vitest/coverage-v8@5.0.1)(vite@8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13)) + vitest: 5.0.1(@types/node@24.13.4)(@vitest/coverage-v8@5.0.1)(vite@8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13)(yaml@2.9.1)) '@vitest/istanbul-lib-coverage@1.0.1': {} @@ -1716,14 +1828,14 @@ snapshots: dependencies: '@vitest/istanbul-lib-coverage': 1.0.1 - '@vitest/mocker@5.0.1(vite@8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13))': + '@vitest/mocker@5.0.1(vite@8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13)(yaml@2.9.1))': dependencies: '@jridgewell/trace-mapping': 0.3.31 '@vitest/spy': 5.0.1 estree-walker: 3.0.3 magic-string: 1.4.1 optionalDependencies: - vite: 8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13) + vite: 8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13)(yaml@2.9.1) '@vitest/spy@5.0.1': {} @@ -1731,6 +1843,8 @@ snapshots: any-promise@1.3.0: {} + argparse@2.0.1: {} + assertion-error@2.0.1: {} ast-v8-to-istanbul@1.0.6: @@ -1739,6 +1853,12 @@ snapshots: estree-walker: 3.0.3 js-tokens: 10.0.0 + balanced-match@4.0.4: {} + + brace-expansion@5.0.12: + dependencies: + balanced-match: 4.0.4 + bundle-require@5.1.0(esbuild@0.27.7): dependencies: esbuild: 0.27.7 @@ -1764,6 +1884,8 @@ snapshots: detect-libc@2.1.2: {} + entities@4.5.0: {} + es-module-lexer@2.3.2: {} esbuild@0.27.7: @@ -1900,8 +2022,14 @@ snapshots: lines-and-columns@1.2.4: {} + linkify-it@5.0.2: + dependencies: + uc.micro: 2.1.0 + load-tsconfig@0.2.5: {} + lunr@2.3.9: {} + magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.6.0 @@ -1916,6 +2044,21 @@ snapshots: '@babel/types': 7.29.8 source-map-js: 1.2.1 + markdown-it@14.3.2: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.2 + mdurl: 2.1.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + mdurl@2.1.0: {} + + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.12 + mlly@1.8.2: dependencies: acorn: 8.18.0 @@ -1951,12 +2094,13 @@ snapshots: mlly: 1.8.2 pathe: 2.0.3 - postcss-load-config@6.0.1(postcss@8.5.28)(tsx@4.23.13): + postcss-load-config@6.0.1(postcss@8.5.28)(tsx@4.23.13)(yaml@2.9.1): dependencies: lilconfig: 3.1.3 optionalDependencies: postcss: 8.5.28 tsx: 4.23.13 + yaml: 2.9.1 postcss@8.5.28: dependencies: @@ -1964,6 +2108,8 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + punycode.js@2.3.1: {} + readdirp@4.1.2: {} resolve-from@5.0.0: {} @@ -2066,7 +2212,7 @@ snapshots: ts-interface-checker@0.1.13: {} - tsup@8.5.1(postcss@8.5.28)(tsx@4.23.13)(typescript@5.9.3): + tsup@8.5.1(postcss@8.5.28)(tsx@4.23.13)(typescript@5.9.3)(yaml@2.9.1): dependencies: bundle-require: 5.1.0(esbuild@0.27.7) cac: 6.7.14 @@ -2077,7 +2223,7 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.5.28)(tsx@4.23.13) + postcss-load-config: 6.0.1(postcss@8.5.28)(tsx@4.23.13)(yaml@2.9.1) resolve-from: 5.0.0 rollup: 4.63.3 source-map: 0.7.6 @@ -2100,13 +2246,24 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + typedoc@0.28.20(typescript@5.9.3): + dependencies: + '@gerrit0/mini-shiki': 3.23.0 + lunr: 2.3.9 + markdown-it: 14.3.2 + minimatch: 10.2.6 + typescript: 5.9.3 + yaml: 2.9.1 + typescript@5.9.3: {} + uc.micro@2.1.0: {} + ufo@1.6.4: {} undici-types@7.18.2: {} - vite@8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13): + vite@8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13)(yaml@2.9.1): dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 @@ -2118,11 +2275,12 @@ snapshots: esbuild: 0.27.7 fsevents: 2.3.3 tsx: 4.23.13 + yaml: 2.9.1 - vitest@5.0.1(@types/node@24.13.4)(@vitest/coverage-v8@5.0.1)(vite@8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13)): + vitest@5.0.1(@types/node@24.13.4)(@vitest/coverage-v8@5.0.1)(vite@8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13)(yaml@2.9.1)): dependencies: '@types/chai': 5.2.3 - '@vitest/mocker': 5.0.1(vite@8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13)) + '@vitest/mocker': 5.0.1(vite@8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13)(yaml@2.9.1)) chai: 6.2.2 es-module-lexer: 2.3.2 expect-type: 1.4.0 @@ -2133,7 +2291,7 @@ snapshots: tinybench: 6.1.4 tinyexec: 1.3.0 tinyglobby: 0.2.17 - vite: 8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13) + vite: 8.3.0(@types/node@24.13.4)(esbuild@0.27.7)(tsx@4.23.13)(yaml@2.9.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.13.4 @@ -2145,3 +2303,5 @@ snapshots: dependencies: siginfo: 2.0.0 stackback: 0.0.2 + + yaml@2.9.1: {} diff --git a/typedoc.json b/typedoc.json new file mode 100644 index 0000000..d332855 --- /dev/null +++ b/typedoc.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://typedoc.org/schema.json", + "entryPoints": ["src/index.ts", "src/tagged.ts"], + "tsconfig": "tsconfig.src.json", + "readme": "README.md", + "out": "docs/api", + "treatWarningsAsErrors": true, + "intentionallyNotExported": ["HostContext"] +}