@vielzeug/codex 2.1.2 → 2.1.4
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.
- package/data/catalog.json +9 -5
- package/data/llms-full.txt +16 -44
- package/data/llms.txt +2 -2
- package/data/manifest.json +1 -1
- package/data/packages/arsenal.json +1 -1
- package/data/packages/assay.json +26 -26
- package/data/packages/clockwork.json +3 -3
- package/data/packages/codex.json +23 -23
- package/data/packages/coins.json +5 -5
- package/data/packages/conduit.json +8 -8
- package/data/packages/courier.json +8 -8
- package/data/packages/dnd.json +6 -6
- package/data/packages/familiar.json +9 -9
- package/data/packages/flux.json +9 -9
- package/data/packages/forge.json +2 -2
- package/data/packages/keymap.json +6 -6
- package/data/packages/lingua.json +22 -22
- package/data/packages/necromancer.json +2 -2
- package/data/packages/orbit.json +21 -21
- package/data/packages/ore.json +49 -49
- package/data/packages/prism.json +22 -22
- package/data/packages/pulse.json +17 -17
- package/data/packages/ripple.json +22 -16
- package/data/packages/rune.json +29 -29
- package/data/packages/scout.json +2 -2
- package/data/packages/scroll.json +15 -15
- package/data/packages/sourcerer.json +28 -28
- package/data/packages/spell.json +23 -23
- package/data/packages/tempo.json +14 -14
- package/data/packages/vault.json +4 -4
- package/data/packages/ward.json +25 -25
- package/data/packages/wayfinder.json +44 -44
- package/data/refine.json +4600 -4600
- package/data/search.json +33 -33
- package/dist/catalog.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/http.js +1 -1
- package/dist/http.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/snapshot.js.map +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/packages.js.map +1 -1
- package/dist/tools/refine.js.map +1 -1
- package/mcp-setup.json +5 -5
- package/package.json +20 -20
package/data/search.json
CHANGED
|
@@ -152,7 +152,7 @@
|
|
|
152
152
|
"name": "@vielzeug/assay",
|
|
153
153
|
"related": "ore refine",
|
|
154
154
|
"slug": "assay",
|
|
155
|
-
"source": "export { assayerror, assayqueryerror, assaytimeouterror } from './errors';\n\nexport {\n dispatch,\n fireblur,\n firechange,\n fireclick,\n firecustom,\n firefocus,\n fireinput,\n firekeydown,\n firekeyup,\n firesubmit,\n
|
|
155
|
+
"source": "export { assayerror, assayqueryerror, assaytimeouterror } from './errors';\n\nexport {\n type customeventoptions,\n dispatch,\n fireblur,\n firechange,\n fireclick,\n firecustom,\n firefocus,\n fireinput,\n firekeydown,\n firekeyup,\n firesubmit,\n} from './events';\nexport { getslotted, type queryscope, queryallinshadow, queryinshadow, querypart, within } from './query';\nexport {\n type delayoptions,\n delay,\n nexttick,\n type retryoptions,\n retry,\n type waitoptions,\n waitforevent,\n waituntil,\n} from './wait';\n"
|
|
156
156
|
},
|
|
157
157
|
{
|
|
158
158
|
"category": "state",
|
|
@@ -194,7 +194,7 @@
|
|
|
194
194
|
"name": "@vielzeug/clockwork",
|
|
195
195
|
"related": "herald ripple ward",
|
|
196
196
|
"slug": "clockwork",
|
|
197
|
-
"source": "export { clockworkerror } from './errors.js';\nexport { definemachine } from './interpret.js';\nexport type {\n actor,\n actorerrorcontext,\n actorerrordisposition,\n actoroptions,\n after,\n effect,\n effectargs,\n eventbytype,\n eventtype,\n guard,\n invoke,\n invokeargs,\n machine,\n machineconfig,\n machineevent,\n machinesnapshot,\n reducer,\n statenode,\n transition,\n transitioninput,\n transitionresult,\n} from './types.js';\
|
|
197
|
+
"source": "export type { clockworkerrorcode } from './errors.js';\nexport { clockworkerror } from './errors.js';\nexport { definemachine } from './interpret.js';\nexport type {\n actor,\n actorerrorcontext,\n actorerrordisposition,\n actoroptions,\n after,\n effect,\n effectargs,\n eventbytype,\n eventtype,\n guard,\n invoke,\n invokeargs,\n machine,\n machineconfig,\n machineevent,\n machinesnapshot,\n reducer,\n statenode,\n transition,\n transitioninput,\n transitionresult,\n} from './types.js';\n"
|
|
198
198
|
},
|
|
199
199
|
{
|
|
200
200
|
"category": "ai",
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
"name": "@vielzeug/codex",
|
|
212
212
|
"related": "refine",
|
|
213
213
|
"slug": "codex",
|
|
214
|
-
"source": "export {
|
|
214
|
+
"source": "export { type catalog, catalogerror, type searchhit, snapshotcatalog } from './catalog.js';\nexport { codexerror } from './errors.js';\nexport { type httphost, type httphostoptions, starthttphost } from './http.js';\nexport { createmcpserver } from './server.js';\nexport {\n loadsnapshot,\n parsecatalog,\n parsecontent,\n parsemanifest,\n parsepointer,\n parsesearch,\n validatesnapshot,\n} from './snapshot.js';\nexport {\n type cemattribute,\n type cemcsspart,\n type cemcssproperty,\n type cemdeclaration,\n type cemevent,\n type cemmember,\n type cemslot,\n doc_pages,\n type docpage,\n type example,\n type packagecontent,\n type packagemeta,\n snapshot_schema_version,\n type snapshotmanifest,\n type snapshotpointer,\n} from './types.js';\n"
|
|
215
215
|
},
|
|
216
216
|
{
|
|
217
217
|
"category": "finance",
|
|
@@ -265,7 +265,7 @@
|
|
|
265
265
|
"name": "@vielzeug/coins",
|
|
266
266
|
"related": "vault courier spell",
|
|
267
267
|
"slug": "coins",
|
|
268
|
-
"source": "export {
|
|
268
|
+
"source": "export { allocate, clamp, sum } from './aggregate';\nexport { bhd, currency, definecurrency, eur, gbp, iscurrency, jpy, krw, kwd, usd } from './currency';\nexport { decimal } from './decimal';\nexport type { coinserrorcode } from './errors';\nexport { coinserror, currencymismatcherror, invalidcurrencyerror } from './errors';\nexport { exchange, exchangerate } from './exchange';\nexport { format, formatparts } from './format';\nexport {\n abs,\n add,\n compare,\n divide,\n ismoney,\n money,\n multiply,\n negate,\n parsemoney,\n round,\n subtract,\n todecimal,\n} from './money';\nexport { parsemoneyjson, tojson } from './serialization';\nexport type {\n currency,\n currencycode,\n decimal,\n exchangerate,\n formatoptions,\n money,\n moneyformatpart,\n moneyjson,\n roundingmode,\n} from './types';\n"
|
|
269
269
|
},
|
|
270
270
|
{
|
|
271
271
|
"category": "infrastructure",
|
|
@@ -307,7 +307,7 @@
|
|
|
307
307
|
"name": "@vielzeug/conduit",
|
|
308
308
|
"related": "courier vault rune",
|
|
309
309
|
"slug": "conduit",
|
|
310
|
-
"source": "export { createcontainer } from './container';\nexport {\n conduitcirculardependencyerror,\n
|
|
310
|
+
"source": "export { createcontainer } from './container';\nexport {\n conduitcirculardependencyerror,\n conduitdisposederror,\n conduitdisposeerror,\n conduitduplicateregistrationerror,\n conduiterror,\n conduitprovidernotfounderror,\n conduitscopedresolutionerror,\n} from './errors';\nexport type { container, factoryoptions, infertokens, lifetime, scopetoken, token, valueoptions } from './types';\nexport { scope, token } from './types';\n"
|
|
311
311
|
},
|
|
312
312
|
{
|
|
313
313
|
"category": "http",
|
|
@@ -337,7 +337,7 @@
|
|
|
337
337
|
"name": "@vielzeug/courier",
|
|
338
338
|
"related": "flux ripple spell",
|
|
339
339
|
"slug": "courier",
|
|
340
|
-
"source": "export {
|
|
340
|
+
"source": "export { type courier, type courieroptions, createcourier } from './courier';\nexport {\n courieraborterror,\n courierdisposederror,\n couriererror,\n courierhttperror,\n couriernetworkerror,\n courierparseerror,\n courierschemavalidationerror,\n couriertimeouterror,\n} from './errors';\nexport { withbearerauth, withlogging, withrequestid } from './interceptors';\nexport type { streamevent, streamoptions } from './stream';\nexport type { fetchcontext, interceptor, transportoptions } from './transport';\nexport type {\n asyncstate,\n mutationcontext,\n mutationoptions,\n querycache,\n querycontext,\n querydefinition,\n querykey,\n querykeyatom,\n unsubscribe,\n} from './types';\nexport type { httprequestconfig as requestconfig, params } from './url';\n"
|
|
341
341
|
},
|
|
342
342
|
{
|
|
343
343
|
"category": "ui interaction",
|
|
@@ -459,7 +459,7 @@
|
|
|
459
459
|
"name": "@vielzeug/flux",
|
|
460
460
|
"related": "ripple herald pulse courier",
|
|
461
461
|
"slug": "flux",
|
|
462
|
-
"source": "export { toasynciterable } from './async';\nexport { stream } from './core';\nexport { fluxerror, fluxtimeouterror } from './errors';\nexport { combinelatest, concat, merge } from './operators/combination';\nexport { from, fromevent, interval, of, timer } from './operators/creation';\nexport type {
|
|
462
|
+
"source": "export { toasynciterable } from './async';\nexport { stream } from './core';\nexport { fluxerror, fluxtimeouterror } from './errors';\nexport { combinelatest, concat, merge } from './operators/combination';\nexport type { intervaloptions, timeroptions } from './operators/creation';\nexport { from, fromevent, interval, of, timer } from './operators/creation';\nexport type { debounceoptions, timeoutoptions } from './operators/filtering';\nexport { debounce, take, takeuntil, timeout } from './operators/filtering';\nexport type { concatmapoptions } from './operators/transformation';\nexport { concatmap, filter, map, mergemap, scan, switchmap } from './operators/transformation';\nexport type { retryoptions, toarrayoptions, valueoptions } from './operators/utility';\nexport { first, last, retry, toarray } from './operators/utility';\nexport { pipe } from './pipe';\nexport type {\n asynciterableoptions,\n observer,\n operator,\n overflowpolicy,\n producer,\n sink,\n stream,\n subscribeoptions,\n subscription,\n teardown,\n} from './types';\n"
|
|
463
463
|
},
|
|
464
464
|
{
|
|
465
465
|
"category": "forms",
|
|
@@ -517,7 +517,7 @@
|
|
|
517
517
|
"name": "@vielzeug/forge",
|
|
518
518
|
"related": "spell vault courier",
|
|
519
519
|
"slug": "forge",
|
|
520
|
-
"source": "export { forgeconfigerror, forgedisposederror, forgeerror, forgesubmiterror, forgevalidationerror } from './errors';\nexport
|
|
520
|
+
"source": "export { toformdata } from './adapters/form data';\nexport { forgeconfigerror, forgedisposederror, forgeerror, forgesubmiterror, forgevalidationerror } from './errors';\nexport { createform } from './form';\nexport * from './types';\n"
|
|
521
521
|
},
|
|
522
522
|
{
|
|
523
523
|
"category": "events",
|
|
@@ -633,7 +633,7 @@
|
|
|
633
633
|
"name": "@vielzeug/keymap",
|
|
634
634
|
"related": "herald refine ore",
|
|
635
635
|
"slug": "keymap",
|
|
636
|
-
"source": "export { findshortcutconflicts } from './conflicts';\nexport { keymaperror, keymapparseerror } from './errors';\nexport { formatshortcut } from './format';\nexport { createkeymap } from './keymap';\nexport {
|
|
636
|
+
"source": "export type { conflictoptions } from './conflicts';\nexport { findshortcutconflicts } from './conflicts';\nexport { keymaperror, keymapparseerror } from './errors';\nexport { formatshortcut } from './format';\nexport { createkeymap } from './keymap';\nexport type { modifierkey, shortcut, shortcutstep } from './parser';\nexport { canonicalizeshortcut, detectmodkey, matchstep, parseshortcut, parsestep } from './parser';\nexport type { bindingentry, bindingoptions, bindingvalue, handler, keymap, keymapoptions, when } from './types';\n"
|
|
637
637
|
},
|
|
638
638
|
{
|
|
639
639
|
"category": "utilities",
|
|
@@ -709,7 +709,7 @@
|
|
|
709
709
|
"name": "@vielzeug/lingua",
|
|
710
710
|
"related": "ripple wayfinder courier",
|
|
711
711
|
"slug": "lingua",
|
|
712
|
-
"source": "export {\n linguadisposederror,\n linguaerror,\n linguainvalidcatalogerror,\n linguainvalidlocaleerror,\n linguainvalidpluralcounterror,\n linguainvalidstateerror,\n linguamissingcatalogerror,\n} from './errors';\nexport {\n createtranslationstore,\n hydratetranslationstore,\n type translationsnapshot,\n type translationstore,\n} from './i18n';\nexport { createcatalogtranslator, createtranslator, type translator } from './translator';\nexport type {\n catalog,\n catalogloader,\n
|
|
712
|
+
"source": "export {\n linguadisposederror,\n linguaerror,\n linguainvalidcatalogerror,\n linguainvalidlocaleerror,\n linguainvalidpluralcounterror,\n linguainvalidstateerror,\n linguamissingcatalogerror,\n} from './errors';\nexport {\n createtranslationstore,\n hydratetranslationstore,\n type translationsnapshot,\n type translationstore,\n} from './i18n';\nexport { createcatalogtranslator, createtranslator, type translator } from './translator';\nexport type {\n catalog,\n catalogloader,\n catalognode,\n catalogsource,\n catalogsources,\n catalogs,\n catalogtranslatoroptions,\n loadedcatalogs,\n locale,\n messagekey,\n pluralcategory,\n pluralkey,\n pluralmessage,\n pluraloptions,\n subscribeoptions,\n textkey,\n translateoptions,\n translationstate,\n translationstoreoptions,\n translatoroptions,\n values,\n} from './types';\n"
|
|
713
713
|
},
|
|
714
714
|
{
|
|
715
715
|
"category": "ui",
|
|
@@ -743,7 +743,7 @@
|
|
|
743
743
|
"name": "@vielzeug/necromancer",
|
|
744
744
|
"related": "orbit ore",
|
|
745
745
|
"slug": "necromancer",
|
|
746
|
-
"source": "export {
|
|
746
|
+
"source": "export { animate } from './animate';\nexport { animateeach } from './animate each';\nexport { necromancerconfigerror, necromancererror, necromancerunsupportederror } from './errors';\nexport { capturelayout } from './layout';\nexport type {\n animateeachoptions,\n animateoptions,\n animationgroup,\n animationhandle,\n animationresult,\n keyframefactory,\n keyframes,\n layoutanimationoptions,\n layoutcaptureoptions,\n layouttransition,\n motionmode,\n} from './types';\n"
|
|
747
747
|
},
|
|
748
748
|
{
|
|
749
749
|
"category": "ui",
|
|
@@ -789,7 +789,7 @@
|
|
|
789
789
|
"name": "@vielzeug/orbit",
|
|
790
790
|
"related": "ore refine prism",
|
|
791
791
|
"slug": "orbit",
|
|
792
|
-
"source": "// errors\nexport {
|
|
792
|
+
"source": "// errors\n\nexport type { autoupdateoptions } from './auto update';\n// auto update\nexport { autoupdate } from './auto update';\n// core engine\nexport { computeposition, computepositionasync, computepositionraf, getrects } from './core';\nexport { orbitconfigerror, orbiterror } from './errors';\nexport type { positioner, positioneroptions, positionstrategy } from './float';\n// high level api\nexport { createpositioner } from './float';\nexport type { inlineoptions } from './inline';\nexport { inline } from './inline';\nexport type { arrowoptions } from './middleware/arrow';\n// middleware\nexport { arrow } from './middleware/arrow';\nexport type { autoplacementoptions } from './middleware/auto placement';\nexport { autoplacement } from './middleware/auto placement';\nexport type { flipoptions } from './middleware/flip';\nexport { flip } from './middleware/flip';\nexport type { hideoptions } from './middleware/hide';\nexport { hide } from './middleware/hide';\nexport type { offsetconfig, offsetvalue } from './middleware/offset';\n\nexport { offset } from './middleware/offset';\nexport type { limitshiftoptions, shiftlimiter, shiftoptions } from './middleware/shift';\n\nexport { limitshift, shift } from './middleware/shift';\nexport type { sizeoptions } from './middleware/size';\n\nexport { size } from './middleware/size';\nexport { detectoverflow, getclippingancestorrect } from './overflow';\n\n// preset types (functions live on the @vielzeug/orbit/presets sub path)\nexport type { positioningpreset, presetoptions } from './presets';\n// types\nexport type {\n alignment,\n arrowdata,\n computepositionoptions,\n computepositionresult,\n detectoverflowoptions,\n flipdata,\n hidedata,\n middleware,\n middlewaredata,\n middlewarereset,\n middlewareresult,\n middlewarestate,\n padding,\n placement,\n rect,\n referenceelement,\n shiftdata,\n side,\n sideobject,\n sizedata,\n virtualreference,\n} from './types';\n// public utilities\nexport { getalignment, getside } from './utils';\n"
|
|
793
793
|
},
|
|
794
794
|
{
|
|
795
795
|
"category": "ui primitives",
|
|
@@ -806,7 +806,7 @@
|
|
|
806
806
|
"name": "@vielzeug/ore",
|
|
807
807
|
"related": "ripple refine orbit",
|
|
808
808
|
"slug": "ore",
|
|
809
|
-
"source": "export
|
|
809
|
+
"source": "export type { componentdefinition } from './component types';\nexport { createcontext, type injectionkey, inject, injectstrict, provide } from './context';\nexport { define, prop } from './define';\n// near universal template directives — used in most non trivial components (lists,\n// conditionals, and class/style maps. kept in the main entry alongside\n// `html`/`define` rather than a separate sub path: tree shaking already means an unused export\n// costs nothing in a bundled consumer, so splitting these off only adds an extra import line\n// for functionality most components need on day one. `unsafehtml()` and `live()` remain here\n// too: their explicit names make their specialized behavior clear without a second import path.\nexport { classmap } from './directives/classmap';\nexport { each } from './directives/each';\nexport { type livebinding, live } from './directives/live';\nexport { stylemap } from './directives/stylemap';\nexport { unsafehtml } from './directives/unsafe html';\nexport { when } from './directives/when';\nexport { oreapierror, oreerror, type oreerrorphase, oreinternalerror, orelifecycleerror } from './errors';\nexport { type formfieldhandle, type formfieldoptions, usefield } from './forms/field';\nexport {\n type bindoptions,\n bind,\n type hostbindconfig,\n type hostbindfn,\n type hostbindingvalue,\n type reflectconfig,\n} from './host bind';\nexport { intersectionobserver } from './observers/intersection observe';\nexport { mediaobserver } from './observers/media observe';\nexport { type mutationobservervalue, mutationobserver } from './observers/mutation observe';\nexport { resizeobserver } from './observers/resize observe';\nexport type { inferprops, propdef, propinputdefs, propsdef } from './props';\n// lifecycle hooks — plain functions, called during setup() or a composable it invokes.\nexport {\n gethost,\n type onformresetcallback,\n type onmountedcallback,\n oncleanup,\n onelement,\n onevent,\n onformreset,\n onmounted,\n watcheffect,\n} from './runtime';\nexport { type componentslots, useslots } from './slots';\nexport { html } from './template/instantiator';\nexport { type htmlresult, type ref, type refcallback, ref } from './template/result';\nexport { type cssresult, css } from './utils/css';\nexport { type emitfn, useemit } from './utils/emit';\n\nexport { createid, createstableid, resetstableidcounter } from './utils/id';\n"
|
|
810
810
|
},
|
|
811
811
|
{
|
|
812
812
|
"category": "ui",
|
|
@@ -823,7 +823,7 @@
|
|
|
823
823
|
"name": "@vielzeug/prism",
|
|
824
824
|
"related": "ripple refine orbit",
|
|
825
825
|
"slug": "prism",
|
|
826
|
-
"source": "// public api — all exports for @vielzeug/prism\n\nexport type {
|
|
826
|
+
"source": "// public api — all exports for @vielzeug/prism\n\nexport type { easingfn } from './animation/easing';\nexport type { animationtarget } from './animation/transition';\n// animation utilities (for plugin authors)\nexport { animate } from './animation/transition';\n// chart factories\nexport { createareachart } from './charts/area';\nexport { createbarchart } from './charts/bar';\nexport { createlinechart } from './charts/line';\nexport { createpiechart } from './charts/pie';\nexport { createsparkline } from './charts/sparkline';\n// error classes\nexport { prismdisposederror, prismerror, prismrendererror } from './errors';\n// interaction types (useful for plugin authors)\nexport type { legendstate } from './interaction/legend';\nexport type { tooltipstate } from './interaction/tooltip';\n// scale factories\nexport { bandscale } from './scales/band';\nexport { linearscale } from './scales/linear';\nexport { timescale } from './scales/time';\n// svg primitives (for plugin authors)\nexport type { point } from './svg/path';\n// theme utilities\nexport { resettheme, seriescolor, settheme } from './theme';\nexport type {\n areachartconfig,\n areaseriesconfig,\n axisconfig,\n axisposition,\n bandscale,\n barchartconfig,\n barseriesconfig,\n barvariant,\n basechartconfig,\n charta11y,\n chartdimensions,\n chartevent,\n charthandle,\n chartmargin,\n chartplugin,\n chartplugincontext,\n crosshairconfig,\n datum,\n gridconfig,\n legendconfig,\n legendposition,\n linechartconfig,\n lineseriesconfig,\n maybesignal,\n piechartconfig,\n piesliceconfig,\n pievariant,\n prismtheme,\n scale,\n series,\n sparklineconfig,\n sparklinevariant,\n stacksegment,\n tooltipconfig,\n transitionconfig,\n} from './types';\n"
|
|
827
827
|
},
|
|
828
828
|
{
|
|
829
829
|
"category": "websockets",
|
|
@@ -861,7 +861,7 @@
|
|
|
861
861
|
"name": "@vielzeug/pulse",
|
|
862
862
|
"related": "herald ripple courier clockwork",
|
|
863
863
|
"slug": "pulse",
|
|
864
|
-
"source": "export
|
|
864
|
+
"source": "export {\n pulseaborterror,\n pulseconnectionerror,\n pulsedisposederror,\n pulseerror,\n pulseprotocolerror,\n pulsetimeouterror,\n} from './errors';\nexport { createpulse } from './pulse';\nexport type {\n channeldefinition,\n channeldefinitions,\n eventkey,\n heartbeatoptions,\n messagemap,\n outgoingmessage,\n outgoingtransform,\n presencechannel,\n presencedefinitions,\n pulse,\n pulsechannel,\n pulseoptions,\n pulsestatus,\n reconnectoptions,\n unsubscribe,\n} from './types';\n"
|
|
865
865
|
},
|
|
866
866
|
{
|
|
867
867
|
"category": "ui components",
|
|
@@ -881,12 +881,12 @@
|
|
|
881
881
|
},
|
|
882
882
|
{
|
|
883
883
|
"category": "state",
|
|
884
|
-
"description": "framework agnostic signals, derived values, effects, scopes,
|
|
884
|
+
"description": "framework agnostic signals, derived values, effects, scopes, watchers, and async resources.",
|
|
885
885
|
"docs": {
|
|
886
|
-
"index": " \ntitle: ripple — reactive graphs\ndescription: framework agnostic signals, derived values, effects, scopes,
|
|
887
|
-
"api": " \ntitle: ripple — api reference\ndescription: complete reference for reactive graphs, signals, effects, scopes, watchers, resources, and stores.\n \n\n[[toc]]\n\n## api overview\n\n| symbol | purpose | execution mode | common gotcha |\n| | | | |\n| `createripple()` | create isolated graph | sync | disposal is terminal; create a new graph instead of reusing it |\n| `signal()` | create writable value | sync | default graph is process wide |\n| `computed()` | create lazy derived value | sync | keep derivation pure |\n| `effect()` | react to dependency reads | sync | dispose handle or return cleanup |\n| `batch()` | coalesce synchronous writes | sync | does not roll back writes |\n| `createscope()` | group owned reactive work | sync | call `run()` to activate it |\n| `untrack()` | read without tracking | sync | read still happens immediately |\n| `watch()` | observe selected output | sync | use `effect()` for broad reads |\n| `resource()` | load async source | async | read dependencies in source callback |\n| `createstore()` | hold replacement based state | sync | return replacement objects from updates |\n| `isreactive()` | test `readable` identity | sync | does not test arbitrary objects |\n\n## package entry point\n\n| import | purpose |\n| | |\n| `@vielzeug/ripple` | default graph apis, isolated graph factory, types, and errors |\n| `@vielzeug/ripple/watch` | `watch()` and `watchoptions` |\n| `@vielzeug/ripple/async` | `resource()`, `resource`, `asyncstate`, `resourceoptions` |\n| `@vielzeug/ripple/store` | `createstore()`, `store`, `storeoptions` |\n\n## graph creation\n\n### `createripple(options?)`\n\n```ts\nfunction createripple(options?: rippleoptions): ripple;\n```\n\ncreates one isolated reactive graph. factories on the returned object share scheduling, ownership, observer, and error boundaries. `dispose()` is terminal: `ripple.disposed` becomes `true`, existing owned work is disposed, and creating more graph work throws `rippledisposedruntimeerror`. create a new graph for a new lifetime.\n\n| parameter | type | description |\n| | | |\n| `options.onerror` | `(error, context) => void` | receives effect, cleanup, listener, or observer failures. |\n| `options.observer` | `reactiveobserver` | receives graph events. |\n\n**returns:** `ripple`.\n\n**example:**\n\n```ts\nimport { createripple } from '@vielzeug/ripple';\n\nconst ripple = createripple();\nconst count = ripple.signal(0);\nconst stop = ripple.effect(() => console.log(count.value));\n\nstop.dispose();\nripple.dispose();\n```\n\n \n\n### `isreactive(value)`\n\n```ts\nfunction isreactive<t>(value: t | readable<t>): value is readable<t>;\n```\n\ntests whether a value is a ripple readable node.\n\n**returns:** `true` for a `signal`, computed value, or other `readable` node.\n\n**example:**\n\n```ts\nimport { isreactive, signal } from '@vielzeug/ripple';\n\nconsole.log(isreactive(signal(0)));\n```\n\n## default graph functions\n\n### `signal(initial, options?)`\n\n```ts\nfunction signal<t>(initial: t, options?: signaloptions<t>): signal<t>;\n```\n\ncreates writable state on the default graph.\n\n**returns:** `signal<t>`.\n\n**example:**\n\n```ts\nimport { signal } from '@vielzeug/ripple';\n\nconst count = signal(0);\ncount.value += 1;\n```\n\n \n\n### `computed(derive, options?)`\n\n```ts\nfunction computed<t>(derive: () => t, options?: computedoptions<t>): readable<t>;\n```\n\ncreates a lazy read only value from reactive reads in `derive`.\n\n**returns:** `readable<t>`.\n\n**example:**\n\n```ts\nimport { computed, signal } from '@vielzeug/ripple';\n\nconst count = signal(2);\nconst doubled = computed(() => count.value * 2);\nconsole.log(doubled.value);\n```\n\n \n\n### `effect(callback, options?)`\n\n```ts\nfunction effect(callback: () => cleanup | void, options?: effectoptions): effecthandle;\n```\n\nruns immediately and reruns when its tracked reads change. a returned cleanup runs before the next callback or disposal.\n\n**returns:** `effecthandle`.\n\n**example:**\n\n```ts\nimport { effect, signal } from '@vielzeug/ripple';\n\nconst connected = signal(false);\nconst stop = effect(() => {\n if (!connected.value) return;\n\n return () => console.log('disconnect');\n});\n\nstop.dispose();\n```\n\n \n\n### `batch(fn)` and `untrack(fn)`\n\n```ts\nfunction batch<t>(fn: () => t): t;\nfunction untrack<t>(fn: () => t): t;\n```\n\n`batch()` defers effects and listeners until its callback returns. `untrack()` reads current state without adding dependencies to an enclosing effect.\n\n**returns:** the callback result.\n\n**example:**\n\n```ts\nimport { batch, signal, untrack } from '@vielzeug/ripple';\n\nconst first = signal('ada');\nconst last = signal('lovelace');\nconst locale = signal('en us');\n\nbatch(() => {\n first.value = 'grace';\n last.value = 'hopper';\n});\n\nconsole.log(untrack(() => locale.value));\n```\n\n \n\n### `createscope(name?)`\n\n```ts\nfunction createscope(name?: string): scope;\n```\n\ncreates a disposable ownership boundary. work created inside `scope.run()` belongs to that scope.\n\n**returns:** `scope`.\n\n**example:**\n\n```ts\nimport { createscope, effect, signal } from '@vielzeug/ripple';\n\nconst scope = createscope('panel');\nconst count = signal(0);\n\nscope.run(() => effect(() => console.log(count.value)));\nscope.dispose();\n```\n\n## watch, resources, and stores\n\n### `watch(source, callback, options?)`\n\n```ts\nfunction watch<t>(\n source: readable<t> | (() => t),\n callback: (value: t, previous: t | undefined) => void,\n options?: watchoptions<t>,\n): effecthandle;\n```\n\nobserves selected output changes using the default graph or a `ripple.watch()` method.\n\n**returns:** `effecthandle`.\n\n**example:**\n\n```ts\nimport { signal } from '@vielzeug/ripple';\nimport { watch } from '@vielzeug/ripple/watch';\n\nconst count = signal(0);\nconst stop = watch(count, (value, previous) => console.log(previous, value), { immediate: true });\nstop.dispose();\n```\n\n \n\n### `resource(source, loader, options?)`\n\n```ts\nfunction resource<source, value>(\n source: () => source,\n loader: (source: source, context: { readonly signal: abortsignal }) => promise<value>,\n options?: resourceoptions,\n): resource<value>;\n```\n\ntracks `source`, aborts stale loader work, and exposes `asyncstate<value>`. source and loader failures become `status: 'error'` state; handle them from `resource.value` rather than `rippleoptions.onerror`, which is reserved for runtime callback, cleanup, listener, and observer failures.\n\n**returns:** `resource<value>`.\n\n**example:**\n\n```ts\nimport { signal } from '@vielzeug/ripple';\nimport { resource } from '@vielzeug/ripple/async';\n\nconst userid = signal('42');\nconst user = resource(() => userid.value, async (id) => ({ id }));\n\nif (user.value.status === 'error') console.error(user.value.error);\nuser.dispose();\n```\n\n \n\n### `createstore(initial, options?)`\n\n```ts\nfunction createstore<t>(initial: t, options?: storeoptions): store<t>;\n```\n\ncreates one writable value wrapper with explicit `set()` and `update()` operations.\n\n**returns:** `store<t>`.\n\n**example:**\n\n```ts\nimport { createstore } from '@vielzeug/ripple/store';\n\nconst user = createstore({ name: 'ada', visits: 0 });\nuser.update((value) => ({ ...value, visits: value.visits + 1 }));\n```\n\n## types\n\n```ts\ntype cleanup = () => void;\ntype equality<t> = (previous: t, next: t) => boolean;\ntype unsubscribe = () => void;\n\ntype signaloptions<t> = { equals?: equality<t>; name?: string };\ntype computedoptions<t> = { equals?: equality<t>; name?: string };\ntype effectoptions = { name?: string; scheduler?: 'microtask' | 'sync' };\ntype watchoptions<t> = { equals?: equality<t>; immediate?: boolean; name?: string; once?: boolean };\ntype resourceoptions = { name?: string };\ntype storeoptions = { name?: string };\n\ntype reactiveevent =\n | { readonly kind: 'compute'; readonly name?: string }\n | { readonly kind: 'effect'; readonly name?: string }\n | { readonly kind: 'write'; readonly name?: string; readonly next: unknown; readonly previous: unknown }\n | { readonly kind: 'dispose'; readonly name?: string; readonly node: 'effect' | 'scope' };\n\ntype reactiveobserver = (event: reactiveevent) => void;\ntype reactiveerrorcontext = { readonly kind: 'cleanup' | 'effect' | 'listener' | 'observer'; readonly name?: string };\ntype rippleoptions = { observer?: reactiveobserver; onerror?: (error: unknown, context: reactiveerrorcontext) => void };\n\ntype asyncstate<t> =\n | { readonly previous?: t; readonly status: 'pending' }\n | { readonly status: 'success'; readonly value: t }\n | { readonly error: unknown; readonly previous?: t; readonly status: 'error' };\n\ninterface readable<t> {\n readonly name?: string;\n peek(): t;\n subscribe(listener: () => void): unsubscribe;\n readonly value: t;\n}\n\ninterface signal<t> extends readable<t> { value: t }\ninterface disposable { dispose(): void; readonly disposed: boolean; readonly disposalsignal: abortsignal; [symbol.dispose](): void }\ntype effecthandle = disposable;\ninterface scope extends disposable { run<t>(fn: () => t): t }\n\ninterface resource<t> extends readable<asyncstate<t>>, disposable { reload(): void }\ninterface store<t> extends readable<t> { set(value: t): void; update(updater: (value: t) => t): void }\n\ninterface ripple {\n batch<t>(fn: () => t): t;\n computed<t>(derive: () => t, options?: computedoptions<t>): readable<t>;\n createscope(name?: string): scope;\n createstore<t>(initial: t, options?: storeoptions): store<t>;\n dispose(): void;\n readonly disposed: boolean;\n effect(callback: () => cleanup | void, options?: effectoptions): effecthandle;\n resource<source, value>(source: () => source, loader: (source: source, context: { readonly signal: abortsignal }) => promise<value>, options?: resourceoptions): resource<value>;\n signal<t>(initial: t, options?: signaloptions<t>): signal<t>;\n untrack<t>(fn: () => t): t;\n watch<t>(source: readable<t> | (() => t), callback: (value: t, previous: t | undefined) => void, options?: watchoptions<t>): effecthandle;\n}\n```\n\n## errors\n\n| error | trigger | notable properties |\n| | | |\n| `rippleerror` | base ripple error | `rippleerror.is(error)` narrows unknown values. |\n| `ripplecomputedcycleerror` | computed dependency reads itself through a cycle | extends `rippleerror`. |\n| `rippledisposedruntimeerror` | factory or execution api used after `ripple.dispose()` | extends `rippleerror`. |\n| `rippledisposedscopeerror` | `scope.run()` after scope disposal | extends `rippleerror`. |\n| `rippleinfinitelooperror` | effect flush exceeds graph iteration limit | extends `rippleerror`. |\n",
|
|
888
|
-
"usage": " \ntitle: ripple — usage guide\ndescription: build reactive state with one explicit graph boundary.\n \n\n[[toc]]\n\n## basic usage\n\nuse top level functions when one application lifetime graph is sufficient. read a signal inside an effect to make that read reactive.\n\n```ts\nimport { computed, effect, signal } from '@vielzeug/ripple';\n\nconst count = signal(0);\nconst label = computed(() => `count: ${count.value}`);\nconst stop = effect(() => console.log(label.value));\n\ncount.value = 1;\nstop.dispose();\n```\n\n## isolated graphs\n\nuse `createripple()` for tests, ssr requests, embedded applications, or independently disposable features. never mix reactive values from separate graphs.\n\n```ts\nimport { createripple } from '@vielzeug/ripple';\n\nconst ripple = createripple({\n onerror(error, context) {\n console.log(context.kind, error);\n },\n});\n\nconst count = ripple.signal(0);\nconst stop = ripple.effect(() => console.log(count.value));\n\nstop.dispose();\nripple.dispose();\n```\n\n## derived values and batches\n\nuse `computed()` for pure derivation. use `untrack()` when a current read must not become an effect dependency. use `batch()` for related synchronous writes.\n\n```ts\nconst first = ripple.signal('ada');\nconst last = ripple.signal('lovelace');\nconst locale = ripple.signal('en us');\nconst name = ripple.computed(() => `${first.value} ${last.value}`);\n\nripple.effect(() => {\n console.log({ locale: ripple.untrack(() => locale.value), name: name.value });\n});\n\nripple.batch(() => {\n first.value = 'grace';\n last.value = 'hopper';\n});\n```\n\n## ownership with scopes\n\ncreate a scope when a group of effects or derived values shares one lifetime. dispose the scope when its feature ends.\n\n```ts\nconst scope = ripple.createscope('panel');\nconst count = ripple.signal(0);\n\nscope.run(() => {\n ripple.effect(() => console.log(`panel count: ${count.value}`));\n});\n\ncount.value = 1;\nscope.dispose();\n```\n\n## watch selected values\n\nuse `watch()` for one selected output. use `effect()` when every reactive read in the callback should be a dependency.\n\n```ts\nconst stopwatch = ripple.watch(\n () => `${first.value} ${last.value}`,\n (value, previous) => console.log({ previous, value }),\n { immediate: true },\n);\n\nstopwatch.dispose();\n```\n\n## async data\n\n`resource()` captures source dependencies synchronously and passes a cancellation signal to the loader.\n\n```ts\nconst userid = ripple.signal('42');\nconst user = ripple.resource(\n () => userid.value,\n async (id, { signal }) => {\n const response = await fetch(`/users/${id}`, { signal });\n if (!response.ok) throw new error(`request failed: ${response.status}`);\n\n return response.json() as promise<{ id: string; name: string }>;\n },\n);\n\nif (user.value.status === 'success') console.log(user.value.value.name);\nif (user.value.status === 'error') console.error(user.value.error);\nuser.dispose();\n```\n\n## object state\n\n`
|
|
889
|
-
"examples": " \ntitle: ripple — examples\ndescription: practical ripple recipes.\n \n\n## examples\n\n [reactive counter](./examples/reactive counter.md)\n [batch and untrack](./examples/batch and untrack.md)\n [scope ownership](./examples/scope ownership.md)\n [watch selected value](./examples/watch selected value.md)\n [
|
|
886
|
+
"index": " \ntitle: ripple — reactive graphs\ndescription: framework agnostic signals, derived values, effects, scopes, watchers, and async resources.\npackage: ripple\ncategory: state\nkeywords: [reactive, signals, computed, effects, graph, scope, batch, watch, resource, async]\nrelated: [ore, clockwork, ledger]\nexports: [createripple, signal, computed, effect, batch, createscope, untrack, watch, resource, isreactive]\nenvironments: [browser, node, ssr, deno]\n \n\n<! markdownlint disable md025 md033 md060 >\n\n<packagehero package=\"ripple\" />\n\n## why ripple?\n\nhand rolled reactive state spreads subscription, cleanup, and derived value rules across application code. ripple gives you one graph boundary with explicit disposal and fine grained dependencies while keeping rendering and routing outside the runtime.\n\n```ts\n// before\nlet count = 0;\nconst listeners = new set<() => void>();\n\nfunction setcount(next: number) {\n count = next;\n for (const listener of listeners) listener();\n}\n\n// after\nimport { createripple } from '@vielzeug/ripple';\n\nconst ripple = createripple();\nconst count = ripple.signal(0);\nconst doubled = ripple.computed(() => count.value * 2);\nconst stop = ripple.effect(() => console.log(doubled.value));\n\ncount.value = 1;\nstop.dispose();\nripple.dispose();\n```\n\n| feature | ripple | zustand | jotai |\n| | | | |\n| bundle size | <packageinfo package=\"ripple\" type=\"size\" /> | ~3.5 kb | ~7 kb |\n| zero dependencies | <ore icon name=\"check\" size=\"16\"></ore icon> | <ore icon name=\"x\" size=\"16\"></ore icon> | <ore icon name=\"x\" size=\"16\"></ore icon> |\n| framework agnostic | <ore icon name=\"check\" size=\"16\"></ore icon> | <ore icon name=\"check\" size=\"16\"></ore icon> | react first |\n| explicit graph lifetime | <ore icon name=\"check\" size=\"16\"></ore icon> | <ore icon name=\"x\" size=\"16\"></ore icon> | <ore icon name=\"x\" size=\"16\"></ore icon> |\n| fine grained derived values | <ore icon name=\"check\" size=\"16\"></ore icon> | selectors | atoms |\n\n<div class=\"decision callout\">\n\n**use ripple when** you need framework independent state with explicit graph lifetime and small composable primitives.\n\n**consider a framework store when** component bindings, server cache, or framework specific tooling matter more than portable reactive state.\n\n</div>\n\n## installation\n\n::: code group\n\n```sh [pnpm]\npnpm add @vielzeug/ripple\n```\n\n```sh [npm]\nnpm install @vielzeug/ripple\n```\n\n```sh [yarn]\nyarn add @vielzeug/ripple\n```\n\n:::\n\n## quick start\n\ncreate one graph, derive a value, observe it, then dispose resources when the graph lifetime ends.\n\n```ts\nimport { createripple } from '@vielzeug/ripple';\n\nconst ripple = createripple();\nconst count = ripple.signal(0);\nconst doubled = ripple.computed(() => count.value * 2);\nconst stop = ripple.effect(() => console.log(doubled.value));\n\nripple.batch(() => {\n count.value = 1;\n count.value = 2;\n});\n\nstop.dispose();\nripple.dispose();\n```\n\n## features\n\n<div class=\"features grid\">\n\n `createripple()` creates an isolated graph and lifetime boundary.\n `signal()` stores writable values with configurable equality.\n `computed()` derives lazy read only values.\n `effect()` reacts to dependency changes with cleanup support.\n `batch()` coalesces synchronous writes and notifications.\n `createscope()` groups owned reactive work.\n `watch()` observes one selected source transition.\n `resource()` loads async values with stale work cancellation.\n\n</div>\n\n## documentation\n\n<div class=\"doc links\">\n\n [usage guide](./usage.md)\n [api reference](./api.md)\n [examples](./examples.md)\n [migration guide](./migration.md)\n\n</div>\n\n## see also\n\n<div class=\"see also\">\n\n [ore](/ore/) — uses ripple signals and effects for web component reactivity.\n [clockwork](/clockwork/) — exposes machine state through reactive ripple values.\n [ledger](/ledger/) — adds command based undo and redo beside ripple state.\n\n</div>\n\n<! markdownlint enable >\n",
|
|
887
|
+
"api": " \ntitle: ripple — api reference\ndescription: complete reference for reactive graphs, signals, effects, scopes, watchers, and resources.\n \n\n[[toc]]\n\n## api overview\n\n| symbol | purpose | execution mode | common gotcha |\n| | | | |\n| `createripple()` | create isolated graph | sync | disposal is terminal; create a new graph instead of reusing it |\n| `signal()` | create writable value | sync | default graph is process wide |\n| `computed()` | create lazy derived value | sync | keep derivation pure |\n| `effect()` | react to dependency reads | sync | dispose handle or return cleanup |\n| `batch()` | coalesce synchronous writes | sync | does not roll back writes |\n| `createscope()` | group owned reactive work | sync | call `run()` to activate it |\n| `untrack()` | read without tracking | sync | read still happens immediately |\n| `watch()` | observe selected output | sync | use `effect()` for broad reads |\n| `resource()` | load async source | async | read dependencies in source callback |\n| `isreactive()` | test `readable` identity | sync | does not test arbitrary objects |\n\n## package entry point\n\n| import | purpose |\n| | |\n| `@vielzeug/ripple` | all primitives, types, and errors — signals, computed, effects, scopes, watch, resource, and the isolated graph factory |\n\n## graph creation\n\n### `createripple(options?)`\n\n```ts\nfunction createripple(options?: rippleoptions): ripple;\n```\n\ncreates one isolated reactive graph. factories on the returned object share scheduling, ownership, observer, and error boundaries. `dispose()` is terminal: `ripple.disposed` becomes `true`, existing owned work is disposed, and creating more graph work throws `rippledisposedruntimeerror`. create a new graph for a new lifetime.\n\n| parameter | type | description |\n| | | |\n| `options.onerror` | `(error, context) => void` | receives effect, cleanup, listener, or observer failures. |\n| `options.observer` | `reactiveobserver` | receives graph events. |\n\n**returns:** `ripple`.\n\n**example:**\n\n```ts\nimport { createripple } from '@vielzeug/ripple';\n\nconst ripple = createripple();\nconst count = ripple.signal(0);\nconst stop = ripple.effect(() => console.log(count.value));\n\nstop.dispose();\nripple.dispose();\n```\n\n \n\n### `isreactive(value)`\n\n```ts\nfunction isreactive<t>(value: t | readable<t>): value is readable<t>;\n```\n\ntests whether a value is a ripple readable node.\n\n**returns:** `true` for a `signal`, computed value, or other `readable` node.\n\n**example:**\n\n```ts\nimport { isreactive, signal } from '@vielzeug/ripple';\n\nconsole.log(isreactive(signal(0)));\n```\n\n## default graph functions\n\n### `signal(initial, options?)`\n\n```ts\nfunction signal<t>(initial: t, options?: signaloptions<t>): signal<t>;\n```\n\ncreates writable state on the default graph. use `update()` for immutable replacement patterns.\n\n**returns:** `signal<t>`.\n\n**example:**\n\n```ts\nimport { signal } from '@vielzeug/ripple';\n\nconst count = signal(0);\ncount.value += 1;\n\nconst cart = signal({ items: 0 });\ncart.update((state) => ({ ...state, items: state.items + 1 }));\n```\n\n \n\n### `computed(derive, options?)`\n\n```ts\nfunction computed<t>(derive: () => t, options?: computedoptions<t>): readable<t>;\n```\n\ncreates a lazy read only value from reactive reads in `derive`.\n\n**returns:** `readable<t>`.\n\n**example:**\n\n```ts\nimport { computed, signal } from '@vielzeug/ripple';\n\nconst count = signal(2);\nconst doubled = computed(() => count.value * 2);\nconsole.log(doubled.value);\n```\n\n \n\n### `effect(callback, options?)`\n\n```ts\nfunction effect(callback: () => cleanup | undefined, options?: effectoptions): effecthandle;\n```\n\nruns immediately and reruns when its tracked reads change. a returned cleanup runs before the next callback or disposal.\n\n**returns:** `effecthandle`.\n\n**example:**\n\n```ts\nimport { effect, signal } from '@vielzeug/ripple';\n\nconst connected = signal(false);\nconst stop = effect(() => {\n if (!connected.value) return;\n\n return () => console.log('disconnect');\n});\n\nstop.dispose();\n```\n\n \n\n### `batch(fn)` and `untrack(fn)`\n\n```ts\nfunction batch<t>(fn: () => t): t;\nfunction untrack<t>(fn: () => t): t;\n```\n\n`batch()` defers effects and listeners until its callback returns. `untrack()` reads current state without adding dependencies to an enclosing effect.\n\n**returns:** the callback result.\n\n**example:**\n\n```ts\nimport { batch, signal, untrack } from '@vielzeug/ripple';\n\nconst first = signal('ada');\nconst last = signal('lovelace');\nconst locale = signal('en us');\n\nbatch(() => {\n first.value = 'grace';\n last.value = 'hopper';\n});\n\nconsole.log(untrack(() => locale.value));\n```\n\n \n\n### `createscope(name?)`\n\n```ts\nfunction createscope(name?: string): scope;\n```\n\ncreates a disposable ownership boundary. work created inside `scope.run()` belongs to that scope.\n\n**returns:** `scope`.\n\n**example:**\n\n```ts\nimport { createscope, effect, signal } from '@vielzeug/ripple';\n\nconst scope = createscope('panel');\nconst count = signal(0);\n\nscope.run(() => effect(() => console.log(count.value)));\nscope.dispose();\n```\n\n## watch and resources\n\n### `watch(source, callback, options?)`\n\n```ts\nfunction watch<t>(\n source: readable<t> | (() => t),\n callback: (value: t, previous: t | undefined) => void,\n options?: watchoptions<t>,\n): effecthandle;\n```\n\nobserves selected output changes using the default graph or a `ripple.watch()` method.\n\n**returns:** `effecthandle`.\n\n**example:**\n\n```ts\nimport { signal, watch } from '@vielzeug/ripple';\n\nconst count = signal(0);\nconst stop = watch(count, (value, previous) => console.log(previous, value), { immediate: true });\nstop.dispose();\n```\n\n \n\n### `resource(source, loader, options?)`\n\n```ts\nfunction resource<source, value>(\n source: () => source,\n loader: (source: source, context: { readonly signal: abortsignal }) => promise<value>,\n options?: resourceoptions,\n): resource<value>;\n```\n\ntracks `source`, aborts stale loader work, and exposes `asyncstate<value>`. source and loader failures become `status: 'error'` state; handle them from `resource.value` rather than `rippleoptions.onerror`, which is reserved for runtime callback, cleanup, listener, and observer failures.\n\n**returns:** `resource<value>`.\n\n**example:**\n\n```ts\nimport { resource, signal } from '@vielzeug/ripple';\n\nconst userid = signal('42');\nconst user = resource(() => userid.value, async (id) => ({ id }));\n\nif (user.value.status === 'error') console.error(user.value.error);\nuser.dispose();\n```\n\n## types\n\n```ts\ntype cleanup = () => void;\ntype equality<t> = (previous: t, next: t) => boolean;\ntype unsubscribe = () => void;\n\ntype signaloptions<t> = { equals?: equality<t>; name?: string };\ntype computedoptions<t> = { equals?: equality<t>; name?: string };\ntype effectoptions = { name?: string; scheduler?: 'microtask' | 'sync' };\ntype watchoptions<t> = { equals?: equality<t>; immediate?: boolean; name?: string; once?: boolean };\ntype resourceoptions = { name?: string };\n\ntype reactiveevent =\n | { readonly kind: 'compute'; readonly name?: string }\n | { readonly kind: 'effect'; readonly name?: string }\n | { readonly kind: 'write'; readonly name?: string; readonly next: unknown; readonly previous: unknown }\n | { readonly kind: 'dispose'; readonly name?: string; readonly node: 'effect' | 'scope' };\n\ntype reactiveobserver = (event: reactiveevent) => void;\ntype reactiveerrorcontext = { readonly kind: 'cleanup' | 'effect' | 'listener' | 'observer'; readonly name?: string };\ntype rippleoptions = { observer?: reactiveobserver; onerror?: (error: unknown, context: reactiveerrorcontext) => void };\n\ntype asyncstate<t> =\n | { readonly previous?: t; readonly status: 'pending' }\n | { readonly status: 'success'; readonly value: t }\n | { readonly error: unknown; readonly previous?: t; readonly status: 'error' };\n\ninterface readable<t> {\n readonly name?: string;\n peek(): t;\n subscribe(listener: () => void): unsubscribe;\n readonly value: t;\n}\n\ninterface signal<t> extends readable<t> { update(updater: (prev: t) => t): void; value: t }\ninterface disposable { dispose(): void; readonly disposed: boolean; readonly disposalsignal: abortsignal; [symbol.dispose](): void }\ntype effecthandle = disposable;\ninterface scope extends disposable { run<t>(fn: () => t): t }\n\ninterface resource<t> extends readable<asyncstate<t>>, disposable { reload(): void }\n\ninterface ripple {\n batch<t>(fn: () => t): t;\n computed<t>(derive: () => t, options?: computedoptions<t>): readable<t>;\n createscope(name?: string): scope;\n dispose(): void;\n readonly disposed: boolean;\n effect(callback: () => cleanup | void, options?: effectoptions): effecthandle;\n resource<source, value>(source: () => source, loader: (source: source, context: { readonly signal: abortsignal }) => promise<value>, options?: resourceoptions): resource<value>;\n signal<t>(initial: t, options?: signaloptions<t>): signal<t>;\n untrack<t>(fn: () => t): t;\n watch<t>(source: readable<t> | (() => t), callback: (value: t, previous: t | undefined) => void, options?: watchoptions<t>): effecthandle;\n}\n```\n\n## errors\n\n| error | trigger | notable properties |\n| | | |\n| `rippleerror` | base ripple error | `rippleerror.is(error)` narrows unknown values. |\n| `ripplecomputedcycleerror` | computed dependency reads itself through a cycle | extends `rippleerror`. |\n| `rippledisposedruntimeerror` | factory or execution api used after `ripple.dispose()` | extends `rippleerror`. |\n| `rippledisposedscopeerror` | `scope.run()` after scope disposal | extends `rippleerror`. |\n| `rippleinfinitelooperror` | effect flush exceeds graph iteration limit | extends `rippleerror`. |\n",
|
|
888
|
+
"usage": " \ntitle: ripple — usage guide\ndescription: build reactive state with one explicit graph boundary.\n \n\n[[toc]]\n\n## basic usage\n\nuse top level functions when one application lifetime graph is sufficient. read a signal inside an effect to make that read reactive.\n\n```ts\nimport { computed, effect, signal } from '@vielzeug/ripple';\n\nconst count = signal(0);\nconst label = computed(() => `count: ${count.value}`);\nconst stop = effect(() => console.log(label.value));\n\ncount.value = 1;\nstop.dispose();\n```\n\n## isolated graphs\n\nuse `createripple()` for tests, ssr requests, embedded applications, or independently disposable features. never mix reactive values from separate graphs.\n\n```ts\nimport { createripple } from '@vielzeug/ripple';\n\nconst ripple = createripple({\n onerror(error, context) {\n console.log(context.kind, error);\n },\n});\n\nconst count = ripple.signal(0);\nconst stop = ripple.effect(() => console.log(count.value));\n\nstop.dispose();\nripple.dispose();\n```\n\n## derived values and batches\n\nuse `computed()` for pure derivation. use `untrack()` when a current read must not become an effect dependency. use `batch()` for related synchronous writes.\n\n```ts\nconst first = ripple.signal('ada');\nconst last = ripple.signal('lovelace');\nconst locale = ripple.signal('en us');\nconst name = ripple.computed(() => `${first.value} ${last.value}`);\n\nripple.effect(() => {\n console.log({ locale: ripple.untrack(() => locale.value), name: name.value });\n});\n\nripple.batch(() => {\n first.value = 'grace';\n last.value = 'hopper';\n});\n```\n\n## ownership with scopes\n\ncreate a scope when a group of effects or derived values shares one lifetime. dispose the scope when its feature ends.\n\n```ts\nconst scope = ripple.createscope('panel');\nconst count = ripple.signal(0);\n\nscope.run(() => {\n ripple.effect(() => console.log(`panel count: ${count.value}`));\n});\n\ncount.value = 1;\nscope.dispose();\n```\n\n## watch selected values\n\nuse `watch()` for one selected output. use `effect()` when every reactive read in the callback should be a dependency.\n\n```ts\nconst stopwatch = ripple.watch(\n () => `${first.value} ${last.value}`,\n (value, previous) => console.log({ previous, value }),\n { immediate: true },\n);\n\nstopwatch.dispose();\n```\n\n## async data\n\n`resource()` captures source dependencies synchronously and passes a cancellation signal to the loader.\n\n```ts\nconst userid = ripple.signal('42');\nconst user = ripple.resource(\n () => userid.value,\n async (id, { signal }) => {\n const response = await fetch(`/users/${id}`, { signal });\n if (!response.ok) throw new error(`request failed: ${response.status}`);\n\n return response.json() as promise<{ id: string; name: string }>;\n },\n);\n\nif (user.value.status === 'success') console.log(user.value.value.name);\nif (user.value.status === 'error') console.error(user.value.error);\nuser.dispose();\n```\n\n## object state\n\n`signal()` with `update()` holds one value and supports immutable replacement patterns. return replacement objects from `update()` when object consumers depend on immutable updates.\n\n```ts\nconst cart = ripple.signal({ items: 0, label: 'empty' });\nconst items = ripple.computed(() => cart.value.items);\n\ncart.update((state) => ({ ...state, items: state.items + 1 }));\ncart.value = { items: 3, label: 'ready' };\n\nconsole.log(items.value);\n```\n\n## testing\n\ncreate an isolated graph per test. disposal prevents effects and resource work from leaking into later tests.\n\n```ts\nimport { expect, test } from 'vitest';\nimport { createripple } from '@vielzeug/ripple';\n\ntest('derives a doubled count', () => {\n const ripple = createripple();\n const count = ripple.signal(2);\n const doubled = ripple.computed(() => count.value * 2);\n\n expect(doubled.value).tobe(4);\n ripple.dispose();\n});\n```\n\n## framework integration\n\nuse signals and effects with any renderer. dispose component owned effects when the component unmounts.\n\n::: code group\n\n```ts [react]\nimport { useeffect, usestate } from 'react';\nimport { createripple } from '@vielzeug/ripple';\n\nconst ripple = createripple();\nconst count = ripple.signal(0);\n\nexport function counter() {\n const [, rerender] = usestate(0);\n\n useeffect(() => {\n const stop = ripple.effect(() => {\n void count.value;\n rerender((revision) => revision + 1);\n });\n\n return () => stop.dispose();\n }, []);\n\n return <button onclick={() => (count.value += 1)}>{count.value}</button>;\n}\n```\n\n```ts [vue 3]\nimport { onunmounted, ref } from 'vue';\nimport { createripple } from '@vielzeug/ripple';\n\nconst ripple = createripple();\nconst count = ripple.signal(0);\nconst revision = ref(0);\nconst stop = ripple.effect(() => {\n void count.value;\n revision.value++;\n});\n\nonunmounted(() => stop.dispose());\n```\n\n```ts [svelte]\n<script lang=\"ts\">\n import { ondestroy } from 'svelte';\n import { createripple } from '@vielzeug/ripple';\n\n const ripple = createripple();\n const count = ripple.signal(0);\n let revision = 0;\n const stop = ripple.effect(() => {\n void count.value;\n revision++;\n });\n\n ondestroy(() => stop.dispose());\n</script>\n\n<button on:click={() => (count.value += 1)}>{count.value}</button>\n```\n\n:::\n\n## working with other vielzeug libraries\n\nore uses ripple for component reactivity. clockwork actors expose framework neutral snapshots; bridge actor subscriptions into a ripple signal. ledger adds undo/redo commands around state changes without replacing graph.\n\n```ts\nimport { createripple } from '@vielzeug/ripple';\nimport { definemachine } from '@vielzeug/clockwork';\n\nconst ripple = createripple();\nconst actor = definemachine<record<string, never>, { type: 'start' }>()({\n initial: 'idle',\n states: { active: {}, idle: { on: { start: { target: 'active' } } } },\n}).createactor();\n\nconst snapshot = ripple.signal(actor.snapshot);\nconst stop = actor.subscribe((next) => (snapshot.value = next));\nconst status = ripple.computed(() => snapshot.value.state);\nconsole.log(status.value);\n\nstop();\nactor.dispose();\nripple.dispose();\n```\n\n## best practices\n\n create one graph per ownership boundary.\n keep computed callbacks pure.\n return cleanup from effects.\n dispose request, test, and feature graphs.\n batch related synchronous writes.\n use `watch()` only for selected source transitions.\n read dependencies in a resource source, not its loader.\n use `onerror` for runtime callback, cleanup, listener, and observer failures; handle resource source and loader failures through `resource.value.status === 'error'`.\n",
|
|
889
|
+
"examples": " \ntitle: ripple — examples\ndescription: practical ripple recipes.\n \n\n## examples\n\n [reactive counter](./examples/reactive counter.md)\n [batch and untrack](./examples/batch and untrack.md)\n [scope ownership](./examples/scope ownership.md)\n [watch selected value](./examples/watch selected value.md)\n [immutable state](./examples/immutable store.md)\n [isolated graph](./examples/isolated runtime.md)\n [async resource](./examples/async resource.md)\n"
|
|
890
890
|
},
|
|
891
891
|
"examples": [
|
|
892
892
|
{
|
|
@@ -911,19 +911,19 @@
|
|
|
911
911
|
},
|
|
912
912
|
{
|
|
913
913
|
"id": "store-basics",
|
|
914
|
-
"text": "immutable
|
|
914
|
+
"text": "immutable state import { createripple } from '@vielzeug/ripple'\n\n// signal.update keeps immutable object updates explicit.\nconst ripple = createripple()\nconst user = ripple.signal({ name: 'ada', visits: 0 })\nconst greeting = ripple.computed(() => user.value.name + ': ' + user.value.visits)\n\nconst stop = ripple.effect(() => console.log(greeting.value))\n\nuser.update((state) => ({ ...state, visits: state.visits + 1 }))\nuser.value = { name: 'grace', visits: 5 }\n\nstop.dispose()\nripple.dispose()"
|
|
915
915
|
},
|
|
916
916
|
{
|
|
917
917
|
"id": "watch-selected-value",
|
|
918
918
|
"text": "watch selected value import { createripple } from '@vielzeug/ripple'\n\n// watch receives selected value transitions, not every graph update.\nconst ripple = createripple()\nconst first = ripple.signal('ada')\nconst last = ripple.signal('lovelace')\nconst fullname = ripple.computed(() => first.value + ' ' + last.value)\n\nconst stop = ripple.watch(fullname, (value, previous) => {\n console.log({ previous, value })\n}, { immediate: true })\n\nfirst.value = 'grace'\nlast.value = 'hopper'\n\nstop.dispose()\nripple.dispose()"
|
|
919
919
|
}
|
|
920
920
|
],
|
|
921
|
-
"exports": "createripple signal computed effect batch createscope untrack isreactive",
|
|
922
|
-
"keywords": "reactive signals computed effects graph scope batch async",
|
|
921
|
+
"exports": "createripple signal computed effect batch createscope untrack watch resource isreactive",
|
|
922
|
+
"keywords": "reactive signals computed effects graph scope batch watch resource async",
|
|
923
923
|
"name": "@vielzeug/ripple",
|
|
924
924
|
"related": "ore clockwork ledger",
|
|
925
925
|
"slug": "ripple",
|
|
926
|
-
"source": "export type {\n cleanup,\n computedoptions,\n disposable,\n effecthandle,\n effectoptions,\n equality,\n reactiveerrorcontext,\n reactiveevent,\n reactiveobserver,\n readable,\n rippleoptions,\n scope,\n signal,\n signaloptions,\n unsubscribe,\n} from './types';\n\
|
|
926
|
+
"source": "export type { asyncstate, resource, resourceoptions } from './_async';\nexport { createripple, type ripple } from './_default';\nexport type { watchoptions } from './_watch';\nexport {\n ripplecomputedcycleerror,\n rippledisposedruntimeerror,\n rippledisposedscopeerror,\n rippleerror,\n rippleinfinitelooperror,\n} from './errors';\nexport { isreactive } from './runtime';\nexport type {\n cleanup,\n computedoptions,\n disposable,\n effecthandle,\n effectoptions,\n equality,\n reactiveerrorcontext,\n reactiveevent,\n reactiveobserver,\n readable,\n rippleoptions,\n scope,\n signal,\n signaloptions,\n unsubscribe,\n} from './types';\n\nimport { defaultripple } from './_default';\n\nexport const signal = defaultripple.signal;\nexport const computed = defaultripple.computed;\nexport const effect = defaultripple.effect;\nexport const batch = defaultripple.batch;\nexport const createscope = defaultripple.createscope;\nexport const untrack = defaultripple.untrack;\nexport const watch = defaultripple.watch;\nexport const resource = defaultripple.resource;\n"
|
|
927
927
|
},
|
|
928
928
|
{
|
|
929
929
|
"category": "logging",
|
|
@@ -965,7 +965,7 @@
|
|
|
965
965
|
"name": "@vielzeug/rune",
|
|
966
966
|
"related": "courier herald familiar",
|
|
967
967
|
"slug": "rune",
|
|
968
|
-
"source": "export type {
|
|
968
|
+
"source": "export type { consoletheme, consolethemeentry, consoletransportoptions, resolvedtheme } from './console';\nexport { consoletransport, default_theme, resolvetheme } from './console';\nexport { runeerror } from './errors';\nexport type { lazybinding } from './lazy';\nexport { lazy } from './lazy';\nexport { createlogger, defaultlogger } from './logger';\nexport { batchtransport, jsontransport, pipe, redacttransport, remotetransport, sampletransport } from './transports';\nexport type {\n batchhandle,\n batchtransportoptions,\n bindings,\n jsontransportoptions,\n logentry,\n logger,\n loglevel,\n logmethod,\n logmiddleware,\n logtype,\n pipeoptions,\n redacttransportoptions,\n remotelogdata,\n remotetransportoptions,\n runeoptions,\n sampletransportoptions,\n transport,\n} from './types';\nexport { islevelenabled, priority } from './types';\n"
|
|
969
969
|
},
|
|
970
970
|
{
|
|
971
971
|
"category": "ui primitives",
|
|
@@ -1033,7 +1033,7 @@
|
|
|
1033
1033
|
"name": "@vielzeug/scout",
|
|
1034
1034
|
"related": "arsenal sourcerer vault ripple",
|
|
1035
1035
|
"slug": "scout",
|
|
1036
|
-
"source": "export { tofilterpredicate, tosearchmatcher } from './adapters';\nexport { scoutconfigurationerror, scoutdisposederror, scouterror } from './errors';\nexport { findmatchranges, highlight, highlightfield } from './highlight';\nexport {
|
|
1036
|
+
"source": "export { tofilterpredicate, tosearchmatcher } from './adapters';\nexport { scoutconfigurationerror, scoutdisposederror, scouterror } from './errors';\nexport { findmatchranges, highlight, highlightfield } from './highlight';\nexport type { reactivesearch } from './reactive';\nexport { createreactivesearch, createsearch } from './reactive';\nexport type { scoutindex } from './scout index';\nexport { createindex } from './scout index';\nexport { segmentwords } from './segment';\nexport type {\n createsearchoptions,\n fielddef,\n fieldmatch,\n highlightpart,\n scoutindexoptions,\n searchconstraints,\n searchresult,\n searchstate,\n} from './types';\n"
|
|
1037
1037
|
},
|
|
1038
1038
|
{
|
|
1039
1039
|
"category": "ui performance",
|
|
@@ -1095,7 +1095,7 @@
|
|
|
1095
1095
|
"name": "@vielzeug/scroll",
|
|
1096
1096
|
"related": "dnd ore refine",
|
|
1097
1097
|
"slug": "scroll",
|
|
1098
|
-
"source": "export
|
|
1098
|
+
"source": "export type {\n domvirtuallistcontroller,\n domvirtuallistoptions,\n domvirtuallistrenderargs,\n recyclefn,\n sticktobottomoptions,\n virtualrenderitem,\n virtualscrolleroptions,\n} from './dom virtual list';\nexport { createdomvirtuallist, createvirtualscroller } from './dom virtual list';\nexport { scrollconfigurationerror, scrollerror, scrollrangeerror } from './errors';\nexport type {\n gridrangechangeevent,\n gridvirtualizer,\n gridvirtualizeroptions,\n gridvirtualizerstate,\n gridvirtualizerupdateoptions,\n scrolltocelloptions,\n} from './grid virtualizer';\nexport { creategridvirtualizer } from './grid virtualizer';\nexport type {\n groupsection,\n groupvirtualheader,\n groupvirtualitem,\n groupvirtualizer,\n groupvirtualizeroptions,\n groupvirtualizerstate,\n groupvirtualizerupdateoptions,\n} from './grouped virtualizer';\nexport { creategroupedvirtualizer } from './grouped virtualizer';\nexport type { reactivegroupvirtualizer, reactivevirtualizer, signal } from './reactive';\nexport { createreactivegroupedvirtualizer, createreactivevirtualizer } from './reactive';\nexport type {\n measurementcache,\n overscan,\n scrolltarget,\n scrolltoindexoptions,\n virtualitem,\n virtualizer,\n virtualizeroptions,\n virtualizerstate,\n virtualizerupdateoptions,\n virtualkey,\n} from './virtualizer';\nexport { createmeasurementcache, createvirtualizer, default_estimate_size, default_overscan } from './virtualizer';\n"
|
|
1099
1099
|
},
|
|
1100
1100
|
{
|
|
1101
1101
|
"category": "data",
|
|
@@ -1137,7 +1137,7 @@
|
|
|
1137
1137
|
"name": "@vielzeug/sourcerer",
|
|
1138
1138
|
"related": "courier ripple scout wayfinder",
|
|
1139
1139
|
"slug": "sourcerer",
|
|
1140
|
-
"source": "export { createcursorsource } from './cursorsource';\nexport { createinfinitesource } from './infinitesource';\nexport { createlocalsource } from './localsource';\nexport { createpagesource } from './pagesource';\nexport type {\n cursorpagination,\n cursorquery,\n cursorquerypatch,\n cursorresult,\n cursorsource,\n cursorsourceconfig,\n infinitepagination,\n infinitequery,\n infinitequerypatch,\n infinitesource,\n infinitesourceconfig,\n localquery,\n localquerypatch,\n localsource,\n localsourceconfig,\n pageloadcontext,\n pagepagination,\n pagequery,\n pagequerypatch,\n pageresult,\n pagesource,\n pagesourceconfig,\n
|
|
1140
|
+
"source": "export { createcursorsource } from './cursorsource';\nexport { createinfinitesource } from './infinitesource';\nexport { createlocalsource } from './localsource';\nexport { createpagesource } from './pagesource';\nexport type {\n anypagination,\n cursorpagination,\n cursorquery,\n cursorquerypatch,\n cursorresult,\n cursorsource,\n cursorsourceconfig,\n infinitepagination,\n infinitequery,\n infinitequerypatch,\n infinitesource,\n infinitesourceconfig,\n localquery,\n localquerypatch,\n localsource,\n localsourceconfig,\n pageloadcontext,\n pagepagination,\n pagequery,\n pagequerypatch,\n pageresult,\n pagesource,\n pagesourceconfig,\n predicate,\n sorter,\n source,\n sourcesnapshot,\n} from './types';\n"
|
|
1141
1141
|
},
|
|
1142
1142
|
{
|
|
1143
1143
|
"category": "validation",
|
|
@@ -1227,7 +1227,7 @@
|
|
|
1227
1227
|
"name": "@vielzeug/spell",
|
|
1228
1228
|
"related": "forge courier vault",
|
|
1229
1229
|
"slug": "spell",
|
|
1230
|
-
"source": "import { fail, prependissuepath } from './errors';\nimport { createparsecontext } from './messages';\n\nexport {\n
|
|
1230
|
+
"source": "import { fail, prependissuepath } from './errors';\nimport { createparsecontext } from './messages';\n\nexport type {\n anyschema,\n checkcontext,\n flaterror,\n flaterrorfirst,\n infer,\n inferinput,\n inferoutput,\n inferschemamode,\n issue,\n jsonschema,\n mergeschemamodes,\n messagefn,\n messages,\n parsecontext,\n parseresult,\n schemadefinition,\n schemadescriptor,\n schemamode,\n schemawalker,\n validatefn,\n validateresult,\n} from './core';\nexport {\n errorcode,\n pipeschema,\n schema,\n spelldefinitionerror,\n spellerror,\n spellvalidationerror,\n schemamode,\n} from './core';\nexport type { deeppartial } from './messages';\nexport { s } from './s';\n\n/** error helpers and immutable parse context creation are secondary operations. */\nexport const diagnostics = {\n createparsecontext,\n fail,\n prependissuepath,\n};\n"
|
|
1231
1231
|
},
|
|
1232
1232
|
{
|
|
1233
1233
|
"category": "time",
|
|
@@ -1249,7 +1249,7 @@
|
|
|
1249
1249
|
"name": "@vielzeug/tempo",
|
|
1250
1250
|
"related": "rune vault",
|
|
1251
1251
|
"slug": "tempo",
|
|
1252
|
-
"source": "// tempo keeps this re export so all consumers share one temporal implementation and version.\nexport { temporal } from '@js temporal/polyfill';\
|
|
1252
|
+
"source": "// tempo keeps this re export so all consumers share one temporal implementation and version.\nexport { temporal } from '@js temporal/polyfill';\nexport { intimezone, toinstant } from './_convert';\nexport { endof, startof } from './boundary';\nexport { classifyexpiry, timediff } from './classify';\nexport { clamp, contains, isafter, isbefore, issame } from './compare';\nexport { difference, isvalid, now, nowinstant, parse, shift } from './core';\nexport {\n tempoerror,\n tempoinvalidinputerror,\n tempoinvalidtzerror,\n tempomissingtzerror,\n tempounsupportedinputerror,\n} from './errors';\nexport {\n format,\n formatduration,\n formatinstant,\n formatparts,\n formatrange,\n formatrangeparts,\n formatrelative,\n formatzoned,\n humanize,\n parseduration,\n} from './format';\nexport { daterange, recurrence } from './range';\nexport type {\n absolutetime,\n boundaryoptions,\n boundaryunit,\n calendarunit,\n clampinput,\n classifyexpiryinput,\n compareoptions,\n containsinput,\n differenceinput,\n disambiguation,\n disambiguationoptions,\n durationformatoptions,\n expirythresholds,\n fixedduration,\n formatoptions,\n formatpattern,\n parseas,\n recurrencerule,\n relativeformatoptions,\n relativetimeinput,\n shiftoptions,\n tempounit,\n timediffresult,\n timediffunit,\n timeinput,\n timezoneoptions,\n walltime,\n weekstartday,\n} from './types';\n"
|
|
1253
1253
|
},
|
|
1254
1254
|
{
|
|
1255
1255
|
"category": "storage",
|
|
@@ -1303,7 +1303,7 @@
|
|
|
1303
1303
|
"name": "@vielzeug/vault",
|
|
1304
1304
|
"related": "courier forge ripple",
|
|
1305
1305
|
"slug": "vault",
|
|
1306
|
-
"source": "export { vaultdisposederror, vaulterror, vaultmigrationerror, vaultquotaerror, vaultscopeerror } from './errors';\nexport
|
|
1306
|
+
"source": "export { vaultdisposederror, vaulterror, vaultmigrationerror, vaultquotaerror, vaultscopeerror } from './errors';\nexport { scheduleexpiredprune } from './prune';\nexport type { querybuilder } from './query';\nexport { isexpired, ttl } from './ttl';\nexport type {\n anyschema,\n baseadapteroptions,\n debuginfo,\n debugstats,\n iterablevaultstore,\n keyof,\n metricsevent,\n observer,\n recordof,\n recordvalidator,\n schemaentry,\n tablebuilder,\n tablevalidators,\n transactionalvaultstore,\n ttlms,\n unsubscribe,\n vaultkey,\n vaultlogger,\n vaultstore,\n} from './types';\nexport { table } from './types';\n"
|
|
1307
1307
|
},
|
|
1308
1308
|
{
|
|
1309
1309
|
"category": "auth",
|
|
@@ -1373,7 +1373,7 @@
|
|
|
1373
1373
|
"name": "@vielzeug/ward",
|
|
1374
1374
|
"related": "wayfinder conduit herald",
|
|
1375
1375
|
"slug": "ward",
|
|
1376
|
-
"source": "export {
|
|
1376
|
+
"source": "export { allow, deny, owns, predicate, rulefor } from './builder';\nexport { anonymous, wildcard } from './constants';\nexport { wardconfigerror, warderror, wardpredicateerror } from './errors';\nexport { createward } from './factory';\nexport { matchespattern, patterncovers } from './resource';\nexport type {\n boundward,\n boundwardallowedactionsinput,\n boundwarddecisioninput,\n boundwardrulesinscopeinput,\n conflictkind,\n principal,\n rulecontext,\n userprincipal,\n ward,\n wardallowedactionsinput,\n wardcheck,\n wardconflict,\n warddecision,\n warddecisioninput,\n warddecisionresult,\n wardloggercontext,\n wardoptions,\n wardpredicate,\n wardrule,\n wardrulesinscopeinput,\n wardtrace,\n wardtracecandidate,\n} from './types';\n"
|
|
1377
1377
|
},
|
|
1378
1378
|
{
|
|
1379
1379
|
"category": "routing",
|
|
@@ -1431,6 +1431,6 @@
|
|
|
1431
1431
|
"name": "@vielzeug/wayfinder",
|
|
1432
1432
|
"related": "ripple ward herald",
|
|
1433
1433
|
"slug": "wayfinder",
|
|
1434
|
-
"source": "export type {\n beforeleaveblocker,\n beforeleaveoptions,\n coercesearchfn,\n datacontext,\n datafn,\n datastream,\n historydriver,\n isactiveoptions,\n matchstatus,\n maybepromise,\n middleware,\n namednavigationtarget,\n navigateoptions,\n navigationdestination,\n navigationstatus,\n navigationtarget,\n pathparams,\n queryparams,\n rawnavigationtarget,\n resolvedqueryparams,\n resolvedqueryvalue,\n routechildren,\n routecontext,\n routedefinition,\n routelocation,\n routematch,\n routematchbranch,\n routemiddleware,\n routename,\n routeparams,\n routepathbyname,\n
|
|
1434
|
+
"source": "export {\n wayfinderapierror,\n wayfinderdisposederror,\n wayfindererror,\n wayfinderredirectlooperror,\n wayfinderrouteerror,\n} from './errors';\nexport { createbrowserhistory, creatememoryhistory } from './history';\nexport { redirectto } from './middleware';\nexport type { router } from './router';\nexport { createrouter } from './router';\nexport type {\n beforeleaveblocker,\n beforeleaveoptions,\n coercesearchfn,\n datacontext,\n datafn,\n datastream,\n historydriver,\n isactiveoptions,\n matchstatus,\n maybepromise,\n middleware,\n namednavigationtarget,\n navigateoptions,\n navigationdestination,\n navigationstatus,\n navigationtarget,\n pathparams,\n queryparams,\n rawnavigationtarget,\n resolvedqueryparams,\n resolvedqueryvalue,\n routechildren,\n routecontext,\n routedefinition,\n routelocation,\n routematch,\n routematchbranch,\n routemiddleware,\n routename,\n routeparams,\n routepathbyname,\n routererrorcontext,\n routererrorsource,\n routeroptions,\n routestate,\n routetable,\n scrolldecision,\n scrollposition,\n unsubscribe,\n untypednamednavigationtarget,\n} from './types';\n"
|
|
1435
1435
|
}
|
|
1436
1436
|
]
|
package/dist/catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAuB,YAAY,EAAE,MAAM,eAAe,CAAC;AAKlE,MAAM,OAAO,YAAa,SAAQ,UAAU;IACjC,IAAI,CAAmB;IAEhC,YAAY,IAAsB,EAAE,OAAe;QACjD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAwBD,SAAS,OAAO,CAAC,QAAgB,EAAE,KAAwB;IACzD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC;AAOD,SAAS,YAAY,CAAC,MAAoB,EAAE,KAAa;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEpF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,mCAAmC,CAAC,CAAC;IAEnG,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC1D,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IACE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC;QACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC;QAElC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAE1B,KAAK,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAU,EAAE,CAAC;QAC1E,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAA6B,EAAE,CAAC;QACtF,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,IAAI,GACR,cAAc,KAAK,eAAe,IAAI,cAAc,KAAK,eAAe;QACtE,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,eAAe,CAAC;YACxF,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;gBACtG,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC;IAEZ,OAAO;QACL,GAAG,EAAE;YACH,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;YACzD,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE;YAC9B,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;YAChD,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB;QACD,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,eAAe;IACT,MAAM,CAA2B;IACjC,eAAe,CAA8B;IAC7C,YAAY,GAAG,IAAI,GAAG,EAA0B,CAAC;IACjD,QAAQ,CAAiB;IAE1C,YAAY,QAAwB;QAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAC5B,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAC9C,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CACnE,CACF,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,CAAC,GAAG;YACN,MAAM,IAAI,YAAY,CACpB,WAAW,EACX,YAAY,IAAI,iCAAiC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtF,CAAC;QAEJ,OAAO,GAAG,CAAC;IACb,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;QACrE,IAAI,OAAuB,CAAC;QAE5B,IAAI,CAAC;YACH,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,UAAU;gBAAE,MAAM,KAAK,CAAC;YAE7C,MAAM,IAAI,UAAU,CAClB,uCAAuC,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACxG,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAErC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,YAAY;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,IAAa;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjD,IAAI,CAAC,OAAO;YACV,MAAM,IAAI,YAAY,CACpB,WAAW,EACX,OAAO,IAAI,eAAe,IAAI,iBAAiB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAC/G,CAAC;QAEJ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;QAE/C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,YAAY,IAAI,0BAA0B,CAAC,CAAC;QAE/F,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,SAAiB;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAErF,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,YAAY,CAAC,WAAW,EAAE,eAAe,SAAS,UAAU,IAAI,IAAI,CAAC,CAAC;QAE9F,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,IAAY,EAAE,MAAc;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE/D,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,YAAY,CAAC,WAAW,EAAE,uBAAuB,MAAM,UAAU,IAAI,IAAI,CAAC,CAAC;QAErG,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM;aACxB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aAC5C,MAAM,CAAC,CAAC,MAAM,EAA6B,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC;aAC9D,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC5F,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAC7C,MAAM,IAAI,YAAY,CAAC,aAAa,EAAE,4DAA4D,CAAC,CAAC;QAEtG,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACxC,CAAC;IAED,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,YAAY,CAAC,WAAW,EAAE,cAAc,OAAO,cAAc,CAAC,CAAC;QAEzF,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
|
package/dist/cli.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { StdioServerTransport } from '@modelcontextprotocol/server/stdio';
|
|
3
2
|
import { readFileSync } from 'node:fs';
|
|
4
3
|
import { dirname, resolve } from 'node:path';
|
|
5
4
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
6
5
|
import { parseArgs } from 'node:util';
|
|
6
|
+
import { StdioServerTransport } from '@modelcontextprotocol/server/stdio';
|
|
7
7
|
import { log } from './_log.js';
|
|
8
8
|
import { SnapshotCatalog } from './catalog.js';
|
|
9
9
|
import { startHttpHost } from './http.js';
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/http.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { createMcpHandler } from '@modelcontextprotocol/server';
|
|
2
1
|
import { createServer } from 'node:http';
|
|
3
2
|
import { Readable } from 'node:stream';
|
|
4
3
|
import { pipeline } from 'node:stream/promises';
|
|
4
|
+
import { createMcpHandler } from '@modelcontextprotocol/server';
|
|
5
5
|
import { log } from './_log.js';
|
|
6
6
|
import { createMcpServer } from './server.js';
|
|
7
7
|
function close(server) {
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,YAAY,EAAkB,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAuC,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAQL,SAAS,EAKT,uBAAuB,GAGxB,MAAM,YAAY,CAAC"}
|