{"_id":"@aardworx/wombat.adaptive","_rev":"7-4e0632c092aa56f08d5f7c599d29f327","name":"@aardworx/wombat.adaptive","dist-tags":{"latest":"0.3.1"},"versions":{"0.2.1":{"name":"@aardworx/wombat.adaptive","version":"0.2.1","keywords":["wombat","aardvark","adaptive","incremental","reactive","aval","aset","amap","alist","fsharp"],"author":{"name":"krauthaufen"},"license":"MIT","_id":"@aardworx/wombat.adaptive@0.2.1","maintainers":[{"name":"krauthaufen","email":"krauthaufen@awx.at"}],"homepage":"https://github.com/krauthaufen/wombat.adaptive","bugs":{"url":"https://github.com/krauthaufen/wombat.adaptive/issues"},"dist":{"shasum":"d9d76173a90556241eae46835ef16b4203e36667","tarball":"https://registry.npmjs.org/@aardworx/wombat.adaptive/-/wombat.adaptive-0.2.1.tgz","fileCount":273,"integrity":"sha512-P5o9AJR96ksBWr6KmeDgLKd6PjWhzAk1UYgPKwxZrLHuJy8PlyDXbaN53GvQsLXkEzn0AABUyFG1JdpDJkyXsg==","signatures":[{"sig":"MEQCIDBxrR0PFAPs2XcJ+l7lRhZ0qh43nGWwS625nIFRi5aeAiAl2W9TAozcQatVHuOYqQdCl+VkfYRdshbH0G3GAbTb6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2234067},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./amap":{"types":"./dist/amap.d.ts","import":"./dist/amap.js"},"./aset":{"types":"./dist/aset.d.ts","import":"./dist/aset.js"},"./aval":{"types":"./dist/aval.d.ts","import":"./dist/aval.js"},"./alist":{"types":"./dist/alist.d.ts","import":"./dist/alist.js"},"./reference":{"types":"./dist/reference.d.ts","import":"./dist/reference.js"},"./traceable":{"types":"./dist/traceable.d.ts","import":"./dist/traceable.js"},"./extensions":{"types":"./dist/extensions.d.ts","import":"./dist/extensions.js"},"./package.json":"./package.json","./datastructures":{"types":"./dist/datastructures.d.ts","import":"./dist/datastructures.js"}},"gitHead":"2266307fb8b139e968fc3384e0760b5a8e775f1b","scripts":{"test":"vitest run","build":"npm run clean && tsc -p tsconfig.build.json","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"krauthaufen","email":"krauthaufen@awx.at"},"repository":{"url":"git+https://github.com/krauthaufen/wombat.adaptive.git","type":"git"},"_npmVersion":"9.2.0","description":"Incremental adaptive computations (aval/aset/amap/alist) for the Wombat TypeScript stack. Port of F# FSharp.Data.Adaptive.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.4.0","fast-check":"^3.15.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/wombat.adaptive_0.2.1_1777583601116_0.7537730698956782","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@aardworx/wombat.adaptive","version":"0.2.2","keywords":["wombat","aardvark","adaptive","incremental","reactive","aval","aset","amap","alist","fsharp"],"author":{"name":"krauthaufen"},"license":"MIT","_id":"@aardworx/wombat.adaptive@0.2.2","maintainers":[{"name":"krauthaufen","email":"krauthaufen@awx.at"}],"homepage":"https://github.com/krauthaufen/wombat.adaptive","bugs":{"url":"https://github.com/krauthaufen/wombat.adaptive/issues"},"dist":{"shasum":"4a05c278908248d483c3631d489c0d4fc626950d","tarball":"https://registry.npmjs.org/@aardworx/wombat.adaptive/-/wombat.adaptive-0.2.2.tgz","fileCount":273,"integrity":"sha512-nwTam2nzC9v+TsXT5YYWyp74og5pz+OqVMpyHnbYsGM5X14J6ppxo2Aee3+3wVfPw5kSqi06BFWYpJ7F+shatQ==","signatures":[{"sig":"MEUCIC+6oGII/p6JynFlo+KRNO/a1IWjPPdcHpuduBw+y0+ZAiEAzByuDTR7tENLozGGbdCwSLgF5BOD2r3/DH+ci3RnFcs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2235570},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./amap":{"types":"./dist/amap.d.ts","import":"./dist/amap.js"},"./aset":{"types":"./dist/aset.d.ts","import":"./dist/aset.js"},"./aval":{"types":"./dist/aval.d.ts","import":"./dist/aval.js"},"./alist":{"types":"./dist/alist.d.ts","import":"./dist/alist.js"},"./reference":{"types":"./dist/reference.d.ts","import":"./dist/reference.js"},"./traceable":{"types":"./dist/traceable.d.ts","import":"./dist/traceable.js"},"./extensions":{"types":"./dist/extensions.d.ts","import":"./dist/extensions.js"},"./package.json":"./package.json","./datastructures":{"types":"./dist/datastructures.d.ts","import":"./dist/datastructures.js"}},"gitHead":"acadff372d90a3198191caf3117e45e2e45bdbda","scripts":{"test":"vitest run","build":"npm run clean && tsc -p tsconfig.build.json","clean":"rm -rf dist","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build"},"_npmUser":{"name":"krauthaufen","email":"krauthaufen@awx.at"},"repository":{"url":"git+https://github.com/krauthaufen/wombat.adaptive.git","type":"git"},"_npmVersion":"9.2.0","description":"Incremental adaptive computations (aval/aset/amap/alist) for the Wombat TypeScript stack. Port of F# FSharp.Data.Adaptive.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.4.0","fast-check":"^3.15.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/wombat.adaptive_0.2.2_1778125653855_0.5667627517249803","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@aardworx/wombat.adaptive","version":"0.2.3","keywords":["wombat","aardvark","adaptive","incremental","reactive","aval","aset","amap","alist","fsharp"],"author":{"name":"krauthaufen"},"license":"MIT","_id":"@aardworx/wombat.adaptive@0.2.3","maintainers":[{"name":"krauthaufen","email":"krauthaufen@awx.at"}],"homepage":"https://github.com/krauthaufen/wombat.adaptive","bugs":{"url":"https://github.com/krauthaufen/wombat.adaptive/issues"},"dist":{"shasum":"f690fbb44e2214e79fc1a8ff423f53f97dbb9bd7","tarball":"https://registry.npmjs.org/@aardworx/wombat.adaptive/-/wombat.adaptive-0.2.3.tgz","fileCount":298,"integrity":"sha512-1PNUdimruUjxm0DlYj+wBtZbOS4iM7wygIsZ/TULDQey4KjS67u4An5KJVvuzYwM3zsVrpMhg+akGNwq7sOSXg==","signatures":[{"sig":"MEUCIBokF/Q/KizqmXcpDO1Jef9LVHjeGe/oTZ85GLNZA6eVAiEA3/pjizl9K/5Z9kdPIGE1QVEc4RhVSOCqRHnSZ4XzELI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2395363},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./amap":{"types":"./dist/amap.d.ts","import":"./dist/amap.js"},"./aset":{"types":"./dist/aset.d.ts","import":"./dist/aset.js"},"./aval":{"types":"./dist/aval.d.ts","import":"./dist/aval.js"},"./alist":{"types":"./dist/alist.d.ts","import":"./dist/alist.js"},"./plugin":{"types":"./dist/plugin/index.d.ts","import":"./dist/plugin/index.js"},"./internal":{"types":"./dist/internal/memo.d.ts","import":"./dist/internal/memo.js"},"./reference":{"types":"./dist/reference.d.ts","import":"./dist/reference.js"},"./traceable":{"types":"./dist/traceable.d.ts","import":"./dist/traceable.js"},"./extensions":{"types":"./dist/extensions.d.ts","import":"./dist/extensions.js"},"./package.json":"./package.json","./datastructures":{"types":"./dist/datastructures.d.ts","import":"./dist/datastructures.js"},"./plugin/runtime":{"types":"./dist/plugin/runtime.d.ts","import":"./dist/plugin/runtime.js"}},"gitHead":"2e929f158825f12b15dc96d0ec5ef7e566c4d4ec","scripts":{"test":"vitest run","build":"npm run clean && tsc -p tsconfig.build.json","clean":"rm -rf dist","prepack":"npm run build","test:all":"vitest run && vitest run --config vitest.transformed.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build","test:transformed":"vitest run --config vitest.transformed.config.ts"},"_npmUser":{"name":"krauthaufen","email":"krauthaufen@awx.at"},"repository":{"url":"git+https://github.com/krauthaufen/wombat.adaptive.git","type":"git"},"_npmVersion":"9.2.0","description":"Incremental adaptive computations (aval/aset/amap/alist) for the Wombat TypeScript stack. Port of F# FSharp.Data.Adaptive.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.4.0","fast-check":"^3.15.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/wombat.adaptive_0.2.3_1778483239779_0.3983864991439825","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@aardworx/wombat.adaptive","version":"0.2.4","keywords":["wombat","aardvark","adaptive","incremental","reactive","aval","aset","amap","alist","fsharp"],"author":{"name":"krauthaufen"},"license":"MIT","_id":"@aardworx/wombat.adaptive@0.2.4","maintainers":[{"name":"krauthaufen","email":"krauthaufen@awx.at"}],"homepage":"https://github.com/krauthaufen/wombat.adaptive","bugs":{"url":"https://github.com/krauthaufen/wombat.adaptive/issues"},"dist":{"shasum":"bff9ca6a2633dde814e39c8846df9cc65923166a","tarball":"https://registry.npmjs.org/@aardworx/wombat.adaptive/-/wombat.adaptive-0.2.4.tgz","fileCount":298,"integrity":"sha512-Bx9JLAJ7NuTxkoJPRmO++1jtI13v8FaaIWlel0ac8wxIEcGcv8I1rnjqNSmavySh+Gmvg/b8YcSWESNlSNUJQw==","signatures":[{"sig":"MEQCICEK86jM2EDJpL0S7Dq6e3NkIvyoetb/Hhh4tPM3N9z6AiAQZzySBGmmq4GBN3Hvid+cvHzXS5uAmm7Dz6P2kaYvaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2414139},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./amap":{"types":"./dist/amap.d.ts","import":"./dist/amap.js"},"./aset":{"types":"./dist/aset.d.ts","import":"./dist/aset.js"},"./aval":{"types":"./dist/aval.d.ts","import":"./dist/aval.js"},"./alist":{"types":"./dist/alist.d.ts","import":"./dist/alist.js"},"./plugin":{"types":"./dist/plugin/index.d.ts","import":"./dist/plugin/index.js"},"./internal":{"types":"./dist/internal/memo.d.ts","import":"./dist/internal/memo.js"},"./reference":{"types":"./dist/reference.d.ts","import":"./dist/reference.js"},"./traceable":{"types":"./dist/traceable.d.ts","import":"./dist/traceable.js"},"./extensions":{"types":"./dist/extensions.d.ts","import":"./dist/extensions.js"},"./package.json":"./package.json","./datastructures":{"types":"./dist/datastructures.d.ts","import":"./dist/datastructures.js"},"./plugin/runtime":{"types":"./dist/plugin/runtime.d.ts","import":"./dist/plugin/runtime.js"}},"gitHead":"a992a86ed490c892cd1f9e8096463f6e455e7960","scripts":{"test":"vitest run","build":"npm run clean && tsc -p tsconfig.build.json","clean":"rm -rf dist","prepack":"npm run build","test:all":"vitest run && vitest run --config vitest.transformed.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build","test:transformed":"vitest run --config vitest.transformed.config.ts"},"_npmUser":{"name":"krauthaufen","email":"krauthaufen@awx.at"},"repository":{"url":"git+https://github.com/krauthaufen/wombat.adaptive.git","type":"git"},"_npmVersion":"9.2.0","description":"Incremental adaptive computations (aval/aset/amap/alist) for the Wombat TypeScript stack. Port of F# FSharp.Data.Adaptive.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.4.0","fast-check":"^3.15.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/wombat.adaptive_0.2.4_1778570900786_0.8695818179976391","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@aardworx/wombat.adaptive","version":"0.2.5","keywords":["wombat","aardvark","adaptive","incremental","reactive","aval","aset","amap","alist","fsharp"],"author":{"name":"krauthaufen"},"license":"MIT","_id":"@aardworx/wombat.adaptive@0.2.5","maintainers":[{"name":"krauthaufen","email":"krauthaufen@awx.at"}],"homepage":"https://github.com/krauthaufen/wombat.adaptive","bugs":{"url":"https://github.com/krauthaufen/wombat.adaptive/issues"},"dist":{"shasum":"3d29a2e27070658dab227414292561569bd85488","tarball":"https://registry.npmjs.org/@aardworx/wombat.adaptive/-/wombat.adaptive-0.2.5.tgz","fileCount":298,"integrity":"sha512-Xl2o88YtY8hmfGXPM1ZKHp3pLqv6uaYrpAsmdike94ZEdZwEmZOPZnqVlIMpVSbdSvnbjGn+3BdfnbHaYJVobQ==","signatures":[{"sig":"MEQCIEoNRblZ34R4Z0wX2Q1kCXOoF6emzUaVBaypV0G+hGs4AiAYHV6n+kO/0CGnbUtUwP4LybvEYaoi+hOyrWKSpSj2Bw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2417297},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./amap":{"types":"./dist/amap.d.ts","import":"./dist/amap.js"},"./aset":{"types":"./dist/aset.d.ts","import":"./dist/aset.js"},"./aval":{"types":"./dist/aval.d.ts","import":"./dist/aval.js"},"./alist":{"types":"./dist/alist.d.ts","import":"./dist/alist.js"},"./plugin":{"types":"./dist/plugin/index.d.ts","import":"./dist/plugin/index.js"},"./internal":{"types":"./dist/internal/memo.d.ts","import":"./dist/internal/memo.js"},"./reference":{"types":"./dist/reference.d.ts","import":"./dist/reference.js"},"./traceable":{"types":"./dist/traceable.d.ts","import":"./dist/traceable.js"},"./extensions":{"types":"./dist/extensions.d.ts","import":"./dist/extensions.js"},"./package.json":"./package.json","./datastructures":{"types":"./dist/datastructures.d.ts","import":"./dist/datastructures.js"},"./plugin/runtime":{"types":"./dist/plugin/runtime.d.ts","import":"./dist/plugin/runtime.js"}},"gitHead":"2d70e71f2801aa9baa145c3e3860187d4973f901","scripts":{"test":"vitest run","build":"npm run clean && tsc -p tsconfig.build.json","clean":"rm -rf dist","prepack":"npm run build","test:all":"vitest run && vitest run --config vitest.transformed.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build","test:transformed":"vitest run --config vitest.transformed.config.ts"},"_npmUser":{"name":"krauthaufen","email":"krauthaufen@awx.at"},"repository":{"url":"git+https://github.com/krauthaufen/wombat.adaptive.git","type":"git"},"_npmVersion":"9.2.0","description":"Incremental adaptive computations (aval/aset/amap/alist) for the Wombat TypeScript stack. Port of F# FSharp.Data.Adaptive.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.4.0","fast-check":"^3.15.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/wombat.adaptive_0.2.5_1778578906531_0.09545740419826276","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aardworx/wombat.adaptive","version":"0.3.0","keywords":["wombat","aardvark","adaptive","incremental","reactive","aval","aset","amap","alist","fsharp"],"author":{"name":"krauthaufen"},"license":"MIT","_id":"@aardworx/wombat.adaptive@0.3.0","maintainers":[{"name":"krauthaufen","email":"krauthaufen@awx.at"}],"homepage":"https://github.com/krauthaufen/wombat.adaptive","bugs":{"url":"https://github.com/krauthaufen/wombat.adaptive/issues"},"dist":{"shasum":"7f9a2db610c1191f242b43bb3e12bf89439f52f2","tarball":"https://registry.npmjs.org/@aardworx/wombat.adaptive/-/wombat.adaptive-0.3.0.tgz","fileCount":298,"integrity":"sha512-Vt8LVWUkHp4KMuI73GjAyfi/SnNtOMiBhwU8ePvE/7iWzdif3NRca+GkjA6aLLfYvanKeEV+TQSTfWI3/V6Lvw==","signatures":[{"sig":"MEUCIBJET7Mx49dR270u5cTQuj/W2GayBw3KzPIlh8rB690KAiEAsmfopvEyH/i1+bmJSQRXP4ZvTlva/yX/AKgdy/Mn1Y4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2448085},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./amap":{"types":"./dist/amap.d.ts","import":"./dist/amap.js"},"./aset":{"types":"./dist/aset.d.ts","import":"./dist/aset.js"},"./aval":{"types":"./dist/aval.d.ts","import":"./dist/aval.js"},"./alist":{"types":"./dist/alist.d.ts","import":"./dist/alist.js"},"./plugin":{"types":"./dist/plugin/index.d.ts","import":"./dist/plugin/index.js"},"./internal":{"types":"./dist/internal/memo.d.ts","import":"./dist/internal/memo.js"},"./reference":{"types":"./dist/reference.d.ts","import":"./dist/reference.js"},"./traceable":{"types":"./dist/traceable.d.ts","import":"./dist/traceable.js"},"./extensions":{"types":"./dist/extensions.d.ts","import":"./dist/extensions.js"},"./package.json":"./package.json","./datastructures":{"types":"./dist/datastructures.d.ts","import":"./dist/datastructures.js"},"./plugin/runtime":{"types":"./dist/plugin/runtime.d.ts","import":"./dist/plugin/runtime.js"}},"gitHead":"093958e6785a84360f0c520eabd37fe9e0451418","scripts":{"test":"vitest run","build":"npm run clean && tsc -p tsconfig.build.json","clean":"rimraf dist","prepack":"npm run build","test:all":"vitest run && vitest run --config vitest.transformed.config.ts","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm test && npm run build","test:transformed":"vitest run --config vitest.transformed.config.ts"},"_npmUser":{"name":"krauthaufen","email":"krauthaufen@awx.at"},"repository":{"url":"git+https://github.com/krauthaufen/wombat.adaptive.git","type":"git"},"_npmVersion":"9.2.0","description":"Incremental adaptive computations (aval/aset/amap/alist) for the Wombat TypeScript stack. Port of F# FSharp.Data.Adaptive.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.5","vitest":"^1.4.0","fast-check":"^3.15.0","typescript":"^5.4.0","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/wombat.adaptive_0.3.0_1784305304931_0.44656169291227443","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@aardworx/wombat.adaptive","version":"0.3.1","description":"Incremental adaptive computations (aval/aset/amap/alist) for the Wombat TypeScript stack. Port of F# FSharp.Data.Adaptive.","license":"MIT","author":{"name":"krauthaufen"},"repository":{"type":"git","url":"git+https://github.com/krauthaufen/wombat.adaptive.git"},"homepage":"https://github.com/krauthaufen/wombat.adaptive","publishConfig":{"access":"public"},"keywords":["wombat","aardvark","adaptive","incremental","reactive","aval","aset","amap","alist","fsharp"],"type":"module","sideEffects":false,"engines":{"node":">=18"},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./aval":{"types":"./dist/aval.d.ts","import":"./dist/aval.js"},"./aset":{"types":"./dist/aset.d.ts","import":"./dist/aset.js"},"./amap":{"types":"./dist/amap.d.ts","import":"./dist/amap.js"},"./alist":{"types":"./dist/alist.d.ts","import":"./dist/alist.js"},"./datastructures":{"types":"./dist/datastructures.d.ts","import":"./dist/datastructures.js"},"./extensions":{"types":"./dist/extensions.d.ts","import":"./dist/extensions.js"},"./traceable":{"types":"./dist/traceable.d.ts","import":"./dist/traceable.js"},"./reference":{"types":"./dist/reference.d.ts","import":"./dist/reference.js"},"./internal":{"types":"./dist/internal/memo.d.ts","import":"./dist/internal/memo.js"},"./plugin":{"types":"./dist/plugin/index.d.ts","import":"./dist/plugin/index.js"},"./plugin/runtime":{"types":"./dist/plugin/runtime.d.ts","import":"./dist/plugin/runtime.js"},"./package.json":"./package.json"},"scripts":{"clean":"rimraf dist","build":"npm run clean && tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json --noEmit","test":"vitest run","test:watch":"vitest","test:transformed":"vitest run --config vitest.transformed.config.ts","test:all":"vitest run && vitest run --config vitest.transformed.config.ts","prepack":"npm run build","prepublishOnly":"npm run typecheck && npm test && npm run build"},"devDependencies":{"@types/node":"^20.11.0","fast-check":"^3.15.0","rimraf":"^5.0.5","typescript":"^5.4.0","vitest":"^1.4.0"},"gitHead":"0a12fead99f74680bc29d331660c0c4c93d94d40","bugs":{"url":"https://github.com/krauthaufen/wombat.adaptive/issues"},"_id":"@aardworx/wombat.adaptive@0.3.1","_nodeVersion":"20.19.2","_npmVersion":"9.2.0","dist":{"integrity":"sha512-5ioR8DqOm0ByM6CQbSKr1Km62rs/9xDrV2DKUGjI58Tff3zDlQbtCn2Jnl+a/BbdWe/lx/bvuxB+mhfzvGBDhg==","shasum":"2b2330aca9c35e8dd5b3e08051425f5084b999af","tarball":"https://registry.npmjs.org/@aardworx/wombat.adaptive/-/wombat.adaptive-0.3.1.tgz","fileCount":303,"unpackedSize":2472894,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCxIUmogw4h8TtV4+tIoXVqYxob0G/GIcMv3AC9Y3nHfwIgKYy3XWe6LxtzQvc89P3r2AHubHz1m6cvoGpI5PJkJ50="}]},"_npmUser":{"name":"krauthaufen","email":"krauthaufen@awx.at"},"directories":{},"maintainers":[{"name":"krauthaufen","email":"krauthaufen@awx.at"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wombat.adaptive_0.3.1_1784326717326_0.38357772859924855"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-30T21:13:20.991Z","modified":"2026-07-17T22:18:37.663Z","0.2.1":"2026-04-30T21:13:21.344Z","0.2.2":"2026-05-07T03:47:34.025Z","0.2.3":"2026-05-11T07:07:20.010Z","0.2.4":"2026-05-12T07:28:20.976Z","0.2.5":"2026-05-12T09:41:46.969Z","0.3.0":"2026-07-17T16:21:45.158Z","0.3.1":"2026-07-17T22:18:37.510Z"},"bugs":{"url":"https://github.com/krauthaufen/wombat.adaptive/issues"},"author":{"name":"krauthaufen"},"license":"MIT","homepage":"https://github.com/krauthaufen/wombat.adaptive","keywords":["wombat","aardvark","adaptive","incremental","reactive","aval","aset","amap","alist","fsharp"],"repository":{"type":"git","url":"git+https://github.com/krauthaufen/wombat.adaptive.git"},"description":"Incremental adaptive computations (aval/aset/amap/alist) for the Wombat TypeScript stack. Port of F# FSharp.Data.Adaptive.","maintainers":[{"name":"krauthaufen","email":"krauthaufen@awx.at"}],"readme":"# @aardworx/wombat.adaptive\n\nTypeScript port of [FSharp.Data.Adaptive](https://github.com/aardvark-platform/aardvark.docs/wiki/FSharp.Data.Adaptive). Incremental adaptive computations: `aval` (changeable values), `aset` (changeable sets), `amap` (changeable maps), `alist` (changeable lists), with all the combinators (`map` / `bind` / `filter` / `collect` / `union` / `sort` / `pairwise` / `reduce` / …).\n\nThe implementation is a faithful port of the F# original — same algorithms, same incremental update semantics, validated against the F# reference impl by 500-run property tests for each adaptive type.\n\n## Install\n\n```bash\nnpm install @aardworx/wombat.adaptive\n```\n\nESM only. Node ≥ 18, modern bundlers (Vite, esbuild, webpack 5+).\n\n## Quick start\n\n```ts\nimport { cval, AVal, cset, ASet, transact } from \"@aardworx/wombat.adaptive\";\n\nconst x = cval(1);\nconst y = cval(2);\nconst sum = AVal.zip(x, y).map((a, b) => a + b);\n\nconsole.log(AVal.force(sum)); // 3\n\ntransact(() => {\n  x.value = 10;\n  y.value = 20;\n});\nconsole.log(AVal.force(sum)); // 30\n\nconst s = cset<number>([1, 2, 3]);\nconst doubled = ASet.map((n) => n * 2, s);\nconsole.log([...AVal.force(doubled.content)].sort()); // [2, 4, 6]\n\ntransact(() => s.add(4));\nconsole.log([...AVal.force(doubled.content)].sort()); // [2, 4, 6, 8]\n```\n\n## Module map\n\nThe package ships fine-grained sub-paths that all tree-shake well. Pick whichever feels cleaner:\n\n| Sub-path | What it exports |\n| --- | --- |\n| `@aardworx/wombat.adaptive` | Curated public surface — most consumers import from here |\n| `@aardworx/wombat.adaptive/aval` | `AVal`, `cval`, `aval`, `Reductions` |\n| `@aardworx/wombat.adaptive/aset` | `ASet`, `cset`, `aset` |\n| `@aardworx/wombat.adaptive/amap` | `AMap`, `cmap`, `amap`, `KeyValuePair` |\n| `@aardworx/wombat.adaptive/alist` | `AList`, `clist`, `alist` |\n| `@aardworx/wombat.adaptive/datastructures` | `HashSet`, `HashMap`, `IndexList`, `Index`, `MapExt`, deltas |\n| `@aardworx/wombat.adaptive/extensions` | Cross-collection bridges + `addCallback` for collections |\n| `@aardworx/wombat.adaptive/traceable` | Low-level `History` / readers (extension authors) |\n| `@aardworx/wombat.adaptive/reference` | Slow-but-correct executable spec for property testing |\n\n```ts\n// fine-grained\nimport { ASet, cset } from \"@aardworx/wombat.adaptive/aset\";\nimport { HashSet } from \"@aardworx/wombat.adaptive/datastructures\";\nimport { AListBridges } from \"@aardworx/wombat.adaptive/extensions\";\n```\n\n## Listening to changes\n\n`addCallback` fires once on subscription with the empty-to-current\ndelta, then on each transaction when the underlying reader has new\nchanges. Mirrors F#'s `EvaluationCallbackExtensions`.\n\n```ts\nimport { cset, asetCallback, transact } from \"@aardworx/wombat.adaptive\";\n\nconst s = cset<number>([1, 2]);\nconst sub = asetCallback(s, (state, delta) => {\n  console.log(\"size before:\", state.count, \"delta size:\", delta.count);\n});\n\ntransact(() => s.add(3));    // logs \"size before: 2 delta size: 1\"\ntransact(() => s.remove(1)); // logs \"size before: 3 delta size: 1\"\nsub.dispose();\n```\n\n## What's incremental\n\nEvery combinator in the public surface is genuinely incremental — applying a delta of size *k* against a state of size *N* costs O(*k*), not O(*N*), unless *k* ≥ *N* (where bulk recompute wins). This includes:\n\n- `reduce` / `reduceBy` / `reduceByA` and everything derived from them: `sum`, `sumBy`, `sumByA`, `average`, `averageBy`, `fold`, `foldGroup`, `foldHalfGroup`, `forall`, `exists`, `forallA`, `existsA`, `countBy`, `countByA`, `tryMin`, `tryMax`\n- `contains` (refcount-tracked single-value membership)\n- `map` / `choose` / `filter` / `collect` / `union` / `intersect` / `difference` / `xor` / `bind` and their `*A` variants\n- `AList.range` / `AList.subA` / `AList.takeA` / `AList.skipA` (four-region delta merge for shifting integer ranges; overlapping-window delta for slices)\n\n## Equality\n\n`@aardworx/wombat.adaptive` honours the same `equals(other)` / `getHashCode()` convention as F#: any object that defines both methods is hashed and compared structurally throughout the library (HashSet keys, HashMap keys, Cache keys, Index identity, etc.). Primitives use `Object.is` + a type-aware hash.\n\n```ts\nimport { HashSet } from \"@aardworx/wombat.adaptive/datastructures\";\n\nclass Pair {\n  constructor(readonly a: number, readonly b: number) {}\n  equals(o: unknown): boolean {\n    return o instanceof Pair && o.a === this.a && o.b === this.b;\n  }\n  getHashCode(): number {\n    return ((this.a | 0) * 31 + (this.b | 0)) | 0;\n  }\n}\n\nconst s = HashSet.empty<Pair>().add(new Pair(1, 2)).add(new Pair(1, 2));\ns.count; // 1\n```\n\n## Status\n\n- ✅ Full port of `aval` / `aset` / `amap` / `alist` and combinators\n- ✅ Cross-collection bridges (ASet ↔ AList ↔ AMap)\n- ✅ Callbacks with state+delta payloads\n- ✅ Reference impl + 500-run property tests for AVal / ASet / AMap / AList\n- ✅ `ASet.mapUse` (refcount-zero dispose callback)\n- ⏭️ `mapUse` for AList / AMap + `mapUsei` (F# uses `IDisposable`; would map to `Symbol.dispose`)\n- ⏭️ `Adaptify` codegen (separate library)\n- ⏭️ Tree expansion: `ASet.ofListTree` / `ASet.ofSetTree`\n\nOpen items are tracked in [`TODO.md`](./TODO.md).\n\n## Build & test\n\n```bash\nnpm install\nnpm run typecheck   # tsc --noEmit\nnpm test            # vitest run\nnpm run build       # emit to dist/\n```\n\n## License\n\nMIT — derived from FSharp.Data.Adaptive (© Aardvark Platform).\n","readmeFilename":"README.md"}