From bf3766ea615e12c02cf968ac3c85dfc4e024c25e Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 7 Dec 2020 01:23:21 +0000 Subject: [PATCH 001/107] build(oquery): remove obsolete deps, update readme --- packages/oquery/README.md | 1 - packages/oquery/package.json | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/oquery/README.md b/packages/oquery/README.md index 32c056ade1..f664eac3a1 100644 --- a/packages/oquery/README.md +++ b/packages/oquery/README.md @@ -71,7 +71,6 @@ Package sizes (gzipped, pre-treeshake): ESM: 1.29 KB / CJS: 1.34 KB / UMD: 1.35 ## Dependencies - [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/develop/packages/api) -- [@thi.ng/associative](https://github.com/thi-ng/umbrella/tree/develop/packages/associative) - [@thi.ng/checks](https://github.com/thi-ng/umbrella/tree/develop/packages/checks) - [@thi.ng/defmulti](https://github.com/thi-ng/umbrella/tree/develop/packages/defmulti) - [@thi.ng/equiv](https://github.com/thi-ng/umbrella/tree/develop/packages/equiv) diff --git a/packages/oquery/package.json b/packages/oquery/package.json index a2f44aa315..855da3df67 100644 --- a/packages/oquery/package.json +++ b/packages/oquery/package.json @@ -49,7 +49,6 @@ }, "dependencies": { "@thi.ng/api": "^6.13.4", - "@thi.ng/associative": "^5.0.11", "@thi.ng/checks": "^2.7.11", "@thi.ng/defmulti": "^1.3.2", "@thi.ng/equiv": "^1.0.33" From 596189808c46378fdaec7e42e59721e919377fee Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 7 Dec 2020 01:24:19 +0000 Subject: [PATCH 002/107] build(geom-subdiv-curve): update deps/readme --- packages/geom-subdiv-curve/README.md | 1 + packages/geom-subdiv-curve/package.json | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/geom-subdiv-curve/README.md b/packages/geom-subdiv-curve/README.md index d40b62bd27..f005c4aaec 100644 --- a/packages/geom-subdiv-curve/README.md +++ b/packages/geom-subdiv-curve/README.md @@ -62,6 +62,7 @@ Package sizes (gzipped, pre-treeshake): ESM: 658 bytes / CJS: 736 bytes / UMD: 7 ## Dependencies +- [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/develop/packages/api) - [@thi.ng/geom-api](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-api) - [@thi.ng/transducers](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers) - [@thi.ng/vectors](https://github.com/thi-ng/umbrella/tree/develop/packages/vectors) diff --git a/packages/geom-subdiv-curve/package.json b/packages/geom-subdiv-curve/package.json index dbbfd056e5..aaa0da95c6 100644 --- a/packages/geom-subdiv-curve/package.json +++ b/packages/geom-subdiv-curve/package.json @@ -49,6 +49,7 @@ "typescript": "^4.1.2" }, "dependencies": { + "@thi.ng/api": "^6.13.4", "@thi.ng/geom-api": "^1.1.4", "@thi.ng/transducers": "^7.5.2", "@thi.ng/vectors": "^4.8.2" From affcf158f9c5f0e0556ed8c7a8bdc90ad8fdffde Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 7 Dec 2020 01:24:50 +0000 Subject: [PATCH 003/107] Publish - @thi.ng/geom-fuzz@0.1.25 - @thi.ng/geom-subdiv-curve@0.1.68 - @thi.ng/geom@1.13.4 - @thi.ng/imgui@0.2.45 - @thi.ng/oquery@0.2.1 --- packages/geom-fuzz/CHANGELOG.md | 8 ++++++++ packages/geom-fuzz/package.json | 4 ++-- packages/geom-subdiv-curve/CHANGELOG.md | 8 ++++++++ packages/geom-subdiv-curve/package.json | 2 +- packages/geom/CHANGELOG.md | 8 ++++++++ packages/geom/package.json | 4 ++-- packages/imgui/CHANGELOG.md | 8 ++++++++ packages/imgui/package.json | 4 ++-- packages/oquery/CHANGELOG.md | 8 ++++++++ packages/oquery/package.json | 2 +- 10 files changed, 48 insertions(+), 8 deletions(-) diff --git a/packages/geom-fuzz/CHANGELOG.md b/packages/geom-fuzz/CHANGELOG.md index 8fd0e097ca..89ec07dfb1 100644 --- a/packages/geom-fuzz/CHANGELOG.md +++ b/packages/geom-fuzz/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.24...@thi.ng/geom-fuzz@0.1.25) (2020-12-07) + +**Note:** Version bump only for package @thi.ng/geom-fuzz + + + + + ## [0.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.23...@thi.ng/geom-fuzz@0.1.24) (2020-12-07) **Note:** Version bump only for package @thi.ng/geom-fuzz diff --git a/packages/geom-fuzz/package.json b/packages/geom-fuzz/package.json index 5f812abc0b..b431128faf 100644 --- a/packages/geom-fuzz/package.json +++ b/packages/geom-fuzz/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-fuzz", - "version": "0.1.24", + "version": "0.1.25", "description": "Highly configurable, fuzzy line & polygon creation with presets and composable fill & stroke styles. Canvas & SVG support", "module": "./index.js", "main": "./lib/index.js", @@ -51,7 +51,7 @@ "@thi.ng/api": "^6.13.4", "@thi.ng/associative": "^5.0.11", "@thi.ng/color": "^1.3.2", - "@thi.ng/geom": "^1.13.3", + "@thi.ng/geom": "^1.13.4", "@thi.ng/geom-api": "^1.1.4", "@thi.ng/geom-clip-line": "^1.2.13", "@thi.ng/geom-resample": "^0.2.50", diff --git a/packages/geom-subdiv-curve/CHANGELOG.md b/packages/geom-subdiv-curve/CHANGELOG.md index 4a1251a00d..fb7f561f37 100644 --- a/packages/geom-subdiv-curve/CHANGELOG.md +++ b/packages/geom-subdiv-curve/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.68](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.67...@thi.ng/geom-subdiv-curve@0.1.68) (2020-12-07) + +**Note:** Version bump only for package @thi.ng/geom-subdiv-curve + + + + + ## [0.1.67](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.66...@thi.ng/geom-subdiv-curve@0.1.67) (2020-12-07) **Note:** Version bump only for package @thi.ng/geom-subdiv-curve diff --git a/packages/geom-subdiv-curve/package.json b/packages/geom-subdiv-curve/package.json index aaa0da95c6..20d69a8beb 100644 --- a/packages/geom-subdiv-curve/package.json +++ b/packages/geom-subdiv-curve/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-subdiv-curve", - "version": "0.1.67", + "version": "0.1.68", "description": "Freely customizable, iterative nD subdivision curves for open / closed geometries", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/geom/CHANGELOG.md b/packages/geom/CHANGELOG.md index 7881558ead..d28ec23936 100644 --- a/packages/geom/CHANGELOG.md +++ b/packages/geom/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.13.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.13.3...@thi.ng/geom@1.13.4) (2020-12-07) + +**Note:** Version bump only for package @thi.ng/geom + + + + + ## [1.13.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.13.2...@thi.ng/geom@1.13.3) (2020-12-07) **Note:** Version bump only for package @thi.ng/geom diff --git a/packages/geom/package.json b/packages/geom/package.json index 4b02f6d9ac..6c507858b9 100644 --- a/packages/geom/package.json +++ b/packages/geom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom", - "version": "1.13.3", + "version": "1.13.4", "description": "Functional, polymorphic API for 2D geometry types & SVG generation", "module": "./index.js", "main": "./lib/index.js", @@ -65,7 +65,7 @@ "@thi.ng/geom-poly-utils": "^0.2.2", "@thi.ng/geom-resample": "^0.2.50", "@thi.ng/geom-splines": "^0.5.37", - "@thi.ng/geom-subdiv-curve": "^0.1.67", + "@thi.ng/geom-subdiv-curve": "^0.1.68", "@thi.ng/geom-tessellate": "^0.2.51", "@thi.ng/hiccup": "^3.6.4", "@thi.ng/hiccup-svg": "^3.6.5", diff --git a/packages/imgui/CHANGELOG.md b/packages/imgui/CHANGELOG.md index ea13b47789..a2217c06b1 100644 --- a/packages/imgui/CHANGELOG.md +++ b/packages/imgui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.44...@thi.ng/imgui@0.2.45) (2020-12-07) + +**Note:** Version bump only for package @thi.ng/imgui + + + + + ## [0.2.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.43...@thi.ng/imgui@0.2.44) (2020-12-07) **Note:** Version bump only for package @thi.ng/imgui diff --git a/packages/imgui/package.json b/packages/imgui/package.json index d46d06dd06..4e0f231fac 100644 --- a/packages/imgui/package.json +++ b/packages/imgui/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/imgui", - "version": "0.2.44", + "version": "0.2.45", "description": "Immediate mode GUI with flexible state handling & data only shape output", "module": "./index.js", "main": "./lib/index.js", @@ -51,7 +51,7 @@ "dependencies": { "@thi.ng/api": "^6.13.4", "@thi.ng/checks": "^2.7.11", - "@thi.ng/geom": "^1.13.3", + "@thi.ng/geom": "^1.13.4", "@thi.ng/geom-api": "^1.1.4", "@thi.ng/geom-isec": "^0.7.2", "@thi.ng/geom-tessellate": "^0.2.51", diff --git a/packages/oquery/CHANGELOG.md b/packages/oquery/CHANGELOG.md index 5a002a0b92..e3c54f2efa 100644 --- a/packages/oquery/CHANGELOG.md +++ b/packages/oquery/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/oquery@0.2.0...@thi.ng/oquery@0.2.1) (2020-12-07) + +**Note:** Version bump only for package @thi.ng/oquery + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/oquery@0.1.15...@thi.ng/oquery@0.2.0) (2020-12-07) diff --git a/packages/oquery/package.json b/packages/oquery/package.json index 855da3df67..6db3d482f0 100644 --- a/packages/oquery/package.json +++ b/packages/oquery/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/oquery", - "version": "0.2.0", + "version": "0.2.1", "description": "Datalog-inspired, optimized pattern/predicate query engine for JS objects & arrays", "module": "./index.js", "main": "./lib/index.js", From c0cb3560b90e1d39a22efb18be9bf93aa86fc6e8 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 7 Dec 2020 02:07:09 +0000 Subject: [PATCH 004/107] build: update make-module/example scripts (snowpack tpl) --- scripts/make-example | 164 +++++++++++++++++++++++++++---------------- scripts/make-module | 12 ++-- 2 files changed, 108 insertions(+), 68 deletions(-) diff --git a/scripts/make-example b/scripts/make-example index 12fe2f927c..cc1a694eb1 100755 --- a/scripts/make-example +++ b/scripts/make-example @@ -10,19 +10,63 @@ mkdir -p "$MODULE" echo "creating /src folder..." mkdir -p "$MODULE"/src cat << EOF > "$MODULE"/src/index.ts -import { } from "@thi.ng/hdom"; +import { \$compile } from "@thi.ng/rdom"; -if (process.env.NODE_ENV !== "production") { - const hot = (module).hot; - hot && hot.dispose(() => {}); -} +\$compile(["div", {}, "hello"]).mount(document.getElementById("app")!); EOF -cat << EOF > "$MODULE"/src/webpack.d.ts -declare module "*.jpg"; -declare module "*.png"; -declare module "*.svg"; -declare module "*.json"; +cat << EOF > "$MODULE"/src/static.d.ts +/* Use this file to declare any custom file extensions for importing */ +/* Use this folder to also add/extend a package d.ts file, if needed. */ + +/* CSS MODULES */ +declare module "*.module.css" { + const classes: { [key: string]: string }; + export default classes; +} +declare module "*.module.scss" { + const classes: { [key: string]: string }; + export default classes; +} +declare module "*.module.sass" { + const classes: { [key: string]: string }; + export default classes; +} +declare module "*.module.less" { + const classes: { [key: string]: string }; + export default classes; +} +declare module "*.module.styl" { + const classes: { [key: string]: string }; + export default classes; +} + +/* CSS */ +declare module "*.css"; +declare module "*.scss"; +declare module "*.sass"; +declare module "*.less"; +declare module "*.styl"; + +/* IMAGES */ +declare module "*.svg" { + const ref: string; + export default ref; +} +declare module "*.gif" { + const ref: string; + export default ref; +} +declare module "*.jpg" { + const ref: string; + export default ref; +} +declare module "*.png" { + const ref: string; + export default ref; +} + +/* CUSTOM: ADD YOUR OWN HERE */ EOF echo "writing package.json..." @@ -35,15 +79,9 @@ cat << EOF > "$MODULE"/package.json "author": "$AUTHOR <$EMAIL>", "license": "Apache-2.0", "scripts": { - "clean": "rm -rf .cache build out", - "build": "yarn clean && parcel build index.html -d out --public-url ./ --no-source-maps --no-cache --detailed-report --experimental-scope-hoisting", - "build:webpack": "../../node_modules/.bin/webpack --mode production", - "start": "parcel index.html -p 8080 --open --no-cache" - }, - "devDependencies": { - "parcel-bundler": "^1.12.4", - "terser": "^5.1.0", - "typescript": "^3.9.7" + "clean": "../../node_modules/.bin/rimraf build node_modules/.cache", + "start": "../../node_modules/.bin/snowpack dev", + "build": "../../node_modules/.bin/snowpack build" }, "dependencies": { "@thi.ng/api": "latest" @@ -65,32 +103,61 @@ EOF echo "writing tsconfig.json..." cat << EOF > "$MODULE"/tsconfig.json { - "extends": "../../tsconfig.json", + "extends": "../tsconfig.json", + "include": ["src"], "compilerOptions": { - "outDir": ".", - "target": "es2017", - "sourceMap": true - }, - "include": [ - "./src/**/*.ts" - ] + "baseUrl": "./", + "paths": { "*": ["web_modules/.types/*"] } + } } EOF +echo "writing snowpack.config.js..." +cat << EOF > "$MODULE"/snowpack.config.js +/** @type {import("snowpack").SnowpackUserConfig } */ +module.exports = { + mount: { + public: "/", + src: "/_dist_", + }, + plugins: [ + "@snowpack/plugin-typescript", + [ + "@snowpack/plugin-webpack", + { + extendConfig: (config) => { + config.node = { + process: false, + setImmediate: false, + util: "empty", + }; + return config; + }, + }, + ], + ], + installOptions: { + installTypes: true, + }, + buildOptions: { + baseUrl: "/$1", + }, +}; +EOF + echo "writing .gitignore..." cat << EOF > "$MODULE"/.gitignore -.cache -out +build +dev node_modules yarn.lock -*.js -*.map -!src/*.d.ts -!*.config.js +!snowpack.config.js +!*.d.ts EOF echo "writing index.html..." -cat << EOF > "$MODULE"/index.html +mkdir -p "$MODULE"/public +cat << EOF > "$MODULE"/public/index.html @@ -106,7 +173,7 @@ cat << EOF > "$MODULE"/index.html
- + EOF @@ -127,30 +194,3 @@ Please refer to the [example build instructions](https://github.com/thi-ng/umbre © 2020 $AUTHOR // Apache Software License 2.0 EOF - -echo "writing webpack.config.js..." -cat << EOF > "$MODULE"/webpack.config.js -module.exports = { - entry: "./src/index.ts", - output: { - filename: "bundle.[hash].js", - path: __dirname + "/out" - }, - resolve: { - extensions: [".ts", ".js"] - }, - module: { - rules: [ - { - test: /\.(png|jpg|gif)$/, - loader: "file-loader", - options: { name: "[path][hash].[ext]" } - }, - { test: /\.ts$/, use: "ts-loader" } - ] - }, - node: { - process: false - } -}; -EOF diff --git a/scripts/make-module b/scripts/make-module index 42f76b43b7..c1bd36e01d 100755 --- a/scripts/make-module +++ b/scripts/make-module @@ -78,23 +78,23 @@ cat << EOF > "$MODULE"/package.json "cover": "nyc mocha test && nyc report --reporter=lcov", "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", - "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", + "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", "pub": "yarn build:release && yarn publish --access public" }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.9.11", + "@microsoft/api-extractor": "^7.12.0", "@types/mocha": "^8.0.3", "@types/node": "^14.6.1", - "mocha": "^8.1.2", + "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.0.0", - "typedoc": "^0.18.0", - "typescript": "^4.0.2" + "typedoc": "^0.19.2", + "typescript": "^4.1.2" }, "dependencies": { - "@thi.ng/api": "^6.13.3" + "@thi.ng/api": "^6.13.4" }, "files": [ "*.js", From adf0d1415a6b3c518580969841392935e81ab5d6 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Mon, 7 Dec 2020 23:31:15 +0000 Subject: [PATCH 005/107] docs: update README.md [skip ci] --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 84866901cc..780deede1f 100644 --- a/README.md +++ b/README.md @@ -402,6 +402,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
TBD

🐛 🤔 +
Pedro Henriques dos Santos Teixeira

💵 From 63672ba37e896f8e28a30f4dcce575dd9774e98f Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Mon, 7 Dec 2020 23:31:16 +0000 Subject: [PATCH 006/107] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 63467c7311..e3b56146f7 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -231,6 +231,15 @@ "bug", "ideas" ] + }, + { + "login": "pedroteixeira", + "name": "Pedro Henriques dos Santos Teixeira", + "avatar_url": "https://avatars3.githubusercontent.com/u/14740?v=4", + "profile": "http://twitter.com/pedroteixeira", + "contributions": [ + "financial" + ] } ], "contributorsPerLine": 7, From 7b4c02510ec15206c39f2c6573119549136176ab Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 8 Dec 2020 09:46:14 +0000 Subject: [PATCH 007/107] build(examples): update build-examples script --- scripts/build-examples | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/scripts/build-examples b/scripts/build-examples index 2a0a9e3b58..b546864d7f 100755 --- a/scripts/build-examples +++ b/scripts/build-examples @@ -1,4 +1,5 @@ #!/bin/sh +BUILD=build if [ $# = 1 ]; then examples="examples/$1" @@ -8,10 +9,11 @@ fi for e in $examples; do if [ -d "$e" ] && [ ! -e "$e/.skip" ]; then + ebuild="$e/$BUILD" echo "------------------------------" echo "building $e..." echo "------------------------------" - rm -rf "$e"/out "$e"/.cache + rm -rf "$ebuild" "$e/.cache" if [ ! -r "$e"/package.json ]; then continue fi @@ -20,14 +22,15 @@ for e in $examples; do fi if grep --quiet build:webpack "$e"/package.json; then (cd "$e" && yarn build:webpack) - cp "$e"/index.html "$e"/out/index.html - js=$(basename $(ls "$e"/out/bundle*.js)) - sed -i '' -E 's, + +// UMD + +``` + +Package sizes (gzipped, pre-treeshake): ESM: 773 bytes / CJS: 850 bytes / UMD: 901 bytes + +## Dependencies + +- [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/develop/packages/api) +- [@thi.ng/math](https://github.com/thi-ng/umbrella/tree/develop/packages/math) + +## API + +[Generated API docs](https://docs.thi.ng/umbrella/fuzzy/) + +TODO + +## Authors + +Karsten Schmidt + +If this project contributes to an academic publication, please cite it as: + +```bibtex +@misc{thing-fuzzy, + title = "@thi.ng/fuzzy", + author = "Karsten Schmidt", + note = "https://thi.ng/fuzzy", + year = 2020 +} +``` + +## License + +© 2020 Karsten Schmidt // Apache Software License 2.0 diff --git a/packages/fuzzy/api-extractor.json b/packages/fuzzy/api-extractor.json new file mode 100644 index 0000000000..94972e6bed --- /dev/null +++ b/packages/fuzzy/api-extractor.json @@ -0,0 +1,3 @@ +{ + "extends": "../../api-extractor.json" +} diff --git a/packages/fuzzy/package.json b/packages/fuzzy/package.json new file mode 100644 index 0000000000..6793255e16 --- /dev/null +++ b/packages/fuzzy/package.json @@ -0,0 +1,79 @@ +{ + "name": "@thi.ng/fuzzy", + "version": "0.0.1", + "description": "Fuzzy logic operators & configurable rule inferencing engine", + "module": "./index.js", + "main": "./lib/index.js", + "umd:main": "./lib/index.umd.js", + "typings": "./index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/fuzzy#readme", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/postspectacular" + }, + { + "type": "patreon", + "url": "https://patreon.com/thing_umbrella" + } + ], + "author": "Karsten Schmidt ", + "license": "Apache-2.0", + "scripts": { + "build": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module", + "build:release": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module all", + "build:es6": "tsc --declaration", + "build:test": "rimraf build && tsc -p test/tsconfig.json", + "build:check": "tsc --isolatedModules --noEmit", + "test": "mocha test", + "cover": "nyc mocha test && nyc report --reporter=lcov", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib", + "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", + "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", + "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", + "pub": "yarn build:release && yarn publish --access public" + }, + "devDependencies": { + "@istanbuljs/nyc-config-typescript": "^1.0.1", + "@microsoft/api-extractor": "^7.12.0", + "@types/mocha": "^8.0.3", + "@types/node": "^14.14.10", + "mocha": "^8.2.1", + "nyc": "^15.1.0", + "ts-node": "^9.1.1", + "typedoc": "^0.19.2", + "typescript": "^4.1.2" + }, + "dependencies": { + "@thi.ng/api": "^6.13.4", + "@thi.ng/math": "^2.2.2" + }, + "files": [ + "*.js", + "*.d.ts", + "lib" + ], + "keywords": [ + "agent", + "functional", + "math", + "fuzzy", + "inference", + "logic", + "rule", + "t-norm", + "typescript" + ], + "publishConfig": { + "access": "public" + }, + "sideEffects": false, + "thi.ng": { + "status": "alpha", + "year": 2020 + } +} diff --git a/packages/fuzzy/src/api.ts b/packages/fuzzy/src/api.ts new file mode 100644 index 0000000000..a75d2f5140 --- /dev/null +++ b/packages/fuzzy/src/api.ts @@ -0,0 +1,31 @@ +import type { Fn2, FnN, FnN2, IObjectOf, Nullable } from "@thi.ng/api"; + +export type FuzzyFn = FnN; + +export type RuleInputs = IObjectOf; +export type RuleOutputs = IObjectOf; +export type RuleOp = (x: number, a: FuzzyFn, b: FuzzyFn) => number; + +export type DefuzzStrategy = Fn2[], [number, number], number>; + +export interface Rule { + op: FnN2; + if: RuleInputs; + then: RuleOutputs; + weight: number; +} + +export type RuleFn = ( + $if: RuleInputs, + $then: RuleOutputs, + weight?: number +) => Rule; + +/** + * Linguistic Variable, defining several (possibly overlapping) fuzzy sets in an + * overall global domain. + */ +export interface LVar { + domain: [number, number]; + terms: Record; +} diff --git a/packages/fuzzy/src/defuzz.ts b/packages/fuzzy/src/defuzz.ts new file mode 100644 index 0000000000..d52c0eb7cd --- /dev/null +++ b/packages/fuzzy/src/defuzz.ts @@ -0,0 +1,98 @@ +import type { FnN2, IObjectOf, Nullable } from "@thi.ng/api"; +import { snormMax } from "@thi.ng/math"; +import type { DefuzzStrategy, FuzzyFn, LVar, Rule } from "./api"; + +/** + * Takes an object of input {@link variable}s, an object of output variable, + * rule array and an object of input values. Evaluates relevant terms of input + * variables in all matching rules, then combines and defuzzes them using given + * optional strategy (by default {@link cog} w/ its own default options). + * Returns object of computed output variable values. + * + * @param ins + * @param outs + * @param rules + * @param vals + * @param strategy + */ +export const defuzz = ( + ins: IObjectOf, + outs: IObjectOf, + rules: Rule[], + vals: IObjectOf, + strategy = cog() +) => { + const ruleTerms = rules.map((r) => { + let acc: number | null = null; + for (let id in vals) { + if (r.if[id]) { + const v = ins[id].terms[r.if[id]](vals[id]); + acc = acc !== null ? r.op(acc, v) : v; + } + } + const weight = (acc || 0) * r.weight; + const terms: IObjectOf = {}; + for (let id in r.then) { + terms[id] = weightedTerm(outs[id].terms[r.then[id]], weight); + } + return terms; + }); + + const res: IObjectOf = {}; + for (let id in outs) { + res[id] = strategy( + ruleTerms.map((r) => r[id]), + outs[id].domain + ); + } + return res; +}; + +const weightedTerm = (fn: FuzzyFn, weight: number): FuzzyFn => (x) => + weight * fn(x); + +export interface COGOpts { + combine: FnN2; + n: number; +} + +/** + * Higher-order function: Center of gravity defuzzing strategy, using given + * `opts` with `combine` t-norm to form the integral of evaluated terms in the + * defined domain of a single Linguistic output variable. The domain is sampled + * at `n` uniformly spaced points. + * + * @param terms + * @param domain + */ +export const cog = (opts?: Partial): DefuzzStrategy => { + const { combine, n } = { combine: snormMax, n: 64, ...opts }; + return (terms, [min, max]) => { + const delta = (max - min) / n; + let sum: [number, number][] = []; + // integrate over given var's domain + // state: [x, sum(term(x))] + for (let i = min, j = 0; i < max; i += delta, j++) { + sum[j] = [ + i, + delta * combineTerms(combine, terms, i) + + (j > 0 ? sum[j - 1][1] : 0), + ]; + } + const mean = sum[n - 1][1] * 0.5; + const idx = sum.findIndex((x) => x[1] > mean); + return idx > 0 ? (sum[idx - 1][0] + sum[idx][0]) * 0.5 : sum[0][0]; + }; +}; + +/** + * Takes an array of fuzzy set term functions, evaluates each with input `x` + * (skipping any nullish terms) and combines results using `op` (usually an + * S-norm / T-conorm operation, e.g. `max(a,b)`). + * + * @param op + * @param terms + * @param x + */ +export const combineTerms = (op: FnN2, terms: Nullable[], x: number) => + terms.reduce((acc, term) => (term ? op(acc, term(x)) : acc), 0); diff --git a/packages/fuzzy/src/index.ts b/packages/fuzzy/src/index.ts new file mode 100644 index 0000000000..912e8c68de --- /dev/null +++ b/packages/fuzzy/src/index.ts @@ -0,0 +1,5 @@ +export * from "./api"; +export * from "./defuzz"; +export * from "./rules"; +export * from "./shapes"; +export * from "./var"; diff --git a/packages/fuzzy/src/rules.ts b/packages/fuzzy/src/rules.ts new file mode 100644 index 0000000000..0194815abc --- /dev/null +++ b/packages/fuzzy/src/rules.ts @@ -0,0 +1,21 @@ +import type { FnN2 } from "@thi.ng/api"; +import { snormMax, tnormMin } from "@thi.ng/math"; +import type { Rule, RuleFn, RuleInputs, RuleOutputs } from "./api"; + +const rule = ( + op: FnN2, + $if: RuleInputs, + then: RuleOutputs, + weight = 1 +): Rule => ({ + if: $if, + then, + op, + weight, +}); + +export const and: RuleFn = ($if, $then, weight) => + rule(tnormMin, $if, $then, weight); + +export const or: RuleFn = ($if, $then, weight) => + rule(snormMax, $if, $then, weight); diff --git a/packages/fuzzy/src/shapes.ts b/packages/fuzzy/src/shapes.ts new file mode 100644 index 0000000000..915cda1497 --- /dev/null +++ b/packages/fuzzy/src/shapes.ts @@ -0,0 +1,97 @@ +import type { FnU, FnU2, FnU3, FnU4 } from "@thi.ng/api"; +import { + EPS, + eqDelta, + fit, + fitClamped, + gaussian as $gaussian, + sigmoid as $sigmoid, +} from "@thi.ng/math"; +import type { FuzzyFn } from "./api"; + +/** + * HOF {@link FuzzyFn} always yielding given `x` (should be in [0,1] + * interval). + * + * @param x + */ +export const constant = (x: number): FuzzyFn => () => x; + +/** + * HOF {@link FuzzyFn} which takes a value `p` and tolerance `eps`, then yields + * a discrete window function: `|p - x| <= eps ? 1 : 0` + * + * @param p + * @param eps + */ +export const point = (p: number, eps = EPS): FuzzyFn => (x) => + eqDelta(x, p, eps) ? 1 : 0; + +/** + * HOF {@link FuzzyFn} yielding a rising ramp in [a,b] interval, clamped to + * [0,1] outputs. Returns 0.0 for inputs <= `a` and 1.0 for inputs >= `b`. + * + * @param a + * @param b + */ +export const ramp: FnU2 = (a, b) => (x) => + fitClamped(x, a, b, 0, 1); + +/** + * HOF {@link FuzzyFn} yielding a triangle in the input range `[a..b..c]` with + * `b` defining the position of the peak value (1.0). Returns 0.0 for inputs < + * `a` or > `c`. + * + * @param a + * @param b + * @param c + */ +export const triangle: FnU3 = (a, b, c) => (x) => + x < a || x > c ? 0 : x <= b ? fit(x, a, b, 0, 1) : fit(x, b, c, 1, 0); + +/** + * Similar to {@link triangle}, but yielding a trapezoid for the input range + * `[a..b..c..d]` with `b` and `c` defining the peak value range (with 1.0 + * outputs). Returns 0.0 for inputs < `a` or > `d`. + * + * @param a + * @param b + * @param c + * @param d + */ +export const trapezoid: FnU4 = (a, b, c, d) => (x) => + x < a || x > d + ? 0 + : x > b && x < c + ? 1 + : x <= b + ? fit(x, a, b, 0, 1) + : fit(x, c, d, 1, 0); + +/** + * HOF {@link FuzzyFn}, yielding sigmoid curve with configurable `steep` and + * positioned such that `f(bias) = 0.5`. + * + * @param bias + * @param steep + */ +export const sigmoid: FnU2 = (bias, steep) => (x) => + $sigmoid(bias, steep, x); + +/** + * HOF {@link FuzzyFn}, yielding gaussian bell curve with its peak at `bias` and + * width defined by `sigma`. + * + * @param bias + * @param sigma + */ +export const gaussian: FnU2 = (bias, sigma) => (x) => + $gaussian(bias, sigma, x); + +/** + * Higher-order function: Takes an existing {@link FuzzyFn} `fn` and returns + * a new one producing its negated outcome aka `1 - fn(x)`. + * + * @param fn + */ +export const negate: FnU = (fn) => (x) => 1 - fn(x); diff --git a/packages/fuzzy/src/var.ts b/packages/fuzzy/src/var.ts new file mode 100644 index 0000000000..e4b6a59f44 --- /dev/null +++ b/packages/fuzzy/src/var.ts @@ -0,0 +1,48 @@ +import type { LVar } from "./api"; + +/** + * Takes a `domain` interval and on object of named fuzzy sets and returns a new + * Linguistic variable, which can then be used as input or output var for + * {@link defuzz}. + * + * @example + * ```ts + * // temperature sets (in celsius) + * const temp = variable([-20, 40], { + * freezing: negate(sigmoid(0, 2)), + * cold: trapezoid(0, 4, 16, 20), + * warm: trapezoid(15, 20, 25, 30), + * hot: sigmoid(30, 2) + * }); + * ``` + * + * @param domain + * @param terms + */ +export const variable = ( + domain: [number, number], + terms: LVar["terms"] +): LVar => ({ + domain, + terms, +}); + +/** + * Takes an LVar and a domain value. Returns the ID of the var's term which + * produces the largest value for given `x`. + * + * @param var + * @param x + */ +export const classify = ({ terms }: LVar, x: number) => { + let max = -Infinity; + let maxID: string | undefined; + for (let id in terms) { + const t = terms[id](x); + if (t > max) { + max = t; + maxID = id; + } + } + return maxID; +}; diff --git a/packages/fuzzy/tpl.readme.md b/packages/fuzzy/tpl.readme.md new file mode 100644 index 0000000000..742daa8f83 --- /dev/null +++ b/packages/fuzzy/tpl.readme.md @@ -0,0 +1,63 @@ +# ${pkg.banner} + +[![npm version](https://img.shields.io/npm/v/${pkg.name}.svg)](https://www.npmjs.com/package/${pkg.name}) +![npm downloads](https://img.shields.io/npm/dm/${pkg.name}.svg) +[![Twitter Follow](https://img.shields.io/twitter/follow/thing_umbrella.svg?style=flat-square&label=twitter)](https://twitter.com/thing_umbrella) + +This project is part of the +[@thi.ng/umbrella](https://github.com/thi-ng/umbrella/) monorepo. + + + +## About + +${pkg.description} + +### Features + +- Entirely declarative & functional approach +- Fuzzy set domain shaping functions (incl. negated/inverse) +- Rules with multiple inputs/outputs and arbitrary term combinators (e.g. + [T-norms](https://en.wikipedia.org/wiki/T-norm) from the + [@thi.ng/math](https://github.com/thi-ng/umbrella/tree/develop/packages/math) + package). Syntax sugar for common `and`/`or` rules. +- Defuzzing via customizable strategies (so far Center-of-Gravity (COG) only) + and options to balance precision vs. performance. +- Linguistic variable creation and term/set classification for given domain + values + +${status} + +${supportPackages} + +${relatedPackages} + +${blogPosts} + +## Installation + +${pkg.install} + +${pkg.size} + +## Dependencies + +${pkg.deps} + +${examples} + +## API + +${docLink} + +TODO + +## Authors + +${authors} + +${pkg.cite} + +## License + +© ${copyright} // ${license} diff --git a/packages/fuzzy/tsconfig.json b/packages/fuzzy/tsconfig.json new file mode 100644 index 0000000000..bd6481a5a6 --- /dev/null +++ b/packages/fuzzy/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "." + }, + "include": [ + "./src/**/*.ts" + ] +} From ab7ded211455b705f0906184a02d059537d6c0eb Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 03:22:35 +0000 Subject: [PATCH 020/107] build: update main build scripts --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index d56b31afa4..11449546f7 100644 --- a/package.json +++ b/package.json @@ -30,9 +30,9 @@ "@ygoe/msgpack": "^1.0.2" }, "scripts": { - "bootstrap": "lerna bootstrap", - "build": "yarn install && lerna -v && lerna bootstrap && lerna run build --sort", - "build:release": "yarn install && lerna -v && lerna bootstrap && lerna run build:release --sort", + "bootstrap": "yarn install && lerna -v && lerna bootstrap", + "build": "yarn bootstrap && lerna run build --sort", + "build:release": "yarn bootstrap && lerna run build:release --sort", "build:es6only": "lerna run clean && lerna run build:es6 --sort", "build:check": "lerna run build:check", "cover": "lerna run cover", From 36646a0df34f5584331baaa6bda824a7d1853d4f Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 03:23:19 +0000 Subject: [PATCH 021/107] ci: attempt to patch snowpack typings file (temp) --- .github/workflows/test.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7e282c6fc2..533c8556cf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,4 +20,8 @@ jobs: - uses: actions/setup-node@v1 with: node-version: ">=14.6.0" - - run: yarn test + - run: | + yarn bootstrap + sed -i'' -e 's/readonly url: string/url: string/' node_modules/@types/snowpack-env/index.d.ts + lerna run build --sort + yarn test:only From 4c634658301c6bbf527d2f623b5faeb2e8e8840b Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 03:27:47 +0000 Subject: [PATCH 022/107] docs(fuzzy): update readme --- packages/fuzzy/README.md | 9 ++++++++- packages/fuzzy/tpl.readme.md | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/fuzzy/README.md b/packages/fuzzy/README.md index 2a6c787e21..f018658d86 100644 --- a/packages/fuzzy/README.md +++ b/packages/fuzzy/README.md @@ -35,6 +35,13 @@ Fuzzy logic operators & configurable rule inferencing engine. - Linguistic variable creation and term/set classification for given domain values +References: + +- https://en.wikipedia.org/wiki/Fuzzy_logic +- https://en.wikipedia.org/wiki/Defuzzification +- https://en.wikipedia.org/wiki/T-Norm +- http://aisii.azc.uam.mx/mcbc/Cursos/IntCompt/Lectura15.pdf + ### Status **ALPHA** - bleeding edge / work-in-progress @@ -55,7 +62,7 @@ yarn add @thi.ng/fuzzy ``` -Package sizes (gzipped, pre-treeshake): ESM: 773 bytes / CJS: 850 bytes / UMD: 901 bytes +Package sizes (gzipped, pre-treeshake): CJS: 850 bytes ## Dependencies diff --git a/packages/fuzzy/tpl.readme.md b/packages/fuzzy/tpl.readme.md index 742daa8f83..91a4a04221 100644 --- a/packages/fuzzy/tpl.readme.md +++ b/packages/fuzzy/tpl.readme.md @@ -26,6 +26,13 @@ ${pkg.description} - Linguistic variable creation and term/set classification for given domain values +References: + +- https://en.wikipedia.org/wiki/Fuzzy_logic +- https://en.wikipedia.org/wiki/Defuzzification +- https://en.wikipedia.org/wiki/T-Norm +- http://aisii.azc.uam.mx/mcbc/Cursos/IntCompt/Lectura15.pdf + ${status} ${supportPackages} From a50fde40e9c4cf340b4482d897830627f34c3c33 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 03:22:35 +0000 Subject: [PATCH 023/107] build: update main build scripts (cherry picked from commit ab7ded211455b705f0906184a02d059537d6c0eb) --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index d56b31afa4..11449546f7 100644 --- a/package.json +++ b/package.json @@ -30,9 +30,9 @@ "@ygoe/msgpack": "^1.0.2" }, "scripts": { - "bootstrap": "lerna bootstrap", - "build": "yarn install && lerna -v && lerna bootstrap && lerna run build --sort", - "build:release": "yarn install && lerna -v && lerna bootstrap && lerna run build:release --sort", + "bootstrap": "yarn install && lerna -v && lerna bootstrap", + "build": "yarn bootstrap && lerna run build --sort", + "build:release": "yarn bootstrap && lerna run build:release --sort", "build:es6only": "lerna run clean && lerna run build:es6 --sort", "build:check": "lerna run build:check", "cover": "lerna run cover", From 0b176594afd0093c8aa8ea869eba4cc5fbc74a08 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 03:23:19 +0000 Subject: [PATCH 024/107] ci: attempt to patch snowpack typings file (temp) (cherry picked from commit 36646a0df34f5584331baaa6bda824a7d1853d4f) --- .github/workflows/test.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7e282c6fc2..533c8556cf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,4 +20,8 @@ jobs: - uses: actions/setup-node@v1 with: node-version: ">=14.6.0" - - run: yarn test + - run: | + yarn bootstrap + sed -i'' -e 's/readonly url: string/url: string/' node_modules/@types/snowpack-env/index.d.ts + lerna run build --sort + yarn test:only From 00975950b1b882ccb8013fec55cb2bc08b47dce5 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 03:32:52 +0000 Subject: [PATCH 025/107] ci: update workflow (lerna path) --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 533c8556cf..3795938867 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,5 +23,5 @@ jobs: - run: | yarn bootstrap sed -i'' -e 's/readonly url: string/url: string/' node_modules/@types/snowpack-env/index.d.ts - lerna run build --sort + node_modules/.bin/lerna run build --sort yarn test:only From 0eb7e7053730911390334f48a73492e0fa881e77 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 13:33:33 +0000 Subject: [PATCH 026/107] build: update snowpack-env types, GH actions, example pkgs --- .github/workflows/test.yml | 6 +----- examples/adaptive-threshold/package.json | 2 +- examples/async-effect/package.json | 2 +- examples/bitmap-font/package.json | 2 +- examples/canvas-dial/package.json | 2 +- examples/cellular-automata/package.json | 2 +- examples/crypto-chart/package.json | 2 +- examples/devcards/package.json | 2 +- examples/ellipse-proximity/package.json | 2 +- examples/fft-synth/package.json | 2 +- examples/geom-convex-hull/package.json | 2 +- examples/geom-fuzz-basics/package.json | 2 +- examples/geom-knn/package.json | 2 +- examples/geom-tessel/package.json | 2 +- examples/geom-voronoi-mst/package.json | 2 +- examples/gesture-analysis/package.json | 2 +- examples/grid-iterators/package.json | 2 +- examples/hdom-basics/package.json | 2 +- examples/hdom-benchmark/package.json | 2 +- examples/hdom-benchmark2/package.json | 2 +- examples/hdom-canvas-clock/package.json | 2 +- examples/hdom-canvas-draw/package.json | 2 +- examples/hdom-canvas-particles/package.json | 2 +- examples/hdom-canvas-shapes/package.json | 2 +- examples/hdom-dropdown-fuzzy/package.json | 2 +- examples/hdom-dropdown/package.json | 2 +- examples/hdom-dyn-context/package.json | 2 +- examples/hdom-elm/package.json | 2 +- examples/hdom-inner-html/package.json | 2 +- examples/hdom-local-render/package.json | 2 +- examples/hdom-localstate/package.json | 2 +- examples/hdom-skip-nested/package.json | 2 +- examples/hdom-skip/package.json | 2 +- examples/hdom-theme-adr-0003/package.json | 2 +- examples/hdom-toggle/package.json | 2 +- examples/hdom-vscroller/package.json | 2 +- examples/hiccup-canvas-arcs/package.json | 2 +- examples/hydrate-basics/package.json | 2 +- examples/imgui-basics/package.json | 2 +- examples/imgui/package.json | 2 +- examples/interceptor-basics/package.json | 2 +- examples/interceptor-basics2/package.json | 2 +- examples/iso-plasma/package.json | 2 +- examples/json-components/package.json | 2 +- examples/login-form/package.json | 2 +- examples/markdown/package.json | 2 +- examples/multitouch/package.json | 2 +- examples/parse-playground/package.json | 2 +- examples/pixel-basics/package.json | 2 +- examples/poisson-circles/package.json | 2 +- examples/poly-spline/package.json | 2 +- examples/porter-duff/package.json | 2 +- examples/ramp-synth/package.json | 2 +- examples/rdom-basics/package.json | 2 +- examples/rdom-dnd/package.json | 2 +- examples/rdom-lissajous/package.json | 2 +- examples/rdom-search-docs/package.json | 2 +- examples/rdom-svg-nodes/package.json | 2 +- examples/rotating-voronoi/package.json | 2 +- examples/router-basics/package.json | 2 +- examples/rstream-dataflow/package.json | 2 +- examples/rstream-event-loop/package.json | 2 +- examples/rstream-grid/package.json | 2 +- examples/rstream-hdom/package.json | 2 +- examples/rstream-spreadsheet/package.json | 2 +- examples/scenegraph-image/package.json | 2 +- examples/scenegraph/package.json | 2 +- examples/shader-ast-canvas2d/package.json | 2 +- examples/shader-ast-evo/package.json | 2 +- examples/shader-ast-noise/package.json | 2 +- examples/shader-ast-raymarch/package.json | 2 +- examples/shader-ast-sdf2d/package.json | 2 +- examples/shader-ast-tunnel/package.json | 2 +- examples/shader-graph/package.json | 2 +- examples/soa-ecs/package.json | 2 +- examples/stratified-grid/package.json | 2 +- examples/svg-barchart/package.json | 2 +- examples/svg-particles/package.json | 2 +- examples/svg-waveform/package.json | 2 +- examples/talk-slides/package.json | 2 +- examples/text-canvas/package.json | 2 +- examples/todo-list/package.json | 2 +- examples/transducers-hdom/package.json | 2 +- examples/triple-query/package.json | 2 +- examples/webgl-cube/package.json | 2 +- examples/webgl-cubemap/package.json | 2 +- examples/webgl-grid/package.json | 2 +- examples/webgl-msdf/package.json | 2 +- examples/webgl-multipass/package.json | 2 +- examples/webgl-shadertoy/package.json | 2 +- examples/webgl-ssao/package.json | 2 +- examples/webgl-ssao/src/index.ts | 8 +------- examples/wolfram/package.json | 2 +- examples/xml-converter/package.json | 2 +- package.json | 2 +- yarn.lock | 10 +++++----- 96 files changed, 100 insertions(+), 110 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3795938867..7e282c6fc2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,8 +20,4 @@ jobs: - uses: actions/setup-node@v1 with: node-version: ">=14.6.0" - - run: | - yarn bootstrap - sed -i'' -e 's/readonly url: string/url: string/' node_modules/@types/snowpack-env/index.d.ts - node_modules/.bin/lerna run build --sort - yarn test:only + - run: yarn test diff --git a/examples/adaptive-threshold/package.json b/examples/adaptive-threshold/package.json index 3131f9e821..733d93eb0a 100644 --- a/examples/adaptive-threshold/package.json +++ b/examples/adaptive-threshold/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/adaptive-threshold.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/async-effect/package.json b/examples/async-effect/package.json index 02cc4e607a..9663508269 100644 --- a/examples/async-effect/package.json +++ b/examples/async-effect/package.json @@ -27,6 +27,6 @@ ] }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/bitmap-font/package.json b/examples/bitmap-font/package.json index 985362ff7a..ca08f3fcda 100644 --- a/examples/bitmap-font/package.json +++ b/examples/bitmap-font/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/bitmap-font.gif" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/canvas-dial/package.json b/examples/canvas-dial/package.json index d457e003ec..71c135f184 100644 --- a/examples/canvas-dial/package.json +++ b/examples/canvas-dial/package.json @@ -38,6 +38,6 @@ "screenshot": "examples/canvas-dial.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/cellular-automata/package.json b/examples/cellular-automata/package.json index 75a1d684db..273cfe843c 100644 --- a/examples/cellular-automata/package.json +++ b/examples/cellular-automata/package.json @@ -30,6 +30,6 @@ "screenshot": "examples/cellular-automata.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/crypto-chart/package.json b/examples/crypto-chart/package.json index fd9b3c280f..2f36254419 100644 --- a/examples/crypto-chart/package.json +++ b/examples/crypto-chart/package.json @@ -43,6 +43,6 @@ "screenshot": "examples/crypto-chart.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/devcards/package.json b/examples/devcards/package.json index 1e8716ede5..0b2f5cbf89 100644 --- a/examples/devcards/package.json +++ b/examples/devcards/package.json @@ -28,6 +28,6 @@ ] }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/ellipse-proximity/package.json b/examples/ellipse-proximity/package.json index ae376da13c..6fb92694dc 100644 --- a/examples/ellipse-proximity/package.json +++ b/examples/ellipse-proximity/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/ellipse-proximity.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/fft-synth/package.json b/examples/fft-synth/package.json index 7d3a2ae2b7..e4dbf98573 100644 --- a/examples/fft-synth/package.json +++ b/examples/fft-synth/package.json @@ -41,6 +41,6 @@ "screenshot": "examples/fft-synth.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/geom-convex-hull/package.json b/examples/geom-convex-hull/package.json index 9ee9d5ea24..f99bdd8c06 100644 --- a/examples/geom-convex-hull/package.json +++ b/examples/geom-convex-hull/package.json @@ -30,6 +30,6 @@ "screenshot": "examples/geom-convex-hull.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/geom-fuzz-basics/package.json b/examples/geom-fuzz-basics/package.json index 27617696c9..05eb6df051 100644 --- a/examples/geom-fuzz-basics/package.json +++ b/examples/geom-fuzz-basics/package.json @@ -32,6 +32,6 @@ "screenshot": "geom/geom-fuzz.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/geom-knn/package.json b/examples/geom-knn/package.json index 3880705856..6ce87b9ed2 100644 --- a/examples/geom-knn/package.json +++ b/examples/geom-knn/package.json @@ -36,6 +36,6 @@ "screenshot": "examples/geom-knn.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/geom-tessel/package.json b/examples/geom-tessel/package.json index 567995f000..89040b8eac 100644 --- a/examples/geom-tessel/package.json +++ b/examples/geom-tessel/package.json @@ -36,6 +36,6 @@ "screenshot": "geom/tessel.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/geom-voronoi-mst/package.json b/examples/geom-voronoi-mst/package.json index 9f4cb740db..3044d68363 100644 --- a/examples/geom-voronoi-mst/package.json +++ b/examples/geom-voronoi-mst/package.json @@ -41,6 +41,6 @@ "screenshot": "examples/geom-voronoi-mst.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/gesture-analysis/package.json b/examples/gesture-analysis/package.json index 67572d0a57..89e240178c 100644 --- a/examples/gesture-analysis/package.json +++ b/examples/gesture-analysis/package.json @@ -37,6 +37,6 @@ "screenshot": "examples/gesture-analysis.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/grid-iterators/package.json b/examples/grid-iterators/package.json index 61fa310a82..c4027d492d 100644 --- a/examples/grid-iterators/package.json +++ b/examples/grid-iterators/package.json @@ -30,6 +30,6 @@ "screenshot": "examples/grid-iterators.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-basics/package.json b/examples/hdom-basics/package.json index 4836746491..a35e8d10b4 100644 --- a/examples/hdom-basics/package.json +++ b/examples/hdom-basics/package.json @@ -20,6 +20,6 @@ "process": false }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-benchmark/package.json b/examples/hdom-benchmark/package.json index 98c784cc06..00ac8986e1 100644 --- a/examples/hdom-benchmark/package.json +++ b/examples/hdom-benchmark/package.json @@ -27,6 +27,6 @@ "screenshot": "examples/hdom-benchmark.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-benchmark2/package.json b/examples/hdom-benchmark2/package.json index 49f6d5a569..35962c8ac8 100644 --- a/examples/hdom-benchmark2/package.json +++ b/examples/hdom-benchmark2/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/hdom-benchmark2.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-canvas-clock/package.json b/examples/hdom-canvas-clock/package.json index 73adbceef3..d1fa5acb58 100644 --- a/examples/hdom-canvas-clock/package.json +++ b/examples/hdom-canvas-clock/package.json @@ -33,6 +33,6 @@ "screenshot": "examples/hdom-canvas-clock.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-canvas-draw/package.json b/examples/hdom-canvas-draw/package.json index efd924d9af..aaf1b25b8e 100644 --- a/examples/hdom-canvas-draw/package.json +++ b/examples/hdom-canvas-draw/package.json @@ -38,6 +38,6 @@ "screenshot": "examples/hdom-canvas-draw.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-canvas-particles/package.json b/examples/hdom-canvas-particles/package.json index a41a9f61b3..80b17f8793 100644 --- a/examples/hdom-canvas-particles/package.json +++ b/examples/hdom-canvas-particles/package.json @@ -38,6 +38,6 @@ "screenshot": "examples/hdom-canvas-particles.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-canvas-shapes/package.json b/examples/hdom-canvas-shapes/package.json index a1ec771af9..a3bb43e124 100644 --- a/examples/hdom-canvas-shapes/package.json +++ b/examples/hdom-canvas-shapes/package.json @@ -48,6 +48,6 @@ "screenshot": "hdom-canvas/hdom-canvas-shapes-results.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-dropdown-fuzzy/package.json b/examples/hdom-dropdown-fuzzy/package.json index 1b6347eaea..5db74e062d 100644 --- a/examples/hdom-dropdown-fuzzy/package.json +++ b/examples/hdom-dropdown-fuzzy/package.json @@ -36,6 +36,6 @@ ] }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-dropdown/package.json b/examples/hdom-dropdown/package.json index 88affe20e0..38fe02a7fe 100644 --- a/examples/hdom-dropdown/package.json +++ b/examples/hdom-dropdown/package.json @@ -25,6 +25,6 @@ "process": false }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-dyn-context/package.json b/examples/hdom-dyn-context/package.json index 4b25109106..5587070f8a 100644 --- a/examples/hdom-dyn-context/package.json +++ b/examples/hdom-dyn-context/package.json @@ -21,6 +21,6 @@ "process": false }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-elm/package.json b/examples/hdom-elm/package.json index 9da6294d81..768a7e5fc7 100644 --- a/examples/hdom-elm/package.json +++ b/examples/hdom-elm/package.json @@ -30,6 +30,6 @@ ] }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-inner-html/package.json b/examples/hdom-inner-html/package.json index 7ee106a877..60f0ded518 100644 --- a/examples/hdom-inner-html/package.json +++ b/examples/hdom-inner-html/package.json @@ -20,6 +20,6 @@ "process": false }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-local-render/package.json b/examples/hdom-local-render/package.json index a4a5583045..a6c7837e8f 100644 --- a/examples/hdom-local-render/package.json +++ b/examples/hdom-local-render/package.json @@ -22,6 +22,6 @@ "process": false }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-localstate/package.json b/examples/hdom-localstate/package.json index 76628f6f58..d7a7c63e0c 100644 --- a/examples/hdom-localstate/package.json +++ b/examples/hdom-localstate/package.json @@ -21,6 +21,6 @@ "process": false }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-skip-nested/package.json b/examples/hdom-skip-nested/package.json index 2c47a17602..007ef9a803 100644 --- a/examples/hdom-skip-nested/package.json +++ b/examples/hdom-skip-nested/package.json @@ -20,6 +20,6 @@ "process": false }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-skip/package.json b/examples/hdom-skip/package.json index 8b931e11b0..36716a2c30 100644 --- a/examples/hdom-skip/package.json +++ b/examples/hdom-skip/package.json @@ -20,6 +20,6 @@ "process": false }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-theme-adr-0003/package.json b/examples/hdom-theme-adr-0003/package.json index 974ce7691a..831ba336f2 100644 --- a/examples/hdom-theme-adr-0003/package.json +++ b/examples/hdom-theme-adr-0003/package.json @@ -22,6 +22,6 @@ "process": false }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-toggle/package.json b/examples/hdom-toggle/package.json index eeac50417c..f156045aa4 100644 --- a/examples/hdom-toggle/package.json +++ b/examples/hdom-toggle/package.json @@ -25,6 +25,6 @@ "screenshot": "examples/hdom-toggle.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hdom-vscroller/package.json b/examples/hdom-vscroller/package.json index ef2cd7b870..9170e5dfd6 100644 --- a/examples/hdom-vscroller/package.json +++ b/examples/hdom-vscroller/package.json @@ -22,6 +22,6 @@ "process": false }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hiccup-canvas-arcs/package.json b/examples/hiccup-canvas-arcs/package.json index 81806d8242..9e9f873c63 100644 --- a/examples/hiccup-canvas-arcs/package.json +++ b/examples/hiccup-canvas-arcs/package.json @@ -31,6 +31,6 @@ "screenshot": "examples/hiccup-canvas-arcs.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/hydrate-basics/package.json b/examples/hydrate-basics/package.json index e86c7b32f1..66fc4993df 100644 --- a/examples/hydrate-basics/package.json +++ b/examples/hydrate-basics/package.json @@ -30,6 +30,6 @@ ] }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/imgui-basics/package.json b/examples/imgui-basics/package.json index 2828d70a68..0dd80ff65e 100644 --- a/examples/imgui-basics/package.json +++ b/examples/imgui-basics/package.json @@ -33,6 +33,6 @@ "screenshot": "examples/imgui-basics.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/imgui/package.json b/examples/imgui/package.json index e3bec5feb4..898e54fb6e 100644 --- a/examples/imgui/package.json +++ b/examples/imgui/package.json @@ -49,6 +49,6 @@ "screenshot": "imgui/imgui-all.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/interceptor-basics/package.json b/examples/interceptor-basics/package.json index 06edf0b8c5..0f91e70844 100644 --- a/examples/interceptor-basics/package.json +++ b/examples/interceptor-basics/package.json @@ -28,6 +28,6 @@ ] }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/interceptor-basics2/package.json b/examples/interceptor-basics2/package.json index c6bfb23184..3c25da83a4 100644 --- a/examples/interceptor-basics2/package.json +++ b/examples/interceptor-basics2/package.json @@ -30,6 +30,6 @@ ] }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/iso-plasma/package.json b/examples/iso-plasma/package.json index d36945a687..34a624bb57 100644 --- a/examples/iso-plasma/package.json +++ b/examples/iso-plasma/package.json @@ -39,6 +39,6 @@ "screenshot": "geom/geom-isoline.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/json-components/package.json b/examples/json-components/package.json index 8577150eb4..09e68958a5 100644 --- a/examples/json-components/package.json +++ b/examples/json-components/package.json @@ -25,6 +25,6 @@ "screenshot": "examples/json-components.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/login-form/package.json b/examples/login-form/package.json index c89545a251..d07f9273b8 100644 --- a/examples/login-form/package.json +++ b/examples/login-form/package.json @@ -26,6 +26,6 @@ "readme": true }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/markdown/package.json b/examples/markdown/package.json index 5dbfaca078..ec12e8ddc2 100644 --- a/examples/markdown/package.json +++ b/examples/markdown/package.json @@ -33,6 +33,6 @@ "screenshot": "examples/markdown-parser.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/multitouch/package.json b/examples/multitouch/package.json index 2ba3cfdfbe..265d395658 100644 --- a/examples/multitouch/package.json +++ b/examples/multitouch/package.json @@ -33,6 +33,6 @@ ] }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/parse-playground/package.json b/examples/parse-playground/package.json index f856b32fc2..6499ce5b7b 100644 --- a/examples/parse-playground/package.json +++ b/examples/parse-playground/package.json @@ -45,6 +45,6 @@ "screenshot": "examples/parse-playground.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/pixel-basics/package.json b/examples/pixel-basics/package.json index 40ceb65914..ba03d5bdce 100644 --- a/examples/pixel-basics/package.json +++ b/examples/pixel-basics/package.json @@ -25,6 +25,6 @@ "screenshot": "pixel/pixel-basics.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/poisson-circles/package.json b/examples/poisson-circles/package.json index dbca07105f..28eb8d83eb 100644 --- a/examples/poisson-circles/package.json +++ b/examples/poisson-circles/package.json @@ -31,6 +31,6 @@ "screenshot": "poisson/poisson.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/poly-spline/package.json b/examples/poly-spline/package.json index 3d057db840..697e738508 100644 --- a/examples/poly-spline/package.json +++ b/examples/poly-spline/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/poly-spline.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/porter-duff/package.json b/examples/porter-duff/package.json index 032a092efe..6c25da6578 100644 --- a/examples/porter-duff/package.json +++ b/examples/porter-duff/package.json @@ -25,6 +25,6 @@ "screenshot": "porter-duff/porter-duff2.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/ramp-synth/package.json b/examples/ramp-synth/package.json index 688d0db6fc..0a951ad3ca 100644 --- a/examples/ramp-synth/package.json +++ b/examples/ramp-synth/package.json @@ -36,6 +36,6 @@ "screenshot": "examples/ramp-synth.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/rdom-basics/package.json b/examples/rdom-basics/package.json index c75f2fd11c..a70d3ec4a2 100644 --- a/examples/rdom-basics/package.json +++ b/examples/rdom-basics/package.json @@ -32,6 +32,6 @@ ] }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/rdom-dnd/package.json b/examples/rdom-dnd/package.json index c5f8c5f9e2..f547effbc1 100644 --- a/examples/rdom-dnd/package.json +++ b/examples/rdom-dnd/package.json @@ -31,6 +31,6 @@ "screenshot": "examples/rdom-dnd.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/rdom-lissajous/package.json b/examples/rdom-lissajous/package.json index 24e826c470..19c84faaa8 100644 --- a/examples/rdom-lissajous/package.json +++ b/examples/rdom-lissajous/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/rdom-lissajous.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/rdom-search-docs/package.json b/examples/rdom-search-docs/package.json index 1ea1c5cd7c..3dbfbfa141 100644 --- a/examples/rdom-search-docs/package.json +++ b/examples/rdom-search-docs/package.json @@ -37,6 +37,6 @@ ] }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/rdom-svg-nodes/package.json b/examples/rdom-svg-nodes/package.json index d38f534bec..4dde7a3066 100644 --- a/examples/rdom-svg-nodes/package.json +++ b/examples/rdom-svg-nodes/package.json @@ -34,6 +34,6 @@ "screenshot": "examples/rdom-svg-nodes.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/rotating-voronoi/package.json b/examples/rotating-voronoi/package.json index f38e222e45..d2344d9fd6 100644 --- a/examples/rotating-voronoi/package.json +++ b/examples/rotating-voronoi/package.json @@ -54,6 +54,6 @@ "screenshot": "examples/rotating-voronoi.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/router-basics/package.json b/examples/router-basics/package.json index 719441ecc9..1cf2799547 100644 --- a/examples/router-basics/package.json +++ b/examples/router-basics/package.json @@ -34,6 +34,6 @@ "screenshot": "examples/router-basics.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/rstream-dataflow/package.json b/examples/rstream-dataflow/package.json index 7664aa59b3..eb46309ab9 100644 --- a/examples/rstream-dataflow/package.json +++ b/examples/rstream-dataflow/package.json @@ -35,6 +35,6 @@ ] }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/rstream-event-loop/package.json b/examples/rstream-event-loop/package.json index 6ed0bfc216..0a5b24efb2 100644 --- a/examples/rstream-event-loop/package.json +++ b/examples/rstream-event-loop/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/rstream-event-loop.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/rstream-grid/package.json b/examples/rstream-grid/package.json index fd954bf98b..ed75d58268 100644 --- a/examples/rstream-grid/package.json +++ b/examples/rstream-grid/package.json @@ -45,6 +45,6 @@ "screenshot": "examples/rstream-grid.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/rstream-hdom/package.json b/examples/rstream-hdom/package.json index 80a24e5e86..770f7a3f65 100644 --- a/examples/rstream-hdom/package.json +++ b/examples/rstream-hdom/package.json @@ -23,6 +23,6 @@ "process": false }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/rstream-spreadsheet/package.json b/examples/rstream-spreadsheet/package.json index da8f566c64..fa8971f053 100644 --- a/examples/rstream-spreadsheet/package.json +++ b/examples/rstream-spreadsheet/package.json @@ -48,6 +48,6 @@ "screenshot": "examples/rstream-spreadsheet.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/scenegraph-image/package.json b/examples/scenegraph-image/package.json index 4f2e5ef122..8be1b607cc 100644 --- a/examples/scenegraph-image/package.json +++ b/examples/scenegraph-image/package.json @@ -41,6 +41,6 @@ "screenshot": "examples/scenegraph-image.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/scenegraph/package.json b/examples/scenegraph/package.json index 53c4ab3174..e3813592c9 100644 --- a/examples/scenegraph/package.json +++ b/examples/scenegraph/package.json @@ -39,6 +39,6 @@ "screenshot": "examples/scenegraph.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/shader-ast-canvas2d/package.json b/examples/shader-ast-canvas2d/package.json index 2493cad8e8..1fe2b26de9 100644 --- a/examples/shader-ast-canvas2d/package.json +++ b/examples/shader-ast-canvas2d/package.json @@ -27,6 +27,6 @@ "screenshot": "shader-ast/shader-ast-01.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/shader-ast-evo/package.json b/examples/shader-ast-evo/package.json index fd4b41d46f..acbe7b2e6d 100644 --- a/examples/shader-ast-evo/package.json +++ b/examples/shader-ast-evo/package.json @@ -37,6 +37,6 @@ "screenshot": "examples/shader-ast-evo.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/shader-ast-noise/package.json b/examples/shader-ast-noise/package.json index 3c12fe13de..855ff1f5a9 100644 --- a/examples/shader-ast-noise/package.json +++ b/examples/shader-ast-noise/package.json @@ -28,6 +28,6 @@ "screenshot": "examples/shader-ast-noise.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/shader-ast-raymarch/package.json b/examples/shader-ast-raymarch/package.json index f57517b8dc..d59e020cb5 100644 --- a/examples/shader-ast-raymarch/package.json +++ b/examples/shader-ast-raymarch/package.json @@ -28,6 +28,6 @@ "screenshot": "shader-ast/shader-ast-raymarch.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/shader-ast-sdf2d/package.json b/examples/shader-ast-sdf2d/package.json index d4a0098763..d9fa361c35 100644 --- a/examples/shader-ast-sdf2d/package.json +++ b/examples/shader-ast-sdf2d/package.json @@ -28,6 +28,6 @@ "screenshot": "examples/shader-ast-sdf2d.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/shader-ast-tunnel/package.json b/examples/shader-ast-tunnel/package.json index 479077dc25..931ab2c522 100644 --- a/examples/shader-ast-tunnel/package.json +++ b/examples/shader-ast-tunnel/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/shader-ast-tunnel.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/shader-graph/package.json b/examples/shader-graph/package.json index eaf36b6330..9ad72e892c 100644 --- a/examples/shader-graph/package.json +++ b/examples/shader-graph/package.json @@ -39,6 +39,6 @@ "screenshot": "examples/shader-graph.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/soa-ecs/package.json b/examples/soa-ecs/package.json index 124c699ff2..ef03d05c02 100644 --- a/examples/soa-ecs/package.json +++ b/examples/soa-ecs/package.json @@ -44,6 +44,6 @@ "screenshot": "examples/soa-ecs-100k.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/stratified-grid/package.json b/examples/stratified-grid/package.json index ee1e299474..b6fd3ad308 100644 --- a/examples/stratified-grid/package.json +++ b/examples/stratified-grid/package.json @@ -31,6 +31,6 @@ "screenshot": "poisson/stratified-grid.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/svg-barchart/package.json b/examples/svg-barchart/package.json index d2c5fd4a6b..3e2b37659c 100644 --- a/examples/svg-barchart/package.json +++ b/examples/svg-barchart/package.json @@ -26,6 +26,6 @@ "screenshot": "examples/svg-barchart.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/svg-particles/package.json b/examples/svg-particles/package.json index c907f23b20..c95e340379 100644 --- a/examples/svg-particles/package.json +++ b/examples/svg-particles/package.json @@ -23,6 +23,6 @@ }, "thi.ng": {}, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/svg-waveform/package.json b/examples/svg-waveform/package.json index 1f2af98afb..0203276fc1 100644 --- a/examples/svg-waveform/package.json +++ b/examples/svg-waveform/package.json @@ -36,6 +36,6 @@ "screenshot": "examples/svg-waveform.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/talk-slides/package.json b/examples/talk-slides/package.json index 5b55cf367b..c7154114c3 100644 --- a/examples/talk-slides/package.json +++ b/examples/talk-slides/package.json @@ -33,6 +33,6 @@ "screenshot": "examples/talk-slides.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/text-canvas/package.json b/examples/text-canvas/package.json index 6a1524fc96..4deb3a7fca 100644 --- a/examples/text-canvas/package.json +++ b/examples/text-canvas/package.json @@ -28,6 +28,6 @@ "screenshot": "examples/text-canvas.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/todo-list/package.json b/examples/todo-list/package.json index 839206a090..2b2513e021 100644 --- a/examples/todo-list/package.json +++ b/examples/todo-list/package.json @@ -32,6 +32,6 @@ "screenshot": "examples/todo-list.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/transducers-hdom/package.json b/examples/transducers-hdom/package.json index ae025221cc..019dd165c7 100644 --- a/examples/transducers-hdom/package.json +++ b/examples/transducers-hdom/package.json @@ -28,6 +28,6 @@ ] }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/triple-query/package.json b/examples/triple-query/package.json index a8b0069be1..c74f2488cc 100644 --- a/examples/triple-query/package.json +++ b/examples/triple-query/package.json @@ -41,6 +41,6 @@ "screenshot": "examples/triple-query.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/webgl-cube/package.json b/examples/webgl-cube/package.json index 5f09b4dff6..d50b96b2f4 100644 --- a/examples/webgl-cube/package.json +++ b/examples/webgl-cube/package.json @@ -36,6 +36,6 @@ "screenshot": "examples/webgl-cube.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/webgl-cubemap/package.json b/examples/webgl-cubemap/package.json index 7b72b4c5f1..01153c5dfd 100644 --- a/examples/webgl-cubemap/package.json +++ b/examples/webgl-cubemap/package.json @@ -37,6 +37,6 @@ "screenshot": "examples/webgl-cubemap.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/webgl-grid/package.json b/examples/webgl-grid/package.json index 85c5a3d052..111b3fc0af 100644 --- a/examples/webgl-grid/package.json +++ b/examples/webgl-grid/package.json @@ -39,6 +39,6 @@ "screenshot": "examples/webgl-grid.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/webgl-msdf/package.json b/examples/webgl-msdf/package.json index 5daed837d1..c8f442e2e1 100644 --- a/examples/webgl-msdf/package.json +++ b/examples/webgl-msdf/package.json @@ -46,6 +46,6 @@ "screenshot": "examples/webgl-msdf.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/webgl-multipass/package.json b/examples/webgl-multipass/package.json index 118b9a94df..6f7c327361 100644 --- a/examples/webgl-multipass/package.json +++ b/examples/webgl-multipass/package.json @@ -26,6 +26,6 @@ "readme": true }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/webgl-shadertoy/package.json b/examples/webgl-shadertoy/package.json index 78a539290a..2c0549e09a 100644 --- a/examples/webgl-shadertoy/package.json +++ b/examples/webgl-shadertoy/package.json @@ -27,6 +27,6 @@ "screenshot": "examples/webgl-shadertoy.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/webgl-ssao/package.json b/examples/webgl-ssao/package.json index 8550a7b208..096582760e 100644 --- a/examples/webgl-ssao/package.json +++ b/examples/webgl-ssao/package.json @@ -40,6 +40,6 @@ "screenshot": "examples/webgl-ssao.jpg" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/webgl-ssao/src/index.ts b/examples/webgl-ssao/src/index.ts index 1e6b1154ba..4875ae4e7c 100644 --- a/examples/webgl-ssao/src/index.ts +++ b/examples/webgl-ssao/src/index.ts @@ -202,10 +202,4 @@ const app = () => { ]; }; -const cancel = start(app()); - -if (import.meta.hot) { - import.meta.hot.accept(() => { - cancel(); - }); -} +start(app()); diff --git a/examples/wolfram/package.json b/examples/wolfram/package.json index 2c6001679b..e556328769 100644 --- a/examples/wolfram/package.json +++ b/examples/wolfram/package.json @@ -34,6 +34,6 @@ "screenshot": "examples/wolfram.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/examples/xml-converter/package.json b/examples/xml-converter/package.json index 3010cc8163..ec88574fab 100644 --- a/examples/xml-converter/package.json +++ b/examples/xml-converter/package.json @@ -38,6 +38,6 @@ "screenshot": "examples/xml-converter.png" }, "devDependencies": { - "@types/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.2" } } diff --git a/package.json b/package.json index 11449546f7..5513002ae6 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "@microsoft/api-extractor": "^7.12.0", "@snowpack/plugin-typescript": "^1.1.1", "@snowpack/plugin-webpack": "^2.1.2", - "@types/snowpack-env": "^2.3.2", + "@thi.ng/snowpack-env": "^2.3.2", "benchmark": "^2.1.4", "file-loader": "^6.2.0", "gzip-size": "^6.0.0", diff --git a/yarn.lock b/yarn.lock index c46d4c5585..8ab9ebf4b8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2079,6 +2079,11 @@ dependencies: defer-to-connect "^2.0.0" +"@thi.ng/snowpack-env@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@thi.ng/snowpack-env/-/snowpack-env-2.3.2.tgz#d1b68b696b140e2da63f992d64b4345d4c2a86d4" + integrity sha512-K1r30Txjl0iHOUlWWeGbKFAaBJsKnAiAQzDLKlqCto329kepfjgzHdfLglpc03RZ8hjTKqwY7sqDNBMgIykmgQ== + "@types/argparse@1.0.38": version "1.0.38" resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9" @@ -2200,11 +2205,6 @@ dependencies: "@types/node" "*" -"@types/snowpack-env@^2.3.2": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@types/snowpack-env/-/snowpack-env-2.3.2.tgz#2b7f586ba1de82d1866ecdf9b6792341a7e8d4f4" - integrity sha512-lBChKW/gK0bI5tC+00BqMgOVwJkr+da7+DJasCxgscKgzfJVm7aZgOl84UCDz6tE5bNgo6c8jqQyqW5uxT3KEw== - "@ungap/promise-all-settled@1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" From 22d1ccae8ef80b827d27b4003fe1168b38654333 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 13:33:53 +0000 Subject: [PATCH 027/107] build: update make-example script --- scripts/make-example | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/make-example b/scripts/make-example index ef95a00b10..43cd95abfc 100755 --- a/scripts/make-example +++ b/scripts/make-example @@ -10,6 +10,8 @@ mkdir -p "$MODULE" echo "creating /src folder..." mkdir -p "$MODULE"/src cat << EOF > "$MODULE"/src/index.ts +/// + import { \$compile } from "@thi.ng/rdom"; \$compile(["div", {}, "hello"]).mount(document.getElementById("app")!); @@ -83,8 +85,12 @@ cat << EOF > "$MODULE"/package.json "start": "../../node_modules/.bin/snowpack dev", "build": "../../node_modules/.bin/snowpack build" }, + "devDependencies": { + "@thi.ng/snowpack-env": "^2.3.2" + }, "dependencies": { - "@thi.ng/api": "latest" + "@thi.ng/api": "latest", + "@thi.ng/rdom": "latest", }, "browserslist": [ "last 3 Chrome versions" From fe7dacdac607d2910d8c53431f59dba70ca1bb8d Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 13:36:08 +0000 Subject: [PATCH 028/107] docs: update WIP package list in main readme --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 111cc9db19..b5291e9c0f 100644 --- a/README.md +++ b/README.md @@ -119,11 +119,12 @@ to update your local version. ## Projects - +feature or `develop` branches) +- [@thi.ng/fuzzy](https://github.com/thi-ng/umbrella/tree/feature/fuzzy/packages/fuzzy) - Fuzzy logic ops & rule inference engine ### Fundamentals | Project | Version | Changelog | Description | From 60030dd9a5ceb02d58ad89766e14f80019f6f72f Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 13:54:43 +0000 Subject: [PATCH 029/107] perf(fuzzy): update defuzz() - skip preparation of rule outputs which aren't requested --- packages/fuzzy/src/defuzz.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/fuzzy/src/defuzz.ts b/packages/fuzzy/src/defuzz.ts index d52c0eb7cd..827a019b5a 100644 --- a/packages/fuzzy/src/defuzz.ts +++ b/packages/fuzzy/src/defuzz.ts @@ -33,7 +33,9 @@ export const defuzz = ( const weight = (acc || 0) * r.weight; const terms: IObjectOf = {}; for (let id in r.then) { - terms[id] = weightedTerm(outs[id].terms[r.then[id]], weight); + if (outs[id]) { + terms[id] = weightedTerm(outs[id].terms[r.then[id]], weight); + } } return terms; }); From 0ffc9d01f9bd40ba616d1f59e3ced74fa7c0dc7f Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 13:58:53 +0000 Subject: [PATCH 030/107] feat(fuzzy): add evaluate() --- packages/fuzzy/src/var.ts | 46 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/packages/fuzzy/src/var.ts b/packages/fuzzy/src/var.ts index e4b6a59f44..f398f88c61 100644 --- a/packages/fuzzy/src/var.ts +++ b/packages/fuzzy/src/var.ts @@ -1,3 +1,4 @@ +import type { IObjectOf } from "@thi.ng/api"; import type { LVar } from "./api"; /** @@ -28,9 +29,23 @@ export const variable = ( }); /** - * Takes an LVar and a domain value. Returns the ID of the var's term which + * Takes an LVar and a domain value `x`. Returns the ID of the var's term which * produces the largest value for given `x`. * + * @example + * ```ts + * // temperature sets (in celsius) + * const temp = variable([-20, 40], { + * freezing: negate(sigmoid(0, 2)), + * cold: trapezoid(0, 4, 16, 20), + * warm: trapezoid(15, 20, 25, 30), + * hot: sigmoid(30, 2) + * }); + * + * classify(temp, 28) + * // "warm" + * ``` + * * @param var * @param x */ @@ -46,3 +61,32 @@ export const classify = ({ terms }: LVar, x: number) => { } return maxID; }; + +/** + * Takes an LVar and a domain value `x`, evaluates all of var's terms for given + * `x` and returns object of results. + * + * @example + * ```ts + * // temperature sets (in celsius) + * const temp = variable([-20, 40], { + * freezing: negate(sigmoid(0, 2)), + * cold: trapezoid(0, 4, 16, 20), + * warm: trapezoid(15, 20, 25, 30), + * hot: sigmoid(30, 2) + * }); + * + * evaluate(temp, 28) + * // { freezing: 0, cold: 0, warm: 0.4, hot: 0.01798620996209156 } + * ``` + * + * @param var + * @param x + */ +export const evaluate = ({ terms }: LVar, x: number) => { + const res: IObjectOf = {}; + for (let id in terms) { + res[id] = terms[id](x); + } + return res; +}; From 5bf8f0c01541afeb367eff21cb45118a1b62549a Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 18:18:26 +0000 Subject: [PATCH 031/107] feat(fuzzy): add shapes, strongAnd(), update combineTerms() --- packages/fuzzy/src/defuzz.ts | 18 +++++++++++------- packages/fuzzy/src/rules.ts | 5 ++++- packages/fuzzy/src/shapes.ts | 27 +++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 8 deletions(-) diff --git a/packages/fuzzy/src/defuzz.ts b/packages/fuzzy/src/defuzz.ts index 827a019b5a..9239ea383b 100644 --- a/packages/fuzzy/src/defuzz.ts +++ b/packages/fuzzy/src/defuzz.ts @@ -1,6 +1,7 @@ import type { FnN2, IObjectOf, Nullable } from "@thi.ng/api"; import { snormMax } from "@thi.ng/math"; import type { DefuzzStrategy, FuzzyFn, LVar, Rule } from "./api"; +import { weighted } from "./shapes"; /** * Takes an object of input {@link variable}s, an object of output variable, @@ -34,7 +35,7 @@ export const defuzz = ( const terms: IObjectOf = {}; for (let id in r.then) { if (outs[id]) { - terms[id] = weightedTerm(outs[id].terms[r.then[id]], weight); + terms[id] = weighted(outs[id].terms[r.then[id]], weight); } } return terms; @@ -50,9 +51,6 @@ export const defuzz = ( return res; }; -const weightedTerm = (fn: FuzzyFn, weight: number): FuzzyFn => (x) => - weight * fn(x); - export interface COGOpts { combine: FnN2; n: number; @@ -90,11 +88,17 @@ export const cog = (opts?: Partial): DefuzzStrategy => { /** * Takes an array of fuzzy set term functions, evaluates each with input `x` * (skipping any nullish terms) and combines results using `op` (usually an - * S-norm / T-conorm operation, e.g. `max(a,b)`). + * S-norm / T-conorm operation, e.g. `max(a,b)`). Returns `initial` if no valid + * terms were processed (e.g. due to empty array or null values) * * @param op * @param terms * @param x + * @param initial - initial value */ -export const combineTerms = (op: FnN2, terms: Nullable[], x: number) => - terms.reduce((acc, term) => (term ? op(acc, term(x)) : acc), 0); +export const combineTerms = ( + op: FnN2, + terms: Nullable[], + x: number, + initial = 0 +) => terms.reduce((acc, term) => (term ? op(acc, term(x)) : acc), initial); diff --git a/packages/fuzzy/src/rules.ts b/packages/fuzzy/src/rules.ts index 0194815abc..02dbce37a6 100644 --- a/packages/fuzzy/src/rules.ts +++ b/packages/fuzzy/src/rules.ts @@ -1,5 +1,5 @@ import type { FnN2 } from "@thi.ng/api"; -import { snormMax, tnormMin } from "@thi.ng/math"; +import { snormMax, tnormMin, tnormProduct } from "@thi.ng/math"; import type { Rule, RuleFn, RuleInputs, RuleOutputs } from "./api"; const rule = ( @@ -17,5 +17,8 @@ const rule = ( export const and: RuleFn = ($if, $then, weight) => rule(tnormMin, $if, $then, weight); +export const strongAnd: RuleFn = ($if, $then, weight) => + rule(tnormProduct, $if, $then, weight); + export const or: RuleFn = ($if, $then, weight) => rule(snormMax, $if, $then, weight); diff --git a/packages/fuzzy/src/shapes.ts b/packages/fuzzy/src/shapes.ts index 915cda1497..49f319eb83 100644 --- a/packages/fuzzy/src/shapes.ts +++ b/packages/fuzzy/src/shapes.ts @@ -95,3 +95,30 @@ export const gaussian: FnU2 = (bias, sigma) => (x) => * @param fn */ export const negate: FnU = (fn) => (x) => 1 - fn(x); + +/** + * Inverse of {@link ramp}, i.e. a falling slope from `a` -> `b`. + * + * @param a + * @param b + */ +export const invRamp: FnU2 = (a, b) => negate(ramp(a, b)); + +/** + * Inverse of {@link sigmoid}. + * + * @param bias + * @param steep + */ +export const invSigmoid: FnU2 = (bias, steep) => + negate(sigmoid(bias, steep)); + +/** + * Higher-order function: Takes an existing {@link FuzzyFn} `fn` and `weight` + * factor. Returns new function which computes: `weight * fn(x)`. + * + * @param fn + * @param weight + */ +export const weighted = (fn: FuzzyFn, weight: number): FuzzyFn => (x) => + weight * fn(x); From b39248f359aa0148ff72c484d78175f8f435fe97 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 18:23:25 +0000 Subject: [PATCH 032/107] feat(fuzzy): add strict arg for classify(), update docs --- packages/fuzzy/src/var.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/fuzzy/src/var.ts b/packages/fuzzy/src/var.ts index f398f88c61..6f1bff74b4 100644 --- a/packages/fuzzy/src/var.ts +++ b/packages/fuzzy/src/var.ts @@ -10,7 +10,7 @@ import type { LVar } from "./api"; * ```ts * // temperature sets (in celsius) * const temp = variable([-20, 40], { - * freezing: negate(sigmoid(0, 2)), + * freezing: invSigmoid(0, 2), * cold: trapezoid(0, 4, 16, 20), * warm: trapezoid(15, 20, 25, 30), * hot: sigmoid(30, 2) @@ -30,13 +30,15 @@ export const variable = ( /** * Takes an LVar and a domain value `x`. Returns the ID of the var's term which - * produces the largest value for given `x`. + * produces the largest value for given `x`. If `strict` is enabled (default), + * that max value MUST also be > 0.5 to be considered. Function returns + * undefined if classification failed. * * @example * ```ts * // temperature sets (in celsius) * const temp = variable([-20, 40], { - * freezing: negate(sigmoid(0, 2)), + * freezing: invSigmoid(0, 2), * cold: trapezoid(0, 4, 16, 20), * warm: trapezoid(15, 20, 25, 30), * hot: sigmoid(30, 2) @@ -48,13 +50,14 @@ export const variable = ( * * @param var * @param x + * @param strict */ -export const classify = ({ terms }: LVar, x: number) => { +export const classify = ({ terms }: LVar, x: number, strict = true) => { let max = -Infinity; let maxID: string | undefined; for (let id in terms) { const t = terms[id](x); - if (t > max) { + if (t > max && (!strict || t > 0.5)) { max = t; maxID = id; } @@ -70,7 +73,7 @@ export const classify = ({ terms }: LVar, x: number) => { * ```ts * // temperature sets (in celsius) * const temp = variable([-20, 40], { - * freezing: negate(sigmoid(0, 2)), + * freezing: invSigmoid(0, 2), * cold: trapezoid(0, 4, 16, 20), * warm: trapezoid(15, 20, 25, 30), * hot: sigmoid(30, 2) From 87b7b5568457125f8de33b6b60e068e34e32911f Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 18:24:06 +0000 Subject: [PATCH 033/107] test(fuzzy): add initial tests --- packages/fuzzy/test/index.ts | 54 +++++++++++++++++++++++++++++++ packages/fuzzy/test/tsconfig.json | 11 +++++++ 2 files changed, 65 insertions(+) create mode 100644 packages/fuzzy/test/index.ts create mode 100644 packages/fuzzy/test/tsconfig.json diff --git a/packages/fuzzy/test/index.ts b/packages/fuzzy/test/index.ts new file mode 100644 index 0000000000..43c265abc3 --- /dev/null +++ b/packages/fuzzy/test/index.ts @@ -0,0 +1,54 @@ +import type { IObjectOf } from "@thi.ng/api"; +import { roundTo } from "@thi.ng/math"; +import * as assert from "assert"; +import { + classify, + evaluate, + invSigmoid, + sigmoid, + trapezoid, + variable, +} from "../src"; + +const roundVals = (obj: IObjectOf) => { + for (let k in obj) obj[k] = roundTo(obj[k], 1e-3); + return obj; +}; + +const temp = variable([-20, 40], { + freezing: invSigmoid(0.01, 2), + cold: trapezoid(0, 4, 16, 20), + warm: trapezoid(15, 20, 25, 30), + hot: sigmoid(29.99, 2), +}); + +describe("lvar", () => { + it("eval", () => { + assert.deepStrictEqual( + roundVals(evaluate(temp, 18)), + roundVals({ + freezing: 0, + cold: 0.5, + warm: 0.6, + hot: 0, + }) + ); + assert.deepStrictEqual( + roundVals(evaluate(temp, 28)), + roundVals({ + freezing: 0, + cold: 0, + warm: 0.4, + hot: 0.018, + }) + ); + }); + + it("classify", () => { + assert.strictEqual(classify(temp, -1), "freezing"); + assert.strictEqual(classify(temp, 0), "freezing"); + assert.strictEqual(classify(temp, 10), "cold"); + assert.strictEqual(classify(temp, 20), "warm"); + assert.strictEqual(classify(temp, 30), "hot"); + }); +}); diff --git a/packages/fuzzy/test/tsconfig.json b/packages/fuzzy/test/tsconfig.json new file mode 100644 index 0000000000..f6e63560dd --- /dev/null +++ b/packages/fuzzy/test/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.json", + "compilerOptions": { + "outDir": "../build", + "module": "commonjs" + }, + "include": [ + "./**/*.ts", + "../src/**/*.ts" + ] +} From 75c89bd786b2a820b7d6c5ec3fe08ea4ab14c21b Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 10 Dec 2020 18:24:31 +0000 Subject: [PATCH 034/107] docs(fuzzy): update docstrings, readme --- packages/fuzzy/README.md | 72 ++++++++++++++++++++++++++++++++---- packages/fuzzy/src/api.ts | 12 ++++++ packages/fuzzy/src/rules.ts | 36 +++++++++++++++++- packages/fuzzy/tpl.readme.md | 66 +++++++++++++++++++++++++++++---- 4 files changed, 170 insertions(+), 16 deletions(-) diff --git a/packages/fuzzy/README.md b/packages/fuzzy/README.md index f018658d86..7e9b60706f 100644 --- a/packages/fuzzy/README.md +++ b/packages/fuzzy/README.md @@ -11,10 +11,14 @@ This project is part of the - [About](#about) - [Features](#features) + - [References / Further reading](#references---further-reading) - [Status](#status) - [Installation](#installation) - [Dependencies](#dependencies) - [API](#api) + - [Fuzzy set shaping functions](#fuzzy-set-shaping-functions) + - [Linguistic variables](#linguistic-variables) + - [Rule creation & inferencing](#rule-creation--inferencing) - [Authors](#authors) - [License](#license) @@ -27,20 +31,23 @@ Fuzzy logic operators & configurable rule inferencing engine. - Entirely declarative & functional approach - Fuzzy set domain shaping functions (incl. negated/inverse) - Rules with multiple inputs/outputs and arbitrary term combinators (e.g. - [T-norms](https://en.wikipedia.org/wiki/T-norm) from the - [@thi.ng/math](https://github.com/thi-ng/umbrella/tree/develop/packages/math) + [T-norms](https://en.wikipedia.org/wiki/T-norm) from + [@thi.ng/math](https://github.com/thi-ng/umbrella/blob/feature/fuzzy/packages/math/src/tnorms.ts) package). Syntax sugar for common `and`/`or` rules. - Defuzzing via customizable strategies (so far Center-of-Gravity (COG) only) and options to balance precision vs. performance. - Linguistic variable creation and term/set classification for given domain values -References: +### References / Further reading -- https://en.wikipedia.org/wiki/Fuzzy_logic -- https://en.wikipedia.org/wiki/Defuzzification -- https://en.wikipedia.org/wiki/T-Norm -- http://aisii.azc.uam.mx/mcbc/Cursos/IntCompt/Lectura15.pdf +- [Fuzzy Logic (Wikipedia)](https://en.wikipedia.org/wiki/Fuzzy_logic) +- [T-norm (Wikipedia)](https://en.wikipedia.org/wiki/T-Norm) +- [Fuzzy Logic - University of Western Australia](https://teaching.csse.uwa.edu.au/units/CITS7212/Lectures/Students/Fuzzy.pdf) +- [Introduction to Fuzzy Logic](https://www.researchgate.net/publication/267041266_Introduction_to_fuzzy_logic) +- [Defuzzification (Wikipedia)](https://en.wikipedia.org/wiki/Defuzzification) +- [Defuzzification methods](https://cse.iitkgp.ac.in/~dsamanta/courses/archive/sca/Archives/Chapter%205%20Defuzzification%20Methods.pdf) +- [Comparison of the COG Defuzzification Technique](https://arxiv.org/pdf/1612.00742.pdf) ### Status @@ -62,7 +69,7 @@ yarn add @thi.ng/fuzzy ``` -Package sizes (gzipped, pre-treeshake): CJS: 850 bytes +Package sizes (gzipped, pre-treeshake): ESM: 857 bytes / CJS: 951 bytes / UMD: 984 bytes ## Dependencies @@ -73,8 +80,57 @@ Package sizes (gzipped, pre-treeshake): CJS: 850 bytes [Generated API docs](https://docs.thi.ng/umbrella/fuzzy/) +### Fuzzy set shaping functions + +- `constant()` +- `point()` +- `ramp()` / `invRamp()` +- `triangle()` +- `trapezoid()` +- `sigmoid()` / `invSigmoid()` +- `gaussian()` +- `negate()` +- `weighted()` + TODO +### Linguistic variables + +```ts +// temperature sets (in celsius) +const temp = variable([-20, 40], { + freezing: invSigmoid(0, 2), + cold: trapezoid(0, 4, 16, 20), + warm: trapezoid(15, 20, 25, 30), + hot: sigmoid(30, 2) +}); + +evaluate(temp, 18) +// { +// freezing: 2.220446049250313e-16, +// cold: 0.5, +// warm: 0.6, +// hot: 3.7751345441365816e-11 +// } + +evaluate(temp, 28) +// { +// freezing: 0, +// cold: 0, +// warm: 0.4, +// hot: 0.01798620996209156 +// } + +classify(temp, 28) +// "warm" +``` + +### Rule creation & inferencing + +```ts +const +``` + ## Authors Karsten Schmidt diff --git a/packages/fuzzy/src/api.ts b/packages/fuzzy/src/api.ts index a75d2f5140..17ee77f063 100644 --- a/packages/fuzzy/src/api.ts +++ b/packages/fuzzy/src/api.ts @@ -26,6 +26,18 @@ export type RuleFn = ( * overall global domain. */ export interface LVar { + /** + * Value domain/interval used to evaluate (and integrate) all terms during + * {@link defuzz}. Interval is semi-open, i.e. `[min, max)` + * + * @remarks + * The domain can be smaller or larger than the actual union bounds of the + * defined sets. However, for precision and performance reasons, it's + * recommended to keep this interval as compact as possible. + */ domain: [number, number]; + /** + * Object of named fuzzy sets. + */ terms: Record; } diff --git a/packages/fuzzy/src/rules.ts b/packages/fuzzy/src/rules.ts index 02dbce37a6..99407b6d93 100644 --- a/packages/fuzzy/src/rules.ts +++ b/packages/fuzzy/src/rules.ts @@ -2,7 +2,41 @@ import type { FnN2 } from "@thi.ng/api"; import { snormMax, tnormMin, tnormProduct } from "@thi.ng/math"; import type { Rule, RuleFn, RuleInputs, RuleOutputs } from "./api"; -const rule = ( +/** + * Defines and returns a new rule object. Takes a T-norm (or S-norm) `op`, an + * object of input conditions, an object of results and optional rule `weight`. + * The `op` function is used to combine input terms. + * + * @remarks + * The input and output objects are each using LVar names as keys and respective + * var terms (their names) as values (see example). + * + * The optional rule weight (default: 1) is used by {@link defuzz} to adjust + * rule importance. + * + * Also @see {@link and}, {@link strongAnd}, {@link or} for syntax sugar. + * + * @example + * ```ts + * // given 3 LVars from a classic fuzzy logic example: + * // food, service, tip + * + * // define this rule: + * // "If the food was bad AND service poor, then a small tip only" + * // here multiply is used for strong conjunction of the food & service terms + * rule( + * (a, b) => a * b, + * { food: "bad", service: "poor" }, + * { tip: "small" } + * ) + * ``` + * + * @param op + * @param $if + * @param then + * @param weight + */ +export const rule = ( op: FnN2, $if: RuleInputs, then: RuleOutputs, diff --git a/packages/fuzzy/tpl.readme.md b/packages/fuzzy/tpl.readme.md index 91a4a04221..7aa4f95a6b 100644 --- a/packages/fuzzy/tpl.readme.md +++ b/packages/fuzzy/tpl.readme.md @@ -18,20 +18,23 @@ ${pkg.description} - Entirely declarative & functional approach - Fuzzy set domain shaping functions (incl. negated/inverse) - Rules with multiple inputs/outputs and arbitrary term combinators (e.g. - [T-norms](https://en.wikipedia.org/wiki/T-norm) from the - [@thi.ng/math](https://github.com/thi-ng/umbrella/tree/develop/packages/math) + [T-norms](https://en.wikipedia.org/wiki/T-norm) from + [@thi.ng/math](https://github.com/thi-ng/umbrella/blob/feature/fuzzy/packages/math/src/tnorms.ts) package). Syntax sugar for common `and`/`or` rules. - Defuzzing via customizable strategies (so far Center-of-Gravity (COG) only) and options to balance precision vs. performance. - Linguistic variable creation and term/set classification for given domain values -References: +### References / Further reading -- https://en.wikipedia.org/wiki/Fuzzy_logic -- https://en.wikipedia.org/wiki/Defuzzification -- https://en.wikipedia.org/wiki/T-Norm -- http://aisii.azc.uam.mx/mcbc/Cursos/IntCompt/Lectura15.pdf +- [Fuzzy Logic (Wikipedia)](https://en.wikipedia.org/wiki/Fuzzy_logic) +- [T-norm (Wikipedia)](https://en.wikipedia.org/wiki/T-Norm) +- [Fuzzy Logic - University of Western Australia](https://teaching.csse.uwa.edu.au/units/CITS7212/Lectures/Students/Fuzzy.pdf) +- [Introduction to Fuzzy Logic](https://www.researchgate.net/publication/267041266_Introduction_to_fuzzy_logic) +- [Defuzzification (Wikipedia)](https://en.wikipedia.org/wiki/Defuzzification) +- [Defuzzification methods](https://cse.iitkgp.ac.in/~dsamanta/courses/archive/sca/Archives/Chapter%205%20Defuzzification%20Methods.pdf) +- [Comparison of the COG Defuzzification Technique](https://arxiv.org/pdf/1612.00742.pdf) ${status} @@ -57,8 +60,57 @@ ${examples} ${docLink} +### Fuzzy set shaping functions + +- `constant()` +- `point()` +- `ramp()` / `invRamp()` +- `triangle()` +- `trapezoid()` +- `sigmoid()` / `invSigmoid()` +- `gaussian()` +- `negate()` +- `weighted()` + TODO +### Linguistic variables + +```ts +// temperature sets (in celsius) +const temp = variable([-20, 40], { + freezing: invSigmoid(0, 2), + cold: trapezoid(0, 4, 16, 20), + warm: trapezoid(15, 20, 25, 30), + hot: sigmoid(30, 2) +}); + +evaluate(temp, 18) +// { +// freezing: 2.220446049250313e-16, +// cold: 0.5, +// warm: 0.6, +// hot: 3.7751345441365816e-11 +// } + +evaluate(temp, 28) +// { +// freezing: 0, +// cold: 0, +// warm: 0.4, +// hot: 0.01798620996209156 +// } + +classify(temp, 28) +// "warm" +``` + +### Rule creation & inferencing + +```ts +const +``` + ## Authors ${authors} From f15d8d73df2a438d4866d57fc25fed625acd7a8a Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 13 Dec 2020 17:22:34 +0000 Subject: [PATCH 035/107] feat(fuzzy): add maxima(), compose(), restructure --- packages/fuzzy/src/cog.ts | 36 ++++++++++++++++++++ packages/fuzzy/src/combine.ts | 23 +++++++++++++ packages/fuzzy/src/defuzz.ts | 64 ++++------------------------------- packages/fuzzy/src/index.ts | 3 ++ packages/fuzzy/src/maxima.ts | 58 +++++++++++++++++++++++++++++++ packages/fuzzy/src/shapes.ts | 45 +++++++++++++++++++++++- 6 files changed, 170 insertions(+), 59 deletions(-) create mode 100644 packages/fuzzy/src/cog.ts create mode 100644 packages/fuzzy/src/combine.ts create mode 100644 packages/fuzzy/src/maxima.ts diff --git a/packages/fuzzy/src/cog.ts b/packages/fuzzy/src/cog.ts new file mode 100644 index 0000000000..c57bc7801c --- /dev/null +++ b/packages/fuzzy/src/cog.ts @@ -0,0 +1,36 @@ +import type { FnN2 } from "@thi.ng/api"; +import { snormMax } from "@thi.ng/math"; +import type { DefuzzStrategy } from "./api"; +import { combineTerms } from "./combine"; + +export interface COGOpts { + combine: FnN2; + steps: number; +} + +/** + * Higher-order function: Center of gravity defuzzing strategy, using given + * `opts` with `combine` t-norm to form the integral of evaluated terms in the + * defined domain of a single Linguistic output variable. The domain is sampled + * at `n` uniformly spaced points. + * + * @param terms + * @param domain + */ +export const cogStrategy = (opts?: Partial): DefuzzStrategy => { + const { combine, steps } = { combine: snormMax, steps: 100, ...opts }; + return (terms, [min, max]) => { + const delta = (max - min) / steps; + let sum: [number, number][] = []; + // integrate over given var's domain + // state: [x, sum(term(x))] + for (let i = min, j = 0, acc = 0; i <= max; i += delta, j++) { + acc += delta * combineTerms(combine, terms, i); + sum[j] = [i, acc]; + } + if (!sum.length) return min; + const mean = sum[sum.length - 1][1] * 0.5; + const idx = sum.findIndex((x) => x[1] > mean); + return idx > 0 ? (sum[idx - 1][0] + sum[idx][0]) * 0.5 : sum[0][0]; + }; +}; diff --git a/packages/fuzzy/src/combine.ts b/packages/fuzzy/src/combine.ts new file mode 100644 index 0000000000..55ce566790 --- /dev/null +++ b/packages/fuzzy/src/combine.ts @@ -0,0 +1,23 @@ +import type { FnN2, Nullable } from "@thi.ng/api"; +import type { FuzzyFn } from "./api"; + +/** + * Takes an array of fuzzy set {@link FuzzyFn}, evaluates each with input `x` + * (skipping any nullish terms) and combines results using `op` (usually an + * S-norm / T-conorm operation, e.g. `max(a,b)`). Returns `initial` (default: 0) + * if no valid terms were processed (e.g. due to empty array or only null values) + * + * @remarks + * Also @see {@link compose}. + * + * @param op + * @param terms + * @param x + * @param initial - initial value + */ +export const combineTerms = ( + op: FnN2, + terms: Nullable[], + x: number, + initial = 0 +) => terms.reduce((acc, term) => (term ? op(acc, term(x)) : acc), initial); diff --git a/packages/fuzzy/src/defuzz.ts b/packages/fuzzy/src/defuzz.ts index 9239ea383b..a485ca0577 100644 --- a/packages/fuzzy/src/defuzz.ts +++ b/packages/fuzzy/src/defuzz.ts @@ -1,14 +1,14 @@ -import type { FnN2, IObjectOf, Nullable } from "@thi.ng/api"; -import { snormMax } from "@thi.ng/math"; -import type { DefuzzStrategy, FuzzyFn, LVar, Rule } from "./api"; +import type { IObjectOf } from "@thi.ng/api"; +import type { FuzzyFn, LVar, Rule } from "./api"; +import { cogStrategy } from "./cog"; import { weighted } from "./shapes"; /** * Takes an object of input {@link variable}s, an object of output variable, * rule array and an object of input values. Evaluates relevant terms of input * variables in all matching rules, then combines and defuzzes them using given - * optional strategy (by default {@link cog} w/ its own default options). - * Returns object of computed output variable values. + * optional strategy (by default {@link cogStrategy} w/ its own default + * options). Returns object of computed output variable values. * * @param ins * @param outs @@ -21,7 +21,7 @@ export const defuzz = ( outs: IObjectOf, rules: Rule[], vals: IObjectOf, - strategy = cog() + strategy = cogStrategy() ) => { const ruleTerms = rules.map((r) => { let acc: number | null = null; @@ -50,55 +50,3 @@ export const defuzz = ( } return res; }; - -export interface COGOpts { - combine: FnN2; - n: number; -} - -/** - * Higher-order function: Center of gravity defuzzing strategy, using given - * `opts` with `combine` t-norm to form the integral of evaluated terms in the - * defined domain of a single Linguistic output variable. The domain is sampled - * at `n` uniformly spaced points. - * - * @param terms - * @param domain - */ -export const cog = (opts?: Partial): DefuzzStrategy => { - const { combine, n } = { combine: snormMax, n: 64, ...opts }; - return (terms, [min, max]) => { - const delta = (max - min) / n; - let sum: [number, number][] = []; - // integrate over given var's domain - // state: [x, sum(term(x))] - for (let i = min, j = 0; i < max; i += delta, j++) { - sum[j] = [ - i, - delta * combineTerms(combine, terms, i) + - (j > 0 ? sum[j - 1][1] : 0), - ]; - } - const mean = sum[n - 1][1] * 0.5; - const idx = sum.findIndex((x) => x[1] > mean); - return idx > 0 ? (sum[idx - 1][0] + sum[idx][0]) * 0.5 : sum[0][0]; - }; -}; - -/** - * Takes an array of fuzzy set term functions, evaluates each with input `x` - * (skipping any nullish terms) and combines results using `op` (usually an - * S-norm / T-conorm operation, e.g. `max(a,b)`). Returns `initial` if no valid - * terms were processed (e.g. due to empty array or null values) - * - * @param op - * @param terms - * @param x - * @param initial - initial value - */ -export const combineTerms = ( - op: FnN2, - terms: Nullable[], - x: number, - initial = 0 -) => terms.reduce((acc, term) => (term ? op(acc, term(x)) : acc), initial); diff --git a/packages/fuzzy/src/index.ts b/packages/fuzzy/src/index.ts index 912e8c68de..8dadd6aa7b 100644 --- a/packages/fuzzy/src/index.ts +++ b/packages/fuzzy/src/index.ts @@ -1,5 +1,8 @@ export * from "./api"; +export * from "./cog"; +export * from "./combine"; export * from "./defuzz"; +export * from "./maxima"; export * from "./rules"; export * from "./shapes"; export * from "./var"; diff --git a/packages/fuzzy/src/maxima.ts b/packages/fuzzy/src/maxima.ts new file mode 100644 index 0000000000..c4e90f3b3f --- /dev/null +++ b/packages/fuzzy/src/maxima.ts @@ -0,0 +1,58 @@ +import type { FnN2 } from "@thi.ng/api"; +import { EPS, eqDelta, snormMax } from "@thi.ng/math"; +import type { DefuzzStrategy } from "./api"; +import { combineTerms } from "./combine"; + +export interface MaximaOpts { + mode: "first" | "last" | "mean"; + combine: FnN2; + steps: number; + eps: number; +} + +export const maximaStrategy = (opts?: Partial): DefuzzStrategy => ( + terms, + [min, max] +) => { + const { mode, combine, steps, eps } = { + mode: "first", + combine: snormMax, + steps: 100, + eps: EPS, + ...opts, + }; + const delta = (max - min) / steps; + let peak = -Infinity; + let peakPos = min; + const $ = (i: number) => { + const x = combineTerms(combine, terms, i); + if (x > peak) { + peak = x; + peakPos = i; + } + }; + switch (mode) { + case "mean": { + let n = 1; + for (let i = min; i <= max; i += delta) { + const x = combineTerms(combine, terms, i); + if (eqDelta(x, peak, eps)) { + peakPos += i; + n++; + } else if (x > peak) { + peak = x; + peakPos = i; + n = 1; + } + } + return peakPos / n; + } + case "last": + for (let i = max; i >= min; i -= delta) $(i); + break; + case "first": + default: + for (let i = min; i <= max; i += delta) $(i); + } + return peakPos; +}; diff --git a/packages/fuzzy/src/shapes.ts b/packages/fuzzy/src/shapes.ts index 49f319eb83..97013b6cd0 100644 --- a/packages/fuzzy/src/shapes.ts +++ b/packages/fuzzy/src/shapes.ts @@ -1,4 +1,4 @@ -import type { FnU, FnU2, FnU3, FnU4 } from "@thi.ng/api"; +import type { FnN2, FnU, FnU2, FnU3, FnU4 } from "@thi.ng/api"; import { EPS, eqDelta, @@ -8,6 +8,7 @@ import { sigmoid as $sigmoid, } from "@thi.ng/math"; import type { FuzzyFn } from "./api"; +import { combineTerms } from "./combine"; /** * HOF {@link FuzzyFn} always yielding given `x` (should be in [0,1] @@ -122,3 +123,45 @@ export const invSigmoid: FnU2 = (bias, steep) => */ export const weighted = (fn: FuzzyFn, weight: number): FuzzyFn => (x) => weight * fn(x); + +/** + * Complex shape generator. Takes a T-norm (or S-norm) as reduction function + * `op` and any number of {@link FuzzyFn}s. Returns new `FuzzyFn` which + * evaluates all given `fns` and combines/reduces their results with `op`. + * + * @remarks + * Depending on the use case and choice of `op`, the `initial` value should + * either be set to: + * + * - T-norm like function: 1.0 + * - S-norm like function: 0.0 + * + * References: + * - https://www.desmos.com/calculator/pnq6kqzfb5 (interactive graph) + * - https://en.wikipedia.org/wiki/T-norm + * - https://github.com/thi-ng/umbrella/blob/develop/packages/math/src/tnorms.ts + * + * @example + * ```ts + * // M-like shape w/ peaks at 3 & 5 + * const M = compose( + * Math.max, + * 0, + * triangle(1,3,5), + * triangle(3,5,7) + * ) + * + * M(3) // 1 + * M(4) // 0.5 + * M(5) // 1 + * ``` + * + * @param op + * @param initial + * @param fns + */ +export const compose = ( + op: FnN2, + initial: number, + ...fns: FuzzyFn[] +): FuzzyFn => (x) => combineTerms(op, fns, x, initial); From 38bd40e1595e318c6472a526e03c8c8a06ebf396 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 13 Dec 2020 22:03:29 +0000 Subject: [PATCH 036/107] feat(math): add more parametric T-norms --- packages/math/src/tnorms.ts | 92 +++++++++++++++++++++++++++---------- 1 file changed, 67 insertions(+), 25 deletions(-) diff --git a/packages/math/src/tnorms.ts b/packages/math/src/tnorms.ts index cfafa5e40c..0629c85c79 100644 --- a/packages/math/src/tnorms.ts +++ b/packages/math/src/tnorms.ts @@ -3,73 +3,115 @@ import { norm } from "./fit"; // https://en.wikipedia.org/wiki/T-norm -export const tnormMin: FnN2 = (a, b) => Math.min(a, b); +export const tnormMin: FnN2 = (x, y) => Math.min(x, y); -export const tnormProduct: FnN2 = (a, b) => a * b; +export const tnormProduct: FnN2 = (x, y) => x * y; -export const tnormLukasiewicz: FnN2 = (a, b) => Math.max(0, a + b - 1); +export const tnormLukasiewicz: FnN2 = (x, y) => Math.max(0, x + y - 1); -export const tnormDrastic: FnN2 = (a, b) => (a === 1 ? b : b === 1 ? a : 0); +export const tnormDrastic: FnN2 = (x, y) => (x === 1 ? y : y === 1 ? x : 0); -export const tnormNilpotent: FnN2 = (a, b) => (a + b > 1 ? Math.min(a, b) : 0); +export const tnormNilpotent: FnN2 = (x, y) => (x + y > 1 ? Math.min(x, y) : 0); /** * HOF T-norm. Parametric Hamacher with `p` controlling curvature. * * @remarks - * Interactive graph: https://www.desmos.com/calculator/rklntdutlt + * Interactive graph: https://www.desmos.com/calculator/4bneccqs3p * - * @param p - curve param (default: 2) + * @param p - curve param [0..∞], default: 2 */ -export const tnormHamacher = (p = 2): FnN2 => (a, b) => - a === 0 && b === 0 ? 0 : (a * b) / (p + (1 - p) * (a + b - a * b)); +export const tnormHamacher = (p = 2): FnN2 => (x, y) => + x === 0 && y === 0 ? 0 : (x * y) / (p + (1 - p) * (x + y - x * y)); +/** + * HOF T-norm. Parametric Yager with `p` controlling curvature. + * + * @remarks + * Interactive graph: https://www.desmos.com/calculator/4bneccqs3p + * + * @param p - curve param [0..∞], default: 2 + */ +export const tnormYager = (p = 2): FnN2 => + p === 0 + ? () => 0 + : (x, y) => Math.max(0, 1 - ((1 - x) ** p + (1 - y) ** p) ** (1 / p)); + +/** + * HOF T-norm. Parametric Dombi with `p` controlling curvature. + * + * @remarks + * Interactive graph: https://www.desmos.com/calculator/4bneccqs3p + * + * @param p - curve param [0..∞], default: 2 + */ +export const tnormDombi = (p = 2): FnN2 => + p === 0 + ? () => 0 + : (x, y) => + x === 0 || y === 0 + ? 0 + : 1 / + (1 + (((1 - x) / x) ** p + ((1 - y) / y) ** p) ** (1 / p)); + +/** + * HOF T-norm. Parametric Aczél–Alsina with `p` controlling curvature. + * + * @remarks + * Interactive graph: https://www.desmos.com/calculator/4bneccqs3p + * + * @param p - curve param [0..∞], default: 2 + */ +export const tnormAczelAlsina = (p = 2): FnN2 => (x, y) => + Math.exp( + -((Math.abs(Math.log(x)) ** p + Math.abs(Math.log(y)) ** p) ** (1 / p)) + ); /** * S-norm (T-conorm), dual of {@link tnormMin}. * - * @param a - * @param b + * @param x + * @param y */ -export const snormMax: FnN2 = (a, b) => Math.max(a, b); +export const snormMax: FnN2 = (x, y) => Math.max(x, y); /** * S-norm (T-conorm), dual of {@link tnormProduct}, probabilistic sum: * `a + b - a * b` * - * @param a - * @param b + * @param x + * @param y */ -export const snormProbabilistic: FnN2 = (a, b) => a + b - a * b; +export const snormProbabilistic: FnN2 = (x, y) => x + y - x * y; /** * S-norm (T-conorm), dual of {@link tnormLukasiewicz}. * - * @param a - * @param b + * @param x + * @param y */ -export const snormBoundedSum: FnN2 = (a, b) => Math.min(a + b, 1); +export const snormBoundedSum: FnN2 = (x, y) => Math.min(x + y, 1); /** * S-norm (T-conorm), dual of {@link tnormDrastic}. */ -export const snormDrastic: FnN2 = (a, b) => (a === 0 ? b : b === 0 ? a : 1); +export const snormDrastic: FnN2 = (x, y) => (x === 0 ? y : y === 0 ? x : 1); /** * S-norm (T-conorm), dual of {@link tnormNilpotent}. * - * @param a - * @param b + * @param x + * @param y */ -export const snormNilpotent: FnN2 = (a, b) => (a + b < 1 ? Math.max(a, b) : 1); +export const snormNilpotent: FnN2 = (x, y) => (x + y < 1 ? Math.max(x, y) : 1); /** * S-norm (T-conorm), dual of {@link tnormHamacher}, iff that T-norm's curve * param is `p=2`. * - * @param a - * @param b + * @param x + * @param y */ -export const snormEinstein: FnN2 = (a, b) => (a + b) / (1 + a * b); +export const snormEinstein: FnN2 = (x, y) => (x + y) / (1 + x * y); /** * HOF t-norm. Constructs a new t-norm based on given t-norms for disjoint From 12a9d8a641672f4c3e007a80dd08cfe9b54ce650 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 13 Dec 2020 22:06:57 +0000 Subject: [PATCH 037/107] feat(geom-poly-utils): add tangents(), smoothTangents() --- packages/geom-poly-utils/package.json | 2 +- packages/geom-poly-utils/src/index.ts | 1 + packages/geom-poly-utils/src/tangent.ts | 119 ++++++++++++++++++++++++ 3 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 packages/geom-poly-utils/src/tangent.ts diff --git a/packages/geom-poly-utils/package.json b/packages/geom-poly-utils/package.json index 3647cd3ac4..2f39db87a9 100644 --- a/packages/geom-poly-utils/package.json +++ b/packages/geom-poly-utils/package.json @@ -1,7 +1,7 @@ { "name": "@thi.ng/geom-poly-utils", "version": "0.2.2", - "description": "2D polygon / triangle analysis & processing utilities", + "description": "2D polygon/polyline analysis & processing utilities", "module": "./index.js", "main": "./lib/index.js", "umd:main": "./lib/index.umd.js", diff --git a/packages/geom-poly-utils/src/index.ts b/packages/geom-poly-utils/src/index.ts index 69b4fc61a3..0ea9562d8d 100644 --- a/packages/geom-poly-utils/src/index.ts +++ b/packages/geom-poly-utils/src/index.ts @@ -7,3 +7,4 @@ export * from "./circumcenter"; export * from "./convexity"; export * from "./equilateral"; export * from "./perimeter"; +export * from "./tangent"; diff --git a/packages/geom-poly-utils/src/tangent.ts b/packages/geom-poly-utils/src/tangent.ts new file mode 100644 index 0000000000..6bd030ef2c --- /dev/null +++ b/packages/geom-poly-utils/src/tangent.ts @@ -0,0 +1,119 @@ +import { EPS } from "@thi.ng/math"; +import { + addmN, + direction, + mag, + mixN, + normalize, + perpendicularCCW, + ReadonlyVec, + set, + sub, + Vec, +} from "@thi.ng/vectors"; + +/** + * Takes an array of polyline/polygon vertices and computes the tangent + * directions for each (point). + * + * @remarks + * Use `close=true` to indicate a polygon and cause the last tangent to be the + * direction from last vertex to the first. If `close=false`, the last point's + * tangent will be the same as the previous one. + * + * The optional `scale` arg can be used to scale the tangents (default: 1). + * + * @param pts + * @param close + * @param scale + */ +export const tangents = (pts: ReadonlyVec[], close = false, scale = 1) => { + const n = pts.length - 1; + const res: Vec[] = []; + for (let i = 1; i <= n; i++) { + res.push(direction([], pts[i - 1], pts[i], scale)); + } + res.push( + close ? direction([], pts[n], pts[0], scale) : set([], res[n - 1]) + ); + return res; +}; + +/** + * Extended version of {@link tangents}. Takes an array of polyline/polygon + * vertices and computes the smoothed tangent directions for each (point). + * + * @remarks + * By default, the tangent direction is proportionally influenced by the length + * ratio of a point's previous and current line segments: `currLen / (prevLen + + * currLen)`. + * + * If `proportional` is disabled, the tangents will be the simple mean of the + * direction of the prev/curr segments. + * + * The optional `scale` arg can be used to scale the tangents (default: 1). + * + * @param pts + * @param close + * @param proportional + * @param scale + */ +export const smoothTangents = ( + pts: ReadonlyVec[], + close = false, + proportional = true, + scale = 1 +) => { + const res: Vec[] = []; + const n = pts.length - 1; + if (n < 1) return res; + let prev: Vec | undefined; + let plen: number | undefined; + if (close) { + prev = sub([], pts[0], pts[n]); + plen = mag(prev!); + normalize(null, prev!); + } + let t: Vec; + for (let i = 0; i <= n; i++) { + let curr: Vec; + let clen: number; + if (i === n) { + if (close) { + curr = sub([], pts[0], pts[i]); + } else { + res.push(prev!); + return res; + } + } else { + curr = sub([], pts[i + 1], pts[i]); + } + clen = mag(curr); + normalize(null, curr); + if (i > 0 || close) { + t = proportional + ? mixN( + [], + prev!, + curr, + Math.min(1, clen / (clen + plen! + EPS)) + ) + : addmN([], prev!, curr, 0.5); + } else { + t = set([], curr); + } + res.push(normalize(null, t, scale)); + prev = curr; + plen = clen; + } + return res; +}; + +/** + * Transforms an array of 2d tangent vectors into a new array with each tangent + * rotated 90 degrees counter-clockwise. + * + * @param tangents + */ +export const bitangents2 = (tangents: ReadonlyVec[]) => + tangents.map((t) => perpendicularCCW([], t)); From 2123c372ea3eeca906a6f21a4c2d1aea1233fca4 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 13 Dec 2020 22:10:59 +0000 Subject: [PATCH 038/107] docs(fuzzy): update readme --- packages/fuzzy/README.md | 15 ++++++++------- packages/fuzzy/tpl.readme.md | 13 +++++++------ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/packages/fuzzy/README.md b/packages/fuzzy/README.md index 7e9b60706f..51f2e0ee54 100644 --- a/packages/fuzzy/README.md +++ b/packages/fuzzy/README.md @@ -32,10 +32,12 @@ Fuzzy logic operators & configurable rule inferencing engine. - Fuzzy set domain shaping functions (incl. negated/inverse) - Rules with multiple inputs/outputs and arbitrary term combinators (e.g. [T-norms](https://en.wikipedia.org/wiki/T-norm) from - [@thi.ng/math](https://github.com/thi-ng/umbrella/blob/feature/fuzzy/packages/math/src/tnorms.ts) + [@thi.ng/math](https://github.com/thi-ng/umbrella/blob/develop/packages/math/src/tnorms.ts) package). Syntax sugar for common `and`/`or` rules. -- Defuzzing via customizable strategies (so far Center-of-Gravity (COG) only) - and options to balance precision vs. performance. +- Defuzzing via customizable strategies and options to balance precision vs. + performance + - Maxima: First, Last, Mean + - Center-of-Gravity (COG) - Linguistic variable creation and term/set classification for given domain values @@ -69,7 +71,7 @@ yarn add @thi.ng/fuzzy ``` -Package sizes (gzipped, pre-treeshake): ESM: 857 bytes / CJS: 951 bytes / UMD: 984 bytes +Package sizes (gzipped, pre-treeshake): ESM: 1.09 KB / CJS: 1.19 KB / UMD: 1.21 KB ## Dependencies @@ -91,6 +93,7 @@ Package sizes (gzipped, pre-treeshake): ESM: 857 bytes / CJS: 951 bytes / UMD: 9 - `gaussian()` - `negate()` - `weighted()` +- `compose()` TODO @@ -127,9 +130,7 @@ classify(temp, 28) ### Rule creation & inferencing -```ts -const -``` +TODO ## Authors diff --git a/packages/fuzzy/tpl.readme.md b/packages/fuzzy/tpl.readme.md index 7aa4f95a6b..5b01c7c8e8 100644 --- a/packages/fuzzy/tpl.readme.md +++ b/packages/fuzzy/tpl.readme.md @@ -19,10 +19,12 @@ ${pkg.description} - Fuzzy set domain shaping functions (incl. negated/inverse) - Rules with multiple inputs/outputs and arbitrary term combinators (e.g. [T-norms](https://en.wikipedia.org/wiki/T-norm) from - [@thi.ng/math](https://github.com/thi-ng/umbrella/blob/feature/fuzzy/packages/math/src/tnorms.ts) + [@thi.ng/math](https://github.com/thi-ng/umbrella/blob/develop/packages/math/src/tnorms.ts) package). Syntax sugar for common `and`/`or` rules. -- Defuzzing via customizable strategies (so far Center-of-Gravity (COG) only) - and options to balance precision vs. performance. +- Defuzzing via customizable strategies and options to balance precision vs. + performance + - Maxima: First, Last, Mean + - Center-of-Gravity (COG) - Linguistic variable creation and term/set classification for given domain values @@ -71,6 +73,7 @@ ${docLink} - `gaussian()` - `negate()` - `weighted()` +- `compose()` TODO @@ -107,9 +110,7 @@ classify(temp, 28) ### Rule creation & inferencing -```ts -const -``` +TODO ## Authors From 600be396386dec62553730c3eaedb317366042cd Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 13 Dec 2020 23:04:42 +0000 Subject: [PATCH 039/107] ci: restore GH workflow --- .github/workflows/test.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 533c8556cf..7e282c6fc2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,8 +20,4 @@ jobs: - uses: actions/setup-node@v1 with: node-version: ">=14.6.0" - - run: | - yarn bootstrap - sed -i'' -e 's/readonly url: string/url: string/' node_modules/@types/snowpack-env/index.d.ts - lerna run build --sort - yarn test:only + - run: yarn test From a72dfc53440bc5f56fc02f77c3ca2be70ed63fb3 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 13 Dec 2020 23:05:21 +0000 Subject: [PATCH 040/107] docs: update WIP pkg link --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b5291e9c0f..d15ca46d0a 100644 --- a/README.md +++ b/README.md @@ -124,7 +124,8 @@ to update your local version. (These packages might be still unreleased and only available on their feature or `develop` branches) -- [@thi.ng/fuzzy](https://github.com/thi-ng/umbrella/tree/feature/fuzzy/packages/fuzzy) - Fuzzy logic ops & rule inference engine +- [@thi.ng/fuzzy](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy) - Fuzzy logic ops & rule inference engine + ### Fundamentals | Project | Version | Changelog | Description | From 88edaac0b93fb811738cbfd06d41063d8c4b9aff Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 17 Dec 2020 13:12:22 +0000 Subject: [PATCH 041/107] feat(dsp): add power & integral fns - add power functions: - powerSumSquared() - powerMeanSquared() - powerTimeIntegral() - add integralF/T() - add isComplex() check --- packages/dsp/src/fft/power.ts | 75 ++++++++++++++++++++++++++++++++ packages/dsp/src/index.ts | 2 + packages/dsp/src/util/complex.ts | 7 +++ 3 files changed, 84 insertions(+) create mode 100644 packages/dsp/src/fft/power.ts create mode 100644 packages/dsp/src/util/complex.ts diff --git a/packages/dsp/src/fft/power.ts b/packages/dsp/src/fft/power.ts new file mode 100644 index 0000000000..f4dc33ec05 --- /dev/null +++ b/packages/dsp/src/fft/power.ts @@ -0,0 +1,75 @@ +import type { NumericArray } from "@thi.ng/api"; +import type { ComplexArray } from "../api"; +import { isComplex } from "../util/complex"; + +/** + * Computes the `sum(f(i)^2)` for given array. + * + * @param window + */ +export const integralT = (window: NumericArray) => { + let sum = 0; + for (let i = window.length; --i >= 0; ) { + // prettier-ignore + sum += (window[i]) ** 2; + } + return sum; +}; + +/** + * Computes the `sum(|c(i)|^2)` for given complex array. + * + * @param window + */ +export const integralF = ([real, img]: ComplexArray) => { + let sum = 0; + for (let i = real.length; --i >= 0; ) { + sum += real[i] ** 2 + img[i] ** 2; + } + return sum; +}; + +/** + * Computes sum squared power of given time or frequency domain window. + * + * @remarks + * References: + * - http://www.it.uom.gr/teaching/linearalgebra/NumericalRecipiesInC/c13-4.pdf + * - http://www.hep.ucl.ac.uk/~rjn/saltStuff/fftNormalisation.pdf + * + * @param window + */ +export const powerSumSquared = (window: NumericArray | ComplexArray) => + isComplex(window) + ? integralF(window) / window[0].length + : integralT(window); + +/** + * Computes mean squared power of given time or frequency domain window. + * + * @remarks + * References: + * - http://www.it.uom.gr/teaching/linearalgebra/NumericalRecipiesInC/c13-4.pdf + * - http://www.hep.ucl.ac.uk/~rjn/saltStuff/fftNormalisation.pdf + * + * @param window + */ +export const powerMeanSquared = (window: NumericArray | ComplexArray) => + powerSumSquared(window) / + (isComplex(window) ? window[0].length : window.length); + +/** + * Computes time-integral squared power of given time or frequency domain + * window. + * + * @remarks + * References: + * - http://www.it.uom.gr/teaching/linearalgebra/NumericalRecipiesInC/c13-4.pdf + * - http://www.hep.ucl.ac.uk/~rjn/saltStuff/fftNormalisation.pdf + * + * @param window + */ +export const powerTimeIntegral = ( + window: NumericArray | ComplexArray, + fs: number +) => (isComplex(window) ? integralF(window) : integralT(window)) / fs; diff --git a/packages/dsp/src/index.ts b/packages/dsp/src/index.ts index 796363ed0a..0849fc166b 100644 --- a/packages/dsp/src/index.ts +++ b/packages/dsp/src/index.ts @@ -53,8 +53,10 @@ export * from "./osc/tri"; export * from "./osc/wavetable"; export * from "./fft/fft"; +export * from "./fft/power"; export * from "./fft/window"; export * from "./util/anti-alias"; +export * from "./util/complex"; export * from "./util/convert"; export * from "./util/filter-response"; diff --git a/packages/dsp/src/util/complex.ts b/packages/dsp/src/util/complex.ts new file mode 100644 index 0000000000..f6b94253d4 --- /dev/null +++ b/packages/dsp/src/util/complex.ts @@ -0,0 +1,7 @@ +import type { NumericArray } from "@thi.ng/api"; +import { isNumber } from "@thi.ng/checks"; +import type { ComplexArray } from "../api"; + +export const isComplex = ( + buf: NumericArray | ComplexArray +): buf is ComplexArray => !isNumber(buf[0]); From 276c6b76a6b69498f3b37c94fc34c4915b95b9b6 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 17 Dec 2020 21:00:07 +0000 Subject: [PATCH 042/107] feat(dsp): add cos() stateless oscillator --- packages/dsp/src/osc/cos.ts | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/dsp/src/osc/cos.ts diff --git a/packages/dsp/src/osc/cos.ts b/packages/dsp/src/osc/cos.ts new file mode 100644 index 0000000000..3d8b17e81b --- /dev/null +++ b/packages/dsp/src/osc/cos.ts @@ -0,0 +1,5 @@ +import { TAU } from "@thi.ng/math"; +import type { StatelessOscillator } from "../api"; + +export const cos: StatelessOscillator = (phase, freq, amp = 1, dc = 0) => + dc + amp * Math.cos(phase * freq * TAU); From d51a17c10dd6cbfbb69bb1cf09f46e59d2dd8ba2 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 18 Dec 2020 18:15:31 +0000 Subject: [PATCH 043/107] feat(dsp): add applyWindow(), windowBartlett() --- packages/dsp/src/fft/window.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/dsp/src/fft/window.ts b/packages/dsp/src/fft/window.ts index e834afd2a6..0063febd29 100644 --- a/packages/dsp/src/fft/window.ts +++ b/packages/dsp/src/fft/window.ts @@ -1,4 +1,4 @@ -import type { FloatArray, Fn, FnU3, FnU4 } from "@thi.ng/api"; +import type { FloatArray, Fn, FnU3, FnU4, NumericArray } from "@thi.ng/api"; import { isNumber } from "@thi.ng/checks"; import { PI, TAU } from "@thi.ng/math"; import type { WindowFn } from "../api"; @@ -27,8 +27,18 @@ export const window = (fn: WindowFn, lenOfBuf: number | FloatArray) => { return buf; }; +export const applyWindow = (a: NumericArray, b: NumericArray, out = a) => { + for (let i = a.length; --i >= 0; ) { + out[i] = a[i] * b[i]; + } + return out; +}; + export const windowRect: WindowFn = () => 1; +export const windowBartlett: WindowFn = (i, n) => + 1 - Math.abs((i - n / 2) / (n / 2)); + export const windowSin: WindowFn = (i, n) => sin((PI * i) / n); export const windowSinPow: Fn = (k) => (i, n) => From f455fad649394cd386839d983d8ae25895f9f1a2 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 18 Dec 2020 18:16:22 +0000 Subject: [PATCH 044/107] feat(dsp): add/update power & integral fns --- packages/dsp/src/fft/power.ts | 60 +++++++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 7 deletions(-) diff --git a/packages/dsp/src/fft/power.ts b/packages/dsp/src/fft/power.ts index f4dc33ec05..c7222762ea 100644 --- a/packages/dsp/src/fft/power.ts +++ b/packages/dsp/src/fft/power.ts @@ -1,27 +1,53 @@ import type { NumericArray } from "@thi.ng/api"; +import { isNumber } from "@thi.ng/checks"; import type { ComplexArray } from "../api"; import { isComplex } from "../util/complex"; /** - * Computes the `sum(f(i)^2)` for given array. + * Computes the sum of the given array. * * @param window */ export const integralT = (window: NumericArray) => { let sum = 0; for (let i = window.length; --i >= 0; ) { - // prettier-ignore - sum += (window[i]) ** 2; + sum += window[i]; } return sum; }; /** - * Computes the `sum(|c(i)|^2)` for given complex array. + * Computes the squared sum of given array. + * + * @param window + */ +export const integralTSquared = (window: NumericArray) => { + let sum = 0; + for (let i = window.length; --i >= 0; ) { + sum += window[i] ** 2; + } + return sum; +}; + +/** + * Computes the `sum(|c(i)|)` for given complex array. * * @param window */ export const integralF = ([real, img]: ComplexArray) => { + let sum = 0; + for (let i = real.length; --i >= 0; ) { + sum += Math.hypot(real[i], img[i]); + } + return sum; +}; + +/** + * Computes the `sum(|c(i)|^2)` for given complex array. + * + * @param window + */ +export const integralFSquared = ([real, img]: ComplexArray) => { let sum = 0; for (let i = real.length; --i >= 0; ) { sum += real[i] ** 2 + img[i] ** 2; @@ -29,6 +55,24 @@ export const integralF = ([real, img]: ComplexArray) => { return sum; }; +/** + * If `scale` is a number, returns it. Else returns `base / integralT(scale)`. + * + * @param scale + * @param base + */ +export const powerScale = (scale: number | NumericArray, base = 1) => + isNumber(scale) ? scale : base / integralT(scale); + +/** + * If `scale` is a number, returns it. Else returns `integralT(scale) / base`. + * + * @param scale + * @param base + */ +export const invPowerScale = (scale: number | NumericArray, base = 1) => + isNumber(scale) ? scale : integralT(scale) / base; + /** * Computes sum squared power of given time or frequency domain window. * @@ -41,8 +85,8 @@ export const integralF = ([real, img]: ComplexArray) => { */ export const powerSumSquared = (window: NumericArray | ComplexArray) => isComplex(window) - ? integralF(window) / window[0].length - : integralT(window); + ? integralFSquared(window) / window[0].length + : integralTSquared(window); /** * Computes mean squared power of given time or frequency domain window. @@ -72,4 +116,6 @@ export const powerMeanSquared = (window: NumericArray | ComplexArray) => export const powerTimeIntegral = ( window: NumericArray | ComplexArray, fs: number -) => (isComplex(window) ? integralF(window) : integralT(window)) / fs; +) => + (isComplex(window) ? integralFSquared(window) : integralTSquared(window)) / + fs; From e351acb98b1c776a6c8efe9ba910c2ec3b2df831 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 18 Dec 2020 18:26:37 +0000 Subject: [PATCH 045/107] feat(dsp): add/update various FFT & spectrum fns (fix #258) BREAKING CHANGE: new args for normalizeFFT(),denormalizeFFT(), spectrumPow() - add support for windowing adjustments in above functions - add thresholdFFT() - add copyComplex() - update various real/complex checks using isComplex() - update docs, add references --- packages/dsp/src/fft/fft.ts | 179 ++++++++++++++++++++++++++---------- packages/dsp/src/index.ts | 1 + 2 files changed, 133 insertions(+), 47 deletions(-) diff --git a/packages/dsp/src/fft/fft.ts b/packages/dsp/src/fft/fft.ts index e8fef487f1..b190b47b94 100644 --- a/packages/dsp/src/fft/fft.ts +++ b/packages/dsp/src/fft/fft.ts @@ -1,9 +1,9 @@ import type { FnN3, NumericArray } from "@thi.ng/api"; -import { isNumber } from "@thi.ng/checks"; import type { ComplexArray } from "../api"; +import { isComplex } from "../util/complex"; import { magDb } from "../util/convert"; - -const PI = Math.PI; +import { invPowerScale, powerScale } from "./power"; +import { applyWindow } from "./window"; /** * Returns a new tuple of real/img F64 buffers of given size. @@ -15,6 +15,16 @@ export const complexArray = (n: number): ComplexArray => [ new Float64Array(n), ]; +/** + * Creates a deep copy of given {@link ComplexArray}. + * + * @param complex + */ +export const copyComplex = (complex: ComplexArray): ComplexArray => [ + complex[0].slice(), + complex[1].slice(), +]; + /** * If given a {@link ComplexArray}, computes the complex conjugate, * concatenates it in mirrored order to input (excluding bin 0) and @@ -62,15 +72,7 @@ export const complexArray = (n: number): ComplexArray => [ export function conjugate(src: NumericArray, isImg?: boolean): NumericArray; export function conjugate(complex: ComplexArray): ComplexArray; export function conjugate(src: NumericArray | ComplexArray, isImg = true): any { - if (isNumber(src[0])) { - const n = src.length; - const dest = new Float64Array(n * 2); - dest.set(src); - for (let i = 1, j = n * 2 - 1; i < n; i++, j--) { - dest[j] = isImg ? -(src)[i] : (src)[i]; - } - return dest; - } else { + if (isComplex(src)) { const n = src[0].length; const res = complexArray(n * 2); const [sreal, simg] = src; @@ -82,6 +84,14 @@ export function conjugate(src: NumericArray | ComplexArray, isImg = true): any { dimg[j] = -simg[i]; } return res; + } else { + const n = src.length; + const dest = new Float64Array(n * 2); + dest.set(src); + for (let i = 1, j = n * 2 - 1; i < n; i++, j--) { + dest[j] = isImg ? -(src)[i] : (src)[i]; + } + return dest; } } @@ -147,7 +157,7 @@ const transform = (real: NumericArray, img: NumericArray, n: number) => { step <<= 1; ur = 1; ui = 0; - t = PI / prevStep; + t = Math.PI / prevStep; wr = Math.cos(t); wi = -Math.sin(t); for (j = 1; j <= prevStep; j++) { @@ -192,19 +202,16 @@ export const fft = ( window?: NumericArray ): ComplexArray => { let real: NumericArray, img: NumericArray | undefined; - if (isNumber(complex[0])) { - real = complex; - } else { + if (isComplex(complex)) { real = complex[0]; img = complex[1]; + } else { + real = complex; } - const n = real.length; if (window) { - for (let i = 0; i < n; i++) { - real[i] *= window[i]; - } + applyWindow(real, window); } - + const n = real.length; if (img) { swapRI(real, img, n); } else { @@ -218,8 +225,9 @@ export const fft = ( }; /** - * Inverse FFT via computing forward transform with swapped - * real/imaginary components. Expects denormalized inputs. + * Inverse FFT via computing forward transform with swapped real/imaginary + * components. Expects denormalized inputs (i.e. the same as the result of + * {@link fft}). * * @remarks * @@ -228,9 +236,9 @@ export const fft = ( * @param complex */ export const ifft = (src: NumericArray | ComplexArray): ComplexArray => { - let complex: ComplexArray = isNumber(src[0]) - ? [new Float64Array(src.length), src] - : src; + let complex: ComplexArray = isComplex(src) + ? src + : [new Float64Array(src.length), src]; fft([complex[1], complex[0]]); return scaleFFT(complex, 1 / complex[0].length); }; @@ -248,15 +256,74 @@ export const scaleFFT = ( return [real, img]; }; -export const normalizeFFT = (complex: ComplexArray): ComplexArray => - scaleFFT(complex, 1 / Math.sqrt(complex[0].length)); +/** + * Normalizes the complex FFT array by scaling each complex bin value with given + * scale factor (or, if given as array, the scale factor derived from these + * window function samples). + * + * @remarks + * By default assumes a rectangular window and the resulting scale factor of 2 / + * N. + * + * References: + * - https://holometer.fnal.gov/GH_FFT.pdf + * + * @param complex + * @param window + */ +export const normalizeFFT = ( + complex: ComplexArray, + window: number | NumericArray = 2 / complex[0].length +): ComplexArray => scaleFFT(complex, powerScale(window, 2)); -export const denormalizeFFT = (complex: ComplexArray): ComplexArray => - scaleFFT(complex, Math.sqrt(complex[0].length)); +/** + * Inverse operation of {@link normalizeFFT}. De-normalizes the complex FFT + * array by scaling each complex bin value with given scale factor (or, if given + * as array, the scale factor derived from these window function samples). + * + * @remarks + * By default assumes a rectangular window and the resulting scale factor of N / + * 2. + * + * References: + * - https://holometer.fnal.gov/GH_FFT.pdf + * + * @param complex + * @param window + */ +export const denormalizeFFT = ( + complex: ComplexArray, + window: number | NumericArray = complex[0].length / 2 +): ComplexArray => scaleFFT(complex, invPowerScale(window, 2)); + +/** + * Computes the magnitude of each FFT bin and if less than given `eps` + * threshold, sets that bin to zero. Returns input FFT array. + * + * @remarks + * It's recommended to apply this function prior computing + * {@link spectrumPhase}. The `eps` value might have to be adjusted and should + * be approx. `max(spectrumMag(fft))/10000`. + * + * References: + * - https://www.gaussianwaves.com/2015/11/interpreting-fft-results-obtaining-magnitude-and-phase-information/ + * + * @param complex + * @param eps + */ +export const thresholdFFT = (complex: ComplexArray, eps = 1e-12) => { + const [real, img] = complex; + for (let i = 0, n = real.length; i < n; i++) { + if (Math.hypot(real[i], img[i]) < eps) { + real[i] = img[i] = 0; + } + } + return complex; +}; /** - * Computes magnitude spectrum for given FFT. By default only the first - * N/2 values are returned. + * Computes magnitude spectrum for given FFT: y(i) = abs(c(i)). By default only + * the first N/2 values are returned. * * @param complex - FFT result * @param n - bin count @@ -269,35 +336,48 @@ export const spectrumMag = ( ) => { const [real, img] = complex; for (let i = 0; i < n; i++) { - out[i] = Math.sqrt(real[i] ** 2 + img[i] ** 2); + out[i] = Math.hypot(real[i], img[i]); } return out; }; /** - * Computes power spectrum (optionally as dBFS) for the given raw, - * unnormalized FFT result arrays (length = N) and writes result to - * `out`. + * Computes power spectrum (optionally as dBFS) for the given FFT result arrays + * (length = N) and optional `window`. Writes result to `out` or a new array. * * @remarks - * By default only the first N/2 values are returned. If `db` is true, - * the spectrum values are converted to dBFS. + * If `window` is given (scale factor or array), it will be used as (if number) + * or to compute the scaling factor (if array) for each FFT bin's value. The + * default (`window=1`) is the equivalent to a rectangular window (i.e. a + * no-op). If windowing was used to compute the FFT, the same should be provided + * to this function for correct results. * + * **IMPORTANT:** If the FFT result has already been normalized using + * {@link normalizeFFT}, the scaling factor (`window` arg) MUST be set 1.0. + * + * By default only the first N/2 values are returned. If `db` is true, the + * spectrum values are converted to dBFS. + * + * - https://holometer.fnal.gov/GH_FFT.pdf + * - https://dsp.stackexchange.com/a/32080 + * - https://dsp.stackexchange.com/a/14935 * - https://www.kvraudio.com/forum/viewtopic.php?t=276092 * * @param complex * @param db * @param n + * @param window * @param out */ export const spectrumPow = ( complex: ComplexArray, db = false, n = complex[0].length / 2, + window: number | NumericArray = 2 / complex[0].length, out: NumericArray = [] ) => { const [real, img] = complex; - const scale = 1 / real.length; + const scale = powerScale(window, 2); for (let i = 0; i < n; i++) { const p = real[i] ** 2 + img[i] ** 2; out[i] = db ? magDb(Math.sqrt(p) * scale) : p * scale; @@ -306,8 +386,12 @@ export const spectrumPow = ( }; /** - * Computes phase spectrum for given FFT and writes results to `out`. By - * default only the first N/2 values are returned. + * Computes phase spectrum for given FFT and writes results to `out`. By default + * only the first N/2 values are returned. + * + * @remarks + * Consider applying {@link thresholdFFT} prior to computing the phase spectrum + * to avoid exploding floating point error magnitudes. * * @param complex - FFT result * @param n - bin count @@ -346,16 +430,17 @@ export const freqBin: FnN3 = (f, fs, n) => ((f * n) / fs) | 0; export const binFreq: FnN3 = (bin, fs, n) => (bin * fs) / n; /** - * Returns array of bin center frequencies for given FFT window size and - * sample rate. By default only the first N/2 values are returned. + * Returns array of bin center frequencies for given FFT window size and sample + * rate. By default only the first N/2+1 values are returned (`m` and including + * 0Hz). * - * @param n - * @param fs - * @param m + * @param n - window size + * @param fs - sample rate + * @param m - number of result values */ export const fftFreq = (n: number, fs: number, m = n / 2) => { const res = new Float64Array(m); - for (let i = 0; i < m; i++) { + for (let i = 0; i <= m; i++) { res[i] = binFreq(i, fs, n); } return res; diff --git a/packages/dsp/src/index.ts b/packages/dsp/src/index.ts index 0849fc166b..631139c6df 100644 --- a/packages/dsp/src/index.ts +++ b/packages/dsp/src/index.ts @@ -43,6 +43,7 @@ export * from "./proc/svf"; export * from "./proc/waveshaper"; export * from "./osc/additive"; +export * from "./osc/cos"; export * from "./osc/dsf"; export * from "./osc/mix"; export * from "./osc/parabolic"; From 4e7d8d301a4f7315803b8e1bf5c6211065738dec Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 18 Dec 2020 18:37:35 +0000 Subject: [PATCH 046/107] test(dsp): add/update tests (WIP) --- packages/dsp/test/fft.ts | 146 ++++++++++++++++++++++++-------- packages/dsp/test/tsconfig.json | 4 +- 2 files changed, 112 insertions(+), 38 deletions(-) diff --git a/packages/dsp/test/fft.ts b/packages/dsp/test/fft.ts index d60404d4f4..af2cc785cf 100644 --- a/packages/dsp/test/fft.ts +++ b/packages/dsp/test/fft.ts @@ -1,13 +1,25 @@ import type { NumericArray } from "@thi.ng/api"; +import { eqDelta } from "@thi.ng/math"; import * as assert from "assert"; import { + add, ComplexArray, - denormalizeFFT, + copyComplex, + cos, fft, + freqBin, ifft, normalizeFFT, + osc, + powerMeanSquared, + powerSumSquared, + powerTimeIntegral, + spectrumMag, spectrumPhase, spectrumPow, + thresholdFFT, + window, + windowRect, } from "../src"; const pulse8 = [-1, -1, -1, -1, 1, 1, 1, 1]; @@ -16,7 +28,11 @@ const deltaEq = (a: NumericArray, b: NumericArray, eps = 1e-3) => { if (a.length != b.length) return false; eps **= 2; for (let i = a.length; --i >= 0; ) { - if ((a[i] - b[i]) ** 2 > eps) return false; + const diff = (a[i] - b[i]) ** 2; + if (diff > eps) { + console.log("deltaEq: ", i, diff); + return false; + } } return true; }; @@ -25,50 +41,106 @@ const deltaEqComplex = (a: ComplexArray, b: ComplexArray, eps?: number) => deltaEq(a[0], b[0], eps) && deltaEq(a[1], b[1], eps); describe("fft", () => { - it("pulse(8)", () => { - const res = fft([...pulse8]); - - assert.ok( - deltaEqComplex(res, [ - [0, -2, 0, -2, 0, -2, 0, -2], - [0, 4.828, 0, 0.828, 0, -0.828, 0, -4.828], - ]) - ); + it("roundtrip", () => { + const src = osc(cos, 64 / 512, 1).take(512); + const rev = ifft(fft([...src])); + assert(deltaEq(rev[0], src)); + }); - assert.ok( - deltaEqComplex(ifft(fft([...pulse8])), [ - pulse8, - [0, 0, 0, 0, 0, 0, 0, 0], - ]) + it("parseval", () => { + const FC = 64; + const FS = 512; + const A = 0.5; + const N = 2 * FS; + const src = osc(cos, add(FC / FS, 1 / 12), A).take(N); + const win = window(windowRect, N); + const fwd = fft([...src], win); + // parseval's theorem: sum(src[i]^2) = sum(|fft[i]|^2) / N + const sumT = src.reduce((acc, x) => acc + x * x, 0); + const sumF = + (fwd[0]).reduce( + (acc, x, i) => acc + x ** 2 + fwd[1][i] ** 2, + 0 + ) / N; + console.log( + sumT, + sumF, + powerMeanSquared(fwd), + powerTimeIntegral(src, FS), + powerTimeIntegral(fwd, FS) ); + assert(eqDelta(powerSumSquared(src), sumT), "sumT1"); + assert(eqDelta(powerSumSquared(fwd), sumF), "sumF1"); + assert(eqDelta(powerMeanSquared(src), sumT / N), "sumT2"); + assert(eqDelta(powerMeanSquared(fwd), sumF / N), "sumF2"); - assert.ok( - deltaEqComplex( - ifft(denormalizeFFT(normalizeFFT(fft([...pulse8])))), - [pulse8, [0, 0, 0, 0, 0, 0, 0, 0]] - ) - ); + const normF = normalizeFFT(copyComplex(fwd), win); + const sumF2 = powerSumSquared(normF); - const norm = normalizeFFT(fft([...pulse8])); + const thresh = thresholdFFT(copyComplex(fwd), 1 / 10000); + const phase = spectrumPhase(thresh); - assert.ok( - deltaEqComplex(norm, [ - [0, -0.707, 0, -0.707, 0, -0.707, 0, -0.707], - [0, 1.707, 0, 0.293, 0, -0.293, 0, -1.707], - ]) + const I = freqBin(FC, FS, N); + console.log( + "fwd", + spectrumMag(fwd)[I], + spectrumPow(fwd, false, N / 2, win)[I], + spectrumPow(fwd, true, N / 2, win)[I], + phase[I] ); + console.log( + "norm", + spectrumMag(normF)[I], + spectrumPow(normF)[I], + spectrumPow(normF, true)[I] + ); + console.log(sumF2); + }); + + it("issue", () => { + const FC = 64; + const FS = 512; + const A = 0.5; + const N = 2 * FS; + const I = freqBin(FC, FS, N); - assert.ok(deltaEq(spectrumPow(res, false), [0, 3.414, 0, 0.586])); + // cosine osc w/ 30 degree phase shift (= 2π/12) + const src = osc(cos, add(FC / FS, 1 / 12), A).take(N); - assert.ok( - deltaEq(spectrumPow(res, true), [ - -Infinity, - -3.698, - -Infinity, - -11.354, - ]) + // compute window LUT + const win = window(windowRect, N); + + const fwd = fft(src.slice(), win); + + console.log( + "powSumSq: src =", + powerSumSquared(src), + "fft =", + powerSumSquared(fwd) + ); + console.log( + "powMeanSq: src =", + powerMeanSquared(src), + "fft =", + powerMeanSquared(fwd) ); - assert.ok(deltaEq(spectrumPhase(res), [0, 1.963, 0, 2.749])); + const spMag = spectrumMag(fwd); + const spPow = spectrumPow(fwd, false, N / 2, win); + const spDb = spectrumPow(fwd, true, N / 2, win); + + const spPhase = spectrumPhase(thresholdFFT(copyComplex(fwd))); + + console.log("mag[I] =", spMag[I]); + console.log("pow[I] =", spPow[I]); + console.log("dB[I] =", spDb[I]); + console.log("phase[I] =", (spPhase[I] * 180) / Math.PI, "deg"); + + const norm = normalizeFFT(copyComplex(fwd), win); + const spMagNorm = spectrumMag(norm); + // since `norm` already includes the window weight adjustments + // we use a scale factor of 1.0 here + const spPowNorm = spectrumPow(norm, false, N / 2, 1); + console.log("norm mag[I] =", spMagNorm[I], "pow[I] =", spPowNorm[I]); }); }); diff --git a/packages/dsp/test/tsconfig.json b/packages/dsp/test/tsconfig.json index 43124565ec..ad9243e1b4 100644 --- a/packages/dsp/test/tsconfig.json +++ b/packages/dsp/test/tsconfig.json @@ -3,7 +3,9 @@ "compilerOptions": { "outDir": "../build", "module": "commonjs", - "isolatedModules": false + "isolatedModules": false, + "noUnusedParameters": false, + "noUnusedLocals": false }, "include": ["./**/*.ts", "../src/**/*.ts"] } From 332c4125e28eb8623aa5a278bfae1eab1bc1c68d Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 18 Dec 2020 20:14:01 +0000 Subject: [PATCH 047/107] docs: update README.md [skip ci] --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d15ca46d0a..1744cb35dd 100644 --- a/README.md +++ b/README.md @@ -411,6 +411,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
TBD

🐛 🤔
Pedro Henriques dos Santos Teixeira

💵 +
Jamie Owen

🐛 From 14206471600286cd3f4f0601aa63025ae36be58f Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 18 Dec 2020 20:14:02 +0000 Subject: [PATCH 048/107] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index e3b56146f7..08a21c1ecc 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -240,6 +240,15 @@ "contributions": [ "financial" ] + }, + { + "login": "jamieowen", + "name": "Jamie Owen", + "avatar_url": "https://avatars3.githubusercontent.com/u/248957?v=4", + "profile": "http://jamieowen.com", + "contributions": [ + "bug" + ] } ], "contributorsPerLine": 7, From bded71158395ef12d558b753db548224862a70f1 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 18 Dec 2020 20:15:33 +0000 Subject: [PATCH 049/107] docs: update README.md [skip ci] --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1744cb35dd..f1ee46174b 100644 --- a/README.md +++ b/README.md @@ -412,6 +412,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
TBD

🐛 🤔
Pedro Henriques dos Santos Teixeira

💵
Jamie Owen

🐛 +
Robert Kesteson

🐛 💻 From 15104071b7a6be242c6e4ddd113d4c47be552f3b Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 18 Dec 2020 20:15:35 +0000 Subject: [PATCH 050/107] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 08a21c1ecc..b66aa0f055 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -249,6 +249,16 @@ "contributions": [ "bug" ] + }, + { + "login": "rkesters", + "name": "Robert Kesteson", + "avatar_url": "https://avatars3.githubusercontent.com/u/5572145?v=4", + "profile": "https://github.com/rkesters", + "contributions": [ + "bug", + "code" + ] } ], "contributorsPerLine": 7, From a3f9209bd07b7e345ea83bb4c082f0295e766bfe Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 18 Dec 2020 20:54:18 +0000 Subject: [PATCH 051/107] build: update snowpack-env typedefs --- examples/adaptive-threshold/package.json | 2 +- examples/async-effect/package.json | 2 +- examples/bitmap-font/package.json | 2 +- examples/canvas-dial/package.json | 2 +- examples/cellular-automata/package.json | 2 +- examples/crypto-chart/package.json | 2 +- examples/devcards/package.json | 2 +- examples/ellipse-proximity/package.json | 2 +- examples/fft-synth/package.json | 2 +- examples/geom-convex-hull/package.json | 2 +- examples/geom-fuzz-basics/package.json | 2 +- examples/geom-knn/package.json | 2 +- examples/geom-tessel/package.json | 2 +- examples/geom-voronoi-mst/package.json | 2 +- examples/gesture-analysis/package.json | 2 +- examples/grid-iterators/package.json | 2 +- examples/hdom-basics/package.json | 2 +- examples/hdom-benchmark/package.json | 2 +- examples/hdom-benchmark2/package.json | 2 +- examples/hdom-canvas-clock/package.json | 2 +- examples/hdom-canvas-draw/package.json | 2 +- examples/hdom-canvas-particles/package.json | 2 +- examples/hdom-canvas-shapes/package.json | 2 +- examples/hdom-dropdown-fuzzy/package.json | 2 +- examples/hdom-dropdown/package.json | 2 +- examples/hdom-dyn-context/package.json | 2 +- examples/hdom-elm/package.json | 2 +- examples/hdom-inner-html/package.json | 2 +- examples/hdom-local-render/package.json | 2 +- examples/hdom-localstate/package.json | 2 +- examples/hdom-skip-nested/package.json | 2 +- examples/hdom-skip/package.json | 2 +- examples/hdom-theme-adr-0003/package.json | 2 +- examples/hdom-toggle/package.json | 2 +- examples/hdom-vscroller/package.json | 2 +- examples/hiccup-canvas-arcs/package.json | 2 +- examples/hydrate-basics/package.json | 2 +- examples/imgui-basics/package.json | 2 +- examples/imgui/package.json | 2 +- examples/interceptor-basics/package.json | 2 +- examples/interceptor-basics2/package.json | 2 +- examples/iso-plasma/package.json | 2 +- examples/json-components/package.json | 2 +- examples/login-form/package.json | 2 +- examples/markdown/package.json | 2 +- examples/multitouch/package.json | 2 +- examples/parse-playground/package.json | 2 +- examples/pixel-basics/package.json | 2 +- examples/poisson-circles/package.json | 2 +- examples/poly-spline/package.json | 2 +- examples/porter-duff/package.json | 2 +- examples/ramp-synth/package.json | 2 +- examples/rdom-basics/package.json | 2 +- examples/rdom-dnd/package.json | 2 +- examples/rdom-lissajous/package.json | 2 +- examples/rdom-search-docs/package.json | 2 +- examples/rdom-svg-nodes/package.json | 2 +- examples/rotating-voronoi/package.json | 2 +- examples/router-basics/package.json | 2 +- examples/rstream-dataflow/package.json | 2 +- examples/rstream-event-loop/package.json | 2 +- examples/rstream-grid/package.json | 2 +- examples/rstream-hdom/package.json | 2 +- examples/rstream-spreadsheet/package.json | 2 +- examples/scenegraph-image/package.json | 2 +- examples/scenegraph/package.json | 2 +- examples/shader-ast-canvas2d/package.json | 2 +- examples/shader-ast-evo/package.json | 2 +- examples/shader-ast-noise/package.json | 2 +- examples/shader-ast-raymarch/package.json | 2 +- examples/shader-ast-sdf2d/package.json | 2 +- examples/shader-ast-tunnel/package.json | 2 +- examples/shader-graph/package.json | 2 +- examples/soa-ecs/package.json | 2 +- examples/stratified-grid/package.json | 2 +- examples/svg-barchart/package.json | 2 +- examples/svg-particles/package.json | 2 +- examples/svg-waveform/package.json | 2 +- examples/talk-slides/package.json | 2 +- examples/text-canvas/package.json | 2 +- examples/todo-list/package.json | 2 +- examples/transducers-hdom/package.json | 2 +- examples/triple-query/package.json | 2 +- examples/webgl-cube/package.json | 2 +- examples/webgl-cubemap/package.json | 2 +- examples/webgl-grid/package.json | 2 +- examples/webgl-msdf/package.json | 2 +- examples/webgl-multipass/package.json | 2 +- examples/webgl-shadertoy/package.json | 2 +- examples/webgl-ssao/package.json | 2 +- examples/wolfram/package.json | 2 +- examples/xml-converter/package.json | 2 +- package.json | 2 +- scripts/make-example | 6 ++---- yarn.lock | 10 +++++----- 95 files changed, 100 insertions(+), 102 deletions(-) diff --git a/examples/adaptive-threshold/package.json b/examples/adaptive-threshold/package.json index 733d93eb0a..1890186542 100644 --- a/examples/adaptive-threshold/package.json +++ b/examples/adaptive-threshold/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/adaptive-threshold.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/async-effect/package.json b/examples/async-effect/package.json index 9663508269..463a8ebd8b 100644 --- a/examples/async-effect/package.json +++ b/examples/async-effect/package.json @@ -27,6 +27,6 @@ ] }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/bitmap-font/package.json b/examples/bitmap-font/package.json index ca08f3fcda..f880b6cef2 100644 --- a/examples/bitmap-font/package.json +++ b/examples/bitmap-font/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/bitmap-font.gif" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/canvas-dial/package.json b/examples/canvas-dial/package.json index 71c135f184..9611625641 100644 --- a/examples/canvas-dial/package.json +++ b/examples/canvas-dial/package.json @@ -38,6 +38,6 @@ "screenshot": "examples/canvas-dial.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/cellular-automata/package.json b/examples/cellular-automata/package.json index 273cfe843c..bdf71b4b2c 100644 --- a/examples/cellular-automata/package.json +++ b/examples/cellular-automata/package.json @@ -30,6 +30,6 @@ "screenshot": "examples/cellular-automata.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/crypto-chart/package.json b/examples/crypto-chart/package.json index 2f36254419..12326718ee 100644 --- a/examples/crypto-chart/package.json +++ b/examples/crypto-chart/package.json @@ -43,6 +43,6 @@ "screenshot": "examples/crypto-chart.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/devcards/package.json b/examples/devcards/package.json index 0b2f5cbf89..e24a4bfc4d 100644 --- a/examples/devcards/package.json +++ b/examples/devcards/package.json @@ -28,6 +28,6 @@ ] }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/ellipse-proximity/package.json b/examples/ellipse-proximity/package.json index 6fb92694dc..07373607df 100644 --- a/examples/ellipse-proximity/package.json +++ b/examples/ellipse-proximity/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/ellipse-proximity.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/fft-synth/package.json b/examples/fft-synth/package.json index e4dbf98573..948fb00a6a 100644 --- a/examples/fft-synth/package.json +++ b/examples/fft-synth/package.json @@ -41,6 +41,6 @@ "screenshot": "examples/fft-synth.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/geom-convex-hull/package.json b/examples/geom-convex-hull/package.json index f99bdd8c06..6a1e66cd69 100644 --- a/examples/geom-convex-hull/package.json +++ b/examples/geom-convex-hull/package.json @@ -30,6 +30,6 @@ "screenshot": "examples/geom-convex-hull.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/geom-fuzz-basics/package.json b/examples/geom-fuzz-basics/package.json index 05eb6df051..4347e95286 100644 --- a/examples/geom-fuzz-basics/package.json +++ b/examples/geom-fuzz-basics/package.json @@ -32,6 +32,6 @@ "screenshot": "geom/geom-fuzz.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/geom-knn/package.json b/examples/geom-knn/package.json index 6ce87b9ed2..eb8cd40f82 100644 --- a/examples/geom-knn/package.json +++ b/examples/geom-knn/package.json @@ -36,6 +36,6 @@ "screenshot": "examples/geom-knn.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/geom-tessel/package.json b/examples/geom-tessel/package.json index 89040b8eac..4bea359252 100644 --- a/examples/geom-tessel/package.json +++ b/examples/geom-tessel/package.json @@ -36,6 +36,6 @@ "screenshot": "geom/tessel.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/geom-voronoi-mst/package.json b/examples/geom-voronoi-mst/package.json index 3044d68363..11f841154c 100644 --- a/examples/geom-voronoi-mst/package.json +++ b/examples/geom-voronoi-mst/package.json @@ -41,6 +41,6 @@ "screenshot": "examples/geom-voronoi-mst.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/gesture-analysis/package.json b/examples/gesture-analysis/package.json index 89e240178c..8d60e1f79c 100644 --- a/examples/gesture-analysis/package.json +++ b/examples/gesture-analysis/package.json @@ -37,6 +37,6 @@ "screenshot": "examples/gesture-analysis.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/grid-iterators/package.json b/examples/grid-iterators/package.json index c4027d492d..ebadb9e1a3 100644 --- a/examples/grid-iterators/package.json +++ b/examples/grid-iterators/package.json @@ -30,6 +30,6 @@ "screenshot": "examples/grid-iterators.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-basics/package.json b/examples/hdom-basics/package.json index a35e8d10b4..0c42a00a13 100644 --- a/examples/hdom-basics/package.json +++ b/examples/hdom-basics/package.json @@ -20,6 +20,6 @@ "process": false }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-benchmark/package.json b/examples/hdom-benchmark/package.json index 00ac8986e1..b21ab72de3 100644 --- a/examples/hdom-benchmark/package.json +++ b/examples/hdom-benchmark/package.json @@ -27,6 +27,6 @@ "screenshot": "examples/hdom-benchmark.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-benchmark2/package.json b/examples/hdom-benchmark2/package.json index 35962c8ac8..551e7dfd30 100644 --- a/examples/hdom-benchmark2/package.json +++ b/examples/hdom-benchmark2/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/hdom-benchmark2.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-canvas-clock/package.json b/examples/hdom-canvas-clock/package.json index d1fa5acb58..72bd0e3616 100644 --- a/examples/hdom-canvas-clock/package.json +++ b/examples/hdom-canvas-clock/package.json @@ -33,6 +33,6 @@ "screenshot": "examples/hdom-canvas-clock.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-canvas-draw/package.json b/examples/hdom-canvas-draw/package.json index aaf1b25b8e..5b004c6dc3 100644 --- a/examples/hdom-canvas-draw/package.json +++ b/examples/hdom-canvas-draw/package.json @@ -38,6 +38,6 @@ "screenshot": "examples/hdom-canvas-draw.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-canvas-particles/package.json b/examples/hdom-canvas-particles/package.json index 80b17f8793..41c558d81e 100644 --- a/examples/hdom-canvas-particles/package.json +++ b/examples/hdom-canvas-particles/package.json @@ -38,6 +38,6 @@ "screenshot": "examples/hdom-canvas-particles.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-canvas-shapes/package.json b/examples/hdom-canvas-shapes/package.json index a3bb43e124..577d04c531 100644 --- a/examples/hdom-canvas-shapes/package.json +++ b/examples/hdom-canvas-shapes/package.json @@ -48,6 +48,6 @@ "screenshot": "hdom-canvas/hdom-canvas-shapes-results.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-dropdown-fuzzy/package.json b/examples/hdom-dropdown-fuzzy/package.json index 5db74e062d..3145d57223 100644 --- a/examples/hdom-dropdown-fuzzy/package.json +++ b/examples/hdom-dropdown-fuzzy/package.json @@ -36,6 +36,6 @@ ] }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-dropdown/package.json b/examples/hdom-dropdown/package.json index 38fe02a7fe..1f6e99faf2 100644 --- a/examples/hdom-dropdown/package.json +++ b/examples/hdom-dropdown/package.json @@ -25,6 +25,6 @@ "process": false }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-dyn-context/package.json b/examples/hdom-dyn-context/package.json index 5587070f8a..d859436a1d 100644 --- a/examples/hdom-dyn-context/package.json +++ b/examples/hdom-dyn-context/package.json @@ -21,6 +21,6 @@ "process": false }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-elm/package.json b/examples/hdom-elm/package.json index 768a7e5fc7..f23f03559b 100644 --- a/examples/hdom-elm/package.json +++ b/examples/hdom-elm/package.json @@ -30,6 +30,6 @@ ] }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-inner-html/package.json b/examples/hdom-inner-html/package.json index 60f0ded518..e02daaddbf 100644 --- a/examples/hdom-inner-html/package.json +++ b/examples/hdom-inner-html/package.json @@ -20,6 +20,6 @@ "process": false }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-local-render/package.json b/examples/hdom-local-render/package.json index a6c7837e8f..0a17c02186 100644 --- a/examples/hdom-local-render/package.json +++ b/examples/hdom-local-render/package.json @@ -22,6 +22,6 @@ "process": false }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-localstate/package.json b/examples/hdom-localstate/package.json index d7a7c63e0c..8ea816382f 100644 --- a/examples/hdom-localstate/package.json +++ b/examples/hdom-localstate/package.json @@ -21,6 +21,6 @@ "process": false }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-skip-nested/package.json b/examples/hdom-skip-nested/package.json index 007ef9a803..8a29598859 100644 --- a/examples/hdom-skip-nested/package.json +++ b/examples/hdom-skip-nested/package.json @@ -20,6 +20,6 @@ "process": false }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-skip/package.json b/examples/hdom-skip/package.json index 36716a2c30..3ab471b0e0 100644 --- a/examples/hdom-skip/package.json +++ b/examples/hdom-skip/package.json @@ -20,6 +20,6 @@ "process": false }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-theme-adr-0003/package.json b/examples/hdom-theme-adr-0003/package.json index 831ba336f2..2142959a36 100644 --- a/examples/hdom-theme-adr-0003/package.json +++ b/examples/hdom-theme-adr-0003/package.json @@ -22,6 +22,6 @@ "process": false }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-toggle/package.json b/examples/hdom-toggle/package.json index f156045aa4..bd90e93969 100644 --- a/examples/hdom-toggle/package.json +++ b/examples/hdom-toggle/package.json @@ -25,6 +25,6 @@ "screenshot": "examples/hdom-toggle.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hdom-vscroller/package.json b/examples/hdom-vscroller/package.json index 9170e5dfd6..85b9a556ac 100644 --- a/examples/hdom-vscroller/package.json +++ b/examples/hdom-vscroller/package.json @@ -22,6 +22,6 @@ "process": false }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hiccup-canvas-arcs/package.json b/examples/hiccup-canvas-arcs/package.json index 9e9f873c63..143f5cae1f 100644 --- a/examples/hiccup-canvas-arcs/package.json +++ b/examples/hiccup-canvas-arcs/package.json @@ -31,6 +31,6 @@ "screenshot": "examples/hiccup-canvas-arcs.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/hydrate-basics/package.json b/examples/hydrate-basics/package.json index 66fc4993df..29ddd8622b 100644 --- a/examples/hydrate-basics/package.json +++ b/examples/hydrate-basics/package.json @@ -30,6 +30,6 @@ ] }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/imgui-basics/package.json b/examples/imgui-basics/package.json index 0dd80ff65e..49418b451e 100644 --- a/examples/imgui-basics/package.json +++ b/examples/imgui-basics/package.json @@ -33,6 +33,6 @@ "screenshot": "examples/imgui-basics.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/imgui/package.json b/examples/imgui/package.json index 898e54fb6e..823932b0be 100644 --- a/examples/imgui/package.json +++ b/examples/imgui/package.json @@ -49,6 +49,6 @@ "screenshot": "imgui/imgui-all.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/interceptor-basics/package.json b/examples/interceptor-basics/package.json index 0f91e70844..a26bf5a205 100644 --- a/examples/interceptor-basics/package.json +++ b/examples/interceptor-basics/package.json @@ -28,6 +28,6 @@ ] }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/interceptor-basics2/package.json b/examples/interceptor-basics2/package.json index 3c25da83a4..43bfa63cbd 100644 --- a/examples/interceptor-basics2/package.json +++ b/examples/interceptor-basics2/package.json @@ -30,6 +30,6 @@ ] }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/iso-plasma/package.json b/examples/iso-plasma/package.json index 34a624bb57..3222b450d8 100644 --- a/examples/iso-plasma/package.json +++ b/examples/iso-plasma/package.json @@ -39,6 +39,6 @@ "screenshot": "geom/geom-isoline.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/json-components/package.json b/examples/json-components/package.json index 09e68958a5..bb7e2b6996 100644 --- a/examples/json-components/package.json +++ b/examples/json-components/package.json @@ -25,6 +25,6 @@ "screenshot": "examples/json-components.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/login-form/package.json b/examples/login-form/package.json index d07f9273b8..6570057ebe 100644 --- a/examples/login-form/package.json +++ b/examples/login-form/package.json @@ -26,6 +26,6 @@ "readme": true }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/markdown/package.json b/examples/markdown/package.json index ec12e8ddc2..4f0e17fb97 100644 --- a/examples/markdown/package.json +++ b/examples/markdown/package.json @@ -33,6 +33,6 @@ "screenshot": "examples/markdown-parser.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/multitouch/package.json b/examples/multitouch/package.json index 265d395658..853dc6b679 100644 --- a/examples/multitouch/package.json +++ b/examples/multitouch/package.json @@ -33,6 +33,6 @@ ] }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/parse-playground/package.json b/examples/parse-playground/package.json index 6499ce5b7b..1176b2b3a3 100644 --- a/examples/parse-playground/package.json +++ b/examples/parse-playground/package.json @@ -45,6 +45,6 @@ "screenshot": "examples/parse-playground.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/pixel-basics/package.json b/examples/pixel-basics/package.json index ba03d5bdce..54815faa45 100644 --- a/examples/pixel-basics/package.json +++ b/examples/pixel-basics/package.json @@ -25,6 +25,6 @@ "screenshot": "pixel/pixel-basics.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/poisson-circles/package.json b/examples/poisson-circles/package.json index 28eb8d83eb..223bdbd1e1 100644 --- a/examples/poisson-circles/package.json +++ b/examples/poisson-circles/package.json @@ -31,6 +31,6 @@ "screenshot": "poisson/poisson.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/poly-spline/package.json b/examples/poly-spline/package.json index 697e738508..4cbb3de5ac 100644 --- a/examples/poly-spline/package.json +++ b/examples/poly-spline/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/poly-spline.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/porter-duff/package.json b/examples/porter-duff/package.json index 6c25da6578..902228c663 100644 --- a/examples/porter-duff/package.json +++ b/examples/porter-duff/package.json @@ -25,6 +25,6 @@ "screenshot": "porter-duff/porter-duff2.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/ramp-synth/package.json b/examples/ramp-synth/package.json index 0a951ad3ca..aa28e70ab1 100644 --- a/examples/ramp-synth/package.json +++ b/examples/ramp-synth/package.json @@ -36,6 +36,6 @@ "screenshot": "examples/ramp-synth.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/rdom-basics/package.json b/examples/rdom-basics/package.json index a70d3ec4a2..8f56b9a059 100644 --- a/examples/rdom-basics/package.json +++ b/examples/rdom-basics/package.json @@ -32,6 +32,6 @@ ] }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/rdom-dnd/package.json b/examples/rdom-dnd/package.json index f547effbc1..433b69b43e 100644 --- a/examples/rdom-dnd/package.json +++ b/examples/rdom-dnd/package.json @@ -31,6 +31,6 @@ "screenshot": "examples/rdom-dnd.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/rdom-lissajous/package.json b/examples/rdom-lissajous/package.json index 19c84faaa8..f9946c991e 100644 --- a/examples/rdom-lissajous/package.json +++ b/examples/rdom-lissajous/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/rdom-lissajous.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/rdom-search-docs/package.json b/examples/rdom-search-docs/package.json index 3dbfbfa141..80ed67afb7 100644 --- a/examples/rdom-search-docs/package.json +++ b/examples/rdom-search-docs/package.json @@ -37,6 +37,6 @@ ] }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/rdom-svg-nodes/package.json b/examples/rdom-svg-nodes/package.json index 4dde7a3066..a41a167422 100644 --- a/examples/rdom-svg-nodes/package.json +++ b/examples/rdom-svg-nodes/package.json @@ -34,6 +34,6 @@ "screenshot": "examples/rdom-svg-nodes.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/rotating-voronoi/package.json b/examples/rotating-voronoi/package.json index d2344d9fd6..1df325edbe 100644 --- a/examples/rotating-voronoi/package.json +++ b/examples/rotating-voronoi/package.json @@ -54,6 +54,6 @@ "screenshot": "examples/rotating-voronoi.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/router-basics/package.json b/examples/router-basics/package.json index 1cf2799547..c7a20baf4a 100644 --- a/examples/router-basics/package.json +++ b/examples/router-basics/package.json @@ -34,6 +34,6 @@ "screenshot": "examples/router-basics.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/rstream-dataflow/package.json b/examples/rstream-dataflow/package.json index eb46309ab9..46fc724fbd 100644 --- a/examples/rstream-dataflow/package.json +++ b/examples/rstream-dataflow/package.json @@ -35,6 +35,6 @@ ] }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/rstream-event-loop/package.json b/examples/rstream-event-loop/package.json index 0a5b24efb2..4fa01fcab8 100644 --- a/examples/rstream-event-loop/package.json +++ b/examples/rstream-event-loop/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/rstream-event-loop.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/rstream-grid/package.json b/examples/rstream-grid/package.json index ed75d58268..8f9a508d08 100644 --- a/examples/rstream-grid/package.json +++ b/examples/rstream-grid/package.json @@ -45,6 +45,6 @@ "screenshot": "examples/rstream-grid.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/rstream-hdom/package.json b/examples/rstream-hdom/package.json index 770f7a3f65..af8531b9af 100644 --- a/examples/rstream-hdom/package.json +++ b/examples/rstream-hdom/package.json @@ -23,6 +23,6 @@ "process": false }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/rstream-spreadsheet/package.json b/examples/rstream-spreadsheet/package.json index fa8971f053..758cc505cc 100644 --- a/examples/rstream-spreadsheet/package.json +++ b/examples/rstream-spreadsheet/package.json @@ -48,6 +48,6 @@ "screenshot": "examples/rstream-spreadsheet.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/scenegraph-image/package.json b/examples/scenegraph-image/package.json index 8be1b607cc..aca4a3e2fe 100644 --- a/examples/scenegraph-image/package.json +++ b/examples/scenegraph-image/package.json @@ -41,6 +41,6 @@ "screenshot": "examples/scenegraph-image.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/scenegraph/package.json b/examples/scenegraph/package.json index e3813592c9..8aba0805a2 100644 --- a/examples/scenegraph/package.json +++ b/examples/scenegraph/package.json @@ -39,6 +39,6 @@ "screenshot": "examples/scenegraph.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/shader-ast-canvas2d/package.json b/examples/shader-ast-canvas2d/package.json index 1fe2b26de9..eb220f828e 100644 --- a/examples/shader-ast-canvas2d/package.json +++ b/examples/shader-ast-canvas2d/package.json @@ -27,6 +27,6 @@ "screenshot": "shader-ast/shader-ast-01.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/shader-ast-evo/package.json b/examples/shader-ast-evo/package.json index acbe7b2e6d..660a44fdcb 100644 --- a/examples/shader-ast-evo/package.json +++ b/examples/shader-ast-evo/package.json @@ -37,6 +37,6 @@ "screenshot": "examples/shader-ast-evo.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/shader-ast-noise/package.json b/examples/shader-ast-noise/package.json index 855ff1f5a9..f6312754b4 100644 --- a/examples/shader-ast-noise/package.json +++ b/examples/shader-ast-noise/package.json @@ -28,6 +28,6 @@ "screenshot": "examples/shader-ast-noise.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/shader-ast-raymarch/package.json b/examples/shader-ast-raymarch/package.json index d59e020cb5..37a0bdc4ea 100644 --- a/examples/shader-ast-raymarch/package.json +++ b/examples/shader-ast-raymarch/package.json @@ -28,6 +28,6 @@ "screenshot": "shader-ast/shader-ast-raymarch.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/shader-ast-sdf2d/package.json b/examples/shader-ast-sdf2d/package.json index d9fa361c35..2d5aa69d78 100644 --- a/examples/shader-ast-sdf2d/package.json +++ b/examples/shader-ast-sdf2d/package.json @@ -28,6 +28,6 @@ "screenshot": "examples/shader-ast-sdf2d.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/shader-ast-tunnel/package.json b/examples/shader-ast-tunnel/package.json index 931ab2c522..854cc06e6a 100644 --- a/examples/shader-ast-tunnel/package.json +++ b/examples/shader-ast-tunnel/package.json @@ -35,6 +35,6 @@ "screenshot": "examples/shader-ast-tunnel.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/shader-graph/package.json b/examples/shader-graph/package.json index 9ad72e892c..88fbc21d2b 100644 --- a/examples/shader-graph/package.json +++ b/examples/shader-graph/package.json @@ -39,6 +39,6 @@ "screenshot": "examples/shader-graph.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/soa-ecs/package.json b/examples/soa-ecs/package.json index ef03d05c02..6ad2163da9 100644 --- a/examples/soa-ecs/package.json +++ b/examples/soa-ecs/package.json @@ -44,6 +44,6 @@ "screenshot": "examples/soa-ecs-100k.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/stratified-grid/package.json b/examples/stratified-grid/package.json index b6fd3ad308..b4ec27ed50 100644 --- a/examples/stratified-grid/package.json +++ b/examples/stratified-grid/package.json @@ -31,6 +31,6 @@ "screenshot": "poisson/stratified-grid.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/svg-barchart/package.json b/examples/svg-barchart/package.json index 3e2b37659c..0238b81ec1 100644 --- a/examples/svg-barchart/package.json +++ b/examples/svg-barchart/package.json @@ -26,6 +26,6 @@ "screenshot": "examples/svg-barchart.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/svg-particles/package.json b/examples/svg-particles/package.json index c95e340379..41bba9030e 100644 --- a/examples/svg-particles/package.json +++ b/examples/svg-particles/package.json @@ -23,6 +23,6 @@ }, "thi.ng": {}, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/svg-waveform/package.json b/examples/svg-waveform/package.json index 0203276fc1..2de146f4e2 100644 --- a/examples/svg-waveform/package.json +++ b/examples/svg-waveform/package.json @@ -36,6 +36,6 @@ "screenshot": "examples/svg-waveform.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/talk-slides/package.json b/examples/talk-slides/package.json index c7154114c3..1a850372f6 100644 --- a/examples/talk-slides/package.json +++ b/examples/talk-slides/package.json @@ -33,6 +33,6 @@ "screenshot": "examples/talk-slides.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/text-canvas/package.json b/examples/text-canvas/package.json index 4deb3a7fca..3e0c96f55c 100644 --- a/examples/text-canvas/package.json +++ b/examples/text-canvas/package.json @@ -28,6 +28,6 @@ "screenshot": "examples/text-canvas.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/todo-list/package.json b/examples/todo-list/package.json index 2b2513e021..578d230264 100644 --- a/examples/todo-list/package.json +++ b/examples/todo-list/package.json @@ -32,6 +32,6 @@ "screenshot": "examples/todo-list.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/transducers-hdom/package.json b/examples/transducers-hdom/package.json index 019dd165c7..f5792711d3 100644 --- a/examples/transducers-hdom/package.json +++ b/examples/transducers-hdom/package.json @@ -28,6 +28,6 @@ ] }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/triple-query/package.json b/examples/triple-query/package.json index c74f2488cc..5b026dbb8e 100644 --- a/examples/triple-query/package.json +++ b/examples/triple-query/package.json @@ -41,6 +41,6 @@ "screenshot": "examples/triple-query.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/webgl-cube/package.json b/examples/webgl-cube/package.json index d50b96b2f4..cb62e0c0e0 100644 --- a/examples/webgl-cube/package.json +++ b/examples/webgl-cube/package.json @@ -36,6 +36,6 @@ "screenshot": "examples/webgl-cube.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/webgl-cubemap/package.json b/examples/webgl-cubemap/package.json index 01153c5dfd..5123c55322 100644 --- a/examples/webgl-cubemap/package.json +++ b/examples/webgl-cubemap/package.json @@ -37,6 +37,6 @@ "screenshot": "examples/webgl-cubemap.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/webgl-grid/package.json b/examples/webgl-grid/package.json index 111b3fc0af..3da93715b6 100644 --- a/examples/webgl-grid/package.json +++ b/examples/webgl-grid/package.json @@ -39,6 +39,6 @@ "screenshot": "examples/webgl-grid.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/webgl-msdf/package.json b/examples/webgl-msdf/package.json index c8f442e2e1..0bf6634945 100644 --- a/examples/webgl-msdf/package.json +++ b/examples/webgl-msdf/package.json @@ -46,6 +46,6 @@ "screenshot": "examples/webgl-msdf.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/webgl-multipass/package.json b/examples/webgl-multipass/package.json index 6f7c327361..274091bf4c 100644 --- a/examples/webgl-multipass/package.json +++ b/examples/webgl-multipass/package.json @@ -26,6 +26,6 @@ "readme": true }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/webgl-shadertoy/package.json b/examples/webgl-shadertoy/package.json index 2c0549e09a..c1affe9806 100644 --- a/examples/webgl-shadertoy/package.json +++ b/examples/webgl-shadertoy/package.json @@ -27,6 +27,6 @@ "screenshot": "examples/webgl-shadertoy.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/webgl-ssao/package.json b/examples/webgl-ssao/package.json index 096582760e..5c04277ef7 100644 --- a/examples/webgl-ssao/package.json +++ b/examples/webgl-ssao/package.json @@ -40,6 +40,6 @@ "screenshot": "examples/webgl-ssao.jpg" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/wolfram/package.json b/examples/wolfram/package.json index e556328769..19609effea 100644 --- a/examples/wolfram/package.json +++ b/examples/wolfram/package.json @@ -34,6 +34,6 @@ "screenshot": "examples/wolfram.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/examples/xml-converter/package.json b/examples/xml-converter/package.json index ec88574fab..790644fde7 100644 --- a/examples/xml-converter/package.json +++ b/examples/xml-converter/package.json @@ -38,6 +38,6 @@ "screenshot": "examples/xml-converter.png" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@types/snowpack-env": "^2.3.3" } } diff --git a/package.json b/package.json index 5513002ae6..a064aec9b7 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "@microsoft/api-extractor": "^7.12.0", "@snowpack/plugin-typescript": "^1.1.1", "@snowpack/plugin-webpack": "^2.1.2", - "@thi.ng/snowpack-env": "^2.3.2", + "@types/snowpack-env": "^2.3.3", "benchmark": "^2.1.4", "file-loader": "^6.2.0", "gzip-size": "^6.0.0", diff --git a/scripts/make-example b/scripts/make-example index 43cd95abfc..91d543cfb4 100755 --- a/scripts/make-example +++ b/scripts/make-example @@ -10,8 +10,6 @@ mkdir -p "$MODULE" echo "creating /src folder..." mkdir -p "$MODULE"/src cat << EOF > "$MODULE"/src/index.ts -/// - import { \$compile } from "@thi.ng/rdom"; \$compile(["div", {}, "hello"]).mount(document.getElementById("app")!); @@ -86,11 +84,11 @@ cat << EOF > "$MODULE"/package.json "build": "../../node_modules/.bin/snowpack build" }, "devDependencies": { - "@thi.ng/snowpack-env": "^2.3.2" + "@thi.ng/snowpack-env": "^2.3.3" }, "dependencies": { "@thi.ng/api": "latest", - "@thi.ng/rdom": "latest", + "@thi.ng/rdom": "latest" }, "browserslist": [ "last 3 Chrome versions" diff --git a/yarn.lock b/yarn.lock index 8ab9ebf4b8..3e5b1becd8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2079,11 +2079,6 @@ dependencies: defer-to-connect "^2.0.0" -"@thi.ng/snowpack-env@^2.3.2": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@thi.ng/snowpack-env/-/snowpack-env-2.3.2.tgz#d1b68b696b140e2da63f992d64b4345d4c2a86d4" - integrity sha512-K1r30Txjl0iHOUlWWeGbKFAaBJsKnAiAQzDLKlqCto329kepfjgzHdfLglpc03RZ8hjTKqwY7sqDNBMgIykmgQ== - "@types/argparse@1.0.38": version "1.0.38" resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9" @@ -2205,6 +2200,11 @@ dependencies: "@types/node" "*" +"@types/snowpack-env@^2.3.3": + version "2.3.3" + resolved "https://registry.yarnpkg.com/@types/snowpack-env/-/snowpack-env-2.3.3.tgz#d2dfb1fb8557aa8bb517606d5dfa249cc861c3ff" + integrity sha512-riJuu2fR3qhBfpWJtqQtNwYJFvquiXfqdprXvZjSNmscnZbIVyHoM49ZVEM1bciKM1mWOCdjXymOYHyGh2WLtg== + "@ungap/promise-all-settled@1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" From 84cd4763a2a897d6b15b21b680fe2c8bd15c9d4a Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 18 Dec 2020 23:01:09 +0000 Subject: [PATCH 052/107] feat(dsp): add windowWelch(), add docs --- packages/dsp/src/fft/window.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/dsp/src/fft/window.ts b/packages/dsp/src/fft/window.ts index 0063febd29..f5e9a25217 100644 --- a/packages/dsp/src/fft/window.ts +++ b/packages/dsp/src/fft/window.ts @@ -27,9 +27,21 @@ export const window = (fn: WindowFn, lenOfBuf: number | FloatArray) => { return buf; }; -export const applyWindow = (a: NumericArray, b: NumericArray, out = a) => { - for (let i = a.length; --i >= 0; ) { - out[i] = a[i] * b[i]; +/** + * Takes a `signal` and `window` buffer and multiplies both elementwise. Writes + * results into `out` (or back into `signal` by default). + * + * @param signal + * @param window + * @param out + */ +export const applyWindow = ( + signal: NumericArray, + window: NumericArray, + out = signal +) => { + for (let i = signal.length; --i >= 0; ) { + out[i] = signal[i] * window[i]; } return out; }; @@ -39,6 +51,8 @@ export const windowRect: WindowFn = () => 1; export const windowBartlett: WindowFn = (i, n) => 1 - Math.abs((i - n / 2) / (n / 2)); +export const windowWelch: WindowFn = (i, n) => 1 - ((i - n / 2) / (n / 2)) ** 2; + export const windowSin: WindowFn = (i, n) => sin((PI * i) / n); export const windowSinPow: Fn = (k) => (i, n) => From f9494acdcd85265740e57976fab4622741e30a27 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 18 Dec 2020 23:03:13 +0000 Subject: [PATCH 053/107] test(dsp): update tests --- packages/dsp/test/fft.ts | 88 ++++++-------------------------------- packages/dsp/test/index.ts | 6 --- 2 files changed, 14 insertions(+), 80 deletions(-) delete mode 100644 packages/dsp/test/index.ts diff --git a/packages/dsp/test/fft.ts b/packages/dsp/test/fft.ts index af2cc785cf..1446ca25d8 100644 --- a/packages/dsp/test/fft.ts +++ b/packages/dsp/test/fft.ts @@ -1,5 +1,5 @@ import type { NumericArray } from "@thi.ng/api"; -import { eqDelta } from "@thi.ng/math"; +import { eqDelta, TAU } from "@thi.ng/math"; import * as assert from "assert"; import { add, @@ -9,6 +9,7 @@ import { fft, freqBin, ifft, + magDb, normalizeFFT, osc, powerMeanSquared, @@ -52,6 +53,8 @@ describe("fft", () => { const FS = 512; const A = 0.5; const N = 2 * FS; + const I = freqBin(FC, FS, N); + const src = osc(cos, add(FC / FS, 1 / 12), A).take(N); const win = window(windowRect, N); const fwd = fft([...src], win); @@ -62,85 +65,22 @@ describe("fft", () => { (acc, x, i) => acc + x ** 2 + fwd[1][i] ** 2, 0 ) / N; - console.log( - sumT, - sumF, - powerMeanSquared(fwd), - powerTimeIntegral(src, FS), - powerTimeIntegral(fwd, FS) - ); + assert(eqDelta(powerSumSquared(src), sumT), "sumT1"); assert(eqDelta(powerSumSquared(fwd), sumF), "sumF1"); assert(eqDelta(powerMeanSquared(src), sumT / N), "sumT2"); assert(eqDelta(powerMeanSquared(fwd), sumF / N), "sumF2"); - const normF = normalizeFFT(copyComplex(fwd), win); - const sumF2 = powerSumSquared(normF); - - const thresh = thresholdFFT(copyComplex(fwd), 1 / 10000); - const phase = spectrumPhase(thresh); - - const I = freqBin(FC, FS, N); - console.log( - "fwd", - spectrumMag(fwd)[I], - spectrumPow(fwd, false, N / 2, win)[I], - spectrumPow(fwd, true, N / 2, win)[I], - phase[I] - ); - console.log( - "norm", - spectrumMag(normF)[I], - spectrumPow(normF)[I], - spectrumPow(normF, true)[I] - ); - console.log(sumF2); - }); - - it("issue", () => { - const FC = 64; - const FS = 512; - const A = 0.5; - const N = 2 * FS; - const I = freqBin(FC, FS, N); - - // cosine osc w/ 30 degree phase shift (= 2π/12) - const src = osc(cos, add(FC / FS, 1 / 12), A).take(N); - - // compute window LUT - const win = window(windowRect, N); - - const fwd = fft(src.slice(), win); - - console.log( - "powSumSq: src =", - powerSumSquared(src), - "fft =", - powerSumSquared(fwd) - ); - console.log( - "powMeanSq: src =", - powerMeanSquared(src), - "fft =", - powerMeanSquared(fwd) - ); - - const spMag = spectrumMag(fwd); - const spPow = spectrumPow(fwd, false, N / 2, win); - const spDb = spectrumPow(fwd, true, N / 2, win); - - const spPhase = spectrumPhase(thresholdFFT(copyComplex(fwd))); - - console.log("mag[I] =", spMag[I]); - console.log("pow[I] =", spPow[I]); - console.log("dB[I] =", spDb[I]); - console.log("phase[I] =", (spPhase[I] * 180) / Math.PI, "deg"); + assert(eqDelta(spectrumMag(fwd)[I], 2 * sumF)); + assert(eqDelta(spectrumPow(fwd)[I], sumF)); + assert(eqDelta(spectrumPow(fwd, true)[I], magDb(A))); + assert(eqDelta(spectrumPhase(fwd)[I], (1 / 12) * TAU)); const norm = normalizeFFT(copyComplex(fwd), win); - const spMagNorm = spectrumMag(norm); - // since `norm` already includes the window weight adjustments - // we use a scale factor of 1.0 here - const spPowNorm = spectrumPow(norm, false, N / 2, 1); - console.log("norm mag[I] =", spMagNorm[I], "pow[I] =", spPowNorm[I]); + + assert(eqDelta(spectrumMag(norm)[I], A)); + assert(eqDelta(spectrumPow(norm, false, N / 2, 1)[I], A / 2)); + assert(eqDelta(spectrumPow(norm, true, N / 2, 1)[I], magDb(A))); + assert(eqDelta(spectrumPhase(norm)[I], (1 / 12) * TAU)); }); }); diff --git a/packages/dsp/test/index.ts b/packages/dsp/test/index.ts deleted file mode 100644 index ede69a9bd0..0000000000 --- a/packages/dsp/test/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// import * as assert from "assert"; -// import * as dsp from "../src"; - -describe("dsp", () => { - it("tests pending"); -}); From 1b7f5a5e5adda35aec5951b4055d7ff3a0166037 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 18 Dec 2020 23:52:00 +0000 Subject: [PATCH 054/107] build: update dev deps (TS4.1.3, types etc.) --- examples/commit-table-ssr/package.json | 2 +- examples/package-stats/package.json | 2 +- examples/pointfree-svg/package.json | 2 +- package.json | 16 +- packages/adapt-dpi/package.json | 8 +- packages/adjacency/package.json | 8 +- packages/api/package.json | 8 +- packages/arrays/package.json | 8 +- packages/associative/package.json | 8 +- packages/atom/package.json | 8 +- packages/bench/package.json | 8 +- packages/bencode/package.json | 8 +- packages/binary/package.json | 8 +- packages/bitfield/package.json | 8 +- packages/bitstream/package.json | 8 +- packages/cache/package.json | 8 +- packages/checks/package.json | 8 +- packages/color/package.json | 8 +- packages/colored-noise/package.json | 8 +- packages/compare/package.json | 8 +- packages/compose/package.json | 8 +- packages/csp/package.json | 8 +- packages/csv/package.json | 8 +- packages/date/package.json | 8 +- packages/dcons/package.json | 8 +- packages/defmulti/package.json | 8 +- packages/dgraph-dot/package.json | 8 +- packages/dgraph/package.json | 8 +- packages/diff/package.json | 8 +- packages/dl-asset/package.json | 8 +- packages/dlogic/package.json | 8 +- packages/dot/package.json | 8 +- packages/dsp-io-wav/package.json | 8 +- packages/dsp/package.json | 8 +- packages/dual-algebra/package.json | 8 +- packages/dynvar/package.json | 8 +- packages/ecs/package.json | 8 +- packages/egf/package.json | 8 +- packages/equiv/package.json | 8 +- packages/errors/package.json | 8 +- packages/fsm/package.json | 8 +- packages/fuzzy/package.json | 8 +- packages/geom-accel/package.json | 8 +- packages/geom-api/package.json | 8 +- packages/geom-arc/package.json | 8 +- packages/geom-clip-line/package.json | 8 +- packages/geom-clip-poly/package.json | 8 +- packages/geom-closest-point/package.json | 8 +- packages/geom-fuzz/package.json | 8 +- packages/geom-hull/package.json | 8 +- packages/geom-io-obj/package.json | 8 +- packages/geom-isec/package.json | 8 +- packages/geom-isoline/package.json | 8 +- packages/geom-poly-utils/package.json | 8 +- packages/geom-resample/package.json | 8 +- packages/geom-splines/package.json | 8 +- packages/geom-subdiv-curve/package.json | 8 +- packages/geom-tessellate/package.json | 8 +- packages/geom-voronoi/package.json | 8 +- packages/geom/package.json | 8 +- packages/gp/package.json | 8 +- packages/grid-iterators/package.json | 8 +- packages/hdiff/package.json | 8 +- packages/hdom-canvas/package.json | 8 +- packages/hdom-components/package.json | 8 +- packages/hdom-mock/package.json | 8 +- packages/hdom/package.json | 8 +- packages/heaps/package.json | 8 +- packages/hex/package.json | 8 +- packages/hiccup-canvas/package.json | 8 +- packages/hiccup-carbon-icons/package.json | 8 +- packages/hiccup-css/package.json | 8 +- packages/hiccup-html/package.json | 8 +- packages/hiccup-markdown/package.json | 8 +- packages/hiccup-svg/package.json | 8 +- packages/hiccup/package.json | 8 +- packages/idgen/package.json | 8 +- packages/iges/package.json | 8 +- packages/imgui/package.json | 8 +- packages/interceptors/package.json | 8 +- packages/intervals/package.json | 8 +- packages/iterators/package.json | 8 +- packages/layout/package.json | 8 +- packages/leb128/package.json | 8 +- packages/lsys/package.json | 8 +- packages/malloc/package.json | 8 +- packages/math/package.json | 8 +- packages/matrices/package.json | 8 +- packages/memoize/package.json | 8 +- packages/mime/package.json | 8 +- packages/morton/package.json | 8 +- packages/oquery/package.json | 8 +- packages/parse/package.json | 8 +- packages/paths/package.json | 8 +- packages/pixel/package.json | 8 +- packages/pointfree-lang/package.json | 8 +- packages/pointfree/package.json | 8 +- packages/poisson/package.json | 8 +- packages/porter-duff/package.json | 8 +- packages/prefixes/package.json | 8 +- packages/quad-edge/package.json | 8 +- packages/ramp/package.json | 8 +- packages/random/package.json | 8 +- packages/range-coder/package.json | 8 +- packages/rdom-canvas/package.json | 8 +- packages/rdom-components/package.json | 8 +- packages/rdom/package.json | 8 +- packages/resolve-map/package.json | 8 +- packages/rle-pack/package.json | 8 +- packages/router/package.json | 8 +- packages/rstream-csp/package.json | 8 +- packages/rstream-dot/package.json | 8 +- packages/rstream-gestures/package.json | 8 +- packages/rstream-graph/package.json | 8 +- packages/rstream-log-file/package.json | 8 +- packages/rstream-log/package.json | 8 +- packages/rstream-query/package.json | 8 +- packages/rstream/package.json | 8 +- packages/sax/package.json | 8 +- packages/scenegraph/package.json | 8 +- packages/seq/package.json | 8 +- packages/sexpr/package.json | 8 +- packages/shader-ast-glsl/package.json | 8 +- packages/shader-ast-js/package.json | 8 +- packages/shader-ast-stdlib/package.json | 8 +- packages/shader-ast/package.json | 8 +- packages/simd/package.json | 10 +- packages/soa/package.json | 8 +- packages/sparse/package.json | 8 +- packages/strings/package.json | 8 +- packages/system/package.json | 8 +- packages/text-canvas/package.json | 8 +- packages/transducers-binary/package.json | 8 +- packages/transducers-fsm/package.json | 8 +- packages/transducers-hdom/package.json | 8 +- packages/transducers-patch/package.json | 8 +- packages/transducers-stats/package.json | 8 +- packages/transducers/package.json | 8 +- packages/unionstruct/package.json | 8 +- packages/vclock/package.json | 8 +- packages/vector-pools/package.json | 8 +- packages/vectors/package.json | 8 +- packages/viz/package.json | 8 +- packages/webgl-msdf/package.json | 8 +- packages/webgl-shadertoy/package.json | 8 +- packages/webgl/package.json | 8 +- packages/zipper/package.json | 8 +- scripts/make-module | 10 +- yarn.lock | 185 ++++++++++++---------- 149 files changed, 691 insertions(+), 672 deletions(-) diff --git a/examples/commit-table-ssr/package.json b/examples/commit-table-ssr/package.json index 9a08353cf6..60cc1a0051 100644 --- a/examples/commit-table-ssr/package.json +++ b/examples/commit-table-ssr/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "ts-node": "^9.1.0", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "latest", diff --git a/examples/package-stats/package.json b/examples/package-stats/package.json index ac41156fc1..6b03edc49a 100644 --- a/examples/package-stats/package.json +++ b/examples/package-stats/package.json @@ -11,7 +11,7 @@ }, "devDependencies": { "ts-node": "^9.1.0", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/checks": "latest", diff --git a/examples/pointfree-svg/package.json b/examples/pointfree-svg/package.json index c90e563a45..8720e91c5e 100644 --- a/examples/pointfree-svg/package.json +++ b/examples/pointfree-svg/package.json @@ -17,7 +17,7 @@ }, "devDependencies": { "ts-node": "^9.1.0", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "thi.ng": { "online": false, diff --git a/package.json b/package.json index a064aec9b7..a5cc8cddf4 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,10 @@ "packages/*" ], "devDependencies": { - "@microsoft/api-documenter": "^7.11.3", - "@microsoft/api-extractor": "^7.12.0", + "@microsoft/api-documenter": "^7.12.1", + "@microsoft/api-extractor": "^7.12.1", "@snowpack/plugin-typescript": "^1.1.1", - "@snowpack/plugin-webpack": "^2.1.2", + "@snowpack/plugin-webpack": "^2.2.0", "@types/snowpack-env": "^2.3.3", "benchmark": "^2.1.4", "file-loader": "^6.2.0", @@ -17,12 +17,12 @@ "mocha": "^8.2.1", "nyc": "^15.1.0", "rimraf": "^3.0.2", - "rollup": "^2.34.1", + "rollup": "^2.35.1", "rollup-plugin-cleanup": "^3.2.1", - "snowpack": "^2.18.0", + "snowpack": "^2.18.5", "terser": "^5.5.1", - "ts-loader": "^8.0.11", - "typescript": "^4.1.2", + "ts-loader": "^8.0.12", + "typescript": "^4.1.3", "webpack": "^4.44.1", "webpack-cli": "^3.3.12" }, @@ -48,6 +48,6 @@ "tool:searchindex": "ts-node -P tools/tsconfig.json tools/src/build-search-index.ts" }, "resolutions": { - "typescript": "^4.1.2" + "typescript": "^4.1.3" } } diff --git a/packages/adapt-dpi/package.json b/packages/adapt-dpi/package.json index b763c41f6e..64a12fab08 100644 --- a/packages/adapt-dpi/package.json +++ b/packages/adapt-dpi/package.json @@ -38,14 +38,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "files": [ "*.js", diff --git a/packages/adjacency/package.json b/packages/adjacency/package.json index 697f9f6c36..1e273df32d 100644 --- a/packages/adjacency/package.json +++ b/packages/adjacency/package.json @@ -39,15 +39,15 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", + "@microsoft/api-extractor": "^7.12.1", "@thi.ng/vectors": "^4.8.2", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/api/package.json b/packages/api/package.json index d11ea017a3..c7e6de4e7a 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "files": [ "*.js", diff --git a/packages/arrays/package.json b/packages/arrays/package.json index 407aeb2f04..083fc71278 100644 --- a/packages/arrays/package.json +++ b/packages/arrays/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/associative/package.json b/packages/associative/package.json index b5c8bee228..4d90acfa02 100644 --- a/packages/associative/package.json +++ b/packages/associative/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/atom/package.json b/packages/atom/package.json index 9934d6f14c..ccaef11872 100644 --- a/packages/atom/package.json +++ b/packages/atom/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/bench/package.json b/packages/bench/package.json index c7113eb4f2..012ce45277 100644 --- a/packages/bench/package.json +++ b/packages/bench/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "files": [ "*.js", diff --git a/packages/bencode/package.json b/packages/bencode/package.json index 42c6e57e7c..e632de3005 100644 --- a/packages/bencode/package.json +++ b/packages/bencode/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/binary/package.json b/packages/binary/package.json index ec032348e5..5f6d7c52eb 100644 --- a/packages/binary/package.json +++ b/packages/binary/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4" diff --git a/packages/bitfield/package.json b/packages/bitfield/package.json index bf8e495c84..5e28ac00ce 100644 --- a/packages/bitfield/package.json +++ b/packages/bitfield/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/bitstream/package.json b/packages/bitstream/package.json index 69d584f387..e775389373 100644 --- a/packages/bitstream/package.json +++ b/packages/bitstream/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/errors": "^1.2.24" diff --git a/packages/cache/package.json b/packages/cache/package.json index c35cdba522..2e0ab272dc 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/checks/package.json b/packages/checks/package.json index 0e98ea1413..dfbe76c0e1 100644 --- a/packages/checks/package.json +++ b/packages/checks/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "tslib": "2.0.1" diff --git a/packages/color/package.json b/packages/color/package.json index 89f6c5157d..9e1d8a14df 100644 --- a/packages/color/package.json +++ b/packages/color/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/colored-noise/package.json b/packages/colored-noise/package.json index 5199714cf1..6fecf985ba 100644 --- a/packages/colored-noise/package.json +++ b/packages/colored-noise/package.json @@ -39,20 +39,20 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", + "@microsoft/api-extractor": "^7.12.1", "@thi.ng/api": "^6.13.4", "@thi.ng/dsp": "^2.1.5", "@thi.ng/dsp-io-wav": "^0.1.33", "@thi.ng/text-canvas": "^0.2.35", "@thi.ng/transducers": "^7.5.2", "@thi.ng/vectors": "^4.8.2", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/binary": "^2.0.19", diff --git a/packages/compare/package.json b/packages/compare/package.json index 3eab5eb8b2..d24b6bdf76 100644 --- a/packages/compare/package.json +++ b/packages/compare/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4" diff --git a/packages/compose/package.json b/packages/compose/package.json index 2bec405b24..500d3f290e 100644 --- a/packages/compose/package.json +++ b/packages/compose/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/csp/package.json b/packages/csp/package.json index 88ce02fd05..99b50bb4ce 100644 --- a/packages/csp/package.json +++ b/packages/csp/package.json @@ -43,14 +43,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/csv/package.json b/packages/csv/package.json index 4f96715b62..4b2924db80 100644 --- a/packages/csv/package.json +++ b/packages/csv/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/date/package.json b/packages/date/package.json index 77ce44a037..bdff9c1524 100644 --- a/packages/date/package.json +++ b/packages/date/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4" diff --git a/packages/dcons/package.json b/packages/dcons/package.json index 130c1ec24f..c5ec8506a1 100644 --- a/packages/dcons/package.json +++ b/packages/dcons/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/defmulti/package.json b/packages/defmulti/package.json index ed8d288cc2..6db988d9ce 100644 --- a/packages/defmulti/package.json +++ b/packages/defmulti/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/dgraph-dot/package.json b/packages/dgraph-dot/package.json index 5470fea955..add11d3ff9 100644 --- a/packages/dgraph-dot/package.json +++ b/packages/dgraph-dot/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/dgraph/package.json b/packages/dgraph/package.json index 4754e5a69a..342ca38d74 100644 --- a/packages/dgraph/package.json +++ b/packages/dgraph/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/diff/package.json b/packages/diff/package.json index 67d2cf8ce0..d8a4dd9935 100644 --- a/packages/diff/package.json +++ b/packages/diff/package.json @@ -39,13 +39,13 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/dl-asset/package.json b/packages/dl-asset/package.json index 99a2bf4c52..fd2d451179 100644 --- a/packages/dl-asset/package.json +++ b/packages/dl-asset/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/dlogic/package.json b/packages/dlogic/package.json index e630322f9c..a3fae986b5 100644 --- a/packages/dlogic/package.json +++ b/packages/dlogic/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4" diff --git a/packages/dot/package.json b/packages/dot/package.json index 9a3efc44d1..092306743c 100644 --- a/packages/dot/package.json +++ b/packages/dot/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/dsp-io-wav/package.json b/packages/dsp-io-wav/package.json index 1e0606f05b..9e15ad814e 100644 --- a/packages/dsp-io-wav/package.json +++ b/packages/dsp-io-wav/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/dsp/package.json b/packages/dsp/package.json index aa55923c00..23229e74ab 100644 --- a/packages/dsp/package.json +++ b/packages/dsp/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/dual-algebra/package.json b/packages/dual-algebra/package.json index 4a5d770a48..f23c9e5c21 100644 --- a/packages/dual-algebra/package.json +++ b/packages/dual-algebra/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4" diff --git a/packages/dynvar/package.json b/packages/dynvar/package.json index 6d23e06699..83cbd85dc4 100644 --- a/packages/dynvar/package.json +++ b/packages/dynvar/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4" diff --git a/packages/ecs/package.json b/packages/ecs/package.json index d9505524ea..aad607cfb5 100644 --- a/packages/ecs/package.json +++ b/packages/ecs/package.json @@ -39,15 +39,15 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", + "@microsoft/api-extractor": "^7.12.1", "@thi.ng/equiv": "^1.0.33", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/egf/package.json b/packages/egf/package.json index 4cd7c58f40..979be636fc 100644 --- a/packages/egf/package.json +++ b/packages/egf/package.json @@ -34,15 +34,15 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", + "@microsoft/api-extractor": "^7.12.1", "@thi.ng/equiv": "^1.0.33", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/equiv/package.json b/packages/equiv/package.json index 2e5fa0e53a..87cc1baef2 100644 --- a/packages/equiv/package.json +++ b/packages/equiv/package.json @@ -39,15 +39,15 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "benchmark": "^2.1.4", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "files": [ "*.js", diff --git a/packages/errors/package.json b/packages/errors/package.json index de88d5e17f..0dea1f4756 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "files": [ "*.js", diff --git a/packages/fsm/package.json b/packages/fsm/package.json index 4f35d284c3..6d09764064 100644 --- a/packages/fsm/package.json +++ b/packages/fsm/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/fuzzy/package.json b/packages/fuzzy/package.json index 6793255e16..456670b246 100644 --- a/packages/fuzzy/package.json +++ b/packages/fuzzy/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/geom-accel/package.json b/packages/geom-accel/package.json index 791d677ae2..64a70bb3e8 100644 --- a/packages/geom-accel/package.json +++ b/packages/geom-accel/package.json @@ -40,14 +40,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/geom-api/package.json b/packages/geom-api/package.json index f80a6b9ae0..3256b9fb0c 100644 --- a/packages/geom-api/package.json +++ b/packages/geom-api/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/geom-arc/package.json b/packages/geom-arc/package.json index b230917af5..9404af848e 100644 --- a/packages/geom-arc/package.json +++ b/packages/geom-arc/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/checks": "^2.7.11", diff --git a/packages/geom-clip-line/package.json b/packages/geom-clip-line/package.json index bb377a63cf..c701d34ee3 100644 --- a/packages/geom-clip-line/package.json +++ b/packages/geom-clip-line/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/geom-clip-poly/package.json b/packages/geom-clip-poly/package.json index 328956e34d..8fca32858a 100644 --- a/packages/geom-clip-poly/package.json +++ b/packages/geom-clip-poly/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/geom-isec": "^0.7.2", diff --git a/packages/geom-closest-point/package.json b/packages/geom-closest-point/package.json index 84e4a08de3..6e35017ecb 100644 --- a/packages/geom-closest-point/package.json +++ b/packages/geom-closest-point/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/geom-fuzz/package.json b/packages/geom-fuzz/package.json index d756cfe66c..d0fb6a913a 100644 --- a/packages/geom-fuzz/package.json +++ b/packages/geom-fuzz/package.json @@ -38,14 +38,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/geom-hull/package.json b/packages/geom-hull/package.json index fcdec023eb..75dc0953a7 100644 --- a/packages/geom-hull/package.json +++ b/packages/geom-hull/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/math": "^2.2.2", diff --git a/packages/geom-io-obj/package.json b/packages/geom-io-obj/package.json index 31741ff872..682bf876bc 100644 --- a/packages/geom-io-obj/package.json +++ b/packages/geom-io-obj/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/geom-isec/package.json b/packages/geom-isec/package.json index 5daef3f5b5..e31294f3c3 100644 --- a/packages/geom-isec/package.json +++ b/packages/geom-isec/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/geom-isoline/package.json b/packages/geom-isoline/package.json index a2a491fa01..b3216b1e33 100644 --- a/packages/geom-isoline/package.json +++ b/packages/geom-isoline/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/geom-poly-utils/package.json b/packages/geom-poly-utils/package.json index 2f39db87a9..7ee077676d 100644 --- a/packages/geom-poly-utils/package.json +++ b/packages/geom-poly-utils/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/geom-resample/package.json b/packages/geom-resample/package.json index 17a1137041..eef3bd5d8d 100644 --- a/packages/geom-resample/package.json +++ b/packages/geom-resample/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/checks": "^2.7.11", diff --git a/packages/geom-splines/package.json b/packages/geom-splines/package.json index b05527e2f0..1de0d0e727 100644 --- a/packages/geom-splines/package.json +++ b/packages/geom-splines/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/geom-subdiv-curve/package.json b/packages/geom-subdiv-curve/package.json index c277c4c34a..bf93fda01f 100644 --- a/packages/geom-subdiv-curve/package.json +++ b/packages/geom-subdiv-curve/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/geom-tessellate/package.json b/packages/geom-tessellate/package.json index 8b08eff7b7..eb8c1281d4 100644 --- a/packages/geom-tessellate/package.json +++ b/packages/geom-tessellate/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/checks": "^2.7.11", diff --git a/packages/geom-voronoi/package.json b/packages/geom-voronoi/package.json index 94f717a659..c47d801359 100644 --- a/packages/geom-voronoi/package.json +++ b/packages/geom-voronoi/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/geom/package.json b/packages/geom/package.json index b90db06e52..2e191b1d7c 100644 --- a/packages/geom/package.json +++ b/packages/geom/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/gp/package.json b/packages/gp/package.json index ec87e25f64..6a736c8b26 100644 --- a/packages/gp/package.json +++ b/packages/gp/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/grid-iterators/package.json b/packages/grid-iterators/package.json index cc036ed7e3..e1c5251630 100644 --- a/packages/grid-iterators/package.json +++ b/packages/grid-iterators/package.json @@ -40,14 +40,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/arrays": "^0.8.4", diff --git a/packages/hdiff/package.json b/packages/hdiff/package.json index bc71e4a937..e0a7a396e3 100644 --- a/packages/hdiff/package.json +++ b/packages/hdiff/package.json @@ -41,14 +41,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/hdom-canvas/package.json b/packages/hdom-canvas/package.json index 6364201a07..506addd4fc 100644 --- a/packages/hdom-canvas/package.json +++ b/packages/hdom-canvas/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/hdom-components/package.json b/packages/hdom-components/package.json index 3582352b36..3346158c69 100644 --- a/packages/hdom-components/package.json +++ b/packages/hdom-components/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/adapt-dpi": "^1.0.11", diff --git a/packages/hdom-mock/package.json b/packages/hdom-mock/package.json index 79f59411d9..1f8d90f23a 100644 --- a/packages/hdom-mock/package.json +++ b/packages/hdom-mock/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/hdom/package.json b/packages/hdom/package.json index fb69f20b1e..24a0e648d9 100644 --- a/packages/hdom/package.json +++ b/packages/hdom/package.json @@ -39,15 +39,15 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", + "@microsoft/api-extractor": "^7.12.1", "@thi.ng/atom": "^4.1.24", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/heaps/package.json b/packages/heaps/package.json index e96efa5518..3d088a6bc2 100644 --- a/packages/heaps/package.json +++ b/packages/heaps/package.json @@ -40,14 +40,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/hex/package.json b/packages/hex/package.json index 83ad17a6a1..e373ae3c05 100644 --- a/packages/hex/package.json +++ b/packages/hex/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "files": [ "*.js", diff --git a/packages/hiccup-canvas/package.json b/packages/hiccup-canvas/package.json index 5b5ddd302f..f188023a4b 100644 --- a/packages/hiccup-canvas/package.json +++ b/packages/hiccup-canvas/package.json @@ -38,14 +38,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/hiccup-carbon-icons/package.json b/packages/hiccup-carbon-icons/package.json index 01c7592b03..e0af1b5b90 100644 --- a/packages/hiccup-carbon-icons/package.json +++ b/packages/hiccup-carbon-icons/package.json @@ -41,15 +41,15 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", + "@microsoft/api-extractor": "^7.12.1", "@thi.ng/hiccup": "^3.6.4", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "files": [ "*.js", diff --git a/packages/hiccup-css/package.json b/packages/hiccup-css/package.json index da8ea92912..722c2585e4 100644 --- a/packages/hiccup-css/package.json +++ b/packages/hiccup-css/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/hiccup-html/package.json b/packages/hiccup-html/package.json index 208049495a..45939edbea 100644 --- a/packages/hiccup-html/package.json +++ b/packages/hiccup-html/package.json @@ -38,14 +38,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4" diff --git a/packages/hiccup-markdown/package.json b/packages/hiccup-markdown/package.json index b8ad470633..8bacea1530 100644 --- a/packages/hiccup-markdown/package.json +++ b/packages/hiccup-markdown/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/hiccup-svg/package.json b/packages/hiccup-svg/package.json index 61389d90e7..9ad1003601 100644 --- a/packages/hiccup-svg/package.json +++ b/packages/hiccup-svg/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/checks": "^2.7.11", diff --git a/packages/hiccup/package.json b/packages/hiccup/package.json index 8dfe929b58..5214d815af 100644 --- a/packages/hiccup/package.json +++ b/packages/hiccup/package.json @@ -39,15 +39,15 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", + "@microsoft/api-extractor": "^7.12.1", "@thi.ng/atom": "^4.1.24", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/idgen/package.json b/packages/idgen/package.json index 37857b3195..e7af7e7581 100644 --- a/packages/idgen/package.json +++ b/packages/idgen/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/iges/package.json b/packages/iges/package.json index a34dfb2be3..6625de46ee 100644 --- a/packages/iges/package.json +++ b/packages/iges/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/imgui/package.json b/packages/imgui/package.json index 950ca31597..6e03ba6d05 100644 --- a/packages/imgui/package.json +++ b/packages/imgui/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/interceptors/package.json b/packages/interceptors/package.json index 80d5425020..a889fce4b0 100644 --- a/packages/interceptors/package.json +++ b/packages/interceptors/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/intervals/package.json b/packages/intervals/package.json index 10f8047612..a0b6e5287f 100644 --- a/packages/intervals/package.json +++ b/packages/intervals/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/iterators/package.json b/packages/iterators/package.json index 0b582499bd..ef391cb2b4 100644 --- a/packages/iterators/package.json +++ b/packages/iterators/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/layout/package.json b/packages/layout/package.json index 2f808e2360..a10d3bd487 100644 --- a/packages/layout/package.json +++ b/packages/layout/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/checks": "^2.7.11" diff --git a/packages/leb128/package.json b/packages/leb128/package.json index a5850dcead..b425b6df12 100644 --- a/packages/leb128/package.json +++ b/packages/leb128/package.json @@ -40,14 +40,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/checks": "^2.7.11", diff --git a/packages/lsys/package.json b/packages/lsys/package.json index c35cfaf552..e5cc183f4a 100644 --- a/packages/lsys/package.json +++ b/packages/lsys/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/malloc/package.json b/packages/malloc/package.json index 1479c58a35..64355ef2c5 100644 --- a/packages/malloc/package.json +++ b/packages/malloc/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/math/package.json b/packages/math/package.json index d93b5639df..9366abfe5a 100644 --- a/packages/math/package.json +++ b/packages/math/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4" diff --git a/packages/matrices/package.json b/packages/matrices/package.json index fc6140be3d..a1acaff0b5 100644 --- a/packages/matrices/package.json +++ b/packages/matrices/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/memoize/package.json b/packages/memoize/package.json index b40dfbb92d..01e27bdc3a 100644 --- a/packages/memoize/package.json +++ b/packages/memoize/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4" diff --git a/packages/mime/package.json b/packages/mime/package.json index d00fb9f1cb..e0fbb9266b 100644 --- a/packages/mime/package.json +++ b/packages/mime/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4" diff --git a/packages/morton/package.json b/packages/morton/package.json index 8fa7160699..cb39be32c6 100644 --- a/packages/morton/package.json +++ b/packages/morton/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/oquery/package.json b/packages/oquery/package.json index e7dc686962..7f9cd17b55 100644 --- a/packages/oquery/package.json +++ b/packages/oquery/package.json @@ -38,14 +38,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/parse/package.json b/packages/parse/package.json index e08a0d8b5e..eba86f297f 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/paths/package.json b/packages/paths/package.json index 00212be18c..1d8971d4e7 100644 --- a/packages/paths/package.json +++ b/packages/paths/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/pixel/package.json b/packages/pixel/package.json index 30efefb8a1..c3c97368e5 100644 --- a/packages/pixel/package.json +++ b/packages/pixel/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/pointfree-lang/package.json b/packages/pointfree-lang/package.json index f6578cc260..64f46c43dc 100644 --- a/packages/pointfree-lang/package.json +++ b/packages/pointfree-lang/package.json @@ -43,14 +43,14 @@ "pub": "yarn build:release && yarn publish --access public" }, "devDependencies": { - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "pegjs": "0.11.0-master.b7b87ea", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/pointfree/package.json b/packages/pointfree/package.json index c754d7b5ba..8336b4a530 100644 --- a/packages/pointfree/package.json +++ b/packages/pointfree/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/poisson/package.json b/packages/poisson/package.json index 039c798878..51f30fc642 100644 --- a/packages/poisson/package.json +++ b/packages/poisson/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/porter-duff/package.json b/packages/porter-duff/package.json index 237297b500..0f1031868c 100644 --- a/packages/porter-duff/package.json +++ b/packages/porter-duff/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/prefixes/package.json b/packages/prefixes/package.json index 8a6872a4a2..f0c98a752e 100644 --- a/packages/prefixes/package.json +++ b/packages/prefixes/package.json @@ -38,14 +38,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "files": [ "*.js", diff --git a/packages/quad-edge/package.json b/packages/quad-edge/package.json index ddfb7663fc..aa6172ff94 100644 --- a/packages/quad-edge/package.json +++ b/packages/quad-edge/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "files": [ "*.js", diff --git a/packages/ramp/package.json b/packages/ramp/package.json index 349fbc395d..758ed87e5c 100644 --- a/packages/ramp/package.json +++ b/packages/ramp/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/arrays": "^0.8.4", diff --git a/packages/random/package.json b/packages/random/package.json index 8dbb6bd17f..977f30b439 100644 --- a/packages/random/package.json +++ b/packages/random/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/range-coder/package.json b/packages/range-coder/package.json index 8173d629f4..e6538a3059 100644 --- a/packages/range-coder/package.json +++ b/packages/range-coder/package.json @@ -39,15 +39,15 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", + "@microsoft/api-extractor": "^7.12.1", "@thi.ng/transducers": "^7.5.2", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/bitstream": "^1.1.29" diff --git a/packages/rdom-canvas/package.json b/packages/rdom-canvas/package.json index 6c1eba72ef..347a24648f 100644 --- a/packages/rdom-canvas/package.json +++ b/packages/rdom-canvas/package.json @@ -38,14 +38,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/adapt-dpi": "^1.0.11", diff --git a/packages/rdom-components/package.json b/packages/rdom-components/package.json index 72e3047411..e1955b5f23 100644 --- a/packages/rdom-components/package.json +++ b/packages/rdom-components/package.json @@ -38,14 +38,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/rdom/package.json b/packages/rdom/package.json index eeee875a95..5efd359e02 100644 --- a/packages/rdom/package.json +++ b/packages/rdom/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/resolve-map/package.json b/packages/resolve-map/package.json index 26636f745a..cb04392d0e 100644 --- a/packages/resolve-map/package.json +++ b/packages/resolve-map/package.json @@ -39,13 +39,13 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/rle-pack/package.json b/packages/rle-pack/package.json index 399ddec0f4..7074ef925f 100644 --- a/packages/rle-pack/package.json +++ b/packages/rle-pack/package.json @@ -39,15 +39,15 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "benchmark": "^2.1.4", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/bitstream": "^1.1.29", diff --git a/packages/router/package.json b/packages/router/package.json index a65e94e6ea..217f5eb7b7 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/rstream-csp/package.json b/packages/rstream-csp/package.json index ab27012bcb..d786f73d45 100644 --- a/packages/rstream-csp/package.json +++ b/packages/rstream-csp/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/csp": "^1.1.43", diff --git a/packages/rstream-dot/package.json b/packages/rstream-dot/package.json index e320a05eea..f5d35e1769 100644 --- a/packages/rstream-dot/package.json +++ b/packages/rstream-dot/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/rstream": "^5.0.10" diff --git a/packages/rstream-gestures/package.json b/packages/rstream-gestures/package.json index ec822a9607..d23c7ca8ca 100644 --- a/packages/rstream-gestures/package.json +++ b/packages/rstream-gestures/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/rstream-graph/package.json b/packages/rstream-graph/package.json index da957cbd9e..af553f5495 100644 --- a/packages/rstream-graph/package.json +++ b/packages/rstream-graph/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/rstream-log-file/package.json b/packages/rstream-log-file/package.json index 03773837d5..8e1d76a429 100644 --- a/packages/rstream-log-file/package.json +++ b/packages/rstream-log-file/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/rstream": "^5.0.10" diff --git a/packages/rstream-log/package.json b/packages/rstream-log/package.json index 32b54b2aa5..fd66634852 100644 --- a/packages/rstream-log/package.json +++ b/packages/rstream-log/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/rstream-query/package.json b/packages/rstream-query/package.json index 846aa52db6..9b0abde5f2 100644 --- a/packages/rstream-query/package.json +++ b/packages/rstream-query/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/rstream/package.json b/packages/rstream/package.json index 3f985b471a..d7e5686aa7 100644 --- a/packages/rstream/package.json +++ b/packages/rstream/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/sax/package.json b/packages/sax/package.json index 5ee4336a57..6150c1b3e9 100644 --- a/packages/sax/package.json +++ b/packages/sax/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/scenegraph/package.json b/packages/scenegraph/package.json index 3690e78153..423da71fd9 100644 --- a/packages/scenegraph/package.json +++ b/packages/scenegraph/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/seq/package.json b/packages/seq/package.json index 0ae2ac5997..ecf932f344 100644 --- a/packages/seq/package.json +++ b/packages/seq/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/sexpr/package.json b/packages/sexpr/package.json index e444fdf4bb..8adb285370 100644 --- a/packages/sexpr/package.json +++ b/packages/sexpr/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/shader-ast-glsl/package.json b/packages/shader-ast-glsl/package.json index 5bf3e04429..98c63366ba 100644 --- a/packages/shader-ast-glsl/package.json +++ b/packages/shader-ast-glsl/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/shader-ast-js/package.json b/packages/shader-ast-js/package.json index 8092a40ce1..eb1746574d 100644 --- a/packages/shader-ast-js/package.json +++ b/packages/shader-ast-js/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/shader-ast-stdlib/package.json b/packages/shader-ast-stdlib/package.json index 0380b8411e..41a730704b 100644 --- a/packages/shader-ast-stdlib/package.json +++ b/packages/shader-ast-stdlib/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/shader-ast/package.json b/packages/shader-ast/package.json index 9c04f97985..8b3b32f813 100644 --- a/packages/shader-ast/package.json +++ b/packages/shader-ast/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/simd/package.json b/packages/simd/package.json index 6c246cb224..e3066ebccf 100644 --- a/packages/simd/package.json +++ b/packages/simd/package.json @@ -41,15 +41,15 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", - "assemblyscript": "0.17.4", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", + "assemblyscript": "0.17.9", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/transducers-binary": "^0.5.33" diff --git a/packages/soa/package.json b/packages/soa/package.json index bbe80ae1af..909782ae4f 100644 --- a/packages/soa/package.json +++ b/packages/soa/package.json @@ -39,15 +39,15 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", + "@microsoft/api-extractor": "^7.12.1", "@thi.ng/equiv": "^1.0.33", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/sparse/package.json b/packages/sparse/package.json index e087397fab..b104226ee2 100644 --- a/packages/sparse/package.json +++ b/packages/sparse/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/strings/package.json b/packages/strings/package.json index e022c144b3..4cfe15a55f 100644 --- a/packages/strings/package.json +++ b/packages/strings/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/system/package.json b/packages/system/package.json index c1ef319ffc..24a387c7f3 100644 --- a/packages/system/package.json +++ b/packages/system/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/text-canvas/package.json b/packages/text-canvas/package.json index 183350ea35..9945b5c723 100644 --- a/packages/text-canvas/package.json +++ b/packages/text-canvas/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/transducers-binary/package.json b/packages/transducers-binary/package.json index 8f3a54bafa..6a0a71b2d7 100644 --- a/packages/transducers-binary/package.json +++ b/packages/transducers-binary/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/binary": "^2.0.19", diff --git a/packages/transducers-fsm/package.json b/packages/transducers-fsm/package.json index fb7b01cb3e..6d7c3c62b6 100644 --- a/packages/transducers-fsm/package.json +++ b/packages/transducers-fsm/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/transducers-hdom/package.json b/packages/transducers-hdom/package.json index 2c1c0b0110..8ef1367c8a 100644 --- a/packages/transducers-hdom/package.json +++ b/packages/transducers-hdom/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/hdom": "^8.2.13", diff --git a/packages/transducers-patch/package.json b/packages/transducers-patch/package.json index a747ca6eed..3529d6b0e9 100644 --- a/packages/transducers-patch/package.json +++ b/packages/transducers-patch/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/transducers-stats/package.json b/packages/transducers-stats/package.json index b9918b4290..9db33a4242 100644 --- a/packages/transducers-stats/package.json +++ b/packages/transducers-stats/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/checks": "^2.7.11", diff --git a/packages/transducers/package.json b/packages/transducers/package.json index a3363bfbec..42eb20f365 100644 --- a/packages/transducers/package.json +++ b/packages/transducers/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/unionstruct/package.json b/packages/unionstruct/package.json index 501f29ab27..f73cc6cd96 100644 --- a/packages/unionstruct/package.json +++ b/packages/unionstruct/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "files": [ "*.js", diff --git a/packages/vclock/package.json b/packages/vclock/package.json index 1c28859542..9d6acc90c7 100644 --- a/packages/vclock/package.json +++ b/packages/vclock/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4" diff --git a/packages/vector-pools/package.json b/packages/vector-pools/package.json index 710b24e448..9ccfede0db 100644 --- a/packages/vector-pools/package.json +++ b/packages/vector-pools/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/vectors/package.json b/packages/vectors/package.json index 4dba425f2e..e1605c1335 100644 --- a/packages/vectors/package.json +++ b/packages/vectors/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/viz/package.json b/packages/viz/package.json index 0ea5722d94..f0da1b3d83 100644 --- a/packages/viz/package.json +++ b/packages/viz/package.json @@ -45,15 +45,15 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", + "@microsoft/api-extractor": "^7.12.1", "@thi.ng/date": "^0.2.3", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/webgl-msdf/package.json b/packages/webgl-msdf/package.json index e148217ce6..f24c5a1098 100644 --- a/packages/webgl-msdf/package.json +++ b/packages/webgl-msdf/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/webgl-shadertoy/package.json b/packages/webgl-shadertoy/package.json index ac1a9f2da8..1ee21960d6 100644 --- a/packages/webgl-shadertoy/package.json +++ b/packages/webgl-shadertoy/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/packages/webgl/package.json b/packages/webgl/package.json index 78de054df2..9d35dcd3d9 100644 --- a/packages/webgl/package.json +++ b/packages/webgl/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/adapt-dpi": "^1.0.11", diff --git a/packages/zipper/package.json b/packages/zipper/package.json index a0b7a051ad..fde39e2671 100644 --- a/packages/zipper/package.json +++ b/packages/zipper/package.json @@ -39,14 +39,14 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.14.10", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4", diff --git a/scripts/make-module b/scripts/make-module index c1bd36e01d..5c140a6724 100755 --- a/scripts/make-module +++ b/scripts/make-module @@ -84,14 +84,14 @@ cat << EOF > "$MODULE"/package.json }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.12.0", - "@types/mocha": "^8.0.3", - "@types/node": "^14.6.1", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", "mocha": "^8.2.1", "nyc": "^15.1.0", - "ts-node": "^9.0.0", + "ts-node": "^9.1.1", "typedoc": "^0.19.2", - "typescript": "^4.1.2" + "typescript": "^4.1.3" }, "dependencies": { "@thi.ng/api": "^6.13.4" diff --git a/yarn.lock b/yarn.lock index 3e5b1becd8..0baf689ab7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1752,37 +1752,37 @@ npmlog "^4.1.2" write-file-atomic "^2.3.0" -"@microsoft/api-documenter@^7.11.3": - version "7.11.3" - resolved "https://registry.yarnpkg.com/@microsoft/api-documenter/-/api-documenter-7.11.3.tgz#35ac2eaac9ab5cd31ab53b858937863601bcbc7c" - integrity sha512-tXdd+zWqufKDbbocIgMRB1AyRj0HiAI+gTIvCyAtJX9KOGFYreTt2kFPzFssPBMeNycq58zXl0fXRr+vA7WnNA== - dependencies: - "@microsoft/api-extractor-model" "7.12.0" - "@microsoft/tsdoc" "0.12.19" - "@rushstack/node-core-library" "3.35.1" - "@rushstack/ts-command-line" "4.7.7" +"@microsoft/api-documenter@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@microsoft/api-documenter/-/api-documenter-7.12.1.tgz#97a4eee87cbe775f363f7a1f46c57c57ae0bf6fd" + integrity sha512-biX5s/UX6KbqBW5GHEykJ0LM3sfb177lH/2nMp4C1pytqRKz4mmPkqWrHpvx7gpzOyDGj2qvzipDH5xK6LIJVg== + dependencies: + "@microsoft/api-extractor-model" "7.12.1" + "@microsoft/tsdoc" "0.12.24" + "@rushstack/node-core-library" "3.35.2" + "@rushstack/ts-command-line" "4.7.8" colors "~1.2.1" js-yaml "~3.13.1" resolve "~1.17.0" -"@microsoft/api-extractor-model@7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.12.0.tgz#ad5589c166b31dad3c8669b46b050f8bc4056f1b" - integrity sha512-TxoAbL/lauS3k/brBWVsiQTnyHBwHrAGJhTuiD0tWS/eu4dLNULchcSQfcOaFS91OgDEz4lMMbClgChFuo+53Q== +"@microsoft/api-extractor-model@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.12.1.tgz#1f10915c434048da34e1c07845ba2623d5f23f66" + integrity sha512-Hw+kYfUb1gt6xPWGFW8APtLVWeNEWz4JE6PbLkSHw/j+G1hAaStzgxhBx3GOAWM/G0SCDGVJOpd5YheVOyu/KQ== dependencies: - "@microsoft/tsdoc" "0.12.19" - "@rushstack/node-core-library" "3.35.1" + "@microsoft/tsdoc" "0.12.24" + "@rushstack/node-core-library" "3.35.2" -"@microsoft/api-extractor@^7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.12.0.tgz#3ab602cebaa18d357afc67471abba484d8dc20d4" - integrity sha512-YDd7AUkIayPLooMasDyV4vle1TLUQhFp2v/tGdRU+WAVbnyVUDXXa20WEfbPEZ4QVlgN+77EX6f2K6GyKd713A== - dependencies: - "@microsoft/api-extractor-model" "7.12.0" - "@microsoft/tsdoc" "0.12.19" - "@rushstack/node-core-library" "3.35.1" - "@rushstack/rig-package" "0.2.8" - "@rushstack/ts-command-line" "4.7.7" +"@microsoft/api-extractor@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.12.1.tgz#4204be6c9f845d7d1796b6d51c58bcb25e7267e9" + integrity sha512-lleLrKkqiRvOQeoRMSHQY0wl/j9SxRVd9+Btyh/WWw0kHNy7nAKyzGmejvlz2XTn13H0elJWV6C3dxhaQy4mtA== + dependencies: + "@microsoft/api-extractor-model" "7.12.1" + "@microsoft/tsdoc" "0.12.24" + "@rushstack/node-core-library" "3.35.2" + "@rushstack/rig-package" "0.2.9" + "@rushstack/ts-command-line" "4.7.8" colors "~1.2.1" lodash "~4.17.15" resolve "~1.17.0" @@ -1790,10 +1790,10 @@ source-map "~0.6.1" typescript "~4.0.5" -"@microsoft/tsdoc@0.12.19": - version "0.12.19" - resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.12.19.tgz#2173ccb92469aaf62031fa9499d21b16d07f9b57" - integrity sha512-IpgPxHrNxZiMNUSXqR1l/gePKPkfAmIKoDRP9hp7OwjU29ZR8WCJsOJ8iBKgw0Qk+pFwR+8Y1cy8ImLY6e9m4A== +"@microsoft/tsdoc@0.12.24": + version "0.12.24" + resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.12.24.tgz#30728e34ebc90351dd3aff4e18d038eed2c3e098" + integrity sha512-Mfmij13RUTmHEMi9vRUhMXD7rnGR2VvxeNYtaGtaJ4redwwjT4UXYJ+nzmVJF7hhd4pn/Fx5sncDKxMVFJSWPg== "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -1989,10 +1989,10 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@rushstack/node-core-library@3.35.1": - version "3.35.1" - resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.35.1.tgz#f228f010c6ec139c2f363a49dde8faed9a7167fe" - integrity sha512-ZwnXp2loZyVUgrZ+fEKKF/EHl0ikcy6SCsd34ewYXoEAs0XWIy2VS9bemrfaFtd2VzJ/G/ZbP3xHkqRnUPKJ4Q== +"@rushstack/node-core-library@3.35.2": + version "3.35.2" + resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.35.2.tgz#21ca879b5051a5ebafa952fafcd648a07a142bcb" + integrity sha512-SPd0uG7mwsf3E30np9afCUhtaM1SBpibrbxOXPz82KWV6SQiPUtXeQfhXq9mSnGxOb3WLWoSDe7AFxQNex3+kQ== dependencies: "@types/node" "10.17.13" colors "~1.2.1" @@ -2004,19 +2004,19 @@ timsort "~0.3.0" z-schema "~3.18.3" -"@rushstack/rig-package@0.2.8": - version "0.2.8" - resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.2.8.tgz#9ac26f56b3917bfa36f91bfe037e2c3a53977a6c" - integrity sha512-Ltjeg1a5Sx7XTW9oBxmcfhHseBLnH7I/8d6tAtjx5s0r7F6WmNVJdxVmt86qNfXcFRsiGNrzLqjMwlcX3GyldQ== +"@rushstack/rig-package@0.2.9": + version "0.2.9" + resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.2.9.tgz#57ef94e7f7703b18e275b603d3f59a1a16580716" + integrity sha512-4tqsZ/m+BjeNAGeAJYzPF53CT96TsAYeZ3Pq3T4tb1pGGM3d3TWfkmALZdKNhpRlAeShKUrb/o/f/0sAuK/1VQ== dependencies: "@types/node" "10.17.13" resolve "~1.17.0" strip-json-comments "~3.1.1" -"@rushstack/ts-command-line@4.7.7": - version "4.7.7" - resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.7.7.tgz#3a983de1895a931e879ecdc8037251af00c4e78b" - integrity sha512-COSDys0WTVCORKam2hsTL32As4fHAf1RqC6FKS98hgR0Z90nh1JX8fGNkvSdxaZ6dOuNTJj3txh+SpWoHJoZJA== +"@rushstack/ts-command-line@4.7.8": + version "4.7.8" + resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.7.8.tgz#3aa77cf544c571be3206fc2bcba20c7a096ed254" + integrity sha512-8ghIWhkph7NnLCMDJtthpsb7TMOsVGXVDvmxjE/CeklTqjbbUFBjGXizJfpbEkRQTELuZQ2+vGn7sGwIWKN2uA== dependencies: "@types/argparse" "1.0.38" argparse "~1.0.9" @@ -2052,10 +2052,10 @@ execa "^4.0.3" npm-run-path "^4.0.1" -"@snowpack/plugin-webpack@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@snowpack/plugin-webpack/-/plugin-webpack-2.1.2.tgz#857a1a1ea9bcf76b9c4c5cb4f0dd372938a78e4d" - integrity sha512-i9Ny6lXkVCI5dwyKLuxAma2msUNlDOLZK2HqnAJmFzjwuoCKBx4m9dxfZVPHUTLbvENoW1JFUxGQ+8P3lkw89Q== +"@snowpack/plugin-webpack@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@snowpack/plugin-webpack/-/plugin-webpack-2.2.0.tgz#75037e3e9f9f42d5b4690a6ef3fd15ad47ec129d" + integrity sha512-+iajIe0Vrcwm0BuN2Lu5URWMMxKc9kRsHoikr36l0I0f3/TUqXrqV5uJdC/bIK6eaodzQnk8fvV6ecryzviGig== dependencies: "@babel/core" "^7.0.0" "@babel/preset-env" "^7.12.1" @@ -2094,7 +2094,7 @@ "@types/node" "*" "@types/responselike" "*" -"@types/cheerio@^0.22.22": +"@types/cheerio@0.22.22": version "0.22.22" resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.22.tgz#ae71cf4ca59b8bbaf34c99af7a5d6c8894988f5f" integrity sha512-05DYX4zU96IBfZFY+t3Mh88nlwSMtmmzSYaQkKN48T495VV1dkHSah6qYyDTN5ngaS0i0VonH37m+RuzSM0YiA== @@ -2151,10 +2151,10 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= -"@types/mocha@^8.0.3": - version "8.0.3" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.0.3.tgz#51b21b6acb6d1b923bbdc7725c38f9f455166402" - integrity sha512-vyxR57nv8NfcU0GZu8EUXZLTbCMupIUwy95LJ6lllN+JRPG25CwMHoB1q5xKh8YKhQnHYRAn4yW2yuHbf/5xgg== +"@types/mocha@^8.2.0": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.0.tgz#3eb56d13a1de1d347ecb1957c6860c911704bc44" + integrity sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ== "@types/node@*", "@types/node@>= 8": version "14.6.1" @@ -2166,10 +2166,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.13.tgz#ccebcdb990bd6139cd16e84c39dc2fb1023ca90c" integrity sha512-pMCcqU2zT4TjqYFrWtYHKal7Sl30Ims6ulZ4UFXxI4xbtQqK/qqKwkDoBFCfooRqqmRu9vY3xaJRwxSh673aYg== -"@types/node@^14.14.10": - version "14.14.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.10.tgz#5958a82e41863cfc71f2307b3748e3491ba03785" - integrity sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ== +"@types/node@^14.14.14": + version "14.14.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.14.tgz#f7fd5f3cc8521301119f63910f0fb965c7d761ae" + integrity sha512-UHnOPWVWV1z+VV8k6L1HhG7UbGBgIdghqF3l9Ny9ApPghbjICXkUJSd/b9gOgQfjM1r+37cipdw/HJ3F6ICEnQ== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -2671,10 +2671,10 @@ asn1@~0.2.3: dependencies: safer-buffer "~2.1.0" -assemblyscript@0.17.4: - version "0.17.4" - resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.17.4.tgz#d4611db89a4294335ad47ec3c6661a26a4428771" - integrity sha512-4ZXY40CuB4kDYgUJr02oI0d201fvOkbRipcubplLd1U2mUC8LHdVKE/SJZw8MoRjU189GSGAEK25lkHmf6LiHw== +assemblyscript@0.17.9: + version "0.17.9" + resolved "https://registry.yarnpkg.com/assemblyscript/-/assemblyscript-0.17.9.tgz#b43bbf797b424a12f411c96f7f488549aab7f821" + integrity sha512-uy7c2+f0d2v8OJDrTJbyFPrNxtAwwzmw/1EcckSi75QnUlPqQhZhYPPSRpPIyWCfi94DRoRwsU389FszdrEZtw== dependencies: binaryen "98.0.0-nightly.20201109" long "^4.0.0" @@ -2684,7 +2684,7 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assert@^1.1.1: +assert@^1.1.1, assert@^1.4.1: version "1.5.0" resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== @@ -4553,10 +4553,10 @@ escodegen@^1.14.1: optionalDependencies: source-map "~0.6.1" -esinstall@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/esinstall/-/esinstall-0.4.0.tgz#b228ed75919b0b87ca0c28ab28f6888d59b92788" - integrity sha512-aOGbM1/AYSPMBspYmmNcqlhmUEpVh0wEXj6+IKP8W+rdyyXPYzYOEtjilH8XDc9P7UFTeB8VIfdtJiLGQkpDVA== +esinstall@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/esinstall/-/esinstall-0.5.2.tgz#933650258e279a8689316e21db67459d972f3434" + integrity sha512-6vvYBxFXhmRSWl8xs8thEhysuSkhFhtHEYg5QN8nuHffAu4Vwg9DwfgNxGJnFjzxLRcPUpA/3/DKHZovJkidOQ== dependencies: "@rollup/plugin-alias" "^3.0.1" "@rollup/plugin-commonjs" "^16.0.0" @@ -4567,6 +4567,7 @@ esinstall@^0.4.0: cjs-module-lexer "^1.0.0" es-module-lexer "^0.3.24" is-builtin-module "^3.0.0" + is-valid-identifier "^2.0.2" kleur "^4.1.1" mkdirp "^1.0.3" rimraf "^3.0.0" @@ -6086,6 +6087,13 @@ is-utf8@^0.2.0: resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= +is-valid-identifier@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-valid-identifier/-/is-valid-identifier-2.0.2.tgz#146d9dbf29821b8118580b039d2203aa4bd1da4b" + integrity sha512-mpS5EGqXOwzXtKAg6I44jIAqeBfntFLxpAth1rrKbxtKyI6LPktyDYpHBI+tHlduhhX/SF26mFXmxQu995QVqg== + dependencies: + assert "^1.4.1" + is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -9063,13 +9071,20 @@ rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: dependencies: estree-walker "^0.6.1" -rollup@^2.23.0, rollup@^2.34.0, rollup@^2.34.1: +rollup@^2.23.0, rollup@^2.34.0: version "2.34.1" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.34.1.tgz#a387230df02c58b242794a213dfb68b42de2c8fb" integrity sha512-tGveB6NU5x4MS/iXaIsjfUkEv4hxzJJ4o0FRy5LO62Ndx3R2cmE1qsLYlSfRkvHUUPqWiFoxEm8pRftzh1a5HA== optionalDependencies: fsevents "~2.1.2" +rollup@^2.35.1: + version "2.35.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.35.1.tgz#e6bc8d10893556a638066f89e8c97f422d03968c" + integrity sha512-q5KxEyWpprAIcainhVy6HfRttD9kutQpHbeqDTWnqAFNJotiojetK6uqmcydNMymBEtC4I8bCYR+J3mTMqeaUA== + optionalDependencies: + fsevents "~2.1.2" + run-async@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -9269,15 +9284,19 @@ skip-regex@^1.0.2: resolved "https://registry.yarnpkg.com/skip-regex/-/skip-regex-1.0.2.tgz#ac655d77e7c771ac2b9f37585fea37bff56ad65b" integrity sha512-pEjMUbwJ5Pl/6Vn6FsamXHXItJXSRftcibixDmNCWbWhic0hzHrwkMZo0IZ7fMRH9KxcWDFSkzhccB4285PutA== -skypack@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/skypack/-/skypack-0.1.0.tgz#6e954a08ecbe22b1541a07b80256bf74300a384d" - integrity sha512-VDMc0YLMh1RwLLuvlz0HcwwbN1vUILFD773y/52buwVsKxbsIIJ+bGKJ/01naKXRsr8HYUPV0KAJn47S6OYGLQ== +skypack@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/skypack/-/skypack-0.2.1.tgz#700380a639ba13e5dc5a861932430ee5606e8d71" + integrity sha512-+LE2zg5Hdcxnq2PYfo6k/jqLA7vlCljZuGo6x9x9+83GvGULvdBGLCLIa5wUhcHQUIts4m9hB+f3asTPL/TcsA== dependencies: cacache "^15.0.0" cachedir "^2.3.0" + esinstall "^0.5.1" + etag "^1.8.1" + find-up "^5.0.0" got "^11.1.4" kleur "^4.1.0" + mkdirp "^1.0.3" p-queue "^6.2.1" rimraf "^3.0.0" rollup "^2.23.0" @@ -9333,14 +9352,14 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -snowpack@^2.18.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/snowpack/-/snowpack-2.18.0.tgz#13591b31305b1a23716483738e0b23cd4f491bcb" - integrity sha512-2uQEcdDZWAjyLUpOfvDI5Br54LoG51Dr3wY7ld/GSBJj+lRqb54dS9S9egBEyT0dAhyyG6/pjLbNX7KEumU+EA== +snowpack@^2.18.5: + version "2.18.5" + resolved "https://registry.yarnpkg.com/snowpack/-/snowpack-2.18.5.tgz#10a0130fb1eeecda6dfd3be1b1b60ff9849e3da4" + integrity sha512-UThUbGXn/wN7zRJDVpbC0F3uvkhu6PAgpTbV1hdAaqLvYBewT794iEMAY5mMxT27zQ+ZOyqbICaBtKtq0BgDcA== dependencies: "@snowpack/plugin-build-script" "^2.0.12" "@snowpack/plugin-run-script" "^2.2.1" - "@types/cheerio" "^0.22.22" + "@types/cheerio" "0.22.22" cacache "^15.0.0" cachedir "^2.3.0" cheerio "^1.0.0-rc.3" @@ -9351,7 +9370,7 @@ snowpack@^2.18.0: detect-port "^1.3.0" es-module-lexer "^0.3.24" esbuild "^0.8.7" - esinstall "^0.4.0" + esinstall "^0.5.1" etag "^1.8.1" execa "^4.0.3" find-cache-dir "^3.3.1" @@ -9373,7 +9392,7 @@ snowpack@^2.18.0: resolve-from "^5.0.0" rimraf "^3.0.0" signal-exit "^3.0.3" - skypack "^0.1.0" + skypack "^0.2.1" source-map "^0.7.3" strip-ansi "^6.0.0" strip-comments "^2.0.1" @@ -10074,10 +10093,10 @@ trim-off-newlines@^1.0.0: resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= -ts-loader@^8.0.11: - version "8.0.11" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.0.11.tgz#35d58a65932caacb120426eea59eca841786c899" - integrity sha512-06X+mWA2JXoXJHYAesUUL4mHFYhnmyoCdQVMXofXF552Lzd4wNwSGg7unJpttqUP7ziaruM8d7u8LUB6I1sgzA== +ts-loader@^8.0.12: + version "8.0.12" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.0.12.tgz#1de9f1de65176318c1e6d187bfc496182f8dc2a0" + integrity sha512-UIivVfGVJDdwwjgSrbtcL9Nf10c1BWnL1mxAQUVcnhNIn/P9W3nP5v60Z0aBMtc7ZrE11lMmU6+5jSgAXmGaYw== dependencies: chalk "^2.3.0" enhanced-resolve "^4.0.0" @@ -10185,10 +10204,10 @@ typedoc@^0.19.2: shelljs "^0.8.4" typedoc-default-themes "^0.11.4" -typescript@^4.1.2, typescript@~4.0.5: - version "4.1.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.2.tgz#6369ef22516fe5e10304aae5a5c4862db55380e9" - integrity sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ== +typescript@^4.1.3, typescript@~4.0.5: + version "4.1.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" + integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== uglify-js@^3.1.4: version "3.10.2" From 605e15c5ac06267d2dc9866c9128e65b94c54310 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 18 Dec 2020 23:55:44 +0000 Subject: [PATCH 055/107] refactor(paths): update toPath() (TS4.1.3) --- packages/paths/src/path.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/paths/src/path.ts b/packages/paths/src/path.ts index 50e3014473..d7e1adb3ca 100644 --- a/packages/paths/src/path.ts +++ b/packages/paths/src/path.ts @@ -19,7 +19,7 @@ import { isArray, isString } from "@thi.ng/checks"; */ export const toPath = (path: Path): readonly NumOrString[] => isArray(path) - ? path + ? path : isString(path) ? path.length > 0 ? path.split(".") From 0f7b32ace84fec2a957a851fe05c149b68d139cb Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 19 Dec 2020 00:49:01 +0000 Subject: [PATCH 056/107] build: update webpack deps, update example configs --- examples/commit-table-ssr/webpack.config.js | 4 +- examples/mandelbrot/webpack.worker.js | 4 +- examples/shader-ast-workers/webpack.worker.js | 31 + package.json | 4 +- yarn.lock | 534 ++++++++++++++---- 5 files changed, 454 insertions(+), 123 deletions(-) create mode 100644 examples/shader-ast-workers/webpack.worker.js diff --git a/examples/commit-table-ssr/webpack.config.js b/examples/commit-table-ssr/webpack.config.js index a026490e1d..fdd6630a8c 100644 --- a/examples/commit-table-ssr/webpack.config.js +++ b/examples/commit-table-ssr/webpack.config.js @@ -17,7 +17,5 @@ module.exports = { { test: /\.ts$/, use: "ts-loader" }, ], }, - node: { - process: false, - }, + node: false, }; diff --git a/examples/mandelbrot/webpack.worker.js b/examples/mandelbrot/webpack.worker.js index 9ec791aec9..a695663e3c 100644 --- a/examples/mandelbrot/webpack.worker.js +++ b/examples/mandelbrot/webpack.worker.js @@ -27,7 +27,5 @@ module.exports = { }, ], }, - node: { - process: false, - }, + node: false, }; diff --git a/examples/shader-ast-workers/webpack.worker.js b/examples/shader-ast-workers/webpack.worker.js new file mode 100644 index 0000000000..a695663e3c --- /dev/null +++ b/examples/shader-ast-workers/webpack.worker.js @@ -0,0 +1,31 @@ +module.exports = { + entry: "./src/worker.ts", + output: { + filename: "worker.js", + path: __dirname + "/public", + }, + resolve: { + extensions: [".ts", ".js"], + }, + module: { + rules: [ + { + test: /\.(png|jpg|gif)$/, + loader: "file-loader", + options: { name: "[path][hash].[ext]" }, + }, + { + test: /\.ts$/, + use: [ + { + loader: "ts-loader", + options: { + configFile: "tsconfig.worker.json", + }, + }, + ], + }, + ], + }, + node: false, +}; diff --git a/package.json b/package.json index a5cc8cddf4..3d19d8109c 100644 --- a/package.json +++ b/package.json @@ -23,8 +23,8 @@ "terser": "^5.5.1", "ts-loader": "^8.0.12", "typescript": "^4.1.3", - "webpack": "^4.44.1", - "webpack-cli": "^3.3.12" + "webpack": "^5.11.0", + "webpack-cli": "^4.2.0" }, "dependencies": { "@ygoe/msgpack": "^1.0.2" diff --git a/yarn.lock b/yarn.lock index 0baf689ab7..dad128b1f1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2106,7 +2106,23 @@ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== -"@types/estree@*": +"@types/eslint-scope@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" + integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "7.2.6" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.6.tgz#5e9aff555a975596c03a98b59ecd103decc70c3c" + integrity sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.45": version "0.0.45" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== @@ -2129,7 +2145,7 @@ resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== -"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": version "7.0.6" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== @@ -2219,21 +2235,45 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wast-parser" "1.9.0" +"@webassemblyjs/ast@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.1.tgz#76c6937716d68bf1484c15139f5ed30b9abc8bb4" + integrity sha512-uMu1nCWn2Wxyy126LlGqRVlhdTOsO/bsBRI4dNq3+6SiSuRKRQX6ejjKgh82LoGAPSq72lDUiQ4FWVaf0PecYw== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.1" + "@webassemblyjs/helper-wasm-bytecode" "1.9.1" + "@webassemblyjs/wast-parser" "1.9.1" + "@webassemblyjs/floating-point-hex-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== +"@webassemblyjs/floating-point-hex-parser@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.1.tgz#9eb0ff90a1cdeef51f36ba533ed9f06b5cdadd09" + integrity sha512-5VEKu024RySmLKTTBl9q1eO/2K5jk9ZS+2HXDBLA9s9p5IjkaXxWiDb/+b7wSQp6FRdLaH1IVGIfOex58Na2pg== + "@webassemblyjs/helper-api-error@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== +"@webassemblyjs/helper-api-error@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.1.tgz#ad89015c4246cd7f5ed0556700237f8b9c2c752f" + integrity sha512-y1lGmfm38djrScwpeL37rRR9f1D6sM8RhMpvM7CYLzOlHVboouZokXK/G88BpzW0NQBSvCCOnW5BFhten4FPfA== + "@webassemblyjs/helper-buffer@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== +"@webassemblyjs/helper-buffer@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.1.tgz#186e67ac25f9546ea7939759413987f157524133" + integrity sha512-uS6VSgieHbk/m4GSkMU5cqe/5TekdCzQso4revCIEQ3vpGZgqSSExi4jWpTWwDpAHOIAb1Jfrs0gUB9AA4n71w== + "@webassemblyjs/helper-code-frame@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" @@ -2241,11 +2281,23 @@ dependencies: "@webassemblyjs/wast-printer" "1.9.0" +"@webassemblyjs/helper-code-frame@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.1.tgz#aab177b7cc87a318a8f8664ad68e2c3828ebc42b" + integrity sha512-ZQ2ZT6Evk4DPIfD+92AraGYaFIqGm4U20e7FpXwl7WUo2Pn1mZ1v8VGH8i+Y++IQpxPbQo/UyG0Khs7eInskzA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.1" + "@webassemblyjs/helper-fsm@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== +"@webassemblyjs/helper-fsm@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.1.tgz#527e91628e84d13d3573884b3dc4c53a81dcb911" + integrity sha512-J32HGpveEqqcKFS0YbgicB0zAlpfIxJa5MjxDxhu3i5ltPcVfY5EPvKQ1suRguFPehxiUs+/hfkwPEXom/l0lw== + "@webassemblyjs/helper-module-context@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" @@ -2253,11 +2305,23 @@ dependencies: "@webassemblyjs/ast" "1.9.0" +"@webassemblyjs/helper-module-context@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.1.tgz#778670b3d471f7cf093d1e7c0dde431b54310e16" + integrity sha512-IEH2cMmEQKt7fqelLWB5e/cMdZXf2rST1JIrzWmf4XBt3QTxGdnnLvV4DYoN8pJjOx0VYXsWg+yF16MmJtolZg== + dependencies: + "@webassemblyjs/ast" "1.9.1" + "@webassemblyjs/helper-wasm-bytecode@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== +"@webassemblyjs/helper-wasm-bytecode@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.1.tgz#563f59bcf409ccf469edde168b9426961ffbf6df" + integrity sha512-i2rGTBqFUcSXxyjt2K4vm/3kkHwyzG6o427iCjcIKjOqpWH8SEem+xe82jUk1iydJO250/CvE5o7hzNAMZf0dQ== + "@webassemblyjs/helper-wasm-section@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" @@ -2268,6 +2332,16 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wasm-gen" "1.9.0" +"@webassemblyjs/helper-wasm-section@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.1.tgz#f7988f94c12b01b99a16120cb01dc099b00e4798" + integrity sha512-FetqzjtXZr2d57IECK+aId3D0IcGweeM0CbAnJHkYJkcRTHP+YcMb7Wmc0j21h5UWBpwYGb9dSkK/93SRCTrGg== + dependencies: + "@webassemblyjs/ast" "1.9.1" + "@webassemblyjs/helper-buffer" "1.9.1" + "@webassemblyjs/helper-wasm-bytecode" "1.9.1" + "@webassemblyjs/wasm-gen" "1.9.1" + "@webassemblyjs/ieee754@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" @@ -2275,6 +2349,13 @@ dependencies: "@xtuc/ieee754" "^1.2.0" +"@webassemblyjs/ieee754@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.1.tgz#3b715871ca7d75784717cf9ceca9d7b81374b8af" + integrity sha512-EvTG9M78zP1MmkBpUjGQHZc26DzPGZSLIPxYHCjQsBMo60Qy2W34qf8z0exRDtxBbRIoiKa5dFyWer/7r1aaSQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + "@webassemblyjs/leb128@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" @@ -2282,11 +2363,23 @@ dependencies: "@xtuc/long" "4.2.2" +"@webassemblyjs/leb128@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.1.tgz#b2ecaa39f9e8277cc9c707c1ca8b2aa7b27d0b72" + integrity sha512-Oc04ub0vFfLnF+2/+ki3AE+anmW4sv9uNBqb+79fgTaPv6xJsOT0dhphNfL3FrME84CbX/D1T9XT8tjFo0IIiw== + dependencies: + "@xtuc/long" "4.2.2" + "@webassemblyjs/utf8@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== +"@webassemblyjs/utf8@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.1.tgz#d02d9daab85cda3211e43caf31dca74c260a73b0" + integrity sha512-llkYtppagjCodFjo0alWOUhAkfOiQPQDIc5oA6C9sFAXz7vC9QhZf/f8ijQIX+A9ToM3c9Pq85X0EX7nx9gVhg== + "@webassemblyjs/wasm-edit@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" @@ -2301,6 +2394,20 @@ "@webassemblyjs/wasm-parser" "1.9.0" "@webassemblyjs/wast-printer" "1.9.0" +"@webassemblyjs/wasm-edit@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.1.tgz#e27a6bdbf78e5c72fa812a2fc3cbaad7c3e37578" + integrity sha512-S2IaD6+x9B2Xi8BCT0eGsrXXd8UxAh2LVJpg1ZMtHXnrDcsTtIX2bDjHi40Hio6Lc62dWHmKdvksI+MClCYbbw== + dependencies: + "@webassemblyjs/ast" "1.9.1" + "@webassemblyjs/helper-buffer" "1.9.1" + "@webassemblyjs/helper-wasm-bytecode" "1.9.1" + "@webassemblyjs/helper-wasm-section" "1.9.1" + "@webassemblyjs/wasm-gen" "1.9.1" + "@webassemblyjs/wasm-opt" "1.9.1" + "@webassemblyjs/wasm-parser" "1.9.1" + "@webassemblyjs/wast-printer" "1.9.1" + "@webassemblyjs/wasm-gen@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" @@ -2312,6 +2419,17 @@ "@webassemblyjs/leb128" "1.9.0" "@webassemblyjs/utf8" "1.9.0" +"@webassemblyjs/wasm-gen@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.1.tgz#56a0787d1fa7994fdc7bea59004e5bec7189c5fc" + integrity sha512-bqWI0S4lBQsEN5FTZ35vYzfKUJvtjNnBobB1agCALH30xNk1LToZ7Z8eiaR/Z5iVECTlBndoRQV3F6mbEqE/fg== + dependencies: + "@webassemblyjs/ast" "1.9.1" + "@webassemblyjs/helper-wasm-bytecode" "1.9.1" + "@webassemblyjs/ieee754" "1.9.1" + "@webassemblyjs/leb128" "1.9.1" + "@webassemblyjs/utf8" "1.9.1" + "@webassemblyjs/wasm-opt@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" @@ -2322,6 +2440,16 @@ "@webassemblyjs/wasm-gen" "1.9.0" "@webassemblyjs/wasm-parser" "1.9.0" +"@webassemblyjs/wasm-opt@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.1.tgz#fbdf8943a825e6dcc4cd69c3e092289fa4aec96c" + integrity sha512-gSf7I7YWVXZ5c6XqTEqkZjVs8K1kc1k57vsB6KBQscSagDNbAdxt6MwuJoMjsE1yWY1tsuL+pga268A6u+Fdkg== + dependencies: + "@webassemblyjs/ast" "1.9.1" + "@webassemblyjs/helper-buffer" "1.9.1" + "@webassemblyjs/wasm-gen" "1.9.1" + "@webassemblyjs/wasm-parser" "1.9.1" + "@webassemblyjs/wasm-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" @@ -2334,6 +2462,18 @@ "@webassemblyjs/leb128" "1.9.0" "@webassemblyjs/utf8" "1.9.0" +"@webassemblyjs/wasm-parser@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.1.tgz#5e8352a246d3f605312c8e414f7990de55aaedfa" + integrity sha512-ImM4N2T1MEIond0MyE3rXvStVxEmivQrDKf/ggfh5pP6EHu3lL/YTAoSrR7shrbKNPpeKpGesW1LIK/L4kqduw== + dependencies: + "@webassemblyjs/ast" "1.9.1" + "@webassemblyjs/helper-api-error" "1.9.1" + "@webassemblyjs/helper-wasm-bytecode" "1.9.1" + "@webassemblyjs/ieee754" "1.9.1" + "@webassemblyjs/leb128" "1.9.1" + "@webassemblyjs/utf8" "1.9.1" + "@webassemblyjs/wast-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" @@ -2346,6 +2486,18 @@ "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" +"@webassemblyjs/wast-parser@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.1.tgz#e25ef13585c060073c1db0d6bd94340fdeee7596" + integrity sha512-2xVxejXSvj3ls/o2TR/zI6p28qsGupjHhnHL6URULQRcXmryn3w7G83jQMcT7PHqUfyle65fZtWLukfdLdE7qw== + dependencies: + "@webassemblyjs/ast" "1.9.1" + "@webassemblyjs/floating-point-hex-parser" "1.9.1" + "@webassemblyjs/helper-api-error" "1.9.1" + "@webassemblyjs/helper-code-frame" "1.9.1" + "@webassemblyjs/helper-fsm" "1.9.1" + "@xtuc/long" "4.2.2" + "@webassemblyjs/wast-printer@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" @@ -2355,6 +2507,27 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" +"@webassemblyjs/wast-printer@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.1.tgz#b9f38e93652037d4f3f9c91584635af4191ed7c1" + integrity sha512-tDV8V15wm7mmbAH6XvQRU1X+oPGmeOzYsd6h7hlRLz6QpV4Ec/KKxM8OpLtFmQPLCreGxTp+HuxtH4pRIZyL9w== + dependencies: + "@webassemblyjs/ast" "1.9.1" + "@webassemblyjs/wast-parser" "1.9.1" + "@xtuc/long" "4.2.2" + +"@webpack-cli/info@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.1.0.tgz#c596d5bc48418b39df00c5ed7341bf0f102dbff1" + integrity sha512-uNWSdaYHc+f3LdIZNwhdhkjjLDDl3jP2+XBqAq9H8DjrJUvlOKdP8TNruy1yEaDfgpAIgbSAN7pye4FEHg9tYQ== + dependencies: + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.1.0.tgz#13ad38f89b6e53d1133bac0006a128217a6ebf92" + integrity sha512-7RfnMXCpJ/NThrhq4gYQYILB18xWyoQcBey81oIyVbmgbc6m5ZHHyFK+DyH7pLHJf0p14MxL4mTsoPAgBSTpIg== + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -2420,6 +2593,11 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== +acorn@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.0.4.tgz#7a3ae4191466a6984eee0fe3407a4f3aa9db8354" + integrity sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ== + address@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" @@ -2489,7 +2667,7 @@ alphanum-sort@^1.0.0: resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= -ansi-colors@4.1.1: +ansi-colors@4.1.1, ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== @@ -2612,6 +2790,11 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-back@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.1.tgz#9b80312935a52062e1a233a9c7abeb5481b30e90" + integrity sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg== + array-differ@^2.0.3: version "2.1.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" @@ -3510,6 +3693,16 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +command-line-usage@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.1.tgz#c908e28686108917758a49f45efb4f02f76bc03f" + integrity sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA== + dependencies: + array-back "^4.0.1" + chalk "^2.4.2" + table-layout "^1.0.1" + typical "^5.2.0" + commander@^2.19.0, commander@^2.20.0, commander@^2.7.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -3780,7 +3973,7 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -4116,6 +4309,11 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= +deep-extend@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -4197,11 +4395,6 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -4402,7 +4595,7 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.1, enhanced-resolve@^4.3.0: +enhanced-resolve@^4.0.0, enhanced-resolve@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== @@ -4411,6 +4604,21 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.1, enhanced-resolve@^4.3.0: memory-fs "^0.5.0" tapable "^1.0.0" +enhanced-resolve@^5.3.1: + version "5.4.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.4.0.tgz#a8bcf23b00affac9455cf71efd80844f4054f4dc" + integrity sha512-ZmqfWURB2lConOBM1JdCVfPyMRv5RdKWktLXO6123p97ovVm2CLBgw9t5MBj3jJWA6eHyOeIws9iJQoGFR4euQ== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.0.0" + +enquirer@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + entities@^1.1.1, entities@~1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" @@ -4426,7 +4634,7 @@ env-paths@^2.2.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== -envinfo@^7.3.1: +envinfo@^7.3.1, envinfo@^7.7.3: version "7.7.3" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc" integrity sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA== @@ -4584,6 +4792,14 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -4596,11 +4812,23 @@ esrecurse@^4.1.0: dependencies: estraverse "^4.1.0" +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + estree-walker@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" @@ -4636,7 +4864,7 @@ eventemitter3@^4.0.0, eventemitter3@^4.0.4: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0: +events@^3.0.0, events@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== @@ -4662,7 +4890,7 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^4.0.3: +execa@^4.0.3, execa@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== @@ -4690,13 +4918,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -4875,16 +5096,6 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -findup-sync@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" @@ -5191,6 +5402,11 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + glob@7.1.6, glob@^7.0.0, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -5203,42 +5419,6 @@ glob@7.1.6, glob@^7.0.0, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -5275,7 +5455,7 @@ got@^11.1.4: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== @@ -5429,13 +5609,6 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: version "2.8.8" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" @@ -5657,6 +5830,14 @@ import-local@^2.0.0: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -5712,7 +5893,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5: +ini@^1.3.2, ini@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== @@ -5750,11 +5931,16 @@ inquirer@^6.2.0: strip-ansi "^5.1.0" through "^2.3.6" -interpret@^1.0.0, interpret@^1.4.0: +interpret@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== + ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" @@ -6094,7 +6280,7 @@ is-valid-identifier@^2.0.2: dependencies: assert "^1.4.1" -is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.0, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -6204,7 +6390,7 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-worker@^26.5.0: +jest-worker@^26.5.0, jest-worker@^26.6.1: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== @@ -6443,6 +6629,11 @@ lerna@^3.22.1: import-local "^2.0.0" npmlog "^4.1.2" +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -6493,6 +6684,11 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== +loader-runner@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.1.0.tgz#f70bc0c29edbabdf2043e7ee73ccc3fe1c96b42d" + integrity sha512-oR4lB4WvwFoC70ocraKhn5nkKSs23t57h9udUgw8o0iH8hMXeEoRuUgfcvgUwAJ1ZpRqBvcou4N2SMvM1DwMrA== + loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" @@ -6853,7 +7049,7 @@ merge2@^1.2.3: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -6898,7 +7094,7 @@ mime-db@1.44.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== -mime-types@^2.1.12, mime-types@^2.1.26, mime-types@~2.1.19: +mime-types@^2.1.12, mime-types@^2.1.26, mime-types@^2.1.27, mime-types@~2.1.19: version "2.1.27" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== @@ -7191,7 +7387,7 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -7863,11 +8059,6 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - parse-path@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.2.tgz#ef14f0d3d77bae8dd4bc66563a4c151aac9e65aa" @@ -8044,13 +8235,20 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0: +pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" +pkg-dir@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" + integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== + dependencies: + find-up "^5.0.0" + platform@^1.3.3: version "1.3.6" resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" @@ -8745,6 +8943,13 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" +rechoir@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" + integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== + dependencies: + resolve "^1.9.0" + redent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" @@ -8769,6 +8974,11 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" +reduce-flatten@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" + integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== + regenerate-unicode-properties@^8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" @@ -8940,13 +9150,12 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" + resolve-from "^5.0.0" resolve-from@^3.0.0: version "3.0.0" @@ -8975,7 +9184,7 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2, resolve@~1.17.0: dependencies: path-parse "^1.0.6" -resolve@^1.17.0: +resolve@^1.17.0, resolve@^1.9.0: version "1.19.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== @@ -9423,7 +9632,7 @@ sort-keys@^2.0.0: dependencies: is-plain-obj "^1.0.0" -source-list-map@^2.0.0: +source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== @@ -9837,11 +10046,26 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +table-layout@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.1.tgz#8411181ee951278ad0638aea2f779a9ce42894f9" + integrity sha512-dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q== + dependencies: + array-back "^4.0.1" + deep-extend "~0.6.0" + typical "^5.2.0" + wordwrapjs "^4.0.0" + tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tapable@^2.0.0, tapable@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" + integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== + tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" @@ -9914,6 +10138,18 @@ terser-webpack-plugin@^4.0.0: terser "^5.3.4" webpack-sources "^1.4.3" +terser-webpack-plugin@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.0.3.tgz#ec60542db2421f45735c719d2e17dabfbb2e3e42" + integrity sha512-zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ== + dependencies: + jest-worker "^26.6.1" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + terser "^5.3.8" + terser@^4.1.2, terser@^4.6.3: version "4.8.0" resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" @@ -9923,7 +10159,7 @@ terser@^4.1.2, terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.3.4, terser@^5.5.1: +terser@^5.3.4, terser@^5.3.8, terser@^5.5.1: version "5.5.1" resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289" integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== @@ -10209,6 +10445,11 @@ typescript@^4.1.3, typescript@~4.0.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== +typical@^5.0.0, typical@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" + integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== + uglify-js@^3.1.4: version "3.10.2" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.2.tgz#8cfa1209fd04199cc8a7f9930ddedb30b0f1912d" @@ -10397,7 +10638,7 @@ uuid@^3.0.1, uuid@^3.3.2, uuid@^3.3.3: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -v8-compile-cache@^2.1.1: +v8-compile-cache@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== @@ -10478,6 +10719,14 @@ watchpack@^1.7.4: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.0" +watchpack@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.0.tgz#e63194736bf3aa22026f7b191cd57907b0f9f696" + integrity sha512-UjgD1mqjkG99+3lgG36at4wPnUXNvis2v1utwTgQ43C22c4LD71LsYMExdWXh4HZ+RmW+B0t1Vrg2GpXAkTOQw== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + wcwidth@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -10500,22 +10749,24 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-cli@^3.3.12: - version "3.3.12" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" - integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== +webpack-cli@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.2.0.tgz#10a09030ad2bd4d8b0f78322fba6ea43ec56aaaa" + integrity sha512-EIl3k88vaF4fSxWSgtAQR+VwicfLMTZ9amQtqS4o+TDPW9HGaEpbFBbAZ4A3ZOT5SOnMxNOzROsSTPiE8tBJPA== dependencies: - chalk "^2.4.2" - cross-spawn "^6.0.5" - enhanced-resolve "^4.1.1" - findup-sync "^3.0.0" - global-modules "^2.0.0" - import-local "^2.0.0" - interpret "^1.4.0" - loader-utils "^1.4.0" - supports-color "^6.1.0" - v8-compile-cache "^2.1.1" - yargs "^13.3.2" + "@webpack-cli/info" "^1.1.0" + "@webpack-cli/serve" "^1.1.0" + colorette "^1.2.1" + command-line-usage "^6.1.0" + commander "^6.2.0" + enquirer "^2.3.6" + execa "^4.1.0" + import-local "^3.0.2" + interpret "^2.2.0" + leven "^3.1.0" + rechoir "^0.7.0" + v8-compile-cache "^2.2.0" + webpack-merge "^4.2.2" webpack-manifest-plugin@^2.2.0: version "2.2.0" @@ -10527,6 +10778,13 @@ webpack-manifest-plugin@^2.2.0: object.entries "^1.1.0" tapable "^1.0.0" +webpack-merge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== + dependencies: + lodash "^4.17.15" + webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" @@ -10535,7 +10793,15 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack- source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.43.0, webpack@^4.44.1: +webpack-sources@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" + integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack@^4.43.0: version "4.44.2" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== @@ -10564,6 +10830,36 @@ webpack@^4.43.0, webpack@^4.44.1: watchpack "^1.7.4" webpack-sources "^1.4.1" +webpack@^5.11.0: + version "5.11.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.11.0.tgz#1647abc060441d86d01d8835b8f0fc1dae2fe76f" + integrity sha512-ubWv7iP54RqAC/VjixgpnLLogCFbAfSOREcSWnnOlZEU8GICC5eKmJSu6YEnph2N2amKqY9rvxSwgyHxVqpaRw== + dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.45" + "@webassemblyjs/ast" "1.9.1" + "@webassemblyjs/helper-module-context" "1.9.1" + "@webassemblyjs/wasm-edit" "1.9.1" + "@webassemblyjs/wasm-parser" "1.9.1" + acorn "^8.0.4" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.3.1" + eslint-scope "^5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" + json-parse-better-errors "^1.0.2" + loader-runner "^4.1.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + pkg-dir "^5.0.0" + schema-utils "^3.0.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.0.3" + watchpack "^2.0.0" + webpack-sources "^2.1.1" + whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" @@ -10606,7 +10902,7 @@ which@2.0.2, which@^2.0.1: dependencies: isexe "^2.0.0" -which@^1.2.14, which@^1.2.9, which@^1.3.1: +which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -10637,6 +10933,14 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= +wordwrapjs@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.0.tgz#9aa9394155993476e831ba8e59fb5795ebde6800" + integrity sha512-Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ== + dependencies: + reduce-flatten "^2.0.0" + typical "^5.0.0" + worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -10802,7 +11106,7 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@13.3.2, yargs@^13.3.2: +yargs@13.3.2: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== From 0f1af2ae78cfcc7e01b3b392992d19614ebdc3f1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 19 Dec 2020 00:51:35 +0000 Subject: [PATCH 057/107] build(deps): bump ini from 1.3.5 to 1.3.8 Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8) Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index dad128b1f1..eb45aca0d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5894,9 +5894,9 @@ inherits@2.0.3: integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.2, ini@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== init-package-json@^1.10.3: version "1.10.3" From f8993e0dc1aed0243629a21d36ee85e91b2e938d Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 19 Dec 2020 01:28:06 +0000 Subject: [PATCH 058/107] feat(fuzzy): migrate t-norms from @thi.ng/math pkg --- packages/fuzzy/src/cog.ts | 2 +- packages/fuzzy/src/index.ts | 1 + packages/fuzzy/src/maxima.ts | 3 +- packages/fuzzy/src/rules.ts | 2 +- packages/fuzzy/src/tnorms.ts | 135 +++++++++++++++++++++++++++++++++++ 5 files changed, 140 insertions(+), 3 deletions(-) create mode 100644 packages/fuzzy/src/tnorms.ts diff --git a/packages/fuzzy/src/cog.ts b/packages/fuzzy/src/cog.ts index c57bc7801c..d1a988e5b2 100644 --- a/packages/fuzzy/src/cog.ts +++ b/packages/fuzzy/src/cog.ts @@ -1,7 +1,7 @@ import type { FnN2 } from "@thi.ng/api"; -import { snormMax } from "@thi.ng/math"; import type { DefuzzStrategy } from "./api"; import { combineTerms } from "./combine"; +import { snormMax } from "./tnorms"; export interface COGOpts { combine: FnN2; diff --git a/packages/fuzzy/src/index.ts b/packages/fuzzy/src/index.ts index 8dadd6aa7b..abdd3cf17f 100644 --- a/packages/fuzzy/src/index.ts +++ b/packages/fuzzy/src/index.ts @@ -5,4 +5,5 @@ export * from "./defuzz"; export * from "./maxima"; export * from "./rules"; export * from "./shapes"; +export * from "./tnorms"; export * from "./var"; diff --git a/packages/fuzzy/src/maxima.ts b/packages/fuzzy/src/maxima.ts index c4e90f3b3f..9f2c7c351a 100644 --- a/packages/fuzzy/src/maxima.ts +++ b/packages/fuzzy/src/maxima.ts @@ -1,7 +1,8 @@ import type { FnN2 } from "@thi.ng/api"; -import { EPS, eqDelta, snormMax } from "@thi.ng/math"; +import { EPS, eqDelta } from "@thi.ng/math"; import type { DefuzzStrategy } from "./api"; import { combineTerms } from "./combine"; +import { snormMax } from "./tnorms"; export interface MaximaOpts { mode: "first" | "last" | "mean"; diff --git a/packages/fuzzy/src/rules.ts b/packages/fuzzy/src/rules.ts index 99407b6d93..6168c49841 100644 --- a/packages/fuzzy/src/rules.ts +++ b/packages/fuzzy/src/rules.ts @@ -1,6 +1,6 @@ import type { FnN2 } from "@thi.ng/api"; -import { snormMax, tnormMin, tnormProduct } from "@thi.ng/math"; import type { Rule, RuleFn, RuleInputs, RuleOutputs } from "./api"; +import { snormMax, tnormMin, tnormProduct } from "./tnorms"; /** * Defines and returns a new rule object. Takes a T-norm (or S-norm) `op`, an diff --git a/packages/fuzzy/src/tnorms.ts b/packages/fuzzy/src/tnorms.ts new file mode 100644 index 0000000000..94cec271a3 --- /dev/null +++ b/packages/fuzzy/src/tnorms.ts @@ -0,0 +1,135 @@ +import type { FnN2 } from "@thi.ng/api"; +import { norm } from "@thi.ng/math"; + +// https://en.wikipedia.org/wiki/T-norm + +export const tnormMin: FnN2 = (x, y) => Math.min(x, y); + +export const tnormProduct: FnN2 = (x, y) => x * y; + +export const tnormLukasiewicz: FnN2 = (x, y) => Math.max(0, x + y - 1); + +export const tnormDrastic: FnN2 = (x, y) => (x === 1 ? y : y === 1 ? x : 0); + +export const tnormNilpotent: FnN2 = (x, y) => (x + y > 1 ? Math.min(x, y) : 0); + +/** + * HOF T-norm. Parametric Hamacher with `p` controlling curvature. + * + * @remarks + * Interactive graph: https://www.desmos.com/calculator/4bneccqs3p + * + * @param p - curve param [0..∞], default: 2 + */ +export const tnormHamacher = (p = 2): FnN2 => (x, y) => + x === 0 && y === 0 ? 0 : (x * y) / (p + (1 - p) * (x + y - x * y)); + +/** + * HOF T-norm. Parametric Yager with `p` controlling curvature. + * + * @remarks + * Interactive graph: https://www.desmos.com/calculator/4bneccqs3p + * + * @param p - curve param [0..∞], default: 2 + */ +export const tnormYager = (p = 2): FnN2 => + p === 0 + ? () => 0 + : (x, y) => Math.max(0, 1 - ((1 - x) ** p + (1 - y) ** p) ** (1 / p)); + +/** + * HOF T-norm. Parametric Dombi with `p` controlling curvature. + * + * @remarks + * Interactive graph: https://www.desmos.com/calculator/4bneccqs3p + * + * @param p - curve param [0..∞], default: 2 + */ +export const tnormDombi = (p = 2): FnN2 => + p === 0 + ? () => 0 + : (x, y) => + x === 0 || y === 0 + ? 0 + : 1 / + (1 + (((1 - x) / x) ** p + ((1 - y) / y) ** p) ** (1 / p)); + +/** + * HOF T-norm. Parametric Aczél–Alsina with `p` controlling curvature. + * + * @remarks + * Interactive graph: https://www.desmos.com/calculator/4bneccqs3p + * + * @param p - curve param [0..∞], default: 2 + */ +export const tnormAczelAlsina = (p = 2): FnN2 => (x, y) => + Math.exp( + -((Math.abs(Math.log(x)) ** p + Math.abs(Math.log(y)) ** p) ** (1 / p)) + ); +/** + * S-norm (T-conorm), dual of {@link tnormMin}. + * + * @param x + * @param y + */ +export const snormMax: FnN2 = (x, y) => Math.max(x, y); + +/** + * S-norm (T-conorm), dual of {@link tnormProduct}, probabilistic sum: + * `a + b - a * b` + * + * @param x + * @param y + */ +export const snormProbabilistic: FnN2 = (x, y) => x + y - x * y; + +/** + * S-norm (T-conorm), dual of {@link tnormLukasiewicz}. + * + * @param x + * @param y + */ +export const snormBoundedSum: FnN2 = (x, y) => Math.min(x + y, 1); + +/** + * S-norm (T-conorm), dual of {@link tnormDrastic}. + */ +export const snormDrastic: FnN2 = (x, y) => (x === 0 ? y : y === 0 ? x : 1); + +/** + * S-norm (T-conorm), dual of {@link tnormNilpotent}. + * + * @param x + * @param y + */ +export const snormNilpotent: FnN2 = (x, y) => (x + y < 1 ? Math.max(x, y) : 1); + +/** + * S-norm (T-conorm), dual of {@link tnormHamacher}, iff that T-norm's curve + * param is `p=2`. + * + * @param x + * @param y + */ +export const snormEinstein: FnN2 = (x, y) => (x + y) / (1 + x * y); + +/** + * HOF t-norm. Constructs a new t-norm based on given t-norms for disjoint + * subintervals, completing remaining regions via {@link min}. + * + * @remarks + * Reference: https://en.wikipedia.org/wiki/Construction_of_t-norms#Ordinal_sums + * + * @param specs + */ +export const ordinalSum = ( + specs: { domain: [number, number]; tnorm: FnN2 }[] +): FnN2 => (x, y) => { + for (let s of specs) { + const [a, b] = s.domain; + if (x >= a && x <= b && y >= a && y <= b) { + return a + (b - a) * s.tnorm(norm(x, a, b), norm(y, a, b)); + } + } + return Math.min(x, y); +}; From 6f49a308c62a598f6d0a0e6e5046cd8e24d81eab Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 19 Dec 2020 01:29:06 +0000 Subject: [PATCH 059/107] feat(fuzzy): add min true threshold for classify() - update docs --- packages/fuzzy/src/var.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/fuzzy/src/var.ts b/packages/fuzzy/src/var.ts index 6f1bff74b4..c8fd8043d4 100644 --- a/packages/fuzzy/src/var.ts +++ b/packages/fuzzy/src/var.ts @@ -29,10 +29,10 @@ export const variable = ( }); /** - * Takes an LVar and a domain value `x`. Returns the ID of the var's term which - * produces the largest value for given `x`. If `strict` is enabled (default), - * that max value MUST also be > 0.5 to be considered. Function returns - * undefined if classification failed. + * Takes an LVar and a domain value `x`. Returns the ID of the var's fuzzy set + * term which yields the max truth value for given `x`. If `threshold` is + * enabled (default: 0.5), any truth value MUST also be > `threshold` to be + * considered. The function returns undefined if classification failed. * * @example * ```ts @@ -50,14 +50,14 @@ export const variable = ( * * @param var * @param x - * @param strict + * @param threshold */ -export const classify = ({ terms }: LVar, x: number, strict = true) => { - let max = -Infinity; +export const classify = ({ terms }: LVar, x: number, threshold = 0.5) => { + let max = threshold; let maxID: string | undefined; for (let id in terms) { const t = terms[id](x); - if (t > max && (!strict || t > 0.5)) { + if (t >= max) { max = t; maxID = id; } From 34871111f99cf809062b3e59df58bca7a2710164 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 19 Dec 2020 01:30:32 +0000 Subject: [PATCH 060/107] chore(math): remove obsolete t-norm fns - migrated to @thi.ng/fuzzy --- packages/math/src/index.ts | 1 - packages/math/src/tnorms.ts | 135 ------------------------------------ 2 files changed, 136 deletions(-) delete mode 100644 packages/math/src/tnorms.ts diff --git a/packages/math/src/index.ts b/packages/math/src/index.ts index e5514c77c2..f1ae6da1f4 100644 --- a/packages/math/src/index.ts +++ b/packages/math/src/index.ts @@ -14,4 +14,3 @@ export * from "./ratio"; export * from "./safe-div"; export * from "./solve"; export * from "./step"; -export * from "./tnorms"; diff --git a/packages/math/src/tnorms.ts b/packages/math/src/tnorms.ts deleted file mode 100644 index 0629c85c79..0000000000 --- a/packages/math/src/tnorms.ts +++ /dev/null @@ -1,135 +0,0 @@ -import type { FnN2 } from "@thi.ng/api"; -import { norm } from "./fit"; - -// https://en.wikipedia.org/wiki/T-norm - -export const tnormMin: FnN2 = (x, y) => Math.min(x, y); - -export const tnormProduct: FnN2 = (x, y) => x * y; - -export const tnormLukasiewicz: FnN2 = (x, y) => Math.max(0, x + y - 1); - -export const tnormDrastic: FnN2 = (x, y) => (x === 1 ? y : y === 1 ? x : 0); - -export const tnormNilpotent: FnN2 = (x, y) => (x + y > 1 ? Math.min(x, y) : 0); - -/** - * HOF T-norm. Parametric Hamacher with `p` controlling curvature. - * - * @remarks - * Interactive graph: https://www.desmos.com/calculator/4bneccqs3p - * - * @param p - curve param [0..∞], default: 2 - */ -export const tnormHamacher = (p = 2): FnN2 => (x, y) => - x === 0 && y === 0 ? 0 : (x * y) / (p + (1 - p) * (x + y - x * y)); - -/** - * HOF T-norm. Parametric Yager with `p` controlling curvature. - * - * @remarks - * Interactive graph: https://www.desmos.com/calculator/4bneccqs3p - * - * @param p - curve param [0..∞], default: 2 - */ -export const tnormYager = (p = 2): FnN2 => - p === 0 - ? () => 0 - : (x, y) => Math.max(0, 1 - ((1 - x) ** p + (1 - y) ** p) ** (1 / p)); - -/** - * HOF T-norm. Parametric Dombi with `p` controlling curvature. - * - * @remarks - * Interactive graph: https://www.desmos.com/calculator/4bneccqs3p - * - * @param p - curve param [0..∞], default: 2 - */ -export const tnormDombi = (p = 2): FnN2 => - p === 0 - ? () => 0 - : (x, y) => - x === 0 || y === 0 - ? 0 - : 1 / - (1 + (((1 - x) / x) ** p + ((1 - y) / y) ** p) ** (1 / p)); - -/** - * HOF T-norm. Parametric Aczél–Alsina with `p` controlling curvature. - * - * @remarks - * Interactive graph: https://www.desmos.com/calculator/4bneccqs3p - * - * @param p - curve param [0..∞], default: 2 - */ -export const tnormAczelAlsina = (p = 2): FnN2 => (x, y) => - Math.exp( - -((Math.abs(Math.log(x)) ** p + Math.abs(Math.log(y)) ** p) ** (1 / p)) - ); -/** - * S-norm (T-conorm), dual of {@link tnormMin}. - * - * @param x - * @param y - */ -export const snormMax: FnN2 = (x, y) => Math.max(x, y); - -/** - * S-norm (T-conorm), dual of {@link tnormProduct}, probabilistic sum: - * `a + b - a * b` - * - * @param x - * @param y - */ -export const snormProbabilistic: FnN2 = (x, y) => x + y - x * y; - -/** - * S-norm (T-conorm), dual of {@link tnormLukasiewicz}. - * - * @param x - * @param y - */ -export const snormBoundedSum: FnN2 = (x, y) => Math.min(x + y, 1); - -/** - * S-norm (T-conorm), dual of {@link tnormDrastic}. - */ -export const snormDrastic: FnN2 = (x, y) => (x === 0 ? y : y === 0 ? x : 1); - -/** - * S-norm (T-conorm), dual of {@link tnormNilpotent}. - * - * @param x - * @param y - */ -export const snormNilpotent: FnN2 = (x, y) => (x + y < 1 ? Math.max(x, y) : 1); - -/** - * S-norm (T-conorm), dual of {@link tnormHamacher}, iff that T-norm's curve - * param is `p=2`. - * - * @param x - * @param y - */ -export const snormEinstein: FnN2 = (x, y) => (x + y) / (1 + x * y); - -/** - * HOF t-norm. Constructs a new t-norm based on given t-norms for disjoint - * subintervals, completing remaining regions via {@link min}. - * - * @remarks - * Reference: https://en.wikipedia.org/wiki/Construction_of_t-norms#Ordinal_sums - * - * @param specs - */ -export const ordinalSum = ( - specs: { domain: [number, number]; tnorm: FnN2 }[] -): FnN2 => (x, y) => { - for (let s of specs) { - const [a, b] = s.domain; - if (x >= a && x <= b && y >= a && y <= b) { - return a + (b - a) * s.tnorm(norm(x, a, b), norm(y, a, b)); - } - } - return Math.min(x, y); -}; From 8ec15fa5c0f33fd7342c4047a5523e9fd0597ed1 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 19 Dec 2020 15:46:29 +0000 Subject: [PATCH 061/107] feat(fuzzy): add alphaCut() & implication() fns --- packages/fuzzy/src/shapes.ts | 53 ++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/packages/fuzzy/src/shapes.ts b/packages/fuzzy/src/shapes.ts index 97013b6cd0..e9c9ef9851 100644 --- a/packages/fuzzy/src/shapes.ts +++ b/packages/fuzzy/src/shapes.ts @@ -125,9 +125,56 @@ export const weighted = (fn: FuzzyFn, weight: number): FuzzyFn => (x) => weight * fn(x); /** - * Complex shape generator. Takes a T-norm (or S-norm) as reduction function - * `op` and any number of {@link FuzzyFn}s. Returns new `FuzzyFn` which - * evaluates all given `fns` and combines/reduces their results with `op`. + * Higher order function. Returns new function which selects subset of given + * fuzzy set where `fn(x) > alpha`, or else returns 0. + * + * @param fn + * @param alpha + */ +export const alphaCut = (fn: FuzzyFn, alpha = 0.5): FuzzyFn => (x) => { + const y = fn(x); + return y > alpha ? y : 0; +}; + +/** + * Higher order function. Returns new function which selects subset of given + * fuzzy set where `fn(x) < alpha`, or else returns 0. + * + * @param fn + * @param alpha + */ +export const invAlphaCut = (fn: FuzzyFn, alpha = 0.5): FuzzyFn => (x) => { + const y = fn(x); + return y < alpha ? y : 0; +}; + +/** + * Higher order function. Takes a T-norm and two {@link FuzzyFn}s. Returns new + * function which combines results of a(x) and b(x) using given T-norm + * implication. + * + * @example + * ```ts + * const f = implication(tnormMin, triangle(0,2,4), triangle(1,3,5)); + * f(1); // 0 + * f(2); // 0.5 + * f(3); // 0.5 + * f(4); // 0 + * ``` + * + * @param tnorm + * @param a + * @param b + */ +export const implication = (tnorm: FnN2, a: FuzzyFn, b: FuzzyFn): FuzzyFn => ( + x +) => tnorm(a(x), b(x)); + +/** + * Complex shape generator and a more generalized version of + * {@link implication}. Takes a T-norm (or S-norm) as reduction function `op` + * and any number of {@link FuzzyFn}s. Returns new `FuzzyFn` which evaluates all + * given `fns` and combines/reduces their results with `op`. * * @remarks * Depending on the use case and choice of `op`, the `initial` value should From 81abe8cb718ce335940234aecf693ba53564a715 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 19 Dec 2020 15:57:13 +0000 Subject: [PATCH 062/107] feat(fuzzy): update defuzz() output prep - add support for custom implications of rule outputs - update/optimize rule weight handling --- packages/fuzzy/src/defuzz.ts | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/packages/fuzzy/src/defuzz.ts b/packages/fuzzy/src/defuzz.ts index a485ca0577..6bf8676e8a 100644 --- a/packages/fuzzy/src/defuzz.ts +++ b/packages/fuzzy/src/defuzz.ts @@ -1,7 +1,8 @@ import type { IObjectOf } from "@thi.ng/api"; import type { FuzzyFn, LVar, Rule } from "./api"; import { cogStrategy } from "./cog"; -import { weighted } from "./shapes"; +import { constant, implication, weighted } from "./shapes"; +import { tnormMin } from "./tnorms"; /** * Takes an object of input {@link variable}s, an object of output variable, @@ -10,32 +11,48 @@ import { weighted } from "./shapes"; * optional strategy (by default {@link cogStrategy} w/ its own default * options). Returns object of computed output variable values. * + * @remarks + * The `imply` T-norm (default: {@link tnormMin} is used to transform each + * rule's output set(s) using each rule's computed/aggregated truth value, as + * well as each rule's weight. Different T-norms might produce different fuzzy + * set shapes and different results, even if the defuzz strategy remains + * constant. + * * @param ins * @param outs * @param rules * @param vals * @param strategy + * @param imply */ export const defuzz = ( ins: IObjectOf, outs: IObjectOf, rules: Rule[], vals: IObjectOf, - strategy = cogStrategy() + strategy = cogStrategy(), + imply = tnormMin ) => { const ruleTerms = rules.map((r) => { - let acc: number | null = null; + let alpha: number | null = null; for (let id in vals) { if (r.if[id]) { const v = ins[id].terms[r.if[id]](vals[id]); - acc = acc !== null ? r.op(acc, v) : v; + alpha = alpha !== null ? r.op(alpha, v) : v; } } - const weight = (acc || 0) * r.weight; const terms: IObjectOf = {}; - for (let id in r.then) { - if (outs[id]) { - terms[id] = weighted(outs[id].terms[r.then[id]], weight); + if (alpha) { + const aterm = constant(alpha); + for (let id in r.then) { + if (outs[id]) { + const oterm = outs[id].terms[r.then[id]]; + terms[id] = implication( + imply, + r.weight == 1 ? oterm : weighted(oterm, r.weight), + aterm + ); + } } } return terms; From a570c86857d160cee8f88ee52e432f3401b39806 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 19 Dec 2020 15:58:16 +0000 Subject: [PATCH 063/107] test(fuzzy): add food-service example & strategy tests --- packages/fuzzy/test/defuzz.ts | 145 ++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 packages/fuzzy/test/defuzz.ts diff --git a/packages/fuzzy/test/defuzz.ts b/packages/fuzzy/test/defuzz.ts new file mode 100644 index 0000000000..480725721d --- /dev/null +++ b/packages/fuzzy/test/defuzz.ts @@ -0,0 +1,145 @@ +import { eqDelta } from "@thi.ng/math"; +import * as assert from "assert"; +import { + cogStrategy, + defuzz, + DefuzzStrategy, + gaussian, + invRamp, + maximaStrategy, + or, + ramp, + triangle, + variable, +} from "../src"; + +describe("defuzz", () => { + it("strategies", () => { + // https://www.researchgate.net/publication/267041266_Introduction_to_fuzzy_logic + const food = variable([0, 10], { + awful: invRamp(1, 3), + delicious: ramp(7, 9), + }); + const service = variable([0, 10], { + poor: gaussian(0, 1.5), + good: gaussian(5, 1.5), + excellent: gaussian(10, 1.5), + }); + const tip = variable([0, 30], { + low: triangle(0, 5, 10), + medium: triangle(10, 15, 20), + high: triangle(20, 25, 30), + }); + + // if service is poor OR food is awful -> tip is low + // if service is normal -> tip is medium + // if service is excellent OR food is delicious -> tip is high + const rules = [ + or({ food: "awful", service: "poor" }, { tip: "low" }), + or({ service: "good" }, { tip: "medium" }), + or({ food: "delicious", service: "excellent" }, { tip: "high" }), + ]; + + const testStrategy = (strategy: DefuzzStrategy, expected: number[]) => { + // const all = []; + for (let i = 0, k = 0; i <= 10; i++) { + for (let j = 0; j <= 10; j++, k++) { + let res = defuzz( + { food, service }, + { tip }, + rules, + { food: i, service: j }, + strategy + ); + assert( + eqDelta(res.tip, expected[k]), + `expected: ${expected[k]}, got: ${res.tip}` + ); + // all.push(res.tip.toFixed(2)); + } + } + // for (let i = 0; i <= 10; i++) { + // console.log(all.slice(i * 11, (i + 1) * 11).join(", ")); + // } + // console.log("--"); + }; + + // prettier-ignore + const cogResults = [ + 4.95, 4.95, 5.55, 7.05, 8.85, 10.35, 10.35, 8.25, 8.25, 11.55, 14.85, + 4.95, 4.95, 5.55, 7.05, 8.85, 10.35, 10.35, 8.25, 8.25, 11.55, 14.85, + 4.95, 4.95, 6.15, 8.25, 12.15, 12.45, 12.45, 11.85, 13.05, 21.75, 22.35, + 4.95, 4.95, 6.45, 13.35, 14.55, 14.85, 15.15, 16.35, 23.25, 24.75, 24.75, + 4.95, 4.95, 6.45, 13.35, 14.55, 14.85, 15.15, 16.35, 23.25, 24.75, 24.75, + 4.95, 4.95, 6.45, 13.35, 14.55, 14.85, 15.15, 16.35, 23.25, 24.75, 24.75, + 4.95, 4.95, 6.45, 13.35, 14.55, 14.85, 15.15, 16.35, 23.25, 24.75, 24.75, + 4.95, 4.95, 6.45, 13.35, 14.55, 14.85, 15.15, 16.35, 23.25, 24.75, 24.75, + 7.35, 7.95, 16.65, 17.85, 17.25, 17.25, 17.55, 21.45, 23.55, 24.75, 24.75, + 14.85, 18.15, 21.45, 21.45, 19.35, 19.35, 20.85, 22.65, 24.15, 24.75, 24.75, + 14.85, 18.15, 21.45, 21.45, 19.35, 19.35, 20.85, 22.65, 24.15, 24.75, 24.75, + ]; + testStrategy(cogStrategy(), cogResults); + + // prettier-ignore + const foMaResults = [ + 5.10, 5.10, 5.10, 5.10, 5.10, 15.00, 5.10, 5.10, 5.10, 5.10, 24.90, + 5.10, 5.10, 5.10, 5.10, 5.10, 15.00, 5.10, 5.10, 5.10, 5.10, 24.90, + 5.10, 4.20, 2.70, 2.70, 14.10, 15.00, 14.10, 2.70, 2.70, 24.30, 24.90, + 5.10, 4.20, 2.10, 12.30, 14.10, 15.00, 14.10, 12.30, 22.20, 24.30, 24.90, + 5.10, 4.20, 2.10, 12.30, 14.10, 15.00, 14.10, 12.30, 22.20, 24.30, 24.90, + 5.10, 4.20, 2.10, 12.30, 14.10, 15.00, 14.10, 12.30, 22.20, 24.30, 24.90, + 5.10, 4.20, 2.10, 12.30, 14.10, 15.00, 14.10, 12.30, 22.20, 24.30, 24.90, + 5.10, 4.20, 2.10, 12.30, 14.10, 15.00, 14.10, 12.30, 22.20, 24.30, 24.90, + 5.10, 4.20, 22.50, 22.50, 14.10, 15.00, 14.10, 22.50, 22.50, 24.30, 24.90, + 24.90, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, + 24.90, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, + ]; + testStrategy(maximaStrategy({ mode: "first" }), foMaResults); + + // prettier-ignore + const loMaResults = [ + 5.10, 5.10, 5.10, 5.10, 5.10, 15.00, 5.10, 5.10, 5.10, 5.10, 5.10, + 5.10, 5.10, 5.10, 5.10, 5.10, 15.00, 5.10, 5.10, 5.10, 5.10, 5.10, + 5.10, 5.70, 7.50, 7.50, 15.90, 15.00, 15.90, 7.50, 7.50, 25.80, 24.90, + 5.10, 5.70, 7.80, 17.70, 15.90, 15.00, 15.90, 17.70, 27.90, 25.80, 24.90, + 5.10, 5.70, 7.80, 17.70, 15.90, 15.00, 15.90, 17.70, 27.90, 25.80, 24.90, + 5.10, 5.70, 7.80, 17.70, 15.90, 15.00, 15.90, 17.70, 27.90, 25.80, 24.90, + 5.10, 5.70, 7.80, 17.70, 15.90, 15.00, 15.90, 17.70, 27.90, 25.80, 24.90, + 5.10, 5.70, 7.80, 17.70, 15.90, 15.00, 15.90, 17.70, 27.90, 25.80, 24.90, + 5.10, 5.70, 27.30, 27.30, 15.90, 15.00, 15.90, 27.30, 27.30, 25.80, 24.90, + 5.10, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, + 5.10, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, + ]; + testStrategy(maximaStrategy({ mode: "last" }), loMaResults); + + // prettier-ignore + const meoMaResults = [ + 5.10, 5.10, 5.10, 5.10, 5.10, 15.00, 5.10, 5.10, 5.10, 5.10, 15.00, + 5.10, 5.10, 5.10, 5.10, 5.10, 15.00, 5.10, 5.10, 5.10, 5.10, 15.00, + 5.10, 4.95, 5.10, 5.10, 15.00, 15.00, 15.00, 5.10, 5.10, 25.05, 24.90, + 5.10, 4.95, 4.95, 15.00, 15.00, 15.00, 15.00, 15.00, 25.05, 25.05, 24.90, + 5.10, 4.95, 4.95, 15.00, 15.00, 15.00, 15.00, 15.00, 25.05, 25.05, 24.90, + 5.10, 4.95, 4.95, 15.00, 15.00, 15.00, 15.00, 15.00, 25.05, 25.05, 24.90, + 5.10, 4.95, 4.95, 15.00, 15.00, 15.00, 15.00, 15.00, 25.05, 25.05, 24.90, + 5.10, 4.95, 4.95, 15.00, 15.00, 15.00, 15.00, 15.00, 25.05, 25.05, 24.90, + 5.10, 4.95, 24.90, 24.90, 15.00, 15.00, 15.00, 24.90, 24.90, 25.05, 24.90, + 15.00, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, + 15.00, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, + ]; + testStrategy(maximaStrategy({ mode: "mean" }), meoMaResults); + + // console.log( + // defuzz( + // { food, service }, + // { tip }, + // rules, + // { + // food: 7.32, + // service: 7.83, + // }, + // trace(cogStrategy(), 16), + // tnormHamacher() + // ) + // ); + }); +}); From 4e94cf770e31365a08fb2124b5c39a891ef99f25 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 19 Dec 2020 15:58:56 +0000 Subject: [PATCH 064/107] docs(fuzzy): update readme (add example) --- packages/fuzzy/README.md | 145 +++++++++++++++++++++++++++++++---- packages/fuzzy/tpl.readme.md | 141 +++++++++++++++++++++++++++++++--- 2 files changed, 260 insertions(+), 26 deletions(-) diff --git a/packages/fuzzy/README.md b/packages/fuzzy/README.md index 51f2e0ee54..a21a68f956 100644 --- a/packages/fuzzy/README.md +++ b/packages/fuzzy/README.md @@ -16,7 +16,7 @@ This project is part of the - [Installation](#installation) - [Dependencies](#dependencies) - [API](#api) - - [Fuzzy set shaping functions](#fuzzy-set-shaping-functions) + - [Fuzzy set generators & combinators](#fuzzy-set-generators--combinators) - [Linguistic variables](#linguistic-variables) - [Rule creation & inferencing](#rule-creation--inferencing) - [Authors](#authors) @@ -29,13 +29,12 @@ Fuzzy logic operators & configurable rule inferencing engine. ### Features - Entirely declarative & functional approach -- Fuzzy set domain shaping functions (incl. negated/inverse) -- Rules with multiple inputs/outputs and arbitrary term combinators (e.g. - [T-norms](https://en.wikipedia.org/wiki/T-norm) from - [@thi.ng/math](https://github.com/thi-ng/umbrella/blob/develop/packages/math/src/tnorms.ts) - package). Syntax sugar for common `and`/`or` rules. -- Defuzzing via customizable strategies and options to balance precision vs. - performance +- Fuzzy set domain shaping & composition functions (incl. negated / inverse) +- Various [T-norms & S-norms](https://github.com/thi-ng/umbrella/blob/develop/packages/fuzzy/src/tnorms.ts), incl. parametric versions +- Rules with multiple inputs/outputs and arbitrary term combinators (i.e. + T-norms). Syntax sugar for common `and`/`or` rules. +- Defuzzification via customizable strategies and options to balance precision + vs. performance - Maxima: First, Last, Mean - Center-of-Gravity (COG) - Linguistic variable creation and term/set classification for given domain @@ -71,7 +70,7 @@ yarn add @thi.ng/fuzzy ``` -Package sizes (gzipped, pre-treeshake): ESM: 1.09 KB / CJS: 1.19 KB / UMD: 1.21 KB +Package sizes (gzipped, pre-treeshake): ESM: 1.55 KB / CJS: 1.72 KB / UMD: 1.64 KB ## Dependencies @@ -82,7 +81,9 @@ Package sizes (gzipped, pre-treeshake): ESM: 1.09 KB / CJS: 1.19 KB / UMD: 1.21 [Generated API docs](https://docs.thi.ng/umbrella/fuzzy/) -### Fuzzy set shaping functions +### Fuzzy set generators & combinators + +Generators: - `constant()` - `point()` @@ -91,12 +92,15 @@ Package sizes (gzipped, pre-treeshake): ESM: 1.09 KB / CJS: 1.19 KB / UMD: 1.21 - `trapezoid()` - `sigmoid()` / `invSigmoid()` - `gaussian()` + +Combinators: + - `negate()` - `weighted()` +- `alphaCut()` / `invAlphaCut()` +- `implication()` - `compose()` -TODO - ### Linguistic variables ```ts @@ -124,13 +128,126 @@ evaluate(temp, 28) // hot: 0.01798620996209156 // } -classify(temp, 28) +// classify temperature (min confidence 33%, default: 50%) +classify(temp, 28, 0.33) // "warm" ``` ### Rule creation & inferencing -TODO +Example taken from Franck Dernoncourt's [Introduction to Fuzzy +Logic](https://www.researchgate.net/publication/267041266_Introduction_to_fuzzy_logic): + +```ts +const food = variable([0, 10], { + awful: invRamp(1, 3), + delicious: ramp(7, 9), +}); + +const service = variable([0, 10], { + poor: gaussian(0, 1.5), + good: gaussian(5, 1.5), + excellent: gaussian(10, 1.5), +}); + +const tip = variable([0, 30], { + low: triangle(0, 5, 10), + medium: triangle(10, 15, 20), + high: triangle(20, 25, 30), +}); + +// if service is poor OR food is awful -> tip is low +// if service is normal -> tip is medium +// if service is excellent OR food is delicious -> tip is high +const rules = [ + or({ food: "awful", service: "poor" }, { tip: "low" }), + or({ service: "good" }, { tip: "medium" }), + or({ food: "delicious", service: "excellent" }, { tip: "high" }), +]; + +// defuzzification using default center-of-gravity strategy +defuzz( + // input variables + { food, service }, + // output variables + { tip }, + // rules (see above) + rules, + // input values + { food: 7.32, service: 7.83 }, +); +// { tip: 22.650000000000034 } + +// defuzz with custom strategy (note: each has further config options) +defuzz( + // input variables + { food, service }, + // output variables + { tip }, + // rules (see above) + rules, + // input values + { food: 7.32, service: 7.83 }, + // mean-on-maxima strategy + maximaStrategy({ mode: "mean" }) +); +// { tip: 25.050000000000043 } +``` + +Note: The results are slightly different than those in the textbook example, due +to different `gaussian` fuzzy sets used for the `service` lvar. + +Using the `traceStrategy` from the upcoming +[@thi.ng/fuzzy-utils](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy-utils) +package, we can also visualize the fuzzy sets and highlight the position of the +crisp result value. + +Here is the result for COG strategy and using `tnormMin` (the default) to +transform each rule's output set(s): + +```text +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +........................................................................▁▅▅|▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅..... +.......................................................................▁███|███████████████████▇.... +......................................................................▁████|████████████████████▇... +....................................▅▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▅....▂█████|█████████████████████▇.. +...................................▅█████████████████████████████▅..▂██████|███████████████████████. +..................................▅███████████████████████████████▅▂███████|████████████████████████ + ^ 22.65 +``` + +Different results can be obtained by adjusting the +[T-norm](https://en.wikipedia.org/wiki/T-Norm) used to transform each rule's +output sets, here using `tnormHamacher(2)`. + +```text +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|....▃▂............... +..............................................................................|..▃███▆▂............. +..............................................................................|▅███████▇▃........... +................................................▁▃▆▃▁......................▁▄▇|███████████▆▃........ +...........................................▁▂▄▆███████▆▄▂▁..............▂▄▇███|██████████████▆▃▁.... +...................................▁▂▃▄▅▆▇█████████████████▇▆▅▄▃▂▁..▂▄▆███████|██████████████████▅▃▁ + ^ 23.55 +``` ## Authors diff --git a/packages/fuzzy/tpl.readme.md b/packages/fuzzy/tpl.readme.md index 5b01c7c8e8..b905f79ac1 100644 --- a/packages/fuzzy/tpl.readme.md +++ b/packages/fuzzy/tpl.readme.md @@ -16,13 +16,12 @@ ${pkg.description} ### Features - Entirely declarative & functional approach -- Fuzzy set domain shaping functions (incl. negated/inverse) -- Rules with multiple inputs/outputs and arbitrary term combinators (e.g. - [T-norms](https://en.wikipedia.org/wiki/T-norm) from - [@thi.ng/math](https://github.com/thi-ng/umbrella/blob/develop/packages/math/src/tnorms.ts) - package). Syntax sugar for common `and`/`or` rules. -- Defuzzing via customizable strategies and options to balance precision vs. - performance +- Fuzzy set domain shaping & composition functions (incl. negated / inverse) +- Various [T-norms & S-norms](https://github.com/thi-ng/umbrella/blob/develop/packages/fuzzy/src/tnorms.ts), incl. parametric versions +- Rules with multiple inputs/outputs and arbitrary term combinators (i.e. + T-norms). Syntax sugar for common `and`/`or` rules. +- Defuzzification via customizable strategies and options to balance precision + vs. performance - Maxima: First, Last, Mean - Center-of-Gravity (COG) - Linguistic variable creation and term/set classification for given domain @@ -62,7 +61,9 @@ ${examples} ${docLink} -### Fuzzy set shaping functions +### Fuzzy set generators & combinators + +Generators: - `constant()` - `point()` @@ -71,12 +72,15 @@ ${docLink} - `trapezoid()` - `sigmoid()` / `invSigmoid()` - `gaussian()` + +Combinators: + - `negate()` - `weighted()` +- `alphaCut()` / `invAlphaCut()` +- `implication()` - `compose()` -TODO - ### Linguistic variables ```ts @@ -104,13 +108,126 @@ evaluate(temp, 28) // hot: 0.01798620996209156 // } -classify(temp, 28) +// classify temperature (min confidence 33%, default: 50%) +classify(temp, 28, 0.33) // "warm" ``` ### Rule creation & inferencing -TODO +Example taken from Franck Dernoncourt's [Introduction to Fuzzy +Logic](https://www.researchgate.net/publication/267041266_Introduction_to_fuzzy_logic): + +```ts +const food = variable([0, 10], { + awful: invRamp(1, 3), + delicious: ramp(7, 9), +}); + +const service = variable([0, 10], { + poor: gaussian(0, 1.5), + good: gaussian(5, 1.5), + excellent: gaussian(10, 1.5), +}); + +const tip = variable([0, 30], { + low: triangle(0, 5, 10), + medium: triangle(10, 15, 20), + high: triangle(20, 25, 30), +}); + +// if service is poor OR food is awful -> tip is low +// if service is normal -> tip is medium +// if service is excellent OR food is delicious -> tip is high +const rules = [ + or({ food: "awful", service: "poor" }, { tip: "low" }), + or({ service: "good" }, { tip: "medium" }), + or({ food: "delicious", service: "excellent" }, { tip: "high" }), +]; + +// defuzzification using default center-of-gravity strategy +defuzz( + // input variables + { food, service }, + // output variables + { tip }, + // rules (see above) + rules, + // input values + { food: 7.32, service: 7.83 }, +); +// { tip: 22.650000000000034 } + +// defuzz with custom strategy (note: each has further config options) +defuzz( + // input variables + { food, service }, + // output variables + { tip }, + // rules (see above) + rules, + // input values + { food: 7.32, service: 7.83 }, + // mean-on-maxima strategy + maximaStrategy({ mode: "mean" }) +); +// { tip: 25.050000000000043 } +``` + +Note: The results are slightly different than those in the textbook example, due +to different `gaussian` fuzzy sets used for the `service` lvar. + +Using the `traceStrategy` from the upcoming +[@thi.ng/fuzzy-utils](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy-utils) +package, we can also visualize the fuzzy sets and highlight the position of the +crisp result value. + +Here is the result for COG strategy and using `tnormMin` (the default) to +transform each rule's output set(s): + +```text +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +...........................................................................|........................ +........................................................................▁▅▅|▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅..... +.......................................................................▁███|███████████████████▇.... +......................................................................▁████|████████████████████▇... +....................................▅▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▅....▂█████|█████████████████████▇.. +...................................▅█████████████████████████████▅..▂██████|███████████████████████. +..................................▅███████████████████████████████▅▂███████|████████████████████████ + ^ 22.65 +``` + +Different results can be obtained by adjusting the +[T-norm](https://en.wikipedia.org/wiki/T-Norm) used to transform each rule's +output sets, here using `tnormHamacher(2)`. + +```text +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|..................... +..............................................................................|....▃▂............... +..............................................................................|..▃███▆▂............. +..............................................................................|▅███████▇▃........... +................................................▁▃▆▃▁......................▁▄▇|███████████▆▃........ +...........................................▁▂▄▆███████▆▄▂▁..............▂▄▇███|██████████████▆▃▁.... +...................................▁▂▃▄▅▆▇█████████████████▇▆▅▄▃▂▁..▂▄▆███████|██████████████████▅▃▁ + ^ 23.55 +``` ## Authors From cf337f36dbf24a9cfc4c6f364c3aea82428b5940 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 19 Dec 2020 18:10:28 +0000 Subject: [PATCH 065/107] feat(fuzzy): update defuzz() & strategies - simplify DefuzzStrategy to take single FuzzyFn - add `combine` s-norm arg to defuzz() and compose output sets before handing them to the strategy impl - split maximaStrategy() into individual fns - simplify/rename strategy opts - update strategy interval iteration to minimize floating point errors - update tests --- packages/fuzzy/src/api.ts | 4 +- packages/fuzzy/src/cog.ts | 28 ++++----- packages/fuzzy/src/defuzz.ts | 13 ++-- packages/fuzzy/src/maxima.ts | 100 ++++++++++++++++-------------- packages/fuzzy/src/shapes.ts | 4 +- packages/fuzzy/test/defuzz.ts | 37 ++++++----- packages/fuzzy/test/tsconfig.json | 9 ++- 7 files changed, 104 insertions(+), 91 deletions(-) diff --git a/packages/fuzzy/src/api.ts b/packages/fuzzy/src/api.ts index 17ee77f063..5b3cb197ac 100644 --- a/packages/fuzzy/src/api.ts +++ b/packages/fuzzy/src/api.ts @@ -1,4 +1,4 @@ -import type { Fn2, FnN, FnN2, IObjectOf, Nullable } from "@thi.ng/api"; +import type { Fn2, FnN, FnN2, IObjectOf } from "@thi.ng/api"; export type FuzzyFn = FnN; @@ -6,7 +6,7 @@ export type RuleInputs = IObjectOf; export type RuleOutputs = IObjectOf; export type RuleOp = (x: number, a: FuzzyFn, b: FuzzyFn) => number; -export type DefuzzStrategy = Fn2[], [number, number], number>; +export type DefuzzStrategy = Fn2; export interface Rule { op: FnN2; diff --git a/packages/fuzzy/src/cog.ts b/packages/fuzzy/src/cog.ts index d1a988e5b2..1a16dad22d 100644 --- a/packages/fuzzy/src/cog.ts +++ b/packages/fuzzy/src/cog.ts @@ -1,35 +1,31 @@ -import type { FnN2 } from "@thi.ng/api"; import type { DefuzzStrategy } from "./api"; -import { combineTerms } from "./combine"; -import { snormMax } from "./tnorms"; export interface COGOpts { - combine: FnN2; - steps: number; + samples: number; } /** - * Higher-order function: Center of gravity defuzzing strategy, using given - * `opts` with `combine` t-norm to form the integral of evaluated terms in the - * defined domain of a single Linguistic output variable. The domain is sampled - * at `n` uniformly spaced points. + * Higher-order function: Center-of-gravity defuzzification strategy, computing + * the integral of the given `fn` in the defined `[min,max]` domain. The domain + * is sampled at `opts.samples` uniformly spaced points. * * @param terms * @param domain */ export const cogStrategy = (opts?: Partial): DefuzzStrategy => { - const { combine, steps } = { combine: snormMax, steps: 100, ...opts }; - return (terms, [min, max]) => { - const delta = (max - min) / steps; + let { samples } = { samples: 100, ...opts }; + return (fn, [min, max]) => { + const delta = (max - min) / samples; let sum: [number, number][] = []; // integrate over given var's domain // state: [x, sum(term(x))] - for (let i = min, j = 0, acc = 0; i <= max; i += delta, j++) { - acc += delta * combineTerms(combine, terms, i); - sum[j] = [i, acc]; + for (let i = 0, acc = 0; i <= samples; i++) { + const t = min + i * delta; + acc += fn(t); + sum[i] = [t, acc]; } if (!sum.length) return min; - const mean = sum[sum.length - 1][1] * 0.5; + const mean = sum[samples][1] * 0.5; const idx = sum.findIndex((x) => x[1] > mean); return idx > 0 ? (sum[idx - 1][0] + sum[idx][0]) * 0.5 : sum[0][0]; }; diff --git a/packages/fuzzy/src/defuzz.ts b/packages/fuzzy/src/defuzz.ts index 6bf8676e8a..96d8cafb98 100644 --- a/packages/fuzzy/src/defuzz.ts +++ b/packages/fuzzy/src/defuzz.ts @@ -1,8 +1,8 @@ import type { IObjectOf } from "@thi.ng/api"; import type { FuzzyFn, LVar, Rule } from "./api"; import { cogStrategy } from "./cog"; -import { constant, implication, weighted } from "./shapes"; -import { tnormMin } from "./tnorms"; +import { compose, constant, implication, weighted } from "./shapes"; +import { snormMax, tnormMin } from "./tnorms"; /** * Takes an object of input {@link variable}s, an object of output variable, @@ -18,12 +18,16 @@ import { tnormMin } from "./tnorms"; * set shapes and different results, even if the defuzz strategy remains * constant. * + * The `combine` S-norm (default: {@link snormMax}) is used to combine all + * relevant output sets for integration/analysis by the given `strategy`. + * * @param ins * @param outs * @param rules * @param vals * @param strategy * @param imply + * @param combine */ export const defuzz = ( ins: IObjectOf, @@ -31,7 +35,8 @@ export const defuzz = ( rules: Rule[], vals: IObjectOf, strategy = cogStrategy(), - imply = tnormMin + imply = tnormMin, + combine = snormMax ) => { const ruleTerms = rules.map((r) => { let alpha: number | null = null; @@ -61,7 +66,7 @@ export const defuzz = ( const res: IObjectOf = {}; for (let id in outs) { res[id] = strategy( - ruleTerms.map((r) => r[id]), + compose(combine, 0, ...ruleTerms.map((r) => r[id])), outs[id].domain ); } diff --git a/packages/fuzzy/src/maxima.ts b/packages/fuzzy/src/maxima.ts index 9f2c7c351a..3ea395635f 100644 --- a/packages/fuzzy/src/maxima.ts +++ b/packages/fuzzy/src/maxima.ts @@ -1,59 +1,65 @@ -import type { FnN2 } from "@thi.ng/api"; import { EPS, eqDelta } from "@thi.ng/math"; import type { DefuzzStrategy } from "./api"; -import { combineTerms } from "./combine"; -import { snormMax } from "./tnorms"; export interface MaximaOpts { - mode: "first" | "last" | "mean"; - combine: FnN2; - steps: number; + samples: number; eps: number; } -export const maximaStrategy = (opts?: Partial): DefuzzStrategy => ( - terms, - [min, max] -) => { - const { mode, combine, steps, eps } = { - mode: "first", - combine: snormMax, - steps: 100, - eps: EPS, - ...opts, - }; - const delta = (max - min) / steps; - let peak = -Infinity; - let peakPos = min; - const $ = (i: number) => { - const x = combineTerms(combine, terms, i); - if (x > peak) { - peak = x; - peakPos = i; +const defaultOpts = (opts?: Partial): MaximaOpts => ({ + samples: 100, + eps: EPS, + ...opts, +}); + +export const meanOfMaximaStrategy = ( + opts?: Partial +): DefuzzStrategy => { + const { samples, eps } = defaultOpts(opts); + return (fn, [min, max]) => { + const delta = (max - min) / samples; + let peak = -Infinity; + let peakPos = min; + let n = 1; + for (let i = 0; i <= samples; i++) { + const t = min + i * delta; + const x = fn(t); + if (eqDelta(x, peak, eps)) { + peakPos += t; + n++; + } else if (x > peak) { + peak = x; + peakPos = t; + n = 1; + } } + return peakPos / n; }; - switch (mode) { - case "mean": { - let n = 1; - for (let i = min; i <= max; i += delta) { - const x = combineTerms(combine, terms, i); - if (eqDelta(x, peak, eps)) { - peakPos += i; - n++; - } else if (x > peak) { - peak = x; - peakPos = i; - n = 1; - } +}; + +export const firstOfMaximaStrategy = ( + opts?: Partial +): DefuzzStrategy => { + const { samples } = defaultOpts(opts); + return (fn, [min, max]) => { + const delta = (max - min) / samples; + let peak = -Infinity; + let peakPos = min; + for (let i = 0; i <= samples; i++) { + const t = min + i * delta; + const x = fn(t); + if (x > peak) { + peak = x; + peakPos = t; } - return peakPos / n; } - case "last": - for (let i = max; i >= min; i -= delta) $(i); - break; - case "first": - default: - for (let i = min; i <= max; i += delta) $(i); - } - return peakPos; + return peakPos; + }; +}; + +export const lastOfMaximaStrategy = ( + opts?: Partial +): DefuzzStrategy => { + const impl = firstOfMaximaStrategy(opts); + return (fn, [min, max]) => impl(fn, [max, min]); }; diff --git a/packages/fuzzy/src/shapes.ts b/packages/fuzzy/src/shapes.ts index e9c9ef9851..ca27e6bffb 100644 --- a/packages/fuzzy/src/shapes.ts +++ b/packages/fuzzy/src/shapes.ts @@ -1,4 +1,4 @@ -import type { FnN2, FnU, FnU2, FnU3, FnU4 } from "@thi.ng/api"; +import type { FnN2, FnU, FnU2, FnU3, FnU4, Nullable } from "@thi.ng/api"; import { EPS, eqDelta, @@ -210,5 +210,5 @@ export const implication = (tnorm: FnN2, a: FuzzyFn, b: FuzzyFn): FuzzyFn => ( export const compose = ( op: FnN2, initial: number, - ...fns: FuzzyFn[] + ...fns: Nullable[] ): FuzzyFn => (x) => combineTerms(op, fns, x, initial); diff --git a/packages/fuzzy/test/defuzz.ts b/packages/fuzzy/test/defuzz.ts index 480725721d..5489c90349 100644 --- a/packages/fuzzy/test/defuzz.ts +++ b/packages/fuzzy/test/defuzz.ts @@ -4,9 +4,11 @@ import { cogStrategy, defuzz, DefuzzStrategy, + firstOfMaximaStrategy, gaussian, invRamp, - maximaStrategy, + lastOfMaximaStrategy, + meanOfMaximaStrategy, or, ramp, triangle, @@ -40,7 +42,11 @@ describe("defuzz", () => { or({ food: "delicious", service: "excellent" }, { tip: "high" }), ]; - const testStrategy = (strategy: DefuzzStrategy, expected: number[]) => { + const testStrategy = ( + id: string, + strategy: DefuzzStrategy, + expected: number[] + ) => { // const all = []; for (let i = 0, k = 0; i <= 10; i++) { for (let j = 0; j <= 10; j++, k++) { @@ -49,11 +55,12 @@ describe("defuzz", () => { { tip }, rules, { food: i, service: j }, + // trace(strategy) strategy ); assert( eqDelta(res.tip, expected[k]), - `expected: ${expected[k]}, got: ${res.tip}` + `${id}(${i},${j}): expected: ${expected[k]}, got: ${res.tip}` ); // all.push(res.tip.toFixed(2)); } @@ -78,12 +85,12 @@ describe("defuzz", () => { 14.85, 18.15, 21.45, 21.45, 19.35, 19.35, 20.85, 22.65, 24.15, 24.75, 24.75, 14.85, 18.15, 21.45, 21.45, 19.35, 19.35, 20.85, 22.65, 24.15, 24.75, 24.75, ]; - testStrategy(cogStrategy(), cogResults); + testStrategy("cog", cogStrategy(), cogResults); // prettier-ignore const foMaResults = [ - 5.10, 5.10, 5.10, 5.10, 5.10, 15.00, 5.10, 5.10, 5.10, 5.10, 24.90, - 5.10, 5.10, 5.10, 5.10, 5.10, 15.00, 5.10, 5.10, 5.10, 5.10, 24.90, + 5.10, 5.10, 5.10, 5.10, 5.10, 15.00, 5.10, 5.10, 5.10, 5.10, 5.10, + 5.10, 5.10, 5.10, 5.10, 5.10, 15.00, 5.10, 5.10, 5.10, 5.10, 5.10, 5.10, 4.20, 2.70, 2.70, 14.10, 15.00, 14.10, 2.70, 2.70, 24.30, 24.90, 5.10, 4.20, 2.10, 12.30, 14.10, 15.00, 14.10, 12.30, 22.20, 24.30, 24.90, 5.10, 4.20, 2.10, 12.30, 14.10, 15.00, 14.10, 12.30, 22.20, 24.30, 24.90, @@ -91,15 +98,15 @@ describe("defuzz", () => { 5.10, 4.20, 2.10, 12.30, 14.10, 15.00, 14.10, 12.30, 22.20, 24.30, 24.90, 5.10, 4.20, 2.10, 12.30, 14.10, 15.00, 14.10, 12.30, 22.20, 24.30, 24.90, 5.10, 4.20, 22.50, 22.50, 14.10, 15.00, 14.10, 22.50, 22.50, 24.30, 24.90, - 24.90, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, - 24.90, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, + 5.10, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, + 5.10, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, ]; - testStrategy(maximaStrategy({ mode: "first" }), foMaResults); + testStrategy("first", firstOfMaximaStrategy(), foMaResults); // prettier-ignore const loMaResults = [ - 5.10, 5.10, 5.10, 5.10, 5.10, 15.00, 5.10, 5.10, 5.10, 5.10, 5.10, - 5.10, 5.10, 5.10, 5.10, 5.10, 15.00, 5.10, 5.10, 5.10, 5.10, 5.10, + 5.10, 5.10, 5.10, 5.10, 5.10, 15.00, 5.10, 5.10, 5.10, 5.10, 24.90, + 5.10, 5.10, 5.10, 5.10, 5.10, 15.00, 5.10, 5.10, 5.10, 5.10, 24.90, 5.10, 5.70, 7.50, 7.50, 15.90, 15.00, 15.90, 7.50, 7.50, 25.80, 24.90, 5.10, 5.70, 7.80, 17.70, 15.90, 15.00, 15.90, 17.70, 27.90, 25.80, 24.90, 5.10, 5.70, 7.80, 17.70, 15.90, 15.00, 15.90, 17.70, 27.90, 25.80, 24.90, @@ -107,10 +114,10 @@ describe("defuzz", () => { 5.10, 5.70, 7.80, 17.70, 15.90, 15.00, 15.90, 17.70, 27.90, 25.80, 24.90, 5.10, 5.70, 7.80, 17.70, 15.90, 15.00, 15.90, 17.70, 27.90, 25.80, 24.90, 5.10, 5.70, 27.30, 27.30, 15.90, 15.00, 15.90, 27.30, 27.30, 25.80, 24.90, - 5.10, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, - 5.10, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, + 24.90, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, + 24.90, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, ]; - testStrategy(maximaStrategy({ mode: "last" }), loMaResults); + testStrategy("last", lastOfMaximaStrategy(), loMaResults); // prettier-ignore const meoMaResults = [ @@ -126,7 +133,7 @@ describe("defuzz", () => { 15.00, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, ]; - testStrategy(maximaStrategy({ mode: "mean" }), meoMaResults); + testStrategy("mean", meanOfMaximaStrategy(), meoMaResults); // console.log( // defuzz( diff --git a/packages/fuzzy/test/tsconfig.json b/packages/fuzzy/test/tsconfig.json index f6e63560dd..9655cbea10 100644 --- a/packages/fuzzy/test/tsconfig.json +++ b/packages/fuzzy/test/tsconfig.json @@ -2,10 +2,9 @@ "extends": "../../../tsconfig.json", "compilerOptions": { "outDir": "../build", - "module": "commonjs" + "module": "commonjs", + "noUnusedLocals": false, + "noUnusedParameters": false }, - "include": [ - "./**/*.ts", - "../src/**/*.ts" - ] + "include": ["./**/*.ts", "../src/**/*.ts"] } From 0b210c3841ce9184b8dfb83ca2dde5ceca0a3b6e Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 19 Dec 2020 23:58:27 +0000 Subject: [PATCH 066/107] feat(fuzzy): make lvar, rules, defuzz() typesafe - add/update types (Rule, LVar, LVar helpers) - update variable() & rule factories (add generics) - make defuzz() generic, infer return type - update tests --- packages/fuzzy/src/api.ts | 34 ++++++++------- packages/fuzzy/src/defuzz.ts | 23 +++++----- packages/fuzzy/src/rules.ts | 31 +++++++++----- packages/fuzzy/src/var.ts | 19 +++++---- packages/fuzzy/test/defuzz.ts | 51 ++++++++++++++--------- packages/fuzzy/test/{index.ts => lvar.ts} | 0 6 files changed, 92 insertions(+), 66 deletions(-) rename packages/fuzzy/test/{index.ts => lvar.ts} (100%) diff --git a/packages/fuzzy/src/api.ts b/packages/fuzzy/src/api.ts index 5b3cb197ac..24a2b45880 100644 --- a/packages/fuzzy/src/api.ts +++ b/packages/fuzzy/src/api.ts @@ -1,31 +1,26 @@ -import type { Fn2, FnN, FnN2, IObjectOf } from "@thi.ng/api"; +import type { Fn2, FnN, FnN2 } from "@thi.ng/api"; export type FuzzyFn = FnN; -export type RuleInputs = IObjectOf; -export type RuleOutputs = IObjectOf; export type RuleOp = (x: number, a: FuzzyFn, b: FuzzyFn) => number; export type DefuzzStrategy = Fn2; -export interface Rule { - op: FnN2; - if: RuleInputs; - then: RuleOutputs; - weight: number; -} +export type LVarSet = Record>; + +export type LVarKeys> = keyof T["terms"]; -export type RuleFn = ( - $if: RuleInputs, - $then: RuleOutputs, - weight?: number -) => Rule; +export type LVarKeySet, K extends keyof I> = Partial< + { + [k in K]: LVarKeys; + } +>; /** * Linguistic Variable, defining several (possibly overlapping) fuzzy sets in an * overall global domain. */ -export interface LVar { +export interface LVar { /** * Value domain/interval used to evaluate (and integrate) all terms during * {@link defuzz}. Interval is semi-open, i.e. `[min, max)` @@ -39,5 +34,12 @@ export interface LVar { /** * Object of named fuzzy sets. */ - terms: Record; + terms: Record; +} + +export interface Rule, O extends LVarSet> { + op: FnN2; + if: LVarKeySet; + then: LVarKeySet; + weight: number; } diff --git a/packages/fuzzy/src/defuzz.ts b/packages/fuzzy/src/defuzz.ts index 96d8cafb98..01d6c6376e 100644 --- a/packages/fuzzy/src/defuzz.ts +++ b/packages/fuzzy/src/defuzz.ts @@ -1,5 +1,5 @@ import type { IObjectOf } from "@thi.ng/api"; -import type { FuzzyFn, LVar, Rule } from "./api"; +import type { FuzzyFn, LVarSet, Rule } from "./api"; import { cogStrategy } from "./cog"; import { compose, constant, implication, weighted } from "./shapes"; import { snormMax, tnormMin } from "./tnorms"; @@ -18,8 +18,9 @@ import { snormMax, tnormMin } from "./tnorms"; * set shapes and different results, even if the defuzz strategy remains * constant. * - * The `combine` S-norm (default: {@link snormMax}) is used to combine all - * relevant output sets for integration/analysis by the given `strategy`. + * The `combine` S-norm (default: {@link snormMax}) is used to combine the + * relevant output sets of all rules for integration/analysis by the given + * defuzz `strategy` actually producing the crisp result. * * @param ins * @param outs @@ -29,11 +30,11 @@ import { snormMax, tnormMin } from "./tnorms"; * @param imply * @param combine */ -export const defuzz = ( - ins: IObjectOf, - outs: IObjectOf, - rules: Rule[], - vals: IObjectOf, +export const defuzz = , O extends LVarSet>( + ins: I, + outs: O, + rules: Rule[], + vals: Partial>, strategy = cogStrategy(), imply = tnormMin, combine = snormMax @@ -42,7 +43,7 @@ export const defuzz = ( let alpha: number | null = null; for (let id in vals) { if (r.if[id]) { - const v = ins[id].terms[r.if[id]](vals[id]); + const v = ins[id].terms[r.if[id]](vals[id]!); alpha = alpha !== null ? r.op(alpha, v) : v; } } @@ -51,7 +52,7 @@ export const defuzz = ( const aterm = constant(alpha); for (let id in r.then) { if (outs[id]) { - const oterm = outs[id].terms[r.then[id]]; + const oterm = outs[id].terms[r.then[id]]; terms[id] = implication( imply, r.weight == 1 ? oterm : weighted(oterm, r.weight), @@ -63,7 +64,7 @@ export const defuzz = ( return terms; }); - const res: IObjectOf = {}; + const res: Partial> = {}; for (let id in outs) { res[id] = strategy( compose(combine, 0, ...ruleTerms.map((r) => r[id])), diff --git a/packages/fuzzy/src/rules.ts b/packages/fuzzy/src/rules.ts index 6168c49841..2dc10c5ba3 100644 --- a/packages/fuzzy/src/rules.ts +++ b/packages/fuzzy/src/rules.ts @@ -1,5 +1,5 @@ import type { FnN2 } from "@thi.ng/api"; -import type { Rule, RuleFn, RuleInputs, RuleOutputs } from "./api"; +import type { LVarKeySet, LVarSet, Rule } from "./api"; import { snormMax, tnormMin, tnormProduct } from "./tnorms"; /** @@ -36,23 +36,32 @@ import { snormMax, tnormMin, tnormProduct } from "./tnorms"; * @param then * @param weight */ -export const rule = ( +export const rule = , O extends LVarSet>( op: FnN2, - $if: RuleInputs, - then: RuleOutputs, + $if: LVarKeySet, + then: LVarKeySet, weight = 1 -): Rule => ({ +): Rule => ({ if: $if, then, op, weight, }); -export const and: RuleFn = ($if, $then, weight) => - rule(tnormMin, $if, $then, weight); +export const and = , O extends LVarSet>( + $if: LVarKeySet, + then: LVarKeySet, + weight?: number +) => rule(tnormMin, $if, then, weight); -export const strongAnd: RuleFn = ($if, $then, weight) => - rule(tnormProduct, $if, $then, weight); +export const strongAnd = , O extends LVarSet>( + $if: LVarKeySet, + then: LVarKeySet, + weight?: number +) => rule(tnormProduct, $if, then, weight); -export const or: RuleFn = ($if, $then, weight) => - rule(snormMax, $if, $then, weight); +export const or = , O extends LVarSet>( + $if: LVarKeySet, + then: LVarKeySet, + weight?: number +) => rule(snormMax, $if, then, weight); diff --git a/packages/fuzzy/src/var.ts b/packages/fuzzy/src/var.ts index c8fd8043d4..66dd449352 100644 --- a/packages/fuzzy/src/var.ts +++ b/packages/fuzzy/src/var.ts @@ -1,4 +1,3 @@ -import type { IObjectOf } from "@thi.ng/api"; import type { LVar } from "./api"; /** @@ -20,10 +19,10 @@ import type { LVar } from "./api"; * @param domain * @param terms */ -export const variable = ( +export const variable = ( domain: [number, number], - terms: LVar["terms"] -): LVar => ({ + terms: LVar["terms"] +): LVar => ({ domain, terms, }); @@ -52,9 +51,13 @@ export const variable = ( * @param x * @param threshold */ -export const classify = ({ terms }: LVar, x: number, threshold = 0.5) => { +export const classify = ( + { terms }: LVar, + x: number, + threshold = 0.5 +) => { let max = threshold; - let maxID: string | undefined; + let maxID: K | undefined; for (let id in terms) { const t = terms[id](x); if (t >= max) { @@ -86,8 +89,8 @@ export const classify = ({ terms }: LVar, x: number, threshold = 0.5) => { * @param var * @param x */ -export const evaluate = ({ terms }: LVar, x: number) => { - const res: IObjectOf = {}; +export const evaluate = ({ terms }: LVar, x: number) => { + const res = >{}; for (let id in terms) { res[id] = terms[id](x); } diff --git a/packages/fuzzy/test/defuzz.ts b/packages/fuzzy/test/defuzz.ts index 5489c90349..3f77197463 100644 --- a/packages/fuzzy/test/defuzz.ts +++ b/packages/fuzzy/test/defuzz.ts @@ -18,28 +18,39 @@ import { describe("defuzz", () => { it("strategies", () => { // https://www.researchgate.net/publication/267041266_Introduction_to_fuzzy_logic - const food = variable([0, 10], { - awful: invRamp(1, 3), - delicious: ramp(7, 9), - }); - const service = variable([0, 10], { - poor: gaussian(0, 1.5), - good: gaussian(5, 1.5), - excellent: gaussian(10, 1.5), - }); - const tip = variable([0, 30], { - low: triangle(0, 5, 10), - medium: triangle(10, 15, 20), - high: triangle(20, 25, 30), - }); + const inputs = { + food: variable([0, 10], { + awful: invRamp(1, 3), + delicious: ramp(7, 9), + }), + service: variable([0, 10], { + poor: gaussian(0, 1.5), + good: gaussian(5, 1.5), + excellent: gaussian(10, 1.5), + }), + }; + + const outputs = { + tip: variable([0, 30], { + low: triangle(0, 5, 10), + medium: triangle(10, 15, 20), + high: triangle(20, 25, 30), + }), + }; + + type I = typeof inputs; + type O = typeof outputs; // if service is poor OR food is awful -> tip is low // if service is normal -> tip is medium // if service is excellent OR food is delicious -> tip is high const rules = [ - or({ food: "awful", service: "poor" }, { tip: "low" }), - or({ service: "good" }, { tip: "medium" }), - or({ food: "delicious", service: "excellent" }, { tip: "high" }), + or({ food: "awful", service: "poor" }, { tip: "low" }), + or({ service: "good" }, { tip: "medium" }), + or( + { food: "delicious", service: "excellent" }, + { tip: "high" } + ), ]; const testStrategy = ( @@ -51,15 +62,15 @@ describe("defuzz", () => { for (let i = 0, k = 0; i <= 10; i++) { for (let j = 0; j <= 10; j++, k++) { let res = defuzz( - { food, service }, - { tip }, + inputs, + outputs, rules, { food: i, service: j }, // trace(strategy) strategy ); assert( - eqDelta(res.tip, expected[k]), + eqDelta(res.tip!, expected[k]), `${id}(${i},${j}): expected: ${expected[k]}, got: ${res.tip}` ); // all.push(res.tip.toFixed(2)); diff --git a/packages/fuzzy/test/index.ts b/packages/fuzzy/test/lvar.ts similarity index 100% rename from packages/fuzzy/test/index.ts rename to packages/fuzzy/test/lvar.ts From e005d3941833bb351a6cf320071c6c9200713895 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 20 Dec 2020 00:14:01 +0000 Subject: [PATCH 067/107] docs(fuzzy): update readme --- packages/fuzzy/README.md | 115 ++++++++++++++++++++++------------- packages/fuzzy/tpl.readme.md | 113 ++++++++++++++++++++++------------ 2 files changed, 147 insertions(+), 81 deletions(-) diff --git a/packages/fuzzy/README.md b/packages/fuzzy/README.md index a21a68f956..141535c9a9 100644 --- a/packages/fuzzy/README.md +++ b/packages/fuzzy/README.md @@ -29,6 +29,7 @@ Fuzzy logic operators & configurable rule inferencing engine. ### Features - Entirely declarative & functional approach +- Fully type checked - Fuzzy set domain shaping & composition functions (incl. negated / inverse) - Various [T-norms & S-norms](https://github.com/thi-ng/umbrella/blob/develop/packages/fuzzy/src/tnorms.ts), incl. parametric versions - Rules with multiple inputs/outputs and arbitrary term combinators (i.e. @@ -70,7 +71,7 @@ yarn add @thi.ng/fuzzy ``` -Package sizes (gzipped, pre-treeshake): ESM: 1.55 KB / CJS: 1.72 KB / UMD: 1.64 KB +Package sizes (gzipped, pre-treeshake): ESM: 1.54 KB / CJS: 1.72 KB / UMD: 1.62 KB ## Dependencies @@ -139,30 +140,40 @@ Example taken from Franck Dernoncourt's [Introduction to Fuzzy Logic](https://www.researchgate.net/publication/267041266_Introduction_to_fuzzy_logic): ```ts -const food = variable([0, 10], { - awful: invRamp(1, 3), - delicious: ramp(7, 9), -}); - -const service = variable([0, 10], { - poor: gaussian(0, 1.5), - good: gaussian(5, 1.5), - excellent: gaussian(10, 1.5), -}); - -const tip = variable([0, 30], { - low: triangle(0, 5, 10), - medium: triangle(10, 15, 20), - high: triangle(20, 25, 30), -}); - +// define fuzzy input variables +const inputs = { + food: variable([0, 10], { + awful: invRamp(1, 3), + delicious: ramp(7, 9), + }), + service: variable([0, 10], { + poor: gaussian(0, 1.5), + good: gaussian(5, 1.5), + excellent: gaussian(10, 1.5), + }), +}; + +const outputs = { + tip: variable([0, 30], { + low: triangle(0, 5, 10), + medium: triangle(10, 15, 20), + high: triangle(20, 25, 30), + }), +}; + +// l-vars, rules and defuzzification are using generics for type safety +// we define these 2 type aliases for brevity +type I = typeof inputs; +type O = typeof outputs; + +// rule definitions: // if service is poor OR food is awful -> tip is low // if service is normal -> tip is medium // if service is excellent OR food is delicious -> tip is high const rules = [ - or({ food: "awful", service: "poor" }, { tip: "low" }), - or({ service: "good" }, { tip: "medium" }), - or({ food: "delicious", service: "excellent" }, { tip: "high" }), + or({ food: "awful", service: "poor" }, { tip: "low" }), + or({ service: "good" }, { tip: "medium" }), + or({ food: "delicious", service: "excellent" }, { tip: "high" }), ]; // defuzzification using default center-of-gravity strategy @@ -188,8 +199,8 @@ defuzz( rules, // input values { food: 7.32, service: 7.83 }, - // mean-on-maxima strategy - maximaStrategy({ mode: "mean" }) + // custom defuzz strategy + meanOfMaximaStrategy() ); // { tip: 25.050000000000043 } ``` @@ -197,7 +208,7 @@ defuzz( Note: The results are slightly different than those in the textbook example, due to different `gaussian` fuzzy sets used for the `service` lvar. -Using the `traceStrategy` from the upcoming +Using `traceStrategy` from the upcoming [@thi.ng/fuzzy-utils](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy-utils) package, we can also visualize the fuzzy sets and highlight the position of the crisp result value. @@ -230,23 +241,45 @@ Different results can be obtained by adjusting the output sets, here using `tnormHamacher(2)`. ```text -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|....▃▂............... -..............................................................................|..▃███▆▂............. -..............................................................................|▅███████▇▃........... -................................................▁▃▆▃▁......................▁▄▇|███████████▆▃........ -...........................................▁▂▄▆███████▆▄▂▁..............▂▄▇███|██████████████▆▃▁.... -...................................▁▂▃▄▅▆▇█████████████████▇▆▅▄▃▂▁..▂▄▆███████|██████████████████▅▃▁ - ^ 23.55 +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|.....▃▂............... +.............................................................................|...▃███▆▂............. +.............................................................................|▁▅███████▇▃........... +................................................▁▃▆▃▁......................▁▄|████████████▆▃........ +...........................................▁▂▄▆███████▆▄▂▁..............▂▄▇██|███████████████▆▃▁.... +...................................▁▂▃▄▅▆▇█████████████████▇▆▅▄▃▂▁..▂▄▆██████|███████████████████▅▃▁ + ^ 23.55 +``` + +...or using `tnormAczelAlsina(2)` (there're many more available): + +```text +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|.▂▃▄▅▅▅▅▅▄▄▃▁.......... +..........................................................................▂▅|██████████████▆▄....... +........................................................................▃▇██|█████████████████▆▂.... +........................................▁▂▃▄▄▅▅▆▆▆▆▆▆▆▅▅▄▄▃▂▁.........▃█████|███████████████████▆▁.. +....................................▂▄▇███████████████████████▇▄▂....▆██████|█████████████████████▄. +..................................▃▇█████████████████████████████▇▃▂████████|██████████████████████▇ + ^ 22.95 ``` ## Authors diff --git a/packages/fuzzy/tpl.readme.md b/packages/fuzzy/tpl.readme.md index b905f79ac1..5e7c736a49 100644 --- a/packages/fuzzy/tpl.readme.md +++ b/packages/fuzzy/tpl.readme.md @@ -16,6 +16,7 @@ ${pkg.description} ### Features - Entirely declarative & functional approach +- Fully type checked - Fuzzy set domain shaping & composition functions (incl. negated / inverse) - Various [T-norms & S-norms](https://github.com/thi-ng/umbrella/blob/develop/packages/fuzzy/src/tnorms.ts), incl. parametric versions - Rules with multiple inputs/outputs and arbitrary term combinators (i.e. @@ -119,30 +120,40 @@ Example taken from Franck Dernoncourt's [Introduction to Fuzzy Logic](https://www.researchgate.net/publication/267041266_Introduction_to_fuzzy_logic): ```ts -const food = variable([0, 10], { - awful: invRamp(1, 3), - delicious: ramp(7, 9), -}); - -const service = variable([0, 10], { - poor: gaussian(0, 1.5), - good: gaussian(5, 1.5), - excellent: gaussian(10, 1.5), -}); - -const tip = variable([0, 30], { - low: triangle(0, 5, 10), - medium: triangle(10, 15, 20), - high: triangle(20, 25, 30), -}); - +// define fuzzy input variables +const inputs = { + food: variable([0, 10], { + awful: invRamp(1, 3), + delicious: ramp(7, 9), + }), + service: variable([0, 10], { + poor: gaussian(0, 1.5), + good: gaussian(5, 1.5), + excellent: gaussian(10, 1.5), + }), +}; + +const outputs = { + tip: variable([0, 30], { + low: triangle(0, 5, 10), + medium: triangle(10, 15, 20), + high: triangle(20, 25, 30), + }), +}; + +// l-vars, rules and defuzzification are using generics for type safety +// we define these 2 type aliases for brevity +type I = typeof inputs; +type O = typeof outputs; + +// rule definitions: // if service is poor OR food is awful -> tip is low // if service is normal -> tip is medium // if service is excellent OR food is delicious -> tip is high const rules = [ - or({ food: "awful", service: "poor" }, { tip: "low" }), - or({ service: "good" }, { tip: "medium" }), - or({ food: "delicious", service: "excellent" }, { tip: "high" }), + or({ food: "awful", service: "poor" }, { tip: "low" }), + or({ service: "good" }, { tip: "medium" }), + or({ food: "delicious", service: "excellent" }, { tip: "high" }), ]; // defuzzification using default center-of-gravity strategy @@ -168,8 +179,8 @@ defuzz( rules, // input values { food: 7.32, service: 7.83 }, - // mean-on-maxima strategy - maximaStrategy({ mode: "mean" }) + // custom defuzz strategy + meanOfMaximaStrategy() ); // { tip: 25.050000000000043 } ``` @@ -177,7 +188,7 @@ defuzz( Note: The results are slightly different than those in the textbook example, due to different `gaussian` fuzzy sets used for the `service` lvar. -Using the `traceStrategy` from the upcoming +Using `traceStrategy` from the upcoming [@thi.ng/fuzzy-utils](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy-utils) package, we can also visualize the fuzzy sets and highlight the position of the crisp result value. @@ -210,23 +221,45 @@ Different results can be obtained by adjusting the output sets, here using `tnormHamacher(2)`. ```text -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|..................... -..............................................................................|....▃▂............... -..............................................................................|..▃███▆▂............. -..............................................................................|▅███████▇▃........... -................................................▁▃▆▃▁......................▁▄▇|███████████▆▃........ -...........................................▁▂▄▆███████▆▄▂▁..............▂▄▇███|██████████████▆▃▁.... -...................................▁▂▃▄▅▆▇█████████████████▇▆▅▄▃▂▁..▂▄▆███████|██████████████████▅▃▁ - ^ 23.55 +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|...................... +.............................................................................|.....▃▂............... +.............................................................................|...▃███▆▂............. +.............................................................................|▁▅███████▇▃........... +................................................▁▃▆▃▁......................▁▄|████████████▆▃........ +...........................................▁▂▄▆███████▆▄▂▁..............▂▄▇██|███████████████▆▃▁.... +...................................▁▂▃▄▅▆▇█████████████████▇▆▅▄▃▂▁..▂▄▆██████|███████████████████▅▃▁ + ^ 23.55 +``` + +...or using `tnormAczelAlsina(2)` (there're many more available): + +```text +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|....................... +............................................................................|.▂▃▄▅▅▅▅▅▄▄▃▁.......... +..........................................................................▂▅|██████████████▆▄....... +........................................................................▃▇██|█████████████████▆▂.... +........................................▁▂▃▄▄▅▅▆▆▆▆▆▆▆▅▅▄▄▃▂▁.........▃█████|███████████████████▆▁.. +....................................▂▄▇███████████████████████▇▄▂....▆██████|█████████████████████▄. +..................................▃▇█████████████████████████████▇▃▂████████|██████████████████████▇ + ^ 22.95 ``` ## Authors From 8b239347894bf8c7192890151868ecdb1ac3bf2b Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 20 Dec 2020 11:22:20 +0000 Subject: [PATCH 068/107] feat(fuzzy-viz): import as new pkg --- assets/fuzzy/temperature-lvar.svg | 1 + packages/fuzzy-viz/LICENSE | 201 ++++++++++++++++++++++++++ packages/fuzzy-viz/README.md | 108 ++++++++++++++ packages/fuzzy-viz/api-extractor.json | 3 + packages/fuzzy-viz/package.json | 83 +++++++++++ packages/fuzzy-viz/src/index.ts | 2 + packages/fuzzy-viz/src/strategy.ts | 28 ++++ packages/fuzzy-viz/src/var.ts | 122 ++++++++++++++++ packages/fuzzy-viz/test/index.ts | 6 + packages/fuzzy-viz/test/tsconfig.json | 11 ++ packages/fuzzy-viz/tpl.readme.md | 79 ++++++++++ packages/fuzzy-viz/tsconfig.json | 9 ++ 12 files changed, 653 insertions(+) create mode 100644 assets/fuzzy/temperature-lvar.svg create mode 100644 packages/fuzzy-viz/LICENSE create mode 100644 packages/fuzzy-viz/README.md create mode 100644 packages/fuzzy-viz/api-extractor.json create mode 100644 packages/fuzzy-viz/package.json create mode 100644 packages/fuzzy-viz/src/index.ts create mode 100644 packages/fuzzy-viz/src/strategy.ts create mode 100644 packages/fuzzy-viz/src/var.ts create mode 100644 packages/fuzzy-viz/test/index.ts create mode 100644 packages/fuzzy-viz/test/tsconfig.json create mode 100644 packages/fuzzy-viz/tpl.readme.md create mode 100644 packages/fuzzy-viz/tsconfig.json diff --git a/assets/fuzzy/temperature-lvar.svg b/assets/fuzzy/temperature-lvar.svg new file mode 100644 index 0000000000..66057fdb11 --- /dev/null +++ b/assets/fuzzy/temperature-lvar.svg @@ -0,0 +1 @@ +freezingcoldwarmhot-20.000.0040.00 \ No newline at end of file diff --git a/packages/fuzzy-viz/LICENSE b/packages/fuzzy-viz/LICENSE new file mode 100644 index 0000000000..8dada3edaf --- /dev/null +++ b/packages/fuzzy-viz/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/fuzzy-viz/README.md b/packages/fuzzy-viz/README.md new file mode 100644 index 0000000000..50a066cbf9 --- /dev/null +++ b/packages/fuzzy-viz/README.md @@ -0,0 +1,108 @@ + + +# ![fuzzy-viz](https://media.thi.ng/umbrella/banners/thing-fuzzy-viz.svg?1ebd05a8) + +[![npm version](https://img.shields.io/npm/v/@thi.ng/fuzzy-viz.svg)](https://www.npmjs.com/package/@thi.ng/fuzzy-viz) +![npm downloads](https://img.shields.io/npm/dm/@thi.ng/fuzzy-viz.svg) +[![Twitter Follow](https://img.shields.io/twitter/follow/thing_umbrella.svg?style=flat-square&label=twitter)](https://twitter.com/thing_umbrella) + +This project is part of the +[@thi.ng/umbrella](https://github.com/thi-ng/umbrella/) monorepo. + +- [About](#about) + - [Status](#status) +- [Installation](#installation) +- [Dependencies](#dependencies) +- [API](#api) + - [Linguistic variable visualization](#linguistic-variable-visualization) + - [Instrument a DefuzzStrategy](#instrument-a-defuzzstrategy) +- [Authors](#authors) +- [License](#license) + +## About + +Visualization & introspection utilities for [@thi.ng/fuzzy](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy). + +### Status + +**ALPHA** - bleeding edge / work-in-progress + +[Search or submit any issues for this package](https://github.com/thi-ng/umbrella/issues?q=%5Bfuzzy-viz%5D+in%3Atitle) + +## Installation + +```bash +yarn add @thi.ng/fuzzy-viz +``` + +```html +// ES module + + +// UMD + +``` + +Package sizes (gzipped, pre-treeshake): ESM: 794 bytes / CJS: 860 bytes / UMD: 984 bytes + +## Dependencies + +- [@thi.ng/fuzzy](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy) +- [@thi.ng/hiccup](https://github.com/thi-ng/umbrella/tree/develop/packages/hiccup) +- [@thi.ng/hiccup-svg](https://github.com/thi-ng/umbrella/tree/develop/packages/hiccup-svg) +- [@thi.ng/math](https://github.com/thi-ng/umbrella/tree/develop/packages/math) +- [@thi.ng/text-canvas](https://github.com/thi-ng/umbrella/tree/develop/packages/text-canvas) + +## API + +[Generated API docs](https://docs.thi.ng/umbrella/fuzzy-viz/) + +### Linguistic variable visualization + +Generate an SVG visualization of all fuzzy sets defined in a [linguistic +variable](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy#linguistic-variables): + +![fuzzy set visualization of the example l-var](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/temperature-lvar.svg) + +```ts +import { varToSvg } from "@thi.ng/fuzzy-viz"; + +// temperature sets (in celsius) +const temp = variable( + [-20, 40], + { + freezing: invSigmoid(0, 2), + cold: trapezoid(-1, 2, 16, 20), + warm: trapezoid(15, 20, 30, 34), + hot: sigmoid(32, 2) + } +); + +// generate & write SVG file +writeFileSync("temperature.svg", varToSvg(temp, { samples: 200 })); +``` + +See [`VizualizeVarOpts`]() for further options to configure the visualization. + +### Instrument a DefuzzStrategy + +TODO + +## Authors + +Karsten Schmidt + +If this project contributes to an academic publication, please cite it as: + +```bibtex +@misc{thing-fuzzy-viz, + title = "@thi.ng/fuzzy-viz", + author = "Karsten Schmidt", + note = "https://thi.ng/fuzzy-viz", + year = 2020 +} +``` + +## License + +© 2020 Karsten Schmidt // Apache Software License 2.0 diff --git a/packages/fuzzy-viz/api-extractor.json b/packages/fuzzy-viz/api-extractor.json new file mode 100644 index 0000000000..94972e6bed --- /dev/null +++ b/packages/fuzzy-viz/api-extractor.json @@ -0,0 +1,3 @@ +{ + "extends": "../../api-extractor.json" +} diff --git a/packages/fuzzy-viz/package.json b/packages/fuzzy-viz/package.json new file mode 100644 index 0000000000..88ac032adf --- /dev/null +++ b/packages/fuzzy-viz/package.json @@ -0,0 +1,83 @@ +{ + "name": "@thi.ng/fuzzy-viz", + "version": "0.0.1", + "description": "Visualization & introspection utilities for @thi.ng/fuzzy", + "module": "./index.js", + "main": "./lib/index.js", + "umd:main": "./lib/index.umd.js", + "typings": "./index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/fuzzy-viz#readme", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/postspectacular" + }, + { + "type": "patreon", + "url": "https://patreon.com/thing_umbrella" + } + ], + "author": "Karsten Schmidt ", + "license": "Apache-2.0", + "scripts": { + "build": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module", + "build:release": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module all", + "build:es6": "tsc --declaration", + "build:test": "rimraf build && tsc -p test/tsconfig.json", + "build:check": "tsc --isolatedModules --noEmit", + "test": "mocha test", + "cover": "nyc mocha test && nyc report --reporter=lcov", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib", + "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", + "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", + "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", + "pub": "yarn build:release && yarn publish --access public" + }, + "devDependencies": { + "@istanbuljs/nyc-config-typescript": "^1.0.1", + "@microsoft/api-extractor": "^7.12.1", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.14", + "mocha": "^8.2.1", + "nyc": "^15.1.0", + "ts-node": "^9.1.1", + "typedoc": "^0.19.2", + "typescript": "^4.1.3" + }, + "dependencies": { + "@thi.ng/fuzzy": "^0.0.1", + "@thi.ng/hiccup": "^3.6.4", + "@thi.ng/hiccup-svg": "^3.6.5", + "@thi.ng/math": "^2.2.2", + "@thi.ng/text-canvas": "^0.2.35" + }, + "files": [ + "*.js", + "*.d.ts", + "lib" + ], + "keywords": [ + "ascii", + "debug", + "fuzzy", + "hiccup", + "inspection", + "logic", + "svg", + "typescript", + "visualization" + ], + "publishConfig": { + "access": "public" + }, + "sideEffects": false, + "thi.ng": { + "parent": "@thi.ng/fuzzy", + "status": "alpha", + "year": 2020 + } +} diff --git a/packages/fuzzy-viz/src/index.ts b/packages/fuzzy-viz/src/index.ts new file mode 100644 index 0000000000..b3ec9b1356 --- /dev/null +++ b/packages/fuzzy-viz/src/index.ts @@ -0,0 +1,2 @@ +export * from "./strategy"; +export * from "./var"; diff --git a/packages/fuzzy-viz/src/strategy.ts b/packages/fuzzy-viz/src/strategy.ts new file mode 100644 index 0000000000..9a39647297 --- /dev/null +++ b/packages/fuzzy-viz/src/strategy.ts @@ -0,0 +1,28 @@ +import type { DefuzzStrategy } from "@thi.ng/fuzzy"; +import { fit } from "@thi.ng/math"; +import { barChartHStr } from "@thi.ng/text-canvas"; + +export interface VisualizeStrategyOpts { + samples: number; + height: number; +} + +export const instrumentStrategy = ( + strategy: DefuzzStrategy, + opts: Partial = {} +): DefuzzStrategy => (fn, domain) => { + const { samples, height } = { samples: 100, height: 16, ...opts }; + const res = strategy(fn, domain); + const [min, max] = domain; + const delta = (max - min) / samples; + const vals: number[] = []; + for (let i = min; i <= max; i += delta) { + vals.push(fn(i)); + } + const chart = barChartHStr(height, vals, 0, 1).replace(/ /g, "."); + const index = Math.round(fit(res, min, max, 0, vals.length)); + const legend = new Array(Math.max(index - 1, 0)).fill(" ").join("") + "^"; + console.log(chart); + console.log(legend); + return res; +}; diff --git a/packages/fuzzy-viz/src/var.ts b/packages/fuzzy-viz/src/var.ts new file mode 100644 index 0000000000..570422dc3d --- /dev/null +++ b/packages/fuzzy-viz/src/var.ts @@ -0,0 +1,122 @@ +import type { LVar } from "@thi.ng/fuzzy"; +import { serialize } from "@thi.ng/hiccup"; +import { convertTree, svg } from "@thi.ng/hiccup-svg"; +import { fit } from "@thi.ng/math"; + +export interface VizualizeVarOpts { + /** + * Number of samples to evaluate for each fuzzy set. + */ + samples: number; + /** + * Visualization width + */ + width: number; + /** + * Visualization height + */ + height: number; + /** + * If true, includes a legend of color coded labels of the fuzzy sets. + */ + labels: boolean; +} + +/** + * Takes an {@link @thi.ng/fuzzy#LVar} and visualization options. Evaluates all + * of the var's fuzzy sets in the var's value domain and visualizes them as + * polygons. Returns a {@link @thi.ng/hiccup-canvas#} compatible shape component + * tree. + * + * @param var + * @param opts + */ +export const varToHiccup = ( + { domain: [min, max], terms }: LVar, + opts: Partial = {} +) => { + const { samples, width, height, labels } = { + samples: 200, + width: 600, + height: 100, + labels: true, + ...opts, + }; + const keys = Object.keys(terms); + const dt = (max - min) / samples; + const ds = width / samples; + const dh = 360 / keys.length; + const curves: any[] = []; + const legend: any[] = []; + for (let i = 0; i < keys.length; i++) { + const id = keys[i]; + const f = terms[id]; + const y = (i + 1) * 12; + const stroke = `hsl(${(i * dh) | 0},100%,40%)`; + const curr: number[][] = []; + for (let i = 0; i <= samples; i++) { + curr.push([i * ds, (1 - f(min + i * dt)) * height]); + } + curr.push([width, height], [0, height]); + curves.push([ + "polygon", + { + stroke, + fill: `hsla(${(i * dh) | 0},100%,50%,20%)`, + }, + curr, + ]); + if (labels) { + legend.push( + ["line", { stroke }, [0, y], [20, y]], + [ + "text", + { + baseline: "middle", + fill: "black", + }, + [30, y], + id, + ] + ); + } + } + const zero = fit(0, min, max, 0, width); + return svg( + { + width, + height: height + 12, + fill: "none", + "font-family": "sans-serif", + "font-size": 10, + }, + ...curves, + ...legend, + [ + "g", + { fill: "black", translate: [0, height + 10] }, + [ + "line", + { + stroke: "black", + dash: [2, 2], + }, + [zero, 0], + [zero, height], + ], + ["text", {}, [0, 0], min.toFixed(2)], + ["text", { align: "center" }, [zero, 0], "0.00"], + ["text", { align: "end" }, [width, 0], max.toFixed(2)], + ] + ); +}; + +/** + * Similar to {@link varToHiccup}, but then also serializes the result to an + * actual SVG string. + * + * @param $var + * @param opts + */ +export const varToSvg = ($var: LVar, opts: Partial) => + serialize(convertTree(varToHiccup($var, opts))); diff --git a/packages/fuzzy-viz/test/index.ts b/packages/fuzzy-viz/test/index.ts new file mode 100644 index 0000000000..3e70a22a9e --- /dev/null +++ b/packages/fuzzy-viz/test/index.ts @@ -0,0 +1,6 @@ +// import * as assert from "assert"; +// import { } from "../src"; + +describe("fuzzy-viz", () => { + it("tests pending"); +}); diff --git a/packages/fuzzy-viz/test/tsconfig.json b/packages/fuzzy-viz/test/tsconfig.json new file mode 100644 index 0000000000..f6e63560dd --- /dev/null +++ b/packages/fuzzy-viz/test/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.json", + "compilerOptions": { + "outDir": "../build", + "module": "commonjs" + }, + "include": [ + "./**/*.ts", + "../src/**/*.ts" + ] +} diff --git a/packages/fuzzy-viz/tpl.readme.md b/packages/fuzzy-viz/tpl.readme.md new file mode 100644 index 0000000000..9ee0e13b06 --- /dev/null +++ b/packages/fuzzy-viz/tpl.readme.md @@ -0,0 +1,79 @@ +# ${pkg.banner} + +[![npm version](https://img.shields.io/npm/v/${pkg.name}.svg)](https://www.npmjs.com/package/${pkg.name}) +![npm downloads](https://img.shields.io/npm/dm/${pkg.name}.svg) +[![Twitter Follow](https://img.shields.io/twitter/follow/thing_umbrella.svg?style=flat-square&label=twitter)](https://twitter.com/thing_umbrella) + +This project is part of the +[@thi.ng/umbrella](https://github.com/thi-ng/umbrella/) monorepo. + + + +## About + +${pkg.description} + +${status} + +${supportPackages} + +${relatedPackages} + +${blogPosts} + +## Installation + +${pkg.install} + +${pkg.size} + +## Dependencies + +${pkg.deps} + +${examples} + +## API + +${docLink} + +### Linguistic variable visualization + +Generate an SVG visualization of all fuzzy sets defined in a [linguistic +variable](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy#linguistic-variables): + +![fuzzy set visualization of the example l-var](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/temperature-lvar.svg) + +```ts +import { varToSvg } from "@thi.ng/fuzzy-viz"; + +// temperature sets (in celsius) +const temp = variable( + [-20, 40], + { + freezing: invSigmoid(0, 2), + cold: trapezoid(-1, 2, 16, 20), + warm: trapezoid(15, 20, 30, 34), + hot: sigmoid(32, 2) + } +); + +// generate & write SVG file +writeFileSync("temperature.svg", varToSvg(temp, { samples: 200 })); +``` + +See [`VizualizeVarOpts`]() for further options to configure the visualization. + +### Instrument a DefuzzStrategy + +TODO + +## Authors + +${authors} + +${pkg.cite} + +## License + +© ${copyright} // ${license} diff --git a/packages/fuzzy-viz/tsconfig.json b/packages/fuzzy-viz/tsconfig.json new file mode 100644 index 0000000000..bd6481a5a6 --- /dev/null +++ b/packages/fuzzy-viz/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "." + }, + "include": [ + "./src/**/*.ts" + ] +} From 8e21a7bcd73c858c807b74356fd1d01ef2d0c7a5 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 20 Dec 2020 11:23:09 +0000 Subject: [PATCH 069/107] docs(fuzzy): update readme, add images --- assets/fuzzy/fuzzy-matrix-dernoncourt.png | Bin 0 -> 136971 bytes packages/fuzzy/README.md | 80 ++++++++++++++-------- packages/fuzzy/tpl.readme.md | 75 ++++++++++++-------- 3 files changed, 101 insertions(+), 54 deletions(-) create mode 100644 assets/fuzzy/fuzzy-matrix-dernoncourt.png diff --git a/assets/fuzzy/fuzzy-matrix-dernoncourt.png b/assets/fuzzy/fuzzy-matrix-dernoncourt.png new file mode 100644 index 0000000000000000000000000000000000000000..c47e7fc85be28ba044274fa66620723af6989eeb GIT binary patch literal 136971 zcmeEtWmHvP_b%N?!vUll4vlmR(kXH1?nY9&>(CNPBPgBHNT)QC3IdYS-ElYi{^E{z z-245G`)6zphqc#UF>B5F%(jY`o*)_6HclC7sMXB~thi~2c=S~d+=GKP{;vkE6k zTr!H2DsnE-f?sJ;v0Nm7P#SYo<3CGlh>Sw{-Kf=Z}EV;k)B8 zu_Yre&wUJ-*LA|hJXq7nlt${53XvEVu__8yiR7>d34xp-G+{5_rZ;316!5ti!VgSN z70>M$wHGw>m*O9^Ik8dJePI&3BDoP={Y86jU^*18)OBECq>PFhvJ5FTSE8^<2aN-< z6*T$vLV%B#A*EBia;Q%uJz>N@9C_8)!?@|?W@`?Ng$p zpk!%x5D^x0Ai8>Ye7`*U&tx8# zpKk?PIgj3X9a3Y%^HX9}1;W)UauBS+xcGR!;=3&*j)D=Ugr65jS@`rWh`4wg2Xz-u zg7XrcnkoTn6kRhOO@eAFfMm+{HD5v@IjhFl0Af7VDDng)*1cAdl^oLN!ax~Sn)^{9 zioSQq8MeDVWTdvHpGbOP*cF^Ql0eEBG%s*yB1apE$wQHsIjgXOM&K`c?~wBEOjW!T zwkNZG<;J>w119K7iHaLhp#QaHuwpM~W5R z_Bl88eXM@UUBkk|z)ER}-5%pU{u{1PTuGN}j}H|w6|_K zRE1FAfx58@+bRKr0=r_25eY9xiK!T_N!WP?hX2|L=Ad{JgjR)7hBR#qKZj5slx2)% zjfC9E>5P_%oYwKonY1EX`4HnYkS`ZY0vlIS1{BF;8a78$5sCaW27zit79%OJfQnd_ zms$dU0BjDc9#ke?k{By1a?IiiBM_b`EtsG;;8%d|9px*|`6iqskFW?{5bjKR-kRrK zsIp}3gpD<)ZZw-j>A0X9^0!d(=VR|@Rq3uV_IhDHgm7}&4P&14@W z(=>I5(9EDcY_g=|?)3dwmC6jNb>?dfet&458L!g4xg2w3>r470G^e9-`QnKDmODt9 zgP{@k7FEB?OOn?_Fb}FKHzzr#!jHQ2LAi^RI&pwj5Z7<{d-{uEs!>`t`U;wTYH~Uc zYzkZ-Ioc$q!4!PiXqqEg!~(8K-N`4DIFlCY48O>9BJ8ElDP>L|peb70C+?zk(cff6ofBp636#KQ{=fJj5 zLlrUQcA0>WL*rx>L(>FXqtoRR4wIkDZuH~xtt$IxGRm~ew2K?G5AqEgM5UJ`a^8=9 z&3SM1K0y2-+`kgG+qgg?Q=+ZYG-MCS3NxD|34;uy8xt|SFgybzo>bJ_7()*!qSFd& zY;T!q?nZ(W`!u%kg}@7f7ecY$VqZfsV`Ydxf{2J`K@?nCT$~@^lZS@Q*ev!<46Xb@ zrktT7QvBu<34K&)5v|XNZE;Phd6@X-EnG*|LYRhl7Io_?VV(UsDbWu4J|+OSn`t{V>7fK=27 z+s|9{R-x74>Xp|Bnw~KXrT1E{SC>E-AR;pxGiozvJFzo+Gk&~ryo0=Sye;g=j-Rs=XB;{>oP26jV~fZdVkCsnz#4ef4b8{mWj}apdfokmM!>>-<2$ejP&UN z|3p@B)(3%U0Rwk>!5hI%!OB-{Yr)N4O_BPx`fSbl6+bFWXWc8vx>34s!{x%KF*R2gX7@!wJVf;8Y2?_x;lB5N#-dX^&r<zVRArCH>suyX(v4YwPED zNpjV9!*(vRDszZ_ma*eGe(<@yAt301{GlCw0nQb^9$A=dk6)Mn^~qL55N}XxM{Lj+ zN-fnF<6{zEjCYI;oed5{u)kwV45TJ7*jsr#@j<@vF7hb?y9I3N#fe$*Zd!u~35m7H zXUH8v*-s70{MozcsfF^X@);&sTrJlo7$r5_rjCn9_0idK^v3pxSGg_E)A1%gZS`zz zZy|HCan_{IRBz33nrX*<#tqVr->yMGP+#MGLh#G^mT9i$NzyhovUl64|nHcpn!rhFN;iG_FzimYRXt>iOvR zg~o;QraSLq@0R1iE8;6;+VCX(!KmWYmoXnaWDN=})Yo|)Y)U_#4dh$stws7KwH9`u zkk7F*X5x!6?h_#q%;2|WWOMmBB}ya~Y;|Fz5yw~xGsQ99ThNOpi`6=$o|RqI?vGiH z{oqG_n=J6rp<-`gvMK9?deb38B`Zhh;R5#}iGZ$>sDRCywT>}M`}#0qfP&OShzNo|nlD^_a9Bkslk;o19YT%A&H%#`N~f1r?frlI!9CxtXN%!XFB=>@;l2 z;FdOFud8|jB$jAxVSND)i?7TxCC8eT+A2DJ^{yK0;m@X?ML+vel3tQp=V6yteg|PK zY16{ftu38t^-$aU?jG!(HXBjqv|wDFXWAW+(<`>L0BWi(9?h$8#dCSN@}WQDC2!7s z??u`*tEC=uz3(^X`I3dysy(UCDt>n!CwmH{<4DraXXB!T*!D2K&rfd6G`bMI((ZMv z(yP81GvfCD+{W-)<-6h1=h&Owi|Ku3VAhfIX>Av)m<2I6OT{vON3eEn;-aQuDhPep&>qA%>S&X5pR#-y-KzKfy?%# z&G|1HE4Z@fjR8S3P)EE?qSEH1HXmHqE&X9;n;(Z^d<|g|Jh! z;Cif2Y3@&-%$ioZ>#MZ+pY-*Re#r>VP;pvce0?OdLgCl2xk$CZ)Lt6UaGZVhxj8`K z!7go5&wI;%?hYLbmtw(xAmDO0@phtrbh7`nKSiZ1drIug>va`N{?23$-u6zL0h7D(Z7e9QGA3hv7TnT;k{Ql#n zP3(^9tUI~w7lj-}si;7J?cLM6E9C(Hfc7^GtHtqfAbV>qLKyZ2IB^yDKo`_(3VQ2( zZ(9i-&zH~O9#HM}gKdwHa&bg8`rSv>U_81vIIvv1KM0mEguzUGeN|;6oxT1mZzaEz z6l=vG;DH4lMz$QrH|gx+qI~Dz;S({E4|?GHuRIqDDcCEE%bVB)&6d>Z$Zd%M@KtmH z?GE2@CxO@k)mc{O6$}g^-QzE;oI33x3=C|xjRwRGqNFHj=H$R;V(w&W!RF=Q4D^P9 z5%v-UzB*XAnNWH;*gL)w^b(=|-9r%g{@Bb;P5HZvo1F+XL`jwMxs$5}>*M%4i=8DfH_1tdAK-)e?RbFxBi*(Uythi z^C&+r|G%I7*PZ`7Da`)3gMaPl54nD~0`w9^6K4OL_M&L8nVT{IJD%D|sb~Oy;U0Md zaIOaUVEpqJ_zp|o8D_JR1p^}vBPS)H;RU;!g`AErecdO)#8M-@^tU+H%3*Azc2=^4gk(4+C6o1*F3Ade!Km8r}Tiu#0HlhmlF2>djNn z2F)7&_g7X-IyD8K?B~_l+HYM?1PITn75^n1o&41|@#PFb2?%lIBFqY@;KURb z?Qr3xTnTuAhuf1v)81&RF@`T`J{S8bfSFeL;kAm%q+OATLBbMb67 z`kSu))$Ti5Zw1{;GKIY-T}pK8Y$reac-l~=9AzgeEd#^Q@LO(+-MQ+%Yu>3n9*1ul`;Dtl znl69F6w0SC=he{mc(!;Rq|O@pDBa&*v@2X4udj!bIwp87`SDSG+n1(^e=0x?kUK5l zc9p_J6IqQAO!0b)YIe5sHKydz&)%33(_Wx&+RnG@vmJ$p`@2Ge7LUoMS5`K2RVEd} z^Yim?)n01@iO0V_=E&RHme8ogk~}MLT56lDwNf!tdt#FDd-V&rfzHj&E0XiIR`I0@ zRpag(Z>{9lzoZzfU)X)PySW(3aB5=;xEeAVj?3%}K_0p}XlJ+h^5#f7Ii5_2ekhGS z?QCZ@Vw(I^A>s*HfljTZi9y8hTw!R~S)JYNMl<0m0U>`iD9fme`d2t6sd;BGVpGj@ ziKfEq(=94cL;64TqntodIA9Vh3yZ;xk&F@3{vx&a2>sZpDk5hZFP~%|xbMsmm#zZ0hFBXGOz#nySCAhC zn=ufkubs%yOJZXz$4GqCNX5)$`>j=WVqYw2%a?;$MSmh_wd&>hcc+Z7E@zObaA#vY z*^3ogsP~*7{KQkoa##9RAp@ViI!oyGWT8R@B0Shql2KV+o(sM3O2#g>Gb*Jib+5{}v#=JlX#*m_7C>27t{3$>#cl|oc5fWlP$4qhO z7C?s(_nB~?Sy)=4mGx4-=whHLE8LkbO)F}^JM(z%99Hy%ldnBAikp7ei_Lgty3Nn0 zX*1hr?L&s+mxG!P0maM}h3m6fqqH%x2mMk0Rg9+l>z(y?b`_{=^Pg;zy?KwI)M8TU z5fuIqwwB!*aq`CTbYbtBRzUF8KfiXbo#S-d8V@88CKNJuzgkdcC&W+Rb`AtLDKiYv(sy~!r*v9hJsjI z3K6#VClw(-XWNRwhDyM7@`CTl2%-TYzf(*vL_deqEL@{RgQ?2PQ74s{o6~Z|500=) zMf9qmJDAvPuEt_$IQ{CYikMs&8bN{WbV<ZkF}bUIdCNSk`G$2aV!^V>7{xlg1R1 z;K=56cvl_WcGO22tBSG1=`+Mb|EmfmB=@!(OH39pchD-oo4tnb(ueGirgu$&62cL# z3e7^h9Qnc`q1Xe_Nw5oUt+*Jv0HkiEk~}5@Tkk|+PJr9*+Rcm@qk-C)=y*8zXx4s#{apr*4V7|W zktSZ)G?WM8C3?N}zE7okXy}zih&waAV>)PEvFbxmUCJIa<)!cFj`11#1eT~{gVU1Z z0;+gfc#gg=vRDf?!pbUpyRr2^%d1Ug8d=kyajoe^oz0+RMU*T?ZuS_P$iynuFpH!t z>`Ua-GDMxYdA#}O5l`mR-nCbe2W#T&vnS&DVu_tiz3g)(N;ZRhm5_4DsDgnN8%(Es z-)^FGHWqNtJ-c3I8ZONNUVe_+cW4B)dg6yrYH~R8)>!i#kiwx*R6K+jD!}|U++K|Z zjJ}QSf7C?mB=IU^=+fJMavw#^rGST7pnNX+$n<3@#*D0S4@E+g*sQO(q~4VH&pSd9+4SjvW3j(&>Nae70XS)Cg1bnF z^4;_47HAL_Hgf`g*jI;RW^_=&QU->NAujtLZz-*o^S z8w98kzbvQ+R6tA1lj3(y^`q7E;r3}7d4UA=gx^0&R?PH4E0Wu zkWgciR!t&8zK6SmfY@om?NCJ3@AVG7^@qJ@{4ZLtH6L}KC$+2Uu&bvMaE+SYMcY}9 zW-`T#-8a6)py`NZWotkGW@jmhG)v;_1T%}`(dDj?#`di3l}SpdPq)+rVN)k+KK(a1 zg=u4o(8EOZ4`%&w&-OyydFap1d&rV~7x1>j+70ca!mM{+P>SC;J22*TI{Fl~FUMUQ z_mY-}=88OA&$h3v#*6XlFGs_HyX1`FIVnsL5Ue5k-I4<7OxJLt&nNnqzg3&boDicU zI^rRaT*gXOy#UL1u~wdh3+(DQ@#2Y+HNbJ>dCL2Di%vCcV% zD+sML=~2b=&N_Q0qewsA*xAdgkD+zOYn+#451~Ic>sHIH~>2 zfpWrkir4C@Datidj2i)x#jhGYdji_)KHn|oG-|W^} zN@9s(b8$9(f`^q94v$22EFv;3_M@mW56eJANuJA&eoX}qLB#hPVp1p#gRi%)QC^t=a$X^{OXs42H+J zkYb-n_2_RCoY36|Ery_cYUai|LIyezi^d}=dJoc0?K z%SXkxroR2}F(7%S3-x&0UFoq)d~d?CNFha-6+@#jf=7CBM^DU1`gnJnJLl}$(e>S@ zHT#$ey$>^>y@GtfoZq6C^ls4^OoH&va>*v-A(y?ESQDUC0*@Nw2K7&Peb&3oU6Q=u zura|MFt@)+kZ`6{C;wC3VTHep<+2dmHT3|na8)UkqIA1rIvjl26BUMxRNXoVGf2<& zPG{Mm-wE6PvOT`NJsArUZua{+$(kO-o6BlT zX5j}M^QqCpLB5x{aJhw&<%6Z)9a-x{-7_1oRNItWl|<{5>owl+d~{24D1MMT`K%nx zO2D|MFlVnY1)17 zzu4@a%Ekz>wQwkQ|722ZDm%Bn3`Y>l%JI_9?v+X-A3;d@5PSQAaI)Y^y@ph^Tawc+ z>Yzf?0LWPp-KWAByi_*+^ka9@skrQIp?~$j)Q!q^?HEMjJfaaa)D`eVQNQevo_kT;dWPPp^ymN z`c`mZVUWm(w?S*2ThNSpkU(R4hm}DU_oh2Cba1Ia4o@LW^JS_on;tWv9CP%Da;{)z<8RWX>t>jH3}QQN@#TvOhgPY%Lb*RHW~kLSwCcGw zwni#jIdcjAFzmP}>LgvF3^`FLW0YjuAUlaF3}ssfiyq6mzPhRWxhmBiBZcyw;M%ZT z=xfyGy7OkUDwi`-CTi=75t zyL}pW@}{d&D+SZsuX@)#NO*-8#ReG1St+v)oG^zkJ+fF_7A_H`ZyUFNlG19!6Vr^4 zkST;nbDDW>a#0|)S+R;E?&k#-dVFV0i8a1Ie6@J=i7lsnj~sLnq`g}p>N+CHPAHeC zviK50A~hnqcUjuvGz^ON#g5?|Egiy0mhqegIj6TXC%AbH;u7%mh{o=A*jQD1S!TE%e|I^kfA%sLOIb*8^X8D-6OF2FOAWe z_Zh^}@R?yU$~#azkOP|Ln$bLQ^A@C+vk$R+6PyDM+e?$B)OM(A5j~bWf|@GA^w2Kv z5fumoV_Q%fPgF}eTCTkBrTym4NgQi#I2U$YH~Q%ijHk8iZ`8Linh zYh-#01P}AgrKy_dvm5NULS}mG*Km4yCnd;=jR~t+!T;U5Nz4cadox`k4#|?a&a!#**SRzLQKaa@Mvx z%9LL7DT_ha5P_?x2IN9CST8~Kfbxp4C;2~d^P|ts03epD2-(v~;$T!`T-5fKbP&5v zP0uBHXk$zi1ATNljKtHYy!Pow?J@NoR_wm;U1DHgqUUcyI*6F5a-YyUr4JL*f=Vrl zaPpob);^y{k&1|-=uxOcO2wgh0qUHnAnM}trFcHxw}yw)zam7;B-RPK4_gVq#`8qL zP%pJ^I_yHiIxy*bu%9-4sNfg9=t6b88NyFdWUZn?kzdDA%Fk$>y zOWj`N*}lhvft5R5pAdr)(%(~1DRwN;NrAw$xmbt05?+B=c992LR*Lzr=s9|8Q6vy^ zLh!Qrrh=qlz#hw2Qer?%;N3ZY`SuaJI;O=2gPymBs4T1c2kpU8%6Dmt`matQCK+?$ zqE{YzV~OqMRrJFBoGN}9YvkVpzco{yp_33c9z&UTxEQ}Af63U#51oV0GsRfu!wwSV z%@xPo7OS)ab3g8&&_P(5-%>sS!`|NYU>mWV;-57^7pEFboOl>yt>}e-x_UDCu zxswBJ#l2||$Uc9i8?*{0^s7!sp}53eqT1MgLaFV5nu5BD@)O@UQJ8~<@;gX;|Q($H!AW^td30&t4M2t6BdvT)0u=ysFbd6N?ptb z2en2XVo(eXMl@5*=Nuelp%yB0#@0X%pdo;oV8$|@Sd)TZa~}1sEhtwdgg3_CbQGXV zz8Cp*EXjey;yhqC86(G2Hj;oV#}Q8OEEq#Fw3i#E?@DKW{tjoGJs8deR>IHXU55h7 zA%dMFWaHPl!$kQ+UlRHl=o(MaBrBq=&s^9F&631-zat1fpN&<@;1wv3oY2Vc=Dg7Q zDMnO|9KanqfIDW1xYR5NGp$L@Uf5^fS+?6D?rygIK1G|;a<|WsBC@cGKYB?H5-01r;BW+}EB%YG8G>zwg^zZQBK-+Q_odR-+R zOW6XtA?2|){vpDl+!frCi%<-+P z5jbEcDIF|#=;*mf82jvBhFQ>qJ*o?NAsqD$NhJrpaC#;FXwrT(BrJyJqrZ~!DbdXo zy*P1XTB^c`zQ5wciLk(;pP7>sa$S=(n?M|5w8yMtt!~AJPOB8+;8T*|zoDe=z(rL& zR=_@4v4tnJUZF*~!oFVAmEY9l1us<9kvNJ|HkSm*H|^F8Nx?r`cbCgvdVUxIfz}w8 zLlF@m0a*d}S09A!ulj-!r7Wh_k>NBq!K9zKdBFVSa&(vVrkB!q}oejto5$>r5id2t9G#9laEF;iO;ee!~3uAu$0Z zYZmC;d6APu|9X*L14;%j4YLRw_WUmZ1Ll(mK1H5WPs2}*u01b?dnh5rz#}G`rG{ig zmtJvI5f|50lop+!l)caYh}st+?(g{U%;DSAWcdJMeS0oOBuu52F8v&CFmB12mPFc` zx8a?wu5Gb>@eqzeua&~0{u;58VR;YhDLUNVFD(nabV|J}(IqV;oZkvcZstEuB@5-#(| z(j&A^#iNXv8_dldwkNvGHQ$w3r;G^Pl~i>J&PGIjW+8U!PQPnbU2pn~a=^1C=G;Gr z)Ygphj>XHw*?S8e;c{A95f4Rsk^OBosu}I?WA;y8ftDH;Ld*q3!}v6C0Jd8_^-%hj zXM+wjTcSCno)Z<8uMX;j+_92U>9Hz}^e8rDziXy4&u86!m{4cYLdTn3UJElW)AM0n zJSNq5=*i)%)({)C?5ZGCpg(TOXty=7DDHKaI(wcOa6WIvDpeKHQOYI?K1gr=A4XBY!^5l)lYpHo|5b2$EWg_ful_z0wQA5 zFd9%P3#EdAB?No0`)amSn_c0KXLA~}qOBipr6&pxp1N$Gqh>04cDgRnGT0i5s04A?F*|AswULhnyM@~+z>0MHeF$RvtoiYhJ8^qhB3%#1hs!K}6fG$0X z3`AATZeiwtX=2a-)@v@DniLNZU}rt$+?EKiQ5E@WwZ+HxkU-%FlA9dZv;0~5-Ha9G zblZy42;KP;!GbYagy>sttGL3>95^Kak-{*6N%b_&F$%5|{03wz(o{J{vGB)$J%-W( zsV?D85PCDVGBO4Tdq&Lt#6&5bgUXzu@e0?B+k?PF8xuhfQ{2vj#AM-u*+d2dz@hM< zNB6-l*fE9JY1IRM7mJ=5VUXPtlixV`??hUV6df?Gnoryweb7?`N_xq|FlnrMdnA>T zs&c&GO#s$YF{4622ccB+ExNrF$M5TT0iXAlHN8qS_>7_cy4#lCN8PzlhhD*nf5ZxM*;S6H&zmi_LXk|^s|t|_75i<-OA|yh$b#f}ZvlET_f5`T9QB+^je(JWFz2zc&=vq9*>>iC zBaB^{>}(_YL^jinow9;U?G=nnMUd>Pc+RO70R$8H79Ahy^qIv~!=-V0%-ZQAzo$z* zR}HL!k?@}^kh{_)S~cXD4=3OP<*F>xa6`=dJoKDFAy<|0LrN)+1l$w zbcj+Y;&fWu_pXD9*p6Bp(K8?jJzimruq0)yRd@(zCK4x!GUTX@+9)y{9^E|Oyp0W@ zy$doFep65(2(%SQH4b;V`nv}m0iidB4|E=KI@**_3hO`e^R(rl%`Vj7(qr`Pcmx1D zw&^VNKteoGb|GD+ty%WfAoMdY?Jl3M0PN}L@nl_p_fzGH(LZ@{Sz0){aR>qIV|Elb zGfmBseF0k_Pbk(SyId2M9%k#NmzM4jC-)s6Oo(EukSw)!78bZzcm=;XT_dk?NkD)(;wk7&P=||) z`4n#eZ#zU8Tbdz~zN=BW3tk6Ej|#uc)+I%5s}(DnPA)=BphOecCrI3P$FHv9BYo(zKNyvj!x_@Cjay2rRVdIt~sb(nvFW-_Rxa zCe5%9WZ5JbR>PC8Ls9|EUv$=6W`m!6*-&$r13HdDz`5oWaFY>rpKVloxLbr}rDkW| zEstoXHeoQ8CB4k$o@~;%gYaFLh&eb?w+MOkJH>dvm$D`YFU~<_<4-iTpt(#WCxSQY z02sp|+*#*+vXS2v?$=aMP=Ip%bgV#mT)NjvZGvvB=qw2RD(KOXx|b2}1*oUy20H?E z0F?r%8(wW+4SSx|SR_^g0t{)Qaw)&YA&WEv%ZmO3a34BU&UVq(-$+yS4LWMCcSEmQ!+%}HNeSY5Qt$gKL#9)!i2{i^~^jcP9Q>msiuM#E6`Ly3y-gtUU%EQ%#~ z_j^O-mLt|<1qJcVGmoGm1uC^_9SvjN_R{77hRc!qe&H6d*lq7ztcwg0g2l?e#7bmCoyL#dK%T@Inb2+s{ZH-pX)=g_l(U)x3HPSJJmf#+r@GOpvU#7K1 z1dT3C<&!s&gUPyG(Yn7Pbw%DrRp`ng0$iY+DpoP-G)Kd; zRg83{NAU(=iT5~|RBQRdLd9Y6Z*z-%P)`Wxzc{sBeZZ;O6ZXCfOD~!k%4d55r^BJ< z3zSw!H54KNk|qul0m6XAyWj#+qiSjB=Qbxqcq(ThjN3KOr_{A53FlBv1$rD6FRAoR zUCD$eLL!T`j5c%?4W|Pt{fe)4Qj1sf`N_lwF85mwh6{-N!lTNs!`V~^`qzkKkO9e$ z$LXK89YR?x*R4ZaK$Y^WJAO8X(SzyyB&F&QX2y0AY#q`}ifSH`j=>38G>Fu7c^d{l zmBnq+34d3%4~D9i5&jaWJxu>k=p1DX<&^gnO_x@LB4fu=!I;7hDQ{o*LrJl{r^7<6 z6Vz&D?Q;5!^dnqI0Owv9tShP50}6FPL^Vrm*6vUirxCUje@4Tckt}c@q8g3JcQ);` z-3Q0)?=-<1nZXGElh@x$CZ2rHrxQfoyf2<8cK1u=#jYlc9rvgim2mqSfF&lxi+0}N zco{!cpQQ>i?fkO;yzU$CLI=579P9OSN^)*XsCPr>T!d)1sq0WGEBt!sb>NZR)_7iU znA^W#vO}RqW*<=1$0MLgz$B|c*2ORD@IqA;t&NFEz|r3}U)}f8zBJGP!Ln}(K<12( zZB(*@$2MD^NP-b0Az6fPIJ`sZn0su6irZz?#Oj`)Q{6o6aZoIBsZ6gj;R`Fz=2XKV6oY375fzV&aK@0}<_{a&?QZj@sr#3i+`ndwX+m==e+OWc`fybo zem|oapocM8*mHCtS!j-UeYgO3$g4R@_bFTrz7@Y@sO6t+bTOlWi@5&W1BqHv0IDoP zwTyO~zDV3uy+WEP#SWa-_N@>;C&E^!hFo0lRAwLw-}pe-v52{Pz@Li6UU!#|8qEJe*YqJe%o7{467G9gY%z>&4K)h7V@`-cs&tg#ELc zBkDe+ke{&cdEsc5(9q|LA9jSLRBOlwNnJk3Jy*+QN_k%fuE?^HclU$O`2H0x{40t6 zub`R$ZVnMXkr0lBaHPtNe(FhTFmrboIMfUb*-(TqhAo3^iBv{gA(7ob!GtHS^x!X& zWuFW#)`W9TKo_CCyt{GLc>5EC84dRHrVCoe)p#+E+eGuza5V<0+5uD_p1%o;!31wh z26`q}Sx4>cN?U=GR>_~EjzCbtoiWbya6>&#^Y*A|`LPyg@(wz=Geg?~St^ZVPMs^P z4F6?Gl7Rd_yGX2B3O>H~se) zU&X-S>Ug0DrN2{p|2-WgEc;`yk;J?6kAwAB0`OnGDe!WQcUMPEzW(m zj}rjksmJY6&LEs05D|+Rnt$g_Of!mecL3-7!yREDJehmBPzL?o)bR{pa)lZv&7YM$ zlEeoibNcTP&`Sq7GAmWjcA+ z^8U?umB*dn^RfKdiL(+gnw`e5>>olu>H#^tmHU5|{ojlLM!P6WPyRzty+_eoANlsT zp#2ZQasP+lza{>EB>Yi5|GzRR4G+viqob)%C`PBzZ}099FG&6CM}=Z6(S%_cij>_{ z*1M@sp>_(z>V*aN^EIfm`__DOHQ>SFVV;M41KuIPA~6~w$Uo($EEK(#mAC&+PYi@O zt&XCw`@D($BEv%*S{4=-bTBr&f6kEHDg^mdu+4@wo%|a{dmPTsaltN%N7wC#&+KLf zfci6|`48+ZzjHFn3~*%Ud&&NK4PQQ%>kf{}r`!T7u|+qOdVR6a3LslK#&8CiUst*# zfbwD{E}O}MpU|KSWgtU`2$!Og{ie3wDeWB-6W5355sYsJsPpA=f#jv@!`+1fP`a6~ zQ^sK7@S{~nbR6-dpnz6o+l=my{XC)?|DZ(L1mr3UfpqbajW}$bItLq!s+yRH-3-|K zYCR1R%eK~XB>H;q_#QB#xRK(YHA@TTcjuGbuGW+E8yw;47Q~d4R8-Q!(23-u(MW)T zsT80#_vWLEi}hfIL5n$1WF0=Jsck?IL0BaZVAA=LxeL{1lWsqRi@gqW!63m;MGIPz zOZ{>LM?_!2@<7>kT0)CmDytrSW&3?|rt24`NuXvrbRUm5`_IA36Et0_ zJp_~vug_cMq|B7-MU3KaIx&Izo8W&Mh#;)0y?-%yxYAvyU1@ma_+*FS5fBI7V0M-} zy1z*}n=^Bh!^y?{5ivETado*Gzur#~@a7_g4sq3h%W;7}sPHJ~;db-Tn2YaGO%QN$ z6{0CYqF0fK_!{i}jo0$Y+zbr^m*}V%Mi$mRc`I%5S5WeUf1{ zdj^oJ_i=Qs)ZU9umP}u%mw)@^ zVvku$4~y$84friAiiVc?|MC;DQGtOH$5-pJu^~;asfzDTRorV9h1fx;&%=pl(XJ>@RVA?T-j&0u#>Hjq13W63g{wy{UhFT@ z;W5O$QOZaiNT8Y(ROvfneD+M|d{?J%wS>;$yWs~R|Irknmb<@Ny6hd03lj&pjV`t3 zjs!S-c=7&zsdPz+iA;loOoBusK#do3X(z5{%ZnTy1;9azc6LVrkQJ zndmz5?0KQx?0!;83YCq`prGu*8+hdUttFA9q#EtXuNPZV=NffVj`Z$3^-}>3Q*ce9 z23q*C>BN8(qXE90OWwphkvd1c-0ijJ#l8WTNf)x~);R1{`@>E0iTTs`DoBgPkp6s? zNeSC%HWitmK1-b)-vnVwq**EC8Blc72JCz@hJl;`kkydar`w-2SVdia7L*ya8xex% zK7=dKtzm;T}A4W@TJfzy;jH)bU1zGKsIiJn!;|K4bTGRQKS#wt~Uk;SK~z* zh5WFvvU)51t)O7cEpw5PRX3B};hTO*MJ_YHQ=kkWI`@F4&58LPwWk99tU+3%qpFrx z{ZoM?Y8LJNB&RkVhFVL9S?>)d*PFe?wX#~>BA=d`iXqb%kIE;D05AzJFD=@e6sWNl zNHnI-$j&ZF?Hd$Ka7r%M+Z;OIi*YaHQ$RjuYj!^ut_!uj60pyvzqocsD~M zs4X{PK#OO7efo>bV;7QDO1p8e2?&qk&CTgAnh<2HbFxiqJ`~fVAozZZ{e_X^y@vL! zO^w+1FZ)miM&3;)`RohGY-Vb@39kurf7{g|2UvCsl>Nq0_{{7k1(J61Hx`wZDGGSl z=UnURm*aicsqs8Ob61+s2su5~rWhb|KWkw2BSnT^wF36h1q2rQULFrENdU?7auCgi zg59Sbb?R(u*oH@EIO{UpesSqDYnAP{qLKp|e;ERJ{{g4ZRaqE8$epse@q>fKTt4S7 zVmYfMW8Z+AZjV!&lk493-ks^{e6p?-zTTSO7OYO(Z)Qps_w4=fXt~7iALVN-!pcva zQor+ZmR^qpN@?IH?x;!elAFhCT%|eKNp2`LP4;Ais5B<}9e%9ec!ND0Dy{IN74)P+ zG-HqyL+`U@T9DZL@mV)1NmSEQbx=^E&F~%XUZELtc}b?oAPw%}qtO)ILa@SP1dK3k z7fx9WpMxOfYCpr^x4N6P=ACbVg&A?*wAFbl@al8x-8uNz*N=%9q%%VZ9SWg7rlgO@ zOa~?~h$ADXiasj7GRJ-0ptGjS?wmj76t@xbWu=mHYhUb`dV5UBJy97$MMK}CmBa;J zHdu}HNq8jZ5~A6s^PZ^Zf*OOrY)s^3BF%#p1KcA~l9ycmm?O3j#0Mqh> zQdF!**!AX|X4~`iTd+}^0urVzi?-psp?uo?^u_65GBKA~pCGY-Ynv`H-y6HiJ-|w7 zon0AJdp{nX%W;7CcxI-v#34`NY9kt^o#@OX+n+CXYFFUtv282QjgS;VO|zt@hCsuRGf`UHr)24lk~M->X;uG-2ZXrp<1qnd?sZqWdgn z8FWbS`0zKPfSU-+D79N>IfaBsd9A=~^0Yh`| zZqv`bByo*L^#joWlG!DN12wUL^21hf{iw4m)FsABu6G#QtRS=UJdXUY_1Qk$n~}^p zh7G^1)eKwi<8remDpt+QeBaBUocZRUP0y?>;pWT^tZgtYw>|wnr5YX=>(NC7Fq+lS z-TI%?Th^$3?dl=cnR))P7bQlkVcSl&HP@yK#iFs5s&=b(vDW(eQiDGc(>;OGW7S8F zqmS(eXsdI0P%GkhLefm=Soa#Mxx%gWt4-Y(<9sTceM=5nseTJ){G(u2kG;1<>+=pg zTA3v#e%l;l+2DIDmxT0kEP?8|piS;bKBETDBqkvmf^nv=|4O8jVq*vDI&a4y?hBZr_ttM(p z%I^{Y@h-r<$>cE5^d%)h?*#F1PDmGAC}nJHnP1@5z4->b%BNM%_Hv@J;tg}J=E~2T zsiRT3jz>s`O=3MOHn=)ji5j)9ic8d+OS<^Bx1Aq0eN3%SdB~~|o&};jl;o+I9wI|*W zcVU*dAv@6(2BceXwp+LUO)9{v0e~PJ1A5OdCMdj#4p)r}b$K;Euk(WE#d08+!jUu)NTzs6T| z@Ax1ggIdl%K#%&=`iLX>Y#>g_b~eI@iwgLiT9@2jt_q$R-Nt;fR(oF2^x-{^wX<$p z`S*r{BE`&fT5c;xZS++_=KsakTZTpTM(e|ZsD#qp3P^W1B1nUPbhm``I5dJHAVUj? zl!A1Fbb|~E2udT((A_P(&*pbL*L$w({{cUZGtXYn%6qMKZ@wB`2F9q6Q(2S}2)1Sr zdbPe~fs&z54Cd_)eV!WUuK$;(ZvbnX*}>b-_!def+j~D^SQ$Ihjl%l6}IinR@A*`;+&QvB6DEW?bbwUb&ydeIVJ4fJ+M*Oz^$Rd;rX#U z!krI6dK@EjADA;2hJfijXOKP)vX-i+TUQ0u;Xrd3e_QzE8FM3R{YSs>%LYYx)LH6* z&%`1??Fd65xt_nf_EOl$Bl3FpMZ3870_t6TLG>iZV)@VVZ<}a~G$bi7&T;~!ncjP; zNp;JLEM`7+ajaY*S;{|6HNEkPKiOzp&`oj0j<>laEEk4}ObsuYsDw!)NH;Y<*CiNx z+c=6I4!OHEGw5nSU|k4MfLhl{uY^zxFn#7G{$Yn!IzUnHybQohqfK(MG^`NYlNRtOiV{K>G-R!?^(-y4hzVO|4b$H#>ezLaVJ*V%x z{oCG9)_NoZ=G$Cb{Q}S<$3D(@kAEJ1@BH(uSXP zC-u+Nk2yOlcPmZNG$=`3dSweZJR8@i5Po6UAX7fxoE~@`TQ$I0&hv%G5@RqL2@#s! zWzQRZ4)rMWJ{5hn=a=~?D6YcxERVLr{~`_=F9Rw>?Y689xvpnz(s{dd2>9;WaLr+kf4Tcz`lI2Ff7$X0wD18@VOY$vzrRWWU#ex4ux>udB4&2SdPk z{m2?%>}YM?J&8Bhdc2Y^B^i^92cB>>*H&?*^L_AXJbQl#BJ2OJy4lgEbt)IZo-<-8LivMC*1Jprde^wq7o#16BWCn zgbRG%dBDV-NtV@s(^71uf;4uH`Uxj7qT|(~n=Zm4MVKze4MqCBFRjbwdraRz!!bok zam41*1M_JFg{ytJZdWTMpPv`mAz0Lr`uX2{2@jAWv#K7+%v&E$^4ABYnY)jw-k+K3 zmR`yhN31I*adiv_>M&P{aq0MpzlH-mV-{**{K&#r07~$S(0~V-W^H5heWW;IsM`yH z-8uZl_n7L7It@l^7A&DM7w7;jRQI7R>=b~fqvhuI$j!;2TAz1ACFUDt`|v$~%A9Z3 zQt!BK*-(u6u_oZJ6l%m0#5F!ISLS=SC&1AEfp`kR6%Z!lZJ_w!zco7R6L#?tXcFS$ zMse}*?gAaNRfqk%`I=dg1d)!T&W1(juZ4knf|6;zekhl`eyR|e{{<^|x zoSBknmdbwEAqGr@o1@Q)Zoh|W0bby%M3%xjioyS?{npq6h)Nz&@Y|L+{qcPE1hMiN zCq1&gnycCemO>VF!3b*U2OQYJyhzYhOLDx? zczm$L=Q-eCDDeDOq_}6Q$xjBtFiG(I<#yDz_rQf?ENQ;fztx{wr!?*7kyy?}EA}-d zHNfX&r1PZ*KYu0cw`a!f79+L>I34d6=h@Kod%O zbJ*-pO^dF&Xtw3<7CCglSD3&tWuQZOp8O+V@!4M(*KyO7Dqe2dQQn;8qY=I{&^$liqeN_LC<9QzY7aS2#E#DY3En5jnmfxlN`P zaaEntI*4(e`bg|bqH%rNK=9*78fIlo-uPiP<_O#SnA71zq1Gtmc!llHXZNPHP5)Bh z#q#&9baPgFA5gVC46=L#r6yCVAT=q=!$j7yBT@=={aHbVpM4v5Eeogk<`+{*=O3^m zk!VHww?IF-@SW%0<(M0bIG5KeZw3!-2NVFH1pD-0Fu{FLEp6dq-$-S#JC^EJ+saC7 z5Q-1BMhPOqYtOAo8Rxp}hTGcQbcGWZbx;P4uLBe`>s@?EXYeaJ468}KmoIZ}w@nmY z<^?3e)|*Gk!VT+{{VIowCmxX2{N#fYXei|f^9_eWlO`czuEz^7SyXtg-ib?msrr}v z_@LdS2(g44(FGo~L1m>mXr97L;xJ+xDqZ{}8I7IzKv}ygnmI{Cb zO*x5+`r}QgFP|)>7}TnJLk^>cq(oydnh| zH5{hmR>0--Bv%%5z*T`4wq|%b7YZB5Qn0E!UD~3=3EfK0eEcCB1paSOUadc1Gp>1m zmbs0bo0NjWzQScj>|XG3-NsadtYJ;F>Yu6x<(mx8hLa*#noQ(EsB!KC1V@eAei7n$LzIn(xg=)0WrqIo+pqDU?4uT}A=5;*&tIPv+6=#OOZp_?)eMG} zYw+{b#Fx*QTllSiXCA}W2UgiAqn`#Mi(xy%I&Mhe z5~G%4`=jl((HFf^0{1`mk>mm+9ln}9`>_~WZR z)xzgcpC6*jU*FZk%BLpZzxOm~^h!a{Hpxx#CnV-(NNG5Xmb6dh3(;RfXfc$~H*b&% zv3+<&2a5Opii*XR-~JVTr^{^A8YAXX%g+xc?u%hLe^+vKy|c%UMQj6%g<;F&+Py*v zRZh-B$Gfj+983<$XxLreFa7M-p^HjL6Ygh#uw4KeQJbV|vP1^E5z{~UjA_(LBkCSY zdHz1ZE<;koVJMFf2I6QwAWuPdpLF2G4<+s1uCm>_|M#p)Gvo3%R*Btc$934pSA*Pu zQoK#)n^$JHtR^}9_-RGT3>aFY2X)pGK<3Y8KfETJuV4O94`H<@Q1+B?hXT@4IOg@` zvyodh_V)J1L`ydt!54={O+-7gZGS#Iu-VuM0EXoW`omFN{VeaFw25HjGjO1fbh;Ak z?soM=MuZVCh}p}GsIyTgA<7mmxHZ(&l0-d(^7|J~9iBf^qxIX7$Tw|5Uq+l-p$xzy zi$IU8a8mS#1`U8VwKr8?!8i0D;*d7xqPrIus^3dOM*0p)XEkiua1kmxT?`1Zq3c84wWWp>dgU6sfNetND|AAk-(fvj04#40!#NqQ_bSA$QK>2# z*z4v0J5+3571qO*?ZCX42$|BK$5(`uc_^NacH&GdPlx`GtSL zMyrwvOSg&wLaZE35K9i2)M@-VJwy49i!E1aoXcsWsvu>_YH(KPT$tLq9xn)ks)q8# zo`EbGdIAh9j5ZbZX@;Ie{|6J*KL->Wk`xe zmGjAJF_-d&%g3+Jd1d}oFY2%Qp@ZInCNvfPjwef-81xccIhb z<0>Spt}QFQ#x>8c@u#yxg~cDt=gKKUhtF-Og_KMoQ0Epnn(0$p8Ug}Ej5c!N4+#nR z>?7<4Ox6g%YNUS)<@iiwi+Qm}FKp$~n-^px(a`19dH`IGfD{IWd+nNqlJ_Av3i&Fz zsCtGw&Z&KTny56!>)yw;$QckX(SShJhWx#&q1?SctwH`at`ozk>4bqlnJ<}FUo~Gk zpG_4AQpOZwUyJWj4(SvlM9n;B;(L|A2}z(6#@b4TJd9xp=5^)~Jj^R0y<%k7Q`c%i z3}|r z&wF#R8@;>|m13BVJ!)ZYr3(zj66yi*Ze7UL9m)|RIN6O%v^Nrl3tJK+sRDmt?i71I z@M}8bcTQxf9S8F$L9QV7;fCsdZv}{Wx2~9}w~3soPQAxmpQjOz`ktG?mDCvlSG>C91SC3QtF_vHelBYE zdn|m%qL2>AS4};MnDlia15{YLTKNO4nx&z)u0dQzDD9Pv9`%u>kHxUM@uR!@SNM)k z6<_-Ehu0}1|>+r#THz$N>We&(Ap;j1gH zDbh)8GQHBccO*?XQVWd0p|b=--(I54O71(uv_sVhcL9N7(H*8#{ZI4w@7668`OQAf zi&zF$z88Ne0n=Sm{pUPKKQh3dC8$txLSt)VvmU&vP9f-!4jTT3Z||;Vifd7wJoyzx zM=_!bT=yOHPD37bb@fDu?+cLcMf#m*I#1Qt!)(g#lJm$oj1(oiOe?CNsqyrI$&~Ibq%X?8It;VLO~CwLJOEjU62?)GGzzwEo40aV1sdIQ z06|hK&?#L1hz3pAoq)MM;Qz0KCwNx3K~c&*mG&b44UQ1a{6`HtpfF5 ziTZ{qFviGSJAz8k7$0RCA9p=1(?CX>G2%y+))&0S^3uyew7e|amTA20PLGk`rI{;u`WQZkHe(fwZjMTjMh%cS0G z&zQO1{H~&b0R>V}UTdJM8y0ky+ic4GP0#*@#FO^Jh5MFFjQH$O^7T*!Dr!Zrk@a8M zSXmW%+t)q{#xHywq+D-6-qb3$begV7{RS{0d4MBZ&A_;BS#8%dGA(}TO|5$*_181| z>kA|8|3QU6!tc2nX#4o&a2QmWNL{#wZyel{LV0r63d>P9xVg*1$Dh zz4^)S;J4-Y*VPzG|Ei>bzaI-HLMx^PTW!?Dnnv8X4Vq6Z>*{kR^EaIeHeWF46#VKQ zW0JK6)mIn+Z~#|C2$lCNpVgPRM>*M1x1=IAG1lkl0!|)5D^vz$=0W8JU?khu1`No* zOw9Xx_}cs~88OjA)fm9j`11t*b{Muj-88)Itml1sy38afm;hX&FSVsON1kr+*%Nux zF6E7FRg%c7$imkwdTf$#^cgPIz<%JqW&hFpxe+%1fxjf_s z?Zhun9GYaDn@?>$`cDAiU#akx=t^8B{X6fB{=PmfoPwYACp+ne&i$Iamjw1x^%(%c zc9r~s!xs)K!=_dQRnP7p5xcN)%W;AZUxTng^M!keA;oq~WxsPK zm%yL%`kx`SYNoPa@y{H}C0NKGW17~we%@ULC=|gCY_iPaaaY!jjMf>y{YYGNvx1pF zd=7#hiIac_DN14v6A6)JwVkP_ip;TO0sc^=&FyY()pnKMdf2)(*ueqoY(zw}xQl*( z><2VDZVHSFCR$sk3J}eC?_V-3cBf_bw|7vIG$&*KwQ*luA_F!CsjtX9E*O%L(@(u+ z6{D!35nF6T253~RU=}6|lOA-VuR8AO2-x0`SdMRJAan&$xg1Av+V(R*1E(=x*0?XK z3%>fukejNdUeZvK^3_pK<6glhvp zAxvavVzoJAH7@b>Iphoq(as|;Y8Vy}{64FdyD3*2zx4KupspM=Y32sMMy|Jld7oR` z=B$4?B}?Op7O-M0LIBh?kF@I&M|WXEk~a2LKa?>UgoYvcm3Vh8b2KuzAm+9b4F6F@ zvU`TrPRaJt!ALw>iLp+SX&b=AnQ_LIp5=UFaACyA*ZywiS$)UoD)vCb$QwOvL&LZA zHh)S=c#;a|62Gen!xE}r*xOLk$}fSbt}xOdIlxA^Ng40CGy7;AB>dXZk1X>Ai(#E4 zdiq__ba+GA0lu8~4s5}&VxN{UVWQ!-A@GjHhx`4~clPpJ9Ra(p-3Z{|wd~f!v0`Us zWp$mt{M24~_?;p8gM@>H)0EG8@lk&33?S<@Z1Oqe^EUkY+#>%ejYv{zs#AW5`=@k3 zt7-)8iDf4uM`9TidRs(2mh=G`ZOstdSb;%hPPS!*pcN7!LlNr-af@c7?Wj%+g_c)& z?anK{!&x`nY2K`!;2`PksPEfO9vo2DXV(iT{Oi|rxR``zB>s}4#xri?*tXIi*h(8l zj#_0Am2+9qaN+Bg#bqAMJV&N=5CbX&J``n_q_x*pJh$yU59Z=B0;7&{zZ)Ns!LuWF zN5Y8|4opy1>uK;aBfvmg+q}F{;aNW1Iou0;4?caFONLF;S%Hn@iTNyhKo~a~!rMW> z+TMxWf4d*yV)Y=;WQxHs@T7x|BXXDM5$o?30Wd1jh0qbhqkYkI^vBb2xv%4QDdSrv z%ZrJ+{g}g}3F&-Oo<2%`+t1l0Y?k^A5#XxmgBr0^2kS~G8`hqUws=etJ`eaxyf^EP zOC!eUa@F5XK2u{qh^&3bVsxa3L#n^VMsHej0;(ik$;l}F)bX7CjIOfxZ!0_ z`3By6n=HU=rhjea+m-I&<8j5ALFMt}lO#|fNrSXuKZ_{I1C%SFk_-&mOTFVoTP#b3 zLBsZxR(YY6PyY(lM4SBl%_#~n?AI-{ap6Qsg#=@?f`pExhH~OG=NB|zx$BAbDM1LP zgV2f!o)WPA43S^2F>LG6DL}Wf$CdmcsFB=9&T+BI!TF6*4B%Juj%zU!39F1)FX% z(;#9m|9q%!2axsK637Ti-?(8mc=aHd1u% z`{Cj%v;e<9Hcq5i7a&*Lb>YB1g&I55;1TgQz6B-hHhME;yDy3j6i@Kvn>5tje#eID z{SINz|1(dq4Dz6^oSW+Dy-#1~|KxLDkbv#$nM^4j3CTLiWNmt=xejsb;R4nQ zk7ZdC{1y7mKPIe#4gwb+z%qr&}&|9(+n(ibYUK~uEDd@nziU(B*Gael^KwSfv&82YH=Rp_XdvCIlz=#I7=z5W@1BNcwS%UYo z2Y27$(kRE~Yma^ioN5q`BVh1Z#U1*#*R?^wrTZ9|Ed!+f1c)}jzh{TYHGPIw%AV;^ zTA%M2sg>s)j&0=5EPc{fe$f0ldI|qV^}+?tDCLd^7}uXl&25*;F{c))DC7R#t2&yL zRs{&1$=GOJhG(Vx1@TeYXOlX34IJ0VDO3^=yoT^(MbMMKsQ_}yX8&Za>1Z%btO4MQ z^~0&0Vnd3nHCc{hl8d(hdVzZJ4R?Zq-3}TU1qDr(`e!nE1DDouC%VBd!g9f`+Mf7hER>}$9QSQ`yFD_&-x4@2uJ3>OdZVizPSJu=H7q`_Yc6E z>?!_z8)1I;KIsqeh!1uEtRr}~ey){+fKTwUlBaA%od$v_>R9htd3fNpTA`qdyDgM40i;S59_cQyvDyon2gMzNRqAM6=}9Bvb#& zSA7bIqpxX67!$n$0NG3Z0Rg@9@fHIh)>hiv?@tk&^@Rhn09~z;RQUeF%JgrSY#TeH zioh%0WC`!=-Vf#KaNHUlnoki9H|kL2e_xVF1Lz?}<^Whds6uW7&V9X@268)F+is9iFF+MCSVEAlPx#VUcR2;0fgLO~dhcU!aqrZCHTHj~ z2|{BYFd9%6&Mz!jgEX*(^-f|3X7I8+$f4M(@f;{PYPGq4|s#Dgjif14Z&c7)XN{lwq_-n$TFmSgdssLM2H`UJOplagWk7liP|4|0+&~ z1$_LmX81ZB0NxSOOia)OBL{$!^}H z*0sZZ@KbmOEN4zW03JDJYpS6KVr|(cBW*P>FmT|l*9lzc$|t&vb)cwZa%v+F+W7TW zc*akAdgQ1*l=scT9Xh{X7%e!Yk(zX-a(sMz0`E>(m&^ocEx~TXrGxyN;y%`+-)0i>l6I3Tny8W|n3_2R|moi;Q?gJBtw*n5H)w_pg zRctlOxB2Jo2wfrdZ=DMTN$&6UTl!?%e_(Q8zNoI8t9ifA*?lg=Rc|5kkmwnlK>+TfFe$XG014V%qS@7;Is%tptQq>!jQ!t)00D!KT zPijp9lqrYqXlsgnyXiO`y#C;dhqUG99o+XI>(BtHZoZNAOR8gnGJLRv?1*yZL}+4h zM1UQYtmX(>K1&{B%TJegXuV`^W({LX;EBVxhMpH>kRMa%nZOc0aRM%|S^Tu$eX|&v z)Q3Uxpq!6n!F6=}Ldc{{9@xE8N*y5p7K1#t@fZ6g_Ivf8%{A~14n(cL@d{E$NDs(| zJFWgkafzZ3eSi8g%MG{0XPxk|h@oyzdmN6jLYv5|c0VAa1p+?|cGOgZUeA0d-CD!b zk6UMeJy9rugCgZPdba*F`Fe^JAUIT@?*qdsav|fMX4`IVP+V5Afd%-)mUBg!-n(SM zYDUDzRj>Q^jf(oPPQmWEmHSo0}t?x9-+%8T}zR-o~~^>9gL+z?@Pdy%cWpP z*=6_(?O6K(diW<#r%JhPfhi_M(TIQa1AJfcV8&g!X?Xp7t;BxSx^ohINbdor8=}J1Mf!zGV;V)sy{!X(R-Y~ zSU&+THuilXP9fE(5bGvSpo*o71TUXR(vVh*<8Cp|7n6g7*KFVxurfAhEX|%TfH8Zt zD^P1~Xz@t-9OPYqJ)}J(mCFjYnHE=@7Z3=tl;@jqZBE&goXijnp!|Yx&6-%%cql=9 z8q7;e6IO*^0(kI>AN|%PFI)oqR9)ISAZO6lYYF)4S!gS6KhxZV@_TfrHd@cryHj8L z&T{7`MBvMcZM-hE6rlu&5B>>)+#(}tZDt7T=?y_a!DSL*ct5 zXHIT7TF>ZsNS~m`LSqV8k{+DEWkDn2w4%`!m6e{V#_TGIek@~=gXJjtNXi)nxHw4~ z=XcTV}WGANYpx{`K};DwgFcSj>Y3 zSI7xDPd64d&amKU1jKRLwMz;f!n4yz6YS~IPeMq`WQSq z^G=*mGT);O-jN2dLpH=RTTJae%Y{CI1ia?_=tn=|nQ4{*%X~q*r5=$09@hiqBwP*S zHz9mmZmR>?QSSTVGHE+glhrRKE-FaQjNM2Of*9%QZ==C$Iras|+PoI+lrp67)+&cS z|Kb3>!x)+O5Zpx0@=tP~qX3x0;W!%L@^W^lU|9L)>{RP)*=LzuanO+4Xs`ph;(`e} z)kFPB^|X4!=5y!b+n6qlpu}*AoYEHBYxg%q{~Goz6@E$OsS2gV-JWTj!WlI}b zyKA3RZov4I5tA51Yw1ROv-{KxkBsF%iJUClOQ6SQxIt6GYE)hHo?Wjm_8w^~3(n~V zhKljRYv)0(|;fu>~7Q1twghIq?GUd?z4%|eoO=OP?tbh)f)SL^_|K%HR z{#!Qb<0uT98ZG+XAL%;NllX#6pQ3{aw4gKcZ@UPB*7GStCn2!rJ$eWEW(6LQTQTi|gkPq}M z$XA|y2Ytq@3X6`rhjtgq&r1C2w>;~$U*8bMPD`7KlW~KV^Wl;j&@n}Q1a#nwC4(Qt z9Wk6KwraDIhAsk+rZFVmt*cH1jNOt|q{pWh3il_W4;qWS_swg@wK2sj0u|1$^zigy zJVn21oOJR41B4tex>d5as;!KOOLMpc2f`mjFiOk*ME5i|k zF&k%BIO#R=m`};qaWO*5N$-c0Co1?FIowvaw@;K%onl+}NsA{mg)7+?o!i_dZy}qo zLXN&reAPbY{wSAcgenZufUn2Y)%NiCO-L=C^WQ_Q!k# z-VcE<7F&OYg)YN(hLlwhDoda*{b~zpRWh@IUc1M~$yKC58m_F|gXF`F_qY zs7xnxYt$!|!fa_Kx&rNh9RP7!O%<^ssxZNygxG|;2;~=R?E-MaTsSy-4EN^@;6ENt zi@={mZBGQ>2q|A|SGCyiSA5R`+QoQOLSMSYxLPawkyb|=zqeYNwgq<#+1vtFwJ1i4 zM7eOX^y)=93<%lrR5qFVZgRU*^I~Dp0u5}9NZx#+YEg8ru3ogSTa0DE>t=iV+wPEo ztgxu`hlhys=kNtmpbDpu^!UMj{U<#ql?11PV$S%KCI9c=PcVQN1ca#Ep8~JG_kG;+ zC&UZ@s*o7L8&VFxuNn6>FOQPW&(%A_Goy+pDm?{>jF4TF}pw z!E&!%MTwo(yT|CDk~X9UtR=5HfzBIo&{OyQ1i$WLJ@9UAP3uR_pZoJC{9sNDb1-)% z^wH}lO7`z)g|~WN0D@+!R* zCDo>Ot%KP-M_i1!3K1MfiOf~L+SYE`vp<;a7^DKez993}j=0K~zk0@r`uOpo-*H1F zuZt;y5r5b8SAzz*5wPN~K#yxV+5CQLK_|owEtt@M_MUaHVmfhvIEe?gc9UHCQs_q> zC5yO6!ej~v<%B%p;Od;qh>?bGz#nb8Q+_Xh)eX~^M;46CEu4ey=cq&@(?`||ipd4N z+j1J@?iutA|#`7*M^~=o{mk=a~HU(WFgY_L-qE9@|DP?SGv1$I#oTG$4+x6pv zE+MuRvNtw&%YVYTRS(1r1hb4qQ3~t-_?ysNqfydU6?N0--rgy#o|CRPd%p}n>581J z+`DyV_=KN$s*RtrA{uDpmTYsy8@zsgB&u*$fwRh6Y;VjvVx*}j^@{xLIy>xQtgLOY zrs!&@EIIvjKzScJ*)Nq>?fTr0s)f^Tgt+;J8ENY21@YTSC1z}D#aUJuGfJ=?B64}M z3M8%l(l8JYp<}W9bAx)-L$8N=lHy%A#xmrIk6ZT^ukdc;B5dn&N@NzA+y3)1UwF2B z6qQvR!Ap@?H^$>%C$KYzk*7JIgOd@Hq@;-ty3V#Tfw53i2MUeK7beS&swXL+pcer; zj4Zd-ct`-`MOS3Fk=uB|r=>02!?xSS)ZvvcJ}C0Q((63(1Q)2P8zkIH;935&kM6`X z^`b&{1?6s`RH>$$9!nQ8%|zQVy@fF)o*n*5^j?r=b0rcZO>n}yGj*yW%zQWV!hV^0 zt>t?q16K4G7IpXKE9&axNoD&x-`-Qwih3ZY3}ZCkTUaT1v@{Ljm%ng<`Mzx3u~`S+ zWlMyVlM~mt&i%=k-G&Ns(-LFGNzRDBlMI5?1|0=f?tV!acjU=ptGKRAoinYh(HhfDHs77c%gh2bsW!d~E|oNHZ_m(a>LXi~54ZBs1|$6T z3pu&xqheU|O*;O|7Z>hM<8d5#$||m-CfeDFy8>JRWZ!s~^J8BDA|>+kIHBl8Fy)2n zD;E?RQII+hN8xyPa$zQlTaFQxs~PGisyp`ic#Ocr!bLBV@t<*2XL{pp>5k2PHF z`fw@uTK93CDsp=k!TVRTy^g1>-@kvRMEa5%#2Uh$mt%~V5^97z@xW;$dyd!K2R|;^ zk>?x(UXA5?v=Pcjb6h(~-5-~`6aC}aq-Hv-wF%^2_3FSYt@k=Ve`HZ~OBTf9xlLVv z|AgN9)29K`9bc5-J;!rRdpxkRnyGRcER2UB@bq*>wvX+{7}q{U0E{7KazaM_1wm0!QAe}?^6t1@vR1n5hlY{;Pmlgi{7EQ57p5710Zs*!`VH8n5XcD$z+Y%O z=b^v8z8Bz%KP2;hWymxWqVeFNZMv%cR$;DDHB(UQeJGgdYm$TE+eA|4DB7QGj-@p1 zA9!!t5Y*h-6OR-07JoGQYZkvPon0_P;}IwMNjr|m;-l3Sb;DgK!~%j(;HJ-=PNJZU z6fTLcZpY8Yh8+`IPDaK}+ZuBpWh1tAj87r@PP?u?DxOpElRq%A&C1;!8el3ckhwG& zvGts6j8EUjSAM!;zg(+3e=Y*5gy)ZU+g5#<%X_*QNuy2XJ4_#G-#IyKsU@JSp98NlH|#=`F8 zv;bJ*kkh|)HC9qmsGdHJi5eP$FWUc=SIxM@1nCN^#zzKlP8!|n2WVi{7zmKN8ko&5 z$aD~64o*d|q~~J3N0M^#YDD&p$`uH!Q_1HT#zz(}z}F^5;DOt^uX)U+?6ox(8&xwc z#)?y;*7X?gr<|Nz-i7Z}fOxY<+AB8s*d)EVK0YZw5h^fzi;UOklh2T9D%t+l0-@5- z-X4-Rc;5MvLB?W3(ib+DP1@YxclyR!??sG{u3&}b*1pyq4owHD!$nDxYDP4m zYDMQ(;GgSyz~Y;(V_`R6Uwb&wx~5J7)3`34<-iy5#oJ;-VO!&Ou=JCloYwNO#bkiu z`;Fc{t~M$cYEVHbUtAvd@Oba>Boho&{(a)N{16=mQ;V}njZ{m~T5Q@nIqfG?Nj%y~ zIYQxF$3-wskLttR^=|8;Q6d4Jtb+w=y7!c|{o+a;1|10noFQc8qD(glio#S<$W6Xk>zzv@) z`PAHub$*oAQ4j0l0cjz}pKAQMIsemb&x!AU{B^>QgM*bpmj*i{Fg^SZUFt&v^>V!uR3uS&u4_Z22=Z9^WTZy-(4^bS@7LPz4~T5> zs+n5vT1|caSG@2zsMt{GJzG!;&naf%P))4A?D?WP$j16xpf&Gt869C6$n1eff74#O z8N>1;ImIZd$}!&c!VB&4G$X0|brZRgv&H6obvW#zAa1)WdKt5ysKQEP&bzReC(_bB zI;wov1VBDiz$RvHyh#}WSMH>$I`q?BXPAVM*`@t-pU&#yq=CnAq=Q`G`4?jePvIr{ zjS!5DCm@l7fBRR#ASNB0oeA&9Uckb0bbFKc--n@2pU?*T$G)n9vLAL@K1ys<_2YrD zF+@iwx8mkJLs(SQH}=v=uF6NUA512NO4QACaGFU;b$jOFtYcN|G#b*9R2mYzW`rSL z{iCcBTfnXF+yl4m@^lBU5ZsLr7av!W_L@j~(g3lertZr}Yr&E%((H@DPGxR)EHoI+ z!7E*m^;v5FG;%|i-N8XQTWG24d-qwd$wyYHOJ8yk*AL~P7A}nDB;dok;opQ&pLi~B zcM1m@vwz;%YG4)d;<+PzruiU|Gv)2pRNY9oa7^P#*5}U#6^P2+W$D0>>88g!rB^w1GMm=fv%J z`??x>#y4bk$N^iIM<4;yhll;U@7}S3($e=K=6K)Xv!R$c5pf~rEz$QMTlR_&pEIIe zf%`e)z7mR3w+0L;_PtYS)j5Y1i-RKyc<(%6IeG^vITNqq-A_;r2Pn{B-fXLR{#Mw_T1_6~Ijg zyqP)r3?9Xpl9HNlop;p4u_im4>T=12ltD;Hxq+yr@!_X#|AoZ_l@}{0Erv7ffUENf z9*-r(x?|LF+UV2q7z`&l;7p#h;SOnM^9V7!7o?XPVsP{Cdsy4i;cHT_^$7sZ-B=^~ z6pv>|%IJ@-jYZ~vg*WaXudPi3hVP=ZbA{^2&kac?E%*FEO7LNbtxy1%tHJQUh) z-AKj=4uMor5vbv{Dt@TSrv0d^yTrixA|(v<_=Cu<^S3VPhj^;zA7P3|D(KCiX58>y zN~4Z#KN0(slVj`sJSiGJtt1btx+#4=j;>@%!MaFTvfa^gK=jn|^5Rt1;9{$c5vK}s znQ1Rg_}SK>euJ5`$q^X70XefsEsBcRPQk*-nLI&&i@o6u0x`AKx$}Ub%ks}xUwj(L zkbyDdgAGY?Ae;55e}zqGGRQ7Ogpa@YqDdqb%9Gwab3~BycJ@B5a3S1*!spE1(d=_# zq~85}K^AHs z*weWt8Bz&4j>ZPxL7EAWZj8MFm#KzM^F3F|!YSZjNc+-p;AFDSzd}UzT@kr7uA3X4 z`B+)F)=ccc*agcDCK`y1`tUK}RjvW4-f68F|68|K71gI1VUg@^J)D8;GrlMrWdWDW zpSJy%{xaamcVZe|Vq#m(8ou1^qRZ%Q>IWd$6uRD7`k_UB{?K{!i<`ZDwKe5->>jaF#f@Lq zbzw$KdtMwp+9wb1N+^E<4r_!4ybPLC7Rrk%Yn~;#y?8; zA0*ES0O}H9+Ek05&Yjg}bqmTBrygbg4>YjTsjCw4xB}5n&uUMzwq9!fJ2S)TU_~U^ zq+?scY-gDla3WebJuu#`&*8b<-Q&0mz^Dag9PlEM*8P6w+8#zPh4;l0OrIPmmY0)M zC}N02{OgG!5Qs_TgUtr3^p*npOXwTA^6rd@YLlOfnJZI@PvXp_Nj2dZ7?^?D_oOu2 z4WWpVYNo}HRzM#C=u(lm&_6t?c}$DniIU3kOX4mqwRE#?^FE< z1^J6j=%t*$G4QjQbp4?GsUX9pH)YG$3U zx_F@wiuLpmW)HV8)*gK2f8J-c+;^8C@$t?=e5JJzir)X}_#Z3unLa*s4Q>((iJLu% zYBJARwl^i-ey34teFEag3*rqKNgZsfEBU@vr$_Sgv|8FTWcH1C3<}5wM@l>zv7lt+ zB@Rxs6Vr840ZQ%bGS1fKAyqseVLLv(dkOcyrZ?Iyudc1^?kr8`e zMUTO-dKs8Zv7)*q{!}BOeXJ!`+d$98rtU%HOh*WgF92_TYq@M-C0B@tChJ|^yBF-up2a&T}sosXG0Id_>gN)kHFYPyR)Ch_{8Nyd4T%=K98=rfvAgKtOaQx3(ag}7N| z-MoWm`kt~rpIllBJzAPJ`oo9&w_|OD(+Qs%AnWQD0a`({XQKCTK7i7>#h>u($Yv@) zgTh^!unY%$O@o}+tN!?QF!ZIJj9gqynkxKmXSbbH9~JvS?C^fwcO!Z-GK)((dIdli z2dt_nMdBaWSXwjmc;MpVnSs(}wANrb$^O#c1l6P{RAy;2E=IK7T}Xr?lw%R#jHad` zirtK{@0n_s(^t(@loMrnc2J9MdiU<(!Z}f#Mp}yjT-4E01r8K=hqaP$KxJ13Mxd>H zzlnb8k82;JobwP%(bUml$!3*G%8*={YKXSJQ}jL~o1Ev>;D;gtrl@wXs0Luuf2sFQ z7lfpoquKkMos;w1hQGJ;xj{hi`;r_xS_%COibNb3kgI-aqg%66NYKiu_a(X3QHMn~>8zP?DtLJj>&4fo=ZO%4iD8}*wU7T29y$;M zYimz}IbI#(0v|&!b*V(qwZHJlK1}*;hgICGWAIE(c6M4S;Gl7FlwjiJL8Y+!l%*C{ z_l_$Uo5Mg?ZD(>|LQW9uxZpRFK?gEu_7bN(!qvAkmr``C=6KF!p2Ulg4m1##xB)Q^hYd9)|RMtA8 zWuj@P)EIx3h%?N(S1G@A!t_OoH zI@_nF{jIa6F>5Qc;ODjJo+6hJNvxtRCgY3x&H>pAh&}%$JSUEYRl`gMNCQRXKlFG? zIP%Vu+!XpM*7eSTf%n3@n1V_`jkzVpA8$0KNv@|ejQV>#xWG(wJR?m2pOKWOZFRdx z953xa3p3NyjF$B6vluPe{~+{&B|T6osC+k!8vfw_3X($V|6}hhysBK=cTp(;L0Y;S zq@<;hF6r)8deYrUr-Vp@loA5cU6TftR(etj(kTe%nfk5YK4L&qrP$AoadL3g>We2QtL61$v@-d=gfr#7iU)y)us!q~Gz1(# z$8C-=1Z#cr4OfHHiPl~43h&3njME5TMJd|~F%SidzL|kl(k2j%&`S1Nx9D^3WS$ojaUND>>gALugGr;T<_j1kv^yuhEwDGV{jhsZCJg@n#=t3mGVm{5 z-hsy&LC$=9)3CLEsg#gY%AOus3s6Rs@l;MS|Kxcg%rDY`3O2lG@cLKdUHUj}&%?`O z8SfwU)$0X@_&49HH_gv>agRR657Br0n)2}f@Zv7&)7-YWA752l@q==M0u$JtiM7FG zLDgQq3&=^tIpS`1i79|?T~wX{=DuBYjJr|OLHSgmNGt*pRH@|9UmqeMc|&>T;b^&J zg(@rkSP=khiT%RMi*i8t<_=E`uiJ}lKBs1wrlVvv6n!`eWjkmw`hL1hQy-UUy}Lhm zZ~?@GxX$jRID6H+?SG7SPImnEhBY+Vt9@=KAa7 zl==R^i%}m}d2Jye#2h={%6{=MGi>oLUSE8JY(4KWaJN-BdyBPxuHtyI>W+&kI5 zIXlJCh=DJDVr8K@k>RVL3U}N94WkXNY+^#j7w9LA(hs28kHqk|#=l(AWuu-YrU8C3p+*LHnm#AeVZVPmn|nNxJ44ekiUSJx4=&%-eHGoUO|XC zHc{Qx;-QdIZx9SbYWwBoqmm;XDvWmr5=}}Yt12ooP@*Q_&2j7G*;RNUj)s@_&7|i7 z7@kD!4PUIYL)a!L+#?C6elM)4sgbRX5=FrabFw2<|dh+d4?c5@swCvf|=#$&P6CqJww>tdH%znLAe*KgH)&tes z57KJ_E&sCCFuK&Iwsi{*L`qOe*4nyGoRDl*kI^UVC4R*feSVEoBQb=@3v_}{({0VE z;LgJGf67V4m7AN4>l--|u1BP0om*p9<*5d*9gAsP!Sr2tl)YgdQfWp6efvSu+&nFn zUoZp-)%9TFwoQw&s$bC+&6dDm1va~iv);_i%KH5PfC;Q>dUzK+zaooV?b5Q)&9(P> z`h(#P|DPut#+a(+K~0fxx0!fI#;MAHU?0cM?jA0sm?C#VMvRC_Xb4gy>IC|+awsU< z*X$Ah&trYQV~`H<{fVjpgH-!FkI7lAoiD~V8$8b@$3XX&3huceBha~|n*%YvvH!Jq z!W0-0IeTt?aa!%1QLpqQ)7T*m+l&eJ%+4-Z=HBt)*;giYlO=k6XruY=TtUu=ceZdN zk?llaxOp$5d3R{W$Ie^oclXm^Gzfzzga_loNj+b?f^L|i^@1h1Ff6rO1s`A5rWOfu z)ZO!2)9o~%u}_nhM~p)0azmrUSA!@kG?NZEE&2ldD}SKp7GL6IncHoa!AfEL7INBRx+ld{D0!L+ECW z)3&iwP`D2mg1lnCPRRF~ZMk!O?Q)G8-5T;Y#KLnh<*j3gh~6n5YWbh(Gv@knAb2f2 z3iBuvUWGO)P!q%Lgr!#4ZZ=pnTmFyigprNZ-8El*;_ATwIunf)njqVPf&xVjwVxy3 zhbyQihI zIfTD=%*-zOV`*=xz0-<9E|xc!Iu;h6CNv=RvDy?F$V-p-4hZzFKkR_FW{dD_~I zMpcBD3Bz&*U$Afou7D!eFHlWT_jxrx`&MeRY4gmPe3lKC!! zApbEOa3}Sig3=$yWW#Bz9r%i~Am8N7Dx3u=l zHyR9gHF%$fNV02L05-b$KO23=seZWPm8^afABuv4^KjU>B4AKe7oXh_WQLBRSeWlr*V+{XWJ570{oG^h zx_0EI>C0Qz-EBt61C_3Bl#H=3m9BhAb=o93g`pVYArVUE%z=Ump9K=Lj_O2U8N~uW z|4;TbZ1}yq#NZC6Xh7r?&r&!#{@w$H+AqHjQVRQqlj}Z#iWoc5t{DNeanZAMszsFP zGr@sU>gA>=aQVKOSh@wzaFEcbw)S0&w^3ShCk z2hjr(zxx@9U_?!T#o~PCTcLrmF%{ZGdui@8#Z5>^6wJR-qUznlq;o}vWA9*j*mK%M zxxoo}7DHV2H9;d2?BqN#Q`^8tumYYL|K&gJIlCYM@H)ug!N@!3$2nunY$B1cfm>Pz z)>@z)G=Yo%a^+^c=I7jFF*11iW|S1BLOhYzDN(DMVbS}-ie*BRRln>|ufsoO^bBU< zm40>L^N3nI>t|Pp^7RJiKvEJHUZQ9^HP3Tey^%SLbcZL1Az)7m;uP7`J<=rp%C2kw zEb0!9YHi4ZcSCGL;ura{Ql5GRM9Zi~gS!G|@QUt27LTWpq1E(HgYrggmYyaFJIaSX z{`w^t8S*(pwBKsg`&^=|$guGtA|}#DT>A5YNm1+F+yR0{PP=|h%YZkKalOZ&IzGKm zX=*FaMK_=IYOe4;@Mc{9IA7$R^pTAelss345${ToCXtBC;~?NWqmKe6IdNW0Ji5yR z&gF=Vz^m}XFZK41d{4B@MX(GnaPM-Lci6Jm?QWulcyIMTih zSZj0?>d`|gt%%=oKM>tm^UOzEXF2NgPZH)~6A@8tn5OkLuT_nTg5`3*cG`=3q@7i3 z*tln^I?!_SI-}RRP67_h688P4ju=uq{rPiTMMapP`?kkWRaSIgU+Ei>&uEubD@X$p z(dKFipfcoYexK3&`sa@G;OVivzP(kU5zl!K2Ipvh6Qq}IARFnkoW$6hp+V+808vQR z2p;o3?3W(Rg9s7yCKzwph0}hlb;xDz&mm3@dGA=J2*}I@}V>- zkpfBVlS^ZkYVCsJeukiT=dsqew8?{&uDAry_~`IsI*U z&`H@a_tW&OZ$w<4yR<&rbK*%)LoDy}|8_XfxX@uiSBtkTNM!Q0?Z_MD%VQXEhvI2tv#eU@*%Pu}v(nQws|_0v#Hw*TXg1=!`Y@bm;8LyF za4dZ^)64_v13H-l?Y_qE!u*Y|&$d75h9Bv%c;V8iu1LwS$_>g)-x)(M8?{O6t|(z| z>=cw2@Oq9pEhmqrn>};qL(g4s-^~B(zCkq`iHO6WMITyiF_@&F@p{eg$nRPO8z1Rg zw&2Vi&=GQIzH>K`YrISR24?z(K&Ec6w^*-Th;p(tv6kE!YmgWb^lOA$F%28&l`e}% zQk3yo8RQu)=W8KRahN>68_V)tuE1Qf6X9WP%OWZg-~OEKB)ptaCDbPNg?(LMM5snD zi_Igu)r|edlDROYwa;N+5MJB+iMqCF{MY1^7Awi1hp9j-Yt&cY+NDZE&LJU6Hg4}E zwB;q*w5ws&s7)6|ymzxxR}|Jb?|x~0!(=GA%&SLJ9-0{F8CBkW&4&?zi#tPV6dYGl zT#WMg@na2aXX2S^Q_egO?VJ9NTNd-{FZR_6j1y1wlSR5as1Z*_?d?aB^70sOtIqol zRyEhZSgS?ecA#!Qcb!9ck{@JAw`trIJov@HAy-^nLY88ox9u#4h=L;CV`pZl^FfII zz5oLQYUlNa4!MXoIzCeaz)9Rqj|A5e)GMCnnO5IeUU`wp6*ShxL?dw;46IY~EQ86}YO|;HdRnEZ_cG-gsh_ z;{QnhSjrCSQ>Pk)_pE<9$YaX+bYfzxQ{0 zpT&g*>eE+B)ElfMbbiwpXtd(V;~ z4oGUKkUw@shR<>mke`PpB2RUWy`54wH!rz1G-kvm&Iu&HkL~D%XdaJ6Z^DdYzChjM z9kU40Te~(i%sFzFN?!0*O~YLD;O=Epi#XKBMI+lF<qTa;ZWj*ZAr6ZZ=DTTG_25zvSN;l}-)yeq!~x z^LcPC3pHExWw0qaJyTxK(93~?ugh;SVTXYfN`9!NTuzB`Dki!;-hi?14Fnkg1mHznvtj=iRM(TmGlw$}YCa?zRg_;k}7#LAaUmq8K; zf}t;7+;v!NLAg2)3gNS7j!WYL!tP;KyILdt^Ug?Ih2%%mpJm7PcGu2q5|i-IFG3{* zhA_W(Jm+cI*eu+@zOClO8nSeM0&p}4fbo;8frV<#uRx6fBk)qV@8R44bfMChzR~Y> zpPfyI6V{hC9q;&Mnh8tgVgtY-?ZM?%o+Xgo;HKNmppB~pWuKn8%{Sme*Lj&D4bh1Ot0fn#H1gTuo;fYrKh;qrVUPT36W&}y<>Ahlr&ZJ3N z0mdDblSzj^2`(|(17$)i_QfmWhxggdpldFIF4q?jf(H*)&pU5LeNVP= zxhw@N^JC=9&1nDy&qDTm7gTdVuhCaqht~Dn=_EZ!ljC-siC@UgKJV@1x4vk6ru;Yd z`S&b6OiQdFX;wAI;^2*f3hN5Jiw<7V=g*%HfF`Qt?p#f}$dJ_INyKHR{X{_S%bEkC2m>k}2mioJw+gx`Ok1ODFd2tVJ+QHh@ayIjEj>F)ew z3T!{`>cnFX z{O4Z4s^EYHBKbOJ>m&&@6W(@Q*z@>=cT_Bve-EjC8f&X;9hQEFiBG8ul{YlTO zy#G8@I3lmX&Pwoq4R=O@uj)>+@t-BVf+GNs%XYyK3HWtzz&c)-Suy?3%btP57{;1h zwElcT0KLZi&%LC9d(o!rh5We}_^RNSx)TLr!&+|3pK zZNGg->W>GJP(SMSL4LYTkbI<1Sqt2N9!(bm?E;ISRgmljQ33HoDo zB$cSSx$z(n2pR@P-TGsIs7kP}KKq_uD%u!y`cy6coKyPxji{+5@0&qwg9=P5{{XW;ojn8m=Fi^70$eh8OZ~ zc)9LUtQTq3$$RcE#e>Pc*Wj@UKohB`lCTvuH8c)@)Fhp3RREZhOSrBM`v&&~!J_Eo zFZ~vQ9vn=d^YT8>rLa&y1C>F{*!{c3;WaHjf&a;OmMLDz!Hs{&INJLc5ZiE}fX_8~7g4leu*8 z#?lo#w%LFGHd0+KyX2ZnYyT-B=OLw zN{1xlXY-|aJ=)xKMAvRR@!Xgd+rd3hoT2`wIPBMA-S|!JRlSXMIb* zVhV2lW@Dnr5AM2=1>>LR-M4=paHv*5a?}{S+J%gJ{&8LPJD8R8}GKP{03viunTe zud7Hp5q~b<)9-GR-Wa$5QCi=fUCdQDTzNmnW1>LEp0#H8fi%*GbhwCqotqGZ5dX27+cl?609d944 zpb3G8zJN~M;i!-Jc0oEI-~qtkz>YS0oz#tVXPGU$sqfy8!BG&ohjh1Zct4po0JWYa zz|hdxY2HXvlU9GInKp-Ky%f2=UVD3~UHuCdz`F1}vgk7!5~EB^N>Up+LK_Z&_W&RM zb-9EHX~x+Zx*=Z6D*YuY<*ufiJt+*2E~cx~N7{9fcSy2Oa(@}XN$LzeU6Sqq7vDrD zQ<)=2H8I(aENgZ2*tjBt#R^glIqi^$>ORR3$IE`?b}zknV^-TCt&nXKg|gk zv~75Q5GnVu3QOGB>adAI7bYTWtDrz5;@5_pp4HwAK$$02&cutZG*nffRb#$crAnvc zt_{lA-x?);2sjr!@X%c{Er1lBJg8;wj?yD4uCtnFy>!zG?7+!1smML2VZJ;XBhQ=AT~00&oQ%ffdk06>)p5L7df_1{fEg zkf(ZJ8Jrodbq)qN z;RTe26|(CxRaC)dxPD5*5)0AeFfk$)a4MeqYQUjCF11MXSfBycfCa87v|{Y2__tyd zvC4|C=i&3_&YcJ%lc<5w%pw4ijFIQ)HFTyJ7<$t^`)wAWbY7 zl>lCumvrR*<;!4DIZqKp+8Pg_@0{HDcH|yM6@&puaJ2L7xU}}uPdtGwQm`zoBblC- zp^ZzV;c-ix60S;q4Q;eITK_6TD%UzY>CX%7a(D56aPKQ{6^TDLkU5#!Ge=&v zn+AZ4`Fo{D#}8|K-0lJ6*IR21JM6=+!y%l}C8Uc?rF1u&t*QgKIZN;D0tLWw@n+F3 zup=RReD6#K@di#dxg~Z%&VfI0WSr%*$07EaZ73+VE>ND`Iyw|{g-U7YEQwfIIijMB6Qc2_S(_iFHV<=mY=~GmyXwCSX`E zxGJ$x`msG#ynlAJi332wRaLnAop}kTJDTr(PcavKws`eh8BekTE>O{t0aplS7G;r? zhZF%xLKO^ty8o7~Dph79LBZybpO-HUgobIa_DwC`@0&}MS{vom)SI0^N1_|XkYKPU$PZ{RZ$N_# z>xLM$hvY3D_UY+^!J)@5G)o)gb5`s|Umb=|-8G?C%`RG}?fF84`nC$9FeHP!Xjt5E zNK;e4i7J5+DwI-1YohmwfCI;kR^aFmmq-H%I9C>Dp_1G+q+keDyKh^ z%EsbTp}Iz%;M19Ml8-j$8yod=wG1e&Ubd^{rEBl~FX_W0O(&$C>TpfzL+*g6gIuD! zb_d93{2=w&$!;8(rsWHch1^`*YG8W{gQ%Isqe5pybKRQOaC)k!E2&bE6mUNk$0`?H zIZR`=6VkNJ{kjnwg#-&U)kt?bRyiGNKEtV zY_P|F=dk|fjZ#XyKd~iL8W7a+t;Dl0qTJ^KRSIg`N znUA2KXJV@R1@f<-_i^;w6gln@7C0~8*ibDU+!%9YOmTDk{ORvG^f=t?YmFIHm`B)oxQ;63OU3oI2;QG5fV99LG3?TI!xk4&THp81RQd9*w~8WxkX$G=;yzi5m2npHkYXW zeWH9)s+l&=ob;LC3bNXhk@8%m%QzQs`#ZAj2Z&^UoIW3!1=b)k=RY{lfAzy3mGTR^ z0ql@tCC4jeBlj6I=s<4}b}kAvZ@e^=#T_jM_IzlcwA@F8ES6|s_!sSd=?OIa$Nw1x z-3xhFdx0_3wHV>FX!MHrn^PQ_*E`{nCPQ0Ytdh9Fi>K8yyyI}TjK03#B40cVraLnA z?s>Xt--I`*$r&&N3{5*@%yHFqYC&+e{lA_lUv#5pja3fz(Q3><^FRiBf$qjloX!Shcj|MC0X~reWG51`7W2PXT*G7z zBs;=2BCo)iKm4!f-WQEmpmAmUlagND<}0?llpOj!hpx9o8;9*l2G@H%5f9L#+uvv;i%nfgWjXDd$6byX|_q>Qv&SZ)bLu(5QFEw6RWTd`fhQtDi zTpjtdA6$u?q?i;*-*W1ER-Z{LD3ky?T>36l3t$kn?MTHF%F6U66Dbc+;kZLM=I}S} z@ZZ8m3G9%R6g!6{f4oTSt!TE~kYXh!YLPbkooOv?KC|Txw~Gsy+bc2Sv=3(KHMy_e zSMq_C8PZ{q%fP|x!oj_bm<%5m7NXkPGzHykQ0?qutRbyFfalR{wU~gbztH>9Qoo!> zySll#8KJ*_OC~iauBV6Br=>%UJD#eiE98?7>DyB%&?6CM{Hud)M1Gx>Bd^#J4#Wy# zwzs)NF4v7%qy&*gecc^(%7KKyAhWwIiLN%^(3%$yfY2CaTpgZ?%q1X?!b{?Jwa=b2 z1MeyYsjc$_IVEpV88Z?(j;(DK4%(0Ic;mcES+N&vUC~FEL^6xSLd<&#FXt z(fUBMbSX9}sz6dVrYI*-a@Mp2&^zkL48ZFT`LA1G2}ccMCN2H#?wZx^a$eZ*3t>yg*;vmq7fYn^xf!$*zaa``%BXsj2>L z$4~Ep@`ApIGvnr%CXaS&dgbm|^ZWbgui)nk^X=}W8gKwF)~sv=a9oG@tF>1Z|I-nhpo;tPC zi#^fAlfE@h5nY;>%U;JP)!9yV3j%`wuPdmVXse%&XlYRda9q>%ZNkhzf{4d%I!Z4N zwUYanRAjjQMmx4mjdyu@wdfx1aHYJQjb+{g92nD{C|pSG7w1{R;DdheU%r^Yb6xx` z>I$jCQ>%}ioWwZz{?4?Zt&ODfa?J4+7mcD##&^R;SrEmP5SsPAAke2PK>_h&+k)v^ zHcQ4ucRtyLu*}0gu8<@9zu6Q9BPwOS?bU@#}*X z5t9<(0j9{cOB+4*w>;ywKRGyb^r7D_u8$q)856nz0ae~d{8xb226;0lIx&1ZpvCO= z!s}QiYxRy>SaNhnM^9HT4m;)3Asr%@0SdXS?`koA73*;3-Fb)oA_Y1<-G7woUuR_= z6#nYfgIAA_X#fz}AUEaw!w*|Iw>1JNDfyBEIB4bn)hig&n!347>i6#*A>}enklJM_u(oHj8Ee_AOcP=gE!!vIWcK+YIuK97T-lE ztGGj}A=Pj$YGEM^M6v3PXd69F0xvzAjcTb^WSY126M^wke(m0Q&@yS<0o!bMynt8N z^8W$x{j1N)#Y;jq%aoaqnh+ZSd~JnVW@EO%i(ZE9uZ@kR#_lb71_yh?X^OiGnJ?bF z839PkLMtvN`5~!*4GtkuE-z|?e`e^`L`J1U8{x}jhGD0?Q z1atGSO#Ov%R4H`NwD_FV4|lQT9@tC-D(c{vuoVmIP3Tqe14u@&t_ebk^7BY)(>*w# zAsq|+{%e(Pg(U=3VyqrynEm>Rui;ybd3&PTXa>cE*<;Sm3JfXFkOPUY7lFT?9Mt8p zr}R&w`U)unqH#Lh-bQn|;7|bi;a(Kh@(yW;4lln+rD1l;QB|t8i}~SN-jIb8K|l^f zYhgU^)@WGMA$dAX4#EB#emnK~FMbMoYf4{>|1JCS5 z%wW5Ac-7%fonQ`!LQ{FyOl5h>o76}^I*%9Ld$szFtCRJY+% zYZPqp$}Nh|f&>vRp8_WNcSx~PI?#MmGmD<$=};ncxkwO6%jEfn_>UGq<6#7xN-^;d z%>3Us06Ky;}>LbTlN?Pk@dLOV~aTok05#vr^%bp#`!5rYBN#k8H=?KpYj5TKwKe0cGM&V7u-^ zKvP`r*?J#!p7^oOR(yy%P~yA9z{oO`o#0b3&843$u&Qt#>u(9Yf6WJkKy~_vgSo6H zfx?caMalc1`y1f>W^RA#ZS(8a(KoNIt);v=w_O9$A|s};Zi0R@Kne3^rnI+J9N5+cIKA%Qusxu=z{@LWm2OpKMO50o z@ttwa69JkK|Ggq}?;NBCR@Q0qW9wG>4%LX_mqSl7H%NQ?XFOh7qrzzcyBNbFFF3$M zZaJ9mfVkC3eJ8Y)m)*T$=Io@7C1dNJDnG9yh)7U(jEf`pi)`uQ`YIMF07DVm63zXK# z82*;Fe#Avc+sMidMA>h9d9NO4QHgV`e>Brl*>HCcT2ltgd#o7@lw&xemE*zm9GyYL zH7RBGNC=F$Nd<8Ul!(q=fN5%gV_2gKK^^N(ovNs0?`?MTvnKs$3)BrbYA+CgPRL@% zsptK;D)3NEO@ZuWCmxhaVWQG?^)$-Lg)=pl>NszP%$xOR3s7?yP&N3gE1-$ zW5xtu(?nMvTB=I40;(-35eEhbt;_5${U&Kr2K)4@OYYc~{sXLd^hcdAtj@W#4n;<0 z3uvYZ*Gd>Bh$wU@1@0xW!6aRKI@$%%p7zX641aTw1&SU4XfX*&Ec2jj19v zjN|xtwctc#c?BO-P=e{|i4f0_xtsO|`{=n2upi=%e@nI`41p1Rot)}UlEq)F$mr}W z^2tsI8<-%D@doUAneQy;r$dK6ICvl~2Rem#up2PQ z&V1Kx9l=i`V}#}5MDD<+q8)YJjQ#X}FdgHGyu4mlu4X=_QB8Ff2PC6JFyLo^k3rx& zc^J{hMrUuAS-7n5FWkS{sV}r@T3Qh~!m6utHAa9~ge-DlmYq7bGdWWw=BF~P1(d97 zr?_tbCl4DGNHB2mdFHnG(gHktMARhUwZQFzdCLO==vh=9uC2bYF>7Z3zGBIalaH^z zIFRX)%bk-&X?)L%m@OGl<_iU~e;b9n_gT~-n6X5ip+hg7lb@T?+@gr=M+H8V>aU^HiYy`n!}MI+W0F>{Ewjrb2yL7# zE%#^Ax~GN)*@CY0WX>Hv$eN{C-LOQa;TB;#i02JZiGj=BRC>GcIs)tDgmlmJGf4f6 zm|0t>AFkYx@bNv?xVJh$%)=;|%jh<(f1jDkq3nxMef`GXXM*R?4Ii2JDC#5c<9d|{ zd>liiJ2<2PM+oU3NsWK?^c^bsK>gN^Xe%a3lw(M0QJQdIUg$~s-pTr zEz@ls;t7eobQ9t}PhbVmZ#^xvC^A2CRa_=dr+dX6lZ-I%hojQ3s`BSurFk}HTjO;pC%pH7RhNR2 znwLLvq%$+$_J|;X9+hqcAHVXh`Biwjn{>p5whiO%%Hmlh(yb1NxyqEK;rA*HSoc+ z+oN{!<_?7VK;bOdKzVO{$f)h?i>|Bq91>hW!)-IJ)?ub<@>@zuj4l`=nzHb)`Hedi zo-oUv@3m!YY|WE`!(EAsnox)YUOS*0d^2SAs|S=;Ze8r5HM{*Gf+DqMVs8_jjGU+X z4mA_fQd0G3zXDtzophv@5XXZ~F`PvL_;E>W-$6t83V#6eZ&kkEjfk@!rSBcTJ|3FM z3BKCT<6t=K*|_=G;y*lWchHSm3Ixv{>(y9fTS=?F^edq@I`40xSs4@papwX8d586V zu*{jLur%3%?=TafDNWe&m67P~W1u`p4hCOev=Bt3$qv_)$)E!j;>B1zLW1nR!Q^N_ z{V|c2O~4Z*?C?G2bti!4rr3FjgRG7e{9^xGL9%PZE-kY(;$ku{A-|ykg|j_1YQ9d+ zfWP&^pbzxe%A2!efqu@X&LGZmYY~h(n|OjD3gmNz*{3O;Na^6spghr4SEnKI-ug5* z$9yY)GB8(T`N(BO0wZpeR0{MpWyveJ?*ZvQ8i# z9w(5&K_?5vEKhU3a1gol)1K=BCg+1%`2xP3=tZvU1Ob*f;Z0a~D{!Im|E&Qa5zvlA z72rJ^B|*JH3S5*9Sr)v zs)|!^Duk;eJo3ciZbF~aAQli1kg`5~o0o8dfsUSBs-X_b9L{pB-vXTh2@*8tw!okk zhGf%25RczbpW5qe@6Bdm85n4t+4y8RJdu*Jo*p-+_4f6htemL|Uh+*c^eAke$W z@p{^OwDEF-vN5t9X{7F47{Tx!Y;DcL$G1-ZUZL|o*PXY#Kn+QRF829YNXmfCFIyDz z3TX&{qg*4UB_@jB5a;~vw&vi)P1tDks?rmG4N>4~ zIR5w=Eh?A_nV$Fxfm5(mkqZk;H;uFvIj&erR+h3v#Zc+KC3aD)9MF@)pdJ5ABhZMp z9N3DV7tj!PE<~>2=Y_ATYFRMzi$In>TfZQSrgA zQ&KEseu7f8cz+Zwomm406wj%9Zs*kXEnur!m9AzvcN7qNjn)ou1@JMM;U^nwY4y=- zt3Y-t8`prspxoAYPI3~?YbF!CxG>0+j85jJ;OL0((BNA0T)Q7-k%phk>rckdmfGC< zL>?!wt##X1D(HD1tO&(Gse0O|c(--jclckV(-u6=LvFLhi~A+Z+C7(`7Fv@NIU_BB zd`(T=J%{bxJ+B=KacO!xHOH{x=~ol@3!&}ir^aTOVv)`xO2;p}ae}Q+sv8M}J+t!} z>t39nt`$rfvF~~5pW*QBKUY;_1H4mAW5xjKkzQC~cw? ze_^U-h8Gans|?N46PuEX6dQbQ3BUL3SICx~$%9J0p@-0Tvcrj>o5`5`j`b9!kMDFjck;ev;YP>jUsnhH8u?Pv)bvU{XRJ~lmUq3* zv^`&EOO2zY{{k7tdMN!Xqqx}Q3(;=(mwFy=NtfV(P3>!e5dKG}g&q5!zDQbfreyly zWC;X4**}x{&`c6hAho}Rq8>K5Qw#2YKsmIAq5#=a7`rk$80|t*BD99;AhhlsGHk^~ zySzrB%bRF_DIi;@-&J;NlV`=5HZ10~E2F!=G$N!~M6YoVXUWG_)Ydm+P5j0ZC~7>z zPYzHoDhdlm2E0hi;}73k_d5WVK`h#OB)tI4P6eYLNRs2Yv&=9EPeLyy?O7!ZrubNj*GAbu?Ydkl^)M?1vn8%LOClyC3M1$8NNj@-D5h&jae>Err7r_|Gj5R{TD;o);(Es?c=L?e~IB z{+FAT%O9g$;O_2QR;his#^`d-l_PT^`G3?2Gh$J8_QYH)N-!-SSVL z#K`_gJ7M10C4E@o%s<0FV*Z}IW_{d0|NKnvm*0LUwjenA9;H5Q~E;z~`4CbNLglk(m zo2Nh*!C=hv10zV$F*%^c*IyXVHG>}jbH196hfc2V0_ zc3Hax1&y@r9B{cpnC9nYUI{oyZkUQV==ojm+7=b{>^FY+z&7kXo;^0oP@j1Dp=EVk z_<=RKpO^a2OsV*mEWc}JLzQ5?+Z^Zxm*^r4f54E3_ta=^*af~wmw#^G$|&4UbM&&+z2 zz`%|Nt8hlP{?L}PMhk$we;WPub`t#}F4(@%MFp`F_>@ehRN=5ScDC+0eg^||S_C)T zq)eZ|BX%)Ys|U9?jCxD`@uc-@klS`+MVzesLMiDkJSuu&QH za0h7YLW8D(olK-UPyhRaa%mM+&JPGB9T6JW8HG9r^1K#O9GLtm|7Mbz&HYfUiEVfe zcDUNuNzvO?o}RqKUN4S_F3%+vX=W5y$8SAMF!FVFPMJ7lhTew^46NrHEx?P5|J4iT za>s1t`i-}g^P3D~i(ODxb>8?sZIpli#lnFVbjEHl3>zF)qu*dSwR~e-fDBNS;?JV2 zHHo;a+)=iWpff5hDOrmYzowz|S;tk9$Ckd-PNPwZdAlvWkfFd2c&6Hfl`l@nx3--%Al?>p~TQi8^uH50KkIVrO({AXPhF+z+&o zYROR#XeRcnABJ`+$iSP9OG$(t`rL`Qu}6m%*jAAi#RfNf4Gy#RU0(`w*^cWN5H=Ke z9m-Etn=;u6*|A9_QjYcS&SxEt3HU+A_(aS1F=aJ0GH>wtD759sRjD^oEa?Ih$OOh~ zU74vW+x^aa^yGIJnkSDafb!}H`@MfO+y&9zVYSa`Vk4q(J6>q9DsGPZw>M|mDK#*Nq z!NTwOI=aCzk{f*~=h^2s?H-sHnw}re)68}S0Bzkf96T$L4~&SkE2s$I*>z!zSAl<^ zSGyRBg^)4Qo8JLTAK32>YyMD3tff)v9S5XAP&$uvcf+@NW1jc@-v9HPIWuR*QRlw**?X^RUF*8m>c!Vd z45I6In{NzE<}@Ma>mvih;`tWvc%w7?Ro|1peOQ;cjWUC-;6xPr%g|&>N4)8@#6-wQ z@&HSW3$T(D!VIf*7?9!OA(#)Q^p3W>Q?}&Ku5^wUAnI0|$S5tS9&3L1fK0uSDxJUI zdOaM@d3RdjYa>aeHdoHGANj?|R#!g0TE@{VdCp_I?7=cWT4OaigRcSi23H%AM)%&* zsRx(`60KriaO})ghDJ9Qca1AtZ^6tI9!maui+c`wTdZ zH!Y-$`dE>VZAaTNWw-ROg=mRp-Oa(?X~#kY*vyYGT?brjAtmo3pCOvm1_fOl4Uk{# zRFkJG&Bs=^hp3E%wYF2`b&&}qhC~a`NK}9>3%j+g^{a^(;PN32X*BX6J`Sj?bT*%F ztQpdLDIk!R!c(WE)Qlx~0LsI2l}1vt*+F9LJPUnbz$+A#)#nJ{V^WkgHF;hz32{;f z_xVO=1UzVqE?ZDq7XWNebUij{lO=rB^t@}HTYy6)I>6P?e5c(6FGYnR#~vfXO`7cwEu! zn)u=J_51RVcM3N90&KRHy!VF%DPzIfO6&EL@&0nF2}#1FXj7$_*>Fyu$NUr&w?4 z<&ma{(F2*{kvX2Jv-53y_IxopA{tDH)yyqF)>k_@*AjrJt7nn>H3#eR_3IbqE44e@PO*{mg1AwHAM3x?#siF0BEPqor z3KTUp^!w!NzjB{I^f=$$^c&#Howm)rP*dyNQS<_p6Hc z6PS%%`~=4V4lPbJEdzah9i$-ldPKzh;BGag zT}ut3eA=I{tj>&q7F$gHeBY$z-(v80q?9)M8|-4+NRH$~^FY|&#Q zBN+~d6$#;w{B^XF?oESM8T`(r(tmkuWo2o!!5CNBy7z~8PL(IlAD*9O7%qIlwh~)rh{GhsPcxr8?BE*e@)D-r?1m+L zW6y+V%xnDVP;r6RM+8Yw6D{7IcztQ!b#iIe?i?8JDSJKh6v8>9{vf!jx6u%(Q4x_+ z!a>deZ&=T)#vLZEoS^Y!B9s+pAxi7^dgxE`J5!%ReC;#H+#OO&d_O<@&WS8AlO&y< z(sW-@FxJ-`>kHA~)`&(eGTg~9EEP+qoJy8VyU7Lp-8)W3g8Nu3!K>rqVy}oi(=S$I zF)J&AR~o+Ik)(@XfjbA1u{b>aEF&Z7(fa@g7RY34#6!CA?{;`zn%@Y@u;Adz(~Z-_ zkVBKC)BG}Xy(e*>b<T~cUixLzl83^1I(Jz z*J^O2^*M~tvroNwGLX1Z*-H_K^L|K~ykknPY@yN!$4qL^6eSNk(ZI)GY6TdxK5$(Cx(0hc<P>iM40a2o^QAd4t_9NLO)|&2F_v1As=FOn2+a0q+ z5eN1tJUk7-hdlP=m#nIBrOb)hm7wv@FZv(Ub~$N@)JQ*mw%N#gE=iY#>nqc7f#kvI zY?|BDd->ysi|Q+!KknRhB*=4nxO8ILfi+fzTvdEwiF~{{DuplQ{MNH2uyCOz9I+qm zr~vSm`gdf+2Aw``oA=e`6H96ox3;Ngb#t74Jn1<#eNX8P@C7} z2gb*Zl$pcBV;(r4?5vRxc2yD(A-RK}k*emw&jCdXT1b*)X|~u(5`eU4^#MSzdtDrS zC+!0dHl_#}>|s@VnH67NV0ZY*P4JS4|K#nbO-^N1d>pQT91C+FAG$I|;oh^|tRu3S zK%5QN(TY+n^H&uLEMV2di~DWBwQ(r@?-;BWWI3O&@@Y|yJ!hH=^ohUdK4A-a2|(;Z zm^M?wI2RgEQNcwHJGhKJxPTKb2VkVegdxQRsQp6mCUXawo7zhvQjtY&t3T>}3r~y6 zb(%B@oL3_wzNgpz-?-E$)a{{FX(Z?09v33372_2Cyz-~Z?$cYT^)j+=H4)zG+ndZhK9pegxeU(8Z$Ua8F|V}so5lzHbrmnv6R;K^ zu$HjG<8B81e@q|i$c-6Ow_dDZ$P$6R>3W*A)_t4AMl2P}4)7igw5|R&fyI)rcpjNu zfJ2OEFCro$jQ$MaZ|i-$KHHroyuZx4M>EpF8I%lgVBZXGwa%)Dr&yvV;<%zc+qq2i zCDbV`8Y_?&;AhLx*f=ceal&RF+X%rdTfaP`rh^RT=zEdd1hB3nv7or=$g&IfhW_56 z21^Cl#{V~FhtMPBRqRYT;DXQ_o+^!F+u9)FB#-rA*^k27hl`y0yQ}RHwBMnfbj0(MdcMz$ zlnizlAkh>yHdYGyFc|D)Qd{c1p8lM=5c%d`lorJ}kYsFc=} z(?+XF)`2T3CMFD<+1eUrTBw=hrJ)2IXrBN6{cBIsshTVe=OR>zw$Msq)nVp%!_9p< zDE~@_7pEu7_paf&j`k*G{UR51Cj(mVT$4D5s0yUB7-YC#&L@etFxVx2c+!!2X4lUf zY|0NH#! zr1wum)R;{6_wS$i2W^Lg7rH%r)&QVK03;7_#eH6N+waZa%Uv2!PF-=&i8$3Cr$tJT zdk0Z$d1sOe8>%Q#z&iJ!^r{Ob`_iTIu&_i1FGs#27p$9&Y;G1DsH>--jvZx_oolN~NOC;V9#3c?$ zn8FfLNXZ576#J1tAq8@RUnNK1pkO=7GriF@GZxLdy^$1rUQP|ertCkS3!St?S%hPk zJRk+2r}=mM%LxwqOs_vu3dluR0wJ7lJe#m~MVesEe3r3`ESf*kwEsB$F~OL#?-HeZ ztQPNZa{HJsPl^MKfk$f5RMG)CRf%l>^sIY}Eo5`Qs(S?r)iIy6MTM<|;otCo7I`-@ zy)n_~i^q;d7DX}NIgOol_;ObGsz(nh>|LJYsz!7Rr6s!d_WDQK_zJaN+m=}?F{)T) z@+h?p$F|YpMOkA*kpuPuL=k41v0gYyf6n`;hv@UgOz5^Ho0_ep!^ zfCi3+*M|KwkCWu~6inx?aX|nkoRa=2n>xYabD&D9&9JI;Ts6@4w6W86(ZCvBQiy1c z`jacw^9??0=L*k@=E+g3SgSwmxr1`rQjDvT*R&Vue0!ihxnEes9pHY^C)2&V`(rCu ze|)6CY0%-NK%d%6d4&l@Z^`tTzukCQURr*46j^gC|EoJ7fH}XAtX5!yvA?<6vP-)xS8%%KligmtK&FJyR>gewJ4E zk7-JTsEZ4N>BvGTTkDi~^nz|Odk%dNoPCJy6T?hEfFZMXJ!!S6&8qc4K_YihE|i>K z9cPXitp`WYt@76=w4NA&Uvx^-G1O^be$Z>WNapNku#X!v&S0oUDoq@21huPi*P^47 zwTT(!a$x9t;uc}T-C3;OpD|dRIE5)u&pS7e9$@6t{{bU!UM?{)i)|jlmn46l!)R!! zTP=*bIo_OJ5>VoaT{ASMI+g~ZWx+|E7JCxt2Y6;Ru2=t3mFwzs|1Q(~d+;1T`-EZk z=VDEDV)&^;kE(?NrWd_JW({#xCv}b_Mz+GYTY(2SkEtG~zvK5-5sys1U1G#`)&(C# z1Txz?EKnOs@0*{or!xo*6eE*IV^9Az{{C035qVtyy8cSHFp)^BfG?);`Nly`MA4cI zdsNYK_)yO~_NYMz-aiP_(^8=PbUkR_1O_MQbrnmfjmG9mnm=y&*Y^OwAnD)&enYe*AGY!Wt_xv!dI{HIq`iQ`>^xAwbm zT3z~2y8*^$j5$Uqo;nX9mFzoR#}q{r+t9wD17aaZaw3U+jk`sNrFX8&#RaKS#*`XpIYYKmt zWd*I}q8CzZPZY#!wl>lJsfR}*g~0Isxu)T#!xFm}Ilg-N3zy>EDhvu6GsF(3+q1KP zCmZepEyJMX?5LIjMriD9+t7DPrG)4*n-2 z#_+9@>y@Jc&sQYZ+TTw!%0Qv7{5j7q{yPv5#AO87o!whl!`(=~8}|(yT!wR4PULNj zE{oANU_8}LQ177QsB3_iqs&>gaR5 zEKKwTsvD23*x2|z(s_77=>8~$GetvIz+u^v%Ferp^HSZ2fcyRE1KWl0&lrul!+0W6 zM_6>KjV-5-ZK&s%)bbAQZ;8KNW2wh<6rV2!cIO0^EJQD+qMA=OvnkzN&1xU!3>%5O zJ^HN{AYyvvJ#Smzy5tg9s5wi6*?{fvBcE@bs^cPEz4I~$8E*eeZC-(X$V-xQesXdgtgU{9w0E0JK<~-87j)1S5RZai$YGeywvqBBv8;Z5zqpDQ62k`8aGYqxqAM5<<*I1zj9XqdJcR4XzE zi#}Jd>$gXPc{1E5{kGcEtp3;9fZkyS)hJUOwsHW-*~Ufd4p9AGppDoKb$-lgu$cT$k2L=x>PwGG-RJ8HRLl#zNwJ zhPHSN9e{q9j_Nx3URa_xijZUGSeTB=s_#(>7nQN4>W^9i|5s?qG;SeScJ1NME7SjYL2CaO`p9rx$llcko3_UV>bv)* zFHZeEnFm6h687igh8Y$v4@`{PTb8t#a2xn>diG41mag;(Vk_k9@rCjd+35hXIO2LZGXpX|ikw8Ns~@%kkgp2!-J{bjXCRZp%5&bP zNIzs;WF%!SLk<#kaG*Hb(Fm7MGu6amxH?JsJe(n=^cvGJ_bG^6(O>@+T>V9{*#jyg z`nFe+4~Es{>f1CvOQ4sl#vj&K<4tMwtuoxuooxrkPG_+b>zui>FgAOhaW=Y9;Lg-Y zu1t+3vg@4e+-p=6i+nZX6#7z99iPenc(PD0`)|vp=-Zddl&zF~yt*hOGp7fov+YGI z2+|}x`1*#;$E={x9KkR_`XBrLHz69bT>MT)AYG#yZ6d2sK-=xEvh0PNg7AoVrSyh2 z>Wq1*Add|{6iaw2R9Tby_M%suudB`m)l&8Om;!)FKcemNPu>Sq9;1wf!rr{;1-=8d zbX=~aFtpSosk;y;JB8SyVVsv-tI9AX?57>LR9G2){^huMCKM@B@a&zqrplaz9y~{o zZaiT8?E|Pw_!p?dMnz22zv-~1QG68KYed^#oeTB#qF1JLZ&wX+UG%Bn#37r^=UBO{ z*jSxh7D#Z{?U-sYCVt1jIeFP9E+;zqIMYU;RC-xCG3lyW>Wkw5jh0YC`GM&oO`X%w zeLrqCixoOvrPm5g^X9eEy4w5E>iX0$P>@gyf1|AjR)^62_x1-wx-p%%Z_)CMTvuu) zTj9(de=b(p*dTcji>Hsqgp8eghUSpSg;E3Gi_CxCZxslQVBLzMyt99i#q`d;0#n3B zVbb`t94q=hF?&+w@R6h3t?Wn~jNL?fh{pZ`zF$2W-@2 z_?TexRILrg+1_nWmH6iTwdM~iUOv9uN+4>GQuc$6z6tCI&};Yk-wV1WXCR?}^%dTUmXSpRceTh&N*-ah||*Zqx&nPuEEa zpwA@gyUr?5Fi)Mq?s$mq2TQPbOABmV&{8=)Z8_! zq^y-w4S9quEL=W4DJdx5je6CZAL;a=1}T8FfdrI7LR_MMCwFS$y~c%FiEXFPf@|0) z=0AlmsL1|~9eiPDcwvE0I!`YJR zbQaz#*XR#gz2t?h$3~k{?~3?@yP^N`^01ZUO!J7izkCJFPQO}ek#0CG7(Y!veke1sG3owY;k%&o-tI-m#cTA!<{15*_!vcjbg}I3qmnsXb2H8?V zH*37`4V_ZsO>S~Z>Sjv5FOpi}&zjjp`v1Bju^Wg{N?J_f=hxPOYudUi=Q%w{M0UEB zIBbq`>g)Y{RJJekUWX|46f)rJ1yKm~)Sgt<=_girR0CLLN`| z-1R!wUAP?PYZ!zae|Q8OCh3hwtx!+g9#i5>mQHWdky@b{sVoe1VH{R$<9|?fSoQVXz<08!XD<&Qgt@cLpMR^+wp` z%~fn!4U8HdHcuGo3sEBo_j9>ns+vdKu)OFf!zC!%$}cL!8fp-~UFLqMp+3a#mpddM zR$Y>oE)L1@BShXpdR(raM}rzdq!;I0=Q}>tz}z3jsK`NnVQwNW)+ll8!(ZK+0|^zn z7)Tb|F$(|qmw*fG{};dg z@woQLZW80zTNY}i_!4nyHQ3dTKW>NRb4B(e#`8H7w29xF zDw{c7_TFcYy@G;5OVmbQQMcNprD|va#D=-`#g@8*FTeg{N*Czx((v7M$VV=%HnI9q z9I=iU2VMcMi(5&?EZ{r3(#7b(pz0@2oL85YLqZIGeqkN9`L4O<2Jjxah=gS}ve7y@ zl4<`vD9RGITt3d@on*JHMuDx662aX4yA9W$sSVctR4<5+#~)4Xl;{{S#rJxWw?xlr zb@2S;%#w%*goxWUAQJg+wEO}ac^DrmkJ}XcCM)-1mvIT}v9ga_$*ReY?!mM0#d~b$ z`$b=>Ruc?29_w$K?4~qT5r+1Mi}zs{JT};q1ErFub9_x_&p%~SVoAf&8$Jl{7~VArn;0(7+U4l<7=7Hmy9L{&&20G#_#)@TwuDTf z#V1}7dBsPJ2+zs^u}=NX5ry0YPkd)(bA*)u-`WB_Qwg@7PXl?DZ|ieH-6;y-D*AQw zy4)sZhOHKCm8jjr=+FgOc9%cw37n~P^y>^RdpEHQun46JU8|E_PobGwa%?wWbu(uj z0Co}AI*Y%vr}b_*dXS6+z44K!@tQ2pi%Hk+y{CA{lpnNZ|5eTe!JJQp-SpSv8Rb#R zi!w(0q13?qL-?1gQSU^v@4ViW4*~fwl2i@Ur8W%XruL365BBCHeOF{em5(%rPBZu) zpC@4~=~m*(P)o%p3`sBd6W}TB%-13x1|lbJWQEtbjEV2NDLE{dFKK(Klf@;2onF=)PtkgM@R z1>N?Pp;aeZAtU(6JJpHgTVkl_V?+qe@Q6qs+~sAV#gLI$&l4iP158s)3hC(Ao;2z~ z^WQ+~;Bdt%>)rP_pc%IjyDE@c`XYF(>P@wt5TDd}?}Be7<1P5zCVTcnp{y~bCYIXa@f9{WM9)bc2Z*SUrITN8A@Nf7T#0US71l2;L$4`Ei=2F=jScl z-_`V+CQ=9o%ooYea$pQz;}2*6F`BB{x)}+h_w=ZsVr)L>XzX9r^NH*u=ES zHF3Y@wrFqx8KH= zNqpL4Yt5Y!47%%_S3LL4ti>JA7^eylt8m>HR+l+5^)Z&DDx7n{Q?_lykya2(w?KJp zI6wtIty`XNqwE8P`v=a&YulIJf_pb7+d4Nll3Q|_@?Nf^0q5~vN!iBQ1py1TS`t^w zFn$zx4d)AFBQqd@$o|Gj9Vx1+iqLvxDbV8LI?9^Ez1QN(N5V5<{aZ9LFN{;zofAu? z(6*gE%et$=R|qjl`&SxQ0F!$?QBn9ug$V!_$ehJVyvbwr$?iC~$AdxhA^p>>VmZe; zTtaPo+PsJg2)xJUHe&dx@8m=P5%rP_Ay-F_LaE+;%;`+U;xi(4eJW=prx?u$6v_vr z5b!^c0?niEI3u*NdN z3){IekNOx=nZQnfdswEWA?CEwekV=FF&J*ov*{BH2hr7VKU2DOm5%P`wsG(OB2>iG(TGaw=bN~|2o+7bg5ho* z*JqtD!t+w^1BkjOe6C+U{xJOc=Eb^5(qU!`0;r@9jFoB#Ik@b7c~fNq0?->~%MX$u z#xngvz4ZizC&NP=bZf2@z8%@C)~Nh;7mQTi{jIiptBs~S5~FlK_lsr6=ZA>S)OoA) z;{}FTh3!J!-H~_|3!MAE7dR;eZDg%XHQvGfje~_VL#a!xU_{vn^mo^o z5yNV2*zL6jrN*@lMhEB1M~~=qWF+2xSn-h)RdWcFm6!C=!aF6EVhV35Yzyb@+hn-Q z9C$w^!Ix$enbDmh>s3Mk_`WB)& z3r5C=jz289lMN4tymn>aH}RVBMLJ;e0y5NGTRUA!WG_Lz&XyA$ozq==(dN>D)HD3z zf`ldrAmMYr|G}ppq&*tBG-Fw>`o%f>@#aSRI^&~a5Z0?bt!1Nan~x?bx5KBmDXSS) zY2l~o4K0@n0S=O4QEqG+#QZyp}`>KzWa?ygrw3{*$HsE_p$% zlwl1mEd{eyE#dt|ukxpj(a(SI;TtA%ib_2(e8~ou)qq~`SF8C=576jUDPrB%=mvdl zuU8FeF)*$Tog4DTPYpysQ2Zk{h?ai*`h5hd1UmxW8$CLbiq7C?`!Ct{>rHBY)$P}q z|LRsR`!EideGp0c{|i<8Uy&4bARtn4S}#or7kqt58(nMyP$-C?wKi!I5IFVs1Ul)p z?l5h-Hm$%0r}GupHqxN6ye29Zd4D||zH|eNDrER~eYLOL;6ARW`*E}Q=jMBS{9mX3 zI}daVu9$?H0o;h|lLmh=O%!1Sg)tSGdyW!h6l?~@x;9Um|3Q8IACJkF7h(^U!TDYs7%pGK=fy|JJ2#4gM>ndX8#Wcd?`B(< zq|~zs27!HTF0>1lq9E=whxa^Irjneh&&_En@HyZrJ%Y-)l3(jD$Xcqrw? zL>*D6B0Bq-La5x-_%NXmw({k*SVE|1C@Rs|)aol^{97LD>7zH%mo3eqB>nkOYS|Vl zbbS0-=70p=kBR*k$?$(f(BF>H{;m_kw<}x?)&|R(+pNO{_Q`%)?V0k>zgRz~;?#26 zQOC@Ksu_*tieF5R1nciil^1F8a&rpgsfNS@EbwJT)uiTOg?T0{>!M|zxa>?}TF+mh z?K1oU+8CS@mlpEV?YeyX#1BnkHA$#^>7p7`g485-tCjbU^R}=+1$lYn_qL-jgN2^6 zM9V|UulBE$|Nr_JhUpY3bOfC(H9j4lPM&v|Bsr@g)?zA6NgAl=w%d1$aV5Md)J;sOurY z$?hx}=mO^FFC)*?*6QNoN>%PmXSNkXJuSym|D;5f9M*CU=Keb9C{<+ULaA-p#pm?V zdR{&$-?Dt5n}$+;f5J*CNe=tr3OZn3-f(C{5U@1n>9wUX5V+=M*^{dQE(IHTi z5I$dBZud_BZIDz3zU4ZtM_kg}8NN0jjm1(Jj_J?*Mcl~QI!YMEH-|(an1(MNh!qqNfS>=ZwwOOjR4HcQh}GwOK9Y#<`(xV% z$uZb65epuX(}8{g?VR1TBf7}d*duK(2etgKUq9!)`Nky%>I6|={KHpGfxLBiBPr2? z5o)5La&W$*5xTR}l6d=B#(uIuUeC0&3@<(Wksofo5 z=#LmJ)lfq>JmNwZbWR|WL6*yRFfic3Tej&L&d?jHG7-4vY0NeovAV4Ll_kT!mEa6y zSc_f%WDfgahHKx{axyp{Qn#opV^H-HG}2%%ThRR3#3$Efk_&a+<@YaEQR7fACE{Ha zM5Ts&S}9#|n%WC0j{NpV1CUz+R)Q0$PQYQ|g~{OKW!$~8vqODTsV-W1p>-$vT4H?| zeqqP3%b-d9@@*!}XX$sjl0-H$jxG)-=b7Sb-F6FYrev~QVoCURGPWI!vho&{Z3p7P zE24|}eLvln+@kZGZ4jLWfcE}B<+MeQ5u#DPzG*nvU5u_D5f<0B#azkst|fSEkt7QA zab)JXuSWWitE!F;$D~L(eD5g2SI2EV07D%Zu#lv>r`J6ARK=wb~9n_rG_0TA!^YamF?m z$@+@5b4Q~Z%rvEHK3Kt!mXm(!8rP|Le+ch&cRIx>Q#?8-(Yt+BYNNCYTq`j$*{`|q z_9|Na*SGBu!eKIjPhMOmwS^82OK6ltgkPlbdh!h34q>o0w_ELBgzhY_v7{Y#3}Uf= zno`sjI@}7~2_zx+Li9XK&oS?qE0!_(WDep4p3f5X$&xwFJ?7I@+bDr;A(wZX>b1>GMBi?C zfu4g1dhc4Xp|<`jWkxFOAY|yetIr*ysk?6YE~$uUo=yn+nIdm@RzK&OwdiEI=)CXj z2ML4wz-iiwN!jh_JU-_w{HybQ%45P(T3Q&N<6j0rDE7`Dd90TK?mNZSIH9VDtt*D{ z6nvq|nX-HdPY=r&erb==YBrH7-G(PFHqXsz->H(n1>@94t4vBlNszdCJ|R0gMSS=Q1)!OlMi&--SL#?3t{mVZ&(MZxu_^ zpv-ZHgi};^cea;AgJ11mA8Zq3FXvx=Ie{@Q_d-QnKGyN43iD{l03iBj7jXuFi0`m_ zNaD}L#+If8ljVb5>Y(=wG-L)gI?s+q)Vv8)h_%$KKg0JYqWPk|)m7h&DEKKL2Brxd zDgW#9LJY0jdBd+egi>_NhL__DbFIxX)hE=z8Edqjx3H2lOZf4^U%4 z+1hTPJou#S`l1MheAf&Fy^^J7n!D!aY&fV-{gGYC_-)EVI-Js;6o@8J{g3zgk9RY8 zp*U6gI7-h6X=~A)w9(a$Fqoj|9X&XCJAcQNW|_e)X65oC8Ci#3feg0wdw_w!*Z<_? zx%q-1x%YKr3fk|Gvt9oWjf&lURrRL&H8rS2h?#udy9&YkWe|IBG0+X;d#E39@cxgF zs4))Tsw^zvv%=Jz6CZ2iJ~~hay^ti9`h)$Xr3RQzqST*X$by$VMNQ4u*3c+SKK&#_ zz;;KF#>0}s(EK>?$*RF$Y2HTmNttR>QBJ34(#+))DmJu;W;ofRJ4|7LuCnNJi=*dO zY+23L*-?Usd~3^Et&43U2*6DBpqw77k$s>4l`*VagN(^*$<(oqMXUB;S(U%MX^+3V z_X6z|n+T;Aj~!@ag$7KZYX0#H;o$k(FVW&n*W0TtxtnKQecCwi7HLm5qW;Q$Qn;je z=eE!=Z)-i>m{9%bd>MGYBBvIcje4Vxb&c?5IB>tJMN=&M7i*GBwQFhi8;7Q-H(Ik{ zlD`wJE+8i=nutHoJdCm`Awf3wfLG?fK=9m@aG36{b-P$z9(0;eHJ4a=4K`V!(nh2T zAR>hCe}Y+VhWiVHr zS?s|aE1mrvXJFvasCVPdJUyj)$Ag`;^UYeUFvOr+pX3tqF^_9qPO}!=xbT3ut70Q+_VHRfnVE zUF;UWf(D)NXD3$_$V%*MWC9%Of0is*K8UK{ysDUt7#zd{nb`A0=F8YIbXnq|dcxc5 zb*^ty5egZ8SLxgpPClzoPa{z;B$t@>Zh7*evJka(F7t))rYfnU64_;@nj6rX7Z!*F zFE~Ntd9|C7*4uf*uO^-nA=VsCu#Ow^y0JNW?xDVZEL55d{6vvNyA00cr z3G$@>Q>qd5Rklq`Y0Tqf&pQ?;l6K=a2GlnGwtM>TNf;_}a(mljqnoJJqx~q~)TNde zg>Zi?$CXMicM`VFnd9PHRM4i(U+G?awAMx{JXZ$6R{AdieaDor%YRkSsT8>$E{`6j z2`wNF=63i^_zF={l2!M7ujl@5pQ==I)hN4L(tNJIFgHS+`%z74?>5U@g<;`z!G?a| z8M;``0s6L=&1y;?+*o2Dzin}$d6s;6)m-4ehihtUe?~$%`^Dt^47LK}^Y}#je&d=E ze;tTtlt1mDLWq$LtHP@S$AP3Fu$?%-!TtG<)vtwo-@QG_TCZ7gNO^gJXXlZSo1fsCs4{Z{3nOdE8UBs6Gaji|@T|q^|4Meuwx`Y>*I4o#Yo4jD_23cv2vJ7Fn=W1-H_QreO*=-Rcy#sGFXps6A_a znX|jKRN?P41%rX#N`H3-24!COIr0m%?0FJr>i%8|pEQTB2N8$*Z|FxZqj1q@KqJBm z;Ts-g#*0#`h=MP=lXx#`=2(oEZ!G!}QAhQTo|h4(zP1os=1Umwz#VXn><6Z|GlPG7 zJoNE?4i0t|X4$q6fS!Xn;zL9_f{6(7y8$|7{aEb&RSa-4GJ)FQ&O`J$7cIM+Wh^x= zWx+S?+{N|MRDf%bg)l*8Np^uZGJ_ol78GX1^tBfpsmap1-8MIukf;v!g;TIX2TxiQpga_QzX+lTqS(TEQE&(~nfAm+FfPy7VJw!kK15{`7+NY1>fO-)&oY8wQW5opix$bK# zo-fs_tSih7Q$s^Iatj@-vu?y@CcF6uZONCap!qU@~ur1Yc*D^JtWpIFa6v7RFe zAs2{sLs)>ukmw{kG*YuRf2Y5V3ORnOtd~idO3lG>wEKz%oELfWR@>X;hQiMB3COJTQ2o`(?dpE|04(FWk#&X0lAjAW4{P;H+ zsv*cmg^{5%P6Ynagiv`JFd7f%*r+@z!5 zz1I1nw^!NNG|?;7m`}W4ASzH}i*`(XiY&y~&Kh_OAwojId^B4}y3CikANNMSlo(i~ z*_ARY%Qhebss3K|6DU9izt;5?zi_Nr)f2Gi9RJpZ(a+_9 z*SMG#H_dzne@m!`O1f`n*qvcR9LJu*{}D#da{+UzsK}AZFn%7HBTPyjpWZ{kLYiM% z%wYDsJOisMWFS$;jde3zx5Z;@xBz8@ewWWE=PfLk>{d6R(%bF73V{;YrXcQ3Le+}u zK;mh+@{NrMSq>9CivoM28zX4o@t(usMV_M6k+3R7c*hd?45xSVJwxXqoYemB&&m3= z)L~GT3u|sOCrW7eAU42rWErPV=59pb#1e(v0VvZP!b2qp4rSF2T@-~7)cYD!Wn#K_ z!;l)6av95l)mM5R`sC!`x2GlzPa+;&Dqm)`APs)++;SPF6uKK@^)RETh4uo?Ri zTNdJ>jKXt~zDXk}qTt}>O7F#|QzBRjnZf{LL6S-sEqbj|u4^-HRHog@ zY0Cp6hKdXiNA8Ci)ip66O@;OXkB$S6xZpkQamUA3+U2jq2f!~}XIM4(Cs9Wd3`KXl zvlyIyCeQGS7nI_LE_8H+e|{VBb-rwWYpneAK=&{Z>Z!`w6HLcOQ zL7qr7<{CTB$;p6jcBl1v7;Z+tL7Xa8xk{9GU3Fok(P^>78qUcI!D?ds<#ss|vNkjz z7#2DIS;9~R6M6R)q5=)JVMjexfaBrR1v%*~`c?!$F~=VS*$!~|x?ZNpFvVVG$Oy;w zpnQmQzq1_P@GF2KT68$62?s-WPn=CH`)9iKF%-t!NavUFqQ6k6TXeg4$qB4qqgmGj=4bSll8i5F@BbcThvzvfh0p7{o>6UR{A0Mg4=K+zs?^(i)e7B! zw){E<_%S$%fU~ROS~ji6PV+_jhHkUV8Nl zAoK3V_wTXt`*ZB)?fNK)JY&(BdL~ucI8I`undIfP1Pvj+AJ$kuvN1Kyu{$YcZp!Wo z11r7qgna(@bcvD(n!UK6$NI6fJBbk;CPLBG!dx*wPq%0}5Z)nW^2RZWCSmlfai?I- zlN@Saw@g`6tb8rp&!vSJH6H{Z8=>_K-wP;XNVfMqaOv)!2KTLA7RaXsKeTa)1DWG( z_c@ny`n;p(_MeKy?$2iXN5bC(dZJpo@4o)YjRjTGmx*kPk<-<6N2%YxoUiJXrdT*Q z;9}-Ew%^Y)W{q@t26RC=7Zk2z=uWuyLSBmVA9-Z1geDfz1L55}Fbvnv{bQy?h3-80 z^dcX+m#TIwwN@eIaYp;ms_en_;(aQjgYbK~r|YXL#|g?m>@{-jw9{`7>>HZ#MYQju zOiLQw>8Pe8o{}0&X;%=xoeFJVjpTbjqPDol>&e$bQpRoXd3ny0hsa>q;7(2$Jsh*pEQb9H^BO7F-mQzgzlN`A$? zhPiV}aAIJ1xHJ1L(i<3%1|!3d$#t%DktMQU0T5G?i+8u5E6Kj_-2mn8DCzv7y)M3* zz3DS$sV4R(L^^#YfhNCuPPb>SU(Saln}?a25-~hhzr83$Zr0^$5(t7X1aXz89liCh ztd7_v_BSB^f~}evl5WWW*PKZ+>)2U$RWw`P{EsFL$MIo+X$KrNTB9m}rRN znn7`w!snYDaxTz(8JS^OoS^oQg1N;iqfM@qSE;)H^_bngy&P41{$pQFT#OKy)E`SC zBSiPQk$75InPn}L<3y@aTS@Bo#jYj`oO9hw`rf7jcO)g|JNEM5qmU5=2)oaEhO7OE z&^c(us5CataVmi<@!|;0>-71-*=+m156WFQ#K*UD6v^pWFeCRGbb4XzNWKBezvUMn z5~#2xAC8MBd!7`#uAMtOm@!QfMwqYqLB_#xDHVq<3r*uen zmz0vyNP`laP64G$(hbtNr9nhcO1hDhZg|(m>$-2>XT0D4@5eI+L&v%6T<3~8k9o|x zp~thdQ44mAoe2=WLi}^1j7`vVMwmXS)=h!?*fNoAy9`QSYwKIY(7`eUgT0vpYANk;GEmWxww|q* zfLdpik$iawBN)F3GmydSl(fo?@oZbj)0@vj0-4w2dFWv19pTH=nUK(c(}774tcde~ zKY%gA6WL?R86A+7gc)5YY8z*V8@r&MA1Dw+HJx}ch8zD=3-P$`6ivl;+?0Y|y0q*p zfAbMh@Lru-WTa>3Ced8!5@2Kuy{|_osb0u}kC@tZyfyLcs^h*ST>&#>E`v`+UpaoR z+(8!2#5JxU0hL<-l$!}VIXU632`d``Ss>e?X^+n8&FU4mGv( zKYpQGUZfjLh%JnS??i@lTknKv)cbbo9(4_D;@2cXT z|MVEU{IS)reO5o~Ui+)T{g)hiJ|-<~b0`6Fh^ho;2;MNaZ_BYE#>#C8tCxjSsa`9` z?Wsa8+x4p#gFMF>t1YWuxl?<{CV%>?gYM$Upen-CROF^3vTxNT6Z+jppn*O3li~{8 zUk%i&3W&Tjw^d7*ih8bm(@Pz+Q^$LQn!^O7Us0tZ;#cr+P{CC@Qzh=rRR-c}74$6r z=MLh?WJp+D!uWClsNnC5d_WLPp!;QAzqMU1TPE^ z-a5)e{L&W%Fb{gNZ?^u-Lzd|mmz%pIZbBW2smh772)7)&xynOa{hGH}L_8;TDdK8l z-g5P3IN*h0@Iv$fcfcj$wn$Y3S*CWQab}Hw-UieA;LqG5CiH)&_kXAN&u&C)$p78F zHz)4@Kf>YjU;t>g`7~3Mf>9+S(urVG6g2#vz;GS>(&2PUUj50#@!bcbNxK2;)T54$ z4%4;(B+r#p>nu^(Jyt$Gk`kSYuD#`cy89>yNj-;x%u}X)M_xrXIEVHNCI2^co=Pke zf;IMI&>#MsEj~WpN6%h-y|1UIt;uU2M5$Z_JcvQ3x!D~UIDuc^3xSAZN=ZZ8Fj#l+*bvj_qq{YHh#cJ+Jpl zdtNmGIyX5K9fLdGfx%!awuX56@yxh1_d?4IY8Rq~wlO5IJ>|ewbfSsXRSm$ItjU&9 z#;JMwj+A2>>z7~Ai)r5b2?8!FbG-E)Zw1|0o`=q%tctuknyVf&4)&%Ja%a1ZOZi}U z@pD(gjm|Punwx_MtKwq#U!TwBf~sRWB%E+QkVwUe0k;DIz~sMw6=s4K>%C3)F;~QY zj{^;*gCC~XNbJmQ{rRXW6An=^Io-<;2jyyr^FR4rdfW5J=V5nQe|-lB?EqrwkOwy^ zTDL`1x1S(XVG5>{r8S-VwxLu%i^vAmwHyZna8MdX)^jmX`CmNpJ1jAo2NkHKB_x6{ z^;e7t0f?#&$k4BTJ|E7Q!C4kNXH=n^cB56Y*aEA$#@>s(;`IaNjI&;hm0S9A4OnA! z72J=Qdn|?7wf^fIQTH0aXtY9nVHSjbHiX_1iL8+BEZO<7bhf z@ZSFZ?x=yIS7-cdgwha~4WR52d|)-MIws6>3i?sxGmx>uc|hIfJ4*Y-cNI9bOU!OZ zjPy!{8{c9%iav@MV*IpVEZ4pBlNg}%+sARLmaT$Uz(84tGF0L?| zg@^=^*;BagV2A;j6fJsjcwNNYMQwV+%7@lnDxcqhH4#!1>LEGf#i)z6-wVt@+-jQ28s}xKVsrH3D{)R zgjuGWBe&|NImWlNb=jo%9EOgnb=h=l>@Y#ZaNzMwE(8tDqC%OO81yZvqYT6#iF~gt zq@aLB|DhOd{mkM`N~b!l`#nWaN8BS`YE1-$p4}N58nUuU)3FD?OvHis9)JO02Kebi z*(=GE;QWCKS9SXwYC!}ID1t~`1VIa!ctKYY3gI4*kpHP&}(7WCC~IJ{3NaLUMoEk zK@nD97*XVOJpX~Px_UC5i0^CRFjpE54tb2*V)gI7|7!d7{eD=CV>pRPo~dEd_q1~a zngnUnb<+;1nRV5YogE=F3V0@*Ii{P~5vA=FV9C#k9c5UsV&kiSZp9HTIspV!oU09UTt?AjD8UfYQ+x@Q<6|u0o z8Z;uv!7h}+kSa3WbQ-6x^bFOd7#P+rbKMq3cH5{C*VO#Yc(I;V3ye7Ys+a|n>okTf zix60x#=G-)Fwy`q3?^9J$8Qnb)_cz=7p0)YZmNy$@rJS&&X4y;<>BK^7VXJK0NTAR zL1=wr!jg0g?gR)NAdzmsaT{!lbA4k0PbHWJK3YB$$uTr03LrJYf8yi1@Ji^IP zBd3|*Q?F3M%&$QQtS;}HcIceq)W~QSJiR(&IYy0E{ZjrU4IY^R%I{_Rs|(8m?p!@J zG1|8p%!mU0MQ(pDP~+rva(B@|9G&0fNF^iDDCl3!d*e~~U)9{Q=&tF$%jX)~ma@K= z_3#9j>T-1VC6NXv2YN{Q3LS9!`B;1=jsvoT0dF@5X21s7tUNe=06MqOwM1@oaC1om z0`Z#}6B*BXKpKxhj(&AR-7i8t`-ob@6*4l>T!au|s{n zNLSQGfi!t{*PE4fJjY!%&ZA_~e)M#)7@yvo?4IGx16mXFB5kWCbbBF3m zv7X^>GJ5jJ9r1&$@_UiK{R!1zDq;gFFvsn1HYZ%jKnAPqOITu-V#*tSKVh8}q18t= zs^p;kmi_vGfJ1M1ajsQxAx~{^2=mum~FXAoNLBsZUE?h)Bz4u8klyYe#mm z>+)M}w}`%`v%0!{Om00B>BgYVU&{^1RyU(cedto!0i?$M9Pho*Ec;Mr0uOoK9;?9} zJf0?2G>di&JtV~Rog^XZKLKVn^l&4_Vy%5FW zYf4#>bLs92FgkrOi8oz1O#{SHF}pZYBq`0e+Z)`j3M ze0)_-kLG58kpT)$AQH;@%Q$lhz0uppA1Z`>>{v@!D7bb6pdU0m=9YSCn+`{9KsL|g z&C5t;((}z9=F(R{CXSmt(|ZV(zzi9mfmG-{&Mwo}ScslUI9jLvE=xH_Z-@gS+_UZ( zj>BfPZs~~z=V<2Zzs4AX(dAI<9h*v*aNz|6DAL)HFF~{SG<%I44{F8?-|Q`=%uO&( zMp8Y@n{mDtcW}T56EGkMp3R zsB}{#d5;^TPZ={4Df+VJ(vxNyFtgL1%S4GCBB?W%(_)W9MXBj3ODq||)CeAA1 zY?O36Mv%Tbnf&mray|wytFB;^{-b9DG4LXdI0_9@xL_VT5)T9_wP~S@@*%q-TyQ?? zA0%iND68Ba5Cl{dBj_1?IOG#S!p0v)Bbl}cM}L*ASJj{sz4o%+dDk4Dm}9Es^3_6k zOWpogQ8NllphxC-*4?Ic;uTJ zGSdcsAdHx~kBX(A~_9Fmsd&bPBpJ#?_T zu9o|MBCuH&3u*+kOt*R+4@4BiWJ{)-eGV};Z`4tt6kUIzVcf;i=Q)(qtlMxvP3c!h z0z_uCes%FL>^Hr{fYP|%qd3X zBQXogKm>|tqREn)i;R4L5A_JERx2kq5;m6-l7HvDHAhm) z&iL<$F&JMr?<+mPn^4iz;NFY$A^>viZL&BiR@Zuge0V3L@}{^#p9DU1Uz&*$QMx)@ zcS+cRu`oBuXj133|chJ7M8w?V1s>HCh8?hmMZKk03rt%vh;-tww= z=#p=vf=f=Y40yE;PHA^KW>9zVr0SU7^f|H_J*f!+m`Ao5_P9={s;;MUM&;~l4x_Ff zB@M}Xq=?;qRWMGA{J*xQCTGngJHM}YrWDD;*wA+*pruWF$@aJ_d^AptnXLAND+#+bHMRb&sBh?|KaPs<5Ga&dL-;CBimH~g zZbXd}hr^$88uaOl6ba~{1y2j7!D9%58M7JF#u=o(ta4>+aBI}+SUB?=;8g*uy{`V( zY6D2Ip=CTH;PtWIFuu}3sze**TkCZ@mwbiAEzLRie2@$?DolV7=bAEe3!M^QGBYES zSYu50mS*ZsSH7CVS5vD)Dl2uXRxm_QOw*H@9EbD#UMi{Y7xYDw3ASo*;=G4Nj3=ve zMvrG(cgwe3pnewTY+2GXr0%73x5eDX!shM_THx3XYEojDV-fo3zvB($qKeC3vgZz( zMM<@;@KG()ei#{vFv{Ec1qwQ!wJ(1j&dG1maMBNnCOxH?5Tg zAe}5*nxwl!lhUY^jJ=UgZZBb89 zz9O#a&rj1Jl+K~VFnJiG1eLP zBhC&>YV;wXy<2|@6{zH9OUhHs4uWAqe`r-*&`7>a4|0~nF?hz47UcXaitm*oGL1B~ z6q?21=l3n*%6_pMT0r6FfTs6C{fgbbVM^NKkPHr3wg7HcTAjy;MtB zUf~KoP)5LDZtHD;VIrmOA18#S1>S9A-b$~S1)wdBX=7gi*p8yIeON$o`P__>XIEMA zT$^Fmq;Eit{a{nTxbo~s(#MC#ByP8k5-hXk-vSb&OSw>z;rJZ(VoY<~j(C^d4-ced z%07L%1|bGfe{()7?!3h2wxE=y%kV36BzaylrhDCKk)Gwp+S&W_9K9w@A6 z3>tsm267xvY{|iVm*m7N3HSF}@t-y3MsVO=YG&!+5I#nxVFCb1+WZL&jhPub|8nA6 ze*c!u?3IjWi8d>f-U?XgYm=P6VtN@7c1=_Z1nh9s#u+Xgb*~!Y0I8 z$B4u{MXYsSvdWO_ytwYUmfaFh z&Tya&PYeY#fH1y8dh{(ci|=NKUW#pYGdkjB{ zM|3+D)`pGI4&DdBDEa;}Z*Bv#h(pxvd95dje*px4efpe651*T9sR^nm8yDovjM;)9 z#Kh+?i`Et{&s9J*u&sE{$=74Xjq-NU>*Ns}+Rdu&{`c<-&`Rxe4dn{d9gaGX@|8nN zXC5<1p=ZQih25;1r34T_O8g*32gnErG7UXx3BAX}#IJZvPYz(7_lLZCD@8I}3<_I* za&(^f9vbAVM+P44KUUbyFlQP)!b>AhwR5U9iO&txs;ndf)erOAZ-sLHV%7rjJeA(LsR3kdotGQAiecdUaP#~B3dC<)PutWb+K8uRaCMm zQfU4|;Td$+&q>=k+0jI+hM837HQ6yH6F5mooddx@{CY})kuC-W+4asesuE0>i9?Ac zJFa()K{0J@2h)Y-Uu7nJKu20whWr<|Im7uGSLti)Qd#^G(CLFO=@x3mBrc9#kliA< zKx|U~JLAXz{PxhPk{LDmcoowZD#C$+>4ZMS+1GP*W*)k@AYkwFoc|nbGg*`Iz#{fb z{qv-&2QPO3z30$FTLA~IHODU#76cggk!h$&QxfmZ{hoL1sP&9yTePRe*T)4gKjUTa zv*<6)V5e9M{k7Lr#=1!VYOh8CqCz0;J$BhOYS$o<_|6&nPP)A zr;Q2N<4{%-f&TiQ5SOYKmU(Fh>NnbMx!}1sYG`-8Yj5&;)p3=h%J%TgyeAe%R7^RG zCC~H$)3C5|62cne65Iw-cg_)+fh2MyM2OCU(S7?J3;mS7)#+#%x?+fSS(brXBF+c!^wGbGY^gCS5~Hx$kYrZi$_^oo8`VJ|lybnYA+x4GXBWl^EhFUMDZYaKD8F6Wn!n|kZqovL9 zx0>YaXm9tqGkY6EG}M1WQ*p@>~FkXgB@6QCJcyuELKUd_DV# zJAKR}{~9VjRt(oU~@X%s6#VMNC9o+wg1__xikN<(|*wq1hd(8JrjqUX1YY zY&Vfy(+4fr{vk?(z-Aawt)!#J^Fw`l!?DQYB?bcJHa8ACTpM0C2CG*jeIMn@H{N&z z4$K5b*}v8}*0fZ+`yR0|US@C7-j3oYM=^z*Hp--4H>K9or)1Oy%RtoV+^6sWyf8IV z1;+T6aw?&vc~|5!y=gNdgD_EZm%JP(N9bXK0 zGpsH+B@$(;I?yw$(j5r33a2#%0cs+>9DpbP^y%=W%O|Of3_g6;2olxSmiiPifO|5V z{z4TPm|f4^zI@Pl_0eVZG5-TJ(0_8w=I1AuHio0yOs}fJX|8aB-MBL}Q`=r+zt(NJ z2=K%#RJ^6+G7z2PFioaaJ~&A+GPU{nHEpSG9PO4I{OzOn^nIR1rDu`5HN{y;h5rxl zM4MC)Y(zgKfiVFxH0`5XR=+lT%?w(_esPuG?u)?(OZ+$W0~8UUD;7F6_CC6ZMpIrA zPdAEDyDQ-K0@^ddf4l5Dp$HtJg3 zk@oSiYnxP0LQ&@|$Ku&0L^zI6BGS>pFa3TKfQf3ceEv2)ojKJrg+|1eA`SEn4@9Ao zoNgFs`X&Djq4{zP{~Dq=r#7x|RpszU>p??#WmjEVXr@%H10U4U*;JU}?zggGAbCnc zqJ(a^T^&^Aj4$x1dLjD4e(5P^SzK7~8e55W5Zy4#!{r}8xKGw{2VOQ;A!sx-(1uv* zY2;~z%e}~E!7W{WQosnH2Mfl?0~LcGNR8dK{=rR64F`wfOy5DOMJkHyE)Q$O%0Of4 zOhiuN!~dyckiKJgImo-F(Dl3N^tD>OzFpe5VU2ZcwD9nV#9p=iASvUxCaw zp0XerV0eA|w%-O0P7*#wrKuh4USGmK`@&GQoc?o?+3xe|FMGSYBP=iKZT-M3QUMpq zzfOm?C4{1uwz7(lA{mSe%_Mo|_T@Y1UZFZJLsAl#_ZJ>V3M?%ZM)Vn&ta%ULs`Y5M zuXU3?T!$Za=%|6hB-V4mxV*H?%$T4D64NIewXp-WE@1rg&+F3HA?7eeECx8FohXo> z+yf4^#uK8#=l!1h``kmYMN;6F(RK)1?|mlpn1Gq75}fN*z%Tv_AWhBTx)aRH%a(m8 zgPr_-J_%BRcS(dIdb#4t?X%ifX2F&`?G9rH;s?VB1a>QiOlW}4Na)W;A`;dXT0moC zuWzd|EPeb!jp8|x37`Q2KIouK4Fu(*H3@f1Iwg1=m&Aq08e)*X7~{79V2Z#%mFH~v z^od!6tM4JaH(~Nylb1<2M+^DkdNr2k(QL#w&odD)K<2;Zu_FjJpdCcWSR-FKs;4it z8-O&JW7$7rMqyMc6CVT%+)r)1F<~L7pgKBe5p}+7k|sr5+bweJDtmdx!#csrDOSR? zXg?W^Akwn6N^W}|O=J^T8Zxe#A02wDz)!qgPtutIr_bBT`4Jy1^%yN4JzQ5$4KPjL zOPPvw9NAR9?j(>$8;3>lw329hMS^*h`Y)f0lmMuyY-@*YW_&2g+?P}%bIC^vmE$V+ z#Jcrw3zCxoHG>o7Y|aYgk3>vB|1yEtMb*htf;|(n^IV+lnc43-?I()vIvH7pXB}^T z(E`aN1Zs6aQ%oo$X(WI4^^xs=odsB$O8S3VHW)#$@4sTxqfq3OGazvaBp`jyD9zEi zh+`2DwBB4s-hUnJr!1r<5gaotCC@}NUfhB}|q|K&|G3>62}p@D^v z)bWxTG^VVnJD#Dm`Kc-W+t|AB*7dXMpD-&WGSN#{A(=><@NmNO)bc3HI8{y##o$aO zMC=)J=<6sDbES%k%t6{1m+5cJFkuq0y6CZR%71UVVLH0O%^+k`3a|!O{*b>GIRsc- zw;DYkNtRn+cZT}o3cA+a7x9jiH8*!dp}6}VD8kUMy0Cn(IN6dQQE2g7whIt0WtBml zZ>TN+A#ukhJS2o)!%d>>qk#8g1L5RaTGkTM7%@>*%Cs6zBO%3XHBJr)+~YgKcKw-c z)(-G7G8^fn9Wj1HtpZnQeWhzHhxc)d$p!RPNFI^&uU<)bU1CSR$NxRXN=*e7lZX9p zNcy>^-mHCJeG<;GZT1{j7KP4f1W26;E3n`Jh|JiN-fGe%oWli<#gjC#skxa4F!b>g78E+|kcTu{DT0A%&HjInv5p@Xcr`oW!HPp!Pe|C!UgXNyOOC34V4(wZ z&hn!U_lAFbnpHO*VcD+^nV43d^7W97q?$#KA{%*Z>FR9zaBpAnqt7W4oAJAdp?a@ zp4XQHd&Xh27gl+~k#<&nHq({&Mk3OiU#UP>_ZTp*!asu+^aO*;+Is>GcCak}0@DWv zG^Qvlz*CG6j38Km+6EPwnzV#GVrq(ey!u7*2}y-ytDj1?V#=e1OI;zG>7!+!i8gHi zqHq}qBC)YJY)YODf7i*ipByqTab*O>FxcL6tDSkH6p0{kL}8xpO|)gXiugOGtQ=?x zhY}IolXbhbm7CJf^Va%EiNiYJ9gRVOq_CJ>N}uyB=ScD~`JCLw-t{4}e6jQeK!`BE z35=?vMBwk-_F1s0gB02ZgJ640mAY85X$^M_YFlEo%N#mBnhj>TZ&?+*LN*$42K><9 z0QapFko5{ywT9gVFYr4r&&B9Vo_W(Ubouy2-L`r431G(*WS z{DVnQg90+qEDFCzYZM*yIZ7H zk|ss6(VyzIadGOyrdLU_F=pK(T!Dh%A5m{ZQVV(k!NYyePEHyqK^>_#vw$~3eIG!D zW|7h#{_dT|UWX55G^G)1!lo?n6Bx-oE#;WT$rj31xE&784ai6NkE%w7k2};Z^u#&B z>?cD(p}O>ELH?RElc7GJM~kDe&=!m17yW>Ar2j2~L}c_XH5Ho5?V)HofZ23)CWjw2 z`Q|A&HY%I$p~RNLFGe}&>80cooyC+cI4(uT0VxqIf-LNpj~HV_7#d=+rQ1}%VzYzZ z2Juh#Se@tEXnPMP6-$|n6B)lowRc72xb}d<7GHOu{MP{jRKF7qN;#1<-*$if!gF5Rbn|VAO;L8WpxV`U`3M>?TNjZmbgyud?0; z#zBm*uE^^+Iw4cwtgFOgg!#a-?0|Ct%boHEIauuG?9NK?ut<od%%=Ydw?u~uq?{hXjXVzVO)kDQ)iAw?+L}}W z@UfZJn-Ta&{LH6+JRMs#wFlwD#HR|;=?MwJ1L=Hp5C|G*J8AAWjm|gaBnf%-dUX)Q zS-Ticuo7TkgMRgq_B90Wgi}lP)b5dFrnFusfcDCA^7o!mim{qRQ-BSi^w;>qf?#Ri zGKEqKq)Ac|-*v{)JPfm$(oyub&XT2RWd%{!R1)rBuTuA*{$VGg^s3x*K%)?oYwyRP zF(ID%Os6G&gP}v}`SKj};Zej@%IkE;?Z{W#zc|MF>nb~g_ELjDfj=F;Z@IED3d!C6 z=I|i2B9m58%2%6@EA*6Zogwiq@7Rzq%= z!%sC?e}vF{e$l|t{e&6NfJorX{p)gkLJ&Eka37j4&X%NYI#!;#HonVyu)$|sZuwk- zDh=QCw#<`SAQ~ue9Do}tHb4jU$Kmoqr#UblBbNI$IG<|@316M4!UQ7@iz%y!IM_ag zk?cPT=Td%>z`*l+$^`{7b zj;Y0=5{;~#@y6!1`V!lLcNem_i0!#Qz~}38Z?HtjZ9TCIupt}n#YT-a^k(bqe$VV( zXU|^(b@tG<5)lNSN$?wZgmPee`-2gVyE^>tn?hc?BlC0%o6X0M6q5zAvc)M-$w9Jf}Hz?FSX1PnkHV#VFrT6PIw>_>kKw5~-Q zN(pgDxR4LOV*E5@5ma2g*tBkc*7AelSuRvDyNKRTHu_!nYUU1ncafyCyAHi8N@Hwb zPV`y6sgGC4kAw)&UVQTevD|V>AEqxRXpo^_*xIu0%FPp z^8|e`--1xgQtgs*Xw*`{0cdBNY-uG)@0~^Wv$o=*%Rna(o%}EF<{Ur;d3oX?3j+jk zhp#=II(r5N>GfJBA8s;^0~KD#LH8%FMh3G^IWy3HgpB`tbWiK!x~fY2ks=xbO468+ z@MDu&Zx3V9%~|^Zw;>WIODki72q8DA%>chJa^AepzDYfHCbdY>)4gHjJOs{s(M2Ci z&){CdC^bYTaJL22cj&lq-$%Gb8T8#Rpl_Am;|YBfTX=IPNUFLm?&YnTWp!R5@~_S3 z_*%`k%^N(3keVnKWMU+qrjO22u>z1jxg}vXk5->tmI!G#v0=4*bI0oeV96~ds4`eB zThNV98L_&OxXm#U4y2+mabx3fRIY+>|6RXSMxKuThq$t3`txR!Dd`50jxF+pFCu~o zV)byvF6K=!9~5ihM+Eo)8-~jYLh66IoC0ctg)Yl`#=TV<8=?(Q5;r`n)MexMJ^NJS zb$xlf2m*A8x!1qui=7`#-vNbab4WFRR1-vqUHq1eQXDHcf=r1$*?95fN#M~dSJzKn z^Sj+t-E=X+3mQ1ZTz~nd+GK-v^KF0&vepsCRwYQ2(P^=iy|h)Ny>YOb; zUCAVoTJiNJ7Yig@w%303sR~lH=ABprI=Uh>R3K89H9XyAwKUNBiWlHQnkRqT0gI@zT`()4&deTU& zc6Xi5?4nuj0!|p_@H6kTB>&N-i0a64dmXfEd9aMOINu(+IPEc;w0YoLekZ!p0_WD2{%8?6#;TjB>S>-yn~ySphD-9PRQdd&KQ(y4w1uXI|zie2r->~;{U zoL~iOyt@tPJ~-fzkE# zNAO4AdSo@8l6H=k4wmQq^DVFF1-){lu*RBKV10hSv~zZo%Rc(>QuLt<7~63ZY}XN~ zvE=AUllFTYl}$c|MxCTP+@o5-iA~?H)bhC&01MEN@m{nUx6#9&!@XY`(BszeO|n0` z$A|#Ps>qr{N6h^1w}7)q-cT$@b!4y@%+RP?jNYzW&6o*;Vpoi?@}^6&z2|~(y2O+U zvg7;OGc|Y|+lv=;f6E7+n*LA1_>o#ePj?@lgRF)qL=*2cp5V%lCkNkE9*!aRV%Wi7 zW0ROxO*}T!3NIZg(P`alJj;sK($x*K+ojZ~cs^2`{UrFdeq#C2>x*u3xGv_z`rGBp z*GcFFl|PC$-~+b5ocmi?6(jav=B6@=+7anFg4EIHy(gM^&LBw`w7t0OSw$8^Tdd6e zJP6jOfYwx%Q(JU*Vxl|lU6c3>E|la#$z0kw-H>nnZE^aQ9SA-V0mV6QI6M=4)gYK# zmt7qsuqyeP^2KXHhG^MpDv_8X!4&PmB$4FGq>t=I*}nNcAYNOzf(t%w4~wX4B09R8 zjwfdIDY@e-mpwxw#=Dc?ZhZgAy2{X^-&OnL&bl+_s!b`aE%zoaeprOHo-5aNL`#H^ zDI`X>+HXQ&y4pzECsno3~^A_K8 z;8QS>2DMi!68EJzwGWx7<|RXM%s{3vzxTmf(&b1f$hwfX>U4f9?6s$rQ(c}Fco&gN z;0(g31HUnv0#14CJ!pmn%Q?ZawPl5T2&~L`OPzdgt0RK8?!GgM04LDnpZ;;r`ACZs zMs`y1HyBg!555nzzmkxuwTbTNroyk7Lq80~SDWA%>O2~GL7!^)3g)kiqH_jQ0D1cg z#bICi@pI!B?r!3a)w3lwT|VTGKc?NSFN`}`$~{}u{FpBsMKS3C7xZO#u+aRD^GcLn zc(=$(CtLWfR%HvRd<$d0I!n>~-WZ@X%0_8nT0a@$OfvhiQf=;#AF-tI0^Z>iDaX_> z0|SAV#X@!zDt3|0#y-QEy*RzwdVSuiin-U9ZHk09xmkJmu6LY8CR>{$a-*{Xl?L)C|2k&y}TEw^`Fbi%W1B zesQrsxcH&4Lx}xrZGXBJ{SyU+h|z8|Y+`Xe*CGsy<;%@}61qrV`2;sW;h!W1AOV3@ z)wASH=)RRko3N3#Ht7*>h<>|ocKyYP>e;8EmEy=Cn4j=Jbf=GWmL_NPuW@5VJnJM> zPj{G~s=4!Ug@3tFB+Cnf8stYJufnRO?&^x3)V+l3ZbP@o`Pz>LM}5My z_Jl%pHRu%*opQoj2pIB&w57?@cseb`EXF=?6PWp+=PWD&&oN&7)o&~5#$TXa3=+cbj|QQe~JT1@%=6 zdpmJtLjj1#fnIh|?%FA*Q2#&z!5GF*egTg{|F{T#WRghxRJ{uit_9IZdTcE9{Jghf zgg9nbqx;ryDOF-v2qH{VS#13Qe&1UnF_jv@dwO8n9J;?7sNT%6zTIokc_h#Xbr3fUhhdM`>2;fIut&CPg%)j3*Rs0?jYo6 zzq`BW5a)04m}W9p5E&G9DeJ5pcCLE5X5Dkagx?-|t*$-r>8L0?PCG2fIWLO;9E3NU zCWmIScEisXW5h=LiY(+qUC zS8JPZ##8e6938H7AL4yE!d zx-2LuiXbdQQk%IZd_C>ef+*b;}gh{Sf8Rdo(cPDFS>#_Y# z#2mUGU5Yd>u01L%hhB!(LuY+kH#sPM-K{d*NG@khrUZ=68=!vYue@f~I-A|KlP50+ z{TnRR=Z0X#>OH?)fsqtlr&Dp&{OasLe%q*VrGWzHioGH%A7qz#Wua1FGRjJKKD};E zV{E)$@zUrlc*v!g~h)(D*V-#N&?Tm>a%Tbx=ChJ}v{lx%Zsy__lT43$rADSLqS zz~|Lt+I8Jg=RcZVR@LgQ_)%ukN4Um_pa!Yy-h5+spGoHafM2j*mq_{m%SFHAqhU`c zUEY0}7|Jq8u12?Z_^hU8MWrboj1-``VV_XhNYd;o@82FFFf5hXDr;OnkcMb6QE6#2 zl=IpO1=MLmEgR^2Bhjp>E<)sc@l|N2=lk0v{l}l4cJXXL)hDsaOd;25qa-gSv!wBP zhYhs;tp$)mahu4#*?Cchy*?9Tl~mwmp77SMP*LAAP4(PkG49XfudJp($SJirYB8Q! zDJ^Vxc(iYJ)V4^Yug5YbyhId@uQ@7Cbh=4)>k*)?MWgug+{`3t!hav8^#6 z7%@7t&o0e#qkRHtZS*=wnyom714iI{)ZS@x{B9D)pxe=dVv+MiD;4MF%km520E|VD zdRkxL%jkE}4^pcL@gg-!<$a(GFu6zK8-*LC?LewSad4&}7yx8?A zF6c!h7LJF{+BJs=h_!8aX*uavHb}4qnPJAJ$6j_xd-&4!KE#lf94krJ@%J2@^sx<| zL&GlyCAo*}izUD*(?Z+p4R}f)Hzj@EPyOz0iSwfi|U}d2JKFJw7H3r1MKa!BiZ4)6Y+ddEcisop?OJC*dL$3(%_Ur z2$!;4lhd72AR_*{33qkoGK@kHW9X&7;hFmJ()K&3)8+(r?E~)lIQgQZy%!Bam>JpARWalWLXJ$rV`vDNpoQtL#EHXMRK zgapgcrG~QzfLOTNan`7aarCSV>O9j;Oi1!gvasA|J`x-X!G~m{%7%5SA-jvOB36Dp zLFN_dN5fmc1L@PH?8#_PWS*3oWR0IPv-nn^gi>)JoC}yI6NVy(l|C8LlAdV;hkCRq za=uXo!zNF)JB57VVqX#4wvAZf=uapPU}a@h+$Z_^<;xF%mVO+9Vo7v*aiK{M zpW6WU9*xgbDlkklQJe50N8A|r_%sNTzjlQaZgjX@A-QgOV?Y04|q{Deg12+SW)4-uIfj@6d6KO*oTV zw^)L7A+;JaJwt~Z;XAweME?2q9;@<+yUF(Y1Wh5mxHP{=Dw3}>=NpNQntag>Wn-Y$ z&K@1E>lhoWE^2!_$FWXh6mn;a*9rtp3h{lXKwFP}3JTh?=(%#YS{p#x|aG; zHmP}bFBMmu^}!b|G2rq<38uP1f`X`6SPB5M#IBj3LwX7xF(|FGvu-Yvk<(Ntx^$Z( z=;QrW#uq~)9@8VT$WbiyN9VD)0Df@xV|Rh_pdD0KztO$aXN*|0<9mD$M|8{uMJS$g zF}AdOUY)L1Gc8sw;@iOajUDcR#N{%~&z6(fq9u%6ea4a#8k#(xb)D7XI_m4|mrFuV z1p9j%F{-QwM?+j8`Z45u%8KQDAZ4VaPv;Q(Kdy`maJlOg=B%?NYSaRgyac@K_64z?j<_rDKVCP>XfJ4JyKoB+bS)bVWKv$N}KR&QD z)R7W09K?=nZY{@?=#7!4E9rGu%`L|8*~(k`pM8(BnW${}LUo8+aOw6{m9yn(O_M2` z{Lb&~#vS9`C9Sw-^MgC`9EIUsN@7KG7oThh>DKWboV3|yD zMDR%v^Zt0tY$of8n0SfyB|cT=y-4l!bwu7vI|!XcxF!J{1f`YLVb5~j__j0X&RmL@ zGUCt_8yj^TZHGUvkaKlztie0nKMR7D9#xfH$q2`^N(?_Vk#^MxFJ~t)Dy=rr-V}(* z{Km#<*RKP(G4xLsh9!;)Y&8{^I7b5pJme84LXISH^$lM#I)6%>()1sX4z40`@yUB0 zm~}*vmSawh75AG2!Mrij5)x=i@K)t-$rqP;HsJ$rKC|8i9pm0cT9e2LAeYc%bwhxb zT)+fgZhF&wJP^GUN1bl6o2Z=n-iTUl^wmf6PP1^XZB}KB>1VHt zXUN7(81H~H@r;!)QtMIDnvxzj6OG;}3M+(jOtZ{wCFN_x^$J{Z#&jeQZ;sI#P(^wPMGXv7FDQ zSqBbzL{VBFcI#BXO7cBo#cb55Qux)S3%yN#nc*0NZLdLYF6*u)$5@lx6bRN0&;2S2 ze2SiuAWW4?ARaQ)EY!i+s#}#q`Y5OD%X?bZhPuR5$!$LOt-dx8?jIlWYXs6d&IvLS znj$Z$5D9~OOrEr)tb=pG=(x}2SFFCi3pa3V)`~2=*70F#ZJodd^G>kSe0_Dk5Ij+R z;DdGY%G+BoQT(EpF%!7D_YCEx3TP_ilSdAs?C%F|sfF+*Md+P?V=cGR-u2`^e%AFAvCE2@atLFW4U{t2>EfGx(7Dvx3^_F+`BCgvjh0-YLID_qaBo`Dk{lNJBq)*T z2s#n^kL0*z`kmP(R_7N1CP02kIYanEc$5Fter9zptJpJ0O^w6!*~=Hye*cHLw|=Yg zS=+{?1VlQeyGv=1l9KLRG}0x~4Wb||NJxj$-Q5BL0uqbvkOmQ0#3H_fd+&FDp67l4 zfbVhei-&N}+;h)db6#Im?Gt^^g8{Acha4#;od7$E_j4^U1-!*UBOD^3z}IUNWz zNA$*Xp&!=E6HL(#N4&TsYH(WA)nVs(RC4Njr4(b||Lw zE2kXv9(5=lgHR^g0PUJAv^2bNj4qCQ^;QvvyGdFmgB1wRAQIXa&f*YS&Bf6!s7D(f z#+j%RUAuze+DG!?6{WLupXzt+yijW3OwA^rFKEz7gS>O>FJBx_uBc@OafgXin=;zC zMANc&zb~pRa3Xe7`UG|EtIw z6rg`#N3^?5$PA#&3TQTRt3lLrb{)`ic28jCTm=x4VV>%;L#1rI3${VE$D^Pc)9 zJO!4HZl%aHJtL#cn}n?kFkLV}@348ks#*|trhOo74|{y?Ff#7)6H?UxLBuB@-BbDM zaXFig1=jGO`BJO57Z5E2F2K`+?IpCn;tW=VEQR*-J~C&+SrhcZo>0t*@V;HI;x_#^ zpGrz;4ZdTR7gW4`i+Bu3jC+uX zpKRiHEYo^Au9(;RxML!|oBM?h`1~teh|}PlJG)p}6@Tc(*gUdmo>5c6iS3`KH`m5TLN>t%W}~Z!czU0)_!8+$R(mc&Gj`Vp&}92It!hyQa<=2E!J&ST_U8nw5#TkC zCZOgLGfWRjr%*k9VQ6UDN>Fji_70#qtko`y2>|D=RY09bzBjRIN;M>Yp)TQ-XPZoa z#KQJkb>}F+^pOjTGnF(*fHE%iR#qgEBO!1rksyjIHmCrMv9GMG+zXB(6$fi0Xq@A< zTU5Y%%r99@ur*ZO0D3Xu0mPB@T8s9HR<6*dd+E1@?(P@pG0GZumo)fmC8>|v9#curAZqg;zrQ#-4k(z zf**nEV2IypH#&$kL*p0goJ5fUpDF&G1g788JGF|BAo7R&@3`!}vI!MNA8WH9pZj~j zZH@m{MmJWowTMSBp+rieFaP0j)Q5T>O$H2I*KVLgBk!hXQ!c2WqB1pCf!7;LCBB4) zcL-uiKoSV;)hk1s3`Y#uLCc4%>sKH2F6&}0w%0TS0T;VJ<}v!r0y}>gAAO}OwXnM# z?P%kTCuY8>UrIYzV%Bn6zXFwvh~-;Y19N=gd*8z*)WHco^oHHMT&H`WU;%bAo*zz$ z%&+2Cu7fHsWHyVD-C3{n!mD<*3A^-U1V&SM` z4*g=tCsChunGxu_gneEv=WM$;kSyhMJ!=$XZ60M}sG z!33sp=XKRR8>|w|Pzrbs_?wXQ)MkaGg8-JmWXNDo&(_aEbzjcewmv~nTQ3D_2L8ih z_XBL)?KK{2jVhOQ)Mo`ON%Gg4Yb>)SztGShl9G70JnI(x)0ZxKPjQI~>RIjnH7s}B zg-Z6b$(63khy-tJsdqXzDKU}DxUZ$scEWZcFi;@s$@=oWOhvMsr1I}%E|YQ@3^rV^ z?VmXpK;f5Db;Q@0Plfez5vXAPUJavC_|?Y(lmkTSY!=41Aq@4bB4HrMMeGaPZ>sL7 zc2^@J0!e0UkjOGVFuL(tj~1{aA{?B`Jx4D4rdIz&9R6GOa);SzSA`?54@!FY~o; z;i=nY@61gidw0En?1$zSKZu#y{#{F4z5ZC|u~Oy-VeGU1$bie3jOtXCZ(E;23PPpg zr2n=t^rk^Uz@1uK^Goq$PipFV9&XbNX^lLJdnYnD-V+$7{Lsf~4iu24dDzTwgMoNXaw=J^D<0U(Jl2fT3mUKX!eCQRvLLk-%} z?l!25)a~0}bI# zD#NRYC2Y%k>WJ?6C zPInbv@lZSKe1*eogcuMO8TQndQ8wAr*7O?}_BLBQJ-k4N{RdFzbJ@MsJhLu{mRSS)Q$*WoZ^1gf`bV`g)gy3-y%wAAzK`n?J2kG# zq};i!hWuoG42WE;66>7ch?=Q_8rz}kov+BO<%x-Kd9TgHvFf+&nVexdGg7}RLjXN} zjlWW}cE}a4br!>--ve(x#tZu#R!)LqapYCyh68Fuu@K!T;{opGL9_&IHJ(5IF(Sq& zAQH*I@)MzH;0Y}@<&k8DaI|O%+Y3c-F8&H#{aamT1;1;CBgyAI9(|3pj>-rK2VyI_ z9aG?KYxGO>(B6wX#EHQ6h3L4DH{Spt9nE{a$hQQRLt#qIP_L#sE^D(Hy3|{^5<(`-y45r$+k(m6ED2*ZfFiBxj z+uwW6SHPflJNm*)>`6rwD@bC}{5y$>$1Twbsxt8wH@B?mguG)6mx;bOFBjBpuh~KE zp4e!;0(HTH)%{s*Kq0CzRl=o;kWH5ougfcv-o>5`x37nRN;jS!qobL&2>MG2h1PEEwMgTv=<2kmSaL zj9SbngmF?}?DvGgId_A|1`BL@?N5>X&Tg!Eb`2u68)d96B?`Hu6cn>RA3b_h`>u&7 zQrjujxjcai!?~9@hu-th2k+@kmQ6e! zd)gjrUR;Q|3TsnfFOSbED46wf_65Sf+!HTqSyQ#v}JA{>cQP=L| zpli{wa!nPcZ;!|K0tU0J8x2)v4toDM$-VI7z>Tz^yFIF%rXJeQmcGDi@~oWQNM#y; zN@;RF+~b9Mz>=eceHnMp1b)txUCv|2sit8*eG4tbWtvVE1iSUEnoG@m z#viq5P9pWOcxG;*sy{Jy;U5m>QPE??q8hu9*oyN0WC1$b$OneEN`Mvf5j806e$Tw< z+3tB44|MyeCLoYHUw1!DRjRazR06cZo0&tY0J`!G} z0bX<VXBU!}23D4qU8}EiLCdX&_UngWZn*NDcJKFo z=r?XS4p-9qS_e5ecv}O8Cx%Z zrNuYWRKE{DnVr3`+f)#mjsQiOqlvw}_XQY$>V?2SF#n4yRQdUNMJxRim4(WjLfEeA z2Fq66-AFUTY(8GZ#Du`=QHZ!_h9V+Y-R zQp))L)a3y7Vq@cLb~ZJID4f4@gKF_Zrp3dHuc|;27Ru>p%%IF?{LyLVzz8;}lBjpx^Ufm_>OdOng;J`iLGP)UGP6cLD6xHB6?U4J4i= zwb?`5Yhl-4kMH9u*VlePrwf9s^wtQRoI+NF=>bjV%Okl;m8>&=LR!53<)>JDw`csd zugi}DoBj+~v31?^E(7lnn|=}InsoG!)gNSkB;>1b`yovg5gGZ^7v|sxDpmm}%iy~h zz4ATQ7Wcb&9R(2FfTUS)088udfn;!FKr^B*u!%^jz{ z+KvG9#0057d*c9XYLD}}$*|giRWY-iv$s_LXlOiB6l7`0pT&i;r^QpWCk1M50P;Za z%1tC#-XCC{huEq{7Bq8q ze5?%wBXGnH$TMb!8m+iX3!riSRxVOZ@t$r5AfJ0^)>FtlMD-v{t+w zj2$((+ewL0)=N@;lYzZ>gyzL|uXF%>K7nc_FDxL=78#6W0@|l>w2Ck*`bq=Vj@)NG z5UZtrj7~t9XnJ$iLrZeheYl7P+Oq4F^R;zX7If{z4{d(@R%czyynb=<1@w)*^*Zi- z8cGV{>;Kmbsl~;Km;D>|j~y;?eAK7Ao@?sI zhaVsX%o7EIGeD~ooS%mNlIrk>9e|b_SCV4G_h(arM_7a7lt6f3AD58`aNN+O5Sdhs zJ3&*!Z|Oq)D;}P4+iP9b<~1rLFkU^QH$6^Vw$bTF3$O3q{vjU zR2TiXYDE|g+%%{N!r1bNxGJD&0GU8J;pp0vcw`$2r#3!R&!rt%Dfy+6mL)(`cgqL) z2~w(mE+-ucG0`t-2FpAz`SLjSGf_YxkshcX*)~7=;A;%H@LQ#N0D)8cq3Ml2!Qs#v)_l{D$j3s!Jq%ii>YN`IuaMMf}1 zZ*}hWRP>JfAVbW3XaoqCrtrWmZGSrmW~dAl2E-->G4t!BoStlA--B?;M0Y^p{G1`7 zqf=fww-94HG0s3zz+zBO4!TMY|5)0`amWJ9f0~iZMUHd<^Xm&N;Eh6n0%$a=%oD&1 z>C&VgPgMf)@3QGP48be7YUamRXUnEL!SC!qYxY@xMjK=BOU7)b>+{a8o5DOe%BiPGg}RI_C;i?z_XO>UxVU2qVYk<7=N(iuP3X-ZZu;vOYo?tM zP}cWORx22(!GePJvy2}lkZ~Fb^jnEc0)#M7P{^d&#kiJKRph@v7$7h~c<`u?Fz9&S z9?aDBf6NrbY>fP_PQ~`;&YE<*D~!(v&YT{!MYc&DxZ6JJGp1X|0+$wz3N=>+&QS6Z zkZx_EDo}v}*^>|%UMIG;wI2Dv$7S;eZ=pWw<;U}8Rr`Gts^{MnxuPYbNyCk)V%}Cw ze{Yn^1_lF**M%|`=!kSOjIKFXy&8Co8!2GE@e=!+`FoI0&-nz(YoQnaG(z}YjoB;D zVf*^;@R_C}F?(&?jsn7zR>*uksgq!!6M#iUoC_!_1(JU&Z<^wgl32`-eM${eIMmBU z8PFllp!q8Mn%`w~(1dNzdkoYK(vC+Vr~;i?ch7Zlqtj^l`TI&NfO6g=Vhq#}0J%-o zww}sUzd-|y@60Ch-Suj1QoV?rJEH}xbSd=>BY<8GOE_!Wy%i$+_p!MMgdHNO6z@8% zUq~IbDa0}MKFa+NM8P*T^I~6ghVSW9M!S7nW#j0!U|L*ta-GP}W60}rb z0HWGp-eq|`AYCuJ#J(OCMZdRK01^(ES0`C;yYC-w?G_pX-m55qm^>$c%=-tyF6@&+ zOo-t$mA;k3s>_=sqNtd$-I z{B75NJo%qm*Z4Ef4k50K6>AnWeW`OPnvwMV>=;w;WMrzS>6f#7ogV@Uq%{v>a;NG~ zCo8hnjD6bBq7)leDYDRTNZ?;-m>(j#fK=$i#H6HR{hIupvIgTZ*unB{?L>ST59SPe z$+Ic;+d72c;|dwpQ=VWK7f!_WHOAJr5AK(ljl2Bhg3h4IDio#9x!7{(aCc(M6VwWq z6zf{o>-HwFHSh(yY%a`TARsT`e;*i_sI_I|b(qmLs4vZ*YY^8NPNOodiDbL|&3A5h z6o!ZDSk&tdGo6=*ee6=YxjDLVG@qogn`A!K??dhju#p>7%Lj{`^1L-1j85>|Y3$gF zXf)-d4Ww3bzJ9GZn_oU0-zh*nAbv7iuuLdO9qfWq8R4v8YPj&Ov#}Aq0(|RUWCe^U z`^cckunyu)n7CW6n=j9S;-JV2?QJq<@O6OD}5jA%?FNFwgP>=PEIVqNy_822S+XTL2w8%;4B5c zNXYCIq)AOtpv55!2B6a$yD?3~Gqo>}@-gQKD+G{hmv#fGO1J!*a5{6qgP4oSa7i3SsLE*lQoK6+$2#9RM3bMc7lL1(Td*l2pD3-V!9-Wgb; zr;pRjCL7IBt@c!U6fNp&EmH;v=-pho*Tb0arVJ3*FIp(q%4L!JT&BNjp#>K{+SuH*ySaj< z3Lg9WUmrvGC5$z2h_c+`CrkASBf&Z{NPy$z_m8iyVM<=x>7{&bU~m?;?lxZJ3Avlj zL|xR5;$w&4lZ3sG3jq_1MX9cFby%o->AA=!KRa6nZ8~wDtjrN;X{_dP^E1?!i%3do zf+m??tJK*$kAqgoysy5;)hoS>e50spY6!Zme=`W`6rAGdyu^L2OFfM@P-m~Z{YkZN zR)fHK-XMC&eMHDx_|~gP{uApD_9ev^rmecU8iBxqS^r}-@sKPa@wA)Y59j=+-Gv*^ zoq_P&VgyA(Sr0APPeigQkFo#d96WBM`wgV^rNBj!XFOD zr+D3|kl}4rz8Ha@Upb>m19oMd&3QG2yW zl*i7mH24gCvDAU&J4-HQ8Pok~*jGb1GFsHR`fp4`w0G1iqKVVKjf+uFmTkwsqR%xR zivW=g$%2e}CU&Qv+40zoYceGEnKu1SG?W&MYJ<=`%NZ^m56x)s;1pqQH&WAo6d z$C3eyK)_Hh`2c|!<>slf;w~@WUyo6rGxGeN>84qQRP8>4 z{EUa^V5C6xv1V3 zw7M>mcsD03AJlsD?=IbFK`Tc0%{yvsxJlFu<`{kJM+IO%&k2k?jhr()jh)k69FR6N z+QEeuylQ!Of1wp{Fry;|5WQ4Z9!nSEIo(XguQTtRhVd@(kqUAzPT4-1VOr2If|Nhq zw*areYJ>+q{3TjcWZLgXh-g|$*HTl6e9%%W&1KsfgvKsdg&LF&+> z&g-8C(gg)EeN0ZSfR;4aT>RegIfH8R!* zsN+(8Ls7e;=fS4+Zcqi-621RvOFnk^hdmR!csYCLF9n@0)%=;nHsY98A`@n{Ga)PK zz53Lo3itakrh#d?eMbvjXWTtCIxD-)efBYRf-)S!~5}(5i zH#{RxJlI9=y$}f^nlz*{%?LD$;AJ$k|v-8&tQ0A*C{G0)|n{j*d8vV zpx6^SFA8g-Qq&H=T_Zm`l3+(3 zpQt%In^rvC_@r59qizJT+w$VG9UrzLoht0B%e*Acn-QyDr4wUv z1-tL?Uu75*SP>HcV)}o*0yP`k1Z5$=BIw?b>rru~CPnsYhh&fJOnSTDbm%)e4vE}I z5*=NT#3@Q^_;Y#rmVGH85OdhnWHosl!P zxO1iz94v7t$!Zx|6y4(=tGE)>#fVRy%<_j@=NWsM<+tDP4|T77fmUy>s&gPQl{89F zf3&EHnkM}5>~Q9({NvvHlXVdJ{f;0 z^mJ!=x8;a&-qfqT*?m5DLS;xjOH8B1LnC9&^QUwH5kN_A7`Zt|Z*Wvp z?OW8&7z%j0f1$9vZbnK8LWv{C9cDe)*ESz;mm)d^yF1A#5s-5kR~B!YyiYh=zF5W> z`yHc-IAcR%%q!o=z~mWB#E55jfH>8!S^gofq7k8jPfl%THg(R%&$@cYG>i4!#pcbVfcodXxb?8p zJ4&sWru)*Gj2<-TQTQ!4MgHdKUP#7V>?$ftPCOAE;|VNTcE@Y8Fq{_m-DxfrRGDAEeDg38IvWM4z{Q4dEcqb#4+^-xN|&!ktb9cCWTW%9BiQyi(_t{b zs|E)X#PvT2Uusc;T@tc|!2K?5Xu3D06-^}$=?NRvwX?IvpopzOEvSpQ@D`G6M1DK? zVj-UpWV{CDy8m0r4 z@lyTe663bb-FX4!ehT8B!KezusRK@~kM6wL{H1{>IN>b<4#R)ZYNW52oG3 zua}S!)9hiDGTgC~H@|-aoN8&eHIg^ieuGNk_qrXl_`Marz372uy!&6XE^L+nceAW) z^HjM}&gF@<%~C5>t<4xMw6v+4@>O!FMa)1A>imF{^IVOJOOD8^;($M|$%8u^6(at5 z^Cobt_|II;T2t+`oo6l4J`Owsu%NP59yOY&^N1ewE4i4sQm$$_c_g~*`Q zlOz3rZcnqSEqSn0N+SNbQ^rwRZ{5any-7u{Rs~Esfc6{1b9r$#x5N zoR2>}Y_Z_={=?>>JMt(a5Ll_OG8BKNV3(cOPkq8V1!aGy6CogXGk#1@&sP;U0=tWN zPHKQ`=2g}gheZgN>FG%}hXXXW1qmg@8{lI*i&On#P3tBAJ6{?F-h`u^(R0VN{EF## zgiF$IlBV(H8$cVwRZJC5Q$RVq)@qow%&=*y-NXW0R?iH(3}S&@qga(aL-}KZY4pXq zD0a=sVNj9TkjbSm^U^$kMZOHIX9D2F^8W{lGGM&2wzlnyDgr|B=#b^WVh)+O{4WOx zXYRY#)c~{(yngDJ*eMu#kxq($T+F_r{J@~ut!9`rvs_hd_7%P#R^8JDb^d_@$;8-U z1ak(Q+O5G?HhWW94*AD!n3M~$=gWcd!tQgbAV@eH&`**FYM%NtnOU+h4qB@8mnlI-O>LOS47@7`@Sp)wP3SRfajOt=b-;jvi?a&2x1_8s~?z zyJK|OH?U8OgY*zK+tG1+GgetQEa0y)SpO5fDG<$6n$;Nx-pI6AY$^NxG>TUd7d2HB zA-w8L>}-71NYbugN-pK668!*C`yTx^h!_y<^%4ixt~AO@>Mi8qiJq5Lb%W!UKp+#{1fv*6<|^$8QI%^UF!X*YCfwuUwk#Pt^>w--sBGgJo> zEI1O`YlutFN3=`occHo+)2LJql}M+Rofj`#O7diSvHK{+@Gq9x*8$aNcjMFfgcNp0 zE`wq~tu=k?$YYDFI-*_{dSKSkLY#3wR0VmGY4}_nzODPvcJ`r7T*NbfrXUV-fZjAz z=dzC2l4n^q%m{n2rggTPXsJ3pT=P*6lw^!bdF{@f;Itw*p6xy@R}xeKjxvMHKR-zX zMyYa>|!s^Qc~_r(RwVlK?l6#0EA*t@ZePFQ5MS&6CQvd4%5fXOj{}~PUy+# zXdSh>-F$rq$o^S=3fa%$@e|^z^h^R_@`=etm-yT3tpK~F=gJoS?eeDketUf`0645S zx)h~yp|q;Ty1uDCs87%W4l0pf)~8RJ+>wF|481Q_=^^IkUr>6}5;EGx5I2VB>eyxj z^j~V$SQQCxXFpCmAW(zDs`(-;DPlI>e;X-PG>p>$KJo{hDo21r<7UFR(s-?YkU+LX zv_XCA>toFO&=a0<=Uy7^qW|r(?$f? z2@GI={Wq?1%d~Q~T%yZW19_WO^~Bi1Z9TdLc=(wjUbhWUu4S-i>B7%2ko&5f5JqAj z0L9Vo-@jL5vnKEE6j;w?a6tE;@FF?DY`I!25OOi{TS2vN;F@_+IPF`@Yw-RLRW6QjZpS$--|T*S7aWtvUBa`x7+0w4Cm@ThLQ z<1NaOuOwKVu|TXg{chvmdu0r*0vE%BgRE|arjmlK7X3tU--h?yE$lcWl|KdhN78J! zMytd@oZbPVK|3VIF`{*Tn8I%%*g%crwB$D$va<{QD@dgk2XIiF9?Zz9{zX zD7(!Q#lLW8d7VtKUw5v3i>2L(5tYo99Ex3Gn`L}ALRri`NBQ>i3=d&z=f$uH4d5OyubL>l2>V<5!v(k!`cRs5A65=eGxc_!?CoHEi|lV0s8l z=%RE1Y1X>awa5lNQwMvK%iocmGhxwq!?Xb8Km%yJr}BHStEu-^Kr2&M8XQ~%XW8E% zg&&Zzm}Yf{<6NIdU9I?Bx6V#-FA8Z&sKB--lwhy+B*I~9n0;h$4*$W{<|YAoKbacQ z?OaQA!>M%0!&%{#pyz2%$=UTFGiekHm8*BRUW)Qw*aatV&79@Yo%<>UVv2Oie&b#S zR7mvfXw<}hEtAUIFZVUsJW@kx?esb@u)V%Wh2@|HS8dgMpD?!Fz?d=KCvA6QR6I(I zKLCyo0&;7B-%_hS|Leekt3Sg4*_n1_h%t^D3(Gqv-xd~wr1GZ9MYbUSDKc6Q zOMAb;!LW+bwe)zkEx3~S5!1!Dk&o8_ZR*Pu2pQEZ*#a$7Kd&Bs-R*#}99bV3z^ot) z4B9pN3R};5W;*Mgm%qBK8&~T0Rm^h)!jt8`!_lZeN+2##k3e47o&2hsN=9WbWm}c> zeE&Rk<0TX0W{JCwT8}RyY?17}p7~YT`QFl08Pp-X;>+pwm)K&HjsTSr?%U)3O`nZ8 zfjTdjr1x?Z7IuRJ!0CMkAoAs0RZrSNZSSG1k(ovR0e?~oE!U#(Oq!H-+Y`u0w&etb3?wK+bdFT#Ca6M9E*vUOJ&M<=)U zQ3`9~iFG>BE&gk1U{~Ht02x<@cufwnnyXwv0@^`DlX*SQg+>>cVWKYww;1=JHTHoU za$k;6?}3hHfsZ{&>^KPJ<^?06_Bo0c>8+tB2=Fi;OOux#ZwyoiW`AutN;=EM(xHaQ zz#fhQVM*w#npdG!`{CbwDSfs?v;TCVQbqV9sUw21GbFxuh&#+P!jbJp&5u=|ueSKm zn+Fq}_kQ?~7C@_*^N-I@uR!zLFZ0eFM!JSB??r1X6AFl~NWS}SXApb&TGX7Rv>mP| z<=UWW8BuSD73>zQp^4%D?z6sEDFDJy*oXiMV)kCjn5vpyoA_4tYm@SR2xEP1cAqjq zZta{AR$p`l&M`xprL*aC+i`kC3!YO%3oa!9prIgeZ78qpAqDW860isdoFrusCR`Hu zTKo(diSLlQ7f-#4$N?|J{2L|v>df>~=L}gI$OEFpBxbJB20Z|Qf7(g`?)Lt^<{#Wx zGEt7XAmL2z{zm1)1H_z1I3!`L+PfaeeKNKn`0Vo=WOcOw>~4JI6*mjrJ6WpMUk2o| zB4h7OLSI=$e5PcODvtSa)}@Xs@c=>mKKxb0$E+9*oDC3#q(wx#xc}q9GH}r+eC%v2 zL=~qAlK7XeNStDH{;*FoU&+M}b6r$XgS$uY*)+PG40x?;Y6;W*FrDnjmXE;E0{R|K z*xG{9i!JbzfhbFzAOTGYo-g&%{4*%}50q>36O zwZtT`4W_vE!Za@0{hmJoWJap! zWejU=$aO#$SOyDkC~!HS?rC@-k**8;d8-%;%;uP{2lSX$$aosX+7ZD{wqBC_o@FU z)BX3In!yM={H-B>hlhaSXRcg5{xf_b_)lqXA;G`H=YbbyQ|^!XI|42!7l`5J4*SnL z>4A6Z*U0+Mnu0U=x6A}Q^_vbD{{MGNYVqdKZ}U~YU4JO1L5EWrf8Hw=0X;=`vIg~j zl>?|#N0QxKcDdbjAUb)@sBe%PSH zt}VVkkGaOc9cnlEqD;hX3;|xJ_Q?uUn<=K)P+|S#8L+0BVC~XV$w4W}-%sbq2#iWJ3ET=|Z(o;CZY}9P&f$cY1de$MuXHqiTx}>$GaDqD4d2 zul+Vrii>oHLflVNw)S$Du{4f6FtzEvhScERpFad}0IJnPfHP`eFvXQw9&TYWeQ~72 za{d9sef?*NyL^^TFXFm{O2pJK{Dp;Fdy(odM;#A7xIl-8vUWp9B30$xTaBI=;ops} z?!A@;_G-zD#rhuTez)b9uN)?JXHB--8kV42CsX#imF2tBwQ7w?1l%3h4vLTM8gwdZ zZnMcapBVl;f^K4wWi_z%N_8@UWBt_OL-q|kqm+K{j#2emL;RJy*4?sEexxt)5q#go zchl-nYdiuamB%8j2GBQN?T*xnEcRQwC)0Af9a*ceu47jVPY>%}!RidI zhowPjiBg%PZ*lqcUY6S#x)HQbOv$}*D$kgwHTVId88BE_JT`@4HQ4Ys-mtGl~+*K;E3DDc>4qNR8z%Ut*`}kc2KjtgDGTD5) zQQf&IGvf8yc5mK4Z5OUIvVa!hY8hW)IqIF3iII!SuD2_xx9~XsT)qovk8!ZobfLI; zWaT(LcqIOFNVTJ^qM;U=J;XJwP5fA`A_)^VDa50nRyJ~k9cZkoIyfnryj+IrETkS* zYnwe6GnHZvlA8qJ41f7>GgR~_Dd*)_5+4TdL1Zj1Y*CfZ-Lg29$}`;Q+Co0qMM8f* z*}e}>ceY>XTuVD6BbW8&Eoi^14CgD&NzWjwbyyO(a{I&1F(RV3wdfai>)~QjSBtH< zZmOQY-GFUY%YC-W70Y|E*oJu%z73i+;2_V1oILX= z{h1!yZ}Y9NqAvetw)y6k%-wiYHU@?uxtU)&wvS%1Yf|A~K%XY**Q1=g*Np%#>1q!c zO){TzoNqmkr}VbT^`LbBbm)I!PBC5AL|RFyi9Suq1&}N*cvD*PxSOuSq#x%~Uzbav z7}nb*s^VkT%Ohj4YyvC{da4Jit+gASf}e97BiqMk`m>-A47;K&q2#>?8m2;%1|mDt zoYw*Q??>6JwkMu`;axi*wDTJ0@Yx<4f_5Zw%r`Vtd~oO$6u!5g4-ne{Oo2I0ysI+3 z)K`Fr7nlk~!229DVso&!d&Q|rZuX$;wX!Y}LM(f{M>S(UK0l_fng(2&kCXP?pkwfX z#Y;;w-VHTiME$|cO;YBSR#%)HKVJriVw2@?*^%est3D}R_nDlA39a+)o}eh~xSJh! z&P?rM9vb90FZ&n-2KXhBru(8m@IS2(YKI9Ink(v!97o} z#WSbA?lReLBLz;rzd6?(@}ch&vsa4<3AzKxr7ts#LJIS>(wgGr6;JUCYzO)r_+~1; z%uOmzHJ|MzE?kzzBdsq`7(CtN5OrTBxl!{B3JBbya$A*et2Jpe88B&0vNLe`lWhq)BrRHmO&r5D+cyYGuAD;QdgZfaNW3pCxCG z(M{Ox?u$@O^K|SL_0>g)VTygM(jF>kD=Cm|tzg+f-5G~CkC~{5NMO?HJj05*zs706 zHBQd-x%_~Q*zT|vI(Xpy8S8LKQn_Z@rmtmmci=qmXG|soN*_P<(sL84wyVP1=T0?O zh9}vSZEitW4%!`RUUvF!9>pAE-1-%mf!d>^WfeTPZWWo0r`&v;#*a{q2dYwLYEB1+ zM(s~e4c#vf_?mC4yLKm0yKpOt5UGv_-tj3_a31B;1hzn?u@8$pqV-}1f@SkR z{0sE?+;;IY4BshzxjSNjOVs3H2_L@7@Q@a5W(HdwP^`ySPO`l|zlZx5Z%tMBT&ORY|0n~ZNf?dS21dU|nvc25i`To;Xe zt}FVB+degHTG_#?k4_H*jem-WPfc|t8y4gwlUIa52->U}Noq~KX9=P&NByrlgp~O% zl2F}8h5Vsq-m9if@2plB0Qv(!&}UkLTT^73eKOsdh^_V2iw2SWHD7nOe@;hQV2NZ_r~BB2N(l65$Q?-A`)u``<5|iR1=V5gXaKZF zyBDq#psDbI5}*9ZPQmOSU$agJ>|=L=(aE5zrQ$p7Ln_dqo4`8$z@^MQ_!7l!?IC%S zB&v~jhjF8GWwSu7dz2#Uql$l>*pJlUm0Xs8)^l3^QYp*0X%7{LCm0*gbASTXoy^V) zu4$^x?fvRTXFb*r64$`(3;WrZgVM(`RInY*bT}q%J;f!?9ngii9{Y@Ug%l%->Ur;2 z=S++LrDnAEimiWZa}ySo52Pvhn2u-9!1VgVt-L9Dw|hS$8Z|ZIdZ970B>d|nT(c~d zqezz{yELO@5IyST{CUsjW*DD?Mm0?QoQsGgD;I%65i4q$>^AE5s+;w!^*5y`{31oT zP~CCX_4wk&zdS@Ua80kb@0^3U=SA|9K2Yq_@1LeAiM%Ea_SU=5#|+#f>brx^r}@L& z0Y9xss31#^*BjBI97B)0<@tLqW<`0TDmVi}p9Z_2C6lF52X)??&O2+|v!fRnQJT{u zKjHP{6BZ^1It3@U1}di4wYOK-tY;T(D1EBwc_CyVnct=_M03Brf-1mY`a{X%n4=m( zkIUckMVWZ7J`p7xC+%D3bMcqUu*Pm{Ss!02H6stVTKx<>?{;umU&_+3%jaa5nK^{~ zav7Z`?fWEU*yE*<8PjyjDSDi2F*!2uM5jLV|7-89qq5w(zEMRG1O)`7Q&dVqr5gze z3F*EGK{}+{8$?t}S_wfqZ$Rk|fh|aPmvl)teCxV+_WSL<-{+6>&l%&KG4>uq$H2|C zVy?O7n)#cXJ+{_2W*5L8e*S|V&>hFnvz9t>^l8S})~j{?1v@9}X7Xk_T~8}tQ6q3% zEd{6II6=JwodcNc!`EkjfK3YklVr#UikIVy)(HWDy+4xMa2Izz-MmHF<3o2_=W^JF z#o|uwnNH_fO-$?n^U=Mr#fQ#s8 zqeU7u>pe|u&z=$Ld#U<(3&;fMJJnKG8-2jFP^(?^^T8I@jnCBxsLdu>7#RHIQ>77# z=+=>c%;2;~f3Dd;Du(xMmX^j)k%kuBWzyHm zzmi|3$SypUXQ&&;1t`#PK>^x5u=GM(zdvH?KA%;3oa%b<&bW<>n5MYndWm+P9`ZV6 zBfcqV8YmJ>6f11kx{50Xe@;zYrb(f&DHjtDT}m1W1LW$xQ2E|JgzohVUsf~Mm3s|#>45HE&S`n`nG%9MgSxsg+JHi`xG3B`x zq8XSlQOf?YZC)~V3q1MG;K^U|DYU5sPrjpQ#AC(keY9ECyz?`vYS(?jqdVv5dfQV7 z#~*ba7J8GPcUnL&gjOjUFq0PlO>g$dx}j$7QJ;Zd56-)VjAOEwn0S^aauf#(fwa8l z>&LAit0$yqjPTZWsjZcJGAa0!ePT$FYPp}e44f*PP zAE=~KW<%#*IYIS2ONBmq>6finaujwE9j2xCGpw~U^IK}NHH5Wui^MwyLETCEHxI74 zn6v^OEKG?@$PeIRh#O$jai}Y`%J%qP1A3?4Z1G+l-O+5d#?p@PTEEo>p_i{)tE_&` zVPZ{I%oFcyw_wE{*7JiD6kl>wiq|U)3?@s?(d82#pmwH~WGo(0un%rvuIFDpKC1S_ z`N3m$){<{FBr-8jp|7zV5|H0-j#>IFV&ph{2Y=+1JYZEi$RrVha^riD zp$Q+?#Z&U&CU6y9^C(h`%^%yj!Pjr zk&x;l6*3qjx3ZKpc`nAI=k*oWy573H+lI9x;1XIbF!BTJm|l~TVme#S#w&8poMr6R zmvoSy1bnI3*`aqdsBF&Gq0g-PNi}k??dZin&l;RqBq^^@uI^Lq@b)UPRs-GZnFF&3 zg8}Efld~(;J3mK{Of7Y8RO~40xt)np4SoHxJWwRc_efGFMxnPQzdAQVcp~cxTZPL0 z_{*>ErIxAu#|`K-YHyQ)7^?-RWjsU;#C_{TdKx06n-DLg*Y{q_a!;*p3SEnfMqGu5 z2;cP~Qu7>jc`rqFAui>O45}|H)HR6G8x}cliuY^?8!cX1z-)wW#0Y$i;wOs)a z0}u4MPvvoo^w7uf#`l+!B%= zmgWsKXdza%^GVFa^Mv{LkK!C>-2$?9C&>P|n>aR^KXUZ_N6rh&8OwaLzKp=go@uOv zm(5K4XLYz1`aFmwfdPvjrHSSZEsu(_=L~dwXG1HFfN!8TDSGknWV|R6_c8)<%oLD4 zz8-XCY2>7r#C^7qWM`tadD&q)s^a9txUbTfu>acw1=<&-&Zu*l$sn3M4XJkZk+8u< zn#QxF2>t;T>#Z5m67~!!=pp;<2Xs9eZ8~z3g3(|HtKgZ$d!d7Jowa%9aemphcn+DM z0(tdz0pjD!$Owd9@hByVu;aX%jnCy3u8rOfQo5V*-U1|z_JHoNk-~Tyr*y@*l8eVO zPW|b*54@;$j7gqshje0)Q+`@ND29GYS!>4~{81|;$*?aXdd!s#Y~z*U z)qwon&DZ&ymO35@p5qA>$FY|!UX*_NK+;m+c5%;Mu|sca_w{bZ*Fs|qB05WZf!#fB zkGR(2%wx|^_hT!$B|nur^_5BD?Fy}v-r%3syumwTu)AoGST$(SMHw7DO$kKfdmtK_ zIQ$VM8FjXZbTXRYzPFvkjOC-YTsvPUSH^(0O0(*|LX>gOe9o6Ic5{3`R@gdr{=Q;Q zNYHZjU}gla;LBGb0=up^1iyyj3M565f3K&ySARljvObonhU47@%0X5t^It5t+_fxj zB$y>{-`Ci0RP3@kS~VP~e}t5zN!w@*T>M=ZSRq9Ywm=G0W$wS)Vru(+b+T?FK88$Hf4( zIUKAptdDhJ=&}hzes>kS{$Sf|O`mTw!{P{q&A{&IX!L=h`QAFKcC{JG)KfrBrS?$$ z5piD68$IQOqqY9({cirv+g*N7Q?BA^%czza)~bPrD&Z7*hP&6E;bxXC{Vme^@R=q>)H}JNTLmX|#(O!k=DT z+9?WHVkUy^9OsHL!l4^5%ip}^w4Tru-+oD7OaXiwxcLlEpui?H5CZx%n~(82G)tW@ zAcYr^C%o>dM?m3A=&j4wYsZWTwFN66H z=Y;Sow+A?E`kAc)=0)MP3*WRe%#<@&jR^ENf=PEGTj#I8qaiu}1R5WS4m1#j4{t)e zxvJ|9b_dhM{6G=b+p|Nyi%8xt40!q{XZ%yw;qjtw+I=C(ds;n&32mSb__K`nN4qk( zfJtoLsB|A%Vh|eJb*F1VjYCtE*w8OQ|FDy6n9CLbbFrN?VE8Z1FLN?MO>8kq8WeeE zrk`q1im5Am$l4|hPZLH0rU|Y>gOy|a-zm_$rgN7K)csMCv`gQGR{ro}X)(jEt3dfL zP~sn5CUNinIBjPHZ|ox!b&C}Ftf*i>*_kId4t)XuN1&CJYs2^dglXzA`?4aREG!K1 zp$Mil4#VmuC>bbO$^wDCJ0C6%550mmiy1n+Na*lXl88XoGuW0DI6T9YU!sygDZB{T zL$$W>46~c9DGFdCqJmg}TblhIIYG}Ver6fCz)kH#^mo8qA3hF&IyZbf?K=N2Y{EtR~RsYsy47JI*3${o91+2QlWzsc!i|q z5F0g+QoqtZ43SC`tBj-XE=NdHR6QR|tybtnSZj%`K)?VHI~1&Ib11telMtjp#UdX= zymj*y%xje0aA%U$AZnx90!MMBxE3x$r3@O3}F8+z|w>* zKO8XOLP4CnT%a%#U6v4Dny&WBChXD`wZZ`R$e88(MUdF&F3>Mo4$DN?k@jOe4{kvY z^lk1OjJcTteGqgn6EqI$v-ZsHIrn{Q!5F3G%AIVhIUZgc@T( zLXV;P1W<$x4h0YpzKsH2@18+naM}=P6SE%^vtj87J3g=C+Nyzft&G`yH4qG1Mh8za z6m0oU8Cupm2Eg;Nu6d7x;dKcD>Z1HETt(51&@TuRT*!+QoHsy?2O|&>Kw|u9P}~Zmvc@@puB$sq-(Qf$9)@l{~)4e4tea>{S>Zdb~{loJ54cNrW#d zdLdSnV4D6bR{j+$|B97=#R|wp`B$v`tF8R2t^BL4{Hv|}YXtpk1pWWS2m+-uNKsKO zEv?o+{*X@61_4JS)Fpv4IV@r{s`*eX8>Dyw6gegqCcnfl4YaPc4O75dMFUC$Ng2;56`Qxi_Pf zPaQ`mOb>GQ1mu3>Y8&Fdfo7Tt0&b8;@^ji^*MjscAG8L73>{GYgCaqA zKHHx>|3J_c&@@y!__D&UW zOEe(R!q9*P9eKY+lJ)_*^V&#Sr^vZ(rx1_w%HV#N7^YB1I8l_e6UfM%mVC9y$y7J3Zy+67q^-u zEgC>=lW{+sdj@cJ$Sfw$h>I7(APwQ$OTwL zs${TV#y%?U6M*~zOP7#<%)r~X7Ls7AwuS__yu1j@wMEg4HFQE=(&KwvwsnTuD%|Jr zR>{$DQ32@qLj>4rcs$04Z$nW4@>DM?Ydb1>4* z9U^JnBtZAOJon4$TN;zFMtf|8)7haHr{iL=MNg_sl*I+bWaWQ$T+BiU&7wKS#{tg* zp~ZQP3$l@f)D6uIq^x3nSD@wMQUg^Yg#qKigIjZYpvN9nwpxz)DmKxR7r5wOqdwP2 z{P?kv>9H>lTBn>P8HbQ*rjb`b%!N`W{PqZD-|x`5(5t(_d0DhmmVmhsJfUs=^c>FR zyNm*8g@mAUVX)BR`Yo^D^#nS$`!9>FJ#1F730+>`GV|~Zqs`h9VR@!*cdVp=)>ks1 zsv_G_9=;+P6>h_zRs#4yk|EE`O^m6F?Ee2G>XqqppcxP9eAuGL_d*sGae4tT<`T*# z-Z;H6wFH65+>v4(sajfl&t_3t4Kgy8wac!yIdU;`N5_-4z0aOdWi5k_=h*|WRnO92 zvlmCwwR2Nv;IQ%jG$otV1aL^8H}@^#3%}H~smX=gClhiQN@4g$ zz&v-L0Nfxh@&xP{w>d&$qEo4{B%aVddZeNPU_*NqYqO$QJTi@2ELAfU;uhlt>pKXp z&kx_9RU7$gQq=xXKlyn5xDr>SsxI!h*sL}H9 zXgo6gIRIK{rK{(!e{o)WGqgH$`glBHjhPPr`uynqSuR;w_x6GJ`ndtr6*|=(G^UnP zgQ%`<*bkdE5D!a)lo1eHJ9MP^}d z@Xn=ih#d>-UUJAilL)Eo3iE62?CjZFLoh$uzNP0p{H|heq^<9(N#Ntr$n!kdcfU0n z#tI7-BRb$bBgY}>xbQc709V*hsaSk82mvTiL|f3|nigXy>sA4oBeKXY4Kjv1moeuhn)5^5;rKgm4}BJMwN+301D||ln~{y+GARL z0OZ3f;E{?dn~{h!Kk+EG8R!2+Uk;1?a=u|mCW`{}B8XrZ)6Xvm27&;4@+#kT!~nta zB(w0)rb#r*?7o~GcKVDQH3{_BoK{;5SbY$3%yU0b{C=|y|FU zLIA}4C%T?JQR}5Sbdo=)jkvby&E0>eh% zOXbXI+rp%p6^>b-L2EwHD-q3UWiKg~M?@Wz3FovL4)Z((WI~<#l+~RDshywogO^}o z!FCyeJ`<=iBGL<_- z&MAul!eHMw*u~9OeCT=wreZpLSx^yg~5=^B|@-)8RzSr~$)7ALFktJo8k-M_3ueW%UT%eF+Tesb7qc8R-p zheOY6_tqTBT!$cba2?ck-Z$HSLgUrS&8L7#eZX$He{WCdTcF&-z&T4kzEP{_&5VKd zNzKar0Z9^oZWmX|QYZ}{zMK`mJ{*mBTMh*peugnZcm9>=Q}B=(H+;roxXYpNS{>y| z<>25@{QQS=facBOs(B^WMiDl2s(xK~4bjg?{%Dsk;mXL+EIS6sZwr?IHq-82QiUm93_U&; zz&pw#=ULao2@)yMYFe;7Kh4K+^WhHi7ww9EFH@*Btzz}#L#N|}n~;_BVbooe;Toix z^AZo@FTkW@L_i_H6YT;Fm~?_rRMt4>C|LpILzrDf+-iu^I{{*Bbfk%Wl)S{!dVb~+ z5dRTTg+|}hywtML8J}`|%-GqPBc`s&yMn8k5ocSY%#h&d`3Kj2bh0aG_qN-o!mj;$ zY&QmgU-(yvP&7-?lKx~j+mDPaU7LQb<2ddl&guI5T@&^!Y%^$n+eCv_0&;?Yg!Q^C zNe8pyMKSi41RovJKDo%zYFqvjM+0Wc(kvSkcH z0~i?ZZ?SNC9xwt#4CT1OgAe3f{JAGo!vM-+BDMsmvaEuh8dUrzxp6iX5-;NI-OEk3 zO-X!y*JHYGHa#0D%1UTgs*ww(*k^MQ;r<;^_j!1ZWwkzF*4p&os!qr+qXgHPYm(Rt zFsY;?HsSn@SGF*z{3I`uCz7GMU$u1!eln!}?PBLcr}1LTn0tz6%@BW4a8o9AB-pC8 z#|F1fhOv6y#xELf$|9yz&`{{`;Gc^m2FgNhrb%0LT68Did|>+dVp7(e9T5S=-@l!$ zCf1o$f%)<(d+%Tm}G$UAYLlXDWT$^Ivhebct?QMnX*0^jxQL1P+^vSy%K}^AaA}xPi3gE|ya6S~^Ct>n02ryjd2=N{bnx}H71rmJ7RcU9EJBtf0zI!W zns!X%OifXx#X*zBzxOdumlQQtcxw65`j`Q#smR%ZaWLrvDa(N(ed{0^nu+f-3X!6Go{_1-Cy;K%C)}*4X~Kw+6Y&BbOx!V zoO011=&h)sW0YLjE}W;HI;LNluUp;B>wr>saeb?%soBK3M-VjULd0qjg`HM>TP9A9;2EYjPN zl5MyISeL)HpCk&Jy6;?i8 z#s8946r}Uodgs_F^p;l11hBiB6xs4EkRNFIBRmcD&})p9sU$}}j;6e|DCSD@$d`%y zSpI`>=2@5rDI-5@bJ3S9H7&^S|Jh$+utZsUB_?ys%Pj|LjKn2DRuFv}upIx$B z8xJPlNo*Bc4nCy0|1r>)4N>$2%cJV7+Vz^?KR|N>({Q8UKW2yF5NtW2u?^N6bCg zyqszSYeH~OhcN>c8AZ^nlz%7l;dqr>;Mv*!u=~m8V3D zAhQirBYR<5lT0UmWC5VvT7UlBLDC+sUN-+py7bXF+=1a*P=td%=`C1{lGaFmf|8{! zA!7kHyY8a}q01if2Jx4E-IxlH7WMHi<+xmFuD+=>?#W>^8OjVODeAzxk9A-IsZ`p`lY(?<{%2p=6;d zalyM_!Y!kQ+KV$7dsgY^Z9n({l4b+f?pG|H6r95L8v%Yg*S5=-1s;!_$VZMWZEbD6 z9vjv90W{v)I3($OPbpV_7nJV%Ezfkxn_^rEkqX>bBNLf9`%YuIvuNpfvN;ZP8P-z9 zk2%Nd9;)YuikKQCpMq)R^P3^zG;XFq2@AINH%+SeU7h^Bo|e|Y_7yJ?MfrILgK~@WaCeu#O*qClL z=+@=F_$8yr(~TaOa$!J2SyRU#V=9VSmCX|E8Z5~)3&;tI;pg=ht8}i;_VslvHs7WX zXt|Qf#^x`ZH7VwFsK5X4b4G#y&DP{TPyJq4?|I$l0J+|)y9bf?3OX=-sLy_#;463?fJ zo?FrGyGQS+U6b;!%pS><>!3Hw@UdQpQ|Rh6ygyL8NyvEJy_9|pQu32b!EGD->84nx z&#teVd%Q83`}5~q4e3BSx>cCGYH1yiiJlfm0q&=}7`V8j{G6*RU1h}ql4hFY4iO*M zo)85SA7!{AB;DMNxZBjT#c0XnR;UEdmg)}3_6yER(iKkAuFN*(7~V(J%An2W^UT}= z!toMXKU7;uwQL2a`AmrdJs3~o-5}-bx|t^biiOYp0FdM}zl**TzNJA}!8IZh61SSt zW7S8JY8+$Mt+~470+^aYw>DkCyoNnKnR60n|%_ zF>WSIMT7Xr-i9RjCC%iR7rNk$BEYFK0$hePL&=giHR9*WVwN)a*NWB*C#jl!UZI6a zE18hLmJw5XfSkVkb@L(mV`lvR2LCO8T)b_`4SoR*R7~Wt*k4A*3Ub4PRj)gF;7;}^ z$PZx>?{IkUbiX~?Vd}#mk!Yw92)antL_-eh%k>f}_6-abF5w16Y}4KZ4MhlB#9`9N z(2B~vzw;6O4ZKdJFJLtP`+^6xIFb50>yawoB{$Ao6b7LGc_&Sj^h^UN$xM^{7svYw z+j!#2#VEjc9bcqExQDz+8sK%6OazGg-@DKoWc!^3CIx<`rooc3`Gnx1=hH0fm-<*q zGstb&S1j6!vpU99y&Y2Il;b#T!c<$iYA^$ii10;wH24&`4BTQUHn$QeFN_x78(AfI z7~ZYCJ+CY!b+8{G1f@{nOH(0djF_;3ad6UzS(RVZ4ncvXnFD^d&>oqxG2G=CNXPOUw2>$xlfi5jp5a@T!e`IF<$A@sjJYk>k3mh0Gz*zAF zy?-dcXYrT6@O_Z995pL!S?a7yBbI3qiXrFR!>|S~Y6KQTxY9oG&&6QniQstz`tm40sDSl|0+x1vnF(SB=*Msb@N69}yuAq}2mZGquR#gK z|8EVz$fBgAlmr}3EG#T?=H})Wz3IX3yUTMp$h%8Xb*;FckFioAumWsFwo2HE@b^Wk zrit3vpwv;iS=OT^RDBjJgZcRi3H+eh&cH~GS0!lun035SD?&`LzcGmby+tyX`?4IA zR!r%@0g?kI&bEKf`oH%K?is)pwrq`LiWTuW6I-(kz@-8vnO%a<*&*<}2c|0|WN*&4 zx?&l+QrsXAmK_AJ>W)5sifM^KfS9Bd5DBKXo! zkZq=Y7)vJ|6FH~o#dC~PY&+8|4sW%v(!yq1Ek-z zAU_j*??aPz&|rj^IMH?HUB!CEitvUCvn<8l%Ct7El{8^~VLdsqh{_Uqr6lFra!0`4cRW_PHZsvHNjdcxMyh_88rCO{g38iKHU`mY-r!+1F; zXM3s_d+57UPk`AHm#T}2=R}2Dw06hIX~=GQxW|8ikJtHC-3{dPTf86ZT!G^!mftD+ z-qVlxIn*`38*p}qj6<2|>FG=2HfoMhz}=cQQt$% z$Wpi%E;24MpLn9WKk+nQwo{Ph)c8y76-rLq?V}#A4+Z|>^C^{}4b_LMK9l>WC8&g? zUU~2w9e*}l`{yN9WmJk}VRe_OuzkPtS=^7F3fE=hHdh|Y+_AgSdB@8SQ&V3$9`wAm zOl{M%)@2tn6!X6_FNR+8c*+26mQ|%e_`|0yn8s>^a#Ml)ON{@L+{gZS_uA=N&%TJX)%Gi~whh3UbLDP~JGrW}v{!ZIi3 zwK05YDWofAvsma1aPcn2J9Kn+eGv!pH(%3d7Il$+u(L`BKR7l!C*Y-5U?W zjg!8_4Lmu#c6-s)0@to48?otvaCV~WOG~KjJ`eYuFwgI zxeE_wbE)j9m-{0g^zdi26G(f2SP1-<3+4yEr}>vsBcSw-p{Cz^tHUY&I3yN8yu0rW zzc8*2$*1s#Eq-+3C{a`qm zXOJO|7SQVRd#N>FK=7cOH!*x{u$om4QD=)DE)8vVp(BCIeaB4CzUdaCqCgLy9P?JQ zm=fifNSg+BkvLtB-HR zxS2oCXXzTNeYj|Q_(UWB#!I|50rr)avoH;gSM-k3+}?13*RJ?aU-^=h;8jw zz6_qtGyfX)Uguo8M?<+f+#nR>FkX44Rr=|-OC7GpjZpHXWy65>PbT40nRrC&+Vnz) zuW|xUM;=izpC7#}&A{rAcsDDIkpmv7M;tl-f&TlSO-==(d3a%OO;VyyF5)L0D=lfn z$hKUid;Ez+N>8tZODA?ckm+zEw@h1S?Zd5X6j(yU^W-(8+vjz(DO_0py`3Z^nDt}olo>UXQKQI ze{4-&7LyA+xzY0tH!44I+4+`+Ea8*NUH?I~y(uHXJVIUs4jLM-&@n85>z@`zobFp625$N#WPfVE`~Z{-BrQD zwSpxy-!W7zM(H`)y%LX4&LA{W&{9?|7eGSI5A6Gm&^bGyuYs{2tNLmGd-d=*62~731HV+im0vN9zk% zLNsdFs}J56rK7GG)6i0S*W|pXx?js146s_Kv>=qdzlk6>YlUz=0}7~^_a>`I|Flf_>7IuUgg~; zTd!!D&gi?=tTW}}s-!I{F;1|7@|X1~Aw})FD{GI8oNHY>&bLK=vNEwTl`rZIs}pu7 z1=#P^1WvR^DO5Hi{d{7NB~1_-^~-Kp$k#aEfentRtpQEgQvd|9Mcu2**k^j=#GMHO zJjD1u2h#z|0Bjj39Z6@W$1yn3gt!e?Z(^ZSl9SAr%QtP~dbG%%Z#BvLybL`ibNK+I zVZ|I%KrMq@ZI$v-?Rz%&1^t%JwaP_35(Mc+&9ilvjc8)sosd!p+~RMvWxA(SB_AuG zM?Oa#oyQhwQ#<0tG#ZU}`8MjQPOawAEKTa<@r;b0_e@=V{Yx($eA0{|irW~@3_z5E zw1B<>L-7Q=hHC(JJcrY6N)$M(SAuyay7B<*56CoNah0$2J_Vgqo;xk|+{I8G_J21`KZG-I-48c@%tm)1?6w&CdF zs%sjM;%z;ly(F_=c%H@X>3$UIHQoC~Iioo|--~>Z;#RZ$oXOljwuYrjJ2erFqo>7f zT2-`tXQ|m1W@at1-rC-@aKAkb?{2boRm$%;{DzNiv#ouA80~dyBsc6-eS#Il* z#hqTo!Oub-MK9-MsoZ{rF|)A^FeG{=O9m1*IoEpZuU8z-$2kpXy;uV1(OEVGC5g*u zxW0pBBAY6YQsvjfd(J(S5t#MCl;knhx7NbG&Pzvl(^VJeHyjWId|#QoZ~mb0XPf?+ z%2K#@&li*E8x4zjG%~&SDh3Nnw@>57n$2GIeKkD6BPSq@Nf2BAC)a(zx~vhB=iYd^ zA-Lzny~iM+J|_NNu}y*PtZ*=2CyBf^hl+dGEwhynXa8Yq;o!qeiR&TOv`TKUQq%PN z2G3X$z|e(kH}Igx2-7_8ioLz4L0Oc{yAbctmn61C)3d-njfQ8L^bRpe zm$1Y<%~DJ6WUg(ha?`w%c%S9-`XiZjkjlq0?iT1MOHoR>Wgqfn{ddy_w=@G{E_*hx z$|}OE?MQ%@*X-k5>EZV{Doz1aYOj39rA^$_wrIMTVO6yWkSZrDKk!dyLfvI-E5vjw zr$)&5c}3s))1~)xJ!H67aN8a03e>dcX^ol_(=?)w(PX@BeirwHq3+MV5q*e_P7-$v z46~j2IJUT*Jb<-b7}(jLvp|3QxE!OuK`#1!w=V{c(b^q;mvu@UPrm_zdRA9Ktap=M z`{SB{?+T4unvX~@Z#9YGy#HE?OU3{Fh#1q*URzsxIHN37bPU}&H_TLoQD_Q#M!Th4 z`9RiO6j4gP^&s#q-t~E#m*+F(HY^X?t>02oCUT8buTWht-Fx9i7GIY2@itB)&rg?_%@6rCBAg;nXN8X4*VYm7uac5x zy0;k75UlvBhr|`1EW0##%YgaJ^61evOXDaz8_1zc7T<#vf4I?iqh)QLM_NQl!nR%T@(NbB^MC zUf`(wq!#5YgR!~g))aKRuB7!r2qt3N7MvH}Y@9QB-irPMfv+u_Tgi#$>c`tFz>%QKet}wrzH1V-*os-c0nA zc6{hqS$Hq6k&veLlA?+dWT&VSk>Zify!5cay7TT;XoOk5`1Gp(8KukJO%D{d{=Au1DxjeI2#X*zAE|*67W3wT%|z#JQX1E$&N+!fnsjDS9y5PN=4QY#lV? z*F_Jz287=(Uh(%*a1yw^&vy1^R4tX^HY@1KW*=TvPkQz5a#ggQkdf`fOG<+L!=Y;C z7=Fj!Os#x1qRM(28BV;d{iZ@x1ZCuTPQBkTFt}`qhi0Dx>;Z*=PlmcC7|FQa`xU;f zDJ;Gs&XT_|wblh{`xA$Sf4gXUWaWsogl=B0!_Cvx(j_O}&=IpUtQ_mq^{?tlJjV_C zrXHh8pKg`I}gOe#++ z|CkoPHeMSHUuPffdJ+Ac-&H}?#D3`j zwEnt#0Hr|x{T%}3+nkU~`_ZlIsc(SxG+1!$h0A|&r*Od8m>@MM>Fc*|{Uz2qkVUdQ zn2#WR(?NO@s~DJonHiz=|CE>D&C6l}jYczo%d1?k%?9*gfzsN5uh3?(9Te5hK*4+s zeRVht^tT7{Vx6yn$COvlp-K9GF9~K>WEqsu5fu~lUnYh}m Date: Sun, 20 Dec 2020 15:39:58 +0000 Subject: [PATCH 070/107] feat(fuzzy): update types, update compose - add new LVar types - remove combineTerms(), merge into compose() - remove implication(), merge into compose() - update compose() to return optimized fns - add intersect()/union() syntax sugar - update defuzz() --- packages/fuzzy/src/api.ts | 10 +++-- packages/fuzzy/src/combine.ts | 23 ----------- packages/fuzzy/src/defuzz.ts | 6 +-- packages/fuzzy/src/index.ts | 1 - packages/fuzzy/src/shapes.ts | 77 +++++++++++++++++++++-------------- 5 files changed, 57 insertions(+), 60 deletions(-) delete mode 100644 packages/fuzzy/src/combine.ts diff --git a/packages/fuzzy/src/api.ts b/packages/fuzzy/src/api.ts index 24a2b45880..320e1e957b 100644 --- a/packages/fuzzy/src/api.ts +++ b/packages/fuzzy/src/api.ts @@ -4,7 +4,11 @@ export type FuzzyFn = FnN; export type RuleOp = (x: number, a: FuzzyFn, b: FuzzyFn) => number; -export type DefuzzStrategy = Fn2; +export type DefuzzStrategy = Fn2; + +export type LVarDomain = [number, number]; + +export type LVarTerms = Record; export type LVarSet = Record>; @@ -30,11 +34,11 @@ export interface LVar { * defined sets. However, for precision and performance reasons, it's * recommended to keep this interval as compact as possible. */ - domain: [number, number]; + domain: LVarDomain; /** * Object of named fuzzy sets. */ - terms: Record; + terms: LVarTerms; } export interface Rule, O extends LVarSet> { diff --git a/packages/fuzzy/src/combine.ts b/packages/fuzzy/src/combine.ts deleted file mode 100644 index 55ce566790..0000000000 --- a/packages/fuzzy/src/combine.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { FnN2, Nullable } from "@thi.ng/api"; -import type { FuzzyFn } from "./api"; - -/** - * Takes an array of fuzzy set {@link FuzzyFn}, evaluates each with input `x` - * (skipping any nullish terms) and combines results using `op` (usually an - * S-norm / T-conorm operation, e.g. `max(a,b)`). Returns `initial` (default: 0) - * if no valid terms were processed (e.g. due to empty array or only null values) - * - * @remarks - * Also @see {@link compose}. - * - * @param op - * @param terms - * @param x - * @param initial - initial value - */ -export const combineTerms = ( - op: FnN2, - terms: Nullable[], - x: number, - initial = 0 -) => terms.reduce((acc, term) => (term ? op(acc, term(x)) : acc), initial); diff --git a/packages/fuzzy/src/defuzz.ts b/packages/fuzzy/src/defuzz.ts index 01d6c6376e..60c6367f27 100644 --- a/packages/fuzzy/src/defuzz.ts +++ b/packages/fuzzy/src/defuzz.ts @@ -1,7 +1,7 @@ import type { IObjectOf } from "@thi.ng/api"; import type { FuzzyFn, LVarSet, Rule } from "./api"; import { cogStrategy } from "./cog"; -import { compose, constant, implication, weighted } from "./shapes"; +import { constant, intersect, union, weighted } from "./shapes"; import { snormMax, tnormMin } from "./tnorms"; /** @@ -53,7 +53,7 @@ export const defuzz = , O extends LVarSet>( for (let id in r.then) { if (outs[id]) { const oterm = outs[id].terms[r.then[id]]; - terms[id] = implication( + terms[id] = intersect( imply, r.weight == 1 ? oterm : weighted(oterm, r.weight), aterm @@ -67,7 +67,7 @@ export const defuzz = , O extends LVarSet>( const res: Partial> = {}; for (let id in outs) { res[id] = strategy( - compose(combine, 0, ...ruleTerms.map((r) => r[id])), + union(combine, ...ruleTerms.map((r) => r[id]).filter((f) => !!f)), outs[id].domain ); } diff --git a/packages/fuzzy/src/index.ts b/packages/fuzzy/src/index.ts index abdd3cf17f..0301243532 100644 --- a/packages/fuzzy/src/index.ts +++ b/packages/fuzzy/src/index.ts @@ -1,6 +1,5 @@ export * from "./api"; export * from "./cog"; -export * from "./combine"; export * from "./defuzz"; export * from "./maxima"; export * from "./rules"; diff --git a/packages/fuzzy/src/shapes.ts b/packages/fuzzy/src/shapes.ts index ca27e6bffb..623828f59c 100644 --- a/packages/fuzzy/src/shapes.ts +++ b/packages/fuzzy/src/shapes.ts @@ -1,4 +1,4 @@ -import type { FnN2, FnU, FnU2, FnU3, FnU4, Nullable } from "@thi.ng/api"; +import type { FnN2, FnU, FnU2, FnU3, FnU4 } from "@thi.ng/api"; import { EPS, eqDelta, @@ -8,7 +8,6 @@ import { sigmoid as $sigmoid, } from "@thi.ng/math"; import type { FuzzyFn } from "./api"; -import { combineTerms } from "./combine"; /** * HOF {@link FuzzyFn} always yielding given `x` (should be in [0,1] @@ -149,32 +148,10 @@ export const invAlphaCut = (fn: FuzzyFn, alpha = 0.5): FuzzyFn => (x) => { }; /** - * Higher order function. Takes a T-norm and two {@link FuzzyFn}s. Returns new - * function which combines results of a(x) and b(x) using given T-norm - * implication. - * - * @example - * ```ts - * const f = implication(tnormMin, triangle(0,2,4), triangle(1,3,5)); - * f(1); // 0 - * f(2); // 0.5 - * f(3); // 0.5 - * f(4); // 0 - * ``` - * - * @param tnorm - * @param a - * @param b - */ -export const implication = (tnorm: FnN2, a: FuzzyFn, b: FuzzyFn): FuzzyFn => ( - x -) => tnorm(a(x), b(x)); - -/** - * Complex shape generator and a more generalized version of - * {@link implication}. Takes a T-norm (or S-norm) as reduction function `op` - * and any number of {@link FuzzyFn}s. Returns new `FuzzyFn` which evaluates all - * given `fns` and combines/reduces their results with `op`. + * Higher order function, complex shape generator. Takes a T-norm (or S-norm) as + * reduction function `op` and any number of {@link FuzzyFn}s. Returns new + * `FuzzyFn` which evaluates all given `fns` and combines/reduces their results + * with `op`. * * @remarks * Depending on the use case and choice of `op`, the `initial` value should @@ -190,6 +167,15 @@ export const implication = (tnorm: FnN2, a: FuzzyFn, b: FuzzyFn): FuzzyFn => ( * * @example * ```ts + * const f = compose(tnormMin, 1, triangle(0,2,4), triangle(1,3,5)); + * f(1); // 0 + * f(2); // 0.5 + * f(3); // 0.5 + * f(4); // 0 + * ``` + * + * @example + * ```ts * // M-like shape w/ peaks at 3 & 5 * const M = compose( * Math.max, @@ -210,5 +196,36 @@ export const implication = (tnorm: FnN2, a: FuzzyFn, b: FuzzyFn): FuzzyFn => ( export const compose = ( op: FnN2, initial: number, - ...fns: Nullable[] -): FuzzyFn => (x) => combineTerms(op, fns, x, initial); + ...fns: FuzzyFn[] +): FuzzyFn => { + const [a, b] = fns; + switch (fns.length) { + case 0: + throw new Error("no fuzzy sets given"); + case 1: + return a; + case 2: + return (x) => op(a(x), b(x)); + default: + return (x) => fns.reduce((acc, f) => op(acc, f(x)), initial); + } +}; + +/** + * Syntax sugar for {@link compose} with an initial value of 1.0. The `op` is + * supposed to be a T-norm. + * + * @param op + * @param fns + */ +export const intersect = (op: FnN2, ...fns: FuzzyFn[]) => + compose(op, 1, ...fns); + +/** + * Syntax sugar for {@link compose} with an initial value of 0.0. The `op` is + * supposed to be a S-norm. + * + * @param op + * @param fns + */ +export const union = (op: FnN2, ...fns: FuzzyFn[]) => compose(op, 0, ...fns); From bee9cd08b32ce43cc6661146dd87f35db9516559 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 20 Dec 2020 15:42:31 +0000 Subject: [PATCH 071/107] feat(fuzzy-viz): add/update viz options, fix zero marker --- packages/fuzzy-viz/src/api.ts | 62 +++++++++++++++++++++++++++++++ packages/fuzzy-viz/src/var.ts | 69 ++++++++++++++++------------------- 2 files changed, 94 insertions(+), 37 deletions(-) create mode 100644 packages/fuzzy-viz/src/api.ts diff --git a/packages/fuzzy-viz/src/api.ts b/packages/fuzzy-viz/src/api.ts new file mode 100644 index 0000000000..400b71da5b --- /dev/null +++ b/packages/fuzzy-viz/src/api.ts @@ -0,0 +1,62 @@ +import type { Fn, Fn3 } from "@thi.ng/api"; +import type { FuzzyFn, LVarDomain } from "@thi.ng/fuzzy"; + +export type InstrumentFn = Fn3; + +export interface AsciiVizOpts { + /** + * Width in characters + * + * @defaultValue 100 + */ + width: number; + /** + * Height in characters + * + * @defaultValue 16 + */ + height: number; + /** + * Char to use for empty space + * + * @defaultValue "." + */ + empty: string; +} + +export interface VizualizeVarOpts { + /** + * Number of samples to evaluate for each fuzzy set. + * + * @defaultValue 200 + */ + samples: number; + /** + * Visualization width + * + * @defaultValue 600 + */ + width: number; + /** + * Visualization height + * + * @defaultValue 100 + */ + height: number; + /** + * If true, includes a legend of color coded labels of the fuzzy sets. + * + * @defaultValue true + */ + labels: boolean; + /** + * Color factory function. Converts number in [0..1) interval into an CSS + * color string. + */ + stroke: Fn; + /** + * Color factory function. Converts number in [0..1) interval into an CSS + * color string. + */ + fill: Fn; +} diff --git a/packages/fuzzy-viz/src/var.ts b/packages/fuzzy-viz/src/var.ts index 570422dc3d..2eb977189f 100644 --- a/packages/fuzzy-viz/src/var.ts +++ b/packages/fuzzy-viz/src/var.ts @@ -1,26 +1,8 @@ import type { LVar } from "@thi.ng/fuzzy"; import { serialize } from "@thi.ng/hiccup"; import { convertTree, svg } from "@thi.ng/hiccup-svg"; -import { fit } from "@thi.ng/math"; - -export interface VizualizeVarOpts { - /** - * Number of samples to evaluate for each fuzzy set. - */ - samples: number; - /** - * Visualization width - */ - width: number; - /** - * Visualization height - */ - height: number; - /** - * If true, includes a legend of color coded labels of the fuzzy sets. - */ - labels: boolean; -} +import { fit, inRange } from "@thi.ng/math"; +import type { VizualizeVarOpts } from "./api"; /** * Takes an {@link @thi.ng/fuzzy#LVar} and visualization options. Evaluates all @@ -35,24 +17,26 @@ export const varToHiccup = ( { domain: [min, max], terms }: LVar, opts: Partial = {} ) => { - const { samples, width, height, labels } = { + const { samples, width, height, labels, stroke: strokeFn, fill: fillFn } = { samples: 200, width: 600, height: 100, labels: true, + stroke: (x: number) => `hsl(${(x * 360) | 0},100%,40%)`, + fill: (x: number) => `hsla(${(x * 360) | 0},100%,50%,20%)`, ...opts, }; const keys = Object.keys(terms); const dt = (max - min) / samples; const ds = width / samples; - const dh = 360 / keys.length; + const dn = 1 / keys.length; const curves: any[] = []; const legend: any[] = []; for (let i = 0; i < keys.length; i++) { const id = keys[i]; const f = terms[id]; const y = (i + 1) * 12; - const stroke = `hsl(${(i * dh) | 0},100%,40%)`; + const stroke = strokeFn(i * dn); const curr: number[][] = []; for (let i = 0; i <= samples; i++) { curr.push([i * ds, (1 - f(min + i * dt)) * height]); @@ -62,7 +46,7 @@ export const varToHiccup = ( "polygon", { stroke, - fill: `hsla(${(i * dh) | 0},100%,50%,20%)`, + fill: fillFn(i * dn), }, curr, ]); @@ -92,21 +76,32 @@ export const varToHiccup = ( }, ...curves, ...legend, + inRange(zero, width * 0.05, width * 0.95) + ? [ + "g", + {}, + [ + "line", + { + stroke: "black", + dash: [1, 1], + }, + [zero, 0], + [zero, height], + ], + [ + "text", + { align: "center", fill: "black" }, + [zero, height + 10], + "0.00", + ], + ] + : null, [ "g", - { fill: "black", translate: [0, height + 10] }, - [ - "line", - { - stroke: "black", - dash: [2, 2], - }, - [zero, 0], - [zero, height], - ], - ["text", {}, [0, 0], min.toFixed(2)], - ["text", { align: "center" }, [zero, 0], "0.00"], - ["text", { align: "end" }, [width, 0], max.toFixed(2)], + { fill: "black" }, + ["text", {}, [0, height + 10], min.toFixed(2)], + ["text", { align: "end" }, [width, height + 10], max.toFixed(2)], ] ); }; From 131d13776735e3dd222090a6b514bfbe4878d9f2 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 20 Dec 2020 15:47:51 +0000 Subject: [PATCH 072/107] feat(fuzzy-viz): add/update instrumentStrategy() & co - add fuzzySetToHiccup/Svg/Ascii() instrumentation fns - add docs --- packages/fuzzy-viz/src/strategy.ts | 133 +++++++++++++++++++++++++---- 1 file changed, 116 insertions(+), 17 deletions(-) diff --git a/packages/fuzzy-viz/src/strategy.ts b/packages/fuzzy-viz/src/strategy.ts index 9a39647297..b2b4b015f2 100644 --- a/packages/fuzzy-viz/src/strategy.ts +++ b/packages/fuzzy-viz/src/strategy.ts @@ -1,28 +1,127 @@ -import type { DefuzzStrategy } from "@thi.ng/fuzzy"; +import type { Fn3, IClear, IDeref } from "@thi.ng/api"; +import { DefuzzStrategy, FuzzyFn, LVarDomain, variable } from "@thi.ng/fuzzy"; +import { serialize } from "@thi.ng/hiccup"; +import { convertTree } from "@thi.ng/hiccup-svg"; import { fit } from "@thi.ng/math"; +import { repeat } from "@thi.ng/strings"; import { barChartHStr } from "@thi.ng/text-canvas"; +import type { AsciiVizOpts, InstrumentFn, VizualizeVarOpts } from "./api"; +import { varToHiccup } from "./var"; -export interface VisualizeStrategyOpts { - samples: number; - height: number; -} - -export const instrumentStrategy = ( +/** + * Higher order function. Takes an existing {@link @thi.ng/fuzzy#DefuzzStrategy} + * and an intrumentation function. Returns new `DefuzzStrategy` which first + * executes original `strategy`, then calls `instrument` with the same args AND + * the computed result obtained from `strategy`. Returns result of original + * `strategy`. + * + * @remarks + * The instrumentation function is intended to perform side effects (e.g. debug + * outputs) and/or produce secondary results (e.g. visualizations). The latter + * can be obtained through the {@link @thi.ng/api#IDeref} mechanism implemented + * by the returned function. Since {@link defuzz} might call the strategy + * multiple times (i.e. if there are multiple output vars used), `.deref()` will + * always return an array of secondary results. + * + * Note: The secondary results from the instrumentation function will persist & + * accumulate. If re-using the intrumented strategy for multiple `defuzz()` + * invocations, it's highly recommended to clear any previous results using + * `.clear()`. + * + * @example + * ```ts + * const strategy = instrumentStategy( + * cogStrategy({ samples: 1000 }), + * fuzzySetToAscii({ width: 40, height: 8 }) + * ); + * + * strategy(gaussian(5, 2), [0, 10]); + * // 4.995 + * + * console.log(strategy.deref()[0]) + * // .................▄▆█|█▆▄................. + * // ...............▅████|████▅............... + * // .............▄██████|██████▄............. + * // ...........▂▇███████|███████▇▂........... + * // ..........▅█████████|█████████▅.......... + * // .......▁▅███████████|███████████▅▁....... + * // .....▃▆█████████████|█████████████▆▃..... + * // ▃▄▅▇████████████████|████████████████▇▅▄▃ + * // ^ 5.00 + * + * // cleanup (optional) + * strategy.clear(); + * ``` + * + * @param strategy + * @param instrument + */ +export const instrumentStrategy = ( strategy: DefuzzStrategy, - opts: Partial = {} -): DefuzzStrategy => (fn, domain) => { - const { samples, height } = { samples: 100, height: 16, ...opts }; - const res = strategy(fn, domain); + instrument: Fn3 +) => { + const acc: T[] = []; + const impl: DefuzzStrategy & IClear & IDeref = (fn, domain) => { + const res = strategy(fn, domain); + acc.push(instrument(fn, domain, res)); + return res; + }; + impl.clear = () => (acc.length = 0); + impl.deref = () => acc; + return impl; +}; + +export const fuzzySetToHiccup = ( + opts?: Partial +): InstrumentFn => (fn, domain, res) => { + const tree = varToHiccup(variable(domain, { main: fn }), { + labels: false, + stroke: () => "#333", + fill: () => "rgba(0,0,0,0.2)", + ...opts, + }); + const { width, height } = tree[1]; + const x = fit(res, domain[0], domain[1], 0, width); + tree.push([ + "g", + { translate: [x, 0] }, + ["line", { stroke: "red" }, [0, 0], [0, height - 12]], + [ + "text", + { align: "center", fill: "red" }, + [0, height - 2], + res.toFixed(2), + ], + ]); + return tree; +}; + +export const fuzzySetToSvg = ( + opts?: Partial +): InstrumentFn => (fn, domain, res) => + serialize(convertTree(fuzzySetToHiccup(opts)(fn, domain, res))); + +export const fuzzySetToAscii = ( + opts?: Partial +): InstrumentFn => (fn, domain, res) => { + const { width, height, empty } = { + width: 100, + height: 16, + empty: ".", + ...opts, + }; const [min, max] = domain; - const delta = (max - min) / samples; + const delta = (max - min) / width; const vals: number[] = []; for (let i = min; i <= max; i += delta) { vals.push(fn(i)); } - const chart = barChartHStr(height, vals, 0, 1).replace(/ /g, "."); const index = Math.round(fit(res, min, max, 0, vals.length)); - const legend = new Array(Math.max(index - 1, 0)).fill(" ").join("") + "^"; - console.log(chart); - console.log(legend); - return res; + let chart = barChartHStr(height, vals, 0, 1) + .split("\n") + .map((line) => line.substr(0, index) + "|" + line.substr(index + 1)) + .join("\n") + .replace(/ /g, empty); + const legend = repeat(" ", index) + "^ " + res.toFixed(2); + return chart + "\n" + legend; }; From 62ab90c3c7fe82bd7571869c33b2dccbe9669711 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 20 Dec 2020 15:48:28 +0000 Subject: [PATCH 073/107] build(fuzzy-viz): update deps & pkg meta --- packages/fuzzy-viz/package.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/fuzzy-viz/package.json b/packages/fuzzy-viz/package.json index 88ac032adf..31dfea68aa 100644 --- a/packages/fuzzy-viz/package.json +++ b/packages/fuzzy-viz/package.json @@ -1,7 +1,7 @@ { "name": "@thi.ng/fuzzy-viz", "version": "0.0.1", - "description": "Visualization & introspection utilities for @thi.ng/fuzzy", + "description": "Visualization, instrumentation & introspection utils for @thi.ng/fuzzy", "module": "./index.js", "main": "./lib/index.js", "umd:main": "./lib/index.umd.js", @@ -49,10 +49,12 @@ "typescript": "^4.1.3" }, "dependencies": { + "@thi.ng/api": "^6.13.4", "@thi.ng/fuzzy": "^0.0.1", "@thi.ng/hiccup": "^3.6.4", "@thi.ng/hiccup-svg": "^3.6.5", "@thi.ng/math": "^2.2.2", + "@thi.ng/strings": "^1.11.2", "@thi.ng/text-canvas": "^0.2.35" }, "files": [ @@ -61,11 +63,13 @@ "lib" ], "keywords": [ + "area plot", "ascii", "debug", "fuzzy", "hiccup", - "inspection", + "inspect", + "instrumentation", "logic", "svg", "typescript", From 11f4e082be15700e796617ea6100710052543ee2 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 20 Dec 2020 16:11:54 +0000 Subject: [PATCH 074/107] minor(fuzzy): cleanup tests --- packages/fuzzy/test/defuzz.ts | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/packages/fuzzy/test/defuzz.ts b/packages/fuzzy/test/defuzz.ts index 3f77197463..a9a9131503 100644 --- a/packages/fuzzy/test/defuzz.ts +++ b/packages/fuzzy/test/defuzz.ts @@ -145,19 +145,5 @@ describe("defuzz", () => { 15.00, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, ]; testStrategy("mean", meanOfMaximaStrategy(), meoMaResults); - - // console.log( - // defuzz( - // { food, service }, - // { tip }, - // rules, - // { - // food: 7.32, - // service: 7.83, - // }, - // trace(cogStrategy(), 16), - // tnormHamacher() - // ) - // ); }); }); From 3ab450a15abc7c84aeea28a351f3d17c6dfc9432 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 20 Dec 2020 16:12:35 +0000 Subject: [PATCH 075/107] test(fuzzy-viz): add basic test, update docs --- packages/fuzzy-viz/src/strategy.ts | 8 ++++---- packages/fuzzy-viz/test/index.ts | 24 +++++++++++++++++++++--- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/packages/fuzzy-viz/src/strategy.ts b/packages/fuzzy-viz/src/strategy.ts index b2b4b015f2..1eb68b4cfb 100644 --- a/packages/fuzzy-viz/src/strategy.ts +++ b/packages/fuzzy-viz/src/strategy.ts @@ -10,7 +10,7 @@ import { varToHiccup } from "./var"; /** * Higher order function. Takes an existing {@link @thi.ng/fuzzy#DefuzzStrategy} - * and an intrumentation function. Returns new `DefuzzStrategy` which first + * and an instrumentation function. Returns new `DefuzzStrategy` which first * executes original `strategy`, then calls `instrument` with the same args AND * the computed result obtained from `strategy`. Returns result of original * `strategy`. @@ -24,13 +24,13 @@ import { varToHiccup } from "./var"; * always return an array of secondary results. * * Note: The secondary results from the instrumentation function will persist & - * accumulate. If re-using the intrumented strategy for multiple `defuzz()` + * accumulate. If re-using the instrumented strategy for multiple `defuzz()` * invocations, it's highly recommended to clear any previous results using * `.clear()`. * * @example * ```ts - * const strategy = instrumentStategy( + * const strategy = instrumentStrategy( * cogStrategy({ samples: 1000 }), * fuzzySetToAscii({ width: 40, height: 8 }) * ); @@ -77,7 +77,7 @@ export const fuzzySetToHiccup = ( const tree = varToHiccup(variable(domain, { main: fn }), { labels: false, stroke: () => "#333", - fill: () => "rgba(0,0,0,0.2)", + fill: () => "#999", ...opts, }); const { width, height } = tree[1]; diff --git a/packages/fuzzy-viz/test/index.ts b/packages/fuzzy-viz/test/index.ts index 3e70a22a9e..ebbf847419 100644 --- a/packages/fuzzy-viz/test/index.ts +++ b/packages/fuzzy-viz/test/index.ts @@ -1,6 +1,24 @@ -// import * as assert from "assert"; -// import { } from "../src"; +import { cogStrategy, gaussian } from "@thi.ng/fuzzy"; +import * as assert from "assert"; +import { fuzzySetToAscii, instrumentStrategy } from "../src"; describe("fuzzy-viz", () => { - it("tests pending"); + it("strategy (ascii)", () => { + const strategy = instrumentStrategy( + cogStrategy({ samples: 1000 }), + fuzzySetToAscii({ width: 40, height: 8 }) + ); + assert.strictEqual(strategy(gaussian(5, 2), [0, 10]), 4.995); + assert.deepStrictEqual(strategy.deref(), [ + `.................▄▆█|█▆▄................. +...............▅████|████▅............... +.............▄██████|██████▄............. +...........▂▇███████|███████▇▂........... +..........▅█████████|█████████▅.......... +.......▁▅███████████|███████████▅▁....... +.....▃▆█████████████|█████████████▆▃..... +▃▄▅▇████████████████|████████████████▇▅▄▃ + ^ 5.00`, + ]); + }); }); From db9efbcd4f6291b6ab83deac6ec960baa9631b7a Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 20 Dec 2020 16:13:35 +0000 Subject: [PATCH 076/107] docs(fuzzy): update readme's/asets --- assets/fuzzy/strategy-viz.svg | 1 + ...rature-lvar.svg => temperature-lvar-2.svg} | 2 +- packages/fuzzy-viz/README.md | 60 +++++++++++++++++-- packages/fuzzy-viz/tpl.readme.md | 54 ++++++++++++++++- packages/fuzzy/README.md | 18 +++--- packages/fuzzy/tpl.readme.md | 14 +++-- 6 files changed, 128 insertions(+), 21 deletions(-) create mode 100644 assets/fuzzy/strategy-viz.svg rename assets/fuzzy/{temperature-lvar.svg => temperature-lvar-2.svg} (96%) diff --git a/assets/fuzzy/strategy-viz.svg b/assets/fuzzy/strategy-viz.svg new file mode 100644 index 0000000000..6577f83712 --- /dev/null +++ b/assets/fuzzy/strategy-viz.svg @@ -0,0 +1 @@ +0.0010.006.27 \ No newline at end of file diff --git a/assets/fuzzy/temperature-lvar.svg b/assets/fuzzy/temperature-lvar-2.svg similarity index 96% rename from assets/fuzzy/temperature-lvar.svg rename to assets/fuzzy/temperature-lvar-2.svg index 66057fdb11..0497163553 100644 --- a/assets/fuzzy/temperature-lvar.svg +++ b/assets/fuzzy/temperature-lvar-2.svg @@ -1 +1 @@ -freezingcoldwarmhot-20.000.0040.00 \ No newline at end of file +freezingcoldwarmhot0.00-20.0040.00 \ No newline at end of file diff --git a/packages/fuzzy-viz/README.md b/packages/fuzzy-viz/README.md index 50a066cbf9..a0c621cc03 100644 --- a/packages/fuzzy-viz/README.md +++ b/packages/fuzzy-viz/README.md @@ -21,7 +21,7 @@ This project is part of the ## About -Visualization & introspection utilities for [@thi.ng/fuzzy](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy). +Visualization, instrumentation & introspection utils for [@thi.ng/fuzzy](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy). ### Status @@ -43,14 +43,16 @@ yarn add @thi.ng/fuzzy-viz ``` -Package sizes (gzipped, pre-treeshake): ESM: 794 bytes / CJS: 860 bytes / UMD: 984 bytes +Package sizes (gzipped, pre-treeshake): ESM: 1.04 KB / CJS: 1.12 KB / UMD: 1.23 KB ## Dependencies +- [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/develop/packages/api) - [@thi.ng/fuzzy](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy) - [@thi.ng/hiccup](https://github.com/thi-ng/umbrella/tree/develop/packages/hiccup) - [@thi.ng/hiccup-svg](https://github.com/thi-ng/umbrella/tree/develop/packages/hiccup-svg) - [@thi.ng/math](https://github.com/thi-ng/umbrella/tree/develop/packages/math) +- [@thi.ng/strings](https://github.com/thi-ng/umbrella/tree/develop/packages/strings) - [@thi.ng/text-canvas](https://github.com/thi-ng/umbrella/tree/develop/packages/text-canvas) ## API @@ -62,7 +64,7 @@ Package sizes (gzipped, pre-treeshake): ESM: 794 bytes / CJS: 860 bytes / UMD: 9 Generate an SVG visualization of all fuzzy sets defined in a [linguistic variable](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy#linguistic-variables): -![fuzzy set visualization of the example l-var](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/temperature-lvar.svg) +![fuzzy set visualization of the example l-var](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/temperature-lvar-2.svg) ```ts import { varToSvg } from "@thi.ng/fuzzy-viz"; @@ -82,11 +84,59 @@ const temp = variable( writeFileSync("temperature.svg", varToSvg(temp, { samples: 200 })); ``` -See [`VizualizeVarOpts`]() for further options to configure the visualization. +See +[`VizualizeVarOpts`](https://github.com/thi-ng/umbrella/blob/develop/packages/fuzzy-viz/src/api.ts) +for further options to configure the visualization. ### Instrument a DefuzzStrategy -TODO +`instrumentStrategy()` is an higher order function. It takes an existing +`DefuzzStrategy` and an instrumentation function. Returns new `DefuzzStrategy` +which first executes original `strategy`, then calls `instrument` with the same +args AND the computed result obtained from `strategy`. Returns result of +original `strategy`. + +The instrumentation function is intended to perform side effects (e.g. debug +outputs) and/or produce secondary results (e.g. visualizations). The latter can +be obtained through the `IDeref` mechanism implemented by the returned function. +Since `defuzz()` might call the strategy multiple times (i.e. if there are +multiple output vars used), `.deref()` will always return an array of secondary +results. + +**Note:** The secondary results from the instrumentation function will persist & +accumulate. If re-using the instrumented strategy for multiple `defuzz()` +invocations, it's highly recommended to clear any previous results using +`.clear()`. + +```ts +const strategy = instrumentStrategy( + cogStrategy({ samples: 1000 }), + fuzzySetToAscii({ width: 40, height: 8 }) +); + +// apply strategy as normal (well, usually done via defuzz()) +strategy(gaussian(5, 2), [0, 10]); +// 4.995 + +strategy.deref().forEach((viz) => console.log(viz)); +// .................▄▆█|█▆▄................. +// ...............▅████|████▅............... +// .............▄██████|██████▄............. +// ...........▂▇███████|███████▇▂........... +// ..........▅█████████|█████████▅.......... +// .......▁▅███████████|███████████▅▁....... +// .....▃▆█████████████|█████████████▆▃..... +// ▃▄▅▇████████████████|████████████████▇▅▄▃ +// ^ 5.00 + +// cleanup (optional) +strategy.clear(); +``` + +Using `fuzzySetToHiccup()`/`fuzzySetToSvg()` visualizations like below can be +created following the same pattern as above: + +![fuzzySetToSvg() visualization example](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/strategy-viz.svg) ## Authors diff --git a/packages/fuzzy-viz/tpl.readme.md b/packages/fuzzy-viz/tpl.readme.md index 9ee0e13b06..157b3807fa 100644 --- a/packages/fuzzy-viz/tpl.readme.md +++ b/packages/fuzzy-viz/tpl.readme.md @@ -42,7 +42,7 @@ ${docLink} Generate an SVG visualization of all fuzzy sets defined in a [linguistic variable](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy#linguistic-variables): -![fuzzy set visualization of the example l-var](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/temperature-lvar.svg) +![fuzzy set visualization of the example l-var](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/temperature-lvar-2.svg) ```ts import { varToSvg } from "@thi.ng/fuzzy-viz"; @@ -62,11 +62,59 @@ const temp = variable( writeFileSync("temperature.svg", varToSvg(temp, { samples: 200 })); ``` -See [`VizualizeVarOpts`]() for further options to configure the visualization. +See +[`VizualizeVarOpts`](https://github.com/thi-ng/umbrella/blob/develop/packages/fuzzy-viz/src/api.ts) +for further options to configure the visualization. ### Instrument a DefuzzStrategy -TODO +`instrumentStrategy()` is an higher order function. It takes an existing +`DefuzzStrategy` and an instrumentation function. Returns new `DefuzzStrategy` +which first executes original `strategy`, then calls `instrument` with the same +args AND the computed result obtained from `strategy`. Returns result of +original `strategy`. + +The instrumentation function is intended to perform side effects (e.g. debug +outputs) and/or produce secondary results (e.g. visualizations). The latter can +be obtained through the `IDeref` mechanism implemented by the returned function. +Since `defuzz()` might call the strategy multiple times (i.e. if there are +multiple output vars used), `.deref()` will always return an array of secondary +results. + +**Note:** The secondary results from the instrumentation function will persist & +accumulate. If re-using the instrumented strategy for multiple `defuzz()` +invocations, it's highly recommended to clear any previous results using +`.clear()`. + +```ts +const strategy = instrumentStrategy( + cogStrategy({ samples: 1000 }), + fuzzySetToAscii({ width: 40, height: 8 }) +); + +// apply strategy as normal (well, usually done via defuzz()) +strategy(gaussian(5, 2), [0, 10]); +// 4.995 + +strategy.deref().forEach((viz) => console.log(viz)); +// .................▄▆█|█▆▄................. +// ...............▅████|████▅............... +// .............▄██████|██████▄............. +// ...........▂▇███████|███████▇▂........... +// ..........▅█████████|█████████▅.......... +// .......▁▅███████████|███████████▅▁....... +// .....▃▆█████████████|█████████████▆▃..... +// ▃▄▅▇████████████████|████████████████▇▅▄▃ +// ^ 5.00 + +// cleanup (optional) +strategy.clear(); +``` + +Using `fuzzySetToHiccup()`/`fuzzySetToSvg()` visualizations like below can be +created following the same pattern as above: + +![fuzzySetToSvg() visualization example](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/strategy-viz.svg) ## Authors diff --git a/packages/fuzzy/README.md b/packages/fuzzy/README.md index 7a8654afce..12452854c8 100644 --- a/packages/fuzzy/README.md +++ b/packages/fuzzy/README.md @@ -64,7 +64,7 @@ Fuzzy logic operators & configurable rule inferencing engine. ### Support packages -- [@thi.ng/fuzzy-viz](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy-viz) - Visualization & introspection utilities for [@thi.ng/fuzzy](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy) +- [@thi.ng/fuzzy-viz](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy-viz) - Visualization, instrumentation & introspection utils for [@thi.ng/fuzzy](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy) ## Installation @@ -80,7 +80,7 @@ yarn add @thi.ng/fuzzy ``` -Package sizes (gzipped, pre-treeshake): ESM: 1.54 KB / CJS: 1.72 KB / UMD: 1.62 KB +Package sizes (gzipped, pre-treeshake): ESM: 1.61 KB / CJS: 1.79 KB / UMD: 1.70 KB ## Dependencies @@ -112,8 +112,7 @@ Combinators: - `negate()` - `weighted()` - `alphaCut()` / `invAlphaCut()` -- `implication()` -- `compose()` +- `compose()` / `intersect()` / `union()` ### Linguistic variables @@ -126,7 +125,7 @@ The package provides utilities to visualize the fuzzy sets of an L-var. ![fuzzy set visualization of the example -l-var](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/temperature-lvar.svg) +l-var](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/temperature-lvar-2.svg) ```ts // temperature sets (in celsius) @@ -233,12 +232,12 @@ defuzz( Note: The results are slightly different than those in the textbook example, due to different `gaussian` fuzzy sets used for the `service` L-var. -Using `instrumentStrategy` from the upcoming +Using `instrumentStrategy()` from the upcoming [@thi.ng/fuzzy-viz](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy-viz) package, we can also visualize the final, transformed fuzzy sets used to compute crisp results and highlight the position of the crisp result value. -Here is the result for the [COG +Here is the ASCII art output for the [COG strategy](https://github.com/thi-ng/umbrella/blob/develop/packages/fuzzy/src/cog.ts) and using `tnormMin` (the default) to transform each rule's output set(s): @@ -308,6 +307,11 @@ output sets, here using `tnormHamacher(2)`. ^ 22.95 ``` +Just for illustration purposes, SVG output can be obtained by merely switching +to another instrumentation function (here `fuzzySetToSvg()`): + +![fuzzySetToSvg() visualization example](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/strategy-viz.svg) + ## Authors Karsten Schmidt diff --git a/packages/fuzzy/tpl.readme.md b/packages/fuzzy/tpl.readme.md index 2e2549dc15..f3e64fbb1f 100644 --- a/packages/fuzzy/tpl.readme.md +++ b/packages/fuzzy/tpl.readme.md @@ -87,8 +87,7 @@ Combinators: - `negate()` - `weighted()` - `alphaCut()` / `invAlphaCut()` -- `implication()` -- `compose()` +- `compose()` / `intersect()` / `union()` ### Linguistic variables @@ -101,7 +100,7 @@ The package provides utilities to visualize the fuzzy sets of an L-var. ![fuzzy set visualization of the example -l-var](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/temperature-lvar.svg) +l-var](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/temperature-lvar-2.svg) ```ts // temperature sets (in celsius) @@ -208,12 +207,12 @@ defuzz( Note: The results are slightly different than those in the textbook example, due to different `gaussian` fuzzy sets used for the `service` L-var. -Using `instrumentStrategy` from the upcoming +Using `instrumentStrategy()` from the upcoming [@thi.ng/fuzzy-viz](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy-viz) package, we can also visualize the final, transformed fuzzy sets used to compute crisp results and highlight the position of the crisp result value. -Here is the result for the [COG +Here is the ASCII art output for the [COG strategy](https://github.com/thi-ng/umbrella/blob/develop/packages/fuzzy/src/cog.ts) and using `tnormMin` (the default) to transform each rule's output set(s): @@ -283,6 +282,11 @@ output sets, here using `tnormHamacher(2)`. ^ 22.95 ``` +Just for illustration purposes, SVG output can be obtained by merely switching +to another instrumentation function (here `fuzzySetToSvg()`): + +![fuzzySetToSvg() visualization example](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/strategy-viz.svg) + ## Authors ${authors} From c1ee15fdce2b08176c5bc97ba9ca7a56a84817c7 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 21 Dec 2020 13:24:29 +0000 Subject: [PATCH 077/107] feat(fuzzy): add/update/migrate defuzz strategies - move to /strategies subdir - make centroidStrategy() default - rename & optimize bisectorStrategy() - add docstrings w/ diagrams for all strats - update tests --- packages/fuzzy/package.json | 5 +- packages/fuzzy/src/api.ts | 16 +++ packages/fuzzy/src/cog.ts | 32 ----- packages/fuzzy/src/defuzz.ts | 6 +- packages/fuzzy/src/index.ts | 6 +- packages/fuzzy/src/maxima.ts | 65 ---------- packages/fuzzy/src/strategies/bisector.ts | 61 ++++++++++ packages/fuzzy/src/strategies/centroid.ts | 50 ++++++++ packages/fuzzy/src/strategies/maxima.ts | 138 ++++++++++++++++++++++ packages/fuzzy/src/strategies/opts.ts | 9 ++ packages/fuzzy/test/defuzz.ts | 56 ++++++--- 11 files changed, 321 insertions(+), 123 deletions(-) delete mode 100644 packages/fuzzy/src/cog.ts delete mode 100644 packages/fuzzy/src/maxima.ts create mode 100644 packages/fuzzy/src/strategies/bisector.ts create mode 100644 packages/fuzzy/src/strategies/centroid.ts create mode 100644 packages/fuzzy/src/strategies/maxima.ts create mode 100644 packages/fuzzy/src/strategies/opts.ts diff --git a/packages/fuzzy/package.json b/packages/fuzzy/package.json index 456670b246..e90aecf4aa 100644 --- a/packages/fuzzy/package.json +++ b/packages/fuzzy/package.json @@ -31,7 +31,7 @@ "build:check": "tsc --isolatedModules --noEmit", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib strategies", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", @@ -55,7 +55,8 @@ "files": [ "*.js", "*.d.ts", - "lib" + "lib", + "strategies" ], "keywords": [ "agent", diff --git a/packages/fuzzy/src/api.ts b/packages/fuzzy/src/api.ts index 320e1e957b..9a82b9368f 100644 --- a/packages/fuzzy/src/api.ts +++ b/packages/fuzzy/src/api.ts @@ -47,3 +47,19 @@ export interface Rule, O extends LVarSet> { then: LVarKeySet; weight: number; } + +export interface DefuzzStrategyOpts { + /** + * Number of samples/steps to use for integration of the fuzzy set. + * + * @defaultValue 100 + */ + samples: number; + /** + * Tolerance value (only used by some strategies, e.g. + * {@link meanOfMaximaStrategy}). + * + * @defaultValue 1e-6 + */ + eps: number; +} diff --git a/packages/fuzzy/src/cog.ts b/packages/fuzzy/src/cog.ts deleted file mode 100644 index 1a16dad22d..0000000000 --- a/packages/fuzzy/src/cog.ts +++ /dev/null @@ -1,32 +0,0 @@ -import type { DefuzzStrategy } from "./api"; - -export interface COGOpts { - samples: number; -} - -/** - * Higher-order function: Center-of-gravity defuzzification strategy, computing - * the integral of the given `fn` in the defined `[min,max]` domain. The domain - * is sampled at `opts.samples` uniformly spaced points. - * - * @param terms - * @param domain - */ -export const cogStrategy = (opts?: Partial): DefuzzStrategy => { - let { samples } = { samples: 100, ...opts }; - return (fn, [min, max]) => { - const delta = (max - min) / samples; - let sum: [number, number][] = []; - // integrate over given var's domain - // state: [x, sum(term(x))] - for (let i = 0, acc = 0; i <= samples; i++) { - const t = min + i * delta; - acc += fn(t); - sum[i] = [t, acc]; - } - if (!sum.length) return min; - const mean = sum[samples][1] * 0.5; - const idx = sum.findIndex((x) => x[1] > mean); - return idx > 0 ? (sum[idx - 1][0] + sum[idx][0]) * 0.5 : sum[0][0]; - }; -}; diff --git a/packages/fuzzy/src/defuzz.ts b/packages/fuzzy/src/defuzz.ts index 60c6367f27..45cdf76468 100644 --- a/packages/fuzzy/src/defuzz.ts +++ b/packages/fuzzy/src/defuzz.ts @@ -1,14 +1,14 @@ import type { IObjectOf } from "@thi.ng/api"; import type { FuzzyFn, LVarSet, Rule } from "./api"; -import { cogStrategy } from "./cog"; import { constant, intersect, union, weighted } from "./shapes"; +import { centroidStrategy } from "./strategies/centroid"; import { snormMax, tnormMin } from "./tnorms"; /** * Takes an object of input {@link variable}s, an object of output variable, * rule array and an object of input values. Evaluates relevant terms of input * variables in all matching rules, then combines and defuzzes them using given - * optional strategy (by default {@link cogStrategy} w/ its own default + * optional strategy (by default {@link centroidStrategy} w/ its own default * options). Returns object of computed output variable values. * * @remarks @@ -35,7 +35,7 @@ export const defuzz = , O extends LVarSet>( outs: O, rules: Rule[], vals: Partial>, - strategy = cogStrategy(), + strategy = centroidStrategy(), imply = tnormMin, combine = snormMax ) => { diff --git a/packages/fuzzy/src/index.ts b/packages/fuzzy/src/index.ts index 0301243532..3960cc99e2 100644 --- a/packages/fuzzy/src/index.ts +++ b/packages/fuzzy/src/index.ts @@ -1,8 +1,10 @@ export * from "./api"; -export * from "./cog"; export * from "./defuzz"; -export * from "./maxima"; export * from "./rules"; export * from "./shapes"; export * from "./tnorms"; export * from "./var"; + +export * from "./strategies/bisector"; +export * from "./strategies/centroid"; +export * from "./strategies/maxima"; diff --git a/packages/fuzzy/src/maxima.ts b/packages/fuzzy/src/maxima.ts deleted file mode 100644 index 3ea395635f..0000000000 --- a/packages/fuzzy/src/maxima.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { EPS, eqDelta } from "@thi.ng/math"; -import type { DefuzzStrategy } from "./api"; - -export interface MaximaOpts { - samples: number; - eps: number; -} - -const defaultOpts = (opts?: Partial): MaximaOpts => ({ - samples: 100, - eps: EPS, - ...opts, -}); - -export const meanOfMaximaStrategy = ( - opts?: Partial -): DefuzzStrategy => { - const { samples, eps } = defaultOpts(opts); - return (fn, [min, max]) => { - const delta = (max - min) / samples; - let peak = -Infinity; - let peakPos = min; - let n = 1; - for (let i = 0; i <= samples; i++) { - const t = min + i * delta; - const x = fn(t); - if (eqDelta(x, peak, eps)) { - peakPos += t; - n++; - } else if (x > peak) { - peak = x; - peakPos = t; - n = 1; - } - } - return peakPos / n; - }; -}; - -export const firstOfMaximaStrategy = ( - opts?: Partial -): DefuzzStrategy => { - const { samples } = defaultOpts(opts); - return (fn, [min, max]) => { - const delta = (max - min) / samples; - let peak = -Infinity; - let peakPos = min; - for (let i = 0; i <= samples; i++) { - const t = min + i * delta; - const x = fn(t); - if (x > peak) { - peak = x; - peakPos = t; - } - } - return peakPos; - }; -}; - -export const lastOfMaximaStrategy = ( - opts?: Partial -): DefuzzStrategy => { - const impl = firstOfMaximaStrategy(opts); - return (fn, [min, max]) => impl(fn, [max, min]); -}; diff --git a/packages/fuzzy/src/strategies/bisector.ts b/packages/fuzzy/src/strategies/bisector.ts new file mode 100644 index 0000000000..667261be0f --- /dev/null +++ b/packages/fuzzy/src/strategies/bisector.ts @@ -0,0 +1,61 @@ +import { fit } from "@thi.ng/math"; +import type { DefuzzStrategy, DefuzzStrategyOpts } from "../api"; +import { defaultOpts } from "./opts"; + +/** + * Higher-order function: Bisector-of-Area defuzzification strategy. Returns + * strategy which computes the integral of a given fuzzy set in the defined + * `[min,max]` domain and returns the position of the bisector which partitions + * the area into 2 equal halves. The domain is sampled at `opts.samples` + * uniformly spaced points. + * + * @remarks + * Use `samples` option to adjust precision. + * + * @see {@Link DefuzzStrategyOpts} + * + * @example + * ```ts + * bisectorStrategy()(trapezoid(0,1,5,6), [0,6]) + * // 2.97 + * + * // ......▁█████████████|█████████████▁..... + * // ......██████████████|██████████████..... + * // .....███████████████|███████████████.... + * // ....▇███████████████|███████████████▇... + * // ...▅████████████████|████████████████▅.. + * // ..▃█████████████████|█████████████████▃. + * // .▁██████████████████|██████████████████▁ + * // .███████████████████|███████████████████ + * // ^ 2.97 + * ``` + * + * @param opts + */ +export const bisectorStrategy = ( + opts?: Partial +): DefuzzStrategy => { + let { samples } = defaultOpts(opts); + return (fn, [min, max]) => { + const delta = (max - min) / samples; + let sum: number[] = []; + for (let i = 0, acc = 0; i <= samples; i++) { + acc += fn(min + i * delta); + sum.push(acc); + } + if (!sum.length) return min; + const mean = sum[samples] * 0.5; + for (let i = 1; i <= samples; i++) { + if (sum[i] >= mean) { + return fit( + mean, + sum[i - 1], + sum[i], + min + (i - 1) * delta, + min + i * delta + ); + } + } + return min; + }; +}; diff --git a/packages/fuzzy/src/strategies/centroid.ts b/packages/fuzzy/src/strategies/centroid.ts new file mode 100644 index 0000000000..0f1d7d2b4b --- /dev/null +++ b/packages/fuzzy/src/strategies/centroid.ts @@ -0,0 +1,50 @@ +import type { DefuzzStrategy, DefuzzStrategyOpts } from "../api"; +import { defaultOpts } from "./opts"; + +/** + * Higher-order function: Centre-of-gravity defuzzification strategy, yielding + * the approx. center of gravity position of a given fuzzy set. The domain is + * sampled at `opts.samples` uniformly spaced points. + * + * @remarks + * This is the default strategy used by {@link defuzz}. Produces similar results + * to {@link bisectorStrategy}, but with lower computational cost. Use `samples` + * option to adjust precision. + * + * @see {@Link DefuzzStrategyOpts} + * + * @example + * ```ts + * centroidStrategy()(trapezoid(0,1,5,6), [0,6]) + * // 3.0000000000000004 + * + * // ......▁█████████████|█████████████▁..... + * // ......██████████████|██████████████..... + * // .....███████████████|███████████████.... + * // ....▇███████████████|███████████████▇... + * // ...▅████████████████|████████████████▅.. + * // ..▃█████████████████|█████████████████▃. + * // .▁██████████████████|██████████████████▁ + * // .███████████████████|███████████████████ + * // ^ 3.00 + * ``` + * + * @param opts + */ +export const centroidStrategy = ( + opts?: Partial +): DefuzzStrategy => { + let { samples } = defaultOpts(opts); + return (fn, [min, max]) => { + const delta = (max - min) / samples; + let num = 0; + let denom = 0; + for (let i = 0; i <= samples; i++) { + const x = min + i * delta; + const y = fn(x); + num += x * y; + denom += y; + } + return num / denom; + }; +}; diff --git a/packages/fuzzy/src/strategies/maxima.ts b/packages/fuzzy/src/strategies/maxima.ts new file mode 100644 index 0000000000..684cd0b0d8 --- /dev/null +++ b/packages/fuzzy/src/strategies/maxima.ts @@ -0,0 +1,138 @@ +import { eqDelta } from "@thi.ng/math"; +import type { DefuzzStrategy, DefuzzStrategyOpts } from "../api"; +import { defaultOpts } from "./opts"; + +/** + * Higher-order function. Returns Mean-of-Maxima defuzzification strategy, + * yielding the approx. mean of the maximum region of a given fuzzy set. + * + * @remarks + * Use `samples` option to adjust precision. + * + * @see {@Link DefuzzStrategyOpts} + * + * @example + * ```ts + * meanOfMaximaStrategy()(trapezoid(0,1,5,6), [0,6]) + * // 3 + * + * // ......▁█████████████|█████████████▁..... + * // ......██████████████|██████████████..... + * // .....███████████████|███████████████.... + * // ....▇███████████████|███████████████▇... + * // ...▅████████████████|████████████████▅.. + * // ..▃█████████████████|█████████████████▃. + * // .▁██████████████████|██████████████████▁ + * // .███████████████████|███████████████████ + * // ^ 3.00 + * ``` + * + * @param opts + */ +export const meanOfMaximaStrategy = ( + opts?: Partial +): DefuzzStrategy => { + const { samples, eps } = defaultOpts(opts); + return (fn, [min, max]) => { + const delta = (max - min) / samples; + let peak = -Infinity; + let peakPos = min; + let n = 1; + for (let i = 0; i <= samples; i++) { + const t = min + i * delta; + const x = fn(t); + if (eqDelta(x, peak, eps)) { + peakPos += t; + n++; + } else if (x > peak) { + peak = x; + peakPos = t; + n = 1; + } + } + return peakPos / n; + }; +}; + +/** + * Higher-order function. Returns First-of-Maxima defuzzification strategy, + * yielding the approx. start position of the maximum region of a given fuzzy + * set. + * + * @remarks + * Use `samples` option to adjust precision. + * + * @see {@Link DefuzzStrategyOpts} + * + * @example + * ```ts + * firstOfMaximaStrategy()(trapezoid(0,1,5,6), [0,6]) + * // 1.02 + * + * // ......▁|██████████████████████████▁..... + * // ......█|███████████████████████████..... + * // .....██|████████████████████████████.... + * // ....▇██|████████████████████████████▇... + * // ...▅███|█████████████████████████████▅.. + * // ..▃████|██████████████████████████████▃. + * // .▁█████|███████████████████████████████▁ + * // .██████|████████████████████████████████ + * // ^ 1.02 + * ``` + * + * @param opts + */ +export const firstOfMaximaStrategy = ( + opts?: Partial +): DefuzzStrategy => { + const { samples } = defaultOpts(opts); + return (fn, [min, max]) => { + const delta = (max - min) / samples; + let peak = -Infinity; + let peakPos = min; + for (let i = 0; i <= samples; i++) { + const t = min + i * delta; + const x = fn(t); + if (x > peak) { + peak = x; + peakPos = t; + } + } + return peakPos; + }; +}; + +/** + * Higher-order function. Returns First-of-Maxima defuzzification strategy, + * yielding the approx. final position of the maximum region of a given fuzzy + * set. + * + * @remarks + * Use `samples` option to adjust precision. + * + * @see {@Link DefuzzStrategyOpts} + * + * @example + * ```ts + * lastOfMaximaStrategy()(trapezoid(0,1,5,6), [0,6]) + * // 1.02 + * + * // ......▁██████████████████████████|▁..... + * // ......███████████████████████████|█..... + * // .....████████████████████████████|██.... + * // ....▇████████████████████████████|██▇... + * // ...▅█████████████████████████████|███▅.. + * // ..▃██████████████████████████████|████▃. + * // .▁███████████████████████████████|█████▁ + * // .████████████████████████████████|██████ + * // ^ 4.98 + * ``` + * + * @param opts + */ +export const lastOfMaximaStrategy = ( + opts?: Partial +): DefuzzStrategy => { + const impl = firstOfMaximaStrategy(opts); + return (fn, [min, max]) => impl(fn, [max, min]); +}; diff --git a/packages/fuzzy/src/strategies/opts.ts b/packages/fuzzy/src/strategies/opts.ts new file mode 100644 index 0000000000..a2d6be0b87 --- /dev/null +++ b/packages/fuzzy/src/strategies/opts.ts @@ -0,0 +1,9 @@ +import type { DefuzzStrategyOpts } from "../api"; + +export const defaultOpts = ( + opts?: Partial +): DefuzzStrategyOpts => ({ + samples: 100, + eps: 1e-6, + ...opts, +}); diff --git a/packages/fuzzy/test/defuzz.ts b/packages/fuzzy/test/defuzz.ts index a9a9131503..af0dbed00d 100644 --- a/packages/fuzzy/test/defuzz.ts +++ b/packages/fuzzy/test/defuzz.ts @@ -1,7 +1,9 @@ -import { eqDelta } from "@thi.ng/math"; -import * as assert from "assert"; +import { assert } from "@thi.ng/api"; +import { fuzzySetToAscii, instrumentStrategy } from "@thi.ng/fuzzy-viz"; +import { eqDelta, roundTo } from "@thi.ng/math"; import { - cogStrategy, + bisectorStrategy, + centroidStrategy, defuzz, DefuzzStrategy, firstOfMaximaStrategy, @@ -66,14 +68,13 @@ describe("defuzz", () => { outputs, rules, { food: i, service: j }, - // trace(strategy) strategy ); assert( - eqDelta(res.tip!, expected[k]), + eqDelta(roundTo(res.tip!, 0.01), expected[k]), `${id}(${i},${j}): expected: ${expected[k]}, got: ${res.tip}` ); - // all.push(res.tip.toFixed(2)); + // all.push(res.tip!.toFixed(2)); } } // for (let i = 0; i <= 10; i++) { @@ -83,20 +84,37 @@ describe("defuzz", () => { }; // prettier-ignore - const cogResults = [ - 4.95, 4.95, 5.55, 7.05, 8.85, 10.35, 10.35, 8.25, 8.25, 11.55, 14.85, - 4.95, 4.95, 5.55, 7.05, 8.85, 10.35, 10.35, 8.25, 8.25, 11.55, 14.85, - 4.95, 4.95, 6.15, 8.25, 12.15, 12.45, 12.45, 11.85, 13.05, 21.75, 22.35, - 4.95, 4.95, 6.45, 13.35, 14.55, 14.85, 15.15, 16.35, 23.25, 24.75, 24.75, - 4.95, 4.95, 6.45, 13.35, 14.55, 14.85, 15.15, 16.35, 23.25, 24.75, 24.75, - 4.95, 4.95, 6.45, 13.35, 14.55, 14.85, 15.15, 16.35, 23.25, 24.75, 24.75, - 4.95, 4.95, 6.45, 13.35, 14.55, 14.85, 15.15, 16.35, 23.25, 24.75, 24.75, - 4.95, 4.95, 6.45, 13.35, 14.55, 14.85, 15.15, 16.35, 23.25, 24.75, 24.75, - 7.35, 7.95, 16.65, 17.85, 17.25, 17.25, 17.55, 21.45, 23.55, 24.75, 24.75, - 14.85, 18.15, 21.45, 21.45, 19.35, 19.35, 20.85, 22.65, 24.15, 24.75, 24.75, - 14.85, 18.15, 21.45, 21.45, 19.35, 19.35, 20.85, 22.65, 24.15, 24.75, 24.75, + const centroidResults = [ + 5.08, 5.54, 7.02, 8.95, 9.91, 10.06, 10.32, 11.08, 13.18, 14.80, 15.00, + 5.08, 5.54, 7.02, 8.95, 9.91, 10.06, 10.32, 11.08, 13.18, 14.80, 15.00, + 5.08, 5.56, 7.52, 9.66, 10.62, 10.78, 11.07, 11.99, 14.41, 16.19, 16.42, + 5.08, 5.56, 7.79, 12.22, 14.46, 15.00, 15.54, 17.78, 22.21, 24.44, 24.92, + 5.08, 5.56, 7.79, 12.22, 14.46, 15.00, 15.54, 17.78, 22.21, 24.44, 24.92, + 5.08, 5.56, 7.79, 12.22, 14.46, 15.00, 15.54, 17.78, 22.21, 24.44, 24.92, + 5.08, 5.56, 7.79, 12.22, 14.46, 15.00, 15.54, 17.78, 22.21, 24.44, 24.92, + 5.08, 5.56, 7.79, 12.22, 14.46, 15.00, 15.54, 17.78, 22.21, 24.44, 24.92, + 13.58, 13.81, 15.59, 18.01, 18.93, 19.22, 19.38, 20.34, 22.48, 24.44, 24.92, + 15.00, 15.20, 16.82, 18.92, 19.68, 19.94, 20.09, 21.05, 22.98, 24.46, 24.92, + 15.00, 15.20, 16.82, 18.92, 19.68, 19.94, 20.09, 21.05, 22.98, 24.46, 24.92, ]; - testStrategy("cog", cogStrategy(), cogResults); + testStrategy("centroid", centroidStrategy(), centroidResults); + + // prettier-ignore + const bisectResults = [ + 4.87, 5.00, 5.53, 6.91, 8.88, 10.30, 10.50, 8.32, 8.32, 11.41, 14.85, + 4.87, 5.00, 5.53, 6.91, 8.88, 10.30, 10.50, 8.32, 8.32, 11.41, 14.85, + 4.87, 5.03, 6.12, 8.30, 12.14, 12.39, 12.43, 11.82, 13.06, 21.81, 22.31, + 4.87, 5.03, 6.39, 13.32, 14.68, 14.85, 15.02, 16.38, 23.31, 24.67, 24.83, + 4.87, 5.03, 6.39, 13.32, 14.68, 14.85, 15.02, 16.38, 23.31, 24.67, 24.83, + 4.87, 5.03, 6.39, 13.32, 14.68, 14.85, 15.02, 16.38, 23.31, 24.67, 24.83, + 4.87, 5.03, 6.39, 13.32, 14.68, 14.85, 15.02, 16.38, 23.31, 24.67, 24.83, + 4.87, 5.03, 6.39, 13.32, 14.68, 14.85, 15.02, 16.38, 23.31, 24.67, 24.83, + 7.39, 7.89, 16.64, 17.88, 17.27, 17.31, 17.56, 21.40, 23.58, 24.67, 24.83, + 14.85, 18.29, 21.38, 21.38, 19.20, 19.40, 20.82, 22.79, 24.17, 24.70, 24.83, + 14.85, 18.29, 21.38, 21.38, 19.20, 19.40, 20.82, 22.79, 24.17, 24.70, 24.83, + ]; + + testStrategy("bisect", bisectorStrategy(), bisectResults); // prettier-ignore const foMaResults = [ From 88c38a3f0142c9124dfcf55c48edfdd5430974e8 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 21 Dec 2020 13:33:08 +0000 Subject: [PATCH 078/107] docs(fuzzy): update readme --- packages/fuzzy/README.md | 122 +++++++++++++++++++--------------- packages/fuzzy/test/defuzz.ts | 12 +++- packages/fuzzy/tpl.readme.md | 120 ++++++++++++++++++--------------- 3 files changed, 144 insertions(+), 110 deletions(-) diff --git a/packages/fuzzy/README.md b/packages/fuzzy/README.md index 12452854c8..bc551c3f72 100644 --- a/packages/fuzzy/README.md +++ b/packages/fuzzy/README.md @@ -80,7 +80,7 @@ yarn add @thi.ng/fuzzy ``` -Package sizes (gzipped, pre-treeshake): ESM: 1.61 KB / CJS: 1.79 KB / UMD: 1.70 KB +Package sizes (gzipped, pre-treeshake): ESM: 1.63 KB / CJS: 1.81 KB / UMD: 1.74 KB ## Dependencies @@ -238,27 +238,38 @@ package, we can also visualize the final, transformed fuzzy sets used to compute crisp results and highlight the position of the crisp result value. Here is the ASCII art output for the [COG -strategy](https://github.com/thi-ng/umbrella/blob/develop/packages/fuzzy/src/cog.ts) +strategy](https://github.com/thi-ng/umbrella/blob/develop/packages/fuzzy/src/strategy/centroid.ts) and using `tnormMin` (the default) to transform each rule's output set(s): +```ts +// wrap existing strategy +const strat = instrumentStrategy(centroidStrategy(), fuzzySetToAscii()); + +// call defuzz as normal +defuzz(inputs, outputs, rules, strat); + +// obtain secondary results via deref() +console.log(strat.deref()[0]); +``` + ```text -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -........................................................................▁▅▅|▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅..... -.......................................................................▁███|███████████████████▇.... -......................................................................▁████|████████████████████▇... -....................................▅▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▅....▂█████|█████████████████████▇.. -...................................▅█████████████████████████████▅..▂██████|███████████████████████. -..................................▅███████████████████████████████▅▂███████|████████████████████████ - ^ 22.65 +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅..... +.......................................................................▁|██████████████████████▇.... +......................................................................▁█|███████████████████████▇... +....................................▅▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▅....▂██|████████████████████████▇.. +...................................▅█████████████████████████████▅..▂███|██████████████████████████. +..................................▅███████████████████████████████▅▂████|███████████████████████████ + ^ 21.52 ``` Different results can be obtained by adjusting the @@ -266,49 +277,50 @@ Different results can be obtained by adjusting the output sets, here using `tnormHamacher(2)`. ```text -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|.....▃▂............... -.............................................................................|...▃███▆▂............. -.............................................................................|▁▅███████▇▃........... -................................................▁▃▆▃▁......................▁▄|████████████▆▃........ -...........................................▁▂▄▆███████▆▄▂▁..............▂▄▇██|███████████████▆▃▁.... -...................................▁▂▃▄▅▆▇█████████████████▇▆▅▄▃▂▁..▂▄▆██████|███████████████████▅▃▁ - ^ 23.55 +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.........▃▂............... +.........................................................................|.......▃███▆▂............. +.........................................................................|....▁▅███████▇▃........... +................................................▁▃▆▃▁....................|.▁▄▇████████████▆▃........ +...........................................▁▂▄▆███████▆▄▂▁..............▂|▇██████████████████▆▃▁.... +...................................▁▂▃▄▅▆▇█████████████████▇▆▅▄▃▂▁..▂▄▆██|███████████████████████▅▃▁ + ^ 21.84 ``` ...or using `tnormAczelAlsina(2)` (there're many more available): ```text -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|.▂▃▄▅▅▅▅▅▄▄▃▁.......... -..........................................................................▂▅|██████████████▆▄....... -........................................................................▃▇██|█████████████████▆▂.... -........................................▁▂▃▄▄▅▅▆▆▆▆▆▆▆▅▅▄▄▃▂▁.........▃█████|███████████████████▆▁.. -....................................▂▄▇███████████████████████▇▄▂....▆██████|█████████████████████▄. -..................................▃▇█████████████████████████████▇▃▂████████|██████████████████████▇ - ^ 22.95 +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|.....▂▃▄▅▅▅▅▅▄▄▃▁.......... +........................................................................|.▂▅▇██████████████▆▄....... +........................................................................|▇████████████████████▆▂.... +........................................▁▂▃▄▄▅▅▆▆▆▆▆▆▆▅▅▄▄▃▂▁.........▃█|███████████████████████▆▁.. +....................................▂▄▇███████████████████████▇▄▂....▆██|█████████████████████████▄. +..................................▃▇█████████████████████████████▇▃▂████|██████████████████████████▇ + ^ 21.58 ``` -Just for illustration purposes, SVG output can be obtained by merely switching -to another instrumentation function (here `fuzzySetToSvg()`): +Just for illustration purposes (and using a different example), SVG output can +be obtained by merely switching to another instrumentation function (here +`fuzzySetToSvg()`): ![fuzzySetToSvg() visualization example](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/strategy-viz.svg) diff --git a/packages/fuzzy/test/defuzz.ts b/packages/fuzzy/test/defuzz.ts index af0dbed00d..d3fc775575 100644 --- a/packages/fuzzy/test/defuzz.ts +++ b/packages/fuzzy/test/defuzz.ts @@ -1,5 +1,4 @@ import { assert } from "@thi.ng/api"; -import { fuzzySetToAscii, instrumentStrategy } from "@thi.ng/fuzzy-viz"; import { eqDelta, roundTo } from "@thi.ng/math"; import { bisectorStrategy, @@ -163,5 +162,16 @@ describe("defuzz", () => { 15.00, 24.90, 24.90, 24.90, 24.90, 15.00, 24.90, 24.90, 24.90, 24.90, 24.90, ]; testStrategy("mean", meanOfMaximaStrategy(), meoMaResults); + + // const strat = instrumentStrategy(centroidStrategy(), fuzzySetToAscii()); + // defuzz( + // inputs, + // outputs, + // rules, + // { food: 7.32, service: 7.83 }, + // strat, + // tnormAczelAlsina(2) + // ); + // console.log(strat.deref()[0]); }); }); diff --git a/packages/fuzzy/tpl.readme.md b/packages/fuzzy/tpl.readme.md index f3e64fbb1f..9888ca4570 100644 --- a/packages/fuzzy/tpl.readme.md +++ b/packages/fuzzy/tpl.readme.md @@ -213,27 +213,38 @@ package, we can also visualize the final, transformed fuzzy sets used to compute crisp results and highlight the position of the crisp result value. Here is the ASCII art output for the [COG -strategy](https://github.com/thi-ng/umbrella/blob/develop/packages/fuzzy/src/cog.ts) +strategy](https://github.com/thi-ng/umbrella/blob/develop/packages/fuzzy/src/strategy/centroid.ts) and using `tnormMin` (the default) to transform each rule's output set(s): +```ts +// wrap existing strategy +const strat = instrumentStrategy(centroidStrategy(), fuzzySetToAscii()); + +// call defuzz as normal +defuzz(inputs, outputs, rules, strat); + +// obtain secondary results via deref() +console.log(strat.deref()[0]); +``` + ```text -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -...........................................................................|........................ -........................................................................▁▅▅|▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅..... -.......................................................................▁███|███████████████████▇.... -......................................................................▁████|████████████████████▇... -....................................▅▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▅....▂█████|█████████████████████▇.. -...................................▅█████████████████████████████▅..▂██████|███████████████████████. -..................................▅███████████████████████████████▅▂███████|████████████████████████ - ^ 22.65 +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅..... +.......................................................................▁|██████████████████████▇.... +......................................................................▁█|███████████████████████▇... +....................................▅▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▅....▂██|████████████████████████▇.. +...................................▅█████████████████████████████▅..▂███|██████████████████████████. +..................................▅███████████████████████████████▅▂████|███████████████████████████ + ^ 21.52 ``` Different results can be obtained by adjusting the @@ -241,49 +252,50 @@ Different results can be obtained by adjusting the output sets, here using `tnormHamacher(2)`. ```text -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|...................... -.............................................................................|.....▃▂............... -.............................................................................|...▃███▆▂............. -.............................................................................|▁▅███████▇▃........... -................................................▁▃▆▃▁......................▁▄|████████████▆▃........ -...........................................▁▂▄▆███████▆▄▂▁..............▂▄▇██|███████████████▆▃▁.... -...................................▁▂▃▄▅▆▇█████████████████▇▆▅▄▃▂▁..▂▄▆██████|███████████████████▅▃▁ - ^ 23.55 +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.......................... +.........................................................................|.........▃▂............... +.........................................................................|.......▃███▆▂............. +.........................................................................|....▁▅███████▇▃........... +................................................▁▃▆▃▁....................|.▁▄▇████████████▆▃........ +...........................................▁▂▄▆███████▆▄▂▁..............▂|▇██████████████████▆▃▁.... +...................................▁▂▃▄▅▆▇█████████████████▇▆▅▄▃▂▁..▂▄▆██|███████████████████████▅▃▁ + ^ 21.84 ``` ...or using `tnormAczelAlsina(2)` (there're many more available): ```text -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|....................... -............................................................................|.▂▃▄▅▅▅▅▅▄▄▃▁.......... -..........................................................................▂▅|██████████████▆▄....... -........................................................................▃▇██|█████████████████▆▂.... -........................................▁▂▃▄▄▅▅▆▆▆▆▆▆▆▅▅▄▄▃▂▁.........▃█████|███████████████████▆▁.. -....................................▂▄▇███████████████████████▇▄▂....▆██████|█████████████████████▄. -..................................▃▇█████████████████████████████▇▃▂████████|██████████████████████▇ - ^ 22.95 +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|........................... +........................................................................|.....▂▃▄▅▅▅▅▅▄▄▃▁.......... +........................................................................|.▂▅▇██████████████▆▄....... +........................................................................|▇████████████████████▆▂.... +........................................▁▂▃▄▄▅▅▆▆▆▆▆▆▆▅▅▄▄▃▂▁.........▃█|███████████████████████▆▁.. +....................................▂▄▇███████████████████████▇▄▂....▆██|█████████████████████████▄. +..................................▃▇█████████████████████████████▇▃▂████|██████████████████████████▇ + ^ 21.58 ``` -Just for illustration purposes, SVG output can be obtained by merely switching -to another instrumentation function (here `fuzzySetToSvg()`): +Just for illustration purposes (and using a different example), SVG output can +be obtained by merely switching to another instrumentation function (here +`fuzzySetToSvg()`): ![fuzzySetToSvg() visualization example](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/fuzzy/strategy-viz.svg) From 22f37a526acd6911720100e77ad41029d8799004 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 21 Dec 2020 23:56:56 +0000 Subject: [PATCH 079/107] fix(fuzzy-viz): update imports --- packages/fuzzy-viz/test/index.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/fuzzy-viz/test/index.ts b/packages/fuzzy-viz/test/index.ts index ebbf847419..63f5aac0be 100644 --- a/packages/fuzzy-viz/test/index.ts +++ b/packages/fuzzy-viz/test/index.ts @@ -1,14 +1,15 @@ -import { cogStrategy, gaussian } from "@thi.ng/fuzzy"; +import { centroidStrategy, gaussian } from "@thi.ng/fuzzy"; +import { eqDelta } from "@thi.ng/math"; import * as assert from "assert"; import { fuzzySetToAscii, instrumentStrategy } from "../src"; describe("fuzzy-viz", () => { it("strategy (ascii)", () => { const strategy = instrumentStrategy( - cogStrategy({ samples: 1000 }), + centroidStrategy({ samples: 1000 }), fuzzySetToAscii({ width: 40, height: 8 }) ); - assert.strictEqual(strategy(gaussian(5, 2), [0, 10]), 4.995); + assert(eqDelta(strategy(gaussian(5, 2), [0, 10]), 5)); assert.deepStrictEqual(strategy.deref(), [ `.................▄▆█|█▆▄................. ...............▅████|████▅............... From c541afc4a7da4f3cb74682549e020a4754da0de3 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 09:18:52 +0000 Subject: [PATCH 080/107] docs: update username links --- CONTRIBUTING.md | 2 +- packages/transducers/tpl.readme.md | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 141588e232..25aa77066e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -314,7 +314,7 @@ If in doubt, please ask first... It has been [brought to my attention](https://github.com/thi-ng/umbrella/issues/154) (thanks to -@Bnaya) that exported `const enums` negatively interfere with some +[@Bnaya](https://github.com/Bnaya)) that exported `const enums` negatively interfere with some downstream workflows related to Babel transpilation and TypeScript's `isolatedModules` compilation feature. For that reason, that latter option is now enabled for all packages and exported `const enum`s are diff --git a/packages/transducers/tpl.readme.md b/packages/transducers/tpl.readme.md index 8f777b9edd..c26d456a23 100644 --- a/packages/transducers/tpl.readme.md +++ b/packages/transducers/tpl.readme.md @@ -35,14 +35,14 @@ ${status} ### 7.0.0 release -Thanks to a [PR](https://github.com/thi-ng/umbrella/pull/223) and -[related issue](https://github.com/thi-ng/umbrella/issues/186) by -@gavinpc-mindgrub, various transducers functions have been fixed for the -case when they're invoked with an _empty_ string as input iterable. -Furthermore, +Thanks to a [PR](https://github.com/thi-ng/umbrella/pull/223) and [related +issue](https://github.com/thi-ng/umbrella/issues/186) by +[@gavinpc-mindgrub](https://github.com/gavinpc-mindgrub), various transducers +functions have been fixed for the case when they're invoked with an _empty_ +string as input iterable. Furthermore, [`flatten()`](https://github.com/thi-ng/umbrella/blob/develop/packages/transducers/src/xform/flatten.ts) -is _always_ treating strings as atomic values now, whereas before -top-level strings would be split into individual characters. +is _always_ treating strings as atomic values now, whereas before top-level +strings would be split into individual characters. ### 6.0.0 release From 88edbe10ffe9ceb9f5e8494c9a60b8067a7d57d1 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 11:49:38 +0000 Subject: [PATCH 081/107] refactor(adjacency): fix #256 replace enum w/ type alias BREAKING CHANGE: replace DegreeType w/ type alias --- packages/adjacency/src/api.ts | 6 +----- packages/adjacency/src/sparse.ts | 10 +++++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/packages/adjacency/src/api.ts b/packages/adjacency/src/api.ts index f171b55f38..6fc236ef1c 100644 --- a/packages/adjacency/src/api.ts +++ b/packages/adjacency/src/api.ts @@ -1,10 +1,6 @@ import type { Fn2, Pair } from "@thi.ng/api"; -export enum DegreeType { - IN, - OUT, - BOTH, -} +export type DegreeType = "in" | "out" | "both"; export interface IGraph { numEdges(): number; diff --git a/packages/adjacency/src/sparse.ts b/packages/adjacency/src/sparse.ts index 209109a3b7..e1dfc09cc9 100644 --- a/packages/adjacency/src/sparse.ts +++ b/packages/adjacency/src/sparse.ts @@ -1,6 +1,6 @@ import type { Pair } from "@thi.ng/api"; import { CSR } from "@thi.ng/sparse"; -import { DegreeType, IGraph } from "./api"; +import type { DegreeType, IGraph } from "./api"; export class AdjacencyMatrix extends CSR implements IGraph { static newEmpty(n: number, undirected = false) { @@ -96,21 +96,21 @@ export class AdjacencyMatrix extends CSR implements IGraph { * * @param deg - degree type */ - degreeMat(deg: DegreeType = DegreeType.OUT) { + degreeMat(deg: DegreeType = "out") { const res = CSR.empty(this.m); switch (deg) { - case DegreeType.OUT: + case "out": default: for (let i = this.m; --i >= 0; ) { res.setAt(i, i, this.nnzRow(i)); } break; - case DegreeType.IN: + case "in": for (let i = this.m; --i >= 0; ) { res.setAt(i, i, this.nnzCol(i)); } break; - case DegreeType.BOTH: + case "both": for (let i = this.m; --i >= 0; ) { res.setAt(i, i, this.nnzRow(i) + this.nnzCol(i)); } From 17e244969d2d39e17cdea739308928adc17d5392 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 11:51:06 +0000 Subject: [PATCH 082/107] refactor(color): fix #256 replace enum w/ type alias BREAKING CHANGE: replace ColorMode w/ type alias --- packages/color/src/api.ts | 12 +- packages/color/src/constants.ts | 12 -- packages/color/src/convert.ts | 177 +++++++++++--------------- packages/color/src/css.ts | 5 +- packages/color/src/hcya.ts | 5 +- packages/color/src/hsia.ts | 5 +- packages/color/src/hsla.ts | 5 +- packages/color/src/hsva.ts | 5 +- packages/color/src/int.ts | 5 +- packages/color/src/internal/acolor.ts | 3 +- packages/color/src/luminance.ts | 9 +- packages/color/src/resolve.ts | 5 +- packages/color/src/rgba.ts | 5 +- packages/color/src/xyza.ts | 5 +- packages/color/src/ycbcr.ts | 5 +- 15 files changed, 107 insertions(+), 156 deletions(-) diff --git a/packages/color/src/api.ts b/packages/color/src/api.ts index 3e16ba0b00..8e8cc42673 100644 --- a/packages/color/src/api.ts +++ b/packages/color/src/api.ts @@ -1,6 +1,16 @@ import type { Tuple } from "@thi.ng/api"; import type { ReadonlyVec, Vec } from "@thi.ng/vectors"; -import type { ColorMode } from "./constants"; + +export type ColorMode = + | "rgb" + | "hcy" + | "hsv" + | "hsl" + | "hsi" + | "int" + | "css" + | "xyz" + | "ycbcr"; export type Color = Vec; export type ReadonlyColor = ReadonlyVec; diff --git a/packages/color/src/constants.ts b/packages/color/src/constants.ts index 1c9721d682..bf114b6e08 100644 --- a/packages/color/src/constants.ts +++ b/packages/color/src/constants.ts @@ -1,17 +1,5 @@ import { float, percent } from "@thi.ng/strings"; -export enum ColorMode { - RGBA, - HCYA, - HSVA, - HSLA, - HSIA, - INT32, - CSS, - XYZA, - YCBCRA, -} - // RGBA constants export const BLACK = Object.freeze([0, 0, 0, 1]); diff --git a/packages/color/src/convert.ts b/packages/color/src/convert.ts index a3cac44143..9abd2648d7 100644 --- a/packages/color/src/convert.ts +++ b/packages/color/src/convert.ts @@ -1,8 +1,13 @@ import type { Implementation2O, MultiFn2O } from "@thi.ng/defmulti"; import { DEFAULT, defmulti } from "@thi.ng/defmulti"; import { illegalArgs } from "@thi.ng/errors"; -import type { Color, ColorConversion, IColor, ReadonlyColor } from "./api"; -import { ColorMode } from "./constants"; +import type { + Color, + ColorConversion, + ColorMode, + IColor, + ReadonlyColor, +} from "./api"; import { hcyaRgba } from "./hcya-rgba"; import { hsiaRgba } from "./hsia-rgba"; import { hslaCss } from "./hsla-css"; @@ -49,7 +54,7 @@ export function asCSS( mode: ColorMode ): string; export function asCSS(col: any, mode?: ColorMode) { - return convert(col, ColorMode.CSS, mode); + return convert(col, "css", mode); } export function asRGBA(col: IColor): Color; @@ -58,7 +63,7 @@ export function asRGBA( mode: ColorMode ): Color; export function asRGBA(col: any, mode?: ColorMode) { - return convert(col, ColorMode.RGBA, mode); + return convert(col, "rgb", mode); } export function asHCYA(col: IColor): Color; @@ -67,7 +72,7 @@ export function asHCYA( mode: ColorMode ): Color; export function asHCYA(col: any, mode?: ColorMode) { - return convert(col, ColorMode.HCYA, mode); + return convert(col, "hcy", mode); } export function asHSIA(col: IColor): Color; @@ -76,7 +81,7 @@ export function asHSIA( mode: ColorMode ): Color; export function asHSIA(col: any, mode?: ColorMode) { - return convert(col, ColorMode.HSIA, mode); + return convert(col, "hsi", mode); } export function asHSLA(col: IColor): Color; @@ -85,7 +90,7 @@ export function asHSLA( mode: ColorMode ): Color; export function asHSLA(col: any, mode?: ColorMode) { - return convert(col, ColorMode.HSLA, mode); + return convert(col, "hsl", mode); } export function asHSVA(col: IColor): Color; @@ -94,7 +99,7 @@ export function asHSVA( mode: ColorMode ): Color; export function asHSVA(col: any, mode?: ColorMode) { - return convert(col, ColorMode.HSVA, mode); + return convert(col, "hsv", mode); } export function asXYZA(col: IColor): Color; @@ -103,7 +108,7 @@ export function asXYZA( mode: ColorMode ): Color; export function asXYZA(col: any, mode?: ColorMode) { - return convert(col, ColorMode.XYZA, mode); + return convert(col, "xyz", mode); } export function asYCbCrA(col: IColor): Color; @@ -112,7 +117,7 @@ export function asYCbCrA( mode: ColorMode ): Color; export function asYCbCrA(col: any, mode?: ColorMode) { - return convert(col, ColorMode.YCBCRA, mode); + return convert(col, "ycbcr", mode); } const defConversion = ( @@ -131,147 +136,107 @@ const defConversions = ( toRGBA: ColorConversion, ...dest: ColorMode[] ) => { - defConversion(ColorMode.RGBA, src, (x: any) => toRGBA([], x)); + defConversion("rgb", src, (x: any) => toRGBA([], x)); dest.forEach((id) => - defConversion(id, src, (x: any) => - convert(toRGBA([], x), id, ColorMode.RGBA) - ) + defConversion(id, src, (x: any) => convert(toRGBA([], x), id, "rgb")) ); }; // CSS -defConversion(ColorMode.RGBA, ColorMode.CSS, (x: any) => parseCss(x)); - -[ - ColorMode.HCYA, - ColorMode.HSIA, - ColorMode.HSLA, - ColorMode.HSVA, - ColorMode.INT32, - ColorMode.XYZA, - ColorMode.YCBCRA, -].forEach((id) => - defConversion(id, ColorMode.CSS, (x: any) => - convert(parseCss(x), id, ColorMode.RGBA) - ) +defConversion("rgb", "css", (x: any) => parseCss(x)); + +([ + "hcy", + "hsi", + "hsl", + "hsv", + "int", + "xyz", + "ycbcr", +]).forEach((id) => + defConversion(id, "css", (x: any) => convert(parseCss(x), id, "rgb")) ); // Int -defConversions( - ColorMode.INT32, - int32Rgba, - ColorMode.HCYA, - ColorMode.HSIA, - ColorMode.HSLA, - ColorMode.HSVA, - ColorMode.XYZA, - ColorMode.YCBCRA -); +defConversions("int", int32Rgba, "hcy", "hsi", "hsl", "hsv", "xyz", "ycbcr"); -defConversion(ColorMode.CSS, ColorMode.INT32, (x: any) => int32Css(x)); +defConversion("css", "int", (x: any) => int32Css(x)); // HCYA -defConversions( - ColorMode.HCYA, - hcyaRgba, - ColorMode.CSS, - ColorMode.INT32, - ColorMode.HSLA, - ColorMode.HSVA, - ColorMode.XYZA, - ColorMode.YCBCRA -); +defConversions("hcy", hcyaRgba, "css", "int", "hsl", "hsv", "xyz", "ycbcr"); // HSIA defConversions( - ColorMode.HSIA, + "hsi", hsiaRgba, - ColorMode.CSS, - ColorMode.INT32, - ColorMode.HCYA, - ColorMode.HSLA, - ColorMode.HSVA, - ColorMode.XYZA, - ColorMode.YCBCRA + "css", + "int", + "hcy", + "hsl", + "hsv", + "xyz", + "ycbcr" ); // HSLA -defConversions( - ColorMode.HSLA, - hslaRgba, - ColorMode.HCYA, - ColorMode.HSIA, - ColorMode.INT32, - ColorMode.XYZA, - ColorMode.YCBCRA -); +defConversions("hsl", hslaRgba, "hcy", "hsi", "int", "xyz", "ycbcr"); -defConversion(ColorMode.CSS, ColorMode.HSLA, (x: any) => hslaCss(x)); +defConversion("css", "hsl", (x: any) => hslaCss(x)); -defConversion(ColorMode.HSVA, ColorMode.HSLA, (x: any) => hslaHsva([], x)); +defConversion("hsv", "hsl", (x: any) => hslaHsva([], x)); // HSVA -defConversions( - ColorMode.HSVA, - hsvaRgba, - ColorMode.HCYA, - ColorMode.HSIA, - ColorMode.INT32, - ColorMode.XYZA, - ColorMode.YCBCRA -); +defConversions("hsv", hsvaRgba, "hcy", "hsi", "int", "xyz", "ycbcr"); -defConversion(ColorMode.CSS, ColorMode.HSVA, (x: any) => hsvaCss(x)); +defConversion("css", "hsv", (x: any) => hsvaCss(x)); -defConversion(ColorMode.HSLA, ColorMode.HSVA, (x: any) => hsvaHsla([], x)); +defConversion("hsl", "hsv", (x: any) => hsvaHsla([], x)); // RGBA (<[ColorMode, ColorConversion][]>[ - [ColorMode.HCYA, rgbaHcya], - [ColorMode.HSIA, rgbaHsia], - [ColorMode.HSLA, rgbaHsla], - [ColorMode.HSVA, rgbaHsva], - [ColorMode.XYZA, rgbaXyza], - [ColorMode.YCBCRA, rgbaYcbcra], -]).forEach(([id, fn]) => - defConversion(id, ColorMode.RGBA, (x: any) => fn([], x)) -); + ["hcy", rgbaHcya], + ["hsi", rgbaHsia], + ["hsl", rgbaHsla], + ["hsv", rgbaHsva], + ["xyz", rgbaXyza], + ["ycbcr", rgbaYcbcra], +]).forEach(([id, fn]) => defConversion(id, "rgb", (x: any) => fn([], x))); -defConversion(ColorMode.CSS, ColorMode.RGBA, (x: any) => rgbaCss(x)); +defConversion("css", "rgb", (x: any) => rgbaCss(x)); -defConversion(ColorMode.INT32, ColorMode.RGBA, (x: any) => rgbaInt(x)); +defConversion("int", "rgb", (x: any) => rgbaInt(x)); // XYZA defConversions( - ColorMode.XYZA, + "xyz", xyzaRgba, - ColorMode.CSS, - ColorMode.HCYA, - ColorMode.HSIA, - ColorMode.HSLA, - ColorMode.HSVA, - ColorMode.INT32, - ColorMode.YCBCRA + "css", + "hcy", + "hsi", + "hsl", + "hsv", + "int", + "ycbcr" ); // YCbCr defConversions( - ColorMode.YCBCRA, + "ycbcr", ycbcraRgba, - ColorMode.CSS, - ColorMode.HCYA, - ColorMode.HSIA, - ColorMode.HSLA, - ColorMode.HSVA, - ColorMode.INT32, - ColorMode.XYZA + "css", + "hcy", + "hsi", + "hsl", + "hsv", + "int", + "xyz" ); diff --git a/packages/color/src/css.ts b/packages/color/src/css.ts index bdd1ad57e3..6ff35db131 100644 --- a/packages/color/src/css.ts +++ b/packages/color/src/css.ts @@ -1,6 +1,5 @@ import type { ICopy, IDeref } from "@thi.ng/api"; -import type { IColor } from "./api"; -import { ColorMode } from "./constants"; +import type { ColorMode, IColor } from "./api"; export const css = (col: string) => new CSS(col); @@ -12,7 +11,7 @@ export class CSS implements IColor, ICopy, IDeref { } get mode() { - return ColorMode.CSS; + return "css"; } copy() { diff --git a/packages/color/src/hcya.ts b/packages/color/src/hcya.ts index 9786d31ee0..30c899503e 100644 --- a/packages/color/src/hcya.ts +++ b/packages/color/src/hcya.ts @@ -1,6 +1,5 @@ import { declareIndices, IVector } from "@thi.ng/vectors"; -import type { Color } from "./api"; -import { ColorMode } from "./constants"; +import type { Color, ColorMode } from "./api"; import { AColor } from "./internal/acolor"; import { ensureArgs } from "./internal/ensure-args"; @@ -17,7 +16,7 @@ export class HCYA extends AColor implements IVector { a!: number; get mode() { - return ColorMode.HCYA; + return "hcy"; } copy() { diff --git a/packages/color/src/hsia.ts b/packages/color/src/hsia.ts index 8a1da88660..abfed2879e 100644 --- a/packages/color/src/hsia.ts +++ b/packages/color/src/hsia.ts @@ -1,6 +1,5 @@ import { declareIndices, IVector } from "@thi.ng/vectors"; -import type { Color } from "./api"; -import { ColorMode } from "./constants"; +import type { Color, ColorMode } from "./api"; import { AColor } from "./internal/acolor"; import { ensureArgs } from "./internal/ensure-args"; @@ -17,7 +16,7 @@ export class HSIA extends AColor implements IVector { a!: number; get mode() { - return ColorMode.HSIA; + return "hsi"; } copy() { diff --git a/packages/color/src/hsla.ts b/packages/color/src/hsla.ts index 4bbaecbb58..e49ad0dc4e 100644 --- a/packages/color/src/hsla.ts +++ b/packages/color/src/hsla.ts @@ -1,6 +1,5 @@ import { declareIndices, IVector } from "@thi.ng/vectors"; -import type { Color } from "./api"; -import { ColorMode } from "./constants"; +import type { Color, ColorMode } from "./api"; import { AColor } from "./internal/acolor"; import { ensureArgs } from "./internal/ensure-args"; @@ -17,7 +16,7 @@ export class HSLA extends AColor implements IVector { a!: number; get mode() { - return ColorMode.HSLA; + return "hsl"; } copy() { diff --git a/packages/color/src/hsva.ts b/packages/color/src/hsva.ts index 5086cbb281..bb3807f542 100644 --- a/packages/color/src/hsva.ts +++ b/packages/color/src/hsva.ts @@ -1,6 +1,5 @@ import { declareIndices, IVector } from "@thi.ng/vectors"; -import type { Color } from "./api"; -import { ColorMode } from "./constants"; +import type { Color, ColorMode } from "./api"; import { AColor } from "./internal/acolor"; import { ensureArgs } from "./internal/ensure-args"; @@ -17,7 +16,7 @@ export class HSVA extends AColor implements IVector { a!: number; get mode() { - return ColorMode.HSVA; + return "hsv"; } copy() { diff --git a/packages/color/src/int.ts b/packages/color/src/int.ts index 6b3ca21740..a808d24ed3 100644 --- a/packages/color/src/int.ts +++ b/packages/color/src/int.ts @@ -1,6 +1,5 @@ import type { ICopy, IDeref } from "@thi.ng/api"; -import type { IColor } from "./api"; -import { ColorMode } from "./constants"; +import type { ColorMode, IColor } from "./api"; /** * Returns new {@link Int32} wrapping given ARGB int. @@ -25,7 +24,7 @@ export class Int32 implements IColor, ICopy, IDeref { } get mode() { - return ColorMode.INT32; + return "int"; } copy() { diff --git a/packages/color/src/internal/acolor.ts b/packages/color/src/internal/acolor.ts index b9a56718c2..8618c842b7 100644 --- a/packages/color/src/internal/acolor.ts +++ b/packages/color/src/internal/acolor.ts @@ -1,8 +1,7 @@ import type { IDeref } from "@thi.ng/api"; import { EPS } from "@thi.ng/math"; import { eqDelta4, stridedValues } from "@thi.ng/vectors"; -import type { Color, IColor } from "../api"; -import type { ColorMode } from "../constants"; +import type { Color, ColorMode, IColor } from "../api"; export abstract class AColor implements IColor, IDeref { buf: Color; diff --git a/packages/color/src/luminance.ts b/packages/color/src/luminance.ts index 0647226262..df093ba5f6 100644 --- a/packages/color/src/luminance.ts +++ b/packages/color/src/luminance.ts @@ -1,7 +1,6 @@ import { DEFAULT, defmulti, MultiFn1O } from "@thi.ng/defmulti"; import { illegalArgs } from "@thi.ng/errors"; -import type { IColor, ReadonlyColor } from "./api"; -import { ColorMode } from "./constants"; +import type { ColorMode, IColor, ReadonlyColor } from "./api"; import { convert } from "./convert"; import { luminanceInt, luminanceRGB } from "./luminance-rgb"; @@ -22,12 +21,12 @@ export const luminance: MultiFn1O< : illegalArgs(`missing color mode`) ); -luminance.add(ColorMode.RGBA, (x: any) => luminanceRGB(x)); +luminance.add("rgb", (x: any) => luminanceRGB(x)); -luminance.add(ColorMode.INT32, (x: any) => +luminance.add("int", (x: any) => luminanceInt(typeof x === "number" ? x : x.deref()) ); luminance.add(DEFAULT, (x: any, mode) => - luminanceRGB(convert(x, ColorMode.RGBA, mode)) + luminanceRGB(convert(x, "rgb", mode)) ); diff --git a/packages/color/src/resolve.ts b/packages/color/src/resolve.ts index 2826109886..ffe2f36e63 100644 --- a/packages/color/src/resolve.ts +++ b/packages/color/src/resolve.ts @@ -1,6 +1,5 @@ import { isArrayLike, isNumber } from "@thi.ng/checks"; import type { ReadonlyColor } from "./api"; -import { ColorMode } from "./constants"; import { asCSS } from "./convert"; /** @@ -18,7 +17,7 @@ export const resolveAsCSS = (col: any) => isArrayLike(col) ? isNumber((col).mode) ? asCSS(col) - : asCSS(col, ColorMode.RGBA) + : asCSS(col, "rgb") : isNumber(col) - ? asCSS(col, ColorMode.INT32) + ? asCSS(col, "int") : col; diff --git a/packages/color/src/rgba.ts b/packages/color/src/rgba.ts index aad98760ee..b6b6f7d899 100644 --- a/packages/color/src/rgba.ts +++ b/packages/color/src/rgba.ts @@ -1,6 +1,5 @@ import { declareIndices, IVector } from "@thi.ng/vectors"; -import type { Color } from "./api"; -import { ColorMode } from "./constants"; +import type { Color, ColorMode } from "./api"; import { AColor } from "./internal/acolor"; import { ensureArgs } from "./internal/ensure-args"; @@ -17,7 +16,7 @@ export class RGBA extends AColor implements IVector { a!: number; get mode() { - return ColorMode.RGBA; + return "rgb"; } copy() { diff --git a/packages/color/src/xyza.ts b/packages/color/src/xyza.ts index dd49d16550..497400db0b 100644 --- a/packages/color/src/xyza.ts +++ b/packages/color/src/xyza.ts @@ -1,6 +1,5 @@ import { declareIndices, IVector } from "@thi.ng/vectors"; -import type { Color } from "./api"; -import { ColorMode } from "./constants"; +import type { Color, ColorMode } from "./api"; import { AColor } from "./internal/acolor"; import { ensureArgs } from "./internal/ensure-args"; @@ -17,7 +16,7 @@ export class XYZA extends AColor implements IVector { a!: number; get mode() { - return ColorMode.XYZA; + return "xyz"; } copy() { diff --git a/packages/color/src/ycbcr.ts b/packages/color/src/ycbcr.ts index 8efe85a979..eb20286d35 100644 --- a/packages/color/src/ycbcr.ts +++ b/packages/color/src/ycbcr.ts @@ -1,6 +1,5 @@ import { declareIndices, IVector } from "@thi.ng/vectors"; -import type { Color } from "./api"; -import { ColorMode } from "./constants"; +import type { Color, ColorMode } from "./api"; import { AColor } from "./internal/acolor"; import { ensureArgs } from "./internal/ensure-args"; @@ -17,7 +16,7 @@ export class YCbCrA extends AColor implements IVector { a!: number; get mode() { - return ColorMode.YCBCRA; + return "ycbcr"; } copy() { From b9cfacbbb67fcb89d72090bdad512edaffa1adcf Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 11:52:27 +0000 Subject: [PATCH 083/107] refactor(adjacency): fix #256 replace enums w/ type aliases BREAKING CHANGE: replace filter type enums w/ type aliases - FilterType - BiquadType - SVFType - OnepoleType --- packages/dsp/src/api.ts | 23 +++++++++++++++++ packages/dsp/src/constants.ts | 10 -------- packages/dsp/src/index.ts | 1 - packages/dsp/src/proc/biquad.ts | 43 +++++++++++--------------------- packages/dsp/src/proc/dcblock.ts | 3 +-- packages/dsp/src/proc/onepole.ts | 13 ++++------ packages/dsp/src/proc/svf.ts | 37 ++++++++++----------------- packages/dsp/test/fft.ts | 4 --- 8 files changed, 57 insertions(+), 77 deletions(-) delete mode 100644 packages/dsp/src/constants.ts diff --git a/packages/dsp/src/api.ts b/packages/dsp/src/api.ts index d3beadb02f..8a4cefdddc 100644 --- a/packages/dsp/src/api.ts +++ b/packages/dsp/src/api.ts @@ -43,3 +43,26 @@ export interface IFilter { */ filterCoeffs(): FilterConfig; } + +export type FilterType = + | "lp" + | "hp" + | "bp" + | "notch" + | "peak" + | "loshelf" + | "hishelf" + | "all"; + +export type BiquadType = + | "lp" + | "hp" + | "bp" + | "notch" + | "peak" + | "loshelf" + | "hishelf"; + +export type OnepoleType = "lp" | "hp"; + +export type SVFType = "lp" | "hp" | "bp" | "notch" | "peak" | "all"; diff --git a/packages/dsp/src/constants.ts b/packages/dsp/src/constants.ts deleted file mode 100644 index 0066c1b64d..0000000000 --- a/packages/dsp/src/constants.ts +++ /dev/null @@ -1,10 +0,0 @@ -export enum FilterType { - LP, - HP, - BP, - NOTCH, - PEAK, - LOSHELF, - HISHELF, - ALL, -} diff --git a/packages/dsp/src/index.ts b/packages/dsp/src/index.ts index 631139c6df..c62b6636f5 100644 --- a/packages/dsp/src/index.ts +++ b/packages/dsp/src/index.ts @@ -1,5 +1,4 @@ export * from "./api"; -export * from "./constants"; export * from "./comp/addg"; export * from "./comp/compp"; diff --git a/packages/dsp/src/proc/biquad.ts b/packages/dsp/src/proc/biquad.ts index fea1cdab76..82b884d778 100644 --- a/packages/dsp/src/proc/biquad.ts +++ b/packages/dsp/src/proc/biquad.ts @@ -1,20 +1,10 @@ import type { IReset } from "@thi.ng/api"; import { unsupported } from "@thi.ng/errors"; import { clamp05, PI, SQRT2, SQRT2_2 } from "@thi.ng/math"; -import type { FilterConfig, IFilter } from "../api"; -import { FilterType } from "../constants"; +import type { BiquadType, FilterConfig, IFilter } from "../api"; import { dbMag } from "../util/convert"; import { AProc } from "./aproc"; -type BiquadType = - | FilterType.LP - | FilterType.HP - | FilterType.BP - | FilterType.NOTCH - | FilterType.PEAK - | FilterType.LOSHELF - | FilterType.HISHELF; - export const biquad = ( type: BiquadType, fc: number, @@ -22,26 +12,23 @@ export const biquad = ( gain?: number ) => new Biquad(type, fc, q, gain); -export const biquadLP = (fc: number, q?: number) => - new Biquad(FilterType.LP, fc, q); +export const biquadLP = (fc: number, q?: number) => new Biquad("lp", fc, q); -export const biquadHP = (fc: number, q?: number) => - new Biquad(FilterType.HP, fc, q); +export const biquadHP = (fc: number, q?: number) => new Biquad("hp", fc, q); -export const biquadBP = (fc: number, q?: number) => - new Biquad(FilterType.BP, fc, q); +export const biquadBP = (fc: number, q?: number) => new Biquad("bp", fc, q); export const biquadNotch = (fc: number, q?: number) => - new Biquad(FilterType.NOTCH, fc, q); + new Biquad("notch", fc, q); export const biquadPeak = (fc: number, q?: number, gain = 6) => - new Biquad(FilterType.PEAK, fc, q, gain); + new Biquad("peak", fc, q, gain); export const biquadLoShelf = (fc: number, gain = -6) => - new Biquad(FilterType.LOSHELF, fc, undefined, gain); + new Biquad("loshelf", fc, undefined, gain); export const biquadHiShelf = (fc: number, gain = -6) => - new Biquad(FilterType.HISHELF, fc, undefined, gain); + new Biquad("hishelf", fc, undefined, gain); export class Biquad extends AProc implements IReset, IFilter { protected _a0!: number; @@ -129,7 +116,7 @@ export class Biquad extends AProc implements IReset, IFilter { const ksqrt2v = k * Math.sqrt(2 * v); let norm = 1 / k2kqp1; switch (this._type) { - case FilterType.LP: + case "lp": this._a0 = k2 * norm; this._a1 = 2 * this._a0; this._a2 = this._a0; @@ -137,7 +124,7 @@ export class Biquad extends AProc implements IReset, IFilter { this._b2 = k2kqm1 * norm; break; - case FilterType.HP: + case "hp": this._a0 = norm; this._a1 = -2 * this._a0; this._a2 = this._a0; @@ -145,7 +132,7 @@ export class Biquad extends AProc implements IReset, IFilter { this._b2 = k2kqm1 * norm; break; - case FilterType.BP: + case "bp": this._a0 = kq * norm; this._a1 = 0; this._a2 = -this._a0; @@ -153,7 +140,7 @@ export class Biquad extends AProc implements IReset, IFilter { this._b2 = k2kqm1 * norm; break; - case FilterType.NOTCH: + case "notch": this._a0 = (1 + k2) * norm; this._a1 = k22 * norm; this._a2 = this._a0; @@ -161,7 +148,7 @@ export class Biquad extends AProc implements IReset, IFilter { this._b2 = k2kqm1 * norm; break; - case FilterType.PEAK: { + case "peak": { const z1 = 1 + kvq + k2; const z2 = 1 - kvq + k2; if (this._gain >= 0) { @@ -181,7 +168,7 @@ export class Biquad extends AProc implements IReset, IFilter { break; } - case FilterType.LOSHELF: { + case "loshelf": { const z1 = 1 + ksqrt2 + k2; const z2 = 1 - ksqrt2 + k2; const vk2 = v * k2; @@ -206,7 +193,7 @@ export class Biquad extends AProc implements IReset, IFilter { break; } - case FilterType.HISHELF: { + case "hishelf": { const z1 = 1 + ksqrt2 + k2; const z2 = 1 - ksqrt2 + k2; const y1 = v + ksqrt2v + k2; diff --git a/packages/dsp/src/proc/dcblock.ts b/packages/dsp/src/proc/dcblock.ts index 41f9516d3c..8dc3ad5c6a 100644 --- a/packages/dsp/src/proc/dcblock.ts +++ b/packages/dsp/src/proc/dcblock.ts @@ -1,4 +1,3 @@ -import { FilterType } from "../constants"; import { OnePole } from "./onepole"; /** @@ -6,7 +5,7 @@ import { OnePole } from "./onepole"; * * @param freq */ -export const dcBlock = (freq: number) => new DCBlock(FilterType.LP, freq); +export const dcBlock = (freq: number) => new DCBlock("lp", freq); export class DCBlock extends OnePole { next(x: number) { diff --git a/packages/dsp/src/proc/onepole.ts b/packages/dsp/src/proc/onepole.ts index 4eb311a598..d2ac1d7c12 100644 --- a/packages/dsp/src/proc/onepole.ts +++ b/packages/dsp/src/proc/onepole.ts @@ -1,14 +1,11 @@ import type { IClear, IReset } from "@thi.ng/api"; import { clamp05, TAU } from "@thi.ng/math"; -import type { FilterConfig, IFilter } from "../api"; -import { FilterType } from "../constants"; +import type { FilterConfig, IFilter, OnepoleType } from "../api"; import { AProc } from "./aproc"; -type OnepoleType = FilterType.LP | FilterType.HP; +export const onepoleLP = (fc: number) => new OnePole("lp", fc); -export const onepoleLP = (fc: number) => new OnePole(FilterType.LP, fc); - -export const onepoleHP = (fc: number) => new OnePole(FilterType.HP, fc); +export const onepoleHP = (fc: number) => new OnePole("hp", fc); /** * https://www.earlevel.com/main/2012/12/15/a-one-pole-filter/ @@ -39,7 +36,7 @@ export class OnePole setFreq(fc: number) { this._freq = fc = clamp05(fc); - if (this._type === FilterType.LP) { + if (this._type === "lp") { this._b1 = Math.exp(-TAU * fc); this._a0 = 1 - this._b1; } else { @@ -51,7 +48,7 @@ export class OnePole filterCoeffs(): FilterConfig { return { zeroes: [this._a0], - poles: [1, this._type === FilterType.LP ? this._b1 : -this._b1], + poles: [1, this._type === "lp" ? this._b1 : -this._b1], }; } } diff --git a/packages/dsp/src/proc/svf.ts b/packages/dsp/src/proc/svf.ts index cd9a87155a..47cadad660 100644 --- a/packages/dsp/src/proc/svf.ts +++ b/packages/dsp/src/proc/svf.ts @@ -1,30 +1,19 @@ import type { IReset } from "@thi.ng/api"; import { clamp05, PI } from "@thi.ng/math"; -import { FilterType } from "../constants"; +import type { SVFType } from "../api"; import { AProc } from "./aproc"; -type SVFType = - | FilterType.LP - | FilterType.HP - | FilterType.BP - | FilterType.NOTCH - | FilterType.PEAK - | FilterType.ALL; +export const svfLP = (fc: number, q?: number) => new SVF("lp", fc, q); -export const svfLP = (fc: number, q?: number) => new SVF(FilterType.LP, fc, q); +export const svfHP = (fc: number, q?: number) => new SVF("hp", fc, q); -export const svfHP = (fc: number, q?: number) => new SVF(FilterType.HP, fc, q); +export const svfBP = (fc: number, q?: number) => new SVF("bp", fc, q); -export const svfBP = (fc: number, q?: number) => new SVF(FilterType.BP, fc, q); +export const svfNotch = (fc: number, q?: number) => new SVF("notch", fc, q); -export const svfNotch = (fc: number, q?: number) => - new SVF(FilterType.NOTCH, fc, q); +export const svfPeak = (fc: number, q?: number) => new SVF("peak", fc, q); -export const svfPeak = (fc: number, q?: number) => - new SVF(FilterType.PEAK, fc, q); - -export const svfAllpass = (fc: number, q?: number) => - new SVF(FilterType.ALL, fc, q); +export const svfAllpass = (fc: number, q?: number) => new SVF("all", fc, q); /** * Multi-type state variable filter w/ trapezoidal integration, after @@ -66,17 +55,17 @@ export class SVF extends AProc implements IReset { this._c2 = 2 * x2 - _c2; // TODO support type morphing / interpolation? switch (this._type) { - case FilterType.LP: + case "lp": return (this._val = x2); - case FilterType.HP: + case "hp": return (this._val = x - this._k * x1 - x2); - case FilterType.BP: + case "bp": return (this._val = x1); - case FilterType.NOTCH: + case "notch": return (this._val = x - this._k * x1); - case FilterType.PEAK: + case "peak": return (this._val = 2 * x2 - x + this._k * x1); - case FilterType.ALL: + case "all": return (this._val = x - 2 * this._k * x1); } } diff --git a/packages/dsp/test/fft.ts b/packages/dsp/test/fft.ts index 1446ca25d8..6e07e88775 100644 --- a/packages/dsp/test/fft.ts +++ b/packages/dsp/test/fft.ts @@ -14,17 +14,13 @@ import { osc, powerMeanSquared, powerSumSquared, - powerTimeIntegral, spectrumMag, spectrumPhase, spectrumPow, - thresholdFFT, window, windowRect, } from "../src"; -const pulse8 = [-1, -1, -1, -1, 1, 1, 1, 1]; - const deltaEq = (a: NumericArray, b: NumericArray, eps = 1e-3) => { if (a.length != b.length) return false; eps **= 2; From 6fd4291eb2be4baae93b3f365478f73990e044b0 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 11:53:16 +0000 Subject: [PATCH 084/107] refactor(gp): fix #256 replace enum w/ type alias BREAKING CHANGE: replace GeneType w/ type alias --- packages/gp/src/api.ts | 9 +- packages/gp/src/ast.ts | 4 +- packages/gp/src/mep.ts | 4 +- packages/gp/src/utils.ts | 6 +- packages/gp/test/ast.ts | 14 +- packages/gp/test/mep.ts | 312 +++++++++++++++++++-------------------- 6 files changed, 173 insertions(+), 176 deletions(-) diff --git a/packages/gp/src/api.ts b/packages/gp/src/api.ts index f62f56683f..5331a64e95 100644 --- a/packages/gp/src/api.ts +++ b/packages/gp/src/api.ts @@ -1,10 +1,7 @@ import type { Fn, Fn2 } from "@thi.ng/api"; import type { IRandom } from "@thi.ng/random"; -export enum GeneType { - TERMINAL, - OP, -} +export type GeneType = "term" | "op"; /** * Type alias for S-expression based AST @@ -66,12 +63,12 @@ export interface MEPOpts extends GPOpts { } export interface TerminalGene { - type: GeneType.TERMINAL; + type: "term"; value: T; } export interface OpGene { - type: GeneType.OP; + type: "op"; op: OP; args: A[]; } diff --git a/packages/gp/src/ast.ts b/packages/gp/src/ast.ts index b79cbbcc54..cf43553116 100644 --- a/packages/gp/src/ast.ts +++ b/packages/gp/src/ast.ts @@ -2,7 +2,7 @@ import { assert } from "@thi.ng/api"; import { SYSTEM } from "@thi.ng/random"; import { iterate, iterator, repeatedly, takeWhile } from "@thi.ng/transducers"; import { Location, zipper } from "@thi.ng/zipper"; -import { ASTNode, ASTOpts, GeneType, OpGene } from "./api"; +import type { ASTNode, ASTOpts, OpGene } from "./api"; import { opNode, probabilities, terminalNode } from "./utils"; export class AST { @@ -136,7 +136,7 @@ export class AST { protected asZipper(tree: ASTNode) { return zipper>( { - branch: (x) => x.type === GeneType.OP, + branch: (x) => x.type === "op", children: (x) => (>>x).args, factory: (n, args) => opNode((>>n).op, args), diff --git a/packages/gp/src/mep.ts b/packages/gp/src/mep.ts index e33246b8c1..0dcf07a720 100644 --- a/packages/gp/src/mep.ts +++ b/packages/gp/src/mep.ts @@ -1,7 +1,7 @@ import { inRange } from "@thi.ng/math"; import { SYSTEM } from "@thi.ng/random"; import { repeatedly } from "@thi.ng/transducers"; -import { ASTNode, GeneType, MEPChromosome, MEPGene, MEPOpts } from "./api"; +import type { ASTNode, MEPChromosome, MEPGene, MEPOpts } from "./api"; import { opNode, probabilities, terminalNode } from "./utils"; export class MEP { @@ -55,7 +55,7 @@ export class MEP { const depths: number[] = []; for (let i = 0; i < chromosome.length; i++) { const gene = chromosome[i]; - if (gene.type == GeneType.TERMINAL) { + if (gene.type == "term") { res[i] = gene; depths[i] = 1; } else { diff --git a/packages/gp/src/utils.ts b/packages/gp/src/utils.ts index 7357937984..fba40a2aba 100644 --- a/packages/gp/src/utils.ts +++ b/packages/gp/src/utils.ts @@ -1,14 +1,14 @@ import { assert } from "@thi.ng/api"; import { add, choices, range } from "@thi.ng/transducers"; -import { GeneType, GPOpts, OpGene, TerminalGene } from "./api"; +import type { GPOpts, OpGene, TerminalGene } from "./api"; export const terminalNode = (value: T): TerminalGene => ({ - type: GeneType.TERMINAL, + type: "term", value, }); export const opNode = (op: OP, args: A[]): OpGene => ({ - type: GeneType.OP, + type: "op", op, args, }); diff --git a/packages/gp/test/ast.ts b/packages/gp/test/ast.ts index 001dd5b2af..021e29df8d 100644 --- a/packages/gp/test/ast.ts +++ b/packages/gp/test/ast.ts @@ -23,33 +23,33 @@ describe("gp (ast)", () => { it("generate", () => { assert.deepStrictEqual(ast.randomAST(), { - type: 1, + type: "op", op: "+", args: [ { - type: 1, + type: "op", op: "-", args: [ { - type: 0, + type: "term", value: 5, }, { - type: 0, + type: "term", value: 1, }, ], }, { - type: 1, + type: "op", op: "*", args: [ { - type: 0, + type: "term", value: 8, }, { - type: 0, + type: "term", value: 3, }, ], diff --git a/packages/gp/test/mep.ts b/packages/gp/test/mep.ts index 1f963abb91..ffc2030372 100644 --- a/packages/gp/test/mep.ts +++ b/packages/gp/test/mep.ts @@ -23,121 +23,121 @@ describe("gp (mep)", () => { it("generate", () => { assert.deepStrictEqual(ast.randomChromosome(), [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, - { type: 1, op: "*", args: [1, 1] }, - { type: 1, op: "-", args: [1, 2] }, - { type: 1, op: "-", args: [0, 0] }, - { type: 1, op: "-", args: [3, 4] }, - { type: 1, op: "*", args: [4, 0] }, - { type: 1, op: "-", args: [2, 3] }, - { type: 1, op: "/", args: [1, 4] }, - { type: 1, op: "-", args: [5, 0] }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, + { type: "op", op: "*", args: [1, 1] }, + { type: "op", op: "-", args: [1, 2] }, + { type: "op", op: "-", args: [0, 0] }, + { type: "op", op: "-", args: [3, 4] }, + { type: "op", op: "*", args: [4, 0] }, + { type: "op", op: "-", args: [2, 3] }, + { type: "op", op: "/", args: [1, 4] }, + { type: "op", op: "-", args: [5, 0] }, ]); }); it("decode", () => { assert.deepStrictEqual(ast.decodeChromosome(ast.randomChromosome()), [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, { - type: 1, + type: "op", op: "*", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, + { type: "term", value: 5 }, { - type: 1, + type: "op", op: "*", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, ], }, { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, { - type: 1, + type: "op", op: "-", args: [ { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, + { type: "term", value: 5 }, { - type: 1, + type: "op", op: "*", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, ], }, { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, ], }, { - type: 1, + type: "op", op: "*", args: [ { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, ], }, { - type: 1, + type: "op", op: "-", args: [ { - type: 1, + type: "op", op: "*", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, + { type: "term", value: 5 }, { - type: 1, + type: "op", op: "*", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, ], @@ -145,54 +145,54 @@ describe("gp (mep)", () => { ], }, { - type: 1, + type: "op", op: "/", args: [ - { type: 0, value: 5 }, + { type: "term", value: 5 }, { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, ], }, { - type: 1, + type: "op", op: "-", args: [ { - type: 1, + type: "op", op: "-", args: [ { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, + { type: "term", value: 5 }, { - type: 1, + type: "op", op: "*", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, ], }, { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, ], }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, ], }, ]); @@ -203,87 +203,87 @@ describe("gp (mep)", () => { ast.decodeChromosome(ast.randomChromosome(), 3), [ { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, + { type: "term", value: 5 }, { - type: 1, + type: "op", op: "*", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, ], }, { - type: 1, + type: "op", op: "-", args: [ { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, + { type: "term", value: 5 }, { - type: 1, + type: "op", op: "*", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, ], }, { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, ], }, { - type: 1, + type: "op", op: "*", args: [ { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, ], }, { - type: 1, + type: "op", op: "-", args: [ { - type: 1, + type: "op", op: "*", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, + { type: "term", value: 5 }, { - type: 1, + type: "op", op: "*", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, ], @@ -291,54 +291,54 @@ describe("gp (mep)", () => { ], }, { - type: 1, + type: "op", op: "/", args: [ - { type: 0, value: 5 }, + { type: "term", value: 5 }, { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, ], }, { - type: 1, + type: "op", op: "-", args: [ { - type: 1, + type: "op", op: "-", args: [ { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, + { type: "term", value: 5 }, { - type: 1, + type: "op", op: "*", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, ], }, { - type: 1, + type: "op", op: "-", args: [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, ], }, ], }, - { type: 0, value: 5 }, + { type: "term", value: 5 }, ], }, ] @@ -347,16 +347,16 @@ describe("gp (mep)", () => { it("mutate", () => { assert.deepStrictEqual(ast.mutate(ast.randomChromosome()), [ - { type: 0, value: 0 }, - { type: 0, value: 5 }, - { type: 1, op: "*", args: [1, 0] }, - { type: 1, op: "+", args: [2, 1] }, - { type: 1, op: "-", args: [0, 0] }, - { type: 1, op: "+", args: [4, 2] }, - { type: 1, op: "/", args: [3, 1] }, - { type: 1, op: "/", args: [4, 3] }, - { type: 0, value: 5 }, - { type: 1, op: "/", args: [6, 4] }, + { type: "term", value: 0 }, + { type: "term", value: 5 }, + { type: "op", op: "*", args: [1, 0] }, + { type: "op", op: "+", args: [2, 1] }, + { type: "op", op: "-", args: [0, 0] }, + { type: "op", op: "+", args: [4, 2] }, + { type: "op", op: "/", args: [3, 1] }, + { type: "op", op: "/", args: [4, 3] }, + { type: "term", value: 5 }, + { type: "op", op: "/", args: [6, 4] }, ]); }); @@ -364,43 +364,43 @@ describe("gp (mep)", () => { const a = ast.randomChromosome(); const b = ast.randomChromosome(); assert.deepStrictEqual(b, [ - { type: 0, value: 5 }, - { type: 1, op: "*", args: [0, 0] }, - { type: 0, value: 5 }, - { type: 1, op: "-", args: [0, 0] }, - { type: 1, op: "/", args: [1, 0] }, - { type: 1, op: "*", args: [2, 1] }, - { type: 1, op: "-", args: [3, 2] }, - { type: 1, op: "-", args: [2, 1] }, - { type: 0, value: 1 }, - { type: 0, value: 6 }, + { type: "term", value: 5 }, + { type: "op", op: "*", args: [0, 0] }, + { type: "term", value: 5 }, + { type: "op", op: "-", args: [0, 0] }, + { type: "op", op: "/", args: [1, 0] }, + { type: "op", op: "*", args: [2, 1] }, + { type: "op", op: "-", args: [3, 2] }, + { type: "op", op: "-", args: [2, 1] }, + { type: "term", value: 1 }, + { type: "term", value: 6 }, ]); assert.deepStrictEqual(ast.crossoverSingle(a, b, 5), [ [ - { type: 0, value: 5 }, - { type: 0, value: 5 }, - { type: 1, op: "*", args: [1, 1] }, - { type: 1, op: "-", args: [1, 2] }, - { type: 1, op: "-", args: [0, 0] }, + { type: "term", value: 5 }, + { type: "term", value: 5 }, + { type: "op", op: "*", args: [1, 1] }, + { type: "op", op: "-", args: [1, 2] }, + { type: "op", op: "-", args: [0, 0] }, // cut - { type: 1, op: "*", args: [2, 1] }, - { type: 1, op: "-", args: [3, 2] }, - { type: 1, op: "-", args: [2, 1] }, - { type: 0, value: 1 }, - { type: 0, value: 6 }, + { type: "op", op: "*", args: [2, 1] }, + { type: "op", op: "-", args: [3, 2] }, + { type: "op", op: "-", args: [2, 1] }, + { type: "term", value: 1 }, + { type: "term", value: 6 }, ], [ - { type: 0, value: 5 }, - { type: 1, op: "*", args: [0, 0] }, - { type: 0, value: 5 }, - { type: 1, op: "-", args: [0, 0] }, - { type: 1, op: "/", args: [1, 0] }, + { type: "term", value: 5 }, + { type: "op", op: "*", args: [0, 0] }, + { type: "term", value: 5 }, + { type: "op", op: "-", args: [0, 0] }, + { type: "op", op: "/", args: [1, 0] }, // cut - { type: 1, op: "-", args: [3, 4] }, - { type: 1, op: "*", args: [4, 0] }, - { type: 1, op: "-", args: [2, 3] }, - { type: 1, op: "/", args: [1, 4] }, - { type: 1, op: "-", args: [5, 0] }, + { type: "op", op: "-", args: [3, 4] }, + { type: "op", op: "*", args: [4, 0] }, + { type: "op", op: "-", args: [2, 3] }, + { type: "op", op: "/", args: [1, 4] }, + { type: "op", op: "-", args: [5, 0] }, ], ]); }); @@ -409,16 +409,16 @@ describe("gp (mep)", () => { const a = ast.randomChromosome(); const b = ast.randomChromosome(); assert.deepStrictEqual(ast.crossoverUniform(a, b), [ - { type: 0, value: 5 }, - { type: 1, op: "*", args: [0, 0] }, - { type: 0, value: 5 }, - { type: 1, op: "-", args: [1, 2] }, - { type: 1, op: "-", args: [0, 0] }, - { type: 1, op: "-", args: [3, 4] }, - { type: 1, op: "-", args: [3, 2] }, - { type: 1, op: "-", args: [2, 1] }, - { type: 0, value: 1 }, - { type: 1, op: "-", args: [5, 0] }, + { type: "term", value: 5 }, + { type: "op", op: "*", args: [0, 0] }, + { type: "term", value: 5 }, + { type: "op", op: "-", args: [1, 2] }, + { type: "op", op: "-", args: [0, 0] }, + { type: "op", op: "-", args: [3, 4] }, + { type: "op", op: "-", args: [3, 2] }, + { type: "op", op: "-", args: [2, 1] }, + { type: "term", value: 1 }, + { type: "op", op: "-", args: [5, 0] }, ]); }); }); From 8f00375722ff3e207f1711229acff69c3bd1343f Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 11:54:21 +0000 Subject: [PATCH 085/107] fix(math): fix #256 replace enum w/ type alias - update comparison order in classifyCrossing() BREAKING CHANGE: replace Crossing enum w/ type alias --- packages/math/src/api.ts | 13 ++++++------- packages/math/src/crossing.ts | 20 +++++++++----------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/packages/math/src/api.ts b/packages/math/src/api.ts index 7cafd38623..2ea03c2824 100644 --- a/packages/math/src/api.ts +++ b/packages/math/src/api.ts @@ -25,22 +25,21 @@ export const SIXTH = 1 / 6; export let EPS = 1e-6; -export enum Crossing { +export type Crossing = /** * lines A & B are equal */ - EQUAL = 0, + | "equal" /** * lines A & B are flat (all same values) */ - FLAT, + | "flat" /** * line A crossed under B */ - UNDER, + | "under" /** * line A crossed over B */ - OVER, - OTHER, -} + | "over" + | "other"; diff --git a/packages/math/src/crossing.ts b/packages/math/src/crossing.ts index 52f5a723aa..5402954f55 100644 --- a/packages/math/src/crossing.ts +++ b/packages/math/src/crossing.ts @@ -61,15 +61,13 @@ export const classifyCrossing = ( b1: number, b2: number, eps = EPS -) => { - if (isCrossOver(a1, a2, b1, b2)) { - return Crossing.OVER; - } else if (isCrossUnder(a1, a2, b1, b2)) { - return Crossing.UNDER; - } - return eqDelta(a1, b1, eps) && eqDelta(a2, b2, eps) +): Crossing => + eqDelta(a1, b1, eps) && eqDelta(a2, b2, eps) ? eqDelta(a1, b2, eps) - ? Crossing.FLAT - : Crossing.EQUAL - : Crossing.OTHER; -}; + ? "flat" + : "equal" + : isCrossOver(a1, a2, b1, b2) + ? "over" + : isCrossUnder(a1, a2, b1, b2) + ? "under" + : "other"; From 7ae9e278b1ee7e5c2eff7e98806f9b665c2af495 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 11:55:25 +0000 Subject: [PATCH 086/107] refactor(pointfree-lang): fix #256 replace enum w/ type alias - replace NodeType enum w/ type alias - update grammar & compiler --- packages/pointfree-lang/src/api.ts | 30 +++++++-------- packages/pointfree-lang/src/grammar.pegjs | 46 ++++++++--------------- packages/pointfree-lang/src/index.ts | 38 +++++++++---------- 3 files changed, 48 insertions(+), 66 deletions(-) diff --git a/packages/pointfree-lang/src/api.ts b/packages/pointfree-lang/src/api.ts index db11bd3a97..f9350b3a20 100644 --- a/packages/pointfree-lang/src/api.ts +++ b/packages/pointfree-lang/src/api.ts @@ -21,23 +21,19 @@ export interface WordMeta { arities?: number; } -export enum NodeType { - SYM = 1, - WORD, - - VAR_DEREF, - VAR_STORE, - - NIL, - NUMBER, - BOOLEAN, - STRING, - ARRAY, - OBJ, - - COMMENT, - STACK_COMMENT, -} +export type NodeType = + | "sym" + | "word" + | "var_deref" + | "var_store" + | "nil" + | "number" + | "boolean" + | "string" + | "array" + | "obj" + | "comment" + | "stack_comment"; export const ALIASES: IObjectOf = { "?drop": pf.dropif, diff --git a/packages/pointfree-lang/src/grammar.pegjs b/packages/pointfree-lang/src/grammar.pegjs index 970abdad3c..b7449a195b 100644 --- a/packages/pointfree-lang/src/grammar.pegjs +++ b/packages/pointfree-lang/src/grammar.pegjs @@ -1,18 +1,4 @@ { - const NodeType = {}; - NodeType[NodeType["SYM"] = 1] = "SYM"; - NodeType[NodeType["WORD"] = 2] = "WORD"; - NodeType[NodeType["VAR_DEREF"] = 3] = "VAR_DEREF"; - NodeType[NodeType["VAR_STORE"] = 4] = "VAR_STORE"; - NodeType[NodeType["NIL"] = 5] = "NIL"; - NodeType[NodeType["NUMBER"] = 6] = "NUMBER"; - NodeType[NodeType["BOOLEAN"] = 7] = "BOOLEAN"; - NodeType[NodeType["STRING"] = 8] = "STRING"; - NodeType[NodeType["ARRAY"] = 9] = "ARRAY"; - NodeType[NodeType["OBJ"] = 10] = "OBJ"; - NodeType[NodeType["COMMENT"] = 11] = "COMMENT"; - NodeType[NodeType["STACK_COMMENT"] = 12] = "STACK_COMMENT"; - const ast = (node) => { const loc = location().start; node.loc = [loc.line, loc.column]; @@ -41,7 +27,7 @@ NonWordExpr Word = ":" __ id:Sym locals:LocalVars? body:NonWordExpr+ ";" { - return { type: NodeType.WORD, id: id.id, locals, body}; + return { type: "word", id: id.id, locals, body}; } LocalVars @@ -54,12 +40,12 @@ SymList Array = "[" body:NonWordExpr* "]" { - return { type: NodeType.ARRAY, body }; + return { type: "array", body }; } Obj = "{" _ body:ObjPair* "}" { - return { type: NodeType.OBJ, body }; + return { type: "obj", body }; } ObjPair @@ -91,17 +77,17 @@ Atom Nil = "nil" { - return {type: NodeType.NIL, body: null}; + return {type: "nil", body: null}; } Boolean = $("T" / "F") { - return {type: NodeType.BOOLEAN, body: text() == "T"}; + return {type: "boolean", body: text() == "T"}; } Sym = id:$((Alpha / SymChars) (AlphaNum / SymChars)*) { - return {type: NodeType.SYM, id}; + return {type: "sym", id}; } SymChars @@ -113,28 +99,28 @@ Var VarDeref = "@" id:Sym { - return {type: NodeType.VAR_DEREF, id: id.id} + return {type: "var_deref", id: id.id} } VarStore = id:Sym "!" { - return {type: NodeType.VAR_STORE, id: id.id} + return {type: "var_store", id: id.id} } LitQuote = "'" body:NonWordExpr { - return {type: NodeType.ARRAY, body: [body]}; + return {type: "array", body: [body]}; } Comment = "("+ body:$(!")" .)* ")" { return body.indexOf("--") > 0 ? { - type: NodeType.STACK_COMMENT, + type: "stack_comment", body: body.split("--").map(x => x.trim()) } : { - type: NodeType.COMMENT, + type: "comment", body: body.trim() }; } @@ -142,14 +128,14 @@ Comment LineComment = "//" body:$(!"\n" .)* "\n" { return { - type: NodeType.COMMENT, + type: "comment", body: body.trim() }; } String = "\"" body:$(!"\"" .)* "\"" { - return {type: NodeType.STRING, body }; + return {type: "string", body }; } Number @@ -161,12 +147,12 @@ Sign = [-+] Binary = "0b" n:$[01]+ { - return {type: NodeType.NUMBER, radix: 2, body: parseInt(n, 2)}; + return {type: "number", radix: 2, body: parseInt(n, 2)}; } Hex = "0x" n:$[0-9a-fA-F]+ { - return {type: NodeType.NUMBER, radix: 16, body: parseInt(n, 16)}; + return {type: "number", radix: 16, body: parseInt(n, 16)}; } Int @@ -177,7 +163,7 @@ Uint Decimal = Int ("." Uint?)? ("e" Int)? { - return {type: NodeType.NUMBER, body: parseFloat(text())}; + return {type: "number", body: parseFloat(text())}; } AlphaNum diff --git a/packages/pointfree-lang/src/index.ts b/packages/pointfree-lang/src/index.ts index 64ca03c414..77cbab28fc 100644 --- a/packages/pointfree-lang/src/index.ts +++ b/packages/pointfree-lang/src/index.ts @@ -1,7 +1,7 @@ import { Fn, Fn2, FnU, ILogger, IObjectOf, NULL_LOGGER } from "@thi.ng/api"; import { illegalArgs, illegalState } from "@thi.ng/errors"; import * as pf from "@thi.ng/pointfree"; -import { ALIASES, ASTNode, NodeType, VisitorState } from "./api"; +import { ALIASES, ASTNode, VisitorState } from "./api"; import { parse, SyntaxError } from "./parser"; export let LOGGER = NULL_LOGGER; @@ -62,15 +62,15 @@ const resolveVar = (node: ASTNode, ctx: pf.StackContext) => { */ const resolveNode = (node: ASTNode, ctx: pf.StackContext): any => { switch (node.type) { - case NodeType.SYM: + case "sym": return resolveSym(node, ctx); - case NodeType.VAR_DEREF: + case "var_deref": return resolveVar(node, ctx); - case NodeType.VAR_STORE: + case "var_store": return storevar(node.id!); - case NodeType.ARRAY: + case "array": return resolveArray(node, ctx); - case NodeType.OBJ: + case "obj": return resolveObject(node, ctx); default: return node.body; @@ -100,7 +100,7 @@ const resolveArray = (node: ASTNode, ctx: pf.StackContext) => { const resolveObject = (node: ASTNode, ctx: pf.StackContext) => { const res: any = {}; for (let [k, v] of node.body) { - res[k.type === NodeType.SYM ? k.id : resolveNode(k, ctx)] = resolveNode( + res[k.type === "sym" ? k.id : resolveNode(k, ctx)] = resolveNode( v, ctx ); @@ -181,27 +181,27 @@ const endvar = (id: string): FnU => (ctx) => { * @param state - */ const visit = (node: ASTNode, ctx: pf.StackContext, state: VisitorState) => { - LOGGER.fine("visit", NodeType[node.type], node, ctx[0].toString()); + LOGGER.fine("visit", node.type, node, ctx[0].toString()); switch (node.type) { - case NodeType.SYM: + case "sym": return visitSym(node, ctx, state); - case NodeType.NUMBER: - case NodeType.BOOLEAN: - case NodeType.STRING: - case NodeType.NIL: + case "number": + case "boolean": + case "string": + case "nil": ctx[0].push(node.body); return ctx; - case NodeType.ARRAY: + case "array": return visitArray(node, ctx, state); - case NodeType.OBJ: + case "obj": return visitObject(node, ctx, state); - case NodeType.VAR_DEREF: + case "var_deref": return visitDeref(node, ctx, state); - case NodeType.VAR_STORE: + case "var_store": return visitStore(node, ctx, state); - case NodeType.WORD: + case "word": return visitWord(node, ctx, state); - case NodeType.STACK_COMMENT: + case "stack_comment": visitStackComment(node, state); default: LOGGER.fine("skipping node..."); From 80ef1e1558070421cf6ed2d707a55b91fe1c290d Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 11:56:28 +0000 Subject: [PATCH 087/107] refactor(rstream-gestures): fix #256 replace GestureType enum BREAKING CHANGE: replace GestureType w/ type alias --- packages/rstream-gestures/src/api.ts | 8 +------ .../rstream-gestures/src/gesture-stream.ts | 24 +++++++++---------- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/packages/rstream-gestures/src/api.ts b/packages/rstream-gestures/src/api.ts index b20ce389b2..8d4a4ee520 100644 --- a/packages/rstream-gestures/src/api.ts +++ b/packages/rstream-gestures/src/api.ts @@ -15,13 +15,7 @@ export type UIEventID = | "touchcancel" | "wheel"; -export enum GestureType { - START, - MOVE, - DRAG, - END, - ZOOM, -} +export type GestureType = "move" | "start" | "drag" | "end" | "zoom"; export interface GestureInfo { /** diff --git a/packages/rstream-gestures/src/gesture-stream.ts b/packages/rstream-gestures/src/gesture-stream.ts index 406f8d983a..1e9f8e3afc 100644 --- a/packages/rstream-gestures/src/gesture-stream.ts +++ b/packages/rstream-gestures/src/gesture-stream.ts @@ -3,7 +3,7 @@ import { isBoolean } from "@thi.ng/checks"; import { clamp } from "@thi.ng/math"; import { fromDOMEvent, merge, Stream } from "@thi.ng/rstream"; import { map } from "@thi.ng/transducers"; -import { +import type { GestureEvent, GestureInfo, GestureStream, @@ -25,13 +25,13 @@ const endEvents = new Set(["mouseup", "touchend", "touchcancel"]); const baseEvents = ["mousemove", "mousedown", "touchstart", "wheel"]; const eventGestureTypeMap: IObjectOf = { - touchstart: GestureType.START, - touchmove: GestureType.DRAG, - touchend: GestureType.END, - touchcancel: GestureType.END, - mousedown: GestureType.START, - mouseup: GestureType.END, - wheel: GestureType.ZOOM, + touchstart: "start", + touchmove: "drag", + touchend: "end", + touchcancel: "end", + mousedown: "start", + mouseup: "end", + wheel: "zoom", }; /** @@ -42,7 +42,7 @@ const eventGestureTypeMap: IObjectOf = { * In multi-touch environments, a `GestureEvent` can contain multiple * such `GestureInfo` objects (one per active touch). In general, the * `click` and `delta` values are only present if the abstracted event - * `type == GestureType.DRAG`. Both (and `pos` too) are 2-element arrays + * `type == "drag"`. Both (and `pos` too) are 2-element arrays * of `[x,y]` coordinates. * * The `zoom` value is always present, but is only updated with wheel @@ -107,8 +107,8 @@ export const gestureStream = ( const type = etype === "mousemove" ? tempStreams - ? GestureType.DRAG - : GestureType.MOVE + ? "drag" + : "move" : eventGestureTypeMap[etype]; let isTouch = !!(e).touches; let events: Array = isTouch @@ -174,7 +174,7 @@ export const gestureStream = ( !isBody && stream.add(eventSource(el, "mousemove", opts)); tempStreams = undefined; } - } else if (type === GestureType.ZOOM) { + } else if (type === "zoom") { const zdelta = opts.smooth * ("wheelDeltaY" in (e as any) From 50cc52a84b135535053370e022309aee5b670625 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 11:57:40 +0000 Subject: [PATCH 088/107] refactor(transducers-binary): fix #256 replace enum w/ type alias BREAKING CHANGE: replace Type enum w/ type alias, update BinStructItem --- packages/transducers-binary/src/api.ts | 87 ++++++++------- packages/transducers-binary/src/bytes.ts | 134 +++++++++++------------ 2 files changed, 107 insertions(+), 114 deletions(-) diff --git a/packages/transducers-binary/src/api.ts b/packages/transducers-binary/src/api.ts index 919ede53b0..71beaafe10 100644 --- a/packages/transducers-binary/src/api.ts +++ b/packages/transducers-binary/src/api.ts @@ -1,49 +1,48 @@ -export enum Type { - I8, - I8_ARRAY, - U8, - U8_ARRAY, - I16, - I16_ARRAY, - U16, - U16_ARRAY, - I24, - I24_ARRAY, - U24, - U24_ARRAY, - I32, - I32_ARRAY, - U32, - U32_ARRAY, - F32, - F32_ARRAY, - F64, - F64_ARRAY, - STR, -} +export type Type = + | "i8" + | "i8a" + | "u8" + | "u8a" + | "i16" + | "i16a" + | "u16" + | "u16a" + | "i24" + | "i24a" + | "u24" + | "u24a" + | "i32" + | "i32a" + | "u32" + | "u32a" + | "f32" + | "f32a" + | "f64" + | "f64a" + | "str"; export type BinStructItem = - | [Type.I8, number] - | [Type.I8_ARRAY, ArrayLike] - | [Type.U8, number] - | [Type.U8_ARRAY, ArrayLike] - | [Type.I16, number, boolean?] - | [Type.I16_ARRAY, ArrayLike, boolean?] - | [Type.U16, number, boolean?] - | [Type.U16_ARRAY, ArrayLike, boolean?] - | [Type.I24, number, boolean?] - | [Type.I24_ARRAY, ArrayLike, boolean?] - | [Type.U24, number, boolean?] - | [Type.U24_ARRAY, ArrayLike, boolean?] - | [Type.I32, number, boolean?] - | [Type.I32_ARRAY, ArrayLike, boolean?] - | [Type.U32, number, boolean?] - | [Type.U32_ARRAY, ArrayLike, boolean?] - | [Type.F32, number, boolean?] - | [Type.F32_ARRAY, ArrayLike, boolean?] - | [Type.F64, number, boolean?] - | [Type.F64_ARRAY, ArrayLike, boolean?] - | [Type.STR, string]; + | ["i8", number] + | ["i8a", ArrayLike] + | ["u8", number] + | ["u8a", ArrayLike] + | ["i16", number, boolean?] + | ["i16a", ArrayLike, boolean?] + | ["u16", number, boolean?] + | ["u16a", ArrayLike, boolean?] + | ["i24", number, boolean?] + | ["i24a", ArrayLike, boolean?] + | ["u24", number, boolean?] + | ["u24a", ArrayLike, boolean?] + | ["i32", number, boolean?] + | ["i32a", ArrayLike, boolean?] + | ["u32", number, boolean?] + | ["u32a", ArrayLike, boolean?] + | ["f32", number, boolean?] + | ["f32a", ArrayLike, boolean?] + | ["f64", number, boolean?] + | ["f64a", ArrayLike, boolean?] + | ["str", string]; export interface HexDumpOpts { /** diff --git a/packages/transducers-binary/src/bytes.ts b/packages/transducers-binary/src/bytes.ts index 29448a2b5b..fe699ca2bb 100644 --- a/packages/transducers-binary/src/bytes.ts +++ b/packages/transducers-binary/src/bytes.ts @@ -7,78 +7,72 @@ import { Reducer, Transducer, } from "@thi.ng/transducers"; -import { BinStructItem, Type } from "./api"; +import type { BinStructItem } from "./api"; import { utf8Encode } from "./utf8"; -export const i8 = (x: number): BinStructItem => [Type.I8, x]; -export const i8array = (x: ArrayLike): BinStructItem => [ - Type.I8_ARRAY, - x, -]; +export const i8 = (x: number): BinStructItem => ["i8", x]; +export const i8array = (x: ArrayLike): BinStructItem => ["i8a", x]; -export const u8 = (x: number): BinStructItem => [Type.U8, x]; -export const u8array = (x: ArrayLike): BinStructItem => [ - Type.U8_ARRAY, - x, -]; +export const u8 = (x: number): BinStructItem => ["u8", x]; +export const u8array = (x: ArrayLike): BinStructItem => ["u8a", x]; -export const i16 = (x: number, le = false): BinStructItem => [Type.I16, x, le]; +export const i16 = (x: number, le = false): BinStructItem => ["i16", x, le]; export const i16array = (x: ArrayLike, le = false): BinStructItem => [ - Type.I16_ARRAY, + "i16a", x, le, ]; -export const u16 = (x: number, le = false): BinStructItem => [Type.U16, x, le]; +export const u16 = (x: number, le = false): BinStructItem => ["u16", x, le]; export const u16array = (x: ArrayLike, le = false): BinStructItem => [ - Type.U16_ARRAY, + "u16a", x, le, ]; -export const i24 = (x: number, le = false): BinStructItem => [Type.I24, x, le]; +export const i24 = (x: number, le = false): BinStructItem => ["i24", x, le]; export const i24array = (x: ArrayLike, le = false): BinStructItem => [ - Type.I24_ARRAY, + "i24a", x, le, ]; -export const u24 = (x: number, le = false): BinStructItem => [Type.U24, x, le]; +export const u24 = (x: number, le = false): BinStructItem => ["u24", x, le]; export const u24array = (x: ArrayLike, le = false): BinStructItem => [ - Type.U24_ARRAY, + "u24a", x, le, ]; -export const i32 = (x: number, le = false): BinStructItem => [Type.I32, x, le]; +export const i32 = (x: number, le = false): BinStructItem => ["i32", x, le]; export const i32array = (x: ArrayLike, le = false): BinStructItem => [ - Type.I32_ARRAY, + "i32a", x, le, ]; -export const u32 = (x: number, le = false): BinStructItem => [Type.U32, x, le]; +export const u32 = (x: number, le = false): BinStructItem => ["u32", x, le]; export const u32array = (x: ArrayLike, le = false): BinStructItem => [ - Type.U32_ARRAY, + "u32a", x, le, ]; -export const f32 = (x: number, le = false): BinStructItem => [Type.F32, x, le]; +export const f32 = (x: number, le = false): BinStructItem => ["f32", x, le]; export const f32array = (x: ArrayLike, le = false): BinStructItem => [ - Type.F32_ARRAY, + "f32a", x, le, ]; -export const f64 = (x: number, le = false): BinStructItem => [Type.F64, x, le]; +export const f64 = (x: number, le = false): BinStructItem => ["f64", x, le]; export const f64array = (x: ArrayLike, le = false): BinStructItem => [ - Type.F64_ARRAY, + "f64a", x, le, ]; -export const str = (x: string): BinStructItem => [Type.STR, x]; +export const str = (x: string): BinStructItem => ["str", x]; /** * Transducer which converts {@link BinStructItem} inputs to bytes. If @@ -105,39 +99,39 @@ export function asBytes(src?: Iterable): any { const val = x[1]; const le = x[2]; switch (x[0]) { - case Type.I8: - case Type.U8: + case "i8": + case "u8": return [val]; - case Type.I8_ARRAY: - case Type.U8_ARRAY: + case "i8a": + case "u8a": return x[1]; - case Type.I16: - case Type.U16: + case "i16": + case "u16": return bytes16(val, le); - case Type.I16_ARRAY: - case Type.U16_ARRAY: + case "i16a": + case "u16a": return mapcat((x) => bytes16(x, le), x[1]); - case Type.I24: - case Type.U24: + case "i24": + case "u24": return bytes24(val, le); - case Type.I24_ARRAY: - case Type.U24_ARRAY: + case "i24a": + case "u24a": return mapcat((x) => bytes24(x, le), x[1]); - case Type.I32: - case Type.U32: + case "i32": + case "u32": return bytes32(val, le); - case Type.I32_ARRAY: - case Type.U32_ARRAY: + case "i32a": + case "u32a": return mapcat((x) => bytes32(x, le), x[1]); - case Type.F32: + case "f32": return bytesF32(val, le); - case Type.F32_ARRAY: + case "f32a": return mapcat((x) => bytesF32(x, le), x[1]); - case Type.F64: + case "f64": return bytesF64(val, le); - case Type.F64_ARRAY: + case "f64a": return mapcat((x) => bytesF64(x, le), x[1]); - case Type.STR: + case "str": return utf8Encode(x[1]); default: unsupported(`invalid struct item: ${x[0]}`); @@ -186,12 +180,12 @@ export function bytes(cap = 1024, src?: Iterable) { view = new DataView(acc.buffer, acc.byteOffset); } switch (type) { - case Type.I8: + case "i8": acc = ensure(acc, 1); view.setInt8(pos, x); pos++; break; - case Type.I8_ARRAY: { + case "i8a": { const n = (>x).length; acc = ensure(acc, n); new Int8Array(acc.buffer, acc.byteOffset).set( @@ -201,83 +195,83 @@ export function bytes(cap = 1024, src?: Iterable) { pos += n; break; } - case Type.U8: + case "u8": acc = ensure(acc, 1); view.setUint8(pos, x); pos++; break; - case Type.U8_ARRAY: { + case "u8a": { const n = (>x).length; acc = ensure(acc, n); acc.set(>x, pos); pos += n; break; } - case Type.I16: + case "i16": acc = ensure(acc, 2); view.setInt16(pos, x, le); pos += 2; break; - case Type.I16_ARRAY: + case "i16a": acc = setArray("setInt16", 2, acc, x, le); break; - case Type.U16: + case "u16": acc = ensure(acc, 2); view.setUint16(pos, x, le); pos += 2; break; - case Type.U16_ARRAY: + case "u16a": acc = setArray("setUint16", 2, acc, x, le); break; - case Type.I24: + case "i24": acc = ensure(acc, 4); view.setInt32(pos, x, le); pos += 3; break; - case Type.I24_ARRAY: + case "i24a": acc = setArray("setInt32", 3, acc, x, le); break; - case Type.U24: + case "u24": acc = ensure(acc, 4); view.setUint32(pos, x, le); pos += 3; break; - case Type.U24_ARRAY: + case "u24a": acc = setArray("setUint32", 3, acc, x, le); break; - case Type.I32: + case "i32": acc = ensure(acc, 4); view.setInt32(pos, x, le); pos += 4; break; - case Type.I32_ARRAY: + case "i32a": acc = setArray("setInt32", 4, acc, x, le); break; - case Type.U32: + case "u32": acc = ensure(acc, 4); view.setUint32(pos, x, le); pos += 4; break; - case Type.U32_ARRAY: + case "u32a": acc = setArray("setUint32", 4, acc, x, le); break; - case Type.F32: + case "f32": acc = ensure(acc, 4); view.setFloat32(pos, x, le); pos += 4; break; - case Type.F32_ARRAY: + case "f32a": acc = setArray("setFloat32", 4, acc, x, le); break; - case Type.F64: + case "f64": acc = ensure(acc, 8); view.setFloat64(pos, x, le); pos += 8; break; - case Type.F64_ARRAY: + case "f64a": acc = setArray("setFloat64", 8, acc, x, le); break; - case Type.STR: { + case "str": { let utf = [...utf8Encode(x)]; acc = ensure(acc, utf.length); acc.set(utf, pos); From c079a2ac620ef731429501d88580b4baada98ab6 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 11:58:59 +0000 Subject: [PATCH 089/107] refactor(geom-api): fix #256 replace enum w/ type alias BREAKING CHANGE: replace SegmentType enum w/ type alias --- packages/geom-api/src/path.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/packages/geom-api/src/path.ts b/packages/geom-api/src/path.ts index 23e3e64bc9..d8b393cca3 100644 --- a/packages/geom-api/src/path.ts +++ b/packages/geom-api/src/path.ts @@ -1,15 +1,14 @@ import type { Vec } from "@thi.ng/vectors"; import type { IShape } from "./shape"; -export enum SegmentType { - MOVE, - LINE, - POLYLINE, - ARC, - CUBIC, - QUADRATIC, - CLOSE, -} +export type SegmentType = + | "m" // move + | "l" // line + | "p" // polyline + | "a" // arc + | "c" // cubic + | "q" // quadratic + | "z"; // close export interface PathSegment { type: SegmentType; From 67988ad31f478b28de85e40d8ab7c51501ef4acb Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 12:00:13 +0000 Subject: [PATCH 090/107] refactor(geom): fix #256 replace enum w/ type alias BREAKING CHANGE: replace SegmentType w/ type alias --- packages/geom/src/ctors/path-builder.ts | 22 ++++++++++----------- packages/geom/src/ctors/path.ts | 8 ++++---- packages/geom/src/ops/simplify.ts | 15 ++++++-------- packages/geom/src/ops/transform-vertices.ts | 10 ++-------- packages/geom/src/ops/transform.ts | 10 ++-------- 5 files changed, 24 insertions(+), 41 deletions(-) diff --git a/packages/geom/src/ctors/path-builder.ts b/packages/geom/src/ctors/path-builder.ts index bb73eda858..f2395f48fb 100644 --- a/packages/geom/src/ctors/path-builder.ts +++ b/packages/geom/src/ctors/path-builder.ts @@ -1,5 +1,5 @@ import { peek } from "@thi.ng/arrays"; -import { Attribs, SegmentType } from "@thi.ng/geom-api"; +import type { Attribs } from "@thi.ng/geom-api"; import { eqDelta } from "@thi.ng/math"; import { add2, copy, mulN2, set2, sub2, Vec, zeroes } from "@thi.ng/vectors"; import { Cubic } from "../api/cubic"; @@ -62,7 +62,7 @@ export class PathBuilder { set2(this.bezierP, p); this.curr.add({ point: p, - type: SegmentType.MOVE, + type: "m", }); return this; } @@ -70,7 +70,7 @@ export class PathBuilder { lineTo(p: Vec, relative = false): PathBuilder { this.curr.add({ geo: new Line([copy(this.currP), this.updateCurrent(p, relative)]), - type: SegmentType.LINE, + type: "l", }); set2(this.bezierP, this.currP); return this; @@ -101,8 +101,7 @@ export class PathBuilder { cubicChainTo(cp2: Vec, p: Vec, relative = false) { const prevMode = peek(this.curr.segments).type; const c1 = copy(this.currP); - prevMode === SegmentType.CUBIC && - add2(null, sub2([], c1, this.bezierP), c1); + prevMode === "c" && add2(null, sub2([], c1, this.bezierP), c1); this.addCubic(c1, cp2, p, relative); return this; } @@ -110,8 +109,7 @@ export class PathBuilder { quadraticChainTo(p: Vec, relative = false) { const prevMode = peek(this.curr.segments).type; const c1 = copy(this.currP); - prevMode === SegmentType.QUADRATIC && - sub2(null, mulN2(null, c1, 2), this.bezierP); + prevMode === "q" && sub2(null, mulN2(null, c1, 2), this.bezierP); this.addQuadratic(c1, p, relative); return this; } @@ -137,7 +135,7 @@ export class PathBuilder { xl, clockwise ), - type: SegmentType.ARC, + type: "a", }); set2(this.bezierP, this.currP); return this; @@ -146,7 +144,7 @@ export class PathBuilder { closePath() { this.curr.add({ geo: new Line([copy(this.currP), copy(this.startP)]), - type: SegmentType.LINE, + type: "l", }); this.curr.closed = true; return this; @@ -167,7 +165,7 @@ export class PathBuilder { set2(this.bezierP, this.currP); this.curr.add({ geo: new Line([prev, copy(this.currP)]), - type: SegmentType.LINE, + type: "l", }); } @@ -181,7 +179,7 @@ export class PathBuilder { cp2, this.updateCurrent(p, relative), ]), - type: SegmentType.CUBIC, + type: "c", }); } @@ -193,7 +191,7 @@ export class PathBuilder { cp, this.updateCurrent(p, relative), ]), - type: SegmentType.QUADRATIC, + type: "q", }); } } diff --git a/packages/geom/src/ctors/path.ts b/packages/geom/src/ctors/path.ts index 6bce927ad1..96c4d1681a 100644 --- a/packages/geom/src/ctors/path.ts +++ b/packages/geom/src/ctors/path.ts @@ -1,5 +1,5 @@ import { isNumber } from "@thi.ng/checks"; -import { Attribs, PathSegment, SegmentType } from "@thi.ng/geom-api"; +import type { Attribs, PathSegment } from "@thi.ng/geom-api"; import { map, mapcat } from "@thi.ng/transducers"; import { maddN2, Vec } from "@thi.ng/vectors"; import type { Cubic } from "../api/cubic"; @@ -12,9 +12,9 @@ export const path = (segments: PathSegment[], attribs?: Attribs) => export const pathFromCubics = (cubics: Cubic[], attribs?: Attribs) => { const path = new Path([], attribs || cubics[0].attribs); - path.segments.push({ type: SegmentType.MOVE, point: cubics[0].points[0] }); + path.segments.push({ type: "m", point: cubics[0].points[0] }); for (let c of cubics) { - path.segments.push({ type: SegmentType.CUBIC, geo: c }); + path.segments.push({ type: "c", geo: c }); } return path; }; @@ -26,7 +26,7 @@ export const normalizedPath = (path: Path) => (s) => s.geo ? map( - (c) => ({ type: SegmentType.CUBIC, geo: c }), + (c) => ({ type: "c", geo: c }), asCubic(s.geo) ) : [{ ...s }], diff --git a/packages/geom/src/ops/simplify.ts b/packages/geom/src/ops/simplify.ts index 914d442afc..817b88f34b 100644 --- a/packages/geom/src/ops/simplify.ts +++ b/packages/geom/src/ops/simplify.ts @@ -1,15 +1,15 @@ +import type { IObjectOf } from "@thi.ng/api"; import { peek } from "@thi.ng/arrays"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { IShape, PathSegment, SegmentType, Type } from "@thi.ng/geom-api"; +import { IShape, PathSegment, Type } from "@thi.ng/geom-api"; import { simplify as _simplify } from "@thi.ng/geom-resample"; +import type { Vec } from "@thi.ng/vectors"; import { Path } from "../api/path"; import { Polygon } from "../api/polygon"; import { Polyline } from "../api/polyline"; import { copyAttribs } from "../internal/copy-attribs"; import { dispatch } from "../internal/dispatch"; import { vertices } from "./vertices"; -import type { IObjectOf } from "@thi.ng/api"; -import type { Vec } from "@thi.ng/vectors"; export const simplify = defmulti(dispatch); @@ -22,10 +22,7 @@ simplify.addAll(>>{ let lastP!: Vec; for (let i = 0; i < n; i++) { const s = orig[i]; - if ( - s.type === SegmentType.LINE || - s.type === SegmentType.POLYLINE - ) { + if (s.type === "l" || s.type === "p") { points = points ? points.concat(vertices(s.geo!)) : vertices(s.geo!); @@ -34,7 +31,7 @@ simplify.addAll(>>{ points.push(lastP); res.push({ geo: new Polyline(_simplify(points, eps)), - type: SegmentType.POLYLINE, + type: "p", }); points = null; } else { @@ -45,7 +42,7 @@ simplify.addAll(>>{ points.push(lastP); res.push({ geo: new Polyline(points), - type: SegmentType.POLYLINE, + type: "p", }); } return new Path(res, copyAttribs($)); diff --git a/packages/geom/src/ops/transform-vertices.ts b/packages/geom/src/ops/transform-vertices.ts index 0a971a1d38..200ada12b8 100644 --- a/packages/geom/src/ops/transform-vertices.ts +++ b/packages/geom/src/ops/transform-vertices.ts @@ -1,12 +1,6 @@ import type { Fn, IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { - IHiccupShape, - IShape, - PathSegment, - SegmentType, - Type, -} from "@thi.ng/geom-api"; +import { IHiccupShape, IShape, PathSegment, Type } from "@thi.ng/geom-api"; import { mulV, ReadonlyMat } from "@thi.ng/matrices"; import { map } from "@thi.ng/transducers"; import type { ReadonlyVec } from "@thi.ng/vectors"; @@ -69,7 +63,7 @@ transformVertices.addAll(< [ ...map( (s) => - s.type === SegmentType.MOVE + s.type === "m" ? { type: s.type, point: mulV([], fn(s.point!), s.point!), diff --git a/packages/geom/src/ops/transform.ts b/packages/geom/src/ops/transform.ts index 9cf3006229..1263c09a9d 100644 --- a/packages/geom/src/ops/transform.ts +++ b/packages/geom/src/ops/transform.ts @@ -1,12 +1,6 @@ import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { - IHiccupShape, - IShape, - PathSegment, - SegmentType, - Type, -} from "@thi.ng/geom-api"; +import { IHiccupShape, IShape, PathSegment, Type } from "@thi.ng/geom-api"; import { mulV, ReadonlyMat } from "@thi.ng/matrices"; import { map } from "@thi.ng/transducers"; import { Cubic } from "../api/cubic"; @@ -61,7 +55,7 @@ transform.addAll(>>{ [ ...map( (s) => - s.type === SegmentType.MOVE + s.type === "m" ? { type: s.type, point: mulV([], mat, s.point!), From aa4f8aa6c38b3167725520ec844f66faa1dcba72 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 12:04:43 +0000 Subject: [PATCH 091/107] refactor(examples): update GestureType usage --- examples/canvas-dial/src/dial.ts | 11 ++--------- examples/gesture-analysis/src/index.ts | 14 ++++---------- examples/hdom-canvas-draw/src/index.ts | 9 ++------- examples/mandelbrot/src/index.ts | 10 +++++----- examples/shader-ast-evo/src/index.ts | 4 ++-- examples/shader-graph/src/index.ts | 8 ++++---- 6 files changed, 19 insertions(+), 37 deletions(-) diff --git a/examples/canvas-dial/src/dial.ts b/examples/canvas-dial/src/dial.ts index 552a189560..808c0af915 100644 --- a/examples/canvas-dial/src/dial.ts +++ b/examples/canvas-dial/src/dial.ts @@ -4,11 +4,7 @@ import { isString } from "@thi.ng/checks"; import { canvas2D } from "@thi.ng/hdom-components"; import { fitClamped } from "@thi.ng/math"; import type { Subscription } from "@thi.ng/rstream"; -import { - GestureEvent, - gestureStream, - GestureType, -} from "@thi.ng/rstream-gestures"; +import { GestureEvent, gestureStream } from "@thi.ng/rstream-gestures"; import { heading, sub2 } from "@thi.ng/vectors"; /** @@ -190,10 +186,7 @@ export const dial = (_opts: Partial) => { // configure stream to return scaled coords (devicePixelRatio) events = gestureStream(el, { scale: true }).subscribe({ next: (e) => { - if ( - e.type === GestureType.START || - e.type === GestureType.DRAG - ) { + if (e.type === "start" || e.type === "drag") { let theta = heading(sub2([], e.pos, [cx, cy])) - startTheta; if (theta < 0) theta += TAU; diff --git a/examples/gesture-analysis/src/index.ts b/examples/gesture-analysis/src/index.ts index 8927544f42..dabb0dd130 100644 --- a/examples/gesture-analysis/src/index.ts +++ b/examples/gesture-analysis/src/index.ts @@ -3,11 +3,7 @@ import { identity } from "@thi.ng/compose"; import { polyline as gPolyline, resample, vertices } from "@thi.ng/geom"; import { circle, group, polyline, svg } from "@thi.ng/hiccup-svg"; import { fromIterable, merge, sync } from "@thi.ng/rstream"; -import { - GestureEvent, - gestureStream, - GestureType, -} from "@thi.ng/rstream-gestures"; +import { GestureEvent, gestureStream } from "@thi.ng/rstream-gestures"; import { comp, filter, @@ -116,10 +112,10 @@ const collectPath = () => { return (g: GestureEvent) => { console.log(g); switch (g.type) { - case GestureType.START: + case "start": pts = [g.pos]; break; - case GestureType.DRAG: + case "drag": pts.push(g.pos); break; } @@ -138,9 +134,7 @@ const gesture = merge({ // mouse & touch event stream attached to document.body // we're filtering out move & zoom events to avoid extraneous work gestureStream(document.body).transform( - filter( - (g) => g.type != GestureType.MOVE && g.type != GestureType.ZOOM - ), + filter((g) => !(g.type === "move" || g.type === "zoom")), map(collectPath()) ), ], diff --git a/examples/hdom-canvas-draw/src/index.ts b/examples/hdom-canvas-draw/src/index.ts index adc86b2452..e916177905 100644 --- a/examples/hdom-canvas-draw/src/index.ts +++ b/examples/hdom-canvas-draw/src/index.ts @@ -1,11 +1,7 @@ import { canvas } from "@thi.ng/hdom-canvas"; import { HALF_PI, PI } from "@thi.ng/math"; import { CloseMode, StreamSync, sync, trigger } from "@thi.ng/rstream"; -import { - GestureEvent, - gestureStream, - GestureType, -} from "@thi.ng/rstream-gestures"; +import { GestureEvent, gestureStream } from "@thi.ng/rstream-gestures"; import { filter, map, @@ -49,8 +45,7 @@ const app = (main: StreamSync) => { // only interested in some gesture types filter( (e: GestureEvent) => - e.type === GestureType.START || - e.type === GestureType.DRAG + e.type === "start" || e.type === "drag" ), // get current mouse / touch position map((e) => e.pos), diff --git a/examples/mandelbrot/src/index.ts b/examples/mandelbrot/src/index.ts index ac1a7d94c8..3cd6f75562 100644 --- a/examples/mandelbrot/src/index.ts +++ b/examples/mandelbrot/src/index.ts @@ -3,7 +3,7 @@ import { equiv } from "@thi.ng/equiv"; import { canvas2D } from "@thi.ng/hdom-components"; import { fit, mix } from "@thi.ng/math"; import { stream, Stream, sync, tunnel } from "@thi.ng/rstream"; -import { gestureStream, GestureType } from "@thi.ng/rstream-gestures"; +import { gestureStream } from "@thi.ng/rstream-gestures"; import { padLeft } from "@thi.ng/strings"; import { map } from "@thi.ng/transducers"; import { updateDOM } from "@thi.ng/transducers-hdom"; @@ -132,13 +132,13 @@ const app = () => { const _x2 = x2.deref()!; const _y2 = y2.deref()!; switch (e.type) { - case GestureType.START: + case "start": sel1.next(e.pos); break; - case GestureType.DRAG: + case "drag": sel2.next(e.pos); break; - case GestureType.END: { + case "end": { const p = sel1.deref(); if (!p || equiv(p, e.pos)) return; // compute target coord based on current zoom region @@ -166,7 +166,7 @@ const app = () => { newRender(ax, ay, bx, by); break; } - case GestureType.ZOOM: + case "zoom": updateZoom(e.zoom); break; default: diff --git a/examples/shader-ast-evo/src/index.ts b/examples/shader-ast-evo/src/index.ts index 1c93364085..39ab6406a0 100644 --- a/examples/shader-ast-evo/src/index.ts +++ b/examples/shader-ast-evo/src/index.ts @@ -1,4 +1,4 @@ -import { AST, ASTNode, ASTOpts, GeneType } from "@thi.ng/gp"; +import { AST, ASTNode, ASTOpts } from "@thi.ng/gp"; import { roundTo } from "@thi.ng/math"; import { IRandom, SYSTEM } from "@thi.ng/random"; import { @@ -115,7 +115,7 @@ const AST_OPTS: ASTOpts = { }; const transpile = (node: ASTNode): Term => - node.type === GeneType.OP + node.type === "op" ? node.op.apply(null, node.args.map(transpile)) : node.value; diff --git a/examples/shader-graph/src/index.ts b/examples/shader-graph/src/index.ts index adce8c9d11..f035eeb538 100644 --- a/examples/shader-graph/src/index.ts +++ b/examples/shader-graph/src/index.ts @@ -1,7 +1,7 @@ import { exposeGlobal, Nullable } from "@thi.ng/api"; import { ortho } from "@thi.ng/matrices"; import { fromRAF } from "@thi.ng/rstream"; -import { gestureStream, GestureType } from "@thi.ng/rstream-gestures"; +import { gestureStream } from "@thi.ng/rstream-gestures"; import { Node2D } from "@thi.ng/scenegraph"; import { $x, @@ -273,7 +273,7 @@ gestureStream(CTX.canvas, { minZoom: 0.1, maxZoom: 4, smooth: 0.05 }).subscribe( { next(e) { switch (e.type) { - case GestureType.START: + case "start": const info = ROOT.childForPoint(e.pos); this.sel = info ? info.node : CONTENT; this.startTheta = this.sel.rotate; @@ -282,7 +282,7 @@ gestureStream(CTX.canvas, { minZoom: 0.1, maxZoom: 4, smooth: 0.05 }).subscribe( copy(this.sel.translate) ); break; - case GestureType.DRAG: + case "drag": if (e.buttons == 2) { this.sel.rotate = this.startTheta + e.active[0].delta![0] * 0.01; @@ -294,7 +294,7 @@ gestureStream(CTX.canvas, { minZoom: 0.1, maxZoom: 4, smooth: 0.05 }).subscribe( } CONTENT.update(); break; - case GestureType.ZOOM: + case "zoom": CONTENT.scale = e.zoom; CONTENT.update(); } From e2cd24a7fc24af4c2541cd426e5b03431cc8fe86 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 12:55:40 +0000 Subject: [PATCH 092/107] refactor(geom-api): fix #256 remove Type enum BREAKING CHANGE: remove obsolete shape Type enum --- packages/geom-api/src/shape.ts | 35 ---------------------------------- 1 file changed, 35 deletions(-) diff --git a/packages/geom-api/src/shape.ts b/packages/geom-api/src/shape.ts index fe3a573e6f..b24c3ca102 100644 --- a/packages/geom-api/src/shape.ts +++ b/packages/geom-api/src/shape.ts @@ -1,41 +1,6 @@ import type { ICopy, IObjectOf, IToHiccup } from "@thi.ng/api"; import type { Vec } from "@thi.ng/vectors"; -export enum Type { - AABB = 1, - ARC, - CIRCLE, - CONE, - CUBIC, - CUBIC3, - CYLINDER, - ELLIPSE, - GROUP, - LINE, - LINE3, - PATH, - PLANE, - POINTS, - POINTS3, - POLYGON, - POLYGON3, - POLYLINE, - POLYLINE3, - QUAD, - QUAD3, - QUADRATIC, - QUADRATIC3, - RECT, - SPHERE, - TRIANGLE, - TRIANGLE3, - RAY, - RAY3, - - TEXT, - TEXT3, -} - export type Attribs = IObjectOf; export interface IShape extends ICopy { From ef7ba74c189755d760d84c700b0c970a281a3b04 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 13:09:51 +0000 Subject: [PATCH 093/107] refactor(geom): fix #256 replace Type enum w/ alias BREAKING CHANGE: replace Type enum returned by IShape.type w/ string consts - update all shape classes - update all ops/multimethod dispatches --- packages/geom/src/api/aabb.ts | 4 +-- packages/geom/src/api/arc.ts | 5 ++- packages/geom/src/api/circle.ts | 4 +-- packages/geom/src/api/cubic.ts | 4 +-- packages/geom/src/api/ellipse.ts | 4 +-- packages/geom/src/api/group.ts | 4 +-- packages/geom/src/api/line.ts | 4 +-- packages/geom/src/api/path.ts | 6 ++-- packages/geom/src/api/plane.ts | 4 +-- packages/geom/src/api/points.ts | 6 ++-- packages/geom/src/api/polygon.ts | 4 +-- packages/geom/src/api/polyline.ts | 4 +-- packages/geom/src/api/quad.ts | 4 +-- packages/geom/src/api/quad3.ts | 4 +-- packages/geom/src/api/quadratic.ts | 4 +-- packages/geom/src/api/ray.ts | 4 +-- packages/geom/src/api/rect.ts | 4 +-- packages/geom/src/api/sphere.ts | 4 +-- packages/geom/src/api/text.ts | 4 +-- packages/geom/src/api/triangle.ts | 4 +-- packages/geom/src/ops/arc-length.ts | 23 ++++++------ packages/geom/src/ops/area.ts | 24 ++++++------- packages/geom/src/ops/as-cubic.ts | 28 +++++++-------- packages/geom/src/ops/as-polygon.ts | 22 ++++++------ packages/geom/src/ops/as-polyline.ts | 28 +++++++-------- packages/geom/src/ops/bounds.ts | 36 +++++++++---------- packages/geom/src/ops/center.ts | 12 +++---- packages/geom/src/ops/centroid.ts | 38 ++++++++++---------- packages/geom/src/ops/classify-point.ts | 10 +++--- packages/geom/src/ops/clip-convex.ts | 20 +++++------ packages/geom/src/ops/closest-point.ts | 33 ++++++++--------- packages/geom/src/ops/convex-hull.ts | 21 ++++++----- packages/geom/src/ops/edges.ts | 20 +++++------ packages/geom/src/ops/flip.ts | 30 ++++++++-------- packages/geom/src/ops/intersects.ts | 36 +++++++++---------- packages/geom/src/ops/map-point.ts | 8 ++--- packages/geom/src/ops/offset.ts | 9 +++-- packages/geom/src/ops/point-at.ts | 28 +++++++-------- packages/geom/src/ops/point-inside.ts | 24 ++++++------- packages/geom/src/ops/resample.ts | 20 +++++------ packages/geom/src/ops/simplify.ts | 8 ++--- packages/geom/src/ops/split-at.ts | 14 ++++---- packages/geom/src/ops/split-near.ts | 14 ++++---- packages/geom/src/ops/subdiv-curve.ts | 8 ++--- packages/geom/src/ops/tangent-at.ts | 18 +++++----- packages/geom/src/ops/transform-vertices.ts | 32 ++++++++--------- packages/geom/src/ops/transform.ts | 34 +++++++++--------- packages/geom/src/ops/translate.ts | 40 ++++++++++----------- packages/geom/src/ops/union.ts | 8 ++--- packages/geom/src/ops/unmap-point.ts | 12 +++---- packages/geom/src/ops/vertices.ts | 34 +++++++++--------- packages/geom/src/ops/volume.ts | 8 ++--- 52 files changed, 387 insertions(+), 398 deletions(-) diff --git a/packages/geom/src/api/aabb.ts b/packages/geom/src/api/aabb.ts index 50bf93512a..cd28b30443 100644 --- a/packages/geom/src/api/aabb.ts +++ b/packages/geom/src/api/aabb.ts @@ -1,5 +1,5 @@ import { isNumber } from "@thi.ng/checks"; -import { AABBLike, Attribs, Type } from "@thi.ng/geom-api"; +import type { AABBLike, Attribs } from "@thi.ng/geom-api"; import { add3, set, Vec } from "@thi.ng/vectors"; import { copyAttribs } from "../internal/copy-attribs"; @@ -15,7 +15,7 @@ export class AABB implements AABBLike { } get type() { - return Type.AABB; + return "aabb"; } copy(): AABB { diff --git a/packages/geom/src/api/arc.ts b/packages/geom/src/api/arc.ts index 2c00d686c0..9769203791 100644 --- a/packages/geom/src/api/arc.ts +++ b/packages/geom/src/api/arc.ts @@ -1,9 +1,8 @@ import { equiv } from "@thi.ng/equiv"; -import { +import type { Attribs, IHiccupPathSegment, IHiccupShape, - Type, } from "@thi.ng/geom-api"; import { pointAt as arcPointAt, @@ -25,7 +24,7 @@ export class Arc implements IHiccupShape, IHiccupPathSegment { ) {} get type() { - return Type.ARC; + return "arc"; } copy(): Arc { diff --git a/packages/geom/src/api/circle.ts b/packages/geom/src/api/circle.ts index bbc803d3cf..db5020ded4 100644 --- a/packages/geom/src/api/circle.ts +++ b/packages/geom/src/api/circle.ts @@ -1,4 +1,4 @@ -import { Attribs, IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { Attribs, IHiccupShape } from "@thi.ng/geom-api"; import { set, Vec } from "@thi.ng/vectors"; import { copyAttribs } from "../internal/copy-attribs"; @@ -10,7 +10,7 @@ export class Circle implements IHiccupShape { ) {} get type() { - return Type.CIRCLE; + return "circle"; } copy(): Circle { diff --git a/packages/geom/src/api/cubic.ts b/packages/geom/src/api/cubic.ts index a3844efece..1a53f2740b 100644 --- a/packages/geom/src/api/cubic.ts +++ b/packages/geom/src/api/cubic.ts @@ -1,10 +1,10 @@ -import { IHiccupPathSegment, Type } from "@thi.ng/geom-api"; +import type { IHiccupPathSegment } from "@thi.ng/geom-api"; import { copyShape } from "../internal/copy-shape"; import { APC } from "./apc"; export class Cubic extends APC implements IHiccupPathSegment { get type() { - return Type.CUBIC; + return "cubic"; } copy(): Cubic { diff --git a/packages/geom/src/api/ellipse.ts b/packages/geom/src/api/ellipse.ts index 56255d1757..00a43e7ad0 100644 --- a/packages/geom/src/api/ellipse.ts +++ b/packages/geom/src/api/ellipse.ts @@ -1,5 +1,5 @@ import { isNumber } from "@thi.ng/checks"; -import { Attribs, IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { Attribs, IHiccupShape } from "@thi.ng/geom-api"; import { set, Vec } from "@thi.ng/vectors"; import { copyAttribs } from "../internal/copy-attribs"; @@ -15,7 +15,7 @@ export class Ellipse implements IHiccupShape { } get type() { - return Type.ELLIPSE; + return "ellipse"; } copy(): Ellipse { diff --git a/packages/geom/src/api/group.ts b/packages/geom/src/api/group.ts index 59cc9ef3d1..ef1293dabe 100644 --- a/packages/geom/src/api/group.ts +++ b/packages/geom/src/api/group.ts @@ -1,5 +1,5 @@ import { equiv } from "@thi.ng/equiv"; -import { Attribs, IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { Attribs, IHiccupShape } from "@thi.ng/geom-api"; import { copyAttribs } from "../internal/copy-attribs"; export class Group implements IHiccupShape { @@ -9,7 +9,7 @@ export class Group implements IHiccupShape { ) {} get type() { - return Type.GROUP; + return "group"; } *[Symbol.iterator]() { diff --git a/packages/geom/src/api/line.ts b/packages/geom/src/api/line.ts index 8439f25376..c48bcb4302 100644 --- a/packages/geom/src/api/line.ts +++ b/packages/geom/src/api/line.ts @@ -1,10 +1,10 @@ -import { IHiccupPathSegment, IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { IHiccupPathSegment, IHiccupShape } from "@thi.ng/geom-api"; import { copyShape } from "../internal/copy-shape"; import { APC } from "./apc"; export class Line extends APC implements IHiccupShape, IHiccupPathSegment { get type() { - return Type.LINE; + return "line"; } copy(): Line { diff --git a/packages/geom/src/api/path.ts b/packages/geom/src/api/path.ts index 9e8a03199d..e987afb0da 100644 --- a/packages/geom/src/api/path.ts +++ b/packages/geom/src/api/path.ts @@ -1,8 +1,8 @@ import { equiv } from "@thi.ng/equiv"; import { illegalState } from "@thi.ng/errors"; -import { Attribs, IHiccupShape, PathSegment, Type } from "@thi.ng/geom-api"; -import { copyAttribs } from "../internal/copy-attribs"; +import type { Attribs, IHiccupShape, PathSegment } from "@thi.ng/geom-api"; import { copy } from "@thi.ng/vectors"; +import { copyAttribs } from "../internal/copy-attribs"; export class Path implements IHiccupShape { closed = false; @@ -13,7 +13,7 @@ export class Path implements IHiccupShape { ) {} get type() { - return Type.PATH; + return "path"; } *[Symbol.iterator]() { diff --git a/packages/geom/src/api/plane.ts b/packages/geom/src/api/plane.ts index e2b2cd9f89..7225caf488 100644 --- a/packages/geom/src/api/plane.ts +++ b/packages/geom/src/api/plane.ts @@ -1,4 +1,4 @@ -import { Attribs, IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { Attribs, IHiccupShape } from "@thi.ng/geom-api"; import { set, Vec } from "@thi.ng/vectors"; import { copyAttribs } from "../internal/copy-attribs"; @@ -10,7 +10,7 @@ export class Plane implements IHiccupShape { ) {} get type() { - return Type.PLANE; + return "plane"; } copy(): Plane { diff --git a/packages/geom/src/api/points.ts b/packages/geom/src/api/points.ts index f576e23ebb..7b21928915 100644 --- a/packages/geom/src/api/points.ts +++ b/packages/geom/src/api/points.ts @@ -1,10 +1,10 @@ -import { IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { IHiccupShape } from "@thi.ng/geom-api"; import { copyShape } from "../internal/copy-shape"; import { APC } from "./apc"; export class Points extends APC implements IHiccupShape { get type() { - return Type.POINTS; + return "points"; } copy(): Points { @@ -18,7 +18,7 @@ export class Points extends APC implements IHiccupShape { export class Points3 extends APC implements IHiccupShape { get type() { - return Type.POINTS3; + return "points3"; } copy(): Points3 { diff --git a/packages/geom/src/api/polygon.ts b/packages/geom/src/api/polygon.ts index bb91585e70..5f55351d5c 100644 --- a/packages/geom/src/api/polygon.ts +++ b/packages/geom/src/api/polygon.ts @@ -1,10 +1,10 @@ -import { IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { IHiccupShape } from "@thi.ng/geom-api"; import { copyShape } from "../internal/copy-shape"; import { APC } from "./apc"; export class Polygon extends APC implements IHiccupShape { get type() { - return Type.POLYGON; + return "poly"; } copy(): Polygon { diff --git a/packages/geom/src/api/polyline.ts b/packages/geom/src/api/polyline.ts index 3a46211222..c0cdd39c55 100644 --- a/packages/geom/src/api/polyline.ts +++ b/packages/geom/src/api/polyline.ts @@ -1,10 +1,10 @@ -import { IHiccupPathSegment, IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { IHiccupPathSegment, IHiccupShape } from "@thi.ng/geom-api"; import { copyShape } from "../internal/copy-shape"; import { APC } from "./apc"; export class Polyline extends APC implements IHiccupShape, IHiccupPathSegment { get type() { - return Type.POLYLINE; + return "polyline"; } copy(): Polyline { diff --git a/packages/geom/src/api/quad.ts b/packages/geom/src/api/quad.ts index d5718ec713..cd0de4b7b5 100644 --- a/packages/geom/src/api/quad.ts +++ b/packages/geom/src/api/quad.ts @@ -1,10 +1,10 @@ -import { IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { IHiccupShape } from "@thi.ng/geom-api"; import { copyShape } from "../internal/copy-shape"; import { APC } from "./apc"; export class Quad extends APC implements IHiccupShape { get type() { - return Type.QUAD; + return "quad"; } copy(): Quad { diff --git a/packages/geom/src/api/quad3.ts b/packages/geom/src/api/quad3.ts index 704bf86522..893b6db869 100644 --- a/packages/geom/src/api/quad3.ts +++ b/packages/geom/src/api/quad3.ts @@ -1,10 +1,10 @@ -import { IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { IHiccupShape } from "@thi.ng/geom-api"; import { copyShape } from "../internal/copy-shape"; import { APC } from "./apc"; export class Quad3 extends APC implements IHiccupShape { get type() { - return Type.QUAD3; + return "quad3"; } copy(): Quad3 { diff --git a/packages/geom/src/api/quadratic.ts b/packages/geom/src/api/quadratic.ts index f3c5f63e2b..7011d0a177 100644 --- a/packages/geom/src/api/quadratic.ts +++ b/packages/geom/src/api/quadratic.ts @@ -1,10 +1,10 @@ -import { IHiccupPathSegment, IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { IHiccupPathSegment, IHiccupShape } from "@thi.ng/geom-api"; import { copyShape } from "../internal/copy-shape"; import { APC } from "./apc"; export class Quadratic extends APC implements IHiccupShape, IHiccupPathSegment { get type() { - return Type.QUADRATIC; + return "quadratic"; } copy(): Quadratic { diff --git a/packages/geom/src/api/ray.ts b/packages/geom/src/api/ray.ts index 594f070e58..816db788b5 100644 --- a/packages/geom/src/api/ray.ts +++ b/packages/geom/src/api/ray.ts @@ -1,4 +1,4 @@ -import { Attribs, IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { Attribs, IHiccupShape } from "@thi.ng/geom-api"; import { maddN2, set, Vec } from "@thi.ng/vectors"; import { copyAttribs } from "../internal/copy-attribs"; @@ -6,7 +6,7 @@ export class Ray implements IHiccupShape { constructor(public pos: Vec, public dir: Vec, public attribs?: Attribs) {} get type() { - return Type.RAY; + return "ray"; } copy(): Ray { diff --git a/packages/geom/src/api/rect.ts b/packages/geom/src/api/rect.ts index ceb4866409..539848029d 100644 --- a/packages/geom/src/api/rect.ts +++ b/packages/geom/src/api/rect.ts @@ -1,5 +1,5 @@ import { isNumber } from "@thi.ng/checks"; -import { AABBLike, Attribs, IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { AABBLike, Attribs, IHiccupShape } from "@thi.ng/geom-api"; import { add2, set, Vec } from "@thi.ng/vectors"; import { copyAttribs } from "../internal/copy-attribs"; @@ -15,7 +15,7 @@ export class Rect implements AABBLike, IHiccupShape { } get type() { - return Type.RECT; + return "rect"; } copy(): Rect { diff --git a/packages/geom/src/api/sphere.ts b/packages/geom/src/api/sphere.ts index 04fb486ea2..6e38ed3bfe 100644 --- a/packages/geom/src/api/sphere.ts +++ b/packages/geom/src/api/sphere.ts @@ -1,4 +1,4 @@ -import { Attribs, IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { Attribs, IHiccupShape } from "@thi.ng/geom-api"; import { set3, Vec } from "@thi.ng/vectors"; import { copyAttribs } from "../internal/copy-attribs"; @@ -10,7 +10,7 @@ export class Sphere implements IHiccupShape { ) {} get type() { - return Type.SPHERE; + return "sphere"; } copy(): Sphere { diff --git a/packages/geom/src/api/text.ts b/packages/geom/src/api/text.ts index f8f321a5b8..5ad7ab2041 100644 --- a/packages/geom/src/api/text.ts +++ b/packages/geom/src/api/text.ts @@ -1,4 +1,4 @@ -import { Attribs, IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { Attribs, IHiccupShape } from "@thi.ng/geom-api"; import { set, Vec } from "@thi.ng/vectors"; import { copyAttribs } from "../internal/copy-attribs"; @@ -12,7 +12,7 @@ export class Text implements IHiccupShape { constructor(public pos: Vec, public body: any, public attribs?: Attribs) {} get type() { - return Type.TEXT; + return "text"; } copy(): Text { diff --git a/packages/geom/src/api/triangle.ts b/packages/geom/src/api/triangle.ts index ce078c0dec..3fc7a738b3 100644 --- a/packages/geom/src/api/triangle.ts +++ b/packages/geom/src/api/triangle.ts @@ -1,10 +1,10 @@ -import { IHiccupShape, Type } from "@thi.ng/geom-api"; +import type { IHiccupShape } from "@thi.ng/geom-api"; import { copyShape } from "../internal/copy-shape"; import { APC } from "./apc"; export class Triangle extends APC implements IHiccupShape { get type() { - return Type.TRIANGLE; + return "tri"; } copy(): Triangle { diff --git a/packages/geom/src/ops/arc-length.ts b/packages/geom/src/ops/arc-length.ts index 5e0e1f9516..805fe01e21 100644 --- a/packages/geom/src/ops/arc-length.ts +++ b/packages/geom/src/ops/arc-length.ts @@ -1,6 +1,6 @@ import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation1 } from "@thi.ng/defmulti"; -import { IShape, Type } from "@thi.ng/geom-api"; +import type { IShape } from "@thi.ng/geom-api"; import { perimeter } from "@thi.ng/geom-poly-utils"; import { PI, TAU } from "@thi.ng/math"; import { dist } from "@thi.ng/vectors"; @@ -34,30 +34,29 @@ import { dispatch } from "../internal/dispatch"; export const arcLength = defmulti(dispatch); arcLength.addAll(>>{ - [Type.CIRCLE]: ($: Circle) => TAU * $.r, + circle: ($: Circle) => TAU * $.r, - [Type.ELLIPSE]: ({ r: [a, b] }: Ellipse) => + ellipse: ({ r: [a, b] }: Ellipse) => // Ramanujan approximation // https://www.mathsisfun.com/geometry/ellipse-perimeter.html PI * (3 * (a + b) - Math.sqrt((3 * a + b) * (3 * b + a))), - [Type.GROUP]: ({ children }: Group) => + group: ({ children }: Group) => children.reduce((sum, $) => sum + arcLength($), 0), - [Type.LINE]: ({ points }: Line) => dist(points[0], points[1]), + line: ({ points }: Line) => dist(points[0], points[1]), - [Type.POLYGON]: ({ points }: Polygon) => - perimeter(points, points.length, true), + poly: ({ points }: Polygon) => perimeter(points, points.length, true), - [Type.POLYLINE]: ({ points }: Polygon) => perimeter(points, points.length), + polyline: ({ points }: Polygon) => perimeter(points, points.length), - [Type.RECT]: ({ size }: Rect) => 2 * (size[0] + size[1]), + rect: ({ size }: Rect) => 2 * (size[0] + size[1]), - [Type.TRIANGLE]: ({ points }: Triangle) => + tri: ({ points }: Triangle) => dist(points[0], points[1]) + dist(points[1], points[2]) + dist(points[2], points[0]), }); -arcLength.isa(Type.QUAD, Type.POLYGON); -arcLength.isa(Type.TRIANGLE, Type.POLYGON); +arcLength.isa("quad", "poly"); +arcLength.isa("tri", "poly"); diff --git a/packages/geom/src/ops/area.ts b/packages/geom/src/ops/area.ts index 834ee00e86..85ea671c26 100644 --- a/packages/geom/src/ops/area.ts +++ b/packages/geom/src/ops/area.ts @@ -5,7 +5,7 @@ import { Implementation1O, MultiFn1O, } from "@thi.ng/defmulti"; -import { IShape, Type } from "@thi.ng/geom-api"; +import type { IShape } from "@thi.ng/geom-api"; import { polyArea2 } from "@thi.ng/geom-poly-utils"; import { PI } from "@thi.ng/math"; import { signedArea2, Vec } from "@thi.ng/vectors"; @@ -57,34 +57,34 @@ export const area: MultiFn1O = defmulti(dispatch); area.add(DEFAULT, () => 0); area.addAll(>>{ - [Type.AABB]: ({ size: [w, h, d] }: AABB) => 2 * (w * h + w * d + h * d), + aabb: ({ size: [w, h, d] }: AABB) => 2 * (w * h + w * d + h * d), - [Type.ARC]: + arc: // http://cut-the-knot.org/Generalization/Cavalieri2.shtml ($: Arc) => 0.5 * Math.abs($.start - $.end) * $.r[0] * $.r[1], - [Type.CIRCLE]: ($: Circle) => PI * $.r ** 2, + circle: ($: Circle) => PI * $.r ** 2, - [Type.ELLIPSE]: ($: Ellipse) => PI * $.r[0] * $.r[1], + ellipse: ($: Ellipse) => PI * $.r[0] * $.r[1], - [Type.GROUP]: ({ children }: Group) => + group: ({ children }: Group) => children.reduce((sum, $) => sum + area($, false), 0), - [Type.PLANE]: () => Infinity, + plane: () => Infinity, - [Type.POLYGON]: ($: Polygon, signed?) => { + poly: ($: Polygon, signed?) => { const area = polyArea2($.points); return signed ? area : Math.abs(area); }, - [Type.RECT]: ($: Rect) => $.size[0] * $.size[1], + rect: ($: Rect) => $.size[0] * $.size[1], - [Type.SPHERE]: ($: Sphere) => 4 * PI * $.r ** 2, + sphere: ($: Sphere) => 4 * PI * $.r ** 2, - [Type.TRIANGLE]: ($: Triangle, signed?) => { + tri: ($: Triangle, signed?) => { const area = 0.5 * signedArea2(...(<[Vec, Vec, Vec]>$.points)); return signed ? area : Math.abs(area); }, }); -area.isa(Type.QUAD, Type.POLYGON); +area.isa("quad", "poly"); diff --git a/packages/geom/src/ops/as-cubic.ts b/packages/geom/src/ops/as-cubic.ts index ca6f69b397..960921c852 100644 --- a/packages/geom/src/ops/as-cubic.ts +++ b/packages/geom/src/ops/as-cubic.ts @@ -1,6 +1,6 @@ import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation1, MultiFn1O } from "@thi.ng/defmulti"; -import { CubicOpts, IShape, PCLike, Type } from "@thi.ng/geom-api"; +import type { CubicOpts, IShape, PCLike } from "@thi.ng/geom-api"; import { closedCubicFromBreakPoints, closedCubicFromControlPoints, @@ -34,24 +34,23 @@ export const asCubic: MultiFn1O, Cubic[]> = defmulti( ); asCubic.addAll(>>{ - [Type.ARC]: cubicFromArc, + arc: cubicFromArc, - [Type.CIRCLE]: ($: Circle) => - asCubic(arc($.pos, $.r, 0, 0, TAU, true, true)), + circle: ($: Circle) => asCubic(arc($.pos, $.r, 0, 0, TAU, true, true)), - [Type.CUBIC]: ($: Cubic) => [$], + cubic: ($: Cubic) => [$], - [Type.GROUP]: ($: Group) => [...mapcat(asCubic, $.children)], + group: ($: Group) => [...mapcat(asCubic, $.children)], - [Type.LINE]: ({ attribs, points }: Line) => [ + line: ({ attribs, points }: Line) => [ cubicFromLine(points[0], points[1], { ...attribs }), ], - [Type.PATH]: ($: Path) => [ + path: ($: Path) => [ ...mapcat((s) => (s.geo ? asCubic(s.geo) : null), $.segments), ], - [Type.POLYGON]: ($: Polygon, opts: Partial = {}) => + poly: ($: Polygon, opts: Partial = {}) => polyCubic( $, opts, @@ -59,7 +58,7 @@ asCubic.addAll(>>{ closedCubicFromControlPoints ), - [Type.POLYLINE]: ($: Polyline, opts: Partial = {}) => + polyline: ($: Polyline, opts: Partial = {}) => polyCubic( $, opts, @@ -67,15 +66,16 @@ asCubic.addAll(>>{ openCubicFromControlPoints ), - [Type.QUADRATIC]: ({ attribs, points }: Quadratic) => [ + quadratic: ({ attribs, points }: Quadratic) => [ cubicFromQuadratic(points[0], points[1], points[2], { ...attribs }), ], - [Type.RECT]: ($: Rect, opts?: Partial) => - asCubic(asPolygon($), opts), + rect: ($: Rect, opts?: Partial) => asCubic(asPolygon($), opts), }); -asCubic.isa(Type.ELLIPSE, Type.CIRCLE); +asCubic.isa("ellipse", "circle"); +asCubic.isa("quad", "poly"); +asCubic.isa("tri", "poly"); // prettier-ignore const polyCubic = ( diff --git a/packages/geom/src/ops/as-polygon.ts b/packages/geom/src/ops/as-polygon.ts index b991fc6ada..e84b36a6b3 100644 --- a/packages/geom/src/ops/as-polygon.ts +++ b/packages/geom/src/ops/as-polygon.ts @@ -1,5 +1,5 @@ import { defmulti, MultiFn1O } from "@thi.ng/defmulti"; -import { IShape, SamplingOpts, Type } from "@thi.ng/geom-api"; +import type { IShape, SamplingOpts } from "@thi.ng/geom-api"; import { Polygon } from "../api/polygon"; import { copyAttribs } from "../internal/copy-attribs"; import { dispatch } from "../internal/dispatch"; @@ -12,15 +12,15 @@ export const asPolygon: MultiFn1O< > = defmulti(dispatch); asPolygon.addAll({ - [Type.POINTS]: ($, opts) => new Polygon(vertices($, opts), copyAttribs($)), + points: ($, opts) => new Polygon(vertices($, opts), copyAttribs($)), }); -asPolygon.isa(Type.CIRCLE, Type.POINTS); -asPolygon.isa(Type.ELLIPSE, Type.POINTS); -asPolygon.isa(Type.LINE, Type.POINTS); -asPolygon.isa(Type.PATH, Type.POINTS); -asPolygon.isa(Type.POLYGON, Type.POINTS); -asPolygon.isa(Type.POLYLINE, Type.POINTS); -asPolygon.isa(Type.QUAD, Type.POINTS); -asPolygon.isa(Type.RECT, Type.POINTS); -asPolygon.isa(Type.TRIANGLE, Type.POINTS); +asPolygon.isa("circle", "points"); +asPolygon.isa("ellipse", "points"); +asPolygon.isa("line", "points"); +asPolygon.isa("path", "points"); +asPolygon.isa("poly", "points"); +asPolygon.isa("polyline", "points"); +asPolygon.isa("quad", "points"); +asPolygon.isa("rect", "points"); +asPolygon.isa("tri", "points"); diff --git a/packages/geom/src/ops/as-polyline.ts b/packages/geom/src/ops/as-polyline.ts index a46c8c4738..95fde57c00 100644 --- a/packages/geom/src/ops/as-polyline.ts +++ b/packages/geom/src/ops/as-polyline.ts @@ -1,6 +1,6 @@ import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation1O, MultiFn1O } from "@thi.ng/defmulti"; -import { IShape, SamplingOpts, Type } from "@thi.ng/geom-api"; +import type { IShape, SamplingOpts } from "@thi.ng/geom-api"; import { set } from "@thi.ng/vectors"; import type { Cubic } from "../api/cubic"; import type { Path } from "../api/path"; @@ -20,30 +20,30 @@ asPolyline.addAll(< Implementation1O, Polyline> > >{ - [Type.CUBIC]: ($: Cubic, opts) => new Polyline(vertices($, opts)), + cubic: ($: Cubic, opts) => new Polyline(vertices($, opts)), - [Type.POINTS]: ($: IShape, opts) => + points: ($: IShape, opts) => new Polyline(vertices($, opts), copyAttribs($)), - [Type.PATH]: ($: Path, opts) => { + path: ($: Path, opts) => { const pts = vertices($, opts); $.closed && pts.push(set([], pts[0])); return new Polyline(pts, copyAttribs($)); }, - [Type.POLYGON]: ($: IShape, opts) => { + poly: ($: IShape, opts) => { const pts = vertices($, opts); pts.push(set([], pts[0])); return new Polyline(pts, copyAttribs($)); }, }); -asPolyline.isa(Type.ARC, Type.CUBIC); -asPolyline.isa(Type.CIRCLE, Type.POLYGON); -asPolyline.isa(Type.ELLIPSE, Type.POLYGON); -asPolyline.isa(Type.LINE, Type.POINTS); -asPolyline.isa(Type.POLYLINE, Type.POINTS); -asPolyline.isa(Type.QUAD, Type.POLYGON); -asPolyline.isa(Type.QUADRATIC, Type.CUBIC); -asPolyline.isa(Type.RECT, Type.POLYGON); -asPolyline.isa(Type.TRIANGLE, Type.POLYGON); +asPolyline.isa("arc", "cubic"); +asPolyline.isa("circle", "poly"); +asPolyline.isa("ellipse", "poly"); +asPolyline.isa("line", "points"); +asPolyline.isa("polyline", "points"); +asPolyline.isa("quad", "poly"); +asPolyline.isa("quadratic", "cubic"); +asPolyline.isa("rect", "poly"); +asPolyline.isa("tri", "poly"); diff --git a/packages/geom/src/ops/bounds.ts b/packages/geom/src/ops/bounds.ts index 8af33d660a..120fb46dde 100644 --- a/packages/geom/src/ops/bounds.ts +++ b/packages/geom/src/ops/bounds.ts @@ -1,6 +1,6 @@ import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation1 } from "@thi.ng/defmulti"; -import { AABBLike, IShape, PathSegment, PCLike, Type } from "@thi.ng/geom-api"; +import type { AABBLike, IShape, PathSegment, PCLike } from "@thi.ng/geom-api"; import { bounds as arcBounds } from "@thi.ng/geom-arc"; import { bounds as _bounds } from "@thi.ng/geom-poly-utils"; import { cubicBounds, quadraticBounds } from "@thi.ng/geom-splines"; @@ -37,29 +37,29 @@ import { dispatch } from "../internal/dispatch"; export const bounds = defmulti(dispatch); bounds.addAll(>>{ - [Type.ARC]: ($: Arc) => + arc: ($: Arc) => rectFromMinMax(...arcBounds($.pos, $.r, $.axis, $.start, $.end)), - [Type.CIRCLE]: ($: Circle) => + circle: ($: Circle) => new Rect(subN2([], $.pos, $.r), mulN2(null, [2, 2], $.r)), - [Type.CUBIC]: ({ points }: Cubic) => + cubic: ({ points }: Cubic) => rectFromMinMax( ...cubicBounds(points[0], points[1], points[2], points[3]) ), - [Type.ELLIPSE]: ($: Ellipse) => + ellipse: ($: Ellipse) => new Rect(sub2([], $.pos, $.r), mul2(null, [2, 2], $.r)), - [Type.GROUP]: ($: Group) => { + group: ($: Group) => { const res = collBounds($.children, bounds); return res ? new Rect(...res) : undefined; }, - [Type.LINE]: ({ points: [a, b] }: Line) => + line: ({ points: [a, b] }: Line) => rectFromMinMax(min([], a, b), max([], a, b)), - [Type.PATH]: (path: Path) => { + path: (path: Path) => { const b = collBounds( [ ...iterator1( @@ -75,22 +75,22 @@ bounds.addAll(>>{ return b ? new Rect(...b) : undefined; }, - [Type.POINTS]: ($: PCLike) => + points: ($: PCLike) => rectFromMinMax(..._bounds($.points, set2([], MAX2), set2([], MIN2))), - [Type.POINTS3]: ($: PCLike) => + points3: ($: PCLike) => aabbFromMinMax(..._bounds($.points, set3([], MAX3), set3([], MIN3))), - [Type.QUADRATIC]: ({ points }: Quadratic) => + quadratic: ({ points }: Quadratic) => rectFromMinMax(...quadraticBounds(points[0], points[1], points[2])), - [Type.RECT]: ($: IShape) => $.copy(), + rect: ($: IShape) => $.copy(), - [Type.TEXT]: ($: Text) => new Rect(set2([], $.pos), [0, 0]), + text: ($: Text) => new Rect(set2([], $.pos), [0, 0]), }); -bounds.isa(Type.AABB, Type.RECT); -bounds.isa(Type.POLYGON, Type.POINTS); -bounds.isa(Type.POLYLINE, Type.POINTS); -bounds.isa(Type.QUAD, Type.POINTS); -bounds.isa(Type.TRIANGLE, Type.POINTS); +bounds.isa("aabb", "rect"); +bounds.isa("poly", "points"); +bounds.isa("polyline", "points"); +bounds.isa("quad", "points"); +bounds.isa("tri", "points"); diff --git a/packages/geom/src/ops/center.ts b/packages/geom/src/ops/center.ts index 0cf8383527..fcd3c72c08 100644 --- a/packages/geom/src/ops/center.ts +++ b/packages/geom/src/ops/center.ts @@ -1,10 +1,11 @@ +import type { IObjectOf } from "@thi.ng/api"; import { DEFAULT, defmulti, Implementation1O, MultiFn1O, } from "@thi.ng/defmulti"; -import { IShape, Type } from "@thi.ng/geom-api"; +import type { IShape } from "@thi.ng/geom-api"; import { ReadonlyVec, set2, set3, submN, ZERO2, ZERO3 } from "@thi.ng/vectors"; import { Arc } from "../api/arc"; import { Circle } from "../api/circle"; @@ -14,7 +15,6 @@ import { copyAttribs } from "../internal/copy-attribs"; import { dispatch } from "../internal/dispatch"; import { centroid } from "./centroid"; import { translate } from "./translate"; -import type { IObjectOf } from "@thi.ng/api"; export const center: MultiFn1O< IShape, @@ -30,7 +30,7 @@ center.add(DEFAULT, ($, origin = ZERO3) => { center.addAll(< IObjectOf> >{ - [Type.ARC]: ($: Arc, origin = ZERO2) => + arc: ($: Arc, origin = ZERO2) => new Arc( set2([], origin), set2([], $.r), @@ -42,12 +42,12 @@ center.addAll(< copyAttribs($) ), - [Type.CIRCLE]: ($: Circle, origin = ZERO2) => + circle: ($: Circle, origin = ZERO2) => new Circle(set2([], origin), $.r, copyAttribs($)), - [Type.ELLIPSE]: ($: Ellipse, origin = ZERO2) => + ellipse: ($: Ellipse, origin = ZERO2) => new Ellipse(set2([], origin), set2([], $.r), copyAttribs($)), - [Type.SPHERE]: ($: Sphere, origin = ZERO3) => + sphere: ($: Sphere, origin = ZERO3) => new Sphere(set3([], origin), $.r, copyAttribs($)), }); diff --git a/packages/geom/src/ops/centroid.ts b/packages/geom/src/ops/centroid.ts index c190d392ba..0939edb844 100644 --- a/packages/geom/src/ops/centroid.ts +++ b/packages/geom/src/ops/centroid.ts @@ -1,6 +1,6 @@ import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation1O, MultiFn1O } from "@thi.ng/defmulti"; -import { AABBLike, IShape, PCLike, Type } from "@thi.ng/geom-api"; +import type { AABBLike, IShape, PCLike } from "@thi.ng/geom-api"; import { centerOfWeight2, centroid as _centroid, @@ -20,25 +20,25 @@ export const centroid: MultiFn1O = defmulti( ); centroid.addAll(>>{ - [Type.CIRCLE]: ($: Circle, out?) => set(out || [], $.pos), + circle: ($: Circle, out?) => set(out || [], $.pos), - [Type.GROUP]: ($: Group) => { + group: ($: Group) => { const b = bounds($); return b ? centroid(b) : undefined; }, - [Type.LINE]: ({ points }: Line, out?) => + line: ({ points }: Line, out?) => mixN(out || [], points[0], points[1], 0.5), - [Type.POINTS]: ($: PCLike, out?) => _centroid($.points, out), + points: ($: PCLike, out?) => _centroid($.points, out), - [Type.PLANE]: ($: Plane, out?) => mulN(out || [], $.normal, $.w), + plane: ($: Plane, out?) => mulN(out || [], $.normal, $.w), - [Type.POLYGON]: ($: Polygon, out?) => centerOfWeight2($.points, out), + poly: ($: Polygon, out?) => centerOfWeight2($.points, out), - [Type.RECT]: ($: AABBLike, out?) => maddN(out || [], $.size, 0.5, $.pos), + rect: ($: AABBLike, out?) => maddN(out || [], $.size, 0.5, $.pos), - [Type.TRIANGLE]: ({ points }: Triangle, out?) => + tri: ({ points }: Triangle, out?) => divN( null, add(null, add(out || [], points[0], points[1]), points[2]), @@ -46,13 +46,13 @@ centroid.addAll(>>{ ), }); -centroid.isa(Type.ARC, Type.CIRCLE); -centroid.isa(Type.AABB, Type.RECT); -centroid.isa(Type.ELLIPSE, Type.CIRCLE); -centroid.isa(Type.LINE3, Type.LINE); -centroid.isa(Type.POINTS3, Type.POINTS); -centroid.isa(Type.POLYLINE, Type.POINTS); -centroid.isa(Type.QUAD, Type.POLYGON); -centroid.isa(Type.SPHERE, Type.CIRCLE); -centroid.isa(Type.TEXT, Type.CIRCLE); -centroid.isa(Type.TRIANGLE3, Type.TRIANGLE); +centroid.isa("arc", "circle"); +centroid.isa("aabb", "rect"); +centroid.isa("ellipse", "circle"); +centroid.isa("line3", "line"); +centroid.isa("points3", "points"); +centroid.isa("polyline", "points"); +centroid.isa("quad", "poly"); +centroid.isa("sphere", "circle"); +centroid.isa("text", "circle"); +centroid.isa("tri3", "tri"); diff --git a/packages/geom/src/ops/classify-point.ts b/packages/geom/src/ops/classify-point.ts index d0528a7333..afb37ac9cd 100644 --- a/packages/geom/src/ops/classify-point.ts +++ b/packages/geom/src/ops/classify-point.ts @@ -1,6 +1,6 @@ import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2O, MultiFn2O } from "@thi.ng/defmulti"; -import { IShape, Type } from "@thi.ng/geom-api"; +import type { IShape } from "@thi.ng/geom-api"; import { classifyPointInCircle, classifyPointInTriangle2, @@ -22,13 +22,13 @@ export const classifyPoint: MultiFn2O< classifyPoint.addAll(< IObjectOf> >{ - [Type.CIRCLE]: ($: Circle, p, eps = EPS) => + circle: ($: Circle, p, eps = EPS) => classifyPointInCircle(p, $.pos, $.r, eps), - [Type.PLANE]: ($: Plane, p, eps) => sign(dot($.normal, p) - $.w, eps), + plane: ($: Plane, p, eps) => sign(dot($.normal, p) - $.w, eps), - [Type.TRIANGLE]: ({ points }: Triangle, p: ReadonlyVec, eps = EPS) => + tri: ({ points }: Triangle, p: ReadonlyVec, eps = EPS) => classifyPointInTriangle2(p, points[0], points[1], points[2], eps), }); -classifyPoint.isa(Type.SPHERE, Type.CIRCLE); +classifyPoint.isa("sphere", "circle"); diff --git a/packages/geom/src/ops/clip-convex.ts b/packages/geom/src/ops/clip-convex.ts index 33febaea68..62ab506d17 100644 --- a/packages/geom/src/ops/clip-convex.ts +++ b/packages/geom/src/ops/clip-convex.ts @@ -1,6 +1,6 @@ import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { IHiccupShape, IShape, Type } from "@thi.ng/geom-api"; +import type { IHiccupShape, IShape } from "@thi.ng/geom-api"; import { clipLineSegmentPoly } from "@thi.ng/geom-clip-line"; import { sutherlandHodgeman } from "@thi.ng/geom-clip-poly"; import { centroid } from "@thi.ng/geom-poly-utils"; @@ -23,7 +23,7 @@ clipConvex.addAll(< Implementation2 > >{ - [Type.GROUP]: ({ children, attribs }: Group, boundary) => { + group: ({ children, attribs }: Group, boundary) => { boundary = ensureVertices(boundary); const clipped: IHiccupShape[] = []; for (let c of children) { @@ -33,7 +33,7 @@ clipConvex.addAll(< return new Group({ ...attribs }, clipped); }, - [Type.LINE]: ($: Line, boundary) => { + line: ($: Line, boundary) => { const segments = clipLineSegmentPoly( $.points[0], $.points[1], @@ -44,13 +44,13 @@ clipConvex.addAll(< : undefined; }, - [Type.POLYGON]: ($: Polygon, boundary) => { + poly: ($: Polygon, boundary) => { boundary = ensureVertices(boundary); const pts = sutherlandHodgeman($.points, boundary, centroid(boundary)); return pts.length ? new Polygon(pts, copyAttribs($)) : undefined; }, - [Type.RECT]: ($: IShape, boundary) => { + rect: ($: IShape, boundary) => { boundary = ensureVertices(boundary); const pts = sutherlandHodgeman( vertices($), @@ -61,8 +61,8 @@ clipConvex.addAll(< }, }); -clipConvex.isa(Type.CIRCLE, Type.RECT); -clipConvex.isa(Type.ELLIPSE, Type.RECT); -clipConvex.isa(Type.PATH, Type.RECT); -clipConvex.isa(Type.QUAD, Type.POLYGON); -clipConvex.isa(Type.TRIANGLE, Type.POLYGON); +clipConvex.isa("circle", "rect"); +clipConvex.isa("ellipse", "rect"); +clipConvex.isa("path", "rect"); +clipConvex.isa("quad", "poly"); +clipConvex.isa("tri", "poly"); diff --git a/packages/geom/src/ops/closest-point.ts b/packages/geom/src/ops/closest-point.ts index ff2f718c6f..60ed3c2523 100644 --- a/packages/geom/src/ops/closest-point.ts +++ b/packages/geom/src/ops/closest-point.ts @@ -1,6 +1,6 @@ import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2O, MultiFn2O } from "@thi.ng/defmulti"; -import { IShape, PCLike, Type } from "@thi.ng/geom-api"; +import type { IShape, PCLike } from "@thi.ng/geom-api"; import { closestPoint as closestPointArc } from "@thi.ng/geom-arc"; import { closestPointAABB, @@ -33,39 +33,36 @@ export const closestPoint: MultiFn2O< closestPoint.addAll(< IObjectOf> >{ - [Type.AABB]: ($: AABB, p, out) => + aabb: ($: AABB, p, out) => closestPointAABB(p, $.pos, add3([], $.pos, $.size), out), - [Type.ARC]: ($: Arc, p, out) => + arc: ($: Arc, p, out) => closestPointArc(p, $.pos, $.r, $.axis, $.start, $.end, out), - [Type.CIRCLE]: ($: Circle, p, out) => - closestPointCircle(p, $.pos, $.r, out), + circle: ($: Circle, p, out) => closestPointCircle(p, $.pos, $.r, out), - [Type.CUBIC]: ({ points }: Cubic, p, out) => + cubic: ({ points }: Cubic, p, out) => closestPointCubic(p, points[0], points[1], points[2], points[3], out), - [Type.LINE]: ({ points }: Line, p, out) => + line: ({ points }: Line, p, out) => closestPointSegment(p, points[0], points[1], out), - [Type.PLANE]: ($: Plane, p, out) => - closestPointPlane(p, $.normal, $.w, out), + plane: ($: Plane, p, out) => closestPointPlane(p, $.normal, $.w, out), - [Type.POINTS]: ($: PCLike, p, out) => closestPointArray(p, $.points, out), + points: ($: PCLike, p, out) => closestPointArray(p, $.points, out), - [Type.POLYGON]: ($: PCLike, p, out) => - closestPointPolyline(p, $.points, true, out), + poly: ($: PCLike, p, out) => closestPointPolyline(p, $.points, true, out), - [Type.POLYLINE]: ($: PCLike, p, out) => + polyline: ($: PCLike, p, out) => closestPointPolyline(p, $.points, false, out), - [Type.QUADRATIC]: ({ points }: Quadratic, p, out) => + quadratic: ({ points }: Quadratic, p, out) => closestPointQuadratic(p, points[0], points[1], points[2], out), - [Type.RECT]: ($: Rect, p, out) => + rect: ($: Rect, p, out) => closestPointRect(p, $.pos, add2([], $.pos, $.size), out), }); -closestPoint.isa(Type.QUAD, Type.POLYGON); -closestPoint.isa(Type.SPHERE, Type.CIRCLE); -closestPoint.isa(Type.TRIANGLE, Type.POLYGON); +closestPoint.isa("quad", "poly"); +closestPoint.isa("sphere", "circle"); +closestPoint.isa("tri", "poly"); diff --git a/packages/geom/src/ops/convex-hull.ts b/packages/geom/src/ops/convex-hull.ts index 654d9b41b2..ab38e77850 100644 --- a/packages/geom/src/ops/convex-hull.ts +++ b/packages/geom/src/ops/convex-hull.ts @@ -1,6 +1,6 @@ import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation1 } from "@thi.ng/defmulti"; -import { IShape, PCLike, Type } from "@thi.ng/geom-api"; +import type { IShape, PCLike } from "@thi.ng/geom-api"; import { grahamScan2 } from "@thi.ng/geom-hull"; import { Polygon } from "../api/polygon"; import { copyAttribs } from "../internal/copy-attribs"; @@ -10,17 +10,16 @@ import { vertices } from "./vertices"; export const convexHull = defmulti(dispatch); convexHull.addAll(>>{ - [Type.GROUP]: ($: IShape) => new Polygon(vertices($), copyAttribs($)), + group: ($: IShape) => new Polygon(vertices($), copyAttribs($)), - [Type.POINTS]: ($: PCLike) => - new Polygon(grahamScan2($.points), copyAttribs($)), + points: ($: PCLike) => new Polygon(grahamScan2($.points), copyAttribs($)), - [Type.TRIANGLE]: ($: IShape) => $.copy(), + tri: ($: IShape) => $.copy(), }); -convexHull.isa(Type.CIRCLE, Type.TRIANGLE); -convexHull.isa(Type.ELLIPSE, Type.TRIANGLE); -convexHull.isa(Type.POLYGON, Type.POINTS); -convexHull.isa(Type.POLYLINE, Type.POINTS); -convexHull.isa(Type.QUAD, Type.POINTS); -convexHull.isa(Type.RECT, Type.TRIANGLE); +convexHull.isa("circle", "tri"); +convexHull.isa("ellipse", "tri"); +convexHull.isa("poly", "points"); +convexHull.isa("polyline", "points"); +convexHull.isa("quad", "points"); +convexHull.isa("rect", "tri"); diff --git a/packages/geom/src/ops/edges.ts b/packages/geom/src/ops/edges.ts index 911c6c0ec1..b23018928b 100644 --- a/packages/geom/src/ops/edges.ts +++ b/packages/geom/src/ops/edges.ts @@ -1,5 +1,7 @@ +import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation1O, MultiFn1O } from "@thi.ng/defmulti"; -import { IShape, SamplingOpts, Type } from "@thi.ng/geom-api"; +import type { IShape, SamplingOpts } from "@thi.ng/geom-api"; +import type { VecPair } from "@thi.ng/vectors"; import type { AABB } from "../api/aabb"; import type { Polygon } from "../api/polygon"; import type { Polyline } from "../api/polyline"; @@ -7,8 +9,6 @@ import type { Rect } from "../api/rect"; import { dispatch } from "../internal/dispatch"; import { edgeIterator } from "../internal/edges"; import { vertices } from "./vertices"; -import type { VecPair } from "@thi.ng/vectors"; -import type { IObjectOf } from "@thi.ng/api"; export const edges: MultiFn1O< IShape, @@ -25,7 +25,7 @@ edges.addAll(< > > >{ - [Type.AABB]: ($: AABB) => { + aabb: ($: AABB) => { const [a, b, c, d, e, f, g, h] = vertices($); return [ [a, b], @@ -43,13 +43,13 @@ edges.addAll(< ]; }, - [Type.POLYGON]: ($: Polygon) => edgeIterator($.points, true), + poly: ($: Polygon) => edgeIterator($.points, true), - [Type.POLYLINE]: ($: Polyline) => edgeIterator($.points), + polyline: ($: Polyline) => edgeIterator($.points), - [Type.RECT]: ($: Rect) => edgeIterator(vertices($), true), + rect: ($: Rect) => edgeIterator(vertices($), true), }); -edges.isa(Type.LINE, Type.POLYLINE); -edges.isa(Type.QUAD, Type.POLYGON); -edges.isa(Type.TRIANGLE, Type.POLYGON); +edges.isa("line", "polyline"); +edges.isa("quad", "poly"); +edges.isa("tri", "poly"); diff --git a/packages/geom/src/ops/flip.ts b/packages/geom/src/ops/flip.ts index 85ee3e9e5c..779dff220d 100644 --- a/packages/geom/src/ops/flip.ts +++ b/packages/geom/src/ops/flip.ts @@ -1,18 +1,18 @@ +import type { IObjectOf } from "@thi.ng/api"; import { DEFAULT, defmulti, Implementation1 } from "@thi.ng/defmulti"; -import { IShape, PCLike, Type } from "@thi.ng/geom-api"; +import type { IShape, PCLike } from "@thi.ng/geom-api"; import { neg } from "@thi.ng/vectors"; import type { Arc } from "../api/arc"; import type { Group } from "../api/group"; import type { Path } from "../api/path"; import type { Ray } from "../api/ray"; import { dispatch } from "../internal/dispatch"; -import type { IObjectOf } from "@thi.ng/api"; export const flip = defmulti(dispatch); flip.add(DEFAULT, ($) => $); flip.addAll(>>{ - [Type.ARC]: ($: Arc) => { + arc: ($: Arc) => { const t = $.start; $.start = $.end; $.end = t; @@ -20,32 +20,32 @@ flip.addAll(>>{ return $; }, - [Type.GROUP]: ($: Group) => { + group: ($: Group) => { $.children.forEach(flip); return $; }, - [Type.PATH]: ($: Path) => { + path: ($: Path) => { // TODO return $; }, - [Type.POINTS]: ($: PCLike) => { + points: ($: PCLike) => { $.points.reverse(); return $; }, - [Type.RAY]: ($: Ray) => { + ray: ($: Ray) => { $.dir = neg(null, $.dir); return $; }, }); -flip.isa(Type.CUBIC, Type.POINTS); -flip.isa(Type.LINE, Type.POINTS); -flip.isa(Type.POINTS3, Type.POINTS); -flip.isa(Type.POLYGON, Type.POINTS); -flip.isa(Type.POLYLINE, Type.POINTS); -flip.isa(Type.QUAD, Type.POINTS); -flip.isa(Type.QUADRATIC, Type.POINTS); -flip.isa(Type.TRIANGLE, Type.POINTS); +flip.isa("cubic", "points"); +flip.isa("line", "points"); +flip.isa("points3", "points"); +flip.isa("poly", "points"); +flip.isa("polyline", "points"); +flip.isa("quad", "points"); +flip.isa("quadratic", "points"); +flip.isa("tri", "points"); diff --git a/packages/geom/src/ops/intersects.ts b/packages/geom/src/ops/intersects.ts index 538cbe3bbc..728ed270c7 100644 --- a/packages/geom/src/ops/intersects.ts +++ b/packages/geom/src/ops/intersects.ts @@ -1,10 +1,10 @@ +import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2O, MultiFn2O } from "@thi.ng/defmulti"; import { IntersectionResult, IntersectionType, IShape, PCLike, - Type, } from "@thi.ng/geom-api"; import { intersectCircleCircle, @@ -26,7 +26,6 @@ import type { Ray } from "../api/ray"; import type { Rect } from "../api/rect"; import type { Sphere } from "../api/sphere"; import { dispatch2 } from "../internal/dispatch"; -import type { IObjectOf } from "@thi.ng/api"; export const intersects: MultiFn2O< IShape, @@ -38,50 +37,47 @@ export const intersects: MultiFn2O< intersects.addAll(< IObjectOf> >{ - [`${Type.CIRCLE}-${Type.CIRCLE}`]: (a: Sphere, b: Sphere) => + "circle-circle": (a: Sphere, b: Sphere) => intersectCircleCircle(a.pos, b.pos, a.r, b.r), - [`${Type.LINE}-${Type.LINE}`]: ({ points: a }: Line, { points: b }: Line) => + "line-line": ({ points: a }: Line, { points: b }: Line) => intersectLineLine(a[0], a[1], b[0], b[1]), - [`${Type.PLANE}-${Type.PLANE}`]: (a: Plane, b: Plane) => + "plane-plane": (a: Plane, b: Plane) => intersectPlanePlane(a.normal, a.w, b.normal, b.w), - [`${Type.RAY}-${Type.AABB}`]: (ray: Ray, box: AABB) => + "ray-aabb": (ray: Ray, box: AABB) => intersectRayAABB(ray.pos, ray.dir, box.pos, box.max()), - [`${Type.RAY}-${Type.CIRCLE}`]: (ray: Ray, sphere: Sphere) => + "ray-circle": (ray: Ray, sphere: Sphere) => intersectRayCircle(ray.pos, ray.dir, sphere.pos, sphere.r), - [`${Type.RAY}-${Type.PLANE}`]: (ray: Ray, plane: Plane) => + "ray-plane": (ray: Ray, plane: Plane) => intersectRayPlane(ray.pos, ray.dir, plane.normal, plane.w), - [`${Type.RAY}-${Type.POLYGON}`]: (ray: Ray, poly: PCLike) => + "ray-poly": (ray: Ray, poly: PCLike) => intersectRayPolyline(ray.pos, ray.dir, poly.points, true), - [`${Type.RAY}-${Type.POLYLINE}`]: (ray: Ray, poly: PCLike) => + "ray-polyline": (ray: Ray, poly: PCLike) => intersectRayPolyline(ray.pos, ray.dir, poly.points, false), - [`${Type.RAY}-${Type.RECT}`]: (ray: Ray, rect: Rect) => + "ray-rect": (ray: Ray, rect: Rect) => intersectRayRect(ray.pos, ray.dir, rect.pos, rect.max()), - [`${Type.RECT}-${Type.CIRCLE}`]: (rect: Rect, circle: Circle) => ({ + "rect-circle": (rect: Rect, circle: Circle) => ({ type: testRectCircle(rect.pos, rect.size, circle.pos, circle.r) ? IntersectionType.INTERSECT : IntersectionType.NONE, }), - [`${Type.RECT}-${Type.RECT}`]: (a: Rect, b: Rect) => ({ + "rect-rect": (a: Rect, b: Rect) => ({ type: testRectRect(a.pos, a.size, b.pos, b.size) ? IntersectionType.INTERSECT : IntersectionType.NONE, }), }); -intersects.isa(`${Type.RAY}-${Type.SPHERE}`, `${Type.RAY}-${Type.CIRCLE}`); -intersects.isa(`${Type.RAY}-${Type.QUAD}`, `${Type.RAY}-${Type.POLYGON}`); -intersects.isa(`${Type.RAY}-${Type.TRIANGLE}`, `${Type.RAY}-${Type.POLYGON}`); -intersects.isa( - `${Type.SPHERE}-${Type.SPHERE}`, - `${Type.CIRCLE}-${Type.CIRCLE}` -); +intersects.isa(`ray-sphere`, `ray-circle`); +intersects.isa(`ray-quad`, `ray-poly`); +intersects.isa(`ray-tri`, `ray-poly`); +intersects.isa(`sphere-sphere`, `circle-circle`); diff --git a/packages/geom/src/ops/map-point.ts b/packages/geom/src/ops/map-point.ts index f92ebeca4f..9782902d00 100644 --- a/packages/geom/src/ops/map-point.ts +++ b/packages/geom/src/ops/map-point.ts @@ -1,17 +1,17 @@ +import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2O, MultiFn2O } from "@thi.ng/defmulti"; -import { IShape, Type } from "@thi.ng/geom-api"; +import type { IShape } from "@thi.ng/geom-api"; import { div, ReadonlyVec, sub, Vec } from "@thi.ng/vectors"; import type { Rect } from "../api/rect"; import { dispatch } from "../internal/dispatch"; -import type { IObjectOf } from "@thi.ng/api"; export const mapPoint: MultiFn2O = defmulti( dispatch ); mapPoint.addAll(>>{ - [Type.RECT]: ($: Rect, p: ReadonlyVec, out: Vec = []) => + rect: ($: Rect, p: ReadonlyVec, out: Vec = []) => div(null, sub(out, p, $.pos), $.size), }); -mapPoint.isa(Type.AABB, Type.RECT); +mapPoint.isa("aabb", "rect"); diff --git a/packages/geom/src/ops/offset.ts b/packages/geom/src/ops/offset.ts index d75deba4db..cc248ec25f 100644 --- a/packages/geom/src/ops/offset.ts +++ b/packages/geom/src/ops/offset.ts @@ -1,6 +1,6 @@ import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { IShape, Type } from "@thi.ng/geom-api"; +import type { IShape } from "@thi.ng/geom-api"; import { add2, addN2, @@ -22,10 +22,9 @@ import { centroid } from "./centroid"; export const offset = defmulti(dispatch); offset.addAll(>>{ - [Type.CIRCLE]: ($: Circle, n) => - new Circle(set2([], $.pos), Math.max($.r + n, 0)), + circle: ($: Circle, n) => new Circle(set2([], $.pos), Math.max($.r + n, 0)), - [Type.LINE]: ({ points: [a, b], attribs }: Line, n) => { + line: ({ points: [a, b], attribs }: Line, n) => { const norm = normalCW([], a, b, n); return new Quad( [ @@ -38,7 +37,7 @@ offset.addAll(>>{ ); }, - [Type.RECT]: ($: Rect, n) => + rect: ($: Rect, n) => rectFromCentroid( centroid($)!, max2(null, addN2([], $.size, n), ZERO2), diff --git a/packages/geom/src/ops/point-at.ts b/packages/geom/src/ops/point-at.ts index 5a10a56f1e..6a5bdf7277 100644 --- a/packages/geom/src/ops/point-at.ts +++ b/packages/geom/src/ops/point-at.ts @@ -1,6 +1,6 @@ import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { IShape, Type } from "@thi.ng/geom-api"; +import type { IShape } from "@thi.ng/geom-api"; import { Sampler } from "@thi.ng/geom-resample"; import { cossin, fit01, TAU } from "@thi.ng/math"; import { @@ -28,30 +28,30 @@ import { vertices } from "./vertices"; export const pointAt = defmulti(dispatch); pointAt.addAll(>>{ - [Type.ARC]: ($: Arc, t: number) => $.pointAtTheta(fit01(t, $.start, $.end)), + arc: ($: Arc, t: number) => $.pointAtTheta(fit01(t, $.start, $.end)), - [Type.CIRCLE]: ($: Circle, t) => cartesian2(null, [$.r, TAU * t], $.pos), + circle: ($: Circle, t) => cartesian2(null, [$.r, TAU * t], $.pos), - [Type.CUBIC]: ({ points }: Cubic, t) => + cubic: ({ points }: Cubic, t) => mixCubic([], points[0], points[1], points[2], points[3], t), - [Type.ELLIPSE]: ($: Ellipse, t) => madd2([], cossin(TAU * t), $.r, $.pos), + ellipse: ($: Ellipse, t) => madd2([], cossin(TAU * t), $.r, $.pos), - [Type.LINE]: ({ points }: Line, t) => mixN2([], points[0], points[1], t), + line: ({ points }: Line, t) => mixN2([], points[0], points[1], t), - [Type.POLYGON]: ($: Polygon, t) => new Sampler($.points, true).pointAt(t), + poly: ($: Polygon, t) => new Sampler($.points, true).pointAt(t), - [Type.POLYLINE]: ($: Polygon, t) => new Sampler($.points).pointAt(t), + polyline: ($: Polygon, t) => new Sampler($.points).pointAt(t), - [Type.QUADRATIC]: ({ points }: Quadratic, t) => + quadratic: ({ points }: Quadratic, t) => mixQuadratic([], points[0], points[1], points[2], t), - [Type.RAY]: ($: Ray, t) => pointOnRay2([], $.pos, $.dir, t), + ray: ($: Ray, t) => pointOnRay2([], $.pos, $.dir, t), - [Type.RAY3]: ($: Ray, t) => pointOnRay3([], $.pos, $.dir, t), + ray3: ($: Ray, t) => pointOnRay3([], $.pos, $.dir, t), - [Type.RECT]: ($: Rect, t) => new Sampler(vertices($), true).pointAt(t), + rect: ($: Rect, t) => new Sampler(vertices($), true).pointAt(t), }); -pointAt.isa(Type.QUAD, Type.POLYGON); -pointAt.isa(Type.TRIANGLE, Type.POLYGON); +pointAt.isa("quad", "poly"); +pointAt.isa("tri", "poly"); diff --git a/packages/geom/src/ops/point-inside.ts b/packages/geom/src/ops/point-inside.ts index a4ebf63379..3dc428cd95 100644 --- a/packages/geom/src/ops/point-inside.ts +++ b/packages/geom/src/ops/point-inside.ts @@ -1,5 +1,6 @@ +import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { IShape, Type } from "@thi.ng/geom-api"; +import type { IShape } from "@thi.ng/geom-api"; import { pointInAABB, pointInCircle, @@ -17,27 +18,26 @@ import type { Polygon } from "../api/polygon"; import type { Rect } from "../api/rect"; import type { Triangle } from "../api/triangle"; import { dispatch } from "../internal/dispatch"; -import type { IObjectOf } from "@thi.ng/api"; export const pointInside = defmulti(dispatch); pointInside.addAll(>>{ - [Type.AABB]: ($: AABB, p: ReadonlyVec) => pointInAABB(p, $.pos, $.size), + aabb: ($: AABB, p: ReadonlyVec) => pointInAABB(p, $.pos, $.size), - [Type.CIRCLE]: ($: Circle, p) => pointInCircle(p, $.pos, $.r), + circle: ($: Circle, p) => pointInCircle(p, $.pos, $.r), - [Type.LINE]: ($: Line, p) => pointInSegment(p, $.points[0], $.points[1]), + line: ($: Line, p) => pointInSegment(p, $.points[0], $.points[1]), - [Type.POINTS]: ({ points }: Points, p) => isInArray(p, points), + points: ({ points }: Points, p) => isInArray(p, points), - [Type.POLYGON]: ($: Polygon, p) => pointInPolygon2(p, $.points) > 0, + poly: ($: Polygon, p) => pointInPolygon2(p, $.points) > 0, - [Type.RECT]: ($: Rect, p: ReadonlyVec) => pointInRect(p, $.pos, $.size), + rect: ($: Rect, p: ReadonlyVec) => pointInRect(p, $.pos, $.size), - [Type.TRIANGLE]: (tri: Triangle, p: ReadonlyVec) => + tri: (tri: Triangle, p: ReadonlyVec) => pointInTriangle2(p, ...(<[Vec, Vec, Vec]>tri.points)), }); -pointInside.isa(Type.POINTS3, Type.POINTS); -pointInside.isa(Type.QUAD, Type.POLYGON); -pointInside.isa(Type.SPHERE, Type.CIRCLE); +pointInside.isa("points3", "points"); +pointInside.isa("quad", "poly"); +pointInside.isa("sphere", "circle"); diff --git a/packages/geom/src/ops/resample.ts b/packages/geom/src/ops/resample.ts index 577df72323..77a081dac6 100644 --- a/packages/geom/src/ops/resample.ts +++ b/packages/geom/src/ops/resample.ts @@ -1,12 +1,12 @@ +import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { IShape, PCLike, SamplingOpts, Type } from "@thi.ng/geom-api"; +import type { IShape, PCLike, SamplingOpts } from "@thi.ng/geom-api"; import { resample as _resample } from "@thi.ng/geom-resample"; import { Polygon } from "../api/polygon"; import { Polyline } from "../api/polyline"; import { copyAttribs } from "../internal/copy-attribs"; import { dispatch } from "../internal/dispatch"; import { asPolygon } from "./as-polygon"; -import type { IObjectOf } from "@thi.ng/api"; export const resample = defmulti< IShape, @@ -17,17 +17,17 @@ export const resample = defmulti< resample.addAll(< IObjectOf, IShape>> >{ - [Type.CIRCLE]: ($: IShape, opts) => asPolygon($, opts), + circle: ($: IShape, opts) => asPolygon($, opts), - [Type.POLYGON]: ($: PCLike, opts) => + poly: ($: PCLike, opts) => new Polygon(_resample($.points, opts, true, true), copyAttribs($)), - [Type.POLYLINE]: ($: PCLike, opts) => + polyline: ($: PCLike, opts) => new Polyline(_resample($.points, opts, false, true), copyAttribs($)), }); -resample.isa(Type.ELLIPSE, Type.CIRCLE); -resample.isa(Type.LINE, Type.POLYLINE); -resample.isa(Type.QUAD, Type.POLYGON); -resample.isa(Type.TRIANGLE, Type.POLYGON); -resample.isa(Type.RECT, Type.CIRCLE); +resample.isa("ellipse", "circle"); +resample.isa("line", "polyline"); +resample.isa("quad", "poly"); +resample.isa("tri", "poly"); +resample.isa("rect", "circle"); diff --git a/packages/geom/src/ops/simplify.ts b/packages/geom/src/ops/simplify.ts index 817b88f34b..433532d717 100644 --- a/packages/geom/src/ops/simplify.ts +++ b/packages/geom/src/ops/simplify.ts @@ -1,7 +1,7 @@ import type { IObjectOf } from "@thi.ng/api"; import { peek } from "@thi.ng/arrays"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { IShape, PathSegment, Type } from "@thi.ng/geom-api"; +import type { IShape, PathSegment } from "@thi.ng/geom-api"; import { simplify as _simplify } from "@thi.ng/geom-resample"; import type { Vec } from "@thi.ng/vectors"; import { Path } from "../api/path"; @@ -14,7 +14,7 @@ import { vertices } from "./vertices"; export const simplify = defmulti(dispatch); simplify.addAll(>>{ - [Type.PATH]: ($: Path, eps = 0.1) => { + path: ($: Path, eps = 0.1) => { const res: PathSegment[] = []; const orig = $.segments; const n = orig.length; @@ -48,9 +48,9 @@ simplify.addAll(>>{ return new Path(res, copyAttribs($)); }, - [Type.POLYGON]: ($: Polygon, eps = 0.1) => + poly: ($: Polygon, eps = 0.1) => new Polygon(_simplify($.points, eps, true), copyAttribs($)), - [Type.POLYLINE]: ($: Polyline, eps = 0.1) => + polyline: ($: Polyline, eps = 0.1) => new Polyline(_simplify($.points, eps), copyAttribs($)), }); diff --git a/packages/geom/src/ops/split-at.ts b/packages/geom/src/ops/split-at.ts index 44c442bff8..85d41c1dde 100644 --- a/packages/geom/src/ops/split-at.ts +++ b/packages/geom/src/ops/split-at.ts @@ -1,5 +1,6 @@ +import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { IShape, Type } from "@thi.ng/geom-api"; +import type { IShape } from "@thi.ng/geom-api"; import { Sampler } from "@thi.ng/geom-resample"; import { cubicSplitAt, quadraticSplitAt } from "@thi.ng/geom-splines"; import { fit01 } from "@thi.ng/math"; @@ -13,12 +14,11 @@ import { copyAttribs } from "../internal/copy-attribs"; import { dispatch } from "../internal/dispatch"; import { pointArraysAsShapes } from "../internal/points-as-shape"; import { splitLine } from "../internal/split"; -import type { IObjectOf } from "@thi.ng/api"; export const splitAt = defmulti(dispatch); splitAt.addAll(>>{ - [Type.ARC]: ($: Arc, t: number) => { + arc: ($: Arc, t: number) => { const theta = fit01(t, $.start, $.end); return [ new Arc( @@ -44,24 +44,24 @@ splitAt.addAll(>>{ ]; }, - [Type.CUBIC]: ({ attribs, points }: Cubic, t: number) => + cubic: ({ attribs, points }: Cubic, t: number) => cubicSplitAt(points[0], points[1], points[2], points[3], t).map( (pts) => new Cubic(pts, { ...attribs }) ), - [Type.LINE]: ({ attribs, points }: Line, t) => + line: ({ attribs, points }: Line, t) => splitLine(points[0], points[1], t).map( (pts) => new Line(pts, { ...attribs }) ), - [Type.POLYLINE]: ($: Polyline, t) => + polyline: ($: Polyline, t) => pointArraysAsShapes( Polyline, new Sampler($.points).splitAt(t), $.attribs ), - [Type.QUADRATIC]: ({ attribs, points }: Quadratic, t: number) => + quadratic: ({ attribs, points }: Quadratic, t: number) => quadraticSplitAt(points[0], points[1], points[2], t).map( (pts) => new Quadratic(pts, { ...attribs }) ), diff --git a/packages/geom/src/ops/split-near.ts b/packages/geom/src/ops/split-near.ts index f518241121..301406882b 100644 --- a/packages/geom/src/ops/split-near.ts +++ b/packages/geom/src/ops/split-near.ts @@ -1,5 +1,6 @@ +import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { IShape, Type } from "@thi.ng/geom-api"; +import type { IShape } from "@thi.ng/geom-api"; import { closestT } from "@thi.ng/geom-closest-point"; import { Sampler } from "@thi.ng/geom-resample"; import { @@ -7,6 +8,7 @@ import { splitCubicNearPoint, } from "@thi.ng/geom-splines"; import { clamp01 } from "@thi.ng/math"; +import type { ReadonlyVec } from "@thi.ng/vectors"; import { Cubic } from "../api/cubic"; import { Line } from "../api/line"; import { Polyline } from "../api/polyline"; @@ -15,8 +17,6 @@ import { copyAttribs } from "../internal/copy-attribs"; import { dispatch } from "../internal/dispatch"; import { pointArraysAsShapes } from "../internal/points-as-shape"; import { splitLine } from "../internal/split"; -import type { IObjectOf } from "@thi.ng/api"; -import type { ReadonlyVec } from "@thi.ng/vectors"; /** * Similar to {@link splitAt}, but instead of taking a normalized parametric @@ -42,26 +42,26 @@ export const splitNearPoint = defmulti< splitNearPoint.addAll(< IObjectOf> >{ - [Type.CUBIC]: ({ points, attribs }: Cubic, p) => + cubic: ({ points, attribs }: Cubic, p) => splitCubicNearPoint(p, points[0], points[1], points[2], points[3]).map( (pts) => new Cubic(pts, { ...attribs }) ), - [Type.LINE]: ($: Line, p) => { + line: ($: Line, p) => { const t = closestT(p, $.points[0], $.points[1]) || 0; return splitLine($.points[0], $.points[1], clamp01(t)).map( (pts) => new Line(pts, copyAttribs($)) ); }, - [Type.POLYLINE]: ($: Polyline, p) => + polyline: ($: Polyline, p) => pointArraysAsShapes( Polyline, new Sampler($.points).splitNear(p), $.attribs ), - [Type.QUADRATIC]: ({ points, attribs }: Quadratic, p) => + quadratic: ({ points, attribs }: Quadratic, p) => quadraticSplitNearPoint(p, points[0], points[1], points[2]).map( (pts) => new Quadratic(pts, { ...attribs }) ), diff --git a/packages/geom/src/ops/subdiv-curve.ts b/packages/geom/src/ops/subdiv-curve.ts index 3f885748a8..cd6ba8982e 100644 --- a/packages/geom/src/ops/subdiv-curve.ts +++ b/packages/geom/src/ops/subdiv-curve.ts @@ -1,11 +1,11 @@ +import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2O, MultiFn2O } from "@thi.ng/defmulti"; -import { IShape, SubdivKernel, Type } from "@thi.ng/geom-api"; +import type { IShape, SubdivKernel } from "@thi.ng/geom-api"; import { subdivide } from "@thi.ng/geom-subdiv-curve"; import { Polygon } from "../api/polygon"; import { Polyline } from "../api/polyline"; import { copyAttribs } from "../internal/copy-attribs"; import { dispatch } from "../internal/dispatch"; -import type { IObjectOf } from "@thi.ng/api"; export const subdivCurve: MultiFn2O< IShape, @@ -17,9 +17,9 @@ export const subdivCurve: MultiFn2O< subdivCurve.addAll(< IObjectOf> >{ - [Type.POLYGON]: ($: Polygon, kernel, iter = 1) => + poly: ($: Polygon, kernel, iter = 1) => new Polygon(subdivide($.points, kernel, iter), copyAttribs($)), - [Type.POLYLINE]: ($: Polyline, kernel, iter = 1) => + polyline: ($: Polyline, kernel, iter = 1) => new Polyline(subdivide($.points, kernel, iter), copyAttribs($)), }); diff --git a/packages/geom/src/ops/tangent-at.ts b/packages/geom/src/ops/tangent-at.ts index 4a8b9eb90f..4cd60188b2 100644 --- a/packages/geom/src/ops/tangent-at.ts +++ b/packages/geom/src/ops/tangent-at.ts @@ -1,5 +1,6 @@ +import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { IShape, PCLike, Type } from "@thi.ng/geom-api"; +import type { IShape, PCLike } from "@thi.ng/geom-api"; import { Sampler } from "@thi.ng/geom-resample"; import { cossin, HALF_PI, TAU } from "@thi.ng/math"; import { direction, Vec } from "@thi.ng/vectors"; @@ -7,21 +8,20 @@ import type { Line } from "../api/line"; import type { Rect } from "../api/rect"; import { dispatch } from "../internal/dispatch"; import { vertices } from "./vertices"; -import type { IObjectOf } from "@thi.ng/api"; export const tangentAt = defmulti(dispatch); tangentAt.addAll(>>{ - [Type.CIRCLE]: (_, t) => cossin(TAU * t + HALF_PI), + circle: (_, t) => cossin(TAU * t + HALF_PI), - [Type.LINE]: ({ points }: Line) => direction([], points[0], points[1]), + line: ({ points }: Line) => direction([], points[0], points[1]), - [Type.POLYGON]: ($: PCLike, t) => new Sampler($.points, true).tangentAt(t), + poly: ($: PCLike, t) => new Sampler($.points, true).tangentAt(t), - [Type.POLYLINE]: ($: PCLike, t) => new Sampler($.points).tangentAt(t), + polyline: ($: PCLike, t) => new Sampler($.points).tangentAt(t), - [Type.RECT]: ($: Rect, t) => new Sampler(vertices($), true).tangentAt(t), + rect: ($: Rect, t) => new Sampler(vertices($), true).tangentAt(t), }); -tangentAt.isa(Type.QUAD, Type.POLYGON); -tangentAt.isa(Type.TRIANGLE, Type.POLYGON); +tangentAt.isa("quad", "poly"); +tangentAt.isa("tri", "poly"); diff --git a/packages/geom/src/ops/transform-vertices.ts b/packages/geom/src/ops/transform-vertices.ts index 200ada12b8..2db754d1d7 100644 --- a/packages/geom/src/ops/transform-vertices.ts +++ b/packages/geom/src/ops/transform-vertices.ts @@ -1,6 +1,6 @@ import type { Fn, IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { IHiccupShape, IShape, PathSegment, Type } from "@thi.ng/geom-api"; +import type { IHiccupShape, IShape, PathSegment } from "@thi.ng/geom-api"; import { mulV, ReadonlyMat } from "@thi.ng/matrices"; import { map } from "@thi.ng/transducers"; import type { ReadonlyVec } from "@thi.ng/vectors"; @@ -46,19 +46,19 @@ export const transformVertices = defmulti< transformVertices.addAll(< IObjectOf, IShape>> >{ - [Type.ARC]: ($: IShape, fn) => transformVertices(asPolyline($), fn), + arc: ($: IShape, fn) => transformVertices(asPolyline($), fn), - [Type.CUBIC]: tx(Cubic), + cubic: tx(Cubic), - [Type.GROUP]: ($: Group, fn) => + group: ($: Group, fn) => new Group( copyAttribs($), $.children.map((x) => transformVertices(x, fn)) ), - [Type.LINE]: tx(Line), + line: tx(Line), - [Type.PATH]: ($: Path, fn) => + path: ($: Path, fn) => new Path( [ ...map( @@ -78,22 +78,22 @@ transformVertices.addAll(< copyAttribs($) ), - [Type.POINTS]: tx(Points), + points: tx(Points), - [Type.POINTS3]: tx3(Points3), + points3: tx3(Points3), - [Type.POLYGON]: tx(Polygon), + poly: tx(Polygon), - [Type.POLYLINE]: tx(Polyline), + polyline: tx(Polyline), - [Type.QUAD]: tx(Quad), + quad: tx(Quad), - [Type.QUADRATIC]: tx(Quadratic), + quadratic: tx(Quadratic), - [Type.RECT]: ($: Rect, fn) => transformVertices(asPolygon($), fn), + rect: ($: Rect, fn) => transformVertices(asPolygon($), fn), - [Type.TRIANGLE]: tx(Triangle), + tri: tx(Triangle), }); -transformVertices.isa(Type.CIRCLE, Type.RECT); -transformVertices.isa(Type.ELLIPSE, Type.CIRCLE); +transformVertices.isa("circle", "rect"); +transformVertices.isa("ellipse", "circle"); diff --git a/packages/geom/src/ops/transform.ts b/packages/geom/src/ops/transform.ts index 1263c09a9d..7cf5c2d55d 100644 --- a/packages/geom/src/ops/transform.ts +++ b/packages/geom/src/ops/transform.ts @@ -1,6 +1,6 @@ import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { IHiccupShape, IShape, PathSegment, Type } from "@thi.ng/geom-api"; +import type { IHiccupShape, IShape, PathSegment } from "@thi.ng/geom-api"; import { mulV, ReadonlyMat } from "@thi.ng/matrices"; import { map } from "@thi.ng/transducers"; import { Cubic } from "../api/cubic"; @@ -38,19 +38,19 @@ import { asPolygon } from "./as-polygon"; export const transform = defmulti(dispatch); transform.addAll(>>{ - [Type.ARC]: ($: IShape, mat) => transform(asPath($), mat), + arc: ($: IShape, mat) => transform(asPath($), mat), - [Type.CUBIC]: tx(Cubic), + cubic: tx(Cubic), - [Type.GROUP]: ($: Group, mat) => + group: ($: Group, mat) => new Group( copyAttribs($), $.children.map((x) => transform(x, mat)) ), - [Type.LINE]: tx(Line), + line: tx(Line), - [Type.PATH]: ($: Path, mat) => + path: ($: Path, mat) => new Path( [ ...map( @@ -70,25 +70,25 @@ transform.addAll(>>{ copyAttribs($) ), - [Type.POINTS]: tx(Points), + points: tx(Points), - [Type.POINTS3]: tx3(Points3), + points3: tx3(Points3), - [Type.POLYGON]: tx(Polygon), + poly: tx(Polygon), - [Type.POLYLINE]: tx(Polyline), + polyline: tx(Polyline), - [Type.QUAD]: tx(Quad), + quad: tx(Quad), - [Type.QUADRATIC]: tx(Quadratic), + quadratic: tx(Quadratic), - [Type.RECT]: ($: Rect, mat) => transform(asPolygon($), mat), + rect: ($: Rect, mat) => transform(asPolygon($), mat), - [Type.TEXT]: ($: Text, mat) => + text: ($: Text, mat) => new Text(mulV([], mat, $.pos!), $.body, copyAttribs($)), - [Type.TRIANGLE]: tx(Triangle), + tri: tx(Triangle), }); -transform.isa(Type.CIRCLE, Type.ARC); -transform.isa(Type.ELLIPSE, Type.CIRCLE); +transform.isa("circle", "arc"); +transform.isa("ellipse", "circle"); diff --git a/packages/geom/src/ops/translate.ts b/packages/geom/src/ops/translate.ts index e250ace0ea..02cbdcb526 100644 --- a/packages/geom/src/ops/translate.ts +++ b/packages/geom/src/ops/translate.ts @@ -1,6 +1,6 @@ import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { IHiccupShape, IShape, Type } from "@thi.ng/geom-api"; +import type { IHiccupShape, IShape } from "@thi.ng/geom-api"; import { add2, add3, ReadonlyVec, set2, set3 } from "@thi.ng/vectors"; import { AABB } from "../api/aabb"; import type { Arc } from "../api/arc"; @@ -27,32 +27,32 @@ import { translatedShape as tx } from "../internal/translate-points"; export const translate = defmulti(dispatch); translate.addAll(>>{ - [Type.AABB]: ($: AABB, delta) => + aabb: ($: AABB, delta) => new AABB(add3([], $.pos, delta), set3([], $.size), copyAttribs($)), - [Type.ARC]: ($: Arc, delta) => { + arc: ($: Arc, delta) => { const a = $.copy(); add2(null, a.pos, delta); return a; }, - [Type.CIRCLE]: ($: Circle, delta) => + circle: ($: Circle, delta) => new Circle(add2([], $.pos, delta), $.r, copyAttribs($)), - [Type.CUBIC]: tx(Cubic), + cubic: tx(Cubic), - [Type.ELLIPSE]: ($: Ellipse, delta) => + ellipse: ($: Ellipse, delta) => new Ellipse(add2([], $.pos, delta), set2([], $.r), copyAttribs($)), - [Type.GROUP]: ($: Group, delta) => + group: ($: Group, delta) => new Group( copyAttribs($), $.children.map((s) => translate(s, delta)) ), - [Type.LINE]: tx(Line), + line: tx(Line), - [Type.PATH]: ($: Path, delta: ReadonlyVec) => + path: ($: Path, delta: ReadonlyVec) => new Path( $.segments.map((s) => s.geo @@ -68,29 +68,29 @@ translate.addAll(>>{ copyAttribs($) ), - [Type.POINTS]: tx(Points), + points: tx(Points), - [Type.POINTS3]: tx(Points3), + points3: tx(Points3), - [Type.POLYGON]: tx(Polygon), + poly: tx(Polygon), - [Type.POLYLINE]: tx(Polyline), + polyline: tx(Polyline), - [Type.QUAD]: tx(Quad), + quad: tx(Quad), - [Type.QUADRATIC]: tx(Quadratic), + quadratic: tx(Quadratic), - [Type.RAY]: ($: Ray, delta) => + ray: ($: Ray, delta) => new Ray(add2([], $.pos, delta), $.dir, copyAttribs($)), - [Type.RECT]: ($: Rect, delta) => + rect: ($: Rect, delta) => new Rect(add2([], $.pos, delta), set2([], $.size), copyAttribs($)), - [Type.SPHERE]: ($: Sphere, delta) => + sphere: ($: Sphere, delta) => new Sphere(add3([], $.pos, delta), $.r, copyAttribs($)), - [Type.TEXT]: ($: Text, delta) => + text: ($: Text, delta) => new Text(add2([], $.pos, delta), $.body, copyAttribs($)), - [Type.TRIANGLE]: tx(Triangle), + tri: tx(Triangle), }); diff --git a/packages/geom/src/ops/union.ts b/packages/geom/src/ops/union.ts index cf20255fc5..3faee0be11 100644 --- a/packages/geom/src/ops/union.ts +++ b/packages/geom/src/ops/union.ts @@ -1,19 +1,19 @@ +import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { IShape, Type } from "@thi.ng/geom-api"; +import type { IShape } from "@thi.ng/geom-api"; import { AABB } from "../api/aabb"; import { Rect } from "../api/rect"; import { dispatch } from "../internal/dispatch"; import { unionBounds } from "../internal/union-bounds"; -import type { IObjectOf } from "@thi.ng/api"; export const union = defmulti(dispatch); union.addAll(>>{ - [Type.AABB]: (a: AABB, b: AABB) => [ + aabb: (a: AABB, b: AABB) => [ new AABB(...unionBounds(a.pos, a.size, b.pos, b.size)), ], - [Type.RECT]: (a: Rect, b: Rect) => [ + rect: (a: Rect, b: Rect) => [ new Rect(...unionBounds(a.pos, a.size, b.pos, b.size)), ], }); diff --git a/packages/geom/src/ops/unmap-point.ts b/packages/geom/src/ops/unmap-point.ts index 188e74585c..0ed8611638 100644 --- a/packages/geom/src/ops/unmap-point.ts +++ b/packages/geom/src/ops/unmap-point.ts @@ -1,10 +1,10 @@ +import type { IObjectOf } from "@thi.ng/api"; import { defmulti, Implementation2O, MultiFn2O } from "@thi.ng/defmulti"; -import { IShape, Type } from "@thi.ng/geom-api"; +import type { IShape } from "@thi.ng/geom-api"; import { madd, mixBilinear, ReadonlyVec, Vec } from "@thi.ng/vectors"; import type { Quad } from "../api/quad"; import type { Rect } from "../api/rect"; import { dispatch } from "../internal/dispatch"; -import type { IObjectOf } from "@thi.ng/api"; /** * Projects given point `uv` (normalized coords) into the target space @@ -27,7 +27,7 @@ export const unmapPoint: MultiFn2O = defmulti( ); unmapPoint.addAll(>>{ - [Type.QUAD]: ({ points }: Quad, uv, out = []) => + quad: ({ points }: Quad, uv, out = []) => mixBilinear( out, points[0], @@ -38,9 +38,9 @@ unmapPoint.addAll(>>{ uv[1] ), - [Type.RECT]: ($: Rect, uvw: ReadonlyVec, out = []) => + rect: ($: Rect, uvw: ReadonlyVec, out = []) => madd(out, $.size, uvw, $.pos), }); -unmapPoint.isa(Type.AABB, Type.RECT); -unmapPoint.isa(Type.QUAD3, Type.QUAD); +unmapPoint.isa("aabb", "rect"); +unmapPoint.isa("quad3", "quad"); diff --git a/packages/geom/src/ops/vertices.ts b/packages/geom/src/ops/vertices.ts index 4bf095c2fd..e18cee69dd 100644 --- a/packages/geom/src/ops/vertices.ts +++ b/packages/geom/src/ops/vertices.ts @@ -1,7 +1,7 @@ import type { IObjectOf } from "@thi.ng/api"; import { isArray, isNumber } from "@thi.ng/checks"; import { defmulti, Implementation1O, MultiFn1O } from "@thi.ng/defmulti"; -import { DEFAULT_SAMPLES, IShape, SamplingOpts, Type } from "@thi.ng/geom-api"; +import { DEFAULT_SAMPLES, IShape, SamplingOpts } from "@thi.ng/geom-api"; import { sample as _arcVertices } from "@thi.ng/geom-arc"; import { resample } from "@thi.ng/geom-resample"; import { sampleCubic, sampleQuadratic } from "@thi.ng/geom-splines"; @@ -38,7 +38,7 @@ vertices.addAll(< // \| \| // b +----+ c // - [Type.AABB]: ({ pos, size }: AABB) => { + aabb: ({ pos, size }: AABB) => { const [px, py, pz] = pos; const [qx, qy, qz] = add3([], pos, size); return [ @@ -53,10 +53,10 @@ vertices.addAll(< ]; }, - [Type.ARC]: ($: Arc, opts?: number | Partial): Vec[] => + arc: ($: Arc, opts?: number | Partial): Vec[] => _arcVertices($.pos, $.r, $.axis, $.start, $.end, opts), - [Type.CIRCLE]: ($: Circle, opts = DEFAULT_SAMPLES) => { + circle: ($: Circle, opts = DEFAULT_SAMPLES) => { const pos = $.pos; const r = $.r; let [num, last] = circleOpts(opts, r); @@ -69,10 +69,10 @@ vertices.addAll(< return buf; }, - [Type.CUBIC]: ($: Cubic, opts?: number | Partial) => + cubic: ($: Cubic, opts?: number | Partial) => sampleCubic($.points, opts), - [Type.ELLIPSE]: ($: Ellipse, opts = DEFAULT_SAMPLES) => { + ellipse: ($: Ellipse, opts = DEFAULT_SAMPLES) => { const buf: Vec[] = []; const pos = $.pos; const r = $.r; @@ -85,10 +85,10 @@ vertices.addAll(< return buf; }, - [Type.GROUP]: ({ children }: Group) => + group: ({ children }: Group) => children.reduce((acc, $) => acc.concat(vertices($)), []), - [Type.PATH]: ($: Path, opts?: number | Partial) => { + path: ($: Path, opts?: number | Partial) => { const _opts = isNumber(opts) ? { num: opts } : opts; let verts: Vec[] = []; for (let segs = $.segments, n = segs.length - 1, i = 0; i <= n; i++) { @@ -102,16 +102,16 @@ vertices.addAll(< return verts; }, - [Type.POINTS]: ($: Points) => $.points, + points: ($: Points) => $.points, - [Type.POLYGON]: ($: Polygon, opts?) => resample($.points, opts, true), + poly: ($: Polygon, opts?) => resample($.points, opts, true), - [Type.POLYLINE]: ($: Polyline, opts?) => resample($.points, opts), + polyline: ($: Polyline, opts?) => resample($.points, opts), - [Type.QUADRATIC]: ($: Quadratic, opts?: number | Partial) => + quadratic: ($: Quadratic, opts?: number | Partial) => sampleQuadratic($.points, opts), - [Type.RECT]: ($: Rect, opts) => { + rect: ($: Rect, opts) => { const p = $.pos; const q = add2([], p, $.size); const verts = [set2([], p), [q[0], p[1]], q, [p[0], q[1]]]; @@ -119,10 +119,10 @@ vertices.addAll(< }, }); -vertices.isa(Type.LINE, Type.POLYLINE); -vertices.isa(Type.POINTS3, Type.POINTS); -vertices.isa(Type.QUAD, Type.POLYGON); -vertices.isa(Type.TRIANGLE, Type.POLYGON); +vertices.isa("line", "polyline"); +vertices.isa("points3", "points"); +vertices.isa("quad", "poly"); +vertices.isa("tri", "poly"); /** * Takes array of vectors or an `IShape`. If the latter, calls {@link vertices} diff --git a/packages/geom/src/ops/volume.ts b/packages/geom/src/ops/volume.ts index 664a917425..f6cf0ae249 100644 --- a/packages/geom/src/ops/volume.ts +++ b/packages/geom/src/ops/volume.ts @@ -1,10 +1,10 @@ +import type { IObjectOf } from "@thi.ng/api"; import { DEFAULT, defmulti, Implementation1 } from "@thi.ng/defmulti"; -import { IShape, Type } from "@thi.ng/geom-api"; +import type { IShape } from "@thi.ng/geom-api"; import { PI } from "@thi.ng/math"; import type { AABB } from "../api/aabb"; import type { Sphere } from "../api/sphere"; import { dispatch } from "../internal/dispatch"; -import type { IObjectOf } from "@thi.ng/api"; /** * Returns the volume of given 3D shape. Returns 0 for all others. @@ -18,7 +18,7 @@ export const volume = defmulti(dispatch); volume.add(DEFAULT, () => 0); volume.addAll(>>{ - [Type.AABB]: ({ size }: AABB) => size[0] * size[1] * size[2], + aabb: ({ size }: AABB) => size[0] * size[1] * size[2], - [Type.SPHERE]: ($: Sphere) => (4 / 3) * PI * $.r ** 3, + sphere: ($: Sphere) => (4 / 3) * PI * $.r ** 3, }); From 5086a330698992fc65ce2e774fc495e0d2e3e58a Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 13:19:53 +0000 Subject: [PATCH 094/107] refactor(transducers-patch): fix #256 replace enum BREAKING CHANGE: replace Patch enum w/ type alias, update PatchArrayOp/PatchObjOp --- packages/transducers-patch/src/api.ts | 21 +++++++------------ packages/transducers-patch/src/patch-array.ts | 14 ++++++------- packages/transducers-patch/src/patch-obj.ts | 12 +++++------ packages/transducers-patch/test/index.ts | 16 +++++++------- 4 files changed, 29 insertions(+), 34 deletions(-) diff --git a/packages/transducers-patch/src/api.ts b/packages/transducers-patch/src/api.ts index 669586e949..0aacb56821 100644 --- a/packages/transducers-patch/src/api.ts +++ b/packages/transducers-patch/src/api.ts @@ -1,19 +1,14 @@ import type { FnO, Path } from "@thi.ng/api"; -export enum Patch { - SET, - INSERT, - UPDATE, - DELETE, -} +export type Patch = "set" | "insert" | "update" | "delete"; export type PatchArrayOp = - | [Patch.SET, number, T] - | [Patch.INSERT, number, T[]] - | [Patch.UPDATE, number, FnO, ...any[]] - | [Patch.DELETE, number]; + | ["set", number, T] + | ["insert", number, T[]] + | ["update", number, FnO, ...any[]] + | ["delete", number]; export type PatchObjOp = - | [Patch.SET, Path, any] - | [Patch.UPDATE, Path, FnO, ...any[]] - | [Patch.DELETE, Path]; + | ["set", Path, any] + | ["update", Path, FnO, ...any[]] + | ["delete", Path]; diff --git a/packages/transducers-patch/src/patch-array.ts b/packages/transducers-patch/src/patch-array.ts index 68c4207f97..cb46af8abe 100644 --- a/packages/transducers-patch/src/patch-array.ts +++ b/packages/transducers-patch/src/patch-array.ts @@ -1,7 +1,7 @@ -import { isNumber } from "@thi.ng/checks"; +import { isString } from "@thi.ng/checks"; import { illegalArgs, illegalArity } from "@thi.ng/errors"; import { reduce, reducer, Reducer } from "@thi.ng/transducers"; -import { Patch, PatchArrayOp } from "./api"; +import type { PatchArrayOp } from "./api"; /** * Reducer for {@link Patch} based array edits. Only numeric indices are @@ -64,16 +64,16 @@ export function patchArray(...args: any[]) { const edit = (acc: T[], x: PatchArrayOp | PatchArrayOp[]) => { switch (x[0]) { - case Patch.SET: + case "set": acc[x[1]] = x[2]; break; - case Patch.UPDATE: + case "update": acc[x[1]] = x[2](acc[x[1]], ...x.slice(3)); break; - case Patch.INSERT: + case "insert": acc.splice(x[1], 0, ...x[2]); break; - case Patch.DELETE: + case "delete": acc.splice(x[1], 1); break; default: @@ -88,7 +88,7 @@ export function patchArray(...args: any[]) { () => [], (acc, x) => { immutable && (acc = acc.slice()); - if (isNumber(x[0])) { + if (isString(x[0])) { acc = edit(acc, x); } else { for (let e of []>x) { diff --git a/packages/transducers-patch/src/patch-obj.ts b/packages/transducers-patch/src/patch-obj.ts index 43602a300c..b4454040b2 100644 --- a/packages/transducers-patch/src/patch-obj.ts +++ b/packages/transducers-patch/src/patch-obj.ts @@ -1,8 +1,8 @@ -import { isNumber } from "@thi.ng/checks"; +import { isString } from "@thi.ng/checks"; import { illegalArgs } from "@thi.ng/errors"; import { deleteInUnsafe, setInUnsafe, updateInUnsafe } from "@thi.ng/paths"; import { reduce, reducer, Reducer } from "@thi.ng/transducers"; -import { Patch, PatchObjOp } from "./api"; +import type { PatchObjOp } from "./api"; /** * Reducer for {@link Patch} based immutable object updates. @@ -18,11 +18,11 @@ export function patchObj(init: any, patches: Iterable): any; export function patchObj(init?: any, patches?: Iterable) { const edit = (acc: any, x: PatchObjOp) => { switch (x[0]) { - case Patch.SET: + case "set": return setInUnsafe(acc, x[1], x[2]); - case Patch.UPDATE: + case "update": return updateInUnsafe(acc, x[1], x[2], ...x.slice(3)); - case Patch.DELETE: + case "delete": return deleteInUnsafe(acc, x[1]); default: illegalArgs(`patch op: ${x}`); @@ -33,7 +33,7 @@ export function patchObj(init?: any, patches?: Iterable) { : reducer( () => {}, (acc, x) => { - if (isNumber(x[0])) { + if (isString(x[0])) { acc = edit(acc, x); } else { for (let e of x) { diff --git a/packages/transducers-patch/test/index.ts b/packages/transducers-patch/test/index.ts index d486ec3682..4a97c698ee 100644 --- a/packages/transducers-patch/test/index.ts +++ b/packages/transducers-patch/test/index.ts @@ -1,6 +1,6 @@ import { reduce, reductions } from "@thi.ng/transducers"; import * as assert from "assert"; -import { Patch, patchArray, patchObj } from "../src"; +import { patchArray, patchObj } from "../src"; describe("transducers-patch", () => { it("patchArray", () => { @@ -9,10 +9,10 @@ describe("transducers-patch", () => { reductions(patchArray()), [[1, 2, 3]], [ - [Patch.INSERT, 0, [10, 11]], - [Patch.UPDATE, 1, (x, n) => x * n, 10], - [Patch.DELETE, 3], - [Patch.SET, 2, 200], + ["insert", 0, [10, 11]], + ["update", 1, (x, n) => x * n, 10], + ["delete", 3], + ["set", 2, 200], ] ), [ @@ -31,9 +31,9 @@ describe("transducers-patch", () => { reductions(patchObj()), [{ x: 23 }], [ - [Patch.SET, ["a", "b"], 1], - [Patch.UPDATE, "a.b", (x, n) => x + n, 10], - [Patch.DELETE, "x"], + ["set", ["a", "b"], 1], + ["update", "a.b", (x, n) => x + n, 10], + ["delete", "x"], ] ), [ From cc77c711746eabebb4af58421282c50830613915 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 13:33:21 +0000 Subject: [PATCH 095/107] refactor(diff): fix #256 replace DiffMode enum BREAKING CHANGE: replace DiffMode enum w/ type alias - rename DiffMode.ONLY_DISTANCE_LINEAR_ONLY_CHANGES => "minimal" - update diffObject() mode arg to only allow: "full" or "only-distance" --- packages/diff/src/api.ts | 6 ++++++ packages/diff/src/array.ts | 15 +++++++-------- packages/diff/src/constants.ts | 6 ------ packages/diff/src/index.ts | 1 - packages/diff/src/object.ts | 5 ++--- packages/diff/test/array.ts | 8 ++------ 6 files changed, 17 insertions(+), 24 deletions(-) delete mode 100644 packages/diff/src/constants.ts diff --git a/packages/diff/src/api.ts b/packages/diff/src/api.ts index 136d0fc0e0..4bc2b9a5b5 100644 --- a/packages/diff/src/api.ts +++ b/packages/diff/src/api.ts @@ -1,5 +1,11 @@ import type { IObjectOf } from "@thi.ng/api"; +export type DiffMode = + | "only-distance" + | "only-distance-linear" + | "minimal" + | "full"; + export type DiffKeyMap = IObjectOf; export interface ArrayDiff { diff --git a/packages/diff/src/array.ts b/packages/diff/src/array.ts index 0741a8da8b..4789f09e0d 100644 --- a/packages/diff/src/array.ts +++ b/packages/diff/src/array.ts @@ -1,7 +1,6 @@ import type { FnU3, Nullable } from "@thi.ng/api"; import { equiv as _equiv } from "@thi.ng/equiv"; -import type { ArrayDiff, DiffKeyMap, EditLog } from "./api"; -import { DiffMode } from "./constants"; +import type { ArrayDiff, DiffKeyMap, DiffMode, EditLog } from "./api"; let _cachedFP: Nullable; let _cachedPath: Nullable; @@ -34,13 +33,13 @@ const simpleDiff = ( const n = src.length; const linear = >state.linear; state.distance = n; - if (mode !== DiffMode.ONLY_DISTANCE) { + if (mode !== "only-distance") { for (let i = 0, j = 0; i < n; i++, j += 3) { linear[j] = logDir; linear[j + 1] = i; linear[j + 2] = src[i]; } - if (mode === DiffMode.FULL) { + if (mode === "full") { const _state = >state[key]; for (let i = 0; i < n; i++) { _state[i] = src[i]; @@ -70,7 +69,7 @@ const simpleDiff = ( export const diffArray = ( a: ArrayLike | undefined | null, b: ArrayLike | undefined | null, - mode = DiffMode.FULL, + mode: DiffMode = "full", equiv = _equiv ) => { const state = >{ @@ -145,14 +144,14 @@ export const diffArray = ( state.distance = delta + 2 * p; - if (mode !== DiffMode.ONLY_DISTANCE) { + if (mode !== "only-distance") { p = path[doff] * 3; while (p >= 0) { epc.push(p); p = pathPos[p + 2] * 3; } - if (mode === DiffMode.FULL) { + if (mode === "full") { buildFullLog(epc, pathPos, state, _a, _b, reverse); } else { buildLinearLog( @@ -162,7 +161,7 @@ export const diffArray = ( _a, _b, reverse, - mode === DiffMode.ONLY_DISTANCE_LINEAR + mode === "only-distance-linear" ); } } diff --git a/packages/diff/src/constants.ts b/packages/diff/src/constants.ts deleted file mode 100644 index 8f7374c9eb..0000000000 --- a/packages/diff/src/constants.ts +++ /dev/null @@ -1,6 +0,0 @@ -export enum DiffMode { - ONLY_DISTANCE, - ONLY_DISTANCE_LINEAR, - ONLY_DISTANCE_LINEAR_ONLY_CHANGES, - FULL, -} diff --git a/packages/diff/src/index.ts b/packages/diff/src/index.ts index 7c4e490404..ac723d9b1a 100644 --- a/packages/diff/src/index.ts +++ b/packages/diff/src/index.ts @@ -1,4 +1,3 @@ export * from "./api"; export * from "./array"; -export * from "./constants"; export * from "./object"; diff --git a/packages/diff/src/object.ts b/packages/diff/src/object.ts index 64af87fadd..3701fc5b9c 100644 --- a/packages/diff/src/object.ts +++ b/packages/diff/src/object.ts @@ -1,17 +1,16 @@ import type { IObjectOf, Predicate2 } from "@thi.ng/api"; import { equiv } from "@thi.ng/equiv"; import type { ObjectDiff } from "./api"; -import { DiffMode } from "./constants"; export const diffObject = ( a: IObjectOf | undefined | null, b: IObjectOf | undefined | null, - mode = DiffMode.FULL, + mode: "full" | "only-distance" = "full", _equiv: Predicate2 = equiv ): ObjectDiff => a === b ? { distance: 0 } - : mode === DiffMode.ONLY_DISTANCE + : mode === "only-distance" ? diffObjectDist(a, b, _equiv) : diffObjectFull(a, b, _equiv); diff --git a/packages/diff/test/array.ts b/packages/diff/test/array.ts index feb19661db..279777ca9e 100644 --- a/packages/diff/test/array.ts +++ b/packages/diff/test/array.ts @@ -1,5 +1,5 @@ import * as assert from "assert"; -import { ArrayDiff, diffArray, DiffMode } from "../src"; +import { ArrayDiff, diffArray } from "../src"; describe("array", function () { const state = >{ @@ -70,11 +70,7 @@ describe("array", function () { it("diff insert 2nd last (changes only)", () => { assert.deepStrictEqual( - diffArray( - [1, 2, 3, 4], - [1, 2, 3, 5, 4], - DiffMode.ONLY_DISTANCE_LINEAR_ONLY_CHANGES - ), + diffArray([1, 2, 3, 4], [1, 2, 3, 5, 4], "minimal"), >{ distance: 1, adds: {}, From b9b2f365dbfcb6b3f579d9b246407d0a2c396eab Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 13:33:52 +0000 Subject: [PATCH 096/107] refactor(hdiff): update DiffMode handling --- packages/hdiff/src/diff.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/hdiff/src/diff.ts b/packages/hdiff/src/diff.ts index 824e176ba7..11bca8d9e1 100644 --- a/packages/hdiff/src/diff.ts +++ b/packages/hdiff/src/diff.ts @@ -1,4 +1,4 @@ -import { diffArray, DiffMode } from "@thi.ng/diff"; +import { diffArray } from "@thi.ng/diff"; import { escape } from "@thi.ng/hiccup"; import { padLeft } from "@thi.ng/strings"; @@ -8,7 +8,7 @@ export const computeDiff = (a: string, b: string) => { const edits = diffArray( a.split("\n"), b.split("\n"), - DiffMode.ONLY_DISTANCE_LINEAR + "only-distance-linear" ).linear!; for (let i = 0; i < edits.length; i += 3) { const lineID = edits[i]; From b8f7d5c5ca3ae0a55a656a195c435476727d09b8 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 13:34:29 +0000 Subject: [PATCH 097/107] refactor(hdom): update DiffMode handling --- packages/hdom/src/diff.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/hdom/src/diff.ts b/packages/hdom/src/diff.ts index a5fdeb3988..7ad8372d25 100644 --- a/packages/hdom/src/diff.ts +++ b/packages/hdom/src/diff.ts @@ -1,5 +1,5 @@ import { IObjectOf, SEMAPHORE } from "@thi.ng/api"; -import { diffArray, DiffMode, diffObject } from "@thi.ng/diff"; +import { diffArray, diffObject } from "@thi.ng/diff"; import { equiv as _equiv, equivArrayLike, @@ -75,7 +75,7 @@ export const diffTree = ( if (_impl && _impl !== impl) { return _impl.diffTree(opts, _impl, parent, prev, curr, child); } - const delta = diffArray(prev, curr, DiffMode.ONLY_DISTANCE_LINEAR, equiv); + const delta = diffArray(prev, curr, "only-distance-linear", equiv); if (delta.distance === 0) { return; } @@ -225,7 +225,7 @@ export const diffAttributes = ( prev: any, curr: any ) => { - const delta = diffObject(prev, curr, DiffMode.FULL, _equiv); + const delta = diffObject(prev, curr, "full", _equiv); impl.removeAttribs(el, delta.dels!, prev); let val = SEMAPHORE; let i: number, e, edits; From ae8e3cfb319d9b7e3925b8da2613972e5667888f Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 13:34:54 +0000 Subject: [PATCH 098/107] refactor(hdom-canvas): update DiffMode handling --- packages/hdom-canvas/src/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/hdom-canvas/src/index.ts b/packages/hdom-canvas/src/index.ts index fdc3e38940..6c7d80ff63 100644 --- a/packages/hdom-canvas/src/index.ts +++ b/packages/hdom-canvas/src/index.ts @@ -1,6 +1,6 @@ import { assert, NO_OP } from "@thi.ng/api"; import { isArray, isNotStringAndIterable } from "@thi.ng/checks"; -import { diffArray, DiffMode } from "@thi.ng/diff"; +import { diffArray } from "@thi.ng/diff"; import { equiv, HDOMImplementation, HDOMOpts, releaseTree } from "@thi.ng/hdom"; import { draw } from "@thi.ng/hiccup-canvas"; @@ -158,7 +158,7 @@ export const diffTree = ( if (impl && impl !== IMPL) { return impl.diffTree(opts, parent, prev, curr, child); } - const delta = diffArray(prev, curr, DiffMode.ONLY_DISTANCE, equiv); + const delta = diffArray(prev, curr, "only-distance", equiv); if (delta.distance > 0) { return createTree(opts, parent, curr); } From 03efe53fed50e20e1deaf357db4e25df1824745c Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 13:53:44 +0000 Subject: [PATCH 099/107] docs: update readmes --- packages/color/tpl.readme.md | 4 ++-- packages/diff/tpl.readme.md | 19 +++------------ packages/dsp/tpl.readme.md | 8 +++++++ packages/rstream-gestures/tpl.readme.md | 16 ++++++------- packages/transducers-patch/tpl.readme.md | 30 ++++++++++++------------ 5 files changed, 36 insertions(+), 41 deletions(-) diff --git a/packages/color/tpl.readme.md b/packages/color/tpl.readme.md index 23f4f5aa04..fde9472eb1 100644 --- a/packages/color/tpl.readme.md +++ b/packages/color/tpl.readme.md @@ -195,7 +195,7 @@ const b = col.parseCss("hsla(30,100%,50%,0.75)"); // route #3: convert() multi-method: CSS -> RGBA -> HSVA // (see convert.ts) -const c = col.convert("rgb(0,255,255)", col.ColorMode.HSVA, col.ColorMode.CSS); +const c = col.convert("rgb(0,255,255)", "hsv", "css"); // [ 0.4999999722222268, 0.9999990000010001, 1, 1 ] // route #4: direct conversion RGBA -> HSLA -> CSS @@ -205,7 +205,7 @@ col.hslaCss(col.rgbaHsla([], [1, 0.5, 0.5, 1])) // "hsl(0.00,100.00%,75.00%)" col.luminance(col.css("white")) -col.luminance(0xffffff, col.ColorMode.INT32) +col.luminance(0xffffff, "int") // 1 // apply color matrix (RGBA only) diff --git a/packages/diff/tpl.readme.md b/packages/diff/tpl.readme.md index 56f9a0563b..4de521950b 100644 --- a/packages/diff/tpl.readme.md +++ b/packages/diff/tpl.readme.md @@ -38,9 +38,10 @@ ${examples} ${docLink} ```ts -import { diffArray, DiffMode } from "@thi.ng/diff"; +import { diffArray } from "@thi.ng/diff"; -diffArray([1, 2, 3], [1, 2, 4], DiffMode.FULL); +// diff w/ default diff mode +diffArray([1, 2, 3], [1, 2, 4], "full"); // { // distance: 2, // adds: { 2: 4 }, @@ -50,20 +51,6 @@ diffArray([1, 2, 3], [1, 2, 4], DiffMode.FULL); // } ``` -## Breaking changes - -### 2.0.0 - -The linear edit logs of both `diffArray` and `diffObject` are now -returned as flat arrays, with each log entry consisting of 3 or 2 -successive array items. This is to avoid allocation of various small -arrays. - -The order of optional args to both functions has been swapped to: - -- `diffArray(old, new, mode?, equiv?)` -- `diffObject(old, new, mode?, equiv?)` - ## Authors ${authors} diff --git a/packages/dsp/tpl.readme.md b/packages/dsp/tpl.readme.md index 71ff5729b3..ecfb5bf391 100644 --- a/packages/dsp/tpl.readme.md +++ b/packages/dsp/tpl.readme.md @@ -462,19 +462,27 @@ Desmos](https://www.desmos.com/calculator/lkyf2ag3ta) to experiment. - `scaleFFT()` - `complexArray()` - `conjugate()` +- `powerSumSquared()` +- `powerMeanSquared()` +- `powerTimeIntegral()` - `spectrumMag()` - `spectrumPow()` (optionally as dBFS) - `spectrumPhase()` - `binFreq()` - `freqBin()` - `fftFreq()` +- `integralT()` / `integralTSquared()` +- `integralF()` / `integralFSquared()` #### Window functions [Source](https://github.com/thi-ng/umbrella/blob/develop/packages/dsp/src/fft/window.ts) - `window()` +- `applyWindow()` - `windowRect()` +- `windowBartlett()` +- `windowWelch()` - `windowSin()` - `windowSinPow()` - `windowLanczos()` diff --git a/packages/rstream-gestures/tpl.readme.md b/packages/rstream-gestures/tpl.readme.md index 61264b7a23..2fde37bee5 100644 --- a/packages/rstream-gestures/tpl.readme.md +++ b/packages/rstream-gestures/tpl.readme.md @@ -46,11 +46,11 @@ ${docLink} All native events are abstracted into one of the following event types: -- `START` - mousedown / touchstart -- `MOVE` - movemove -- `DRAG` - mousemove (whilst dragging) / touchmove -- `END` - mouseup / touchend / touchcancel -- `ZOOM` - wheel +- `move` - movemove +- `start` - mousedown / touchstart +- `drag` - mousemove (whilst dragging) / touchmove +- `end` - mouseup / touchend / touchcancel +- `zoom` - wheel ### GestureEvent @@ -74,7 +74,7 @@ objects of: ```ts // example mouse gesture event { - "type": 2, // GestureType.DRAG + "type": "drag" "event": MouseEvent, "pos": [254, 169], "active": [ @@ -101,7 +101,7 @@ config options for further details. ### Basic usage ```ts -import { GestureType, gestureStream } from "@thi.ng/rstream-gestures"; +import { gestureStream } from "@thi.ng/rstream-gestures"; import { trace } from "@thi.ng/rstream"; import { comp, dedupe, filter, map, pluck } from "@thi.ng/transducers"; @@ -120,7 +120,7 @@ gestures.subscribe( gestures.subscribe( trace("distance"), comp( - filter((e) => e.type === GestureType.DRAG), + filter((e) => e.type === "drag"), map((e) => e.active.map((g) => Math.hypot(...g.delta))) ) ); diff --git a/packages/transducers-patch/tpl.readme.md b/packages/transducers-patch/tpl.readme.md index 875cfe33f4..4baef9d04a 100644 --- a/packages/transducers-patch/tpl.readme.md +++ b/packages/transducers-patch/tpl.readme.md @@ -47,7 +47,7 @@ TODO ### Basic usage ```ts -import { Patch, patchArray, patchObj } from "@thi.ng/transducers-patch"; +import { patchArray, patchObj } from "@thi.ng/transducers-patch"; import { reduce, reductions } from "@thi.ng/transducers"; // flat array editing @@ -59,13 +59,13 @@ patchArray( // edits [ // set idx #0 to 42 - [Patch.SET, 0, 42], + ["set", 0, 42], // update idx #1 (here: times 10) - [Patch.UPDATE, 1, (x, n) => x * n, 10], + ["update", 1, (x, n) => x * n, 10], // insert values @ idx #2 - [Patch.INSERT, 2, [10, 11]], + ["insert", 2, [10, 11]], // delete (remove) idx #3 - [Patch.DELETE, 3] + ["delete", 3] ] ); // [ 42, 20, 10, 3 ] @@ -77,10 +77,10 @@ reduce( // original array (wrapped here only for `reductions`) [[1, 2, 3]], [ - [Patch.INSERT, 0, [10, 11]], - [Patch.UPDATE, 1, (x, n) => x * n, 10], - [Patch.DELETE, 3], - [Patch.SET, 2, 200] + ["insert", 0, [10, 11]], + ["update", 1, (x, n) => x * n, 10], + ["delete", 3], + ["set", 2, 200] ] ); // [ @@ -97,9 +97,9 @@ reduce( reductions(patchObj()), [{ x: 23 }], [ - [Patch.SET, ["a", "b"], 1], - [Patch.UPDATE, ["a", "b"], (x, n) => x + n, 10], - [Patch.DELETE, ["x"]] + ["set", ["a", "b"], 1], + ["update", ["a", "b"], (x, n) => x + n, 10], + ["delete", ["x"]] ] ), // [ @@ -131,13 +131,13 @@ export const state = stream().transform( // add debug subscription state.subscribe(trace("state: ")); -state.next([Patch.SET, "a.b", 1]); +state.next(["set", "a.b", 1]); // state: { x: 23, a: { b: 1 } } -state.next([Patch.UPDATE, ["a", "b"], (x, n)=> x + n, 10]); +state.next(["update", ["a", "b"], (x, n)=> x + n, 10]); // state: { x: 23, a: { b: 11 } } -state.next([Patch.DELETE, "x"]); +state.next(["delete", "x"]); // state: { a: { b: 11 } } ``` From 3866563dcabab97bc2c2b47e04d53770e30e77a5 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 13:54:23 +0000 Subject: [PATCH 100/107] docs(color): update gradient preview gen --- packages/color/tools/index.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/color/tools/index.ts b/packages/color/tools/index.ts index e3f286c273..981d54aa6d 100644 --- a/packages/color/tools/index.ts +++ b/packages/color/tools/index.ts @@ -10,9 +10,10 @@ Object.keys(GRADIENTS).forEach((id) => { asSvg( svgDoc( {}, - ...cosineGradient(100, GRADIENTS[id]).map((col, i) => - rect([i * 5, 0], [5, 50], { fill: col }) - ) + ...cosineGradient( + 100, + GRADIENTS[id] + ).map((col, i) => rect([i * 5, 0], [5, 50], { fill: col })) ) ) ); From 2da6c63b5a2dbc45bc1272eaf592d3d74d8ce74e Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 15:01:45 +0000 Subject: [PATCH 101/107] fix(geom): fix #268 add Group.copyTransformed() - update transformVertices(), transform(), translate() impls --- packages/geom/src/api/group.ts | 10 ++++++---- packages/geom/src/ops/transform-vertices.ts | 7 ++----- packages/geom/src/ops/transform.ts | 7 ++----- packages/geom/src/ops/translate.ts | 7 ++----- 4 files changed, 12 insertions(+), 19 deletions(-) diff --git a/packages/geom/src/api/group.ts b/packages/geom/src/api/group.ts index ef1293dabe..1ccb532f0d 100644 --- a/packages/geom/src/api/group.ts +++ b/packages/geom/src/api/group.ts @@ -1,3 +1,4 @@ +import type { Fn } from "@thi.ng/api"; import { equiv } from "@thi.ng/equiv"; import type { Attribs, IHiccupShape } from "@thi.ng/geom-api"; import { copyAttribs } from "../internal/copy-attribs"; @@ -17,10 +18,11 @@ export class Group implements IHiccupShape { } copy(): Group { - return new Group( - copyAttribs(this), - this.children.map((c) => c.copy()) - ); + return this.copyTransformed((c) => c.copy()); + } + + copyTransformed(fn: Fn) { + return new Group(copyAttribs(this), this.children.map(fn)); } equiv(o: any) { diff --git a/packages/geom/src/ops/transform-vertices.ts b/packages/geom/src/ops/transform-vertices.ts index 2db754d1d7..5d2f88644e 100644 --- a/packages/geom/src/ops/transform-vertices.ts +++ b/packages/geom/src/ops/transform-vertices.ts @@ -5,7 +5,7 @@ import { mulV, ReadonlyMat } from "@thi.ng/matrices"; import { map } from "@thi.ng/transducers"; import type { ReadonlyVec } from "@thi.ng/vectors"; import { Cubic } from "../api/cubic"; -import { Group } from "../api/group"; +import type { Group } from "../api/group"; import { Line } from "../api/line"; import { Path } from "../api/path"; import { Points, Points3 } from "../api/points"; @@ -51,10 +51,7 @@ transformVertices.addAll(< cubic: tx(Cubic), group: ($: Group, fn) => - new Group( - copyAttribs($), - $.children.map((x) => transformVertices(x, fn)) - ), + $.copyTransformed((x) => transformVertices(x, fn)), line: tx(Line), diff --git a/packages/geom/src/ops/transform.ts b/packages/geom/src/ops/transform.ts index 7cf5c2d55d..9b01c13dfc 100644 --- a/packages/geom/src/ops/transform.ts +++ b/packages/geom/src/ops/transform.ts @@ -4,7 +4,7 @@ import type { IHiccupShape, IShape, PathSegment } from "@thi.ng/geom-api"; import { mulV, ReadonlyMat } from "@thi.ng/matrices"; import { map } from "@thi.ng/transducers"; import { Cubic } from "../api/cubic"; -import { Group } from "../api/group"; +import type { Group } from "../api/group"; import { Line } from "../api/line"; import { Path } from "../api/path"; import { Points, Points3 } from "../api/points"; @@ -43,10 +43,7 @@ transform.addAll(>>{ cubic: tx(Cubic), group: ($: Group, mat) => - new Group( - copyAttribs($), - $.children.map((x) => transform(x, mat)) - ), + $.copyTransformed((x) => transform(x, mat)), line: tx(Line), diff --git a/packages/geom/src/ops/translate.ts b/packages/geom/src/ops/translate.ts index 02cbdcb526..932f93ef3a 100644 --- a/packages/geom/src/ops/translate.ts +++ b/packages/geom/src/ops/translate.ts @@ -7,7 +7,7 @@ import type { Arc } from "../api/arc"; import { Circle } from "../api/circle"; import { Cubic } from "../api/cubic"; import { Ellipse } from "../api/ellipse"; -import { Group } from "../api/group"; +import type { Group } from "../api/group"; import { Line } from "../api/line"; import { Path } from "../api/path"; import { Points, Points3 } from "../api/points"; @@ -45,10 +45,7 @@ translate.addAll(>>{ new Ellipse(add2([], $.pos, delta), set2([], $.r), copyAttribs($)), group: ($: Group, delta) => - new Group( - copyAttribs($), - $.children.map((s) => translate(s, delta)) - ), + $.copyTransformed((x) => translate(x, delta)), line: tx(Line), From f67f820153710082f4c8be23e724183eb45cbcb7 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 16:50:22 +0000 Subject: [PATCH 102/107] docs: prune changelogs --- packages/adapt-dpi/CHANGELOG.md | 56 ------------- packages/adjacency/CHANGELOG.md | 88 --------------------- packages/api/CHANGELOG.md | 56 ------------- packages/arrays/CHANGELOG.md | 48 ------------ packages/associative/CHANGELOG.md | 72 ----------------- packages/atom/CHANGELOG.md | 64 --------------- packages/bench/CHANGELOG.md | 64 --------------- packages/bencode/CHANGELOG.md | 72 ----------------- packages/binary/CHANGELOG.md | 64 --------------- packages/bitfield/CHANGELOG.md | 72 ----------------- packages/bitstream/CHANGELOG.md | 56 ------------- packages/cache/CHANGELOG.md | 72 ----------------- packages/checks/CHANGELOG.md | 56 ------------- packages/color/CHANGELOG.md | 72 ----------------- packages/colored-noise/CHANGELOG.md | 48 ------------ packages/compare/CHANGELOG.md | 64 --------------- packages/compose/CHANGELOG.md | 64 --------------- packages/csp/CHANGELOG.md | 72 ----------------- packages/csv/CHANGELOG.md | 16 ---- packages/date/CHANGELOG.md | 16 ---- packages/dcons/CHANGELOG.md | 64 --------------- packages/defmulti/CHANGELOG.md | 56 ------------- packages/dgraph-dot/CHANGELOG.md | 72 ----------------- packages/dgraph/CHANGELOG.md | 64 --------------- packages/diff/CHANGELOG.md | 64 --------------- packages/dl-asset/CHANGELOG.md | 64 --------------- packages/dlogic/CHANGELOG.md | 64 --------------- packages/dot/CHANGELOG.md | 64 --------------- packages/dsp-io-wav/CHANGELOG.md | 72 ----------------- packages/dsp/CHANGELOG.md | 56 ------------- packages/dual-algebra/CHANGELOG.md | 32 -------- packages/dynvar/CHANGELOG.md | 64 --------------- packages/ecs/CHANGELOG.md | 64 --------------- packages/egf/CHANGELOG.md | 32 -------- packages/equiv/CHANGELOG.md | 48 ------------ packages/errors/CHANGELOG.md | 56 ------------- packages/fsm/CHANGELOG.md | 72 ----------------- packages/geom-accel/CHANGELOG.md | 80 ------------------- packages/geom-api/CHANGELOG.md | 72 ----------------- packages/geom-arc/CHANGELOG.md | 80 ------------------- packages/geom-clip-line/CHANGELOG.md | 80 ------------------- packages/geom-clip-poly/CHANGELOG.md | 80 ------------------- packages/geom-closest-point/CHANGELOG.md | 64 --------------- packages/geom-fuzz/CHANGELOG.md | 96 ----------------------- packages/geom-hull/CHANGELOG.md | 72 ----------------- packages/geom-io-obj/CHANGELOG.md | 80 ------------------- packages/geom-isec/CHANGELOG.md | 64 --------------- packages/geom-isoline/CHANGELOG.md | 80 ------------------- packages/geom-poly-utils/CHANGELOG.md | 72 ----------------- packages/geom-resample/CHANGELOG.md | 80 ------------------- packages/geom-splines/CHANGELOG.md | 80 ------------------- packages/geom-subdiv-curve/CHANGELOG.md | 88 --------------------- packages/geom-tessellate/CHANGELOG.md | 80 ------------------- packages/geom-voronoi/CHANGELOG.md | 80 ------------------- packages/geom/CHANGELOG.md | 56 ------------- packages/gp/CHANGELOG.md | 64 --------------- packages/grid-iterators/CHANGELOG.md | 72 ----------------- packages/hdiff/CHANGELOG.md | 72 ----------------- packages/hdom-canvas/CHANGELOG.md | 80 ------------------- packages/hdom-components/CHANGELOG.md | 72 ----------------- packages/hdom-mock/CHANGELOG.md | 64 --------------- packages/hdom/CHANGELOG.md | 64 --------------- packages/heaps/CHANGELOG.md | 64 --------------- packages/hex/CHANGELOG.md | 8 -- packages/hiccup-canvas/CHANGELOG.md | 80 ------------------- packages/hiccup-carbon-icons/CHANGELOG.md | 72 ----------------- packages/hiccup-css/CHANGELOG.md | 64 --------------- packages/hiccup-html/CHANGELOG.md | 64 --------------- packages/hiccup-markdown/CHANGELOG.md | 80 ------------------- packages/hiccup-svg/CHANGELOG.md | 72 ----------------- packages/hiccup/CHANGELOG.md | 56 ------------- packages/idgen/CHANGELOG.md | 72 ----------------- packages/iges/CHANGELOG.md | 80 ------------------- packages/imgui/CHANGELOG.md | 80 ------------------- packages/interceptors/CHANGELOG.md | 64 --------------- packages/intervals/CHANGELOG.md | 56 ------------- packages/iterators/CHANGELOG.md | 72 ----------------- packages/layout/CHANGELOG.md | 56 ------------- packages/leb128/CHANGELOG.md | 72 ----------------- packages/lsys/CHANGELOG.md | 80 ------------------- packages/malloc/CHANGELOG.md | 64 --------------- packages/math/CHANGELOG.md | 48 ------------ packages/matrices/CHANGELOG.md | 80 ------------------- packages/memoize/CHANGELOG.md | 64 --------------- packages/mime/CHANGELOG.md | 64 --------------- packages/morton/CHANGELOG.md | 64 --------------- packages/oquery/CHANGELOG.md | 72 ----------------- packages/parse/CHANGELOG.md | 64 --------------- packages/paths/CHANGELOG.md | 64 --------------- packages/pixel/CHANGELOG.md | 64 --------------- packages/pointfree-lang/CHANGELOG.md | 64 --------------- packages/pointfree/CHANGELOG.md | 64 --------------- packages/poisson/CHANGELOG.md | 80 ------------------- packages/porter-duff/CHANGELOG.md | 64 --------------- packages/prefixes/CHANGELOG.md | 56 ------------- packages/quad-edge/CHANGELOG.md | 56 ------------- packages/ramp/CHANGELOG.md | 80 ------------------- packages/random/CHANGELOG.md | 40 ---------- packages/range-coder/CHANGELOG.md | 64 --------------- packages/rdom-canvas/CHANGELOG.md | 88 --------------------- packages/rdom-components/CHANGELOG.md | 88 --------------------- packages/rdom/CHANGELOG.md | 80 ------------------- packages/resolve-map/CHANGELOG.md | 64 --------------- packages/rle-pack/CHANGELOG.md | 56 ------------- packages/router/CHANGELOG.md | 72 ----------------- packages/rstream-csp/CHANGELOG.md | 80 ------------------- packages/rstream-dot/CHANGELOG.md | 80 ------------------- packages/rstream-gestures/CHANGELOG.md | 72 ----------------- packages/rstream-graph/CHANGELOG.md | 80 ------------------- packages/rstream-log-file/CHANGELOG.md | 80 ------------------- packages/rstream-log/CHANGELOG.md | 80 ------------------- packages/rstream-query/CHANGELOG.md | 80 ------------------- packages/rstream/CHANGELOG.md | 72 ----------------- packages/sax/CHANGELOG.md | 64 --------------- packages/scenegraph/CHANGELOG.md | 80 ------------------- packages/seq/CHANGELOG.md | 64 --------------- packages/sexpr/CHANGELOG.md | 64 --------------- packages/shader-ast-glsl/CHANGELOG.md | 72 ----------------- packages/shader-ast-js/CHANGELOG.md | 88 --------------------- packages/shader-ast-stdlib/CHANGELOG.md | 56 ------------- packages/shader-ast/CHANGELOG.md | 64 --------------- packages/simd/CHANGELOG.md | 72 ----------------- packages/soa/CHANGELOG.md | 80 ------------------- packages/sparse/CHANGELOG.md | 64 --------------- packages/strings/CHANGELOG.md | 56 ------------- packages/system/CHANGELOG.md | 64 --------------- packages/text-canvas/CHANGELOG.md | 80 ------------------- packages/transducers-binary/CHANGELOG.md | 72 ----------------- packages/transducers-fsm/CHANGELOG.md | 64 --------------- packages/transducers-hdom/CHANGELOG.md | 64 --------------- packages/transducers-patch/CHANGELOG.md | 64 --------------- packages/transducers-stats/CHANGELOG.md | 72 ----------------- packages/transducers/CHANGELOG.md | 40 ---------- packages/unionstruct/CHANGELOG.md | 56 ------------- packages/vclock/CHANGELOG.md | 8 -- packages/vector-pools/CHANGELOG.md | 88 --------------------- packages/vectors/CHANGELOG.md | 64 --------------- packages/viz/CHANGELOG.md | 32 -------- packages/webgl-msdf/CHANGELOG.md | 88 --------------------- packages/webgl-shadertoy/CHANGELOG.md | 88 --------------------- packages/webgl/CHANGELOG.md | 72 ----------------- packages/zipper/CHANGELOG.md | 64 --------------- 142 files changed, 9456 deletions(-) diff --git a/packages/adapt-dpi/CHANGELOG.md b/packages/adapt-dpi/CHANGELOG.md index 15aba9c24f..dba9fe0852 100644 --- a/packages/adapt-dpi/CHANGELOG.md +++ b/packages/adapt-dpi/CHANGELOG.md @@ -3,62 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/adapt-dpi@1.0.10...@thi.ng/adapt-dpi@1.0.11) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/adapt-dpi - - - - - -## [1.0.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/adapt-dpi@1.0.9...@thi.ng/adapt-dpi@1.0.10) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/adapt-dpi - - - - - -## [1.0.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/adapt-dpi@1.0.8...@thi.ng/adapt-dpi@1.0.9) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/adapt-dpi - - - - - -## [1.0.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/adapt-dpi@1.0.7...@thi.ng/adapt-dpi@1.0.8) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/adapt-dpi - - - - - -## [1.0.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/adapt-dpi@1.0.6...@thi.ng/adapt-dpi@1.0.7) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/adapt-dpi - - - - - -## [1.0.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/adapt-dpi@1.0.5...@thi.ng/adapt-dpi@1.0.6) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/adapt-dpi - - - - - -## [1.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/adapt-dpi@1.0.4...@thi.ng/adapt-dpi@1.0.5) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/adapt-dpi - - - - - # 1.0.0 (2020-06-07) diff --git a/packages/adjacency/CHANGELOG.md b/packages/adjacency/CHANGELOG.md index 62f905139e..5d75ce1cf3 100644 --- a/packages/adjacency/CHANGELOG.md +++ b/packages/adjacency/CHANGELOG.md @@ -3,94 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.67](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.66...@thi.ng/adjacency@0.1.67) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/adjacency - - - - - -## [0.1.66](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.65...@thi.ng/adjacency@0.1.66) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/adjacency - - - - - -## [0.1.65](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.64...@thi.ng/adjacency@0.1.65) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/adjacency - - - - - -## [0.1.64](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.63...@thi.ng/adjacency@0.1.64) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/adjacency - - - - - -## [0.1.63](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.62...@thi.ng/adjacency@0.1.63) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/adjacency - - - - - -## [0.1.62](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.61...@thi.ng/adjacency@0.1.62) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/adjacency - - - - - -## [0.1.61](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.60...@thi.ng/adjacency@0.1.61) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/adjacency - - - - - -## [0.1.60](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.59...@thi.ng/adjacency@0.1.60) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/adjacency - - - - - -## [0.1.59](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.58...@thi.ng/adjacency@0.1.59) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/adjacency - - - - - -## [0.1.58](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.57...@thi.ng/adjacency@0.1.58) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/adjacency - - - - - -## [0.1.57](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.56...@thi.ng/adjacency@0.1.57) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/adjacency - - - - - ## [0.1.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.6...@thi.ng/adjacency@0.1.7) (2019-03-18) ### Performance Improvements diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index 109604e376..6478464fc9 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -3,38 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [6.13.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.13.3...@thi.ng/api@6.13.4) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/api - - - - - -## [6.13.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.13.2...@thi.ng/api@6.13.3) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/api - - - - - -## [6.13.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.13.1...@thi.ng/api@6.13.2) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/api - - - - - -## [6.13.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.13.0...@thi.ng/api@6.13.1) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/api - - - - - # [6.13.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.12.3...@thi.ng/api@6.13.0) (2020-09-13) @@ -52,30 +20,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [6.12.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.12.2...@thi.ng/api@6.12.3) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/api - - - - - -## [6.12.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.12.1...@thi.ng/api@6.12.2) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/api - - - - - -## [6.12.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.12.0...@thi.ng/api@6.12.1) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/api - - - - - # [6.12.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.11.3...@thi.ng/api@6.12.0) (2020-07-28) diff --git a/packages/arrays/CHANGELOG.md b/packages/arrays/CHANGELOG.md index 66a3be8452..e48a3a9063 100644 --- a/packages/arrays/CHANGELOG.md +++ b/packages/arrays/CHANGELOG.md @@ -3,38 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.8.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/arrays@0.8.3...@thi.ng/arrays@0.8.4) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/arrays - - - - - -## [0.8.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/arrays@0.8.2...@thi.ng/arrays@0.8.3) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/arrays - - - - - -## [0.8.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/arrays@0.8.1...@thi.ng/arrays@0.8.2) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/arrays - - - - - -## [0.8.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/arrays@0.8.0...@thi.ng/arrays@0.8.1) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/arrays - - - - - # [0.8.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/arrays@0.7.0...@thi.ng/arrays@0.8.0) (2020-09-13) @@ -57,22 +25,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.6.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/arrays@0.6.14...@thi.ng/arrays@0.6.15) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/arrays - - - - - -## [0.6.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/arrays@0.6.13...@thi.ng/arrays@0.6.14) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/arrays - - - - - # [0.6.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/arrays@0.5.6...@thi.ng/arrays@0.6.0) (2020-03-28) diff --git a/packages/associative/CHANGELOG.md b/packages/associative/CHANGELOG.md index 235a9c9e9a..d76d1db2f0 100644 --- a/packages/associative/CHANGELOG.md +++ b/packages/associative/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [5.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@5.0.10...@thi.ng/associative@5.0.11) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/associative - - - - - -## [5.0.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@5.0.9...@thi.ng/associative@5.0.10) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/associative - - - - - -## [5.0.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@5.0.8...@thi.ng/associative@5.0.9) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/associative - - - - - -## [5.0.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@5.0.7...@thi.ng/associative@5.0.8) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/associative - - - - - -## [5.0.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@5.0.6...@thi.ng/associative@5.0.7) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/associative - - - - - -## [5.0.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@5.0.5...@thi.ng/associative@5.0.6) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/associative - - - - - -## [5.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@5.0.4...@thi.ng/associative@5.0.5) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/associative - - - - - -## [5.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@5.0.3...@thi.ng/associative@5.0.4) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/associative - - - - - -## [5.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@5.0.2...@thi.ng/associative@5.0.3) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/associative - - - - - # [5.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@4.5.1...@thi.ng/associative@5.0.0) (2020-07-25) diff --git a/packages/atom/CHANGELOG.md b/packages/atom/CHANGELOG.md index 7333bf0008..2b2598f6e3 100644 --- a/packages/atom/CHANGELOG.md +++ b/packages/atom/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [4.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.1.23...@thi.ng/atom@4.1.24) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/atom - - - - - -## [4.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.1.22...@thi.ng/atom@4.1.23) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/atom - - - - - -## [4.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.1.21...@thi.ng/atom@4.1.22) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/atom - - - - - -## [4.1.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.1.20...@thi.ng/atom@4.1.21) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/atom - - - - - -## [4.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.1.19...@thi.ng/atom@4.1.20) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/atom - - - - - -## [4.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.1.18...@thi.ng/atom@4.1.19) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/atom - - - - - -## [4.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.1.17...@thi.ng/atom@4.1.18) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/atom - - - - - -## [4.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.1.16...@thi.ng/atom@4.1.17) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/atom - - - - - # [4.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.0.0...@thi.ng/atom@4.1.0) (2020-04-01) diff --git a/packages/bench/CHANGELOG.md b/packages/bench/CHANGELOG.md index 515f838231..d5b05d5885 100644 --- a/packages/bench/CHANGELOG.md +++ b/packages/bench/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.0.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.23...@thi.ng/bench@2.0.24) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/bench - - - - - -## [2.0.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.22...@thi.ng/bench@2.0.23) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/bench - - - - - -## [2.0.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.21...@thi.ng/bench@2.0.22) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/bench - - - - - -## [2.0.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.20...@thi.ng/bench@2.0.21) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/bench - - - - - -## [2.0.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.19...@thi.ng/bench@2.0.20) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/bench - - - - - -## [2.0.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.18...@thi.ng/bench@2.0.19) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/bench - - - - - -## [2.0.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.17...@thi.ng/bench@2.0.18) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/bench - - - - - -## [2.0.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.16...@thi.ng/bench@2.0.17) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/bench - - - - - ## [2.0.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.5...@thi.ng/bench@2.0.6) (2020-04-03) diff --git a/packages/bencode/CHANGELOG.md b/packages/bencode/CHANGELOG.md index e955cb00c0..1c52f9f733 100644 --- a/packages/bencode/CHANGELOG.md +++ b/packages/bencode/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.3.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.42...@thi.ng/bencode@0.3.43) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/bencode - - - - - -## [0.3.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.41...@thi.ng/bencode@0.3.42) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/bencode - - - - - -## [0.3.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.40...@thi.ng/bencode@0.3.41) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/bencode - - - - - -## [0.3.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.39...@thi.ng/bencode@0.3.40) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/bencode - - - - - -## [0.3.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.38...@thi.ng/bencode@0.3.39) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/bencode - - - - - -## [0.3.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.37...@thi.ng/bencode@0.3.38) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/bencode - - - - - -## [0.3.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.36...@thi.ng/bencode@0.3.37) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/bencode - - - - - -## [0.3.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.35...@thi.ng/bencode@0.3.36) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/bencode - - - - - -## [0.3.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.34...@thi.ng/bencode@0.3.35) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/bencode - - - - - # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.2.17...@thi.ng/bencode@0.3.0) (2019-07-07) ### Features diff --git a/packages/binary/CHANGELOG.md b/packages/binary/CHANGELOG.md index d969332d17..9dcbec5486 100644 --- a/packages/binary/CHANGELOG.md +++ b/packages/binary/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.0.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@2.0.18...@thi.ng/binary@2.0.19) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/binary - - - - - -## [2.0.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@2.0.17...@thi.ng/binary@2.0.18) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/binary - - - - - -## [2.0.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@2.0.16...@thi.ng/binary@2.0.17) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/binary - - - - - -## [2.0.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@2.0.15...@thi.ng/binary@2.0.16) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/binary - - - - - -## [2.0.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@2.0.14...@thi.ng/binary@2.0.15) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/binary - - - - - -## [2.0.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@2.0.13...@thi.ng/binary@2.0.14) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/binary - - - - - -## [2.0.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@2.0.12...@thi.ng/binary@2.0.13) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/binary - - - - - -## [2.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@2.0.11...@thi.ng/binary@2.0.12) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/binary - - - - - # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@1.3.2...@thi.ng/binary@2.0.0) (2020-03-06) diff --git a/packages/bitfield/CHANGELOG.md b/packages/bitfield/CHANGELOG.md index 8ff891f58e..95646ea43f 100644 --- a/packages/bitfield/CHANGELOG.md +++ b/packages/bitfield/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.3.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.24...@thi.ng/bitfield@0.3.25) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/bitfield - - - - - -## [0.3.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.23...@thi.ng/bitfield@0.3.24) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/bitfield - - - - - -## [0.3.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.22...@thi.ng/bitfield@0.3.23) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/bitfield - - - - - -## [0.3.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.21...@thi.ng/bitfield@0.3.22) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/bitfield - - - - - -## [0.3.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.20...@thi.ng/bitfield@0.3.21) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/bitfield - - - - - -## [0.3.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.19...@thi.ng/bitfield@0.3.20) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/bitfield - - - - - -## [0.3.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.18...@thi.ng/bitfield@0.3.19) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/bitfield - - - - - -## [0.3.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.17...@thi.ng/bitfield@0.3.18) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/bitfield - - - - - -## [0.3.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.16...@thi.ng/bitfield@0.3.17) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/bitfield - - - - - # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.2.8...@thi.ng/bitfield@0.3.0) (2020-03-06) diff --git a/packages/bitstream/CHANGELOG.md b/packages/bitstream/CHANGELOG.md index 0f46f2e8bb..6e2fb1f545 100644 --- a/packages/bitstream/CHANGELOG.md +++ b/packages/bitstream/CHANGELOG.md @@ -3,62 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.1.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@1.1.28...@thi.ng/bitstream@1.1.29) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/bitstream - - - - - -## [1.1.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@1.1.27...@thi.ng/bitstream@1.1.28) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/bitstream - - - - - -## [1.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@1.1.26...@thi.ng/bitstream@1.1.27) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/bitstream - - - - - -## [1.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@1.1.25...@thi.ng/bitstream@1.1.26) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/bitstream - - - - - -## [1.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@1.1.24...@thi.ng/bitstream@1.1.25) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/bitstream - - - - - -## [1.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@1.1.23...@thi.ng/bitstream@1.1.24) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/bitstream - - - - - -## [1.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@1.1.22...@thi.ng/bitstream@1.1.23) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/bitstream - - - - - # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@1.0.6...@thi.ng/bitstream@1.1.0) (2019-07-07) ### Features diff --git a/packages/cache/CHANGELOG.md b/packages/cache/CHANGELOG.md index 6f1c5f2bff..2ae3e93427 100644 --- a/packages/cache/CHANGELOG.md +++ b/packages/cache/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.0.63](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.62...@thi.ng/cache@1.0.63) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/cache - - - - - -## [1.0.62](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.61...@thi.ng/cache@1.0.62) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/cache - - - - - -## [1.0.61](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.60...@thi.ng/cache@1.0.61) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/cache - - - - - -## [1.0.60](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.59...@thi.ng/cache@1.0.60) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/cache - - - - - -## [1.0.59](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.58...@thi.ng/cache@1.0.59) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/cache - - - - - -## [1.0.58](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.57...@thi.ng/cache@1.0.58) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/cache - - - - - -## [1.0.57](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.56...@thi.ng/cache@1.0.57) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/cache - - - - - -## [1.0.56](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.55...@thi.ng/cache@1.0.56) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/cache - - - - - -## [1.0.55](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.54...@thi.ng/cache@1.0.55) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/cache - - - - - # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@0.2.40...@thi.ng/cache@1.0.0) (2019-01-21) ### Bug Fixes diff --git a/packages/checks/CHANGELOG.md b/packages/checks/CHANGELOG.md index 4832c7b477..9293d892e7 100644 --- a/packages/checks/CHANGELOG.md +++ b/packages/checks/CHANGELOG.md @@ -3,62 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.7.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@2.7.10...@thi.ng/checks@2.7.11) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/checks - - - - - -## [2.7.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@2.7.9...@thi.ng/checks@2.7.10) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/checks - - - - - -## [2.7.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@2.7.8...@thi.ng/checks@2.7.9) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/checks - - - - - -## [2.7.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@2.7.7...@thi.ng/checks@2.7.8) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/checks - - - - - -## [2.7.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@2.7.6...@thi.ng/checks@2.7.7) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/checks - - - - - -## [2.7.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@2.7.5...@thi.ng/checks@2.7.6) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/checks - - - - - -## [2.7.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@2.7.4...@thi.ng/checks@2.7.5) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/checks - - - - - ## [2.7.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@2.7.2...@thi.ng/checks@2.7.3) (2020-07-02) diff --git a/packages/color/CHANGELOG.md b/packages/color/CHANGELOG.md index 8c5b849d02..6732ed3c98 100644 --- a/packages/color/CHANGELOG.md +++ b/packages/color/CHANGELOG.md @@ -3,22 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.3.1...@thi.ng/color@1.3.2) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/color - - - - - -## [1.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.3.0...@thi.ng/color@1.3.1) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/color - - - - - # [1.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.2.18...@thi.ng/color@1.3.0) (2020-11-24) @@ -30,62 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [1.2.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.2.17...@thi.ng/color@1.2.18) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/color - - - - - -## [1.2.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.2.16...@thi.ng/color@1.2.17) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/color - - - - - -## [1.2.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.2.15...@thi.ng/color@1.2.16) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/color - - - - - -## [1.2.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.2.14...@thi.ng/color@1.2.15) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/color - - - - - -## [1.2.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.2.13...@thi.ng/color@1.2.14) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/color - - - - - -## [1.2.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.2.12...@thi.ng/color@1.2.13) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/color - - - - - -## [1.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.2.11...@thi.ng/color@1.2.12) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/color - - - - - # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.1.21...@thi.ng/color@1.2.0) (2020-05-29) diff --git a/packages/colored-noise/CHANGELOG.md b/packages/colored-noise/CHANGELOG.md index 6d011de0a9..5059becf13 100644 --- a/packages/colored-noise/CHANGELOG.md +++ b/packages/colored-noise/CHANGELOG.md @@ -3,54 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/colored-noise@0.1.5...@thi.ng/colored-noise@0.1.6) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/colored-noise - - - - - -## [0.1.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/colored-noise@0.1.4...@thi.ng/colored-noise@0.1.5) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/colored-noise - - - - - -## [0.1.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/colored-noise@0.1.3...@thi.ng/colored-noise@0.1.4) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/colored-noise - - - - - -## [0.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/colored-noise@0.1.2...@thi.ng/colored-noise@0.1.3) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/colored-noise - - - - - -## [0.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/colored-noise@0.1.1...@thi.ng/colored-noise@0.1.2) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/colored-noise - - - - - -## [0.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/colored-noise@0.1.0...@thi.ng/colored-noise@0.1.1) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/colored-noise - - - - - # 0.1.0 (2020-08-28) diff --git a/packages/compare/CHANGELOG.md b/packages/compare/CHANGELOG.md index 66668c0739..8f224b9802 100644 --- a/packages/compare/CHANGELOG.md +++ b/packages/compare/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.3.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.3.19...@thi.ng/compare@1.3.20) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/compare - - - - - -## [1.3.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.3.18...@thi.ng/compare@1.3.19) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/compare - - - - - -## [1.3.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.3.17...@thi.ng/compare@1.3.18) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/compare - - - - - -## [1.3.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.3.16...@thi.ng/compare@1.3.17) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/compare - - - - - -## [1.3.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.3.15...@thi.ng/compare@1.3.16) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/compare - - - - - -## [1.3.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.3.14...@thi.ng/compare@1.3.15) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/compare - - - - - -## [1.3.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.3.13...@thi.ng/compare@1.3.14) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/compare - - - - - -## [1.3.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.3.12...@thi.ng/compare@1.3.13) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/compare - - - - - # [1.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.2.2...@thi.ng/compare@1.3.0) (2020-04-05) diff --git a/packages/compose/CHANGELOG.md b/packages/compose/CHANGELOG.md index 00cf506b7d..9d7e5cac39 100644 --- a/packages/compose/CHANGELOG.md +++ b/packages/compose/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.4.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.4.20...@thi.ng/compose@1.4.21) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/compose - - - - - -## [1.4.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.4.19...@thi.ng/compose@1.4.20) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/compose - - - - - -## [1.4.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.4.18...@thi.ng/compose@1.4.19) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/compose - - - - - -## [1.4.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.4.17...@thi.ng/compose@1.4.18) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/compose - - - - - -## [1.4.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.4.16...@thi.ng/compose@1.4.17) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/compose - - - - - -## [1.4.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.4.15...@thi.ng/compose@1.4.16) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/compose - - - - - -## [1.4.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.4.14...@thi.ng/compose@1.4.15) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/compose - - - - - -## [1.4.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.4.13...@thi.ng/compose@1.4.14) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/compose - - - - - # [1.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.3.12...@thi.ng/compose@1.4.0) (2020-03-28) diff --git a/packages/csp/CHANGELOG.md b/packages/csp/CHANGELOG.md index 17bbe72c20..eaeaac92e9 100644 --- a/packages/csp/CHANGELOG.md +++ b/packages/csp/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.1.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.42...@thi.ng/csp@1.1.43) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/csp - - - - - -## [1.1.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.41...@thi.ng/csp@1.1.42) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/csp - - - - - -## [1.1.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.40...@thi.ng/csp@1.1.41) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/csp - - - - - -## [1.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.39...@thi.ng/csp@1.1.40) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/csp - - - - - -## [1.1.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.38...@thi.ng/csp@1.1.39) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/csp - - - - - -## [1.1.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.37...@thi.ng/csp@1.1.38) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/csp - - - - - -## [1.1.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.36...@thi.ng/csp@1.1.37) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/csp - - - - - -## [1.1.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.35...@thi.ng/csp@1.1.36) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/csp - - - - - -## [1.1.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.34...@thi.ng/csp@1.1.35) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/csp - - - - - # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.0.19...@thi.ng/csp@1.1.0) (2019-07-07) ### Bug Fixes diff --git a/packages/csv/CHANGELOG.md b/packages/csv/CHANGELOG.md index f80f6ee93e..98fca9bbd0 100644 --- a/packages/csv/CHANGELOG.md +++ b/packages/csv/CHANGELOG.md @@ -3,22 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/csv@0.1.1...@thi.ng/csv@0.1.2) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/csv - - - - - -## [0.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/csv@0.1.0...@thi.ng/csv@0.1.1) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/csv - - - - - # 0.1.0 (2020-11-24) diff --git a/packages/date/CHANGELOG.md b/packages/date/CHANGELOG.md index f638182c0b..3b52f55e6f 100644 --- a/packages/date/CHANGELOG.md +++ b/packages/date/CHANGELOG.md @@ -3,22 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/date@0.2.2...@thi.ng/date@0.2.3) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/date - - - - - -## [0.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/date@0.2.1...@thi.ng/date@0.2.2) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/date - - - - - ## [0.2.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/date@0.2.0...@thi.ng/date@0.2.1) (2020-11-24) diff --git a/packages/dcons/CHANGELOG.md b/packages/dcons/CHANGELOG.md index babdd3d457..26e90ab743 100644 --- a/packages/dcons/CHANGELOG.md +++ b/packages/dcons/CHANGELOG.md @@ -3,30 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.3.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.3.2...@thi.ng/dcons@2.3.3) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/dcons - - - - - -## [2.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.3.1...@thi.ng/dcons@2.3.2) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/dcons - - - - - -## [2.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.3.0...@thi.ng/dcons@2.3.1) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/dcons - - - - - # [2.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.2.32...@thi.ng/dcons@2.3.0) (2020-10-19) @@ -38,46 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [2.2.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.2.31...@thi.ng/dcons@2.2.32) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/dcons - - - - - -## [2.2.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.2.30...@thi.ng/dcons@2.2.31) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/dcons - - - - - -## [2.2.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.2.29...@thi.ng/dcons@2.2.30) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/dcons - - - - - -## [2.2.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.2.28...@thi.ng/dcons@2.2.29) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/dcons - - - - - -## [2.2.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.2.27...@thi.ng/dcons@2.2.28) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/dcons - - - - - # [2.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.1.6...@thi.ng/dcons@2.2.0) (2019-11-30) ### Features diff --git a/packages/defmulti/CHANGELOG.md b/packages/defmulti/CHANGELOG.md index 78e56e67cb..0df89cb856 100644 --- a/packages/defmulti/CHANGELOG.md +++ b/packages/defmulti/CHANGELOG.md @@ -3,22 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.3.1...@thi.ng/defmulti@1.3.2) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/defmulti - - - - - -## [1.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.3.0...@thi.ng/defmulti@1.3.1) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/defmulti - - - - - # [1.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.2.26...@thi.ng/defmulti@1.3.0) (2020-11-24) @@ -30,46 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [1.2.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.2.25...@thi.ng/defmulti@1.2.26) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/defmulti - - - - - -## [1.2.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.2.24...@thi.ng/defmulti@1.2.25) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/defmulti - - - - - -## [1.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.2.23...@thi.ng/defmulti@1.2.24) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/defmulti - - - - - -## [1.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.2.22...@thi.ng/defmulti@1.2.23) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/defmulti - - - - - -## [1.2.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.2.21...@thi.ng/defmulti@1.2.22) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/defmulti - - - - - # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.1.4...@thi.ng/defmulti@1.2.0) (2019-11-09) ### Features diff --git a/packages/dgraph-dot/CHANGELOG.md b/packages/dgraph-dot/CHANGELOG.md index 469c49ccf4..9021667565 100644 --- a/packages/dgraph-dot/CHANGELOG.md +++ b/packages/dgraph-dot/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.30...@thi.ng/dgraph-dot@0.1.31) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/dgraph-dot - - - - - -## [0.1.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.29...@thi.ng/dgraph-dot@0.1.30) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/dgraph-dot - - - - - -## [0.1.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.28...@thi.ng/dgraph-dot@0.1.29) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/dgraph-dot - - - - - -## [0.1.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.27...@thi.ng/dgraph-dot@0.1.28) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/dgraph-dot - - - - - -## [0.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.26...@thi.ng/dgraph-dot@0.1.27) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/dgraph-dot - - - - - -## [0.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.25...@thi.ng/dgraph-dot@0.1.26) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/dgraph-dot - - - - - -## [0.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.24...@thi.ng/dgraph-dot@0.1.25) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/dgraph-dot - - - - - -## [0.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.23...@thi.ng/dgraph-dot@0.1.24) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/dgraph-dot - - - - - -## [0.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.22...@thi.ng/dgraph-dot@0.1.23) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/dgraph-dot - - - - - # 0.1.0 (2020-04-03) diff --git a/packages/dgraph/CHANGELOG.md b/packages/dgraph/CHANGELOG.md index d2292c834b..4b5ab15f6b 100644 --- a/packages/dgraph/CHANGELOG.md +++ b/packages/dgraph/CHANGELOG.md @@ -3,22 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.3.1...@thi.ng/dgraph@1.3.2) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/dgraph - - - - - -## [1.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.3.0...@thi.ng/dgraph@1.3.1) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/dgraph - - - - - # [1.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.2.28...@thi.ng/dgraph@1.3.0) (2020-11-24) @@ -30,54 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [1.2.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.2.27...@thi.ng/dgraph@1.2.28) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/dgraph - - - - - -## [1.2.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.2.26...@thi.ng/dgraph@1.2.27) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/dgraph - - - - - -## [1.2.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.2.25...@thi.ng/dgraph@1.2.26) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/dgraph - - - - - -## [1.2.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.2.24...@thi.ng/dgraph@1.2.25) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/dgraph - - - - - -## [1.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.2.23...@thi.ng/dgraph@1.2.24) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/dgraph - - - - - -## [1.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.2.22...@thi.ng/dgraph@1.2.23) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/dgraph - - - - - # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.1.25...@thi.ng/dgraph@1.2.0) (2020-04-03) diff --git a/packages/diff/CHANGELOG.md b/packages/diff/CHANGELOG.md index d2e923db1c..b3ec0c3e0e 100644 --- a/packages/diff/CHANGELOG.md +++ b/packages/diff/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [3.2.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.34...@thi.ng/diff@3.2.35) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/diff - - - - - -## [3.2.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.33...@thi.ng/diff@3.2.34) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/diff - - - - - -## [3.2.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.32...@thi.ng/diff@3.2.33) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/diff - - - - - -## [3.2.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.31...@thi.ng/diff@3.2.32) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/diff - - - - - -## [3.2.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.30...@thi.ng/diff@3.2.31) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/diff - - - - - -## [3.2.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.29...@thi.ng/diff@3.2.30) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/diff - - - - - -## [3.2.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.28...@thi.ng/diff@3.2.29) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/diff - - - - - -## [3.2.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.27...@thi.ng/diff@3.2.28) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/diff - - - - - ## [3.2.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.19...@thi.ng/diff@3.2.20) (2020-05-05) diff --git a/packages/dl-asset/CHANGELOG.md b/packages/dl-asset/CHANGELOG.md index 79a17f1ef7..f0f90205f6 100644 --- a/packages/dl-asset/CHANGELOG.md +++ b/packages/dl-asset/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.4.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.4.8...@thi.ng/dl-asset@0.4.9) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/dl-asset - - - - - -## [0.4.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.4.7...@thi.ng/dl-asset@0.4.8) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/dl-asset - - - - - -## [0.4.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.4.6...@thi.ng/dl-asset@0.4.7) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/dl-asset - - - - - -## [0.4.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.4.5...@thi.ng/dl-asset@0.4.6) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/dl-asset - - - - - -## [0.4.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.4.4...@thi.ng/dl-asset@0.4.5) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/dl-asset - - - - - -## [0.4.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.4.3...@thi.ng/dl-asset@0.4.4) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/dl-asset - - - - - -## [0.4.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.4.2...@thi.ng/dl-asset@0.4.3) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/dl-asset - - - - - -## [0.4.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.4.1...@thi.ng/dl-asset@0.4.2) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/dl-asset - - - - - # [0.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.3.14...@thi.ng/dl-asset@0.4.0) (2020-07-08) diff --git a/packages/dlogic/CHANGELOG.md b/packages/dlogic/CHANGELOG.md index 6254ac3e2a..aab39f5142 100644 --- a/packages/dlogic/CHANGELOG.md +++ b/packages/dlogic/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.0.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@1.0.34...@thi.ng/dlogic@1.0.35) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/dlogic - - - - - -## [1.0.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@1.0.33...@thi.ng/dlogic@1.0.34) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/dlogic - - - - - -## [1.0.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@1.0.32...@thi.ng/dlogic@1.0.33) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/dlogic - - - - - -## [1.0.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@1.0.31...@thi.ng/dlogic@1.0.32) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/dlogic - - - - - -## [1.0.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@1.0.30...@thi.ng/dlogic@1.0.31) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/dlogic - - - - - -## [1.0.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@1.0.29...@thi.ng/dlogic@1.0.30) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/dlogic - - - - - -## [1.0.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@1.0.28...@thi.ng/dlogic@1.0.29) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/dlogic - - - - - -## [1.0.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@1.0.27...@thi.ng/dlogic@1.0.28) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/dlogic - - - - - # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@0.1.2...@thi.ng/dlogic@1.0.0) (2019-01-21) ### Build System diff --git a/packages/dot/CHANGELOG.md b/packages/dot/CHANGELOG.md index 55e5bad341..d1337f491f 100644 --- a/packages/dot/CHANGELOG.md +++ b/packages/dot/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.2.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.2.20...@thi.ng/dot@1.2.21) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/dot - - - - - -## [1.2.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.2.19...@thi.ng/dot@1.2.20) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/dot - - - - - -## [1.2.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.2.18...@thi.ng/dot@1.2.19) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/dot - - - - - -## [1.2.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.2.17...@thi.ng/dot@1.2.18) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/dot - - - - - -## [1.2.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.2.16...@thi.ng/dot@1.2.17) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/dot - - - - - -## [1.2.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.2.15...@thi.ng/dot@1.2.16) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/dot - - - - - -## [1.2.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.2.14...@thi.ng/dot@1.2.15) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/dot - - - - - -## [1.2.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.2.13...@thi.ng/dot@1.2.14) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/dot - - - - - # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.1.14...@thi.ng/dot@1.2.0) (2020-04-03) diff --git a/packages/dsp-io-wav/CHANGELOG.md b/packages/dsp-io-wav/CHANGELOG.md index 8c0d2f2218..1158321d1a 100644 --- a/packages/dsp-io-wav/CHANGELOG.md +++ b/packages/dsp-io-wav/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.32...@thi.ng/dsp-io-wav@0.1.33) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/dsp-io-wav - - - - - -## [0.1.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.31...@thi.ng/dsp-io-wav@0.1.32) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/dsp-io-wav - - - - - -## [0.1.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.30...@thi.ng/dsp-io-wav@0.1.31) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/dsp-io-wav - - - - - -## [0.1.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.29...@thi.ng/dsp-io-wav@0.1.30) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/dsp-io-wav - - - - - -## [0.1.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.28...@thi.ng/dsp-io-wav@0.1.29) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/dsp-io-wav - - - - - -## [0.1.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.27...@thi.ng/dsp-io-wav@0.1.28) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/dsp-io-wav - - - - - -## [0.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.26...@thi.ng/dsp-io-wav@0.1.27) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/dsp-io-wav - - - - - -## [0.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.25...@thi.ng/dsp-io-wav@0.1.26) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/dsp-io-wav - - - - - -## [0.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.24...@thi.ng/dsp-io-wav@0.1.25) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/dsp-io-wav - - - - - # 0.1.0 (2020-02-25) diff --git a/packages/dsp/CHANGELOG.md b/packages/dsp/CHANGELOG.md index e317db3872..38c7f2cfda 100644 --- a/packages/dsp/CHANGELOG.md +++ b/packages/dsp/CHANGELOG.md @@ -3,46 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.1.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.1.4...@thi.ng/dsp@2.1.5) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/dsp - - - - - -## [2.1.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.1.3...@thi.ng/dsp@2.1.4) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/dsp - - - - - -## [2.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.1.2...@thi.ng/dsp@2.1.3) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/dsp - - - - - -## [2.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.1.1...@thi.ng/dsp@2.1.2) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/dsp - - - - - -## [2.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.1.0...@thi.ng/dsp@2.1.1) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/dsp - - - - - # [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.0.28...@thi.ng/dsp@2.1.0) (2020-08-28) @@ -54,22 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [2.0.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.0.27...@thi.ng/dsp@2.0.28) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/dsp - - - - - -## [2.0.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.0.26...@thi.ng/dsp@2.0.27) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/dsp - - - - - # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@1.0.18...@thi.ng/dsp@2.0.0) (2020-01-24) ### Code Refactoring diff --git a/packages/dual-algebra/CHANGELOG.md b/packages/dual-algebra/CHANGELOG.md index c481d8f33a..35cf287415 100644 --- a/packages/dual-algebra/CHANGELOG.md +++ b/packages/dual-algebra/CHANGELOG.md @@ -3,38 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.1.3...@thi.ng/dual-algebra@0.1.4) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/dual-algebra - - - - - -## [0.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.1.2...@thi.ng/dual-algebra@0.1.3) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/dual-algebra - - - - - -## [0.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.1.1...@thi.ng/dual-algebra@0.1.2) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/dual-algebra - - - - - -## [0.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.1.0...@thi.ng/dual-algebra@0.1.1) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/dual-algebra - - - - - # 0.1.0 (2020-09-13) diff --git a/packages/dynvar/CHANGELOG.md b/packages/dynvar/CHANGELOG.md index f0984ddf75..0849bdf272 100644 --- a/packages/dynvar/CHANGELOG.md +++ b/packages/dynvar/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/dynvar@0.1.26...@thi.ng/dynvar@0.1.27) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/dynvar - - - - - -## [0.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/dynvar@0.1.25...@thi.ng/dynvar@0.1.26) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/dynvar - - - - - -## [0.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/dynvar@0.1.24...@thi.ng/dynvar@0.1.25) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/dynvar - - - - - -## [0.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/dynvar@0.1.23...@thi.ng/dynvar@0.1.24) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/dynvar - - - - - -## [0.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/dynvar@0.1.22...@thi.ng/dynvar@0.1.23) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/dynvar - - - - - -## [0.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/dynvar@0.1.21...@thi.ng/dynvar@0.1.22) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/dynvar - - - - - -## [0.1.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/dynvar@0.1.20...@thi.ng/dynvar@0.1.21) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/dynvar - - - - - -## [0.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/dynvar@0.1.19...@thi.ng/dynvar@0.1.20) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/dynvar - - - - - # 0.1.0 (2020-01-24) ### Features diff --git a/packages/ecs/CHANGELOG.md b/packages/ecs/CHANGELOG.md index 3f8e928a12..0aed527df8 100644 --- a/packages/ecs/CHANGELOG.md +++ b/packages/ecs/CHANGELOG.md @@ -3,30 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.4.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.4.2...@thi.ng/ecs@0.4.3) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/ecs - - - - - -## [0.4.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.4.1...@thi.ng/ecs@0.4.2) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/ecs - - - - - -## [0.4.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.4.0...@thi.ng/ecs@0.4.1) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/ecs - - - - - # [0.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.3.34...@thi.ng/ecs@0.4.0) (2020-10-19) @@ -38,46 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.3.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.3.33...@thi.ng/ecs@0.3.34) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/ecs - - - - - -## [0.3.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.3.32...@thi.ng/ecs@0.3.33) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/ecs - - - - - -## [0.3.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.3.31...@thi.ng/ecs@0.3.32) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/ecs - - - - - -## [0.3.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.3.30...@thi.ng/ecs@0.3.31) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/ecs - - - - - -## [0.3.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.3.29...@thi.ng/ecs@0.3.30) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/ecs - - - - - # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.2.0...@thi.ng/ecs@0.3.0) (2020-01-24) ### Bug Fixes diff --git a/packages/egf/CHANGELOG.md b/packages/egf/CHANGELOG.md index 5f50c11930..e70698cf77 100644 --- a/packages/egf/CHANGELOG.md +++ b/packages/egf/CHANGELOG.md @@ -3,38 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.3.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/egf@0.3.3...@thi.ng/egf@0.3.4) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/egf - - - - - -## [0.3.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/egf@0.3.2...@thi.ng/egf@0.3.3) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/egf - - - - - -## [0.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/egf@0.3.1...@thi.ng/egf@0.3.2) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/egf - - - - - -## [0.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/egf@0.3.0...@thi.ng/egf@0.3.1) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/egf - - - - - # 0.3.0 (2020-09-22) diff --git a/packages/equiv/CHANGELOG.md b/packages/equiv/CHANGELOG.md index a7af4aa4cf..210a2bb6e4 100644 --- a/packages/equiv/CHANGELOG.md +++ b/packages/equiv/CHANGELOG.md @@ -3,54 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.0.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@1.0.32...@thi.ng/equiv@1.0.33) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/equiv - - - - - -## [1.0.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@1.0.31...@thi.ng/equiv@1.0.32) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/equiv - - - - - -## [1.0.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@1.0.30...@thi.ng/equiv@1.0.31) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/equiv - - - - - -## [1.0.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@1.0.29...@thi.ng/equiv@1.0.30) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/equiv - - - - - -## [1.0.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@1.0.28...@thi.ng/equiv@1.0.29) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/equiv - - - - - -## [1.0.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@1.0.27...@thi.ng/equiv@1.0.28) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/equiv - - - - - # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@0.1.15...@thi.ng/equiv@1.0.0) (2019-01-21) ### Build System diff --git a/packages/errors/CHANGELOG.md b/packages/errors/CHANGELOG.md index 6754ef9424..25aa7885ed 100644 --- a/packages/errors/CHANGELOG.md +++ b/packages/errors/CHANGELOG.md @@ -3,62 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/errors@1.2.23...@thi.ng/errors@1.2.24) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/errors - - - - - -## [1.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/errors@1.2.22...@thi.ng/errors@1.2.23) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/errors - - - - - -## [1.2.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/errors@1.2.21...@thi.ng/errors@1.2.22) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/errors - - - - - -## [1.2.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/errors@1.2.20...@thi.ng/errors@1.2.21) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/errors - - - - - -## [1.2.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/errors@1.2.19...@thi.ng/errors@1.2.20) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/errors - - - - - -## [1.2.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/errors@1.2.18...@thi.ng/errors@1.2.19) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/errors - - - - - -## [1.2.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/errors@1.2.17...@thi.ng/errors@1.2.18) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/errors - - - - - # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/errors@1.1.2...@thi.ng/errors@1.2.0) (2019-08-21) ### Features diff --git a/packages/fsm/CHANGELOG.md b/packages/fsm/CHANGELOG.md index c6a4954bf3..785ca9176a 100644 --- a/packages/fsm/CHANGELOG.md +++ b/packages/fsm/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.4.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.28...@thi.ng/fsm@2.4.29) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/fsm - - - - - -## [2.4.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.27...@thi.ng/fsm@2.4.28) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/fsm - - - - - -## [2.4.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.26...@thi.ng/fsm@2.4.27) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/fsm - - - - - -## [2.4.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.25...@thi.ng/fsm@2.4.26) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/fsm - - - - - -## [2.4.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.24...@thi.ng/fsm@2.4.25) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/fsm - - - - - -## [2.4.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.23...@thi.ng/fsm@2.4.24) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/fsm - - - - - -## [2.4.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.22...@thi.ng/fsm@2.4.23) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/fsm - - - - - -## [2.4.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.21...@thi.ng/fsm@2.4.22) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/fsm - - - - - -## [2.4.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.20...@thi.ng/fsm@2.4.21) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/fsm - - - - - # [2.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.3.7...@thi.ng/fsm@2.4.0) (2020-03-06) diff --git a/packages/geom-accel/CHANGELOG.md b/packages/geom-accel/CHANGELOG.md index f695f3552b..7404a929a1 100644 --- a/packages/geom-accel/CHANGELOG.md +++ b/packages/geom-accel/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.1.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.27...@thi.ng/geom-accel@2.1.28) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-accel - - - - - -## [2.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.26...@thi.ng/geom-accel@2.1.27) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-accel - - - - - -## [2.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.25...@thi.ng/geom-accel@2.1.26) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-accel - - - - - -## [2.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.24...@thi.ng/geom-accel@2.1.25) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-accel - - - - - -## [2.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.23...@thi.ng/geom-accel@2.1.24) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/geom-accel - - - - - -## [2.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.22...@thi.ng/geom-accel@2.1.23) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-accel - - - - - -## [2.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.21...@thi.ng/geom-accel@2.1.22) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-accel - - - - - -## [2.1.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.20...@thi.ng/geom-accel@2.1.21) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-accel - - - - - -## [2.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.19...@thi.ng/geom-accel@2.1.20) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-accel - - - - - -## [2.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.18...@thi.ng/geom-accel@2.1.19) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-accel - - - - - # [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.0.11...@thi.ng/geom-accel@2.1.0) (2020-04-23) diff --git a/packages/geom-api/CHANGELOG.md b/packages/geom-api/CHANGELOG.md index 5281aae017..4740a28f64 100644 --- a/packages/geom-api/CHANGELOG.md +++ b/packages/geom-api/CHANGELOG.md @@ -3,38 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.1.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.1.3...@thi.ng/geom-api@1.1.4) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-api - - - - - -## [1.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.1.2...@thi.ng/geom-api@1.1.3) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-api - - - - - -## [1.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.1.1...@thi.ng/geom-api@1.1.2) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-api - - - - - -## [1.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.1.0...@thi.ng/geom-api@1.1.1) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-api - - - - - # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.34...@thi.ng/geom-api@1.1.0) (2020-09-22) @@ -46,46 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [1.0.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.33...@thi.ng/geom-api@1.0.34) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-api - - - - - -## [1.0.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.32...@thi.ng/geom-api@1.0.33) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-api - - - - - -## [1.0.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.31...@thi.ng/geom-api@1.0.32) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-api - - - - - -## [1.0.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.30...@thi.ng/geom-api@1.0.31) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-api - - - - - -## [1.0.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.29...@thi.ng/geom-api@1.0.30) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-api - - - - - # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@0.3.8...@thi.ng/geom-api@1.0.0) (2020-01-24) ### Features diff --git a/packages/geom-arc/CHANGELOG.md b/packages/geom-arc/CHANGELOG.md index 037e313419..39b31f8994 100644 --- a/packages/geom-arc/CHANGELOG.md +++ b/packages/geom-arc/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.3.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.3.16...@thi.ng/geom-arc@0.3.17) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-arc - - - - - -## [0.3.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.3.15...@thi.ng/geom-arc@0.3.16) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-arc - - - - - -## [0.3.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.3.14...@thi.ng/geom-arc@0.3.15) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-arc - - - - - -## [0.3.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.3.13...@thi.ng/geom-arc@0.3.14) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-arc - - - - - -## [0.3.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.3.12...@thi.ng/geom-arc@0.3.13) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/geom-arc - - - - - -## [0.3.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.3.11...@thi.ng/geom-arc@0.3.12) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-arc - - - - - -## [0.3.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.3.10...@thi.ng/geom-arc@0.3.11) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-arc - - - - - -## [0.3.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.3.9...@thi.ng/geom-arc@0.3.10) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-arc - - - - - -## [0.3.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.3.8...@thi.ng/geom-arc@0.3.9) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-arc - - - - - -## [0.3.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.3.7...@thi.ng/geom-arc@0.3.8) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-arc - - - - - # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.2.32...@thi.ng/geom-arc@0.3.0) (2020-06-20) diff --git a/packages/geom-clip-line/CHANGELOG.md b/packages/geom-clip-line/CHANGELOG.md index 271a6249ab..ca3554003c 100644 --- a/packages/geom-clip-line/CHANGELOG.md +++ b/packages/geom-clip-line/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.2.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.2.12...@thi.ng/geom-clip-line@1.2.13) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-clip-line - - - - - -## [1.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.2.11...@thi.ng/geom-clip-line@1.2.12) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-clip-line - - - - - -## [1.2.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.2.10...@thi.ng/geom-clip-line@1.2.11) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-clip-line - - - - - -## [1.2.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.2.9...@thi.ng/geom-clip-line@1.2.10) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-clip-line - - - - - -## [1.2.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.2.8...@thi.ng/geom-clip-line@1.2.9) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/geom-clip-line - - - - - -## [1.2.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.2.7...@thi.ng/geom-clip-line@1.2.8) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-clip-line - - - - - -## [1.2.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.2.6...@thi.ng/geom-clip-line@1.2.7) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-clip-line - - - - - -## [1.2.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.2.5...@thi.ng/geom-clip-line@1.2.6) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-clip-line - - - - - -## [1.2.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.2.4...@thi.ng/geom-clip-line@1.2.5) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-clip-line - - - - - -## [1.2.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.2.3...@thi.ng/geom-clip-line@1.2.4) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-clip-line - - - - - # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.1.4...@thi.ng/geom-clip-line@1.2.0) (2020-07-17) diff --git a/packages/geom-clip-poly/CHANGELOG.md b/packages/geom-clip-poly/CHANGELOG.md index b485492f4a..7776b2fd56 100644 --- a/packages/geom-clip-poly/CHANGELOG.md +++ b/packages/geom-clip-poly/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.0.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.37...@thi.ng/geom-clip-poly@1.0.38) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-clip-poly - - - - - -## [1.0.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.36...@thi.ng/geom-clip-poly@1.0.37) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-clip-poly - - - - - -## [1.0.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.35...@thi.ng/geom-clip-poly@1.0.36) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-clip-poly - - - - - -## [1.0.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.34...@thi.ng/geom-clip-poly@1.0.35) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-clip-poly - - - - - -## [1.0.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.33...@thi.ng/geom-clip-poly@1.0.34) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/geom-clip-poly - - - - - -## [1.0.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.32...@thi.ng/geom-clip-poly@1.0.33) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-clip-poly - - - - - -## [1.0.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.31...@thi.ng/geom-clip-poly@1.0.32) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-clip-poly - - - - - -## [1.0.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.30...@thi.ng/geom-clip-poly@1.0.31) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-clip-poly - - - - - -## [1.0.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.29...@thi.ng/geom-clip-poly@1.0.30) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-clip-poly - - - - - -## [1.0.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.28...@thi.ng/geom-clip-poly@1.0.29) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-clip-poly - - - - - # 1.0.0 (2020-02-25) diff --git a/packages/geom-closest-point/CHANGELOG.md b/packages/geom-closest-point/CHANGELOG.md index 240c3bce44..c966ef7a46 100644 --- a/packages/geom-closest-point/CHANGELOG.md +++ b/packages/geom-closest-point/CHANGELOG.md @@ -3,38 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.5.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.5.3...@thi.ng/geom-closest-point@0.5.4) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-closest-point - - - - - -## [0.5.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.5.2...@thi.ng/geom-closest-point@0.5.3) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-closest-point - - - - - -## [0.5.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.5.1...@thi.ng/geom-closest-point@0.5.2) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-closest-point - - - - - -## [0.5.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.5.0...@thi.ng/geom-closest-point@0.5.1) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-closest-point - - - - - # [0.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.4.0...@thi.ng/geom-closest-point@0.5.0) (2020-09-22) @@ -67,38 +35,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.3.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.3.43...@thi.ng/geom-closest-point@0.3.44) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-closest-point - - - - - -## [0.3.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.3.42...@thi.ng/geom-closest-point@0.3.43) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-closest-point - - - - - -## [0.3.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.3.41...@thi.ng/geom-closest-point@0.3.42) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-closest-point - - - - - -## [0.3.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.3.40...@thi.ng/geom-closest-point@0.3.41) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-closest-point - - - - - # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.2.3...@thi.ng/geom-closest-point@0.3.0) (2019-07-07) ### Bug Fixes diff --git a/packages/geom-fuzz/CHANGELOG.md b/packages/geom-fuzz/CHANGELOG.md index 89ec07dfb1..d1b9e07d67 100644 --- a/packages/geom-fuzz/CHANGELOG.md +++ b/packages/geom-fuzz/CHANGELOG.md @@ -3,102 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.24...@thi.ng/geom-fuzz@0.1.25) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-fuzz - - - - - -## [0.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.23...@thi.ng/geom-fuzz@0.1.24) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-fuzz - - - - - -## [0.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.22...@thi.ng/geom-fuzz@0.1.23) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-fuzz - - - - - -## [0.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.21...@thi.ng/geom-fuzz@0.1.22) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-fuzz - - - - - -## [0.1.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.20...@thi.ng/geom-fuzz@0.1.21) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/geom-fuzz - - - - - -## [0.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.19...@thi.ng/geom-fuzz@0.1.20) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-fuzz - - - - - -## [0.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.18...@thi.ng/geom-fuzz@0.1.19) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/geom-fuzz - - - - - -## [0.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.17...@thi.ng/geom-fuzz@0.1.18) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-fuzz - - - - - -## [0.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.16...@thi.ng/geom-fuzz@0.1.17) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-fuzz - - - - - -## [0.1.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.15...@thi.ng/geom-fuzz@0.1.16) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-fuzz - - - - - -## [0.1.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.14...@thi.ng/geom-fuzz@0.1.15) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-fuzz - - - - - -## [0.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.13...@thi.ng/geom-fuzz@0.1.14) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-fuzz - - - - - # 0.1.0 (2020-06-20) diff --git a/packages/geom-hull/CHANGELOG.md b/packages/geom-hull/CHANGELOG.md index 953ba72390..f223e7eebb 100644 --- a/packages/geom-hull/CHANGELOG.md +++ b/packages/geom-hull/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.0.70](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.69...@thi.ng/geom-hull@0.0.70) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-hull - - - - - -## [0.0.69](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.68...@thi.ng/geom-hull@0.0.69) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-hull - - - - - -## [0.0.68](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.67...@thi.ng/geom-hull@0.0.68) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-hull - - - - - -## [0.0.67](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.66...@thi.ng/geom-hull@0.0.67) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-hull - - - - - -## [0.0.66](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.65...@thi.ng/geom-hull@0.0.66) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/geom-hull - - - - - -## [0.0.65](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.64...@thi.ng/geom-hull@0.0.65) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-hull - - - - - -## [0.0.64](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.63...@thi.ng/geom-hull@0.0.64) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-hull - - - - - -## [0.0.63](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.62...@thi.ng/geom-hull@0.0.63) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-hull - - - - - -## [0.0.62](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.61...@thi.ng/geom-hull@0.0.62) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-hull - - - - - ## [0.0.61](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.60...@thi.ng/geom-hull@0.0.61) (2020-08-16) **Note:** Version bump only for package @thi.ng/geom-hull diff --git a/packages/geom-io-obj/CHANGELOG.md b/packages/geom-io-obj/CHANGELOG.md index 4ecd5aef1f..bd1623f335 100644 --- a/packages/geom-io-obj/CHANGELOG.md +++ b/packages/geom-io-obj/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.27...@thi.ng/geom-io-obj@0.1.28) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-io-obj - - - - - -## [0.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.26...@thi.ng/geom-io-obj@0.1.27) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-io-obj - - - - - -## [0.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.25...@thi.ng/geom-io-obj@0.1.26) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-io-obj - - - - - -## [0.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.24...@thi.ng/geom-io-obj@0.1.25) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-io-obj - - - - - -## [0.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.23...@thi.ng/geom-io-obj@0.1.24) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/geom-io-obj - - - - - -## [0.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.22...@thi.ng/geom-io-obj@0.1.23) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-io-obj - - - - - -## [0.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.21...@thi.ng/geom-io-obj@0.1.22) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-io-obj - - - - - -## [0.1.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.20...@thi.ng/geom-io-obj@0.1.21) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-io-obj - - - - - -## [0.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.19...@thi.ng/geom-io-obj@0.1.20) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-io-obj - - - - - -## [0.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.18...@thi.ng/geom-io-obj@0.1.19) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-io-obj - - - - - # 0.1.0 (2020-04-20) diff --git a/packages/geom-isec/CHANGELOG.md b/packages/geom-isec/CHANGELOG.md index a9d62e6267..97ce1b4137 100644 --- a/packages/geom-isec/CHANGELOG.md +++ b/packages/geom-isec/CHANGELOG.md @@ -3,22 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.7.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.7.1...@thi.ng/geom-isec@0.7.2) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-isec - - - - - -## [0.7.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.7.0...@thi.ng/geom-isec@0.7.1) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-isec - - - - - # [0.7.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.6.1...@thi.ng/geom-isec@0.7.0) (2020-11-24) @@ -30,14 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.6.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.6.0...@thi.ng/geom-isec@0.6.1) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-isec - - - - - # [0.6.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.5.8...@thi.ng/geom-isec@0.6.0) (2020-09-22) @@ -54,46 +30,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.5.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.5.7...@thi.ng/geom-isec@0.5.8) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-isec - - - - - -## [0.5.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.5.6...@thi.ng/geom-isec@0.5.7) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-isec - - - - - -## [0.5.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.5.5...@thi.ng/geom-isec@0.5.6) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-isec - - - - - -## [0.5.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.5.4...@thi.ng/geom-isec@0.5.5) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-isec - - - - - -## [0.5.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.5.3...@thi.ng/geom-isec@0.5.4) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-isec - - - - - # [0.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.4.26...@thi.ng/geom-isec@0.5.0) (2020-07-17) diff --git a/packages/geom-isoline/CHANGELOG.md b/packages/geom-isoline/CHANGELOG.md index 999deba80a..a8d7c3d870 100644 --- a/packages/geom-isoline/CHANGELOG.md +++ b/packages/geom-isoline/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.68](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.67...@thi.ng/geom-isoline@0.1.68) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-isoline - - - - - -## [0.1.67](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.66...@thi.ng/geom-isoline@0.1.67) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-isoline - - - - - -## [0.1.66](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.65...@thi.ng/geom-isoline@0.1.66) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-isoline - - - - - -## [0.1.65](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.64...@thi.ng/geom-isoline@0.1.65) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-isoline - - - - - -## [0.1.64](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.63...@thi.ng/geom-isoline@0.1.64) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/geom-isoline - - - - - -## [0.1.63](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.62...@thi.ng/geom-isoline@0.1.63) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-isoline - - - - - -## [0.1.62](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.61...@thi.ng/geom-isoline@0.1.62) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-isoline - - - - - -## [0.1.61](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.60...@thi.ng/geom-isoline@0.1.61) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-isoline - - - - - -## [0.1.60](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.59...@thi.ng/geom-isoline@0.1.60) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-isoline - - - - - -## [0.1.59](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.58...@thi.ng/geom-isoline@0.1.59) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-isoline - - - - - ## [0.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.24...@thi.ng/geom-isoline@0.1.25) (2019-08-21) ### Performance Improvements diff --git a/packages/geom-poly-utils/CHANGELOG.md b/packages/geom-poly-utils/CHANGELOG.md index 110d3fabba..bc840b754d 100644 --- a/packages/geom-poly-utils/CHANGELOG.md +++ b/packages/geom-poly-utils/CHANGELOG.md @@ -3,22 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.2.1...@thi.ng/geom-poly-utils@0.2.2) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-poly-utils - - - - - -## [0.2.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.2.0...@thi.ng/geom-poly-utils@0.2.1) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-poly-utils - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.66...@thi.ng/geom-poly-utils@0.2.0) (2020-11-24) @@ -30,62 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.1.66](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.65...@thi.ng/geom-poly-utils@0.1.66) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-poly-utils - - - - - -## [0.1.65](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.64...@thi.ng/geom-poly-utils@0.1.65) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/geom-poly-utils - - - - - -## [0.1.64](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.63...@thi.ng/geom-poly-utils@0.1.64) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-poly-utils - - - - - -## [0.1.63](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.62...@thi.ng/geom-poly-utils@0.1.63) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-poly-utils - - - - - -## [0.1.62](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.61...@thi.ng/geom-poly-utils@0.1.62) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-poly-utils - - - - - -## [0.1.61](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.60...@thi.ng/geom-poly-utils@0.1.61) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-poly-utils - - - - - -## [0.1.60](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.59...@thi.ng/geom-poly-utils@0.1.60) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-poly-utils - - - - - ## [0.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.17...@thi.ng/geom-poly-utils@0.1.18) (2019-07-07) ### Bug Fixes diff --git a/packages/geom-resample/CHANGELOG.md b/packages/geom-resample/CHANGELOG.md index a9d576b2e3..57290c39f8 100644 --- a/packages/geom-resample/CHANGELOG.md +++ b/packages/geom-resample/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.50](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.49...@thi.ng/geom-resample@0.2.50) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-resample - - - - - -## [0.2.49](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.48...@thi.ng/geom-resample@0.2.49) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-resample - - - - - -## [0.2.48](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.47...@thi.ng/geom-resample@0.2.48) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-resample - - - - - -## [0.2.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.46...@thi.ng/geom-resample@0.2.47) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-resample - - - - - -## [0.2.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.45...@thi.ng/geom-resample@0.2.46) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/geom-resample - - - - - -## [0.2.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.44...@thi.ng/geom-resample@0.2.45) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-resample - - - - - -## [0.2.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.43...@thi.ng/geom-resample@0.2.44) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-resample - - - - - -## [0.2.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.42...@thi.ng/geom-resample@0.2.43) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-resample - - - - - -## [0.2.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.41...@thi.ng/geom-resample@0.2.42) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-resample - - - - - -## [0.2.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.40...@thi.ng/geom-resample@0.2.41) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-resample - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.1.17...@thi.ng/geom-resample@0.2.0) (2019-07-07) ### Features diff --git a/packages/geom-splines/CHANGELOG.md b/packages/geom-splines/CHANGELOG.md index 42fb017061..e85463a01f 100644 --- a/packages/geom-splines/CHANGELOG.md +++ b/packages/geom-splines/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.5.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.36...@thi.ng/geom-splines@0.5.37) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-splines - - - - - -## [0.5.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.35...@thi.ng/geom-splines@0.5.36) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-splines - - - - - -## [0.5.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.34...@thi.ng/geom-splines@0.5.35) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-splines - - - - - -## [0.5.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.33...@thi.ng/geom-splines@0.5.34) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-splines - - - - - -## [0.5.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.32...@thi.ng/geom-splines@0.5.33) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/geom-splines - - - - - -## [0.5.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.31...@thi.ng/geom-splines@0.5.32) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-splines - - - - - -## [0.5.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.30...@thi.ng/geom-splines@0.5.31) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-splines - - - - - -## [0.5.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.29...@thi.ng/geom-splines@0.5.30) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-splines - - - - - -## [0.5.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.28...@thi.ng/geom-splines@0.5.29) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-splines - - - - - -## [0.5.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.27...@thi.ng/geom-splines@0.5.28) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-splines - - - - - # [0.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.4.5...@thi.ng/geom-splines@0.5.0) (2020-02-25) diff --git a/packages/geom-subdiv-curve/CHANGELOG.md b/packages/geom-subdiv-curve/CHANGELOG.md index fb7f561f37..d776894b65 100644 --- a/packages/geom-subdiv-curve/CHANGELOG.md +++ b/packages/geom-subdiv-curve/CHANGELOG.md @@ -3,94 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.68](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.67...@thi.ng/geom-subdiv-curve@0.1.68) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-subdiv-curve - - - - - -## [0.1.67](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.66...@thi.ng/geom-subdiv-curve@0.1.67) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-subdiv-curve - - - - - -## [0.1.66](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.65...@thi.ng/geom-subdiv-curve@0.1.66) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-subdiv-curve - - - - - -## [0.1.65](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.64...@thi.ng/geom-subdiv-curve@0.1.65) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-subdiv-curve - - - - - -## [0.1.64](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.63...@thi.ng/geom-subdiv-curve@0.1.64) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-subdiv-curve - - - - - -## [0.1.63](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.62...@thi.ng/geom-subdiv-curve@0.1.63) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/geom-subdiv-curve - - - - - -## [0.1.62](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.61...@thi.ng/geom-subdiv-curve@0.1.62) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-subdiv-curve - - - - - -## [0.1.61](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.60...@thi.ng/geom-subdiv-curve@0.1.61) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-subdiv-curve - - - - - -## [0.1.60](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.59...@thi.ng/geom-subdiv-curve@0.1.60) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-subdiv-curve - - - - - -## [0.1.59](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.58...@thi.ng/geom-subdiv-curve@0.1.59) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-subdiv-curve - - - - - -## [0.1.58](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.57...@thi.ng/geom-subdiv-curve@0.1.58) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-subdiv-curve - - - - - # 0.1.0 (2019-02-05) ### Features diff --git a/packages/geom-tessellate/CHANGELOG.md b/packages/geom-tessellate/CHANGELOG.md index 314c597af6..fbd9865da0 100644 --- a/packages/geom-tessellate/CHANGELOG.md +++ b/packages/geom-tessellate/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.51](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.50...@thi.ng/geom-tessellate@0.2.51) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-tessellate - - - - - -## [0.2.50](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.49...@thi.ng/geom-tessellate@0.2.50) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-tessellate - - - - - -## [0.2.49](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.48...@thi.ng/geom-tessellate@0.2.49) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-tessellate - - - - - -## [0.2.48](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.47...@thi.ng/geom-tessellate@0.2.48) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-tessellate - - - - - -## [0.2.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.46...@thi.ng/geom-tessellate@0.2.47) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/geom-tessellate - - - - - -## [0.2.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.45...@thi.ng/geom-tessellate@0.2.46) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-tessellate - - - - - -## [0.2.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.44...@thi.ng/geom-tessellate@0.2.45) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-tessellate - - - - - -## [0.2.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.43...@thi.ng/geom-tessellate@0.2.44) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-tessellate - - - - - -## [0.2.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.42...@thi.ng/geom-tessellate@0.2.43) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-tessellate - - - - - -## [0.2.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.41...@thi.ng/geom-tessellate@0.2.42) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-tessellate - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.1.17...@thi.ng/geom-tessellate@0.2.0) (2019-07-07) ### Features diff --git a/packages/geom-voronoi/CHANGELOG.md b/packages/geom-voronoi/CHANGELOG.md index 58fd8662ba..5f0f7d0564 100644 --- a/packages/geom-voronoi/CHANGELOG.md +++ b/packages/geom-voronoi/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.12...@thi.ng/geom-voronoi@0.2.13) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom-voronoi - - - - - -## [0.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.11...@thi.ng/geom-voronoi@0.2.12) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom-voronoi - - - - - -## [0.2.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.10...@thi.ng/geom-voronoi@0.2.11) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/geom-voronoi - - - - - -## [0.2.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.9...@thi.ng/geom-voronoi@0.2.10) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/geom-voronoi - - - - - -## [0.2.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.8...@thi.ng/geom-voronoi@0.2.9) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/geom-voronoi - - - - - -## [0.2.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.7...@thi.ng/geom-voronoi@0.2.8) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom-voronoi - - - - - -## [0.2.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.6...@thi.ng/geom-voronoi@0.2.7) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/geom-voronoi - - - - - -## [0.2.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.5...@thi.ng/geom-voronoi@0.2.6) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom-voronoi - - - - - -## [0.2.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.4...@thi.ng/geom-voronoi@0.2.5) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom-voronoi - - - - - -## [0.2.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.3...@thi.ng/geom-voronoi@0.2.4) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom-voronoi - - - - - ## [0.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.1...@thi.ng/geom-voronoi@0.2.2) (2020-07-28) diff --git a/packages/geom/CHANGELOG.md b/packages/geom/CHANGELOG.md index d28ec23936..88efe974ae 100644 --- a/packages/geom/CHANGELOG.md +++ b/packages/geom/CHANGELOG.md @@ -3,30 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.13.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.13.3...@thi.ng/geom@1.13.4) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom - - - - - -## [1.13.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.13.2...@thi.ng/geom@1.13.3) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/geom - - - - - -## [1.13.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.13.1...@thi.ng/geom@1.13.2) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/geom - - - - - ## [1.13.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.13.0...@thi.ng/geom@1.13.1) (2020-11-24) @@ -66,14 +42,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [1.11.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.11.7...@thi.ng/geom@1.11.8) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/geom - - - - - ## [1.11.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.11.6...@thi.ng/geom@1.11.7) (2020-08-28) @@ -85,30 +53,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [1.11.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.11.5...@thi.ng/geom@1.11.6) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/geom - - - - - -## [1.11.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.11.4...@thi.ng/geom@1.11.5) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/geom - - - - - -## [1.11.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.11.3...@thi.ng/geom@1.11.4) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/geom - - - - - # [1.11.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.10.7...@thi.ng/geom@1.11.0) (2020-07-17) diff --git a/packages/gp/CHANGELOG.md b/packages/gp/CHANGELOG.md index 61e4918eff..d3c7964d87 100644 --- a/packages/gp/CHANGELOG.md +++ b/packages/gp/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.34...@thi.ng/gp@0.1.35) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/gp - - - - - -## [0.1.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.33...@thi.ng/gp@0.1.34) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/gp - - - - - -## [0.1.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.32...@thi.ng/gp@0.1.33) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/gp - - - - - -## [0.1.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.31...@thi.ng/gp@0.1.32) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/gp - - - - - -## [0.1.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.30...@thi.ng/gp@0.1.31) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/gp - - - - - -## [0.1.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.29...@thi.ng/gp@0.1.30) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/gp - - - - - -## [0.1.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.28...@thi.ng/gp@0.1.29) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/gp - - - - - -## [0.1.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.27...@thi.ng/gp@0.1.28) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/gp - - - - - # 0.1.0 (2019-11-30) ### Bug Fixes diff --git a/packages/grid-iterators/CHANGELOG.md b/packages/grid-iterators/CHANGELOG.md index 0bceed3324..cf4afab137 100644 --- a/packages/grid-iterators/CHANGELOG.md +++ b/packages/grid-iterators/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.4.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.4.14...@thi.ng/grid-iterators@0.4.15) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/grid-iterators - - - - - -## [0.4.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.4.13...@thi.ng/grid-iterators@0.4.14) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/grid-iterators - - - - - -## [0.4.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.4.12...@thi.ng/grid-iterators@0.4.13) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/grid-iterators - - - - - -## [0.4.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.4.11...@thi.ng/grid-iterators@0.4.12) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/grid-iterators - - - - - -## [0.4.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.4.10...@thi.ng/grid-iterators@0.4.11) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/grid-iterators - - - - - -## [0.4.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.4.9...@thi.ng/grid-iterators@0.4.10) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/grid-iterators - - - - - -## [0.4.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.4.8...@thi.ng/grid-iterators@0.4.9) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/grid-iterators - - - - - -## [0.4.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.4.7...@thi.ng/grid-iterators@0.4.8) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/grid-iterators - - - - - -## [0.4.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.4.6...@thi.ng/grid-iterators@0.4.7) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/grid-iterators - - - - - # [0.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.3.17...@thi.ng/grid-iterators@0.4.0) (2020-06-20) diff --git a/packages/hdiff/CHANGELOG.md b/packages/hdiff/CHANGELOG.md index 447a7fe9bb..ebe6c94e55 100644 --- a/packages/hdiff/CHANGELOG.md +++ b/packages/hdiff/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdiff@0.1.18...@thi.ng/hdiff@0.1.19) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/hdiff - - - - - -## [0.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdiff@0.1.17...@thi.ng/hdiff@0.1.18) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/hdiff - - - - - -## [0.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdiff@0.1.16...@thi.ng/hdiff@0.1.17) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/hdiff - - - - - -## [0.1.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdiff@0.1.15...@thi.ng/hdiff@0.1.16) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/hdiff - - - - - -## [0.1.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdiff@0.1.14...@thi.ng/hdiff@0.1.15) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/hdiff - - - - - -## [0.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdiff@0.1.13...@thi.ng/hdiff@0.1.14) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/hdiff - - - - - -## [0.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdiff@0.1.12...@thi.ng/hdiff@0.1.13) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/hdiff - - - - - -## [0.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdiff@0.1.11...@thi.ng/hdiff@0.1.12) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/hdiff - - - - - -## [0.1.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdiff@0.1.10...@thi.ng/hdiff@0.1.11) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/hdiff - - - - - # 0.1.0 (2020-06-14) diff --git a/packages/hdom-canvas/CHANGELOG.md b/packages/hdom-canvas/CHANGELOG.md index 0925de0f68..fa9fb75273 100644 --- a/packages/hdom-canvas/CHANGELOG.md +++ b/packages/hdom-canvas/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [3.0.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@3.0.22...@thi.ng/hdom-canvas@3.0.23) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/hdom-canvas - - - - - -## [3.0.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@3.0.21...@thi.ng/hdom-canvas@3.0.22) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/hdom-canvas - - - - - -## [3.0.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@3.0.20...@thi.ng/hdom-canvas@3.0.21) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/hdom-canvas - - - - - -## [3.0.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@3.0.19...@thi.ng/hdom-canvas@3.0.20) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/hdom-canvas - - - - - -## [3.0.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@3.0.18...@thi.ng/hdom-canvas@3.0.19) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/hdom-canvas - - - - - -## [3.0.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@3.0.17...@thi.ng/hdom-canvas@3.0.18) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/hdom-canvas - - - - - -## [3.0.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@3.0.16...@thi.ng/hdom-canvas@3.0.17) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/hdom-canvas - - - - - -## [3.0.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@3.0.15...@thi.ng/hdom-canvas@3.0.16) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/hdom-canvas - - - - - -## [3.0.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@3.0.14...@thi.ng/hdom-canvas@3.0.15) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/hdom-canvas - - - - - -## [3.0.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@3.0.13...@thi.ng/hdom-canvas@3.0.14) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/hdom-canvas - - - - - # [3.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@2.4.26...@thi.ng/hdom-canvas@3.0.0) (2020-06-05) diff --git a/packages/hdom-components/CHANGELOG.md b/packages/hdom-components/CHANGELOG.md index ecafb2e231..c0e5e9270f 100644 --- a/packages/hdom-components/CHANGELOG.md +++ b/packages/hdom-components/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [4.0.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@4.0.16...@thi.ng/hdom-components@4.0.17) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/hdom-components - - - - - -## [4.0.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@4.0.15...@thi.ng/hdom-components@4.0.16) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/hdom-components - - - - - -## [4.0.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@4.0.14...@thi.ng/hdom-components@4.0.15) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/hdom-components - - - - - -## [4.0.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@4.0.13...@thi.ng/hdom-components@4.0.14) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/hdom-components - - - - - -## [4.0.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@4.0.12...@thi.ng/hdom-components@4.0.13) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/hdom-components - - - - - -## [4.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@4.0.11...@thi.ng/hdom-components@4.0.12) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/hdom-components - - - - - -## [4.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@4.0.10...@thi.ng/hdom-components@4.0.11) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/hdom-components - - - - - -## [4.0.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@4.0.9...@thi.ng/hdom-components@4.0.10) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/hdom-components - - - - - -## [4.0.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@4.0.8...@thi.ng/hdom-components@4.0.9) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/hdom-components - - - - - # [4.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@3.2.12...@thi.ng/hdom-components@4.0.0) (2020-06-07) diff --git a/packages/hdom-mock/CHANGELOG.md b/packages/hdom-mock/CHANGELOG.md index 054861b53d..1960053efb 100644 --- a/packages/hdom-mock/CHANGELOG.md +++ b/packages/hdom-mock/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.1.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.1.44...@thi.ng/hdom-mock@1.1.45) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/hdom-mock - - - - - -## [1.1.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.1.43...@thi.ng/hdom-mock@1.1.44) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/hdom-mock - - - - - -## [1.1.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.1.42...@thi.ng/hdom-mock@1.1.43) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/hdom-mock - - - - - -## [1.1.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.1.41...@thi.ng/hdom-mock@1.1.42) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/hdom-mock - - - - - -## [1.1.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.1.40...@thi.ng/hdom-mock@1.1.41) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/hdom-mock - - - - - -## [1.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.1.39...@thi.ng/hdom-mock@1.1.40) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/hdom-mock - - - - - -## [1.1.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.1.38...@thi.ng/hdom-mock@1.1.39) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/hdom-mock - - - - - -## [1.1.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.1.37...@thi.ng/hdom-mock@1.1.38) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/hdom-mock - - - - - # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.0.16...@thi.ng/hdom-mock@1.1.0) (2019-07-07) ### Features diff --git a/packages/hdom/CHANGELOG.md b/packages/hdom/CHANGELOG.md index 694a8f037a..0d1086e009 100644 --- a/packages/hdom/CHANGELOG.md +++ b/packages/hdom/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [8.2.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.2.12...@thi.ng/hdom@8.2.13) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/hdom - - - - - -## [8.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.2.11...@thi.ng/hdom@8.2.12) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/hdom - - - - - -## [8.2.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.2.10...@thi.ng/hdom@8.2.11) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/hdom - - - - - -## [8.2.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.2.9...@thi.ng/hdom@8.2.10) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/hdom - - - - - -## [8.2.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.2.8...@thi.ng/hdom@8.2.9) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/hdom - - - - - -## [8.2.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.2.7...@thi.ng/hdom@8.2.8) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/hdom - - - - - -## [8.2.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.2.6...@thi.ng/hdom@8.2.7) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/hdom - - - - - -## [8.2.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.2.5...@thi.ng/hdom@8.2.6) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/hdom - - - - - # [8.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.1.0...@thi.ng/hdom@8.2.0) (2020-07-02) diff --git a/packages/heaps/CHANGELOG.md b/packages/heaps/CHANGELOG.md index 9ae278fab2..ce0271e729 100644 --- a/packages/heaps/CHANGELOG.md +++ b/packages/heaps/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.2.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.2.27...@thi.ng/heaps@1.2.28) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/heaps - - - - - -## [1.2.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.2.26...@thi.ng/heaps@1.2.27) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/heaps - - - - - -## [1.2.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.2.25...@thi.ng/heaps@1.2.26) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/heaps - - - - - -## [1.2.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.2.24...@thi.ng/heaps@1.2.25) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/heaps - - - - - -## [1.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.2.23...@thi.ng/heaps@1.2.24) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/heaps - - - - - -## [1.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.2.22...@thi.ng/heaps@1.2.23) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/heaps - - - - - -## [1.2.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.2.21...@thi.ng/heaps@1.2.22) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/heaps - - - - - -## [1.2.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.2.20...@thi.ng/heaps@1.2.21) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/heaps - - - - - # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.1.6...@thi.ng/heaps@1.2.0) (2020-01-24) ### Features diff --git a/packages/hex/CHANGELOG.md b/packages/hex/CHANGELOG.md index e6f409be9a..0131c7e39f 100644 --- a/packages/hex/CHANGELOG.md +++ b/packages/hex/CHANGELOG.md @@ -3,14 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/hex@0.1.0...@thi.ng/hex@0.1.1) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/hex - - - - - # 0.1.0 (2020-11-24) diff --git a/packages/hiccup-canvas/CHANGELOG.md b/packages/hiccup-canvas/CHANGELOG.md index 97de031011..904815912e 100644 --- a/packages/hiccup-canvas/CHANGELOG.md +++ b/packages/hiccup-canvas/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-canvas@1.1.12...@thi.ng/hiccup-canvas@1.1.13) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/hiccup-canvas - - - - - -## [1.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-canvas@1.1.11...@thi.ng/hiccup-canvas@1.1.12) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/hiccup-canvas - - - - - -## [1.1.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-canvas@1.1.10...@thi.ng/hiccup-canvas@1.1.11) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/hiccup-canvas - - - - - -## [1.1.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-canvas@1.1.9...@thi.ng/hiccup-canvas@1.1.10) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/hiccup-canvas - - - - - -## [1.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-canvas@1.1.8...@thi.ng/hiccup-canvas@1.1.9) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/hiccup-canvas - - - - - -## [1.1.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-canvas@1.1.7...@thi.ng/hiccup-canvas@1.1.8) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/hiccup-canvas - - - - - -## [1.1.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-canvas@1.1.6...@thi.ng/hiccup-canvas@1.1.7) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/hiccup-canvas - - - - - -## [1.1.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-canvas@1.1.5...@thi.ng/hiccup-canvas@1.1.6) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/hiccup-canvas - - - - - -## [1.1.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-canvas@1.1.4...@thi.ng/hiccup-canvas@1.1.5) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/hiccup-canvas - - - - - -## [1.1.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-canvas@1.1.3...@thi.ng/hiccup-canvas@1.1.4) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/hiccup-canvas - - - - - # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-canvas@1.0.6...@thi.ng/hiccup-canvas@1.1.0) (2020-07-17) diff --git a/packages/hiccup-carbon-icons/CHANGELOG.md b/packages/hiccup-carbon-icons/CHANGELOG.md index 1d249b1e48..86e40c94cb 100644 --- a/packages/hiccup-carbon-icons/CHANGELOG.md +++ b/packages/hiccup-carbon-icons/CHANGELOG.md @@ -3,62 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.0.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@2.0.6...@thi.ng/hiccup-carbon-icons@2.0.7) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/hiccup-carbon-icons - - - - - -## [2.0.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@2.0.5...@thi.ng/hiccup-carbon-icons@2.0.6) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/hiccup-carbon-icons - - - - - -## [2.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@2.0.4...@thi.ng/hiccup-carbon-icons@2.0.5) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/hiccup-carbon-icons - - - - - -## [2.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@2.0.3...@thi.ng/hiccup-carbon-icons@2.0.4) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/hiccup-carbon-icons - - - - - -## [2.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@2.0.2...@thi.ng/hiccup-carbon-icons@2.0.3) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/hiccup-carbon-icons - - - - - -## [2.0.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@2.0.1...@thi.ng/hiccup-carbon-icons@2.0.2) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/hiccup-carbon-icons - - - - - -## [2.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@2.0.0...@thi.ng/hiccup-carbon-icons@2.0.1) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/hiccup-carbon-icons - - - - - # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@1.0.51...@thi.ng/hiccup-carbon-icons@2.0.0) (2020-08-19) @@ -80,22 +24,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [1.0.51](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@1.0.50...@thi.ng/hiccup-carbon-icons@1.0.51) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/hiccup-carbon-icons - - - - - -## [1.0.50](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@1.0.49...@thi.ng/hiccup-carbon-icons@1.0.50) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/hiccup-carbon-icons - - - - - # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@0.1.2...@thi.ng/hiccup-carbon-icons@1.0.0) (2019-01-21) ### Build System diff --git a/packages/hiccup-css/CHANGELOG.md b/packages/hiccup-css/CHANGELOG.md index 35bc68280b..da135b5162 100644 --- a/packages/hiccup-css/CHANGELOG.md +++ b/packages/hiccup-css/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.1.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.41...@thi.ng/hiccup-css@1.1.42) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/hiccup-css - - - - - -## [1.1.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.40...@thi.ng/hiccup-css@1.1.41) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/hiccup-css - - - - - -## [1.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.39...@thi.ng/hiccup-css@1.1.40) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/hiccup-css - - - - - -## [1.1.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.38...@thi.ng/hiccup-css@1.1.39) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/hiccup-css - - - - - -## [1.1.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.37...@thi.ng/hiccup-css@1.1.38) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/hiccup-css - - - - - -## [1.1.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.36...@thi.ng/hiccup-css@1.1.37) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/hiccup-css - - - - - -## [1.1.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.35...@thi.ng/hiccup-css@1.1.36) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/hiccup-css - - - - - -## [1.1.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.34...@thi.ng/hiccup-css@1.1.35) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/hiccup-css - - - - - # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.0.19...@thi.ng/hiccup-css@1.1.0) (2019-07-07) ### Features diff --git a/packages/hiccup-html/CHANGELOG.md b/packages/hiccup-html/CHANGELOG.md index 9aee8fd64b..62aaaf9026 100644 --- a/packages/hiccup-html/CHANGELOG.md +++ b/packages/hiccup-html/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.3.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-html@0.3.8...@thi.ng/hiccup-html@0.3.9) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/hiccup-html - - - - - -## [0.3.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-html@0.3.7...@thi.ng/hiccup-html@0.3.8) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/hiccup-html - - - - - -## [0.3.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-html@0.3.6...@thi.ng/hiccup-html@0.3.7) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/hiccup-html - - - - - -## [0.3.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-html@0.3.5...@thi.ng/hiccup-html@0.3.6) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/hiccup-html - - - - - -## [0.3.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-html@0.3.4...@thi.ng/hiccup-html@0.3.5) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/hiccup-html - - - - - -## [0.3.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-html@0.3.3...@thi.ng/hiccup-html@0.3.4) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/hiccup-html - - - - - -## [0.3.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-html@0.3.2...@thi.ng/hiccup-html@0.3.3) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/hiccup-html - - - - - -## [0.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-html@0.3.1...@thi.ng/hiccup-html@0.3.2) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/hiccup-html - - - - - # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-html@0.2.0...@thi.ng/hiccup-html@0.3.0) (2020-07-09) diff --git a/packages/hiccup-markdown/CHANGELOG.md b/packages/hiccup-markdown/CHANGELOG.md index 01de495f51..03e7165551 100644 --- a/packages/hiccup-markdown/CHANGELOG.md +++ b/packages/hiccup-markdown/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.2.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.37...@thi.ng/hiccup-markdown@1.2.38) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/hiccup-markdown - - - - - -## [1.2.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.36...@thi.ng/hiccup-markdown@1.2.37) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/hiccup-markdown - - - - - -## [1.2.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.35...@thi.ng/hiccup-markdown@1.2.36) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/hiccup-markdown - - - - - -## [1.2.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.34...@thi.ng/hiccup-markdown@1.2.35) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/hiccup-markdown - - - - - -## [1.2.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.33...@thi.ng/hiccup-markdown@1.2.34) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/hiccup-markdown - - - - - -## [1.2.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.32...@thi.ng/hiccup-markdown@1.2.33) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/hiccup-markdown - - - - - -## [1.2.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.31...@thi.ng/hiccup-markdown@1.2.32) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/hiccup-markdown - - - - - -## [1.2.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.30...@thi.ng/hiccup-markdown@1.2.31) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/hiccup-markdown - - - - - -## [1.2.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.29...@thi.ng/hiccup-markdown@1.2.30) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/hiccup-markdown - - - - - -## [1.2.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.28...@thi.ng/hiccup-markdown@1.2.29) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/hiccup-markdown - - - - - # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.1.14...@thi.ng/hiccup-markdown@1.2.0) (2020-03-28) diff --git a/packages/hiccup-svg/CHANGELOG.md b/packages/hiccup-svg/CHANGELOG.md index d2b95a5412..0384849533 100644 --- a/packages/hiccup-svg/CHANGELOG.md +++ b/packages/hiccup-svg/CHANGELOG.md @@ -3,46 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [3.6.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.6.4...@thi.ng/hiccup-svg@3.6.5) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/hiccup-svg - - - - - -## [3.6.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.6.3...@thi.ng/hiccup-svg@3.6.4) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/hiccup-svg - - - - - -## [3.6.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.6.2...@thi.ng/hiccup-svg@3.6.3) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/hiccup-svg - - - - - -## [3.6.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.6.1...@thi.ng/hiccup-svg@3.6.2) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/hiccup-svg - - - - - -## [3.6.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.6.0...@thi.ng/hiccup-svg@3.6.1) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/hiccup-svg - - - - - # [3.6.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.5.11...@thi.ng/hiccup-svg@3.6.0) (2020-09-13) @@ -57,38 +17,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [3.5.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.5.10...@thi.ng/hiccup-svg@3.5.11) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/hiccup-svg - - - - - -## [3.5.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.5.9...@thi.ng/hiccup-svg@3.5.10) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/hiccup-svg - - - - - -## [3.5.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.5.8...@thi.ng/hiccup-svg@3.5.9) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/hiccup-svg - - - - - -## [3.5.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.5.7...@thi.ng/hiccup-svg@3.5.8) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/hiccup-svg - - - - - # [3.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.4.26...@thi.ng/hiccup-svg@3.5.0) (2020-07-02) diff --git a/packages/hiccup/CHANGELOG.md b/packages/hiccup/CHANGELOG.md index cbb92ac54c..79337e8fde 100644 --- a/packages/hiccup/CHANGELOG.md +++ b/packages/hiccup/CHANGELOG.md @@ -3,38 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [3.6.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.6.3...@thi.ng/hiccup@3.6.4) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/hiccup - - - - - -## [3.6.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.6.2...@thi.ng/hiccup@3.6.3) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/hiccup - - - - - -## [3.6.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.6.1...@thi.ng/hiccup@3.6.2) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/hiccup - - - - - -## [3.6.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.6.0...@thi.ng/hiccup@3.6.1) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/hiccup - - - - - # [3.6.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.5.8...@thi.ng/hiccup@3.6.0) (2020-09-13) @@ -46,30 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [3.5.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.5.7...@thi.ng/hiccup@3.5.8) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/hiccup - - - - - -## [3.5.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.5.6...@thi.ng/hiccup@3.5.7) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/hiccup - - - - - -## [3.5.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.5.5...@thi.ng/hiccup@3.5.6) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/hiccup - - - - - # [3.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.4.0...@thi.ng/hiccup@3.5.0) (2020-07-02) diff --git a/packages/idgen/CHANGELOG.md b/packages/idgen/CHANGELOG.md index 6e75e40d25..cc10273c49 100644 --- a/packages/idgen/CHANGELOG.md +++ b/packages/idgen/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.2.26...@thi.ng/idgen@0.2.27) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/idgen - - - - - -## [0.2.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.2.25...@thi.ng/idgen@0.2.26) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/idgen - - - - - -## [0.2.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.2.24...@thi.ng/idgen@0.2.25) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/idgen - - - - - -## [0.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.2.23...@thi.ng/idgen@0.2.24) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/idgen - - - - - -## [0.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.2.22...@thi.ng/idgen@0.2.23) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/idgen - - - - - -## [0.2.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.2.21...@thi.ng/idgen@0.2.22) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/idgen - - - - - -## [0.2.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.2.20...@thi.ng/idgen@0.2.21) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/idgen - - - - - -## [0.2.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.2.19...@thi.ng/idgen@0.2.20) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/idgen - - - - - -## [0.2.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.2.18...@thi.ng/idgen@0.2.19) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/idgen - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.1.0...@thi.ng/idgen@0.2.0) (2020-01-24) ### Features diff --git a/packages/iges/CHANGELOG.md b/packages/iges/CHANGELOG.md index caf177d2a0..e8c3a801bb 100644 --- a/packages/iges/CHANGELOG.md +++ b/packages/iges/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.1.52](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.51...@thi.ng/iges@1.1.52) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/iges - - - - - -## [1.1.51](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.50...@thi.ng/iges@1.1.51) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/iges - - - - - -## [1.1.50](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.49...@thi.ng/iges@1.1.50) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/iges - - - - - -## [1.1.49](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.48...@thi.ng/iges@1.1.49) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/iges - - - - - -## [1.1.48](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.47...@thi.ng/iges@1.1.48) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/iges - - - - - -## [1.1.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.46...@thi.ng/iges@1.1.47) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/iges - - - - - -## [1.1.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.45...@thi.ng/iges@1.1.46) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/iges - - - - - -## [1.1.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.44...@thi.ng/iges@1.1.45) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/iges - - - - - -## [1.1.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.43...@thi.ng/iges@1.1.44) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/iges - - - - - -## [1.1.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.42...@thi.ng/iges@1.1.43) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/iges - - - - - # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.0.15...@thi.ng/iges@1.1.0) (2019-04-15) ### Features diff --git a/packages/imgui/CHANGELOG.md b/packages/imgui/CHANGELOG.md index a2217c06b1..ed6551c822 100644 --- a/packages/imgui/CHANGELOG.md +++ b/packages/imgui/CHANGELOG.md @@ -3,30 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.44...@thi.ng/imgui@0.2.45) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/imgui - - - - - -## [0.2.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.43...@thi.ng/imgui@0.2.44) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/imgui - - - - - -## [0.2.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.42...@thi.ng/imgui@0.2.43) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/imgui - - - - - ## [0.2.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.41...@thi.ng/imgui@0.2.42) (2020-11-24) @@ -38,46 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.2.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.40...@thi.ng/imgui@0.2.41) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/imgui - - - - - -## [0.2.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.39...@thi.ng/imgui@0.2.40) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/imgui - - - - - -## [0.2.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.38...@thi.ng/imgui@0.2.39) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/imgui - - - - - -## [0.2.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.37...@thi.ng/imgui@0.2.38) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/imgui - - - - - -## [0.2.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.36...@thi.ng/imgui@0.2.37) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/imgui - - - - - ## [0.2.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.35...@thi.ng/imgui@0.2.36) (2020-08-19) @@ -89,22 +25,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.2.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.34...@thi.ng/imgui@0.2.35) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/imgui - - - - - -## [0.2.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.33...@thi.ng/imgui@0.2.34) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/imgui - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.1.7...@thi.ng/imgui@0.2.0) (2020-02-25) diff --git a/packages/interceptors/CHANGELOG.md b/packages/interceptors/CHANGELOG.md index 42af0ebebc..f127eeef0f 100644 --- a/packages/interceptors/CHANGELOG.md +++ b/packages/interceptors/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.2.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.2.34...@thi.ng/interceptors@2.2.35) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/interceptors - - - - - -## [2.2.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.2.33...@thi.ng/interceptors@2.2.34) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/interceptors - - - - - -## [2.2.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.2.32...@thi.ng/interceptors@2.2.33) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/interceptors - - - - - -## [2.2.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.2.31...@thi.ng/interceptors@2.2.32) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/interceptors - - - - - -## [2.2.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.2.30...@thi.ng/interceptors@2.2.31) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/interceptors - - - - - -## [2.2.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.2.29...@thi.ng/interceptors@2.2.30) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/interceptors - - - - - -## [2.2.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.2.28...@thi.ng/interceptors@2.2.29) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/interceptors - - - - - -## [2.2.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.2.27...@thi.ng/interceptors@2.2.28) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/interceptors - - - - - # [2.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.1.3...@thi.ng/interceptors@2.2.0) (2019-08-21) ### Features diff --git a/packages/intervals/CHANGELOG.md b/packages/intervals/CHANGELOG.md index aef05a388a..5f5076c36e 100644 --- a/packages/intervals/CHANGELOG.md +++ b/packages/intervals/CHANGELOG.md @@ -3,22 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@2.1.1...@thi.ng/intervals@2.1.2) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/intervals - - - - - -## [2.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@2.1.0...@thi.ng/intervals@2.1.1) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/intervals - - - - - # [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@2.0.25...@thi.ng/intervals@2.1.0) (2020-11-24) @@ -30,46 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [2.0.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@2.0.24...@thi.ng/intervals@2.0.25) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/intervals - - - - - -## [2.0.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@2.0.23...@thi.ng/intervals@2.0.24) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/intervals - - - - - -## [2.0.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@2.0.22...@thi.ng/intervals@2.0.23) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/intervals - - - - - -## [2.0.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@2.0.21...@thi.ng/intervals@2.0.22) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/intervals - - - - - -## [2.0.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@2.0.20...@thi.ng/intervals@2.0.21) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/intervals - - - - - # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@1.0.15...@thi.ng/intervals@2.0.0) (2019-11-30) ### Bug Fixes diff --git a/packages/iterators/CHANGELOG.md b/packages/iterators/CHANGELOG.md index 11255de646..5f13fc94f7 100644 --- a/packages/iterators/CHANGELOG.md +++ b/packages/iterators/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [5.1.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.42...@thi.ng/iterators@5.1.43) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/iterators - - - - - -## [5.1.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.41...@thi.ng/iterators@5.1.42) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/iterators - - - - - -## [5.1.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.40...@thi.ng/iterators@5.1.41) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/iterators - - - - - -## [5.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.39...@thi.ng/iterators@5.1.40) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/iterators - - - - - -## [5.1.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.38...@thi.ng/iterators@5.1.39) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/iterators - - - - - -## [5.1.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.37...@thi.ng/iterators@5.1.38) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/iterators - - - - - -## [5.1.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.36...@thi.ng/iterators@5.1.37) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/iterators - - - - - -## [5.1.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.35...@thi.ng/iterators@5.1.36) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/iterators - - - - - -## [5.1.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.34...@thi.ng/iterators@5.1.35) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/iterators - - - - - # [5.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.0.19...@thi.ng/iterators@5.1.0) (2019-07-07) ### Bug Fixes diff --git a/packages/layout/CHANGELOG.md b/packages/layout/CHANGELOG.md index 15e5c77944..2f4f24c514 100644 --- a/packages/layout/CHANGELOG.md +++ b/packages/layout/CHANGELOG.md @@ -3,62 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/layout@0.1.24...@thi.ng/layout@0.1.25) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/layout - - - - - -## [0.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/layout@0.1.23...@thi.ng/layout@0.1.24) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/layout - - - - - -## [0.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/layout@0.1.22...@thi.ng/layout@0.1.23) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/layout - - - - - -## [0.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/layout@0.1.21...@thi.ng/layout@0.1.22) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/layout - - - - - -## [0.1.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/layout@0.1.20...@thi.ng/layout@0.1.21) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/layout - - - - - -## [0.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/layout@0.1.19...@thi.ng/layout@0.1.20) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/layout - - - - - -## [0.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/layout@0.1.18...@thi.ng/layout@0.1.19) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/layout - - - - - # 0.1.0 (2020-02-25) diff --git a/packages/leb128/CHANGELOG.md b/packages/leb128/CHANGELOG.md index 17dd67c4c5..d45d5109d1 100644 --- a/packages/leb128/CHANGELOG.md +++ b/packages/leb128/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.0.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.36...@thi.ng/leb128@1.0.37) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/leb128 - - - - - -## [1.0.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.35...@thi.ng/leb128@1.0.36) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/leb128 - - - - - -## [1.0.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.34...@thi.ng/leb128@1.0.35) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/leb128 - - - - - -## [1.0.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.33...@thi.ng/leb128@1.0.34) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/leb128 - - - - - -## [1.0.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.32...@thi.ng/leb128@1.0.33) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/leb128 - - - - - -## [1.0.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.31...@thi.ng/leb128@1.0.32) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/leb128 - - - - - -## [1.0.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.30...@thi.ng/leb128@1.0.31) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/leb128 - - - - - -## [1.0.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.29...@thi.ng/leb128@1.0.30) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/leb128 - - - - - -## [1.0.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.28...@thi.ng/leb128@1.0.29) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/leb128 - - - - - ## [1.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.0...@thi.ng/leb128@1.0.1) (2019-11-30) ### Bug Fixes diff --git a/packages/lsys/CHANGELOG.md b/packages/lsys/CHANGELOG.md index 103105f1ec..24fc99ee9b 100644 --- a/packages/lsys/CHANGELOG.md +++ b/packages/lsys/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.65](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.64...@thi.ng/lsys@0.2.65) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/lsys - - - - - -## [0.2.64](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.63...@thi.ng/lsys@0.2.64) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/lsys - - - - - -## [0.2.63](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.62...@thi.ng/lsys@0.2.63) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/lsys - - - - - -## [0.2.62](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.61...@thi.ng/lsys@0.2.62) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/lsys - - - - - -## [0.2.61](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.60...@thi.ng/lsys@0.2.61) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/lsys - - - - - -## [0.2.60](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.59...@thi.ng/lsys@0.2.60) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/lsys - - - - - -## [0.2.59](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.58...@thi.ng/lsys@0.2.59) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/lsys - - - - - -## [0.2.58](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.57...@thi.ng/lsys@0.2.58) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/lsys - - - - - -## [0.2.57](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.56...@thi.ng/lsys@0.2.57) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/lsys - - - - - -## [0.2.56](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.55...@thi.ng/lsys@0.2.56) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/lsys - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.1.0...@thi.ng/lsys@0.2.0) (2019-02-26) ### Features diff --git a/packages/malloc/CHANGELOG.md b/packages/malloc/CHANGELOG.md index 0d04d23d1f..d99a514938 100644 --- a/packages/malloc/CHANGELOG.md +++ b/packages/malloc/CHANGELOG.md @@ -3,30 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [4.2.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.2.2...@thi.ng/malloc@4.2.3) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/malloc - - - - - -## [4.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.2.1...@thi.ng/malloc@4.2.2) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/malloc - - - - - -## [4.2.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.2.0...@thi.ng/malloc@4.2.1) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/malloc - - - - - # [4.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.1.26...@thi.ng/malloc@4.2.0) (2020-10-19) @@ -38,46 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [4.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.1.25...@thi.ng/malloc@4.1.26) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/malloc - - - - - -## [4.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.1.24...@thi.ng/malloc@4.1.25) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/malloc - - - - - -## [4.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.1.23...@thi.ng/malloc@4.1.24) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/malloc - - - - - -## [4.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.1.22...@thi.ng/malloc@4.1.23) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/malloc - - - - - -## [4.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.1.21...@thi.ng/malloc@4.1.22) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/malloc - - - - - # [4.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.0.5...@thi.ng/malloc@4.1.0) (2019-11-09) ### Bug Fixes diff --git a/packages/math/CHANGELOG.md b/packages/math/CHANGELOG.md index 5ffb5d45a8..b8b5c13418 100644 --- a/packages/math/CHANGELOG.md +++ b/packages/math/CHANGELOG.md @@ -3,22 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@2.2.1...@thi.ng/math@2.2.2) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/math - - - - - -## [2.2.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@2.2.0...@thi.ng/math@2.2.1) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/math - - - - - # [2.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@2.1.1...@thi.ng/math@2.2.0) (2020-11-24) @@ -30,14 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [2.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@2.1.0...@thi.ng/math@2.1.1) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/math - - - - - # [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@2.0.4...@thi.ng/math@2.1.0) (2020-09-13) @@ -49,30 +25,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [2.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@2.0.3...@thi.ng/math@2.0.4) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/math - - - - - -## [2.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@2.0.2...@thi.ng/math@2.0.3) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/math - - - - - -## [2.0.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@2.0.1...@thi.ng/math@2.0.2) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/math - - - - - # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@1.7.13...@thi.ng/math@2.0.0) (2020-07-17) diff --git a/packages/matrices/CHANGELOG.md b/packages/matrices/CHANGELOG.md index 1fe2a900cf..baaa3f2b6d 100644 --- a/packages/matrices/CHANGELOG.md +++ b/packages/matrices/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.6.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.36...@thi.ng/matrices@0.6.37) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/matrices - - - - - -## [0.6.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.35...@thi.ng/matrices@0.6.36) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/matrices - - - - - -## [0.6.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.34...@thi.ng/matrices@0.6.35) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/matrices - - - - - -## [0.6.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.33...@thi.ng/matrices@0.6.34) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/matrices - - - - - -## [0.6.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.32...@thi.ng/matrices@0.6.33) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/matrices - - - - - -## [0.6.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.31...@thi.ng/matrices@0.6.32) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/matrices - - - - - -## [0.6.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.30...@thi.ng/matrices@0.6.31) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/matrices - - - - - -## [0.6.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.29...@thi.ng/matrices@0.6.30) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/matrices - - - - - -## [0.6.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.28...@thi.ng/matrices@0.6.29) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/matrices - - - - - -## [0.6.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.27...@thi.ng/matrices@0.6.28) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/matrices - - - - - # [0.6.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.5.12...@thi.ng/matrices@0.6.0) (2020-02-25) diff --git a/packages/memoize/CHANGELOG.md b/packages/memoize/CHANGELOG.md index 9ab8c14acf..470e4b086a 100644 --- a/packages/memoize/CHANGELOG.md +++ b/packages/memoize/CHANGELOG.md @@ -3,54 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.1.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.1.5...@thi.ng/memoize@2.1.6) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/memoize - - - - - -## [2.1.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.1.4...@thi.ng/memoize@2.1.5) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/memoize - - - - - -## [2.1.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.1.3...@thi.ng/memoize@2.1.4) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/memoize - - - - - -## [2.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.1.2...@thi.ng/memoize@2.1.3) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/memoize - - - - - -## [2.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.1.1...@thi.ng/memoize@2.1.2) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/memoize - - - - - -## [2.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.1.0...@thi.ng/memoize@2.1.1) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/memoize - - - - - # [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.0.19...@thi.ng/memoize@2.1.0) (2020-08-20) @@ -62,22 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [2.0.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.0.18...@thi.ng/memoize@2.0.19) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/memoize - - - - - -## [2.0.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.0.17...@thi.ng/memoize@2.0.18) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/memoize - - - - - # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@1.1.8...@thi.ng/memoize@2.0.0) (2020-02-25) diff --git a/packages/mime/CHANGELOG.md b/packages/mime/CHANGELOG.md index 657b6b68d6..23c8f98536 100644 --- a/packages/mime/CHANGELOG.md +++ b/packages/mime/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/mime@0.1.24...@thi.ng/mime@0.1.25) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/mime - - - - - -## [0.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/mime@0.1.23...@thi.ng/mime@0.1.24) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/mime - - - - - -## [0.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/mime@0.1.22...@thi.ng/mime@0.1.23) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/mime - - - - - -## [0.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/mime@0.1.21...@thi.ng/mime@0.1.22) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/mime - - - - - -## [0.1.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/mime@0.1.20...@thi.ng/mime@0.1.21) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/mime - - - - - -## [0.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/mime@0.1.19...@thi.ng/mime@0.1.20) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/mime - - - - - -## [0.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/mime@0.1.18...@thi.ng/mime@0.1.19) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/mime - - - - - -## [0.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/mime@0.1.17...@thi.ng/mime@0.1.18) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/mime - - - - - # 0.1.0 (2020-02-25) diff --git a/packages/morton/CHANGELOG.md b/packages/morton/CHANGELOG.md index bbb0bfb079..55b8b27857 100644 --- a/packages/morton/CHANGELOG.md +++ b/packages/morton/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.0.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@2.0.27...@thi.ng/morton@2.0.28) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/morton - - - - - -## [2.0.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@2.0.26...@thi.ng/morton@2.0.27) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/morton - - - - - -## [2.0.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@2.0.25...@thi.ng/morton@2.0.26) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/morton - - - - - -## [2.0.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@2.0.24...@thi.ng/morton@2.0.25) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/morton - - - - - -## [2.0.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@2.0.23...@thi.ng/morton@2.0.24) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/morton - - - - - -## [2.0.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@2.0.22...@thi.ng/morton@2.0.23) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/morton - - - - - -## [2.0.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@2.0.21...@thi.ng/morton@2.0.22) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/morton - - - - - -## [2.0.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@2.0.20...@thi.ng/morton@2.0.21) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/morton - - - - - ## [2.0.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@2.0.8...@thi.ng/morton@2.0.9) (2020-04-11) diff --git a/packages/oquery/CHANGELOG.md b/packages/oquery/CHANGELOG.md index e3c54f2efa..c49c065fbd 100644 --- a/packages/oquery/CHANGELOG.md +++ b/packages/oquery/CHANGELOG.md @@ -3,14 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/oquery@0.2.0...@thi.ng/oquery@0.2.1) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/oquery - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/oquery@0.1.15...@thi.ng/oquery@0.2.0) (2020-12-07) @@ -23,70 +15,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.1.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/oquery@0.1.14...@thi.ng/oquery@0.1.15) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/oquery - - - - - -## [0.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/oquery@0.1.13...@thi.ng/oquery@0.1.14) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/oquery - - - - - -## [0.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/oquery@0.1.12...@thi.ng/oquery@0.1.13) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/oquery - - - - - -## [0.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/oquery@0.1.11...@thi.ng/oquery@0.1.12) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/oquery - - - - - -## [0.1.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/oquery@0.1.10...@thi.ng/oquery@0.1.11) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/oquery - - - - - -## [0.1.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/oquery@0.1.9...@thi.ng/oquery@0.1.10) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/oquery - - - - - -## [0.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/oquery@0.1.8...@thi.ng/oquery@0.1.9) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/oquery - - - - - -## [0.1.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/oquery@0.1.7...@thi.ng/oquery@0.1.8) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/oquery - - - - - # 0.1.0 (2020-07-04) diff --git a/packages/parse/CHANGELOG.md b/packages/parse/CHANGELOG.md index b24e6b0dc4..c9224d39f0 100644 --- a/packages/parse/CHANGELOG.md +++ b/packages/parse/CHANGELOG.md @@ -3,62 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.9.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.9.6...@thi.ng/parse@0.9.7) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/parse - - - - - -## [0.9.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.9.5...@thi.ng/parse@0.9.6) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/parse - - - - - -## [0.9.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.9.4...@thi.ng/parse@0.9.5) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/parse - - - - - -## [0.9.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.9.3...@thi.ng/parse@0.9.4) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/parse - - - - - -## [0.9.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.9.2...@thi.ng/parse@0.9.3) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/parse - - - - - -## [0.9.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.9.1...@thi.ng/parse@0.9.2) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/parse - - - - - -## [0.9.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.9.0...@thi.ng/parse@0.9.1) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/parse - - - - - # [0.9.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.8.2...@thi.ng/parse@0.9.0) (2020-08-17) @@ -71,14 +15,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.8.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.8.1...@thi.ng/parse@0.8.2) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/parse - - - - - # [0.8.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.7.2...@thi.ng/parse@0.8.0) (2020-07-19) diff --git a/packages/paths/CHANGELOG.md b/packages/paths/CHANGELOG.md index 53e76bdba7..b0025f386f 100644 --- a/packages/paths/CHANGELOG.md +++ b/packages/paths/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [4.1.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.1.9...@thi.ng/paths@4.1.10) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/paths - - - - - -## [4.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.1.8...@thi.ng/paths@4.1.9) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/paths - - - - - -## [4.1.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.1.7...@thi.ng/paths@4.1.8) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/paths - - - - - -## [4.1.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.1.6...@thi.ng/paths@4.1.7) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/paths - - - - - -## [4.1.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.1.5...@thi.ng/paths@4.1.6) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/paths - - - - - -## [4.1.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.1.4...@thi.ng/paths@4.1.5) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/paths - - - - - -## [4.1.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.1.3...@thi.ng/paths@4.1.4) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/paths - - - - - -## [4.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.1.2...@thi.ng/paths@4.1.3) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/paths - - - - - # [4.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.0.11...@thi.ng/paths@4.1.0) (2020-07-08) diff --git a/packages/pixel/CHANGELOG.md b/packages/pixel/CHANGELOG.md index 578ffbe470..0ef1d691f6 100644 --- a/packages/pixel/CHANGELOG.md +++ b/packages/pixel/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.4.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.4.8...@thi.ng/pixel@0.4.9) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/pixel - - - - - -## [0.4.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.4.7...@thi.ng/pixel@0.4.8) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/pixel - - - - - -## [0.4.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.4.6...@thi.ng/pixel@0.4.7) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/pixel - - - - - -## [0.4.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.4.5...@thi.ng/pixel@0.4.6) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/pixel - - - - - -## [0.4.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.4.4...@thi.ng/pixel@0.4.5) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/pixel - - - - - -## [0.4.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.4.3...@thi.ng/pixel@0.4.4) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/pixel - - - - - -## [0.4.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.4.2...@thi.ng/pixel@0.4.3) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/pixel - - - - - -## [0.4.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.4.1...@thi.ng/pixel@0.4.2) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/pixel - - - - - # [0.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.3.6...@thi.ng/pixel@0.4.0) (2020-07-22) diff --git a/packages/pointfree-lang/CHANGELOG.md b/packages/pointfree-lang/CHANGELOG.md index fc74fa49ad..cb63b54da2 100644 --- a/packages/pointfree-lang/CHANGELOG.md +++ b/packages/pointfree-lang/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.4.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.4.16...@thi.ng/pointfree-lang@1.4.17) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/pointfree-lang - - - - - -## [1.4.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.4.15...@thi.ng/pointfree-lang@1.4.16) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/pointfree-lang - - - - - -## [1.4.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.4.14...@thi.ng/pointfree-lang@1.4.15) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/pointfree-lang - - - - - -## [1.4.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.4.13...@thi.ng/pointfree-lang@1.4.14) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/pointfree-lang - - - - - -## [1.4.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.4.12...@thi.ng/pointfree-lang@1.4.13) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/pointfree-lang - - - - - -## [1.4.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.4.11...@thi.ng/pointfree-lang@1.4.12) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/pointfree-lang - - - - - -## [1.4.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.4.10...@thi.ng/pointfree-lang@1.4.11) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/pointfree-lang - - - - - -## [1.4.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.4.9...@thi.ng/pointfree-lang@1.4.10) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/pointfree-lang - - - - - # [1.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.3.0...@thi.ng/pointfree-lang@1.4.0) (2020-04-27) diff --git a/packages/pointfree/CHANGELOG.md b/packages/pointfree/CHANGELOG.md index 1727281865..fd1c800859 100644 --- a/packages/pointfree/CHANGELOG.md +++ b/packages/pointfree/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.0.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@2.0.17...@thi.ng/pointfree@2.0.18) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/pointfree - - - - - -## [2.0.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@2.0.16...@thi.ng/pointfree@2.0.17) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/pointfree - - - - - -## [2.0.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@2.0.15...@thi.ng/pointfree@2.0.16) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/pointfree - - - - - -## [2.0.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@2.0.14...@thi.ng/pointfree@2.0.15) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/pointfree - - - - - -## [2.0.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@2.0.13...@thi.ng/pointfree@2.0.14) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/pointfree - - - - - -## [2.0.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@2.0.12...@thi.ng/pointfree@2.0.13) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/pointfree - - - - - -## [2.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@2.0.11...@thi.ng/pointfree@2.0.12) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/pointfree - - - - - -## [2.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@2.0.10...@thi.ng/pointfree@2.0.11) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/pointfree - - - - - # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@1.3.3...@thi.ng/pointfree@2.0.0) (2020-04-16) diff --git a/packages/poisson/CHANGELOG.md b/packages/poisson/CHANGELOG.md index ba3aba3962..92405c60e4 100644 --- a/packages/poisson/CHANGELOG.md +++ b/packages/poisson/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.1.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.1.20...@thi.ng/poisson@1.1.21) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/poisson - - - - - -## [1.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.1.19...@thi.ng/poisson@1.1.20) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/poisson - - - - - -## [1.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.1.18...@thi.ng/poisson@1.1.19) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/poisson - - - - - -## [1.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.1.17...@thi.ng/poisson@1.1.18) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/poisson - - - - - -## [1.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.1.16...@thi.ng/poisson@1.1.17) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/poisson - - - - - -## [1.1.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.1.15...@thi.ng/poisson@1.1.16) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/poisson - - - - - -## [1.1.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.1.14...@thi.ng/poisson@1.1.15) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/poisson - - - - - -## [1.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.1.13...@thi.ng/poisson@1.1.14) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/poisson - - - - - -## [1.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.1.12...@thi.ng/poisson@1.1.13) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/poisson - - - - - -## [1.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.1.11...@thi.ng/poisson@1.1.12) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/poisson - - - - - # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.0.17...@thi.ng/poisson@1.1.0) (2020-05-29) diff --git a/packages/porter-duff/CHANGELOG.md b/packages/porter-duff/CHANGELOG.md index 519a913076..c81030290e 100644 --- a/packages/porter-duff/CHANGELOG.md +++ b/packages/porter-duff/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/porter-duff@0.1.33...@thi.ng/porter-duff@0.1.34) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/porter-duff - - - - - -## [0.1.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/porter-duff@0.1.32...@thi.ng/porter-duff@0.1.33) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/porter-duff - - - - - -## [0.1.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/porter-duff@0.1.31...@thi.ng/porter-duff@0.1.32) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/porter-duff - - - - - -## [0.1.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/porter-duff@0.1.30...@thi.ng/porter-duff@0.1.31) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/porter-duff - - - - - -## [0.1.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/porter-duff@0.1.29...@thi.ng/porter-duff@0.1.30) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/porter-duff - - - - - -## [0.1.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/porter-duff@0.1.28...@thi.ng/porter-duff@0.1.29) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/porter-duff - - - - - -## [0.1.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/porter-duff@0.1.27...@thi.ng/porter-duff@0.1.28) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/porter-duff - - - - - -## [0.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/porter-duff@0.1.26...@thi.ng/porter-duff@0.1.27) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/porter-duff - - - - - # 0.1.0 (2019-07-31) ### Bug Fixes diff --git a/packages/prefixes/CHANGELOG.md b/packages/prefixes/CHANGELOG.md index a37f1602ed..6663144b60 100644 --- a/packages/prefixes/CHANGELOG.md +++ b/packages/prefixes/CHANGELOG.md @@ -3,62 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/prefixes@0.1.7...@thi.ng/prefixes@0.1.8) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/prefixes - - - - - -## [0.1.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/prefixes@0.1.6...@thi.ng/prefixes@0.1.7) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/prefixes - - - - - -## [0.1.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/prefixes@0.1.5...@thi.ng/prefixes@0.1.6) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/prefixes - - - - - -## [0.1.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/prefixes@0.1.4...@thi.ng/prefixes@0.1.5) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/prefixes - - - - - -## [0.1.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/prefixes@0.1.3...@thi.ng/prefixes@0.1.4) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/prefixes - - - - - -## [0.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/prefixes@0.1.2...@thi.ng/prefixes@0.1.3) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/prefixes - - - - - -## [0.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/prefixes@0.1.1...@thi.ng/prefixes@0.1.2) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/prefixes - - - - - # 0.1.0 (2020-07-02) diff --git a/packages/quad-edge/CHANGELOG.md b/packages/quad-edge/CHANGELOG.md index 8e116d4d8c..86b193a40a 100644 --- a/packages/quad-edge/CHANGELOG.md +++ b/packages/quad-edge/CHANGELOG.md @@ -3,62 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/quad-edge@0.2.25...@thi.ng/quad-edge@0.2.26) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/quad-edge - - - - - -## [0.2.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/quad-edge@0.2.24...@thi.ng/quad-edge@0.2.25) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/quad-edge - - - - - -## [0.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/quad-edge@0.2.23...@thi.ng/quad-edge@0.2.24) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/quad-edge - - - - - -## [0.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/quad-edge@0.2.22...@thi.ng/quad-edge@0.2.23) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/quad-edge - - - - - -## [0.2.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/quad-edge@0.2.21...@thi.ng/quad-edge@0.2.22) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/quad-edge - - - - - -## [0.2.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/quad-edge@0.2.20...@thi.ng/quad-edge@0.2.21) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/quad-edge - - - - - -## [0.2.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/quad-edge@0.2.19...@thi.ng/quad-edge@0.2.20) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/quad-edge - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/quad-edge@0.1.4...@thi.ng/quad-edge@0.2.0) (2019-07-07) ### Features diff --git a/packages/ramp/CHANGELOG.md b/packages/ramp/CHANGELOG.md index 73455197ea..20c329a0af 100644 --- a/packages/ramp/CHANGELOG.md +++ b/packages/ramp/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.38...@thi.ng/ramp@0.1.39) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/ramp - - - - - -## [0.1.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.37...@thi.ng/ramp@0.1.38) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/ramp - - - - - -## [0.1.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.36...@thi.ng/ramp@0.1.37) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/ramp - - - - - -## [0.1.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.35...@thi.ng/ramp@0.1.36) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/ramp - - - - - -## [0.1.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.34...@thi.ng/ramp@0.1.35) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/ramp - - - - - -## [0.1.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.33...@thi.ng/ramp@0.1.34) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/ramp - - - - - -## [0.1.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.32...@thi.ng/ramp@0.1.33) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/ramp - - - - - -## [0.1.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.31...@thi.ng/ramp@0.1.32) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/ramp - - - - - -## [0.1.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.30...@thi.ng/ramp@0.1.31) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/ramp - - - - - -## [0.1.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.29...@thi.ng/ramp@0.1.30) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/ramp - - - - - # 0.1.0 (2020-01-24) ### Features diff --git a/packages/random/CHANGELOG.md b/packages/random/CHANGELOG.md index 61abc1c994..61344117a6 100644 --- a/packages/random/CHANGELOG.md +++ b/packages/random/CHANGELOG.md @@ -3,14 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@2.1.1...@thi.ng/random@2.1.2) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/random - - - - - ## [2.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@2.1.0...@thi.ng/random@2.1.1) (2020-11-26) @@ -34,22 +26,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [2.0.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@2.0.1...@thi.ng/random@2.0.2) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/random - - - - - -## [2.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@2.0.0...@thi.ng/random@2.0.1) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/random - - - - - # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@1.4.17...@thi.ng/random@2.0.0) (2020-08-28) @@ -74,22 +50,6 @@ extract as standalone gaussianCLT() -## [1.4.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@1.4.16...@thi.ng/random@1.4.17) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/random - - - - - -## [1.4.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@1.4.15...@thi.ng/random@1.4.16) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/random - - - - - # [1.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@1.3.2...@thi.ng/random@1.4.0) (2020-03-01) diff --git a/packages/range-coder/CHANGELOG.md b/packages/range-coder/CHANGELOG.md index 145d514ce9..ee07517104 100644 --- a/packages/range-coder/CHANGELOG.md +++ b/packages/range-coder/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.0.62](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.61...@thi.ng/range-coder@1.0.62) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/range-coder - - - - - -## [1.0.61](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.60...@thi.ng/range-coder@1.0.61) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/range-coder - - - - - -## [1.0.60](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.59...@thi.ng/range-coder@1.0.60) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/range-coder - - - - - -## [1.0.59](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.58...@thi.ng/range-coder@1.0.59) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/range-coder - - - - - -## [1.0.58](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.57...@thi.ng/range-coder@1.0.58) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/range-coder - - - - - -## [1.0.57](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.56...@thi.ng/range-coder@1.0.57) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/range-coder - - - - - -## [1.0.56](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.55...@thi.ng/range-coder@1.0.56) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/range-coder - - - - - -## [1.0.55](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.54...@thi.ng/range-coder@1.0.55) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/range-coder - - - - - # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@0.1.28...@thi.ng/range-coder@1.0.0) (2019-01-21) ### Build System diff --git a/packages/rdom-canvas/CHANGELOG.md b/packages/rdom-canvas/CHANGELOG.md index 1bbe6bb944..4093d488d0 100644 --- a/packages/rdom-canvas/CHANGELOG.md +++ b/packages/rdom-canvas/CHANGELOG.md @@ -3,94 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-canvas@0.1.20...@thi.ng/rdom-canvas@0.1.21) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/rdom-canvas - - - - - -## [0.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-canvas@0.1.19...@thi.ng/rdom-canvas@0.1.20) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/rdom-canvas - - - - - -## [0.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-canvas@0.1.18...@thi.ng/rdom-canvas@0.1.19) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/rdom-canvas - - - - - -## [0.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-canvas@0.1.17...@thi.ng/rdom-canvas@0.1.18) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/rdom-canvas - - - - - -## [0.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-canvas@0.1.16...@thi.ng/rdom-canvas@0.1.17) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/rdom-canvas - - - - - -## [0.1.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-canvas@0.1.15...@thi.ng/rdom-canvas@0.1.16) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/rdom-canvas - - - - - -## [0.1.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-canvas@0.1.14...@thi.ng/rdom-canvas@0.1.15) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/rdom-canvas - - - - - -## [0.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-canvas@0.1.13...@thi.ng/rdom-canvas@0.1.14) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/rdom-canvas - - - - - -## [0.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-canvas@0.1.12...@thi.ng/rdom-canvas@0.1.13) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/rdom-canvas - - - - - -## [0.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-canvas@0.1.11...@thi.ng/rdom-canvas@0.1.12) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/rdom-canvas - - - - - -## [0.1.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-canvas@0.1.10...@thi.ng/rdom-canvas@0.1.11) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/rdom-canvas - - - - - ## [0.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-canvas@0.1.8...@thi.ng/rdom-canvas@0.1.9) (2020-07-28) diff --git a/packages/rdom-components/CHANGELOG.md b/packages/rdom-components/CHANGELOG.md index 388f6c5333..96ca3fa87e 100644 --- a/packages/rdom-components/CHANGELOG.md +++ b/packages/rdom-components/CHANGELOG.md @@ -3,94 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-components@0.1.17...@thi.ng/rdom-components@0.1.18) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/rdom-components - - - - - -## [0.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-components@0.1.16...@thi.ng/rdom-components@0.1.17) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/rdom-components - - - - - -## [0.1.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-components@0.1.15...@thi.ng/rdom-components@0.1.16) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/rdom-components - - - - - -## [0.1.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-components@0.1.14...@thi.ng/rdom-components@0.1.15) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/rdom-components - - - - - -## [0.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-components@0.1.13...@thi.ng/rdom-components@0.1.14) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/rdom-components - - - - - -## [0.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-components@0.1.12...@thi.ng/rdom-components@0.1.13) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/rdom-components - - - - - -## [0.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-components@0.1.11...@thi.ng/rdom-components@0.1.12) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/rdom-components - - - - - -## [0.1.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-components@0.1.10...@thi.ng/rdom-components@0.1.11) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/rdom-components - - - - - -## [0.1.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-components@0.1.9...@thi.ng/rdom-components@0.1.10) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/rdom-components - - - - - -## [0.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-components@0.1.8...@thi.ng/rdom-components@0.1.9) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/rdom-components - - - - - -## [0.1.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-components@0.1.7...@thi.ng/rdom-components@0.1.8) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/rdom-components - - - - - ## [0.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-components@0.1.1...@thi.ng/rdom-components@0.1.2) (2020-07-09) diff --git a/packages/rdom/CHANGELOG.md b/packages/rdom/CHANGELOG.md index 325e6fc7ee..8b0d553cc8 100644 --- a/packages/rdom/CHANGELOG.md +++ b/packages/rdom/CHANGELOG.md @@ -14,86 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.2.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom@0.2.15...@thi.ng/rdom@0.2.16) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/rdom - - - - - -## [0.2.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom@0.2.14...@thi.ng/rdom@0.2.15) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/rdom - - - - - -## [0.2.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom@0.2.13...@thi.ng/rdom@0.2.14) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/rdom - - - - - -## [0.2.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom@0.2.12...@thi.ng/rdom@0.2.13) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/rdom - - - - - -## [0.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom@0.2.11...@thi.ng/rdom@0.2.12) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/rdom - - - - - -## [0.2.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom@0.2.10...@thi.ng/rdom@0.2.11) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/rdom - - - - - -## [0.2.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom@0.2.9...@thi.ng/rdom@0.2.10) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/rdom - - - - - -## [0.2.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom@0.2.8...@thi.ng/rdom@0.2.9) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/rdom - - - - - -## [0.2.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom@0.2.7...@thi.ng/rdom@0.2.8) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/rdom - - - - - -## [0.2.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom@0.2.6...@thi.ng/rdom@0.2.7) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/rdom - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom@0.1.2...@thi.ng/rdom@0.2.0) (2020-07-08) diff --git a/packages/resolve-map/CHANGELOG.md b/packages/resolve-map/CHANGELOG.md index a6fd6910c7..3e4b0afc68 100644 --- a/packages/resolve-map/CHANGELOG.md +++ b/packages/resolve-map/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [4.2.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.2.8...@thi.ng/resolve-map@4.2.9) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/resolve-map - - - - - -## [4.2.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.2.7...@thi.ng/resolve-map@4.2.8) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/resolve-map - - - - - -## [4.2.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.2.6...@thi.ng/resolve-map@4.2.7) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/resolve-map - - - - - -## [4.2.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.2.5...@thi.ng/resolve-map@4.2.6) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/resolve-map - - - - - -## [4.2.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.2.4...@thi.ng/resolve-map@4.2.5) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/resolve-map - - - - - -## [4.2.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.2.3...@thi.ng/resolve-map@4.2.4) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/resolve-map - - - - - -## [4.2.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.2.2...@thi.ng/resolve-map@4.2.3) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/resolve-map - - - - - -## [4.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.2.1...@thi.ng/resolve-map@4.2.2) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/resolve-map - - - - - # [4.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.1.31...@thi.ng/resolve-map@4.2.0) (2020-07-18) diff --git a/packages/rle-pack/CHANGELOG.md b/packages/rle-pack/CHANGELOG.md index 0eb31fe7fd..a677ac684e 100644 --- a/packages/rle-pack/CHANGELOG.md +++ b/packages/rle-pack/CHANGELOG.md @@ -3,62 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.1.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@2.1.28...@thi.ng/rle-pack@2.1.29) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/rle-pack - - - - - -## [2.1.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@2.1.27...@thi.ng/rle-pack@2.1.28) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/rle-pack - - - - - -## [2.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@2.1.26...@thi.ng/rle-pack@2.1.27) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/rle-pack - - - - - -## [2.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@2.1.25...@thi.ng/rle-pack@2.1.26) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/rle-pack - - - - - -## [2.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@2.1.24...@thi.ng/rle-pack@2.1.25) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/rle-pack - - - - - -## [2.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@2.1.23...@thi.ng/rle-pack@2.1.24) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/rle-pack - - - - - -## [2.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@2.1.22...@thi.ng/rle-pack@2.1.23) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/rle-pack - - - - - # [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@2.0.6...@thi.ng/rle-pack@2.1.0) (2019-07-07) ### Features diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md index 4d0e221552..8340d07a82 100644 --- a/packages/router/CHANGELOG.md +++ b/packages/router/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.0.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@2.0.35...@thi.ng/router@2.0.36) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/router - - - - - -## [2.0.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@2.0.34...@thi.ng/router@2.0.35) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/router - - - - - -## [2.0.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@2.0.33...@thi.ng/router@2.0.34) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/router - - - - - -## [2.0.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@2.0.32...@thi.ng/router@2.0.33) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/router - - - - - -## [2.0.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@2.0.31...@thi.ng/router@2.0.32) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/router - - - - - -## [2.0.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@2.0.30...@thi.ng/router@2.0.31) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/router - - - - - -## [2.0.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@2.0.29...@thi.ng/router@2.0.30) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/router - - - - - -## [2.0.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@2.0.28...@thi.ng/router@2.0.29) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/router - - - - - -## [2.0.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@2.0.27...@thi.ng/router@2.0.28) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/router - - - - - # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@1.0.12...@thi.ng/router@2.0.0) (2019-07-07) ### Code Refactoring diff --git a/packages/rstream-csp/CHANGELOG.md b/packages/rstream-csp/CHANGELOG.md index c2f7701d03..1d09004480 100644 --- a/packages/rstream-csp/CHANGELOG.md +++ b/packages/rstream-csp/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.0.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.44...@thi.ng/rstream-csp@2.0.45) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/rstream-csp - - - - - -## [2.0.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.43...@thi.ng/rstream-csp@2.0.44) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/rstream-csp - - - - - -## [2.0.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.42...@thi.ng/rstream-csp@2.0.43) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/rstream-csp - - - - - -## [2.0.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.41...@thi.ng/rstream-csp@2.0.42) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/rstream-csp - - - - - -## [2.0.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.40...@thi.ng/rstream-csp@2.0.41) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/rstream-csp - - - - - -## [2.0.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.39...@thi.ng/rstream-csp@2.0.40) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/rstream-csp - - - - - -## [2.0.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.38...@thi.ng/rstream-csp@2.0.39) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/rstream-csp - - - - - -## [2.0.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.37...@thi.ng/rstream-csp@2.0.38) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/rstream-csp - - - - - -## [2.0.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.36...@thi.ng/rstream-csp@2.0.37) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/rstream-csp - - - - - -## [2.0.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.35...@thi.ng/rstream-csp@2.0.36) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/rstream-csp - - - - - # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@1.0.33...@thi.ng/rstream-csp@2.0.0) (2019-11-30) ### Code Refactoring diff --git a/packages/rstream-dot/CHANGELOG.md b/packages/rstream-dot/CHANGELOG.md index 6f439560f8..27b3c838c9 100644 --- a/packages/rstream-dot/CHANGELOG.md +++ b/packages/rstream-dot/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.1.52](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.51...@thi.ng/rstream-dot@1.1.52) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/rstream-dot - - - - - -## [1.1.51](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.50...@thi.ng/rstream-dot@1.1.51) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/rstream-dot - - - - - -## [1.1.50](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.49...@thi.ng/rstream-dot@1.1.50) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/rstream-dot - - - - - -## [1.1.49](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.48...@thi.ng/rstream-dot@1.1.49) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/rstream-dot - - - - - -## [1.1.48](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.47...@thi.ng/rstream-dot@1.1.48) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/rstream-dot - - - - - -## [1.1.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.46...@thi.ng/rstream-dot@1.1.47) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/rstream-dot - - - - - -## [1.1.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.45...@thi.ng/rstream-dot@1.1.46) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/rstream-dot - - - - - -## [1.1.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.44...@thi.ng/rstream-dot@1.1.45) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/rstream-dot - - - - - -## [1.1.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.43...@thi.ng/rstream-dot@1.1.44) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/rstream-dot - - - - - -## [1.1.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.42...@thi.ng/rstream-dot@1.1.43) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/rstream-dot - - - - - # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.0.26...@thi.ng/rstream-dot@1.1.0) (2019-07-07) ### Features diff --git a/packages/rstream-gestures/CHANGELOG.md b/packages/rstream-gestures/CHANGELOG.md index 090bf3b985..3d519b4d1b 100644 --- a/packages/rstream-gestures/CHANGELOG.md +++ b/packages/rstream-gestures/CHANGELOG.md @@ -3,46 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.0.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.44...@thi.ng/rstream-gestures@2.0.45) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/rstream-gestures - - - - - -## [2.0.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.43...@thi.ng/rstream-gestures@2.0.44) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/rstream-gestures - - - - - -## [2.0.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.42...@thi.ng/rstream-gestures@2.0.43) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/rstream-gestures - - - - - -## [2.0.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.41...@thi.ng/rstream-gestures@2.0.42) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/rstream-gestures - - - - - -## [2.0.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.40...@thi.ng/rstream-gestures@2.0.41) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/rstream-gestures - - - - - ## [2.0.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.39...@thi.ng/rstream-gestures@2.0.40) (2020-09-27) @@ -54,30 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [2.0.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.38...@thi.ng/rstream-gestures@2.0.39) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/rstream-gestures - - - - - -## [2.0.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.37...@thi.ng/rstream-gestures@2.0.38) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/rstream-gestures - - - - - -## [2.0.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.36...@thi.ng/rstream-gestures@2.0.37) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/rstream-gestures - - - - - ## [2.0.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.35...@thi.ng/rstream-gestures@2.0.36) (2020-08-17) @@ -89,14 +25,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [2.0.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.34...@thi.ng/rstream-gestures@2.0.35) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/rstream-gestures - - - - - # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@1.3.0...@thi.ng/rstream-gestures@2.0.0) (2020-01-24) ### Bug Fixes diff --git a/packages/rstream-graph/CHANGELOG.md b/packages/rstream-graph/CHANGELOG.md index 2af3beaf2a..484e646d10 100644 --- a/packages/rstream-graph/CHANGELOG.md +++ b/packages/rstream-graph/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [3.2.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.45...@thi.ng/rstream-graph@3.2.46) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/rstream-graph - - - - - -## [3.2.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.44...@thi.ng/rstream-graph@3.2.45) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/rstream-graph - - - - - -## [3.2.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.43...@thi.ng/rstream-graph@3.2.44) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/rstream-graph - - - - - -## [3.2.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.42...@thi.ng/rstream-graph@3.2.43) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/rstream-graph - - - - - -## [3.2.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.41...@thi.ng/rstream-graph@3.2.42) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/rstream-graph - - - - - -## [3.2.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.40...@thi.ng/rstream-graph@3.2.41) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/rstream-graph - - - - - -## [3.2.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.39...@thi.ng/rstream-graph@3.2.40) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/rstream-graph - - - - - -## [3.2.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.38...@thi.ng/rstream-graph@3.2.39) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/rstream-graph - - - - - -## [3.2.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.37...@thi.ng/rstream-graph@3.2.38) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/rstream-graph - - - - - -## [3.2.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.36...@thi.ng/rstream-graph@3.2.37) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/rstream-graph - - - - - # [3.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.1.8...@thi.ng/rstream-graph@3.2.0) (2019-11-30) ### Bug Fixes diff --git a/packages/rstream-log-file/CHANGELOG.md b/packages/rstream-log-file/CHANGELOG.md index d249a75660..b9df57e808 100644 --- a/packages/rstream-log-file/CHANGELOG.md +++ b/packages/rstream-log-file/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.67](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.66...@thi.ng/rstream-log-file@0.1.67) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/rstream-log-file - - - - - -## [0.1.66](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.65...@thi.ng/rstream-log-file@0.1.66) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/rstream-log-file - - - - - -## [0.1.65](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.64...@thi.ng/rstream-log-file@0.1.65) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/rstream-log-file - - - - - -## [0.1.64](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.63...@thi.ng/rstream-log-file@0.1.64) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/rstream-log-file - - - - - -## [0.1.63](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.62...@thi.ng/rstream-log-file@0.1.63) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/rstream-log-file - - - - - -## [0.1.62](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.61...@thi.ng/rstream-log-file@0.1.62) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/rstream-log-file - - - - - -## [0.1.61](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.60...@thi.ng/rstream-log-file@0.1.61) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/rstream-log-file - - - - - -## [0.1.60](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.59...@thi.ng/rstream-log-file@0.1.60) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/rstream-log-file - - - - - -## [0.1.59](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.58...@thi.ng/rstream-log-file@0.1.59) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/rstream-log-file - - - - - -## [0.1.58](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.57...@thi.ng/rstream-log-file@0.1.58) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/rstream-log-file - - - - - # 0.1.0 (2019-03-19) ### Features diff --git a/packages/rstream-log/CHANGELOG.md b/packages/rstream-log/CHANGELOG.md index cbedcfcc88..252dad972a 100644 --- a/packages/rstream-log/CHANGELOG.md +++ b/packages/rstream-log/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [3.1.52](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.51...@thi.ng/rstream-log@3.1.52) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/rstream-log - - - - - -## [3.1.51](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.50...@thi.ng/rstream-log@3.1.51) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/rstream-log - - - - - -## [3.1.50](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.49...@thi.ng/rstream-log@3.1.50) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/rstream-log - - - - - -## [3.1.49](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.48...@thi.ng/rstream-log@3.1.49) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/rstream-log - - - - - -## [3.1.48](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.47...@thi.ng/rstream-log@3.1.48) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/rstream-log - - - - - -## [3.1.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.46...@thi.ng/rstream-log@3.1.47) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/rstream-log - - - - - -## [3.1.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.45...@thi.ng/rstream-log@3.1.46) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/rstream-log - - - - - -## [3.1.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.44...@thi.ng/rstream-log@3.1.45) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/rstream-log - - - - - -## [3.1.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.43...@thi.ng/rstream-log@3.1.44) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/rstream-log - - - - - -## [3.1.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.42...@thi.ng/rstream-log@3.1.43) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/rstream-log - - - - - # [3.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.0.14...@thi.ng/rstream-log@3.1.0) (2019-07-07) ### Features diff --git a/packages/rstream-query/CHANGELOG.md b/packages/rstream-query/CHANGELOG.md index 05648aff0a..4dba714ee9 100644 --- a/packages/rstream-query/CHANGELOG.md +++ b/packages/rstream-query/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.1.52](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.51...@thi.ng/rstream-query@1.1.52) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/rstream-query - - - - - -## [1.1.51](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.50...@thi.ng/rstream-query@1.1.51) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/rstream-query - - - - - -## [1.1.50](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.49...@thi.ng/rstream-query@1.1.50) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/rstream-query - - - - - -## [1.1.49](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.48...@thi.ng/rstream-query@1.1.49) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/rstream-query - - - - - -## [1.1.48](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.47...@thi.ng/rstream-query@1.1.48) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/rstream-query - - - - - -## [1.1.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.46...@thi.ng/rstream-query@1.1.47) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/rstream-query - - - - - -## [1.1.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.45...@thi.ng/rstream-query@1.1.46) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/rstream-query - - - - - -## [1.1.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.44...@thi.ng/rstream-query@1.1.45) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/rstream-query - - - - - -## [1.1.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.43...@thi.ng/rstream-query@1.1.44) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/rstream-query - - - - - -## [1.1.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.42...@thi.ng/rstream-query@1.1.43) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/rstream-query - - - - - ## [1.1.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.6...@thi.ng/rstream-query@1.1.7) (2019-11-30) ### Bug Fixes diff --git a/packages/rstream/CHANGELOG.md b/packages/rstream/CHANGELOG.md index 2d13784721..aade0b2ec7 100644 --- a/packages/rstream/CHANGELOG.md +++ b/packages/rstream/CHANGELOG.md @@ -3,54 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [5.0.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@5.0.9...@thi.ng/rstream@5.0.10) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/rstream - - - - - -## [5.0.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@5.0.8...@thi.ng/rstream@5.0.9) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/rstream - - - - - -## [5.0.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@5.0.7...@thi.ng/rstream@5.0.8) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/rstream - - - - - -## [5.0.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@5.0.6...@thi.ng/rstream@5.0.7) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/rstream - - - - - -## [5.0.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@5.0.5...@thi.ng/rstream@5.0.6) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/rstream - - - - - -## [5.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@5.0.4...@thi.ng/rstream@5.0.5) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/rstream - - - - - ## [5.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@5.0.3...@thi.ng/rstream@5.0.4) (2020-09-13) @@ -62,30 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [5.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@5.0.2...@thi.ng/rstream@5.0.3) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/rstream - - - - - -## [5.0.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@5.0.1...@thi.ng/rstream@5.0.2) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/rstream - - - - - -## [5.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@5.0.0...@thi.ng/rstream@5.0.1) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/rstream - - - - - # [5.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@4.6.5...@thi.ng/rstream@5.0.0) (2020-07-28) diff --git a/packages/sax/CHANGELOG.md b/packages/sax/CHANGELOG.md index cbcbbad5e3..e961a8526e 100644 --- a/packages/sax/CHANGELOG.md +++ b/packages/sax/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.1.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.41...@thi.ng/sax@1.1.42) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/sax - - - - - -## [1.1.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.40...@thi.ng/sax@1.1.41) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/sax - - - - - -## [1.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.39...@thi.ng/sax@1.1.40) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/sax - - - - - -## [1.1.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.38...@thi.ng/sax@1.1.39) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/sax - - - - - -## [1.1.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.37...@thi.ng/sax@1.1.38) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/sax - - - - - -## [1.1.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.36...@thi.ng/sax@1.1.37) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/sax - - - - - -## [1.1.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.35...@thi.ng/sax@1.1.36) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/sax - - - - - -## [1.1.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.34...@thi.ng/sax@1.1.35) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/sax - - - - - # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.0.19...@thi.ng/sax@1.1.0) (2019-07-07) ### Features diff --git a/packages/scenegraph/CHANGELOG.md b/packages/scenegraph/CHANGELOG.md index 513cf34736..b8ad171fcf 100644 --- a/packages/scenegraph/CHANGELOG.md +++ b/packages/scenegraph/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.3.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.3.10...@thi.ng/scenegraph@0.3.11) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/scenegraph - - - - - -## [0.3.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.3.9...@thi.ng/scenegraph@0.3.10) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/scenegraph - - - - - -## [0.3.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.3.8...@thi.ng/scenegraph@0.3.9) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/scenegraph - - - - - -## [0.3.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.3.7...@thi.ng/scenegraph@0.3.8) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/scenegraph - - - - - -## [0.3.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.3.6...@thi.ng/scenegraph@0.3.7) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/scenegraph - - - - - -## [0.3.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.3.5...@thi.ng/scenegraph@0.3.6) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/scenegraph - - - - - -## [0.3.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.3.4...@thi.ng/scenegraph@0.3.5) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/scenegraph - - - - - -## [0.3.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.3.3...@thi.ng/scenegraph@0.3.4) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/scenegraph - - - - - -## [0.3.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.3.2...@thi.ng/scenegraph@0.3.3) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/scenegraph - - - - - -## [0.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.3.1...@thi.ng/scenegraph@0.3.2) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/scenegraph - - - - - # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.2.1...@thi.ng/scenegraph@0.3.0) (2020-07-28) diff --git a/packages/seq/CHANGELOG.md b/packages/seq/CHANGELOG.md index 19fb77e51f..483c99bc6d 100644 --- a/packages/seq/CHANGELOG.md +++ b/packages/seq/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.2.26...@thi.ng/seq@0.2.27) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/seq - - - - - -## [0.2.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.2.25...@thi.ng/seq@0.2.26) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/seq - - - - - -## [0.2.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.2.24...@thi.ng/seq@0.2.25) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/seq - - - - - -## [0.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.2.23...@thi.ng/seq@0.2.24) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/seq - - - - - -## [0.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.2.22...@thi.ng/seq@0.2.23) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/seq - - - - - -## [0.2.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.2.21...@thi.ng/seq@0.2.22) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/seq - - - - - -## [0.2.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.2.20...@thi.ng/seq@0.2.21) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/seq - - - - - -## [0.2.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.2.19...@thi.ng/seq@0.2.20) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/seq - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.1.0...@thi.ng/seq@0.2.0) (2020-01-24) ### Features diff --git a/packages/sexpr/CHANGELOG.md b/packages/sexpr/CHANGELOG.md index 53e89e83af..563d1a12c5 100644 --- a/packages/sexpr/CHANGELOG.md +++ b/packages/sexpr/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.2.29...@thi.ng/sexpr@0.2.30) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/sexpr - - - - - -## [0.2.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.2.28...@thi.ng/sexpr@0.2.29) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/sexpr - - - - - -## [0.2.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.2.27...@thi.ng/sexpr@0.2.28) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/sexpr - - - - - -## [0.2.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.2.26...@thi.ng/sexpr@0.2.27) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/sexpr - - - - - -## [0.2.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.2.25...@thi.ng/sexpr@0.2.26) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/sexpr - - - - - -## [0.2.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.2.24...@thi.ng/sexpr@0.2.25) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/sexpr - - - - - -## [0.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.2.23...@thi.ng/sexpr@0.2.24) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/sexpr - - - - - -## [0.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.2.22...@thi.ng/sexpr@0.2.23) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/sexpr - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.1.0...@thi.ng/sexpr@0.2.0) (2019-09-23) ### Features diff --git a/packages/shader-ast-glsl/CHANGELOG.md b/packages/shader-ast-glsl/CHANGELOG.md index 90a149882d..1cdc0c9bb7 100644 --- a/packages/shader-ast-glsl/CHANGELOG.md +++ b/packages/shader-ast-glsl/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.2.13...@thi.ng/shader-ast-glsl@0.2.14) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/shader-ast-glsl - - - - - -## [0.2.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.2.12...@thi.ng/shader-ast-glsl@0.2.13) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/shader-ast-glsl - - - - - -## [0.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.2.11...@thi.ng/shader-ast-glsl@0.2.12) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/shader-ast-glsl - - - - - -## [0.2.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.2.10...@thi.ng/shader-ast-glsl@0.2.11) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/shader-ast-glsl - - - - - -## [0.2.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.2.9...@thi.ng/shader-ast-glsl@0.2.10) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/shader-ast-glsl - - - - - -## [0.2.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.2.8...@thi.ng/shader-ast-glsl@0.2.9) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/shader-ast-glsl - - - - - -## [0.2.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.2.7...@thi.ng/shader-ast-glsl@0.2.8) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/shader-ast-glsl - - - - - -## [0.2.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.2.6...@thi.ng/shader-ast-glsl@0.2.7) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/shader-ast-glsl - - - - - -## [0.2.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.2.5...@thi.ng/shader-ast-glsl@0.2.6) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/shader-ast-glsl - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.1.39...@thi.ng/shader-ast-glsl@0.2.0) (2020-07-28) diff --git a/packages/shader-ast-js/CHANGELOG.md b/packages/shader-ast-js/CHANGELOG.md index a4a87958d2..bbd013cd88 100644 --- a/packages/shader-ast-js/CHANGELOG.md +++ b/packages/shader-ast-js/CHANGELOG.md @@ -3,94 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.5.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.5.11...@thi.ng/shader-ast-js@0.5.12) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/shader-ast-js - - - - - -## [0.5.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.5.10...@thi.ng/shader-ast-js@0.5.11) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/shader-ast-js - - - - - -## [0.5.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.5.9...@thi.ng/shader-ast-js@0.5.10) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/shader-ast-js - - - - - -## [0.5.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.5.8...@thi.ng/shader-ast-js@0.5.9) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/shader-ast-js - - - - - -## [0.5.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.5.7...@thi.ng/shader-ast-js@0.5.8) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/shader-ast-js - - - - - -## [0.5.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.5.6...@thi.ng/shader-ast-js@0.5.7) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/shader-ast-js - - - - - -## [0.5.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.5.5...@thi.ng/shader-ast-js@0.5.6) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/shader-ast-js - - - - - -## [0.5.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.5.4...@thi.ng/shader-ast-js@0.5.5) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/shader-ast-js - - - - - -## [0.5.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.5.3...@thi.ng/shader-ast-js@0.5.4) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/shader-ast-js - - - - - -## [0.5.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.5.2...@thi.ng/shader-ast-js@0.5.3) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/shader-ast-js - - - - - -## [0.5.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.5.1...@thi.ng/shader-ast-js@0.5.2) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/shader-ast-js - - - - - # [0.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.4.40...@thi.ng/shader-ast-js@0.5.0) (2020-08-10) diff --git a/packages/shader-ast-stdlib/CHANGELOG.md b/packages/shader-ast-stdlib/CHANGELOG.md index f4c78843cc..9a8b81bf8c 100644 --- a/packages/shader-ast-stdlib/CHANGELOG.md +++ b/packages/shader-ast-stdlib/CHANGELOG.md @@ -3,54 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.5.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.5.5...@thi.ng/shader-ast-stdlib@0.5.6) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/shader-ast-stdlib - - - - - -## [0.5.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.5.4...@thi.ng/shader-ast-stdlib@0.5.5) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/shader-ast-stdlib - - - - - -## [0.5.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.5.3...@thi.ng/shader-ast-stdlib@0.5.4) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/shader-ast-stdlib - - - - - -## [0.5.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.5.2...@thi.ng/shader-ast-stdlib@0.5.3) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/shader-ast-stdlib - - - - - -## [0.5.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.5.1...@thi.ng/shader-ast-stdlib@0.5.2) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/shader-ast-stdlib - - - - - -## [0.5.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.5.0...@thi.ng/shader-ast-stdlib@0.5.1) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/shader-ast-stdlib - - - - - # [0.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.4.6...@thi.ng/shader-ast-stdlib@0.5.0) (2020-08-28) @@ -64,14 +16,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.4.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.4.5...@thi.ng/shader-ast-stdlib@0.4.6) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/shader-ast-stdlib - - - - - ## [0.4.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.4.4...@thi.ng/shader-ast-stdlib@0.4.5) (2020-08-16) diff --git a/packages/shader-ast/CHANGELOG.md b/packages/shader-ast/CHANGELOG.md index 47d647c59a..1618d6933d 100644 --- a/packages/shader-ast/CHANGELOG.md +++ b/packages/shader-ast/CHANGELOG.md @@ -3,54 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.7.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.7.5...@thi.ng/shader-ast@0.7.6) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/shader-ast - - - - - -## [0.7.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.7.4...@thi.ng/shader-ast@0.7.5) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/shader-ast - - - - - -## [0.7.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.7.3...@thi.ng/shader-ast@0.7.4) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/shader-ast - - - - - -## [0.7.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.7.2...@thi.ng/shader-ast@0.7.3) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/shader-ast - - - - - -## [0.7.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.7.1...@thi.ng/shader-ast@0.7.2) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/shader-ast - - - - - -## [0.7.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.7.0...@thi.ng/shader-ast@0.7.1) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/shader-ast - - - - - # [0.7.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.6.3...@thi.ng/shader-ast@0.7.0) (2020-08-28) @@ -68,22 +20,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.6.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.6.2...@thi.ng/shader-ast@0.6.3) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/shader-ast - - - - - -## [0.6.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.6.1...@thi.ng/shader-ast@0.6.2) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/shader-ast - - - - - # [0.6.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.5.2...@thi.ng/shader-ast@0.6.0) (2020-08-10) diff --git a/packages/simd/CHANGELOG.md b/packages/simd/CHANGELOG.md index ce1cd832d6..d6e87f52a8 100644 --- a/packages/simd/CHANGELOG.md +++ b/packages/simd/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.4.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.4.9...@thi.ng/simd@0.4.10) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/simd - - - - - -## [0.4.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.4.8...@thi.ng/simd@0.4.9) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/simd - - - - - -## [0.4.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.4.7...@thi.ng/simd@0.4.8) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/simd - - - - - -## [0.4.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.4.6...@thi.ng/simd@0.4.7) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/simd - - - - - -## [0.4.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.4.5...@thi.ng/simd@0.4.6) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/simd - - - - - -## [0.4.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.4.4...@thi.ng/simd@0.4.5) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/simd - - - - - -## [0.4.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.4.3...@thi.ng/simd@0.4.4) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/simd - - - - - -## [0.4.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.4.2...@thi.ng/simd@0.4.3) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/simd - - - - - -## [0.4.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.4.1...@thi.ng/simd@0.4.2) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/simd - - - - - # [0.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.3.1...@thi.ng/simd@0.4.0) (2020-07-25) diff --git a/packages/soa/CHANGELOG.md b/packages/soa/CHANGELOG.md index e3ca785483..84a815caea 100644 --- a/packages/soa/CHANGELOG.md +++ b/packages/soa/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.40...@thi.ng/soa@0.1.41) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/soa - - - - - -## [0.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.39...@thi.ng/soa@0.1.40) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/soa - - - - - -## [0.1.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.38...@thi.ng/soa@0.1.39) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/soa - - - - - -## [0.1.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.37...@thi.ng/soa@0.1.38) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/soa - - - - - -## [0.1.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.36...@thi.ng/soa@0.1.37) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/soa - - - - - -## [0.1.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.35...@thi.ng/soa@0.1.36) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/soa - - - - - -## [0.1.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.34...@thi.ng/soa@0.1.35) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/soa - - - - - -## [0.1.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.33...@thi.ng/soa@0.1.34) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/soa - - - - - -## [0.1.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.32...@thi.ng/soa@0.1.33) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/soa - - - - - -## [0.1.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.31...@thi.ng/soa@0.1.32) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/soa - - - - - # 0.1.0 (2019-11-09) ### Bug Fixes diff --git a/packages/sparse/CHANGELOG.md b/packages/sparse/CHANGELOG.md index 4994f9189a..29f14f10de 100644 --- a/packages/sparse/CHANGELOG.md +++ b/packages/sparse/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.58](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.57...@thi.ng/sparse@0.1.58) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/sparse - - - - - -## [0.1.57](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.56...@thi.ng/sparse@0.1.57) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/sparse - - - - - -## [0.1.56](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.55...@thi.ng/sparse@0.1.56) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/sparse - - - - - -## [0.1.55](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.54...@thi.ng/sparse@0.1.55) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/sparse - - - - - -## [0.1.54](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.53...@thi.ng/sparse@0.1.54) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/sparse - - - - - -## [0.1.53](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.52...@thi.ng/sparse@0.1.53) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/sparse - - - - - -## [0.1.52](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.51...@thi.ng/sparse@0.1.52) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/sparse - - - - - -## [0.1.51](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.50...@thi.ng/sparse@0.1.51) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/sparse - - - - - # 0.1.0 (2019-02-17) ### Features diff --git a/packages/strings/CHANGELOG.md b/packages/strings/CHANGELOG.md index 6b9482f8ef..019f522f32 100644 --- a/packages/strings/CHANGELOG.md +++ b/packages/strings/CHANGELOG.md @@ -3,22 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.11.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.11.1...@thi.ng/strings@1.11.2) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/strings - - - - - -## [1.11.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.11.0...@thi.ng/strings@1.11.1) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/strings - - - - - # [1.11.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.10.0...@thi.ng/strings@1.11.0) (2020-11-24) @@ -43,46 +27,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [1.9.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.9.5...@thi.ng/strings@1.9.6) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/strings - - - - - -## [1.9.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.9.4...@thi.ng/strings@1.9.5) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/strings - - - - - -## [1.9.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.9.3...@thi.ng/strings@1.9.4) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/strings - - - - - -## [1.9.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.9.2...@thi.ng/strings@1.9.3) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/strings - - - - - -## [1.9.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.9.1...@thi.ng/strings@1.9.2) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/strings - - - - - # [1.9.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.8.13...@thi.ng/strings@1.9.0) (2020-07-08) diff --git a/packages/system/CHANGELOG.md b/packages/system/CHANGELOG.md index a8af5dbba2..9a31a6538c 100644 --- a/packages/system/CHANGELOG.md +++ b/packages/system/CHANGELOG.md @@ -3,46 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.30...@thi.ng/system@0.2.31) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/system - - - - - -## [0.2.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.29...@thi.ng/system@0.2.30) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/system - - - - - -## [0.2.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.28...@thi.ng/system@0.2.29) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/system - - - - - -## [0.2.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.27...@thi.ng/system@0.2.28) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/system - - - - - -## [0.2.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.26...@thi.ng/system@0.2.27) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/system - - - - - ## [0.2.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.25...@thi.ng/system@0.2.26) (2020-09-13) @@ -54,30 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.2.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.24...@thi.ng/system@0.2.25) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/system - - - - - -## [0.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.23...@thi.ng/system@0.2.24) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/system - - - - - -## [0.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.22...@thi.ng/system@0.2.23) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/system - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.1.0...@thi.ng/system@0.2.0) (2020-04-03) diff --git a/packages/text-canvas/CHANGELOG.md b/packages/text-canvas/CHANGELOG.md index 2c6151f2c0..2ef224ef52 100644 --- a/packages/text-canvas/CHANGELOG.md +++ b/packages/text-canvas/CHANGELOG.md @@ -3,86 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.34...@thi.ng/text-canvas@0.2.35) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/text-canvas - - - - - -## [0.2.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.33...@thi.ng/text-canvas@0.2.34) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/text-canvas - - - - - -## [0.2.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.32...@thi.ng/text-canvas@0.2.33) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/text-canvas - - - - - -## [0.2.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.31...@thi.ng/text-canvas@0.2.32) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/text-canvas - - - - - -## [0.2.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.30...@thi.ng/text-canvas@0.2.31) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/text-canvas - - - - - -## [0.2.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.29...@thi.ng/text-canvas@0.2.30) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/text-canvas - - - - - -## [0.2.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.28...@thi.ng/text-canvas@0.2.29) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/text-canvas - - - - - -## [0.2.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.27...@thi.ng/text-canvas@0.2.28) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/text-canvas - - - - - -## [0.2.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.26...@thi.ng/text-canvas@0.2.27) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/text-canvas - - - - - -## [0.2.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.25...@thi.ng/text-canvas@0.2.26) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/text-canvas - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.1.2...@thi.ng/text-canvas@0.2.0) (2020-03-01) diff --git a/packages/transducers-binary/CHANGELOG.md b/packages/transducers-binary/CHANGELOG.md index 494c107b26..16f5fff40e 100644 --- a/packages/transducers-binary/CHANGELOG.md +++ b/packages/transducers-binary/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.5.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.32...@thi.ng/transducers-binary@0.5.33) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/transducers-binary - - - - - -## [0.5.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.31...@thi.ng/transducers-binary@0.5.32) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/transducers-binary - - - - - -## [0.5.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.30...@thi.ng/transducers-binary@0.5.31) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/transducers-binary - - - - - -## [0.5.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.29...@thi.ng/transducers-binary@0.5.30) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/transducers-binary - - - - - -## [0.5.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.28...@thi.ng/transducers-binary@0.5.29) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/transducers-binary - - - - - -## [0.5.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.27...@thi.ng/transducers-binary@0.5.28) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/transducers-binary - - - - - -## [0.5.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.26...@thi.ng/transducers-binary@0.5.27) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/transducers-binary - - - - - -## [0.5.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.25...@thi.ng/transducers-binary@0.5.26) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/transducers-binary - - - - - -## [0.5.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.24...@thi.ng/transducers-binary@0.5.25) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/transducers-binary - - - - - # [0.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.4.9...@thi.ng/transducers-binary@0.5.0) (2020-02-25) diff --git a/packages/transducers-fsm/CHANGELOG.md b/packages/transducers-fsm/CHANGELOG.md index 302be0ac9d..b1f0850128 100644 --- a/packages/transducers-fsm/CHANGELOG.md +++ b/packages/transducers-fsm/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.1.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.41...@thi.ng/transducers-fsm@1.1.42) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/transducers-fsm - - - - - -## [1.1.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.40...@thi.ng/transducers-fsm@1.1.41) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/transducers-fsm - - - - - -## [1.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.39...@thi.ng/transducers-fsm@1.1.40) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/transducers-fsm - - - - - -## [1.1.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.38...@thi.ng/transducers-fsm@1.1.39) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/transducers-fsm - - - - - -## [1.1.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.37...@thi.ng/transducers-fsm@1.1.38) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/transducers-fsm - - - - - -## [1.1.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.36...@thi.ng/transducers-fsm@1.1.37) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/transducers-fsm - - - - - -## [1.1.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.35...@thi.ng/transducers-fsm@1.1.36) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/transducers-fsm - - - - - -## [1.1.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.34...@thi.ng/transducers-fsm@1.1.35) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/transducers-fsm - - - - - # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.0.19...@thi.ng/transducers-fsm@1.1.0) (2019-07-07) ### Features diff --git a/packages/transducers-hdom/CHANGELOG.md b/packages/transducers-hdom/CHANGELOG.md index 11ff31c0a8..abac55acff 100644 --- a/packages/transducers-hdom/CHANGELOG.md +++ b/packages/transducers-hdom/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [2.0.74](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.73...@thi.ng/transducers-hdom@2.0.74) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/transducers-hdom - - - - - -## [2.0.73](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.72...@thi.ng/transducers-hdom@2.0.73) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/transducers-hdom - - - - - -## [2.0.72](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.71...@thi.ng/transducers-hdom@2.0.72) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/transducers-hdom - - - - - -## [2.0.71](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.70...@thi.ng/transducers-hdom@2.0.71) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/transducers-hdom - - - - - -## [2.0.70](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.69...@thi.ng/transducers-hdom@2.0.70) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/transducers-hdom - - - - - -## [2.0.69](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.68...@thi.ng/transducers-hdom@2.0.69) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/transducers-hdom - - - - - -## [2.0.68](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.67...@thi.ng/transducers-hdom@2.0.68) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/transducers-hdom - - - - - -## [2.0.67](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.66...@thi.ng/transducers-hdom@2.0.67) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/transducers-hdom - - - - - # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@1.2.16...@thi.ng/transducers-hdom@2.0.0) (2019-01-21) ### Build System diff --git a/packages/transducers-patch/CHANGELOG.md b/packages/transducers-patch/CHANGELOG.md index 52ff627d9a..465219fe7c 100644 --- a/packages/transducers-patch/CHANGELOG.md +++ b/packages/transducers-patch/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.32...@thi.ng/transducers-patch@0.1.33) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/transducers-patch - - - - - -## [0.1.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.31...@thi.ng/transducers-patch@0.1.32) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/transducers-patch - - - - - -## [0.1.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.30...@thi.ng/transducers-patch@0.1.31) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/transducers-patch - - - - - -## [0.1.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.29...@thi.ng/transducers-patch@0.1.30) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/transducers-patch - - - - - -## [0.1.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.28...@thi.ng/transducers-patch@0.1.29) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/transducers-patch - - - - - -## [0.1.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.27...@thi.ng/transducers-patch@0.1.28) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/transducers-patch - - - - - -## [0.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.26...@thi.ng/transducers-patch@0.1.27) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/transducers-patch - - - - - -## [0.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.25...@thi.ng/transducers-patch@0.1.26) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/transducers-patch - - - - - ## [0.1.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.4...@thi.ng/transducers-patch@0.1.5) (2020-03-28) diff --git a/packages/transducers-stats/CHANGELOG.md b/packages/transducers-stats/CHANGELOG.md index 9a9d115449..9329b12832 100644 --- a/packages/transducers-stats/CHANGELOG.md +++ b/packages/transducers-stats/CHANGELOG.md @@ -3,78 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.1.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.42...@thi.ng/transducers-stats@1.1.43) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/transducers-stats - - - - - -## [1.1.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.41...@thi.ng/transducers-stats@1.1.42) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/transducers-stats - - - - - -## [1.1.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.40...@thi.ng/transducers-stats@1.1.41) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/transducers-stats - - - - - -## [1.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.39...@thi.ng/transducers-stats@1.1.40) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/transducers-stats - - - - - -## [1.1.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.38...@thi.ng/transducers-stats@1.1.39) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/transducers-stats - - - - - -## [1.1.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.37...@thi.ng/transducers-stats@1.1.38) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/transducers-stats - - - - - -## [1.1.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.36...@thi.ng/transducers-stats@1.1.37) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/transducers-stats - - - - - -## [1.1.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.35...@thi.ng/transducers-stats@1.1.36) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/transducers-stats - - - - - -## [1.1.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.34...@thi.ng/transducers-stats@1.1.35) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/transducers-stats - - - - - # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.0.19...@thi.ng/transducers-stats@1.1.0) (2019-07-07) ### Features diff --git a/packages/transducers/CHANGELOG.md b/packages/transducers/CHANGELOG.md index 0a97d70e65..15e6bc7462 100644 --- a/packages/transducers/CHANGELOG.md +++ b/packages/transducers/CHANGELOG.md @@ -3,22 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [7.5.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@7.5.1...@thi.ng/transducers@7.5.2) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/transducers - - - - - -## [7.5.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@7.5.0...@thi.ng/transducers@7.5.1) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/transducers - - - - - # [7.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@7.4.0...@thi.ng/transducers@7.5.0) (2020-11-24) @@ -42,14 +26,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [7.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@7.3.0...@thi.ng/transducers@7.3.1) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/transducers - - - - - # [7.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@7.2.2...@thi.ng/transducers@7.3.0) (2020-08-28) @@ -67,22 +43,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [7.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@7.2.1...@thi.ng/transducers@7.2.2) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/transducers - - - - - -## [7.2.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@7.2.0...@thi.ng/transducers@7.2.1) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/transducers - - - - - # [7.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@7.1.6...@thi.ng/transducers@7.2.0) (2020-07-28) diff --git a/packages/unionstruct/CHANGELOG.md b/packages/unionstruct/CHANGELOG.md index 2c1c806323..bb593e62f4 100644 --- a/packages/unionstruct/CHANGELOG.md +++ b/packages/unionstruct/CHANGELOG.md @@ -3,62 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@1.1.26...@thi.ng/unionstruct@1.1.27) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/unionstruct - - - - - -## [1.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@1.1.25...@thi.ng/unionstruct@1.1.26) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/unionstruct - - - - - -## [1.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@1.1.24...@thi.ng/unionstruct@1.1.25) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/unionstruct - - - - - -## [1.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@1.1.23...@thi.ng/unionstruct@1.1.24) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/unionstruct - - - - - -## [1.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@1.1.22...@thi.ng/unionstruct@1.1.23) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/unionstruct - - - - - -## [1.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@1.1.21...@thi.ng/unionstruct@1.1.22) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/unionstruct - - - - - -## [1.1.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@1.1.20...@thi.ng/unionstruct@1.1.21) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/unionstruct - - - - - # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@1.0.6...@thi.ng/unionstruct@1.1.0) (2019-07-07) ### Bug Fixes diff --git a/packages/vclock/CHANGELOG.md b/packages/vclock/CHANGELOG.md index bb25d017b0..d47f51dc9f 100644 --- a/packages/vclock/CHANGELOG.md +++ b/packages/vclock/CHANGELOG.md @@ -3,14 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/vclock@0.1.0...@thi.ng/vclock@0.1.1) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/vclock - - - - - # 0.1.0 (2020-11-26) diff --git a/packages/vector-pools/CHANGELOG.md b/packages/vector-pools/CHANGELOG.md index fc84e1377f..f6702d10e9 100644 --- a/packages/vector-pools/CHANGELOG.md +++ b/packages/vector-pools/CHANGELOG.md @@ -3,94 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [1.0.51](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.50...@thi.ng/vector-pools@1.0.51) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/vector-pools - - - - - -## [1.0.50](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.49...@thi.ng/vector-pools@1.0.50) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/vector-pools - - - - - -## [1.0.49](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.48...@thi.ng/vector-pools@1.0.49) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/vector-pools - - - - - -## [1.0.48](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.47...@thi.ng/vector-pools@1.0.48) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/vector-pools - - - - - -## [1.0.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.46...@thi.ng/vector-pools@1.0.47) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/vector-pools - - - - - -## [1.0.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.45...@thi.ng/vector-pools@1.0.46) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/vector-pools - - - - - -## [1.0.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.44...@thi.ng/vector-pools@1.0.45) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/vector-pools - - - - - -## [1.0.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.43...@thi.ng/vector-pools@1.0.44) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/vector-pools - - - - - -## [1.0.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.42...@thi.ng/vector-pools@1.0.43) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/vector-pools - - - - - -## [1.0.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.41...@thi.ng/vector-pools@1.0.42) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/vector-pools - - - - - -## [1.0.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.40...@thi.ng/vector-pools@1.0.41) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/vector-pools - - - - - # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@0.2.16...@thi.ng/vector-pools@1.0.0) (2019-07-07) ### Code Refactoring diff --git a/packages/vectors/CHANGELOG.md b/packages/vectors/CHANGELOG.md index 752205bfae..4e46a75e16 100644 --- a/packages/vectors/CHANGELOG.md +++ b/packages/vectors/CHANGELOG.md @@ -3,22 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [4.8.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.8.1...@thi.ng/vectors@4.8.2) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/vectors - - - - - -## [4.8.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.8.0...@thi.ng/vectors@4.8.1) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/vectors - - - - - # [4.8.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.7.0...@thi.ng/vectors@4.8.0) (2020-11-24) @@ -42,54 +26,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [4.6.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.6.5...@thi.ng/vectors@4.6.6) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/vectors - - - - - -## [4.6.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.6.4...@thi.ng/vectors@4.6.5) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/vectors - - - - - -## [4.6.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.6.3...@thi.ng/vectors@4.6.4) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/vectors - - - - - -## [4.6.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.6.2...@thi.ng/vectors@4.6.3) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/vectors - - - - - -## [4.6.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.6.1...@thi.ng/vectors@4.6.2) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/vectors - - - - - -## [4.6.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.6.0...@thi.ng/vectors@4.6.1) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/vectors - - - - - # [4.6.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.5.6...@thi.ng/vectors@4.6.0) (2020-08-10) diff --git a/packages/viz/CHANGELOG.md b/packages/viz/CHANGELOG.md index fabe17bdc0..9afea66504 100644 --- a/packages/viz/CHANGELOG.md +++ b/packages/viz/CHANGELOG.md @@ -3,22 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/viz@0.2.1...@thi.ng/viz@0.2.2) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/viz - - - - - -## [0.2.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/viz@0.2.0...@thi.ng/viz@0.2.1) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/viz - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/viz@0.1.2...@thi.ng/viz@0.2.0) (2020-11-24) @@ -31,22 +15,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [0.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/viz@0.1.1...@thi.ng/viz@0.1.2) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/viz - - - - - -## [0.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/viz@0.1.0...@thi.ng/viz@0.1.1) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/viz - - - - - # 0.1.0 (2020-09-13) diff --git a/packages/webgl-msdf/CHANGELOG.md b/packages/webgl-msdf/CHANGELOG.md index 5c3ed944d4..dc05d6c923 100644 --- a/packages/webgl-msdf/CHANGELOG.md +++ b/packages/webgl-msdf/CHANGELOG.md @@ -3,94 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.65](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.64...@thi.ng/webgl-msdf@0.1.65) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/webgl-msdf - - - - - -## [0.1.64](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.63...@thi.ng/webgl-msdf@0.1.64) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/webgl-msdf - - - - - -## [0.1.63](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.62...@thi.ng/webgl-msdf@0.1.63) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/webgl-msdf - - - - - -## [0.1.62](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.61...@thi.ng/webgl-msdf@0.1.62) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/webgl-msdf - - - - - -## [0.1.61](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.60...@thi.ng/webgl-msdf@0.1.61) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/webgl-msdf - - - - - -## [0.1.60](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.59...@thi.ng/webgl-msdf@0.1.60) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/webgl-msdf - - - - - -## [0.1.59](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.58...@thi.ng/webgl-msdf@0.1.59) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/webgl-msdf - - - - - -## [0.1.58](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.57...@thi.ng/webgl-msdf@0.1.58) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/webgl-msdf - - - - - -## [0.1.57](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.56...@thi.ng/webgl-msdf@0.1.57) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/webgl-msdf - - - - - -## [0.1.56](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.55...@thi.ng/webgl-msdf@0.1.56) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/webgl-msdf - - - - - -## [0.1.55](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.54...@thi.ng/webgl-msdf@0.1.55) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/webgl-msdf - - - - - ## [0.1.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.9...@thi.ng/webgl-msdf@0.1.10) (2019-11-30) ### Bug Fixes diff --git a/packages/webgl-shadertoy/CHANGELOG.md b/packages/webgl-shadertoy/CHANGELOG.md index 66b0e51bdd..5d29c77e65 100644 --- a/packages/webgl-shadertoy/CHANGELOG.md +++ b/packages/webgl-shadertoy/CHANGELOG.md @@ -3,94 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.2.52](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.51...@thi.ng/webgl-shadertoy@0.2.52) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/webgl-shadertoy - - - - - -## [0.2.51](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.50...@thi.ng/webgl-shadertoy@0.2.51) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/webgl-shadertoy - - - - - -## [0.2.50](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.49...@thi.ng/webgl-shadertoy@0.2.50) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/webgl-shadertoy - - - - - -## [0.2.49](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.48...@thi.ng/webgl-shadertoy@0.2.49) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/webgl-shadertoy - - - - - -## [0.2.48](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.47...@thi.ng/webgl-shadertoy@0.2.48) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/webgl-shadertoy - - - - - -## [0.2.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.46...@thi.ng/webgl-shadertoy@0.2.47) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/webgl-shadertoy - - - - - -## [0.2.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.45...@thi.ng/webgl-shadertoy@0.2.46) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/webgl-shadertoy - - - - - -## [0.2.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.44...@thi.ng/webgl-shadertoy@0.2.45) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/webgl-shadertoy - - - - - -## [0.2.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.43...@thi.ng/webgl-shadertoy@0.2.44) (2020-08-20) - -**Note:** Version bump only for package @thi.ng/webgl-shadertoy - - - - - -## [0.2.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.42...@thi.ng/webgl-shadertoy@0.2.43) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/webgl-shadertoy - - - - - -## [0.2.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.41...@thi.ng/webgl-shadertoy@0.2.42) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/webgl-shadertoy - - - - - # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.1.4...@thi.ng/webgl-shadertoy@0.2.0) (2020-02-25) diff --git a/packages/webgl/CHANGELOG.md b/packages/webgl/CHANGELOG.md index f219269f7f..7d3e592341 100644 --- a/packages/webgl/CHANGELOG.md +++ b/packages/webgl/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [3.3.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@3.3.7...@thi.ng/webgl@3.3.8) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/webgl - - - - - -## [3.3.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@3.3.6...@thi.ng/webgl@3.3.7) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/webgl - - - - - -## [3.3.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@3.3.5...@thi.ng/webgl@3.3.6) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/webgl - - - - - -## [3.3.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@3.3.4...@thi.ng/webgl@3.3.5) (2020-10-19) - -**Note:** Version bump only for package @thi.ng/webgl - - - - - -## [3.3.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@3.3.3...@thi.ng/webgl@3.3.4) (2020-10-03) - -**Note:** Version bump only for package @thi.ng/webgl - - - - - -## [3.3.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@3.3.2...@thi.ng/webgl@3.3.3) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/webgl - - - - - -## [3.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@3.3.1...@thi.ng/webgl@3.3.2) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/webgl - - - - - -## [3.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@3.3.0...@thi.ng/webgl@3.3.1) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/webgl - - - - - # [3.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@3.2.1...@thi.ng/webgl@3.3.0) (2020-08-20) @@ -78,14 +14,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline -## [3.2.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@3.2.0...@thi.ng/webgl@3.2.1) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/webgl - - - - - # [3.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@3.1.1...@thi.ng/webgl@3.2.0) (2020-08-16) diff --git a/packages/zipper/CHANGELOG.md b/packages/zipper/CHANGELOG.md index 0c6de3d323..7dc5672619 100644 --- a/packages/zipper/CHANGELOG.md +++ b/packages/zipper/CHANGELOG.md @@ -3,70 +3,6 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. -## [0.1.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/zipper@0.1.28...@thi.ng/zipper@0.1.29) (2020-12-07) - -**Note:** Version bump only for package @thi.ng/zipper - - - - - -## [0.1.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/zipper@0.1.27...@thi.ng/zipper@0.1.28) (2020-11-26) - -**Note:** Version bump only for package @thi.ng/zipper - - - - - -## [0.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/zipper@0.1.26...@thi.ng/zipper@0.1.27) (2020-11-24) - -**Note:** Version bump only for package @thi.ng/zipper - - - - - -## [0.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/zipper@0.1.25...@thi.ng/zipper@0.1.26) (2020-09-22) - -**Note:** Version bump only for package @thi.ng/zipper - - - - - -## [0.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/zipper@0.1.24...@thi.ng/zipper@0.1.25) (2020-09-13) - -**Note:** Version bump only for package @thi.ng/zipper - - - - - -## [0.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/zipper@0.1.23...@thi.ng/zipper@0.1.24) (2020-08-28) - -**Note:** Version bump only for package @thi.ng/zipper - - - - - -## [0.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/zipper@0.1.22...@thi.ng/zipper@0.1.23) (2020-08-17) - -**Note:** Version bump only for package @thi.ng/zipper - - - - - -## [0.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/zipper@0.1.21...@thi.ng/zipper@0.1.22) (2020-08-16) - -**Note:** Version bump only for package @thi.ng/zipper - - - - - # 0.1.0 (2019-11-30) ### Features From be1b615b65e3779fea5f2c57010d2b8a26d77217 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 16:58:12 +0000 Subject: [PATCH 103/107] refactor(dsp): update spectrumPow() arg order - swap `window` & `n` args, since `window` more likely to be provided --- packages/dsp/src/fft/fft.ts | 4 ++-- packages/dsp/test/fft.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/dsp/src/fft/fft.ts b/packages/dsp/src/fft/fft.ts index b190b47b94..0917e4cc24 100644 --- a/packages/dsp/src/fft/fft.ts +++ b/packages/dsp/src/fft/fft.ts @@ -365,15 +365,15 @@ export const spectrumMag = ( * * @param complex * @param db - * @param n * @param window + * @param n * @param out */ export const spectrumPow = ( complex: ComplexArray, db = false, - n = complex[0].length / 2, window: number | NumericArray = 2 / complex[0].length, + n = complex[0].length / 2, out: NumericArray = [] ) => { const [real, img] = complex; diff --git a/packages/dsp/test/fft.ts b/packages/dsp/test/fft.ts index 6e07e88775..ba83503407 100644 --- a/packages/dsp/test/fft.ts +++ b/packages/dsp/test/fft.ts @@ -75,8 +75,8 @@ describe("fft", () => { const norm = normalizeFFT(copyComplex(fwd), win); assert(eqDelta(spectrumMag(norm)[I], A)); - assert(eqDelta(spectrumPow(norm, false, N / 2, 1)[I], A / 2)); - assert(eqDelta(spectrumPow(norm, true, N / 2, 1)[I], magDb(A))); + assert(eqDelta(spectrumPow(norm, false, 1)[I], A / 2)); + assert(eqDelta(spectrumPow(norm, true, 1)[I], magDb(A))); assert(eqDelta(spectrumPhase(norm)[I], (1 / 12) * TAU)); }); }); From 262e72787e77f8bb7fbe40ea961f44926f99c295 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 17:21:29 +0000 Subject: [PATCH 104/107] build: fix clean command in various pkgs --- package.json | 1 + packages/associative/package.json | 2 +- packages/dsp/package.json | 2 +- packages/dynvar/package.json | 2 +- packages/ecs/package.json | 2 +- packages/geom-splines/package.json | 2 +- packages/geom/package.json | 2 +- packages/hdom-components/package.json | 2 +- packages/hiccup-carbon-icons/package.json | 2 +- packages/matrices/package.json | 2 +- packages/random/package.json | 2 +- packages/rstream-graph/package.json | 2 +- packages/rstream-log/package.json | 2 +- packages/viz/package.json | 2 +- 14 files changed, 14 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 3d19d8109c..f9a4dd155f 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "build:release": "yarn bootstrap && lerna run build:release --sort", "build:es6only": "lerna run clean && lerna run build:es6 --sort", "build:check": "lerna run build:check", + "clean": "lerna run clean", "cover": "lerna run cover", "doc": "lerna run doc", "doc:readme": "lerna run doc:readme", diff --git a/packages/associative/package.json b/packages/associative/package.json index 4d90acfa02..1c4ccea1d9 100644 --- a/packages/associative/package.json +++ b/packages/associative/package.json @@ -31,7 +31,7 @@ "build:check": "tsc --isolatedModules --noEmit", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib internal", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", diff --git a/packages/dsp/package.json b/packages/dsp/package.json index 23229e74ab..3773e14bdf 100644 --- a/packages/dsp/package.json +++ b/packages/dsp/package.json @@ -31,7 +31,7 @@ "build:check": "tsc --isolatedModules --noEmit", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib comp gen osc proc util", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib comp fft gen osc proc util", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", diff --git a/packages/dynvar/package.json b/packages/dynvar/package.json index 83cbd85dc4..2616107b7b 100644 --- a/packages/dynvar/package.json +++ b/packages/dynvar/package.json @@ -31,7 +31,7 @@ "build:check": "tsc --isolatedModules --noEmit", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib api decorators mixins", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", diff --git a/packages/ecs/package.json b/packages/ecs/package.json index aad607cfb5..010de60f51 100644 --- a/packages/ecs/package.json +++ b/packages/ecs/package.json @@ -31,7 +31,7 @@ "build:check": "tsc --isolatedModules --noEmit", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib caches components groups", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", diff --git a/packages/geom-splines/package.json b/packages/geom-splines/package.json index 1de0d0e727..7f08dd1309 100644 --- a/packages/geom-splines/package.json +++ b/packages/geom-splines/package.json @@ -31,7 +31,7 @@ "build:check": "tsc --isolatedModules --noEmit", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib internal", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", diff --git a/packages/geom/package.json b/packages/geom/package.json index 2e191b1d7c..4e499f6e44 100644 --- a/packages/geom/package.json +++ b/packages/geom/package.json @@ -31,7 +31,7 @@ "build:check": "tsc --isolatedModules --noEmit", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib ctors internal ops", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib api ctors internal ops", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", diff --git a/packages/hdom-components/package.json b/packages/hdom-components/package.json index 3346158c69..1d4f5336de 100644 --- a/packages/hdom-components/package.json +++ b/packages/hdom-components/package.json @@ -31,7 +31,7 @@ "build:check": "tsc --isolatedModules --noEmit", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib utils", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", diff --git a/packages/hiccup-carbon-icons/package.json b/packages/hiccup-carbon-icons/package.json index e0af1b5b90..2b44ac9dbe 100644 --- a/packages/hiccup-carbon-icons/package.json +++ b/packages/hiccup-carbon-icons/package.json @@ -33,7 +33,7 @@ "build:sheet": "ts-node -P tools/tsconfig.json tools/contact-sheet.ts", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.map *.d.ts .nyc_output build coverage doc lib", + "clean": "rimraf *.js *.map *.d.ts .nyc_output build coverage doc lib utils", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", diff --git a/packages/matrices/package.json b/packages/matrices/package.json index a1acaff0b5..852755a57d 100644 --- a/packages/matrices/package.json +++ b/packages/matrices/package.json @@ -31,7 +31,7 @@ "build:check": "tsc --isolatedModules --noEmit", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib internal", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", diff --git a/packages/random/package.json b/packages/random/package.json index 977f30b439..37233d62d3 100644 --- a/packages/random/package.json +++ b/packages/random/package.json @@ -31,7 +31,7 @@ "build:check": "tsc --isolatedModules --noEmit", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib distributions", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", diff --git a/packages/rstream-graph/package.json b/packages/rstream-graph/package.json index af553f5495..b98721cd29 100644 --- a/packages/rstream-graph/package.json +++ b/packages/rstream-graph/package.json @@ -31,7 +31,7 @@ "build:check": "tsc --isolatedModules --noEmit", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib nodes", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", diff --git a/packages/rstream-log/package.json b/packages/rstream-log/package.json index fd66634852..bdf677e8bf 100644 --- a/packages/rstream-log/package.json +++ b/packages/rstream-log/package.json @@ -31,7 +31,7 @@ "build:check": "tsc --isolatedModules --noEmit", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib output xform", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", diff --git a/packages/viz/package.json b/packages/viz/package.json index f0da1b3d83..c678ddd1ca 100644 --- a/packages/viz/package.json +++ b/packages/viz/package.json @@ -31,7 +31,7 @@ "build:check": "tsc --isolatedModules --noEmit", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib plot", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib axis plot", "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", "doc": "node_modules/.bin/typedoc --mode modules --out doc --theme ../../tools/doc/typedoc-theme src", From eb4ca1587d06f8bd47883f16c270f0309eb18eb2 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 17:33:52 +0000 Subject: [PATCH 105/107] docs: update main readme (pkg list) --- README.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f1ee46174b..bb1ef6e5fd 100644 --- a/README.md +++ b/README.md @@ -13,10 +13,13 @@ > the composer of. Geared towards versatility, not any specific type of music." > — [@loganpowell](https://twitter.com/logantpowell/status/1186334119812304901) via Twitter -Mono-repository for 142+ thi.ng TypeScript/ES6 projects, a wide +Mono-repository for 144+ thi.ng TypeScript/ES6 projects, a wide collection of largely data transformation oriented packages and building blocks for (non-exhaustive list of topics): +**Please visit [thi.ng](https://thi.ng) for additional information & topic based +search of packages relevant to your use cases...** + - Functional programming (composition, memoization, transducers, multi-methods) - Data structures & data transformations for wide range of use cases (list, sets, maps, joins, spatial indexing, clocks) @@ -119,12 +122,18 @@ to update your local version. ## Projects -### New / unreleased packages in development + + +### Latest additions (2020-12-22) -- [@thi.ng/fuzzy](https://github.com/thi-ng/umbrella/tree/develop/packages/fuzzy) - Fuzzy logic ops & rule inference engine +| Project | Version | Changelog | Description | +|---------------------------------------------|-------------------------------------------------------------------------------------------------------------------|------------------------------------------------|--------------------------------------------------| +| [`@thi.ng/fuzzy`](./packages/fuzzy) | [![version](https://img.shields.io/npm/v/@thi.ng/fuzzy.svg)](https://www.npmjs.com/package/@thi.ng/fuzzy) | [changelog](./packages/fuzzy/CHANGELOG.md) | Fuzzy logic primitives & rule inference engine | +| [`@thi.ng/fuzzy-viz`](./packages/fuzzy-viz) | [![version](https://img.shields.io/npm/v/@thi.ng/fuzzy-viz.svg)](https://www.npmjs.com/package/@thi.ng/fuzzy-viz) | [changelog](./packages/fuzzy-viz/CHANGELOG.md) | Visualization, instrumentation for @thi.ng/fuzzy | +| [`@thi.ng/vclock`](./packages/vclock) | [![version](https://img.shields.io/npm/v/@thi.ng/vclock.svg)](https://www.npmjs.com/package/@thi.ng/vclock) | [changelog](./packages/vclock/CHANGELOG.md) | Vector clock functions / comparators | ### Fundamentals @@ -143,6 +152,7 @@ feature or `develop` branches) | [`@thi.ng/ecs`](./packages/ecs) | [![version](https://img.shields.io/npm/v/@thi.ng/ecs.svg)](https://www.npmjs.com/package/@thi.ng/ecs) | [changelog](./packages/ecs/CHANGELOG.md) | Entity-Component System | | [`@thi.ng/equiv`](./packages/equiv) | [![version](https://img.shields.io/npm/v/@thi.ng/equiv.svg)](https://www.npmjs.com/package/@thi.ng/equiv) | [changelog](./packages/equiv/CHANGELOG.md) | Deep value equivalence checking | | [`@thi.ng/errors`](./packages/errors) | [![version](https://img.shields.io/npm/v/@thi.ng/errors.svg)](https://www.npmjs.com/package/@thi.ng/errors) | [changelog](./packages/errors/CHANGELOG.md) | Custom error types | +| [`@thi.ng/fuzzy`](./packages/fuzzy) | [![version](https://img.shields.io/npm/v/@thi.ng/fuzzy.svg)](https://www.npmjs.com/package/@thi.ng/fuzzy) | [changelog](./packages/fuzzy/CHANGELOG.md) | Fuzzy logic primitives & rule inference engine | | [`@thi.ng/hex`](./packages/hex) | [![version](https://img.shields.io/npm/v/@thi.ng/hex.svg)](https://www.npmjs.com/package/@thi.ng/hex) | [changelog](./packages/hex/CHANGELOG.md) | Hex value formatters for U4-64 words | | [`@thi.ng/math`](./packages/math) | [![version](https://img.shields.io/npm/v/@thi.ng/math.svg)](https://www.npmjs.com/package/@thi.ng/math) | [changelog](./packages/math/CHANGELOG.md) | Assorted common math functions & utilities | | [`@thi.ng/memoize`](./packages/memoize) | [![version](https://img.shields.io/npm/v/@thi.ng/memoize.svg)](https://www.npmjs.com/package/@thi.ng/memoize) | [changelog](./packages/memoize/CHANGELOG.md) | Function memoization w/ customizable caching | @@ -154,7 +164,6 @@ feature or `develop` branches) | [`@thi.ng/random`](./packages/random) | [![version](https://img.shields.io/npm/v/@thi.ng/random.svg)](https://www.npmjs.com/package/@thi.ng/random) | [changelog](./packages/random/CHANGELOG.md) | Seedable PRNG implementations w/ unified API | | [`@thi.ng/strings`](./packages/strings) | [![version](https://img.shields.io/npm/v/@thi.ng/strings.svg)](https://www.npmjs.com/package/@thi.ng/strings) | [changelog](./packages/strings/CHANGELOG.md) | Higher-order string formatting utils | | [`@thi.ng/system`](./packages/system) | [![version](https://img.shields.io/npm/v/@thi.ng/system.svg)](https://www.npmjs.com/package/@thi.ng/system) | [changelog](./packages/system/CHANGELOG.md) | Minimal life cycle container for stateful app components | - ### Iterator, stream & sequence processing | Project | Version | Changelog | Description | @@ -244,6 +253,7 @@ feature or `develop` branches) | [`@thi.ng/color`](./packages/color) | [![version](https://img.shields.io/npm/v/@thi.ng/color.svg)](https://www.npmjs.com/package/@thi.ng/color) | [changelog](./packages/color/CHANGELOG.md) | Color conversions, gradients | | [`@thi.ng/dgraph-dot`](./packages/dgraph-dot) | [![version](https://img.shields.io/npm/v/@thi.ng/dgraph-dot.svg)](https://www.npmjs.com/package/@thi.ng/dgraph-dot) | [changelog](./packages/dgraph-dot/CHANGELOG.md) | Dependency graph -> Graphviz | | [`@thi.ng/dot`](./packages/dot) | [![version](https://img.shields.io/npm/v/@thi.ng/dot.svg)](https://www.npmjs.com/package/@thi.ng/dot) | [changelog](./packages/dot/CHANGELOG.md) | Graphviz DOM & export | +| [`@thi.ng/fuzzy-viz`](./packages/fuzzy-viz) | [![version](https://img.shields.io/npm/v/@thi.ng/fuzzy-viz.svg)](https://www.npmjs.com/package/@thi.ng/fuzzy-viz) | [changelog](./packages/fuzzy-viz/CHANGELOG.md) | Visualization, instrumentation for @thi.ng/fuzzy | | [`@thi.ng/geom`](./packages/geom) | [![version](https://img.shields.io/npm/v/@thi.ng/geom.svg)](https://www.npmjs.com/package/@thi.ng/geom) | [changelog](./packages/geom/CHANGELOG.md) | 2D only geometry types & ops | | [`@thi.ng/geom-accel`](./packages/geom-accel) | [![version](https://img.shields.io/npm/v/@thi.ng/geom-accel.svg)](https://www.npmjs.com/package/@thi.ng/geom-accel) | [changelog](./packages/geom-accel/CHANGELOG.md) | Spatial indexing data structures | | [`@thi.ng/geom-api`](./packages/geom-api) | [![version](https://img.shields.io/npm/v/@thi.ng/geom-api.svg)](https://www.npmjs.com/package/@thi.ng/geom-api) | [changelog](./packages/geom-api/CHANGELOG.md) | Shared types & interfaces | From c1bf1175a3cc16e673a35f01a819cae5d7e4f6b0 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 17:43:11 +0000 Subject: [PATCH 106/107] docs: update readmes --- packages/adjacency/README.md | 2 +- packages/color/README.md | 6 ++--- packages/diff/README.md | 23 ++++--------------- packages/dsp/README.md | 10 ++++++++- packages/geom-api/README.md | 2 +- packages/geom-poly-utils/README.md | 4 ++-- packages/geom/README.md | 4 ++-- packages/gp/README.md | 2 +- packages/hdiff/README.md | 2 +- packages/hdom-canvas/README.md | 2 +- packages/hdom/README.md | 2 +- packages/math/README.md | 2 +- packages/pointfree-lang/README.md | 2 +- packages/rstream-gestures/README.md | 18 +++++++-------- packages/transducers-binary/README.md | 2 +- packages/transducers-patch/README.md | 32 +++++++++++++-------------- packages/transducers/README.md | 14 ++++++------ 17 files changed, 61 insertions(+), 68 deletions(-) diff --git a/packages/adjacency/README.md b/packages/adjacency/README.md index 9845e5e261..7e0fc91ec6 100644 --- a/packages/adjacency/README.md +++ b/packages/adjacency/README.md @@ -42,7 +42,7 @@ yarn add @thi.ng/adjacency ``` -Package sizes (gzipped, pre-treeshake): ESM: 1.81 KB / CJS: 1.88 KB / UMD: 1.98 KB +Package sizes (gzipped, pre-treeshake): ESM: 1.74 KB / CJS: 1.82 KB / UMD: 1.92 KB ## Dependencies diff --git a/packages/color/README.md b/packages/color/README.md index 3cdc53cb2f..a8811f80dc 100644 --- a/packages/color/README.md +++ b/packages/color/README.md @@ -194,7 +194,7 @@ yarn add @thi.ng/color ``` -Package sizes (gzipped, pre-treeshake): ESM: 7.21 KB / CJS: 7.58 KB / UMD: 7.16 KB +Package sizes (gzipped, pre-treeshake): ESM: 7.08 KB / CJS: 7.44 KB / UMD: 7.00 KB ## Dependencies @@ -239,7 +239,7 @@ const b = col.parseCss("hsla(30,100%,50%,0.75)"); // route #3: convert() multi-method: CSS -> RGBA -> HSVA // (see convert.ts) -const c = col.convert("rgb(0,255,255)", col.ColorMode.HSVA, col.ColorMode.CSS); +const c = col.convert("rgb(0,255,255)", "hsv", "css"); // [ 0.4999999722222268, 0.9999990000010001, 1, 1 ] // route #4: direct conversion RGBA -> HSLA -> CSS @@ -249,7 +249,7 @@ col.hslaCss(col.rgbaHsla([], [1, 0.5, 0.5, 1])) // "hsl(0.00,100.00%,75.00%)" col.luminance(col.css("white")) -col.luminance(0xffffff, col.ColorMode.INT32) +col.luminance(0xffffff, "int") // 1 // apply color matrix (RGBA only) diff --git a/packages/diff/README.md b/packages/diff/README.md index 1fd9f411f6..74315bd5de 100644 --- a/packages/diff/README.md +++ b/packages/diff/README.md @@ -14,8 +14,6 @@ This project is part of the - [Installation](#installation) - [Dependencies](#dependencies) - [API](#api) -- [Breaking changes](#breaking-changes) - - [2.0.0](#200) - [Authors](#authors) - [License](#license) @@ -43,7 +41,7 @@ yarn add @thi.ng/diff ``` -Package sizes (gzipped, pre-treeshake): ESM: 1.25 KB / CJS: 1.30 KB / UMD: 1.33 KB +Package sizes (gzipped, pre-treeshake): ESM: 1.15 KB / CJS: 1.21 KB / UMD: 1.24 KB ## Dependencies @@ -55,9 +53,10 @@ Package sizes (gzipped, pre-treeshake): ESM: 1.25 KB / CJS: 1.30 KB / UMD: 1.33 [Generated API docs](https://docs.thi.ng/umbrella/diff/) ```ts -import { diffArray, DiffMode } from "@thi.ng/diff"; +import { diffArray } from "@thi.ng/diff"; -diffArray([1, 2, 3], [1, 2, 4], DiffMode.FULL); +// diff w/ default diff mode +diffArray([1, 2, 3], [1, 2, 4], "full"); // { // distance: 2, // adds: { 2: 4 }, @@ -67,20 +66,6 @@ diffArray([1, 2, 3], [1, 2, 4], DiffMode.FULL); // } ``` -## Breaking changes - -### 2.0.0 - -The linear edit logs of both `diffArray` and `diffObject` are now -returned as flat arrays, with each log entry consisting of 3 or 2 -successive array items. This is to avoid allocation of various small -arrays. - -The order of optional args to both functions has been swapped to: - -- `diffArray(old, new, mode?, equiv?)` -- `diffObject(old, new, mode?, equiv?)` - ## Authors Karsten Schmidt diff --git a/packages/dsp/README.md b/packages/dsp/README.md index d625ead9c9..0c94d17291 100644 --- a/packages/dsp/README.md +++ b/packages/dsp/README.md @@ -72,7 +72,7 @@ yarn add @thi.ng/dsp ``` -Package sizes (gzipped, pre-treeshake): ESM: 6.75 KB / CJS: 7.22 KB / UMD: 6.73 KB +Package sizes (gzipped, pre-treeshake): ESM: 6.98 KB / CJS: 7.51 KB / UMD: 6.94 KB ## Dependencies @@ -515,19 +515,27 @@ Desmos](https://www.desmos.com/calculator/lkyf2ag3ta) to experiment. - `scaleFFT()` - `complexArray()` - `conjugate()` +- `powerSumSquared()` +- `powerMeanSquared()` +- `powerTimeIntegral()` - `spectrumMag()` - `spectrumPow()` (optionally as dBFS) - `spectrumPhase()` - `binFreq()` - `freqBin()` - `fftFreq()` +- `integralT()` / `integralTSquared()` +- `integralF()` / `integralFSquared()` #### Window functions [Source](https://github.com/thi-ng/umbrella/blob/develop/packages/dsp/src/fft/window.ts) - `window()` +- `applyWindow()` - `windowRect()` +- `windowBartlett()` +- `windowWelch()` - `windowSin()` - `windowSinPow()` - `windowLanczos()` diff --git a/packages/geom-api/README.md b/packages/geom-api/README.md index 8b54a7fe65..86875e5c83 100644 --- a/packages/geom-api/README.md +++ b/packages/geom-api/README.md @@ -41,7 +41,7 @@ yarn add @thi.ng/geom-api ``` -Package sizes (gzipped, pre-treeshake): ESM: 618 bytes / CJS: 643 bytes / UMD: 791 bytes +Package sizes (gzipped, pre-treeshake): ESM: 287 bytes / CJS: 318 bytes / UMD: 441 bytes ## Dependencies diff --git a/packages/geom-poly-utils/README.md b/packages/geom-poly-utils/README.md index d8376f7095..da893dfba4 100644 --- a/packages/geom-poly-utils/README.md +++ b/packages/geom-poly-utils/README.md @@ -19,7 +19,7 @@ This project is part of the ## About -2D polygon / triangle analysis & processing utilities. +2D polygon/polyline analysis & processing utilities. - signed 2D polygon & triangle area - triangle barycentric coord conversion @@ -55,7 +55,7 @@ yarn add @thi.ng/geom-poly-utils ``` -Package sizes (gzipped, pre-treeshake): ESM: 1.17 KB / CJS: 1.24 KB / UMD: 1.30 KB +Package sizes (gzipped, pre-treeshake): ESM: 1.44 KB / CJS: 1.51 KB / UMD: 1.57 KB ## Dependencies diff --git a/packages/geom/README.md b/packages/geom/README.md index 2066982aa2..554e0b5023 100644 --- a/packages/geom/README.md +++ b/packages/geom/README.md @@ -48,7 +48,7 @@ themselves too): - [@thi.ng/geom-io-obj](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-io-obj) - Wavefront OBJ parser (& exporter soon) - [@thi.ng/geom-isec](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-isec) - 2D/3D shape intersection checks - [@thi.ng/geom-isoline](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-isoline) - Fast 2D contour line extraction / generation -- [@thi.ng/geom-poly-utils](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-poly-utils) - 2D polygon / triangle analysis & processing utilities +- [@thi.ng/geom-poly-utils](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-poly-utils) - 2D polygon/polyline analysis & processing utilities - [@thi.ng/geom-resample](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-resample) - Customizable nD polyline interpolation, re-sampling, splitting & nearest point computation - [@thi.ng/geom-splines](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-splines) - nD cubic & quadratic curve analysis, conversion, interpolation, splitting - [@thi.ng/geom-subdiv-curve](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-subdiv-curve) - Freely customizable, iterative nD subdivision curves for open / closed geometries @@ -75,7 +75,7 @@ yarn add @thi.ng/geom ``` -Package sizes (gzipped, pre-treeshake): ESM: 10.49 KB / CJS: 10.82 KB / UMD: 10.16 KB +Package sizes (gzipped, pre-treeshake): ESM: 10.27 KB / CJS: 10.50 KB / UMD: 9.93 KB ## Dependencies diff --git a/packages/gp/README.md b/packages/gp/README.md index 89111ffab6..a193031141 100644 --- a/packages/gp/README.md +++ b/packages/gp/README.md @@ -77,7 +77,7 @@ yarn add @thi.ng/gp ``` -Package sizes (gzipped, pre-treeshake): ESM: 1.25 KB / CJS: 1.30 KB / UMD: 1.42 KB +Package sizes (gzipped, pre-treeshake): ESM: 1.20 KB / CJS: 1.25 KB / UMD: 1.36 KB ## Dependencies diff --git a/packages/hdiff/README.md b/packages/hdiff/README.md index 13c69b07a3..04f0d62c78 100644 --- a/packages/hdiff/README.md +++ b/packages/hdiff/README.md @@ -49,7 +49,7 @@ yarn add @thi.ng/hdiff ``` -Package sizes (gzipped, pre-treeshake): ESM: 1.58 KB / CJS: 1.65 KB / UMD: 1.70 KB +Package sizes (gzipped, pre-treeshake): ESM: 1.57 KB / CJS: 1.64 KB / UMD: 1.68 KB ### CLI installation & usage diff --git a/packages/hdom-canvas/README.md b/packages/hdom-canvas/README.md index ea83dd44d4..9d255d8ee3 100644 --- a/packages/hdom-canvas/README.md +++ b/packages/hdom-canvas/README.md @@ -72,7 +72,7 @@ yarn add @thi.ng/hdom-canvas ``` -Package sizes (gzipped, pre-treeshake): ESM: 913 bytes / CJS: 982 bytes / UMD: 1.06 KB +Package sizes (gzipped, pre-treeshake): ESM: 897 bytes / CJS: 967 bytes / UMD: 1.05 KB ## Dependencies diff --git a/packages/hdom/README.md b/packages/hdom/README.md index 5c4162a7ab..31f46b3a3a 100644 --- a/packages/hdom/README.md +++ b/packages/hdom/README.md @@ -142,7 +142,7 @@ yarn install yarn start ``` -Package sizes (gzipped, pre-treeshake): ESM: 3.65 KB / CJS: 3.75 KB / UMD: 3.68 KB +Package sizes (gzipped, pre-treeshake): ESM: 3.63 KB / CJS: 3.73 KB / UMD: 3.66 KB ## Dependencies diff --git a/packages/math/README.md b/packages/math/README.md index ef54087a82..30644fe8b7 100644 --- a/packages/math/README.md +++ b/packages/math/README.md @@ -51,7 +51,7 @@ yarn add @thi.ng/math ``` -Package sizes (gzipped, pre-treeshake): ESM: 3.60 KB / CJS: 4.16 KB / UMD: 3.43 KB +Package sizes (gzipped, pre-treeshake): ESM: 3.56 KB / CJS: 4.13 KB / UMD: 3.40 KB ## Dependencies diff --git a/packages/pointfree-lang/README.md b/packages/pointfree-lang/README.md index a6ad724b6c..0a0c044fbe 100644 --- a/packages/pointfree-lang/README.md +++ b/packages/pointfree-lang/README.md @@ -80,7 +80,7 @@ yarn add @thi.ng/pointfree-lang ``` -Package sizes (gzipped, pre-treeshake): ESM: 5.30 KB / CJS: 5.30 KB / UMD: 5.21 KB +Package sizes (gzipped, pre-treeshake): ESM: 5.00 KB / CJS: 5.00 KB / UMD: 4.94 KB ## Dependencies diff --git a/packages/rstream-gestures/README.md b/packages/rstream-gestures/README.md index ae9d292eb3..cfe5400837 100644 --- a/packages/rstream-gestures/README.md +++ b/packages/rstream-gestures/README.md @@ -54,7 +54,7 @@ yarn add @thi.ng/rstream-gestures ``` -Package sizes (gzipped, pre-treeshake): ESM: 1.22 KB / CJS: 1.27 KB / UMD: 1.36 KB +Package sizes (gzipped, pre-treeshake): ESM: 1.13 KB / CJS: 1.18 KB / UMD: 1.28 KB ## Dependencies @@ -93,11 +93,11 @@ A selection: All native events are abstracted into one of the following event types: -- `START` - mousedown / touchstart -- `MOVE` - movemove -- `DRAG` - mousemove (whilst dragging) / touchmove -- `END` - mouseup / touchend / touchcancel -- `ZOOM` - wheel +- `move` - movemove +- `start` - mousedown / touchstart +- `drag` - mousemove (whilst dragging) / touchmove +- `end` - mouseup / touchend / touchcancel +- `zoom` - wheel ### GestureEvent @@ -121,7 +121,7 @@ objects of: ```ts // example mouse gesture event { - "type": 2, // GestureType.DRAG + "type": "drag" "event": MouseEvent, "pos": [254, 169], "active": [ @@ -148,7 +148,7 @@ config options for further details. ### Basic usage ```ts -import { GestureType, gestureStream } from "@thi.ng/rstream-gestures"; +import { gestureStream } from "@thi.ng/rstream-gestures"; import { trace } from "@thi.ng/rstream"; import { comp, dedupe, filter, map, pluck } from "@thi.ng/transducers"; @@ -167,7 +167,7 @@ gestures.subscribe( gestures.subscribe( trace("distance"), comp( - filter((e) => e.type === GestureType.DRAG), + filter((e) => e.type === "drag"), map((e) => e.active.map((g) => Math.hypot(...g.delta))) ) ); diff --git a/packages/transducers-binary/README.md b/packages/transducers-binary/README.md index d16e5678c8..48a1cbadcd 100644 --- a/packages/transducers-binary/README.md +++ b/packages/transducers-binary/README.md @@ -61,7 +61,7 @@ yarn add @thi.ng/transducers-binary ``` -Package sizes (gzipped, pre-treeshake): ESM: 2.86 KB / CJS: 3.01 KB / UMD: 2.91 KB +Package sizes (gzipped, pre-treeshake): ESM: 2.64 KB / CJS: 2.79 KB / UMD: 2.69 KB ## Dependencies diff --git a/packages/transducers-patch/README.md b/packages/transducers-patch/README.md index c90a7bb98e..3b6643e267 100644 --- a/packages/transducers-patch/README.md +++ b/packages/transducers-patch/README.md @@ -48,7 +48,7 @@ yarn add @thi.ng/transducers-patch ``` -Package sizes (gzipped, pre-treeshake): ESM: 565 bytes / CJS: 611 bytes / UMD: 721 bytes +Package sizes (gzipped, pre-treeshake): ESM: 484 bytes / CJS: 539 bytes / UMD: 644 bytes ## Dependencies @@ -67,7 +67,7 @@ TODO ### Basic usage ```ts -import { Patch, patchArray, patchObj } from "@thi.ng/transducers-patch"; +import { patchArray, patchObj } from "@thi.ng/transducers-patch"; import { reduce, reductions } from "@thi.ng/transducers"; // flat array editing @@ -79,13 +79,13 @@ patchArray( // edits [ // set idx #0 to 42 - [Patch.SET, 0, 42], + ["set", 0, 42], // update idx #1 (here: times 10) - [Patch.UPDATE, 1, (x, n) => x * n, 10], + ["update", 1, (x, n) => x * n, 10], // insert values @ idx #2 - [Patch.INSERT, 2, [10, 11]], + ["insert", 2, [10, 11]], // delete (remove) idx #3 - [Patch.DELETE, 3] + ["delete", 3] ] ); // [ 42, 20, 10, 3 ] @@ -97,10 +97,10 @@ reduce( // original array (wrapped here only for `reductions`) [[1, 2, 3]], [ - [Patch.INSERT, 0, [10, 11]], - [Patch.UPDATE, 1, (x, n) => x * n, 10], - [Patch.DELETE, 3], - [Patch.SET, 2, 200] + ["insert", 0, [10, 11]], + ["update", 1, (x, n) => x * n, 10], + ["delete", 3], + ["set", 2, 200] ] ); // [ @@ -117,9 +117,9 @@ reduce( reductions(patchObj()), [{ x: 23 }], [ - [Patch.SET, ["a", "b"], 1], - [Patch.UPDATE, ["a", "b"], (x, n) => x + n, 10], - [Patch.DELETE, ["x"]] + ["set", ["a", "b"], 1], + ["update", ["a", "b"], (x, n) => x + n, 10], + ["delete", ["x"]] ] ), // [ @@ -151,13 +151,13 @@ export const state = stream().transform( // add debug subscription state.subscribe(trace("state: ")); -state.next([Patch.SET, "a.b", 1]); +state.next(["set", "a.b", 1]); // state: { x: 23, a: { b: 1 } } -state.next([Patch.UPDATE, ["a", "b"], (x, n)=> x + n, 10]); +state.next(["update", ["a", "b"], (x, n)=> x + n, 10]); // state: { x: 23, a: { b: 11 } } -state.next([Patch.DELETE, "x"]); +state.next(["delete", "x"]); // state: { a: { b: 11 } } ``` diff --git a/packages/transducers/README.md b/packages/transducers/README.md index 9c7f71970b..8a499f2b89 100644 --- a/packages/transducers/README.md +++ b/packages/transducers/README.md @@ -89,14 +89,14 @@ will return a reduced result of the given input iterable. ### 7.0.0 release -Thanks to a [PR](https://github.com/thi-ng/umbrella/pull/223) and -[related issue](https://github.com/thi-ng/umbrella/issues/186) by -@gavinpc-mindgrub, various transducers functions have been fixed for the -case when they're invoked with an _empty_ string as input iterable. -Furthermore, +Thanks to a [PR](https://github.com/thi-ng/umbrella/pull/223) and [related +issue](https://github.com/thi-ng/umbrella/issues/186) by +[@gavinpc-mindgrub](https://github.com/gavinpc-mindgrub), various transducers +functions have been fixed for the case when they're invoked with an _empty_ +string as input iterable. Furthermore, [`flatten()`](https://github.com/thi-ng/umbrella/blob/develop/packages/transducers/src/xform/flatten.ts) -is _always_ treating strings as atomic values now, whereas before -top-level strings would be split into individual characters. +is _always_ treating strings as atomic values now, whereas before top-level +strings would be split into individual characters. ### 6.0.0 release From 8fed74edc94bfb65f84e8982e6724619bbfbd1d0 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 22 Dec 2020 17:45:18 +0000 Subject: [PATCH 107/107] Publish - @thi.ng/adapt-dpi@1.0.12 - @thi.ng/adjacency@0.2.0 - @thi.ng/api@6.13.5 - @thi.ng/arrays@0.8.5 - @thi.ng/associative@5.0.12 - @thi.ng/atom@4.1.25 - @thi.ng/bench@2.0.25 - @thi.ng/bencode@0.3.44 - @thi.ng/binary@2.0.20 - @thi.ng/bitfield@0.3.26 - @thi.ng/bitstream@1.1.30 - @thi.ng/cache@1.0.64 - @thi.ng/checks@2.7.12 - @thi.ng/color@2.0.0 - @thi.ng/colored-noise@0.1.7 - @thi.ng/compare@1.3.21 - @thi.ng/compose@1.4.22 - @thi.ng/csp@1.1.44 - @thi.ng/csv@0.1.3 - @thi.ng/date@0.2.4 - @thi.ng/dcons@2.3.4 - @thi.ng/defmulti@1.3.3 - @thi.ng/dgraph-dot@0.1.32 - @thi.ng/dgraph@1.3.3 - @thi.ng/diff@4.0.0 - @thi.ng/dl-asset@0.4.10 - @thi.ng/dlogic@1.0.36 - @thi.ng/dot@1.2.22 - @thi.ng/dsp-io-wav@0.1.34 - @thi.ng/dsp@3.0.0 - @thi.ng/dual-algebra@0.1.5 - @thi.ng/dynvar@0.1.28 - @thi.ng/ecs@0.4.4 - @thi.ng/egf@0.3.5 - @thi.ng/equiv@1.0.34 - @thi.ng/errors@1.2.25 - @thi.ng/fsm@2.4.30 - @thi.ng/fuzzy-viz@0.1.0 - @thi.ng/fuzzy@0.1.0 - @thi.ng/geom-accel@2.1.29 - @thi.ng/geom-api@2.0.0 - @thi.ng/geom-arc@0.3.18 - @thi.ng/geom-clip-line@1.2.14 - @thi.ng/geom-clip-poly@1.0.39 - @thi.ng/geom-closest-point@0.5.5 - @thi.ng/geom-fuzz@0.1.26 - @thi.ng/geom-hull@0.0.71 - @thi.ng/geom-io-obj@0.1.29 - @thi.ng/geom-isec@0.7.3 - @thi.ng/geom-isoline@0.1.69 - @thi.ng/geom-poly-utils@0.3.0 - @thi.ng/geom-resample@0.2.51 - @thi.ng/geom-splines@0.5.38 - @thi.ng/geom-subdiv-curve@0.1.69 - @thi.ng/geom-tessellate@0.2.52 - @thi.ng/geom-voronoi@0.2.14 - @thi.ng/geom@2.0.0 - @thi.ng/gp@0.2.0 - @thi.ng/grid-iterators@0.4.16 - @thi.ng/hdiff@0.1.20 - @thi.ng/hdom-canvas@3.0.24 - @thi.ng/hdom-components@4.0.18 - @thi.ng/hdom-mock@1.1.46 - @thi.ng/hdom@8.2.14 - @thi.ng/heaps@1.2.29 - @thi.ng/hex@0.1.2 - @thi.ng/hiccup-canvas@1.1.14 - @thi.ng/hiccup-carbon-icons@2.0.8 - @thi.ng/hiccup-css@1.1.43 - @thi.ng/hiccup-html@0.3.10 - @thi.ng/hiccup-markdown@1.2.39 - @thi.ng/hiccup-svg@3.6.6 - @thi.ng/hiccup@3.6.5 - @thi.ng/idgen@0.2.28 - @thi.ng/iges@1.1.53 - @thi.ng/imgui@0.2.46 - @thi.ng/interceptors@2.2.36 - @thi.ng/intervals@2.1.3 - @thi.ng/iterators@5.1.44 - @thi.ng/layout@0.1.26 - @thi.ng/leb128@1.0.38 - @thi.ng/lsys@0.2.66 - @thi.ng/malloc@4.2.4 - @thi.ng/math@3.0.0 - @thi.ng/matrices@0.6.38 - @thi.ng/memoize@2.1.7 - @thi.ng/mime@0.1.26 - @thi.ng/morton@2.0.29 - @thi.ng/oquery@0.2.2 - @thi.ng/parse@0.9.8 - @thi.ng/paths@4.1.11 - @thi.ng/pixel@0.4.10 - @thi.ng/pointfree-lang@1.4.18 - @thi.ng/pointfree@2.0.19 - @thi.ng/poisson@1.1.22 - @thi.ng/porter-duff@0.1.35 - @thi.ng/prefixes@0.1.9 - @thi.ng/quad-edge@0.2.27 - @thi.ng/ramp@0.1.40 - @thi.ng/random@2.1.3 - @thi.ng/range-coder@1.0.63 - @thi.ng/rdom-canvas@0.1.22 - @thi.ng/rdom-components@0.1.19 - @thi.ng/rdom@0.3.1 - @thi.ng/resolve-map@4.2.10 - @thi.ng/rle-pack@2.1.30 - @thi.ng/router@2.0.37 - @thi.ng/rstream-csp@2.0.46 - @thi.ng/rstream-dot@1.1.53 - @thi.ng/rstream-gestures@3.0.0 - @thi.ng/rstream-graph@3.2.47 - @thi.ng/rstream-log-file@0.1.68 - @thi.ng/rstream-log@3.1.53 - @thi.ng/rstream-query@1.1.53 - @thi.ng/rstream@5.0.11 - @thi.ng/sax@1.1.43 - @thi.ng/scenegraph@0.3.12 - @thi.ng/seq@0.2.28 - @thi.ng/sexpr@0.2.31 - @thi.ng/shader-ast-glsl@0.2.15 - @thi.ng/shader-ast-js@0.5.13 - @thi.ng/shader-ast-stdlib@0.5.7 - @thi.ng/shader-ast@0.7.7 - @thi.ng/simd@0.4.11 - @thi.ng/soa@0.1.42 - @thi.ng/sparse@0.1.59 - @thi.ng/strings@1.11.3 - @thi.ng/system@0.2.32 - @thi.ng/text-canvas@0.2.36 - @thi.ng/transducers-binary@0.6.0 - @thi.ng/transducers-fsm@1.1.43 - @thi.ng/transducers-hdom@2.0.75 - @thi.ng/transducers-patch@0.2.0 - @thi.ng/transducers-stats@1.1.44 - @thi.ng/transducers@7.5.3 - @thi.ng/unionstruct@1.1.28 - @thi.ng/vclock@0.1.2 - @thi.ng/vector-pools@1.0.52 - @thi.ng/vectors@4.8.3 - @thi.ng/viz@0.2.3 - @thi.ng/webgl-msdf@0.1.66 - @thi.ng/webgl-shadertoy@0.2.53 - @thi.ng/webgl@3.3.9 - @thi.ng/zipper@0.1.30 --- packages/adapt-dpi/CHANGELOG.md | 8 ++++ packages/adapt-dpi/package.json | 2 +- packages/adjacency/CHANGELOG.md | 16 +++++++ packages/adjacency/package.json | 16 +++---- packages/api/CHANGELOG.md | 8 ++++ packages/api/package.json | 2 +- packages/arrays/CHANGELOG.md | 8 ++++ packages/arrays/package.json | 14 +++--- packages/associative/CHANGELOG.md | 8 ++++ packages/associative/package.json | 18 ++++---- packages/atom/CHANGELOG.md | 8 ++++ packages/atom/package.json | 10 ++--- packages/bench/CHANGELOG.md | 8 ++++ packages/bench/package.json | 2 +- packages/bencode/CHANGELOG.md | 8 ++++ packages/bencode/package.json | 16 +++---- packages/binary/CHANGELOG.md | 8 ++++ packages/binary/package.json | 4 +- packages/bitfield/CHANGELOG.md | 8 ++++ packages/bitfield/package.json | 8 ++-- packages/bitstream/CHANGELOG.md | 8 ++++ packages/bitstream/package.json | 4 +- packages/cache/CHANGELOG.md | 8 ++++ packages/cache/package.json | 8 ++-- packages/checks/CHANGELOG.md | 8 ++++ packages/checks/package.json | 2 +- packages/color/CHANGELOG.md | 16 +++++++ packages/color/package.json | 20 ++++----- packages/colored-noise/CHANGELOG.md | 8 ++++ packages/colored-noise/package.json | 18 ++++---- packages/compare/CHANGELOG.md | 8 ++++ packages/compare/package.json | 4 +- packages/compose/CHANGELOG.md | 8 ++++ packages/compose/package.json | 6 +-- packages/csp/CHANGELOG.md | 8 ++++ packages/csp/package.json | 14 +++--- packages/csv/CHANGELOG.md | 8 ++++ packages/csv/package.json | 10 ++--- packages/date/CHANGELOG.md | 8 ++++ packages/date/package.json | 4 +- packages/dcons/CHANGELOG.md | 8 ++++ packages/dcons/package.json | 16 +++---- packages/defmulti/CHANGELOG.md | 8 ++++ packages/defmulti/package.json | 6 +-- packages/dgraph-dot/CHANGELOG.md | 8 ++++ packages/dgraph-dot/package.json | 8 ++-- packages/dgraph/CHANGELOG.md | 8 ++++ packages/dgraph/package.json | 12 ++--- packages/diff/CHANGELOG.md | 19 ++++++++ packages/diff/package.json | 6 +-- packages/dl-asset/CHANGELOG.md | 8 ++++ packages/dl-asset/package.json | 8 ++-- packages/dlogic/CHANGELOG.md | 8 ++++ packages/dlogic/package.json | 4 +- packages/dot/CHANGELOG.md | 8 ++++ packages/dot/package.json | 6 +-- packages/dsp-io-wav/CHANGELOG.md | 8 ++++ packages/dsp-io-wav/package.json | 10 ++--- packages/dsp/CHANGELOG.md | 38 ++++++++++++++++ packages/dsp/package.json | 14 +++--- packages/dual-algebra/CHANGELOG.md | 8 ++++ packages/dual-algebra/package.json | 4 +- packages/dynvar/CHANGELOG.md | 8 ++++ packages/dynvar/package.json | 4 +- packages/ecs/CHANGELOG.md | 8 ++++ packages/ecs/package.json | 20 ++++----- packages/egf/CHANGELOG.md | 8 ++++ packages/egf/package.json | 20 ++++----- packages/equiv/CHANGELOG.md | 8 ++++ packages/equiv/package.json | 2 +- packages/errors/CHANGELOG.md | 8 ++++ packages/errors/package.json | 2 +- packages/fsm/CHANGELOG.md | 8 ++++ packages/fsm/package.json | 14 +++--- packages/fuzzy-viz/CHANGELOG.md | 18 ++++++++ packages/fuzzy-viz/package.json | 16 +++---- packages/fuzzy/CHANGELOG.md | 28 ++++++++++++ packages/fuzzy/package.json | 6 +-- packages/geom-accel/CHANGELOG.md | 8 ++++ packages/geom-accel/package.json | 22 ++++----- packages/geom-api/CHANGELOG.md | 18 ++++++++ packages/geom-api/package.json | 6 +-- packages/geom-arc/CHANGELOG.md | 8 ++++ packages/geom-arc/package.json | 12 ++--- packages/geom-clip-line/CHANGELOG.md | 8 ++++ packages/geom-clip-line/package.json | 8 ++-- packages/geom-clip-poly/CHANGELOG.md | 8 ++++ packages/geom-clip-poly/package.json | 10 ++--- packages/geom-closest-point/CHANGELOG.md | 8 ++++ packages/geom-closest-point/package.json | 8 ++-- packages/geom-fuzz/CHANGELOG.md | 8 ++++ packages/geom-fuzz/package.json | 22 ++++----- packages/geom-hull/CHANGELOG.md | 8 ++++ packages/geom-hull/package.json | 6 +-- packages/geom-io-obj/CHANGELOG.md | 8 ++++ packages/geom-io-obj/package.json | 6 +-- packages/geom-isec/CHANGELOG.md | 8 ++++ packages/geom-isec/package.json | 12 ++--- packages/geom-isoline/CHANGELOG.md | 8 ++++ packages/geom-isoline/package.json | 8 ++-- packages/geom-poly-utils/CHANGELOG.md | 11 +++++ packages/geom-poly-utils/package.json | 12 ++--- packages/geom-resample/CHANGELOG.md | 8 ++++ packages/geom-resample/package.json | 12 ++--- packages/geom-splines/CHANGELOG.md | 8 ++++ packages/geom-splines/package.json | 16 +++---- packages/geom-subdiv-curve/CHANGELOG.md | 8 ++++ packages/geom-subdiv-curve/package.json | 10 ++--- packages/geom-tessellate/CHANGELOG.md | 8 ++++ packages/geom-tessellate/package.json | 14 +++--- packages/geom-voronoi/CHANGELOG.md | 8 ++++ packages/geom-voronoi/package.json | 20 ++++----- packages/geom/CHANGELOG.md | 26 +++++++++++ packages/geom/package.json | 54 +++++++++++------------ packages/gp/CHANGELOG.md | 16 +++++++ packages/gp/package.json | 12 ++--- packages/grid-iterators/CHANGELOG.md | 8 ++++ packages/grid-iterators/package.json | 12 ++--- packages/hdiff/CHANGELOG.md | 8 ++++ packages/hdiff/package.json | 12 ++--- packages/hdom-canvas/CHANGELOG.md | 8 ++++ packages/hdom-canvas/package.json | 12 ++--- packages/hdom-components/CHANGELOG.md | 8 ++++ packages/hdom-components/package.json | 14 +++--- packages/hdom-mock/CHANGELOG.md | 8 ++++ packages/hdom-mock/package.json | 8 ++-- packages/hdom/CHANGELOG.md | 8 ++++ packages/hdom/package.json | 18 ++++---- packages/heaps/CHANGELOG.md | 8 ++++ packages/heaps/package.json | 6 +-- packages/hex/CHANGELOG.md | 8 ++++ packages/hex/package.json | 2 +- packages/hiccup-canvas/CHANGELOG.md | 8 ++++ packages/hiccup-canvas/package.json | 12 ++--- packages/hiccup-carbon-icons/CHANGELOG.md | 8 ++++ packages/hiccup-carbon-icons/package.json | 4 +- packages/hiccup-css/CHANGELOG.md | 8 ++++ packages/hiccup-css/package.json | 10 ++--- packages/hiccup-html/CHANGELOG.md | 8 ++++ packages/hiccup-html/package.json | 4 +- packages/hiccup-markdown/CHANGELOG.md | 8 ++++ packages/hiccup-markdown/package.json | 22 ++++----- packages/hiccup-svg/CHANGELOG.md | 8 ++++ packages/hiccup-svg/package.json | 8 ++-- packages/hiccup/CHANGELOG.md | 8 ++++ packages/hiccup/package.json | 12 ++--- packages/idgen/CHANGELOG.md | 8 ++++ packages/idgen/package.json | 4 +- packages/iges/CHANGELOG.md | 8 ++++ packages/iges/package.json | 14 +++--- packages/imgui/CHANGELOG.md | 8 ++++ packages/imgui/package.json | 22 ++++----- packages/interceptors/CHANGELOG.md | 8 ++++ packages/interceptors/package.json | 12 ++--- packages/intervals/CHANGELOG.md | 8 ++++ packages/intervals/package.json | 10 ++--- packages/iterators/CHANGELOG.md | 8 ++++ packages/iterators/package.json | 8 ++-- packages/layout/CHANGELOG.md | 8 ++++ packages/layout/package.json | 4 +- packages/leb128/CHANGELOG.md | 8 ++++ packages/leb128/package.json | 8 ++-- packages/lsys/CHANGELOG.md | 8 ++++ packages/lsys/package.json | 16 +++---- packages/malloc/CHANGELOG.md | 8 ++++ packages/malloc/package.json | 10 ++--- packages/math/CHANGELOG.md | 33 ++++++++++++++ packages/math/package.json | 4 +- packages/matrices/CHANGELOG.md | 8 ++++ packages/matrices/package.json | 10 ++--- packages/memoize/CHANGELOG.md | 8 ++++ packages/memoize/package.json | 4 +- packages/mime/CHANGELOG.md | 8 ++++ packages/mime/package.json | 4 +- packages/morton/CHANGELOG.md | 8 ++++ packages/morton/package.json | 8 ++-- packages/oquery/CHANGELOG.md | 8 ++++ packages/oquery/package.json | 10 ++--- packages/parse/CHANGELOG.md | 8 ++++ packages/parse/package.json | 12 ++--- packages/paths/CHANGELOG.md | 8 ++++ packages/paths/package.json | 8 ++-- packages/pixel/CHANGELOG.md | 8 ++++ packages/pixel/package.json | 10 ++--- packages/pointfree-lang/CHANGELOG.md | 8 ++++ packages/pointfree-lang/package.json | 10 ++--- packages/pointfree/CHANGELOG.md | 8 ++++ packages/pointfree/package.json | 12 ++--- packages/poisson/CHANGELOG.md | 8 ++++ packages/poisson/package.json | 14 +++--- packages/porter-duff/CHANGELOG.md | 8 ++++ packages/porter-duff/package.json | 6 +-- packages/prefixes/CHANGELOG.md | 8 ++++ packages/prefixes/package.json | 2 +- packages/quad-edge/CHANGELOG.md | 8 ++++ packages/quad-edge/package.json | 2 +- packages/ramp/CHANGELOG.md | 8 ++++ packages/ramp/package.json | 12 ++--- packages/random/CHANGELOG.md | 8 ++++ packages/random/package.json | 8 ++-- packages/range-coder/CHANGELOG.md | 8 ++++ packages/range-coder/package.json | 6 +-- packages/rdom-canvas/CHANGELOG.md | 8 ++++ packages/rdom-canvas/package.json | 16 +++---- packages/rdom-components/CHANGELOG.md | 8 ++++ packages/rdom-components/package.json | 16 +++---- packages/rdom/CHANGELOG.md | 8 ++++ packages/rdom/package.json | 18 ++++---- packages/resolve-map/CHANGELOG.md | 8 ++++ packages/resolve-map/package.json | 10 ++--- packages/rle-pack/CHANGELOG.md | 8 ++++ packages/rle-pack/package.json | 6 +-- packages/router/CHANGELOG.md | 8 ++++ packages/router/package.json | 10 ++--- packages/rstream-csp/CHANGELOG.md | 8 ++++ packages/rstream-csp/package.json | 6 +-- packages/rstream-dot/CHANGELOG.md | 8 ++++ packages/rstream-dot/package.json | 4 +- packages/rstream-gestures/CHANGELOG.md | 16 +++++++ packages/rstream-gestures/package.json | 12 ++--- packages/rstream-graph/CHANGELOG.md | 8 ++++ packages/rstream-graph/package.json | 18 ++++---- packages/rstream-log-file/CHANGELOG.md | 8 ++++ packages/rstream-log-file/package.json | 4 +- packages/rstream-log/CHANGELOG.md | 8 ++++ packages/rstream-log/package.json | 12 ++--- packages/rstream-query/CHANGELOG.md | 8 ++++ packages/rstream-query/package.json | 20 ++++----- packages/rstream/CHANGELOG.md | 8 ++++ packages/rstream/package.json | 16 +++---- packages/sax/CHANGELOG.md | 8 ++++ packages/sax/package.json | 8 ++-- packages/scenegraph/CHANGELOG.md | 8 ++++ packages/scenegraph/package.json | 10 ++--- packages/seq/CHANGELOG.md | 8 ++++ packages/seq/package.json | 6 +-- packages/sexpr/CHANGELOG.md | 8 ++++ packages/sexpr/package.json | 8 ++-- packages/shader-ast-glsl/CHANGELOG.md | 8 ++++ packages/shader-ast-glsl/package.json | 10 ++--- packages/shader-ast-js/CHANGELOG.md | 8 ++++ packages/shader-ast-js/package.json | 18 ++++---- packages/shader-ast-stdlib/CHANGELOG.md | 8 ++++ packages/shader-ast-stdlib/package.json | 6 +-- packages/shader-ast/CHANGELOG.md | 8 ++++ packages/shader-ast/package.json | 12 ++--- packages/simd/CHANGELOG.md | 8 ++++ packages/simd/package.json | 4 +- packages/soa/CHANGELOG.md | 8 ++++ packages/soa/package.json | 12 ++--- packages/sparse/CHANGELOG.md | 8 ++++ packages/sparse/package.json | 6 +-- packages/strings/CHANGELOG.md | 8 ++++ packages/strings/package.json | 10 ++--- packages/system/CHANGELOG.md | 8 ++++ packages/system/package.json | 6 +-- packages/text-canvas/CHANGELOG.md | 8 ++++ packages/text-canvas/package.json | 18 ++++---- packages/transducers-binary/CHANGELOG.md | 16 +++++++ packages/transducers-binary/package.json | 14 +++--- packages/transducers-fsm/CHANGELOG.md | 8 ++++ packages/transducers-fsm/package.json | 6 +-- packages/transducers-hdom/CHANGELOG.md | 8 ++++ packages/transducers-hdom/package.json | 8 ++-- packages/transducers-patch/CHANGELOG.md | 17 +++++++ packages/transducers-patch/package.json | 12 ++--- packages/transducers-stats/CHANGELOG.md | 8 ++++ packages/transducers-stats/package.json | 10 ++--- packages/transducers/CHANGELOG.md | 8 ++++ packages/transducers/package.json | 18 ++++---- packages/unionstruct/CHANGELOG.md | 8 ++++ packages/unionstruct/package.json | 2 +- packages/vclock/CHANGELOG.md | 8 ++++ packages/vclock/package.json | 4 +- packages/vector-pools/CHANGELOG.md | 8 ++++ packages/vector-pools/package.json | 14 +++--- packages/vectors/CHANGELOG.md | 8 ++++ packages/vectors/package.json | 20 ++++----- packages/viz/CHANGELOG.md | 8 ++++ packages/viz/package.json | 18 ++++---- packages/webgl-msdf/CHANGELOG.md | 8 ++++ packages/webgl-msdf/package.json | 14 +++--- packages/webgl-shadertoy/CHANGELOG.md | 8 ++++ packages/webgl-shadertoy/package.json | 10 ++--- packages/webgl/CHANGELOG.md | 8 ++++ packages/webgl/package.json | 32 +++++++------- packages/zipper/CHANGELOG.md | 8 ++++ packages/zipper/package.json | 8 ++-- 288 files changed, 2092 insertions(+), 764 deletions(-) create mode 100644 packages/fuzzy-viz/CHANGELOG.md create mode 100644 packages/fuzzy/CHANGELOG.md diff --git a/packages/adapt-dpi/CHANGELOG.md b/packages/adapt-dpi/CHANGELOG.md index dba9fe0852..be95a5bb35 100644 --- a/packages/adapt-dpi/CHANGELOG.md +++ b/packages/adapt-dpi/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/adapt-dpi@1.0.11...@thi.ng/adapt-dpi@1.0.12) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/adapt-dpi + + + + + # 1.0.0 (2020-06-07) diff --git a/packages/adapt-dpi/package.json b/packages/adapt-dpi/package.json index 64a12fab08..e108d48cda 100644 --- a/packages/adapt-dpi/package.json +++ b/packages/adapt-dpi/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/adapt-dpi", - "version": "1.0.11", + "version": "1.0.12", "description": "HDPI canvas adapter / styling utility", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/adjacency/CHANGELOG.md b/packages/adjacency/CHANGELOG.md index 5d75ce1cf3..b7c2e25397 100644 --- a/packages/adjacency/CHANGELOG.md +++ b/packages/adjacency/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.67...@thi.ng/adjacency@0.2.0) (2020-12-22) + + +### Code Refactoring + +* **adjacency:** fix [#256](https://github.com/thi-ng/umbrella/issues/256) replace enum w/ type alias ([88edbe1](https://github.com/thi-ng/umbrella/commit/88edbe10ffe9ceb9f5e8494c9a60b8067a7d57d1)) + + +### BREAKING CHANGES + +* **adjacency:** replace DegreeType w/ type alias + + + + + ## [0.1.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.6...@thi.ng/adjacency@0.1.7) (2019-03-18) ### Performance Improvements diff --git a/packages/adjacency/package.json b/packages/adjacency/package.json index 1e273df32d..40ab2dbd25 100644 --- a/packages/adjacency/package.json +++ b/packages/adjacency/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/adjacency", - "version": "0.1.67", + "version": "0.2.0", "description": "Sparse & bitwise adjacency matrices and related functions for directed & undirected graphs", "module": "./index.js", "main": "./lib/index.js", @@ -40,7 +40,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.12.1", - "@thi.ng/vectors": "^4.8.2", + "@thi.ng/vectors": "^4.8.3", "@types/mocha": "^8.2.0", "@types/node": "^14.14.14", "mocha": "^8.2.1", @@ -50,12 +50,12 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/binary": "^2.0.19", - "@thi.ng/bitfield": "^0.3.25", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/dcons": "^2.3.3", - "@thi.ng/sparse": "^0.1.58" + "@thi.ng/api": "^6.13.5", + "@thi.ng/binary": "^2.0.20", + "@thi.ng/bitfield": "^0.3.26", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/dcons": "^2.3.4", + "@thi.ng/sparse": "^0.1.59" }, "files": [ "*.js", diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index 6478464fc9..4314914208 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.13.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.13.4...@thi.ng/api@6.13.5) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/api + + + + + # [6.13.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.12.3...@thi.ng/api@6.13.0) (2020-09-13) diff --git a/packages/api/package.json b/packages/api/package.json index c7e6de4e7a..7aa8221f97 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/api", - "version": "6.13.4", + "version": "6.13.5", "description": "Common, generic types, interfaces & mixins", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/arrays/CHANGELOG.md b/packages/arrays/CHANGELOG.md index e48a3a9063..0654915056 100644 --- a/packages/arrays/CHANGELOG.md +++ b/packages/arrays/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.8.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/arrays@0.8.4...@thi.ng/arrays@0.8.5) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/arrays + + + + + # [0.8.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/arrays@0.7.0...@thi.ng/arrays@0.8.0) (2020-09-13) diff --git a/packages/arrays/package.json b/packages/arrays/package.json index 083fc71278..6adee97f7a 100644 --- a/packages/arrays/package.json +++ b/packages/arrays/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/arrays", - "version": "0.8.4", + "version": "0.8.5", "description": "Array / Arraylike utilities", "module": "./index.js", "main": "./lib/index.js", @@ -49,12 +49,12 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/compare": "^1.3.20", - "@thi.ng/equiv": "^1.0.33", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/random": "^2.1.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/compare": "^1.3.21", + "@thi.ng/equiv": "^1.0.34", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/random": "^2.1.3" }, "files": [ "*.js", diff --git a/packages/associative/CHANGELOG.md b/packages/associative/CHANGELOG.md index d76d1db2f0..8ce196d0c8 100644 --- a/packages/associative/CHANGELOG.md +++ b/packages/associative/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@5.0.11...@thi.ng/associative@5.0.12) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/associative + + + + + # [5.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@4.5.1...@thi.ng/associative@5.0.0) (2020-07-25) diff --git a/packages/associative/package.json b/packages/associative/package.json index 1c4ccea1d9..5a59fda408 100644 --- a/packages/associative/package.json +++ b/packages/associative/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/associative", - "version": "5.0.11", + "version": "5.0.12", "description": "Alternative Map and Set implementations with customizable equality semantics & supporting operations", "module": "./index.js", "main": "./lib/index.js", @@ -49,14 +49,14 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/binary": "^2.0.19", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/compare": "^1.3.20", - "@thi.ng/dcons": "^2.3.3", - "@thi.ng/equiv": "^1.0.33", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/transducers": "^7.5.2", + "@thi.ng/api": "^6.13.5", + "@thi.ng/binary": "^2.0.20", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/compare": "^1.3.21", + "@thi.ng/dcons": "^2.3.4", + "@thi.ng/equiv": "^1.0.34", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/transducers": "^7.5.3", "tslib": "2.0.1" }, "files": [ diff --git a/packages/atom/CHANGELOG.md b/packages/atom/CHANGELOG.md index 2b2598f6e3..657a1a1dd6 100644 --- a/packages/atom/CHANGELOG.md +++ b/packages/atom/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.1.24...@thi.ng/atom@4.1.25) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/atom + + + + + # [4.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.0.0...@thi.ng/atom@4.1.0) (2020-04-01) diff --git a/packages/atom/package.json b/packages/atom/package.json index ccaef11872..1f812f1aa5 100644 --- a/packages/atom/package.json +++ b/packages/atom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/atom", - "version": "4.1.24", + "version": "4.1.25", "description": "Mutable wrappers for nested immutable values with optional undo/redo history and transaction support", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/equiv": "^1.0.33", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/paths": "^4.1.10", + "@thi.ng/api": "^6.13.5", + "@thi.ng/equiv": "^1.0.34", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/paths": "^4.1.11", "tslib": "2.0.1" }, "files": [ diff --git a/packages/bench/CHANGELOG.md b/packages/bench/CHANGELOG.md index d5b05d5885..6b29997c57 100644 --- a/packages/bench/CHANGELOG.md +++ b/packages/bench/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.24...@thi.ng/bench@2.0.25) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/bench + + + + + ## [2.0.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.5...@thi.ng/bench@2.0.6) (2020-04-03) diff --git a/packages/bench/package.json b/packages/bench/package.json index 012ce45277..ff9f85fa82 100644 --- a/packages/bench/package.json +++ b/packages/bench/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bench", - "version": "2.0.24", + "version": "2.0.25", "description": "Benchmarking utilities w/ optional statistics", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/bencode/CHANGELOG.md b/packages/bencode/CHANGELOG.md index 1c52f9f733..cb528fffe6 100644 --- a/packages/bencode/CHANGELOG.md +++ b/packages/bencode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.43...@thi.ng/bencode@0.3.44) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/bencode + + + + + # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.2.17...@thi.ng/bencode@0.3.0) (2019-07-07) ### Features diff --git a/packages/bencode/package.json b/packages/bencode/package.json index e632de3005..967d0df374 100644 --- a/packages/bencode/package.json +++ b/packages/bencode/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bencode", - "version": "0.3.43", + "version": "0.3.44", "description": "Bencode binary encoder / decoder with optional UTF8 encoding & floating point support", "module": "./index.js", "main": "./lib/index.js", @@ -49,13 +49,13 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/arrays": "^0.8.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/defmulti": "^1.3.2", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/transducers-binary": "^0.5.33" + "@thi.ng/api": "^6.13.5", + "@thi.ng/arrays": "^0.8.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/defmulti": "^1.3.3", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/transducers-binary": "^0.6.0" }, "files": [ "*.js", diff --git a/packages/binary/CHANGELOG.md b/packages/binary/CHANGELOG.md index 9dcbec5486..7f1b7aa559 100644 --- a/packages/binary/CHANGELOG.md +++ b/packages/binary/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@2.0.19...@thi.ng/binary@2.0.20) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/binary + + + + + # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@1.3.2...@thi.ng/binary@2.0.0) (2020-03-06) diff --git a/packages/binary/package.json b/packages/binary/package.json index 5f6d7c52eb..37ac3d1c0d 100644 --- a/packages/binary/package.json +++ b/packages/binary/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/binary", - "version": "2.0.19", + "version": "2.0.20", "description": "95+ assorted binary / bitwise operations, conversions, utilities", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4" + "@thi.ng/api": "^6.13.5" }, "files": [ "*.js", diff --git a/packages/bitfield/CHANGELOG.md b/packages/bitfield/CHANGELOG.md index 95646ea43f..f114c6857f 100644 --- a/packages/bitfield/CHANGELOG.md +++ b/packages/bitfield/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.25...@thi.ng/bitfield@0.3.26) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/bitfield + + + + + # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.2.8...@thi.ng/bitfield@0.3.0) (2020-03-06) diff --git a/packages/bitfield/package.json b/packages/bitfield/package.json index 5e28ac00ce..91729f2e02 100644 --- a/packages/bitfield/package.json +++ b/packages/bitfield/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bitfield", - "version": "0.3.25", + "version": "0.3.26", "description": "1D / 2D bit field implementations", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/binary": "^2.0.19", - "@thi.ng/strings": "^1.11.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/binary": "^2.0.20", + "@thi.ng/strings": "^1.11.3" }, "files": [ "*.js", diff --git a/packages/bitstream/CHANGELOG.md b/packages/bitstream/CHANGELOG.md index 6e2fb1f545..0e9d154f3a 100644 --- a/packages/bitstream/CHANGELOG.md +++ b/packages/bitstream/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@1.1.29...@thi.ng/bitstream@1.1.30) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/bitstream + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@1.0.6...@thi.ng/bitstream@1.1.0) (2019-07-07) ### Features diff --git a/packages/bitstream/package.json b/packages/bitstream/package.json index e775389373..d7c15c092a 100644 --- a/packages/bitstream/package.json +++ b/packages/bitstream/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bitstream", - "version": "1.1.29", + "version": "1.1.30", "description": "ES6 iterator based read/write bit streams with support for variable word widths", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/errors": "^1.2.24" + "@thi.ng/errors": "^1.2.25" }, "files": [ "*.js", diff --git a/packages/cache/CHANGELOG.md b/packages/cache/CHANGELOG.md index 2ae3e93427..0ec3f151cd 100644 --- a/packages/cache/CHANGELOG.md +++ b/packages/cache/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.64](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.63...@thi.ng/cache@1.0.64) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/cache + + + + + # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@0.2.40...@thi.ng/cache@1.0.0) (2019-01-21) ### Bug Fixes diff --git a/packages/cache/package.json b/packages/cache/package.json index 2e0ab272dc..807e33a8d2 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/cache", - "version": "1.0.63", + "version": "1.0.64", "description": "In-memory cache implementations with ES6 Map-like API and different eviction strategies", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/dcons": "^2.3.3", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/dcons": "^2.3.4", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/checks/CHANGELOG.md b/packages/checks/CHANGELOG.md index 9293d892e7..9c12b2d2a8 100644 --- a/packages/checks/CHANGELOG.md +++ b/packages/checks/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.7.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@2.7.11...@thi.ng/checks@2.7.12) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/checks + + + + + ## [2.7.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@2.7.2...@thi.ng/checks@2.7.3) (2020-07-02) diff --git a/packages/checks/package.json b/packages/checks/package.json index dfbe76c0e1..f86c3e27c5 100644 --- a/packages/checks/package.json +++ b/packages/checks/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/checks", - "version": "2.7.11", + "version": "2.7.12", "description": "Collection of 50+ type, feature & value checks", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/color/CHANGELOG.md b/packages/color/CHANGELOG.md index 6732ed3c98..a25e5fa81e 100644 --- a/packages/color/CHANGELOG.md +++ b/packages/color/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.3.2...@thi.ng/color@2.0.0) (2020-12-22) + + +### Code Refactoring + +* **color:** fix [#256](https://github.com/thi-ng/umbrella/issues/256) replace enum w/ type alias ([17e2449](https://github.com/thi-ng/umbrella/commit/17e244969d2d39e17cdea739308928adc17d5392)) + + +### BREAKING CHANGES + +* **color:** replace ColorMode w/ type alias + + + + + # [1.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.2.18...@thi.ng/color@1.3.0) (2020-11-24) diff --git a/packages/color/package.json b/packages/color/package.json index 9e1d8a14df..2c8beac3c0 100644 --- a/packages/color/package.json +++ b/packages/color/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/color", - "version": "1.3.2", + "version": "2.0.0", "description": "Array-based color ops, conversions, multi-color gradients, presets", "module": "./index.js", "main": "./lib/index.js", @@ -49,15 +49,15 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/compose": "^1.4.21", - "@thi.ng/defmulti": "^1.3.2", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/math": "^2.2.2", - "@thi.ng/strings": "^1.11.2", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/compose": "^1.4.22", + "@thi.ng/defmulti": "^1.3.3", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/math": "^3.0.0", + "@thi.ng/strings": "^1.11.3", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/colored-noise/CHANGELOG.md b/packages/colored-noise/CHANGELOG.md index 5059becf13..58a065636c 100644 --- a/packages/colored-noise/CHANGELOG.md +++ b/packages/colored-noise/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/colored-noise@0.1.6...@thi.ng/colored-noise@0.1.7) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/colored-noise + + + + + # 0.1.0 (2020-08-28) diff --git a/packages/colored-noise/package.json b/packages/colored-noise/package.json index 6fecf985ba..dc1a9cc660 100644 --- a/packages/colored-noise/package.json +++ b/packages/colored-noise/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/colored-noise", - "version": "0.1.6", + "version": "0.1.7", "description": "Customizable O(1) ES6 generators for colored noise", "module": "./index.js", "main": "./lib/index.js", @@ -40,12 +40,12 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.12.1", - "@thi.ng/api": "^6.13.4", - "@thi.ng/dsp": "^2.1.5", - "@thi.ng/dsp-io-wav": "^0.1.33", - "@thi.ng/text-canvas": "^0.2.35", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vectors": "^4.8.2", + "@thi.ng/api": "^6.13.5", + "@thi.ng/dsp": "^3.0.0", + "@thi.ng/dsp-io-wav": "^0.1.34", + "@thi.ng/text-canvas": "^0.2.36", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vectors": "^4.8.3", "@types/mocha": "^8.2.0", "@types/node": "^14.14.14", "mocha": "^8.2.1", @@ -55,8 +55,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/binary": "^2.0.19", - "@thi.ng/random": "^2.1.2" + "@thi.ng/binary": "^2.0.20", + "@thi.ng/random": "^2.1.3" }, "files": [ "*.js", diff --git a/packages/compare/CHANGELOG.md b/packages/compare/CHANGELOG.md index 8f224b9802..2003d6361e 100644 --- a/packages/compare/CHANGELOG.md +++ b/packages/compare/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.3.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.3.20...@thi.ng/compare@1.3.21) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/compare + + + + + # [1.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.2.2...@thi.ng/compare@1.3.0) (2020-04-05) diff --git a/packages/compare/package.json b/packages/compare/package.json index d24b6bdf76..f9798ba9dc 100644 --- a/packages/compare/package.json +++ b/packages/compare/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/compare", - "version": "1.3.20", + "version": "1.3.21", "description": "Comparators with support for types implementing the @thi.ng/api/ICompare interface", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4" + "@thi.ng/api": "^6.13.5" }, "files": [ "*.js", diff --git a/packages/compose/CHANGELOG.md b/packages/compose/CHANGELOG.md index 9d7e5cac39..de9afba900 100644 --- a/packages/compose/CHANGELOG.md +++ b/packages/compose/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.4.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.4.21...@thi.ng/compose@1.4.22) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/compose + + + + + # [1.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.3.12...@thi.ng/compose@1.4.0) (2020-03-28) diff --git a/packages/compose/package.json b/packages/compose/package.json index 500d3f290e..8ce1eb0b4d 100644 --- a/packages/compose/package.json +++ b/packages/compose/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/compose", - "version": "1.4.21", + "version": "1.4.22", "description": "Optimized functional composition helpers", "module": "./index.js", "main": "./lib/index.js", @@ -49,8 +49,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/errors": "^1.2.24" + "@thi.ng/api": "^6.13.5", + "@thi.ng/errors": "^1.2.25" }, "files": [ "*.js", diff --git a/packages/csp/CHANGELOG.md b/packages/csp/CHANGELOG.md index eaeaac92e9..bc9aee9836 100644 --- a/packages/csp/CHANGELOG.md +++ b/packages/csp/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.43...@thi.ng/csp@1.1.44) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/csp + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.0.19...@thi.ng/csp@1.1.0) (2019-07-07) ### Bug Fixes diff --git a/packages/csp/package.json b/packages/csp/package.json index 99b50bb4ce..b3ae21b16b 100644 --- a/packages/csp/package.json +++ b/packages/csp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/csp", - "version": "1.1.43", + "version": "1.1.44", "description": "ES6 promise based CSP primitives & operations", "module": "./index.js", "main": "./lib/index.js", @@ -53,12 +53,12 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/arrays": "^0.8.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/dcons": "^2.3.3", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/arrays": "^0.8.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/dcons": "^2.3.4", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/csv/CHANGELOG.md b/packages/csv/CHANGELOG.md index 98fca9bbd0..87558bfb9b 100644 --- a/packages/csv/CHANGELOG.md +++ b/packages/csv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/csv@0.1.2...@thi.ng/csv@0.1.3) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/csv + + + + + # 0.1.0 (2020-11-24) diff --git a/packages/csv/package.json b/packages/csv/package.json index 4b2924db80..a1ccfd1f9f 100644 --- a/packages/csv/package.json +++ b/packages/csv/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/csv", - "version": "0.1.2", + "version": "0.1.3", "description": "Customizable, transducer-based CSV parser/object mapper and transformer", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/strings": "^1.11.2", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/strings": "^1.11.3", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/date/CHANGELOG.md b/packages/date/CHANGELOG.md index 3b52f55e6f..3c4e2b16b9 100644 --- a/packages/date/CHANGELOG.md +++ b/packages/date/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/date@0.2.3...@thi.ng/date@0.2.4) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/date + + + + + ## [0.2.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/date@0.2.0...@thi.ng/date@0.2.1) (2020-11-24) diff --git a/packages/date/package.json b/packages/date/package.json index bdff9c1524..b6f7f02d87 100644 --- a/packages/date/package.json +++ b/packages/date/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/date", - "version": "0.2.3", + "version": "0.2.4", "description": "Date/timestamp iterators, formatters, rounding", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4" + "@thi.ng/api": "^6.13.5" }, "files": [ "*.js", diff --git a/packages/dcons/CHANGELOG.md b/packages/dcons/CHANGELOG.md index 26e90ab743..2f2d715775 100644 --- a/packages/dcons/CHANGELOG.md +++ b/packages/dcons/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.3.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.3.3...@thi.ng/dcons@2.3.4) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/dcons + + + + + # [2.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.2.32...@thi.ng/dcons@2.3.0) (2020-10-19) diff --git a/packages/dcons/package.json b/packages/dcons/package.json index c5ec8506a1..0ca63a3934 100644 --- a/packages/dcons/package.json +++ b/packages/dcons/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dcons", - "version": "2.3.3", + "version": "2.3.4", "description": "Double-linked lists with comprehensive set of operations (incl. optional self-organizing behaviors)", "module": "./index.js", "main": "./lib/index.js", @@ -49,13 +49,13 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/compare": "^1.3.20", - "@thi.ng/equiv": "^1.0.33", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/random": "^2.1.2", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/compare": "^1.3.21", + "@thi.ng/equiv": "^1.0.34", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/random": "^2.1.3", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/defmulti/CHANGELOG.md b/packages/defmulti/CHANGELOG.md index 0df89cb856..36cd6af62d 100644 --- a/packages/defmulti/CHANGELOG.md +++ b/packages/defmulti/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.3.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.3.2...@thi.ng/defmulti@1.3.3) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/defmulti + + + + + # [1.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.2.26...@thi.ng/defmulti@1.3.0) (2020-11-24) diff --git a/packages/defmulti/package.json b/packages/defmulti/package.json index 6db988d9ce..d91550ee4d 100644 --- a/packages/defmulti/package.json +++ b/packages/defmulti/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/defmulti", - "version": "1.3.2", + "version": "1.3.3", "description": "Dynamic, extensible multiple dispatch via user supplied dispatch function.", "module": "./index.js", "main": "./lib/index.js", @@ -49,8 +49,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/errors": "^1.2.24" + "@thi.ng/api": "^6.13.5", + "@thi.ng/errors": "^1.2.25" }, "files": [ "*.js", diff --git a/packages/dgraph-dot/CHANGELOG.md b/packages/dgraph-dot/CHANGELOG.md index 9021667565..2c8b308d52 100644 --- a/packages/dgraph-dot/CHANGELOG.md +++ b/packages/dgraph-dot/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.31...@thi.ng/dgraph-dot@0.1.32) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/dgraph-dot + + + + + # 0.1.0 (2020-04-03) diff --git a/packages/dgraph-dot/package.json b/packages/dgraph-dot/package.json index add11d3ff9..016b932e2e 100644 --- a/packages/dgraph-dot/package.json +++ b/packages/dgraph-dot/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dgraph-dot", - "version": "0.1.31", + "version": "0.1.32", "description": "Customizable Graphviz DOT serialization for @thi.ng/dgraph", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/dgraph": "^1.3.2", - "@thi.ng/dot": "^1.2.21" + "@thi.ng/api": "^6.13.5", + "@thi.ng/dgraph": "^1.3.3", + "@thi.ng/dot": "^1.2.22" }, "files": [ "*.js", diff --git a/packages/dgraph/CHANGELOG.md b/packages/dgraph/CHANGELOG.md index 4b5ab15f6b..e6f00625a5 100644 --- a/packages/dgraph/CHANGELOG.md +++ b/packages/dgraph/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.3.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.3.2...@thi.ng/dgraph@1.3.3) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/dgraph + + + + + # [1.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.2.28...@thi.ng/dgraph@1.3.0) (2020-11-24) diff --git a/packages/dgraph/package.json b/packages/dgraph/package.json index 342ca38d74..f30801e5d3 100644 --- a/packages/dgraph/package.json +++ b/packages/dgraph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dgraph", - "version": "1.3.2", + "version": "1.3.3", "description": "Type-agnostic directed acyclic graph (DAG) & graph operations", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/associative": "^5.0.11", - "@thi.ng/equiv": "^1.0.33", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/associative": "^5.0.12", + "@thi.ng/equiv": "^1.0.34", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/diff/CHANGELOG.md b/packages/diff/CHANGELOG.md index b3ec0c3e0e..b7dd793435 100644 --- a/packages/diff/CHANGELOG.md +++ b/packages/diff/CHANGELOG.md @@ -3,6 +3,25 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.35...@thi.ng/diff@4.0.0) (2020-12-22) + + +### Code Refactoring + +* **diff:** fix [#256](https://github.com/thi-ng/umbrella/issues/256) replace DiffMode enum ([cc77c71](https://github.com/thi-ng/umbrella/commit/cc77c711746eabebb4af58421282c50830613915)) + + +### BREAKING CHANGES + +* **diff:** replace DiffMode enum w/ type alias + +- rename DiffMode.ONLY_DISTANCE_LINEAR_ONLY_CHANGES => "minimal" +- update diffObject() mode arg to only allow: "full" or "only-distance" + + + + + ## [3.2.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.19...@thi.ng/diff@3.2.20) (2020-05-05) diff --git a/packages/diff/package.json b/packages/diff/package.json index d8a4dd9935..eb1395f235 100644 --- a/packages/diff/package.json +++ b/packages/diff/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/diff", - "version": "3.2.35", + "version": "4.0.0", "description": "Customizable diff implementations for arrays (sequential) & objects (associative), with or without linear edit logs", "module": "./index.js", "main": "./lib/index.js", @@ -48,8 +48,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/equiv": "^1.0.33" + "@thi.ng/api": "^6.13.5", + "@thi.ng/equiv": "^1.0.34" }, "files": [ "*.js", diff --git a/packages/dl-asset/CHANGELOG.md b/packages/dl-asset/CHANGELOG.md index f0f90205f6..d7e338fc98 100644 --- a/packages/dl-asset/CHANGELOG.md +++ b/packages/dl-asset/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.4.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.4.9...@thi.ng/dl-asset@0.4.10) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/dl-asset + + + + + # [0.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.3.14...@thi.ng/dl-asset@0.4.0) (2020-07-08) diff --git a/packages/dl-asset/package.json b/packages/dl-asset/package.json index fd2d451179..7540630d83 100644 --- a/packages/dl-asset/package.json +++ b/packages/dl-asset/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dl-asset", - "version": "0.4.9", + "version": "0.4.10", "description": "Local asset download for web apps, with automatic MIME type detection", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/mime": "^0.1.25" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/mime": "^0.1.26" }, "files": [ "*.js", diff --git a/packages/dlogic/CHANGELOG.md b/packages/dlogic/CHANGELOG.md index aab39f5142..6a79aff401 100644 --- a/packages/dlogic/CHANGELOG.md +++ b/packages/dlogic/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@1.0.35...@thi.ng/dlogic@1.0.36) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/dlogic + + + + + # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@0.1.2...@thi.ng/dlogic@1.0.0) (2019-01-21) ### Build System diff --git a/packages/dlogic/package.json b/packages/dlogic/package.json index a3fae986b5..d3f428ab7b 100644 --- a/packages/dlogic/package.json +++ b/packages/dlogic/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dlogic", - "version": "1.0.35", + "version": "1.0.36", "description": "Assorted digital logic ops / constructs", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4" + "@thi.ng/api": "^6.13.5" }, "files": [ "*.js", diff --git a/packages/dot/CHANGELOG.md b/packages/dot/CHANGELOG.md index d1337f491f..f5705d249a 100644 --- a/packages/dot/CHANGELOG.md +++ b/packages/dot/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.2.21...@thi.ng/dot@1.2.22) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/dot + + + + + # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.1.14...@thi.ng/dot@1.2.0) (2020-04-03) diff --git a/packages/dot/package.json b/packages/dot/package.json index 092306743c..08edea126c 100644 --- a/packages/dot/package.json +++ b/packages/dot/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dot", - "version": "1.2.21", + "version": "1.2.22", "description": "Graphviz document abstraction & serialization to DOT format", "module": "./index.js", "main": "./lib/index.js", @@ -49,8 +49,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12" }, "files": [ "*.js", diff --git a/packages/dsp-io-wav/CHANGELOG.md b/packages/dsp-io-wav/CHANGELOG.md index 1158321d1a..a7c5b10248 100644 --- a/packages/dsp-io-wav/CHANGELOG.md +++ b/packages/dsp-io-wav/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.33...@thi.ng/dsp-io-wav@0.1.34) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/dsp-io-wav + + + + + # 0.1.0 (2020-02-25) diff --git a/packages/dsp-io-wav/package.json b/packages/dsp-io-wav/package.json index 9e15ad814e..3591ea764f 100644 --- a/packages/dsp-io-wav/package.json +++ b/packages/dsp-io-wav/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dsp-io-wav", - "version": "0.1.33", + "version": "0.1.34", "description": "WAV file format generation", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/binary": "^2.0.19", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/transducers-binary": "^0.5.33" + "@thi.ng/api": "^6.13.5", + "@thi.ng/binary": "^2.0.20", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/transducers-binary": "^0.6.0" }, "files": [ "*.js", diff --git a/packages/dsp/CHANGELOG.md b/packages/dsp/CHANGELOG.md index 38c7f2cfda..712a236256 100644 --- a/packages/dsp/CHANGELOG.md +++ b/packages/dsp/CHANGELOG.md @@ -3,6 +3,44 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.1.5...@thi.ng/dsp@3.0.0) (2020-12-22) + + +### Code Refactoring + +* **adjacency:** fix [#256](https://github.com/thi-ng/umbrella/issues/256) replace enums w/ type aliases ([b9cfacb](https://github.com/thi-ng/umbrella/commit/b9cfacbbb67fcb89d72090bdad512edaffa1adcf)) + + +### Features + +* **dsp:** add applyWindow(), windowBartlett() ([d51a17c](https://github.com/thi-ng/umbrella/commit/d51a17c10dd6cbfbb69bb1cf09f46e59d2dd8ba2)) +* **dsp:** add cos() stateless oscillator ([276c6b7](https://github.com/thi-ng/umbrella/commit/276c6b76a6b69498f3b37c94fc34c4915b95b9b6)) +* **dsp:** add power & integral fns ([88edaac](https://github.com/thi-ng/umbrella/commit/88edaac0b93fb811738cbfd06d41063d8c4b9aff)) +* **dsp:** add windowWelch(), add docs ([84cd476](https://github.com/thi-ng/umbrella/commit/84cd4763a2a897d6b15b21b680fe2c8bd15c9d4a)) +* **dsp:** add/update power & integral fns ([f455fad](https://github.com/thi-ng/umbrella/commit/f455fad649394cd386839d983d8ae25895f9f1a2)) +* **dsp:** add/update various FFT & spectrum fns (fix [#258](https://github.com/thi-ng/umbrella/issues/258)) ([e351acb](https://github.com/thi-ng/umbrella/commit/e351acb98b1c776a6c8efe9ba910c2ec3b2df831)) + + +### BREAKING CHANGES + +* **adjacency:** replace filter type enums w/ type aliases + +- FilterType +- BiquadType +- SVFType +- OnepoleType +* **dsp:** new args for normalizeFFT(),denormalizeFFT(), spectrumPow() + +- add support for windowing adjustments in above functions +- add thresholdFFT() +- add copyComplex() +- update various real/complex checks using isComplex() +- update docs, add references + + + + + # [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.0.28...@thi.ng/dsp@2.1.0) (2020-08-28) diff --git a/packages/dsp/package.json b/packages/dsp/package.json index 3773e14bdf..f9ba04e3d3 100644 --- a/packages/dsp/package.json +++ b/packages/dsp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dsp", - "version": "2.1.5", + "version": "3.0.0", "description": "Composable signal generators, oscillators, filters, FFT, spectrum, windowing & related DSP utils", "module": "./index.js", "main": "./lib/index.js", @@ -49,12 +49,12 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/math": "^2.2.2", - "@thi.ng/random": "^2.1.2", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/math": "^3.0.0", + "@thi.ng/random": "^2.1.3", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/dual-algebra/CHANGELOG.md b/packages/dual-algebra/CHANGELOG.md index 35cf287415..abee0c31c4 100644 --- a/packages/dual-algebra/CHANGELOG.md +++ b/packages/dual-algebra/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/dual-algebra@0.1.4...@thi.ng/dual-algebra@0.1.5) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/dual-algebra + + + + + # 0.1.0 (2020-09-13) diff --git a/packages/dual-algebra/package.json b/packages/dual-algebra/package.json index f23c9e5c21..8a009c3137 100644 --- a/packages/dual-algebra/package.json +++ b/packages/dual-algebra/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dual-algebra", - "version": "0.1.4", + "version": "0.1.5", "description": "Multivariate dual number algebra, automatic differentiation", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4" + "@thi.ng/api": "^6.13.5" }, "files": [ "*.js", diff --git a/packages/dynvar/CHANGELOG.md b/packages/dynvar/CHANGELOG.md index 0849bdf272..8c4daa5259 100644 --- a/packages/dynvar/CHANGELOG.md +++ b/packages/dynvar/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/dynvar@0.1.27...@thi.ng/dynvar@0.1.28) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/dynvar + + + + + # 0.1.0 (2020-01-24) ### Features diff --git a/packages/dynvar/package.json b/packages/dynvar/package.json index 2616107b7b..8bf7704e7e 100644 --- a/packages/dynvar/package.json +++ b/packages/dynvar/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dynvar", - "version": "0.1.27", + "version": "0.1.28", "description": "Dynamically scoped variable bindings", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4" + "@thi.ng/api": "^6.13.5" }, "files": [ "*.js", diff --git a/packages/ecs/CHANGELOG.md b/packages/ecs/CHANGELOG.md index 0aed527df8..0dbe9141d9 100644 --- a/packages/ecs/CHANGELOG.md +++ b/packages/ecs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.4.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.4.3...@thi.ng/ecs@0.4.4) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/ecs + + + + + # [0.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.3.34...@thi.ng/ecs@0.4.0) (2020-10-19) diff --git a/packages/ecs/package.json b/packages/ecs/package.json index 010de60f51..3d50b46a1d 100644 --- a/packages/ecs/package.json +++ b/packages/ecs/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/ecs", - "version": "0.4.3", + "version": "0.4.4", "description": "Entity Component System based around typed arrays & sparse sets", "module": "./index.js", "main": "./lib/index.js", @@ -40,7 +40,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.12.1", - "@thi.ng/equiv": "^1.0.33", + "@thi.ng/equiv": "^1.0.34", "@types/mocha": "^8.2.0", "@types/node": "^14.14.14", "mocha": "^8.2.1", @@ -50,14 +50,14 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/associative": "^5.0.11", - "@thi.ng/binary": "^2.0.19", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/dcons": "^2.3.3", - "@thi.ng/idgen": "^0.2.27", - "@thi.ng/malloc": "^4.2.3", - "@thi.ng/transducers": "^7.5.2", + "@thi.ng/api": "^6.13.5", + "@thi.ng/associative": "^5.0.12", + "@thi.ng/binary": "^2.0.20", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/dcons": "^2.3.4", + "@thi.ng/idgen": "^0.2.28", + "@thi.ng/malloc": "^4.2.4", + "@thi.ng/transducers": "^7.5.3", "tslib": "2.0.1" }, "files": [ diff --git a/packages/egf/CHANGELOG.md b/packages/egf/CHANGELOG.md index e70698cf77..568f4fbdbd 100644 --- a/packages/egf/CHANGELOG.md +++ b/packages/egf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/egf@0.3.4...@thi.ng/egf@0.3.5) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/egf + + + + + # 0.3.0 (2020-09-22) diff --git a/packages/egf/package.json b/packages/egf/package.json index 979be636fc..0fb144fdc9 100644 --- a/packages/egf/package.json +++ b/packages/egf/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/egf", - "version": "0.3.4", + "version": "0.3.5", "description": "Extensible Graph Format", "module": "./index.js", "main": "./lib/index.js", @@ -35,7 +35,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.12.1", - "@thi.ng/equiv": "^1.0.33", + "@thi.ng/equiv": "^1.0.34", "@types/mocha": "^8.2.0", "@types/node": "^14.14.14", "mocha": "^8.2.1", @@ -45,14 +45,14 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/associative": "^5.0.11", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/dot": "^1.2.21", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/prefixes": "^0.1.8", - "@thi.ng/strings": "^1.11.2", - "@thi.ng/transducers-binary": "^0.5.33" + "@thi.ng/api": "^6.13.5", + "@thi.ng/associative": "^5.0.12", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/dot": "^1.2.22", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/prefixes": "^0.1.9", + "@thi.ng/strings": "^1.11.3", + "@thi.ng/transducers-binary": "^0.6.0" }, "files": [ "*.js", diff --git a/packages/equiv/CHANGELOG.md b/packages/equiv/CHANGELOG.md index 210a2bb6e4..6256771ff7 100644 --- a/packages/equiv/CHANGELOG.md +++ b/packages/equiv/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@1.0.33...@thi.ng/equiv@1.0.34) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/equiv + + + + + # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@0.1.15...@thi.ng/equiv@1.0.0) (2019-01-21) ### Build System diff --git a/packages/equiv/package.json b/packages/equiv/package.json index 87cc1baef2..8eaae3f033 100644 --- a/packages/equiv/package.json +++ b/packages/equiv/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/equiv", - "version": "1.0.33", + "version": "1.0.34", "description": "Extensible deep value equivalence checking for any data types", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/errors/CHANGELOG.md b/packages/errors/CHANGELOG.md index 25aa7885ed..0c59db14c8 100644 --- a/packages/errors/CHANGELOG.md +++ b/packages/errors/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/errors@1.2.24...@thi.ng/errors@1.2.25) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/errors + + + + + # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/errors@1.1.2...@thi.ng/errors@1.2.0) (2019-08-21) ### Features diff --git a/packages/errors/package.json b/packages/errors/package.json index 0dea1f4756..7e28d154ce 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/errors", - "version": "1.2.24", + "version": "1.2.25", "description": "Custom error types and error factory functions", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/fsm/CHANGELOG.md b/packages/fsm/CHANGELOG.md index 785ca9176a..9740d59a6e 100644 --- a/packages/fsm/CHANGELOG.md +++ b/packages/fsm/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.4.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.29...@thi.ng/fsm@2.4.30) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/fsm + + + + + # [2.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.3.7...@thi.ng/fsm@2.4.0) (2020-03-06) diff --git a/packages/fsm/package.json b/packages/fsm/package.json index 6d09764064..49fa3ec98c 100644 --- a/packages/fsm/package.json +++ b/packages/fsm/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/fsm", - "version": "2.4.29", + "version": "2.4.30", "description": "Composable primitives for building declarative, transducer based Finite-State Machines & matchers for arbitrary data streams", "module": "./index.js", "main": "./lib/index.js", @@ -49,12 +49,12 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/arrays": "^0.8.4", - "@thi.ng/equiv": "^1.0.33", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/strings": "^1.11.2", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/arrays": "^0.8.5", + "@thi.ng/equiv": "^1.0.34", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/strings": "^1.11.3", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/fuzzy-viz/CHANGELOG.md b/packages/fuzzy-viz/CHANGELOG.md new file mode 100644 index 0000000000..ed8d761581 --- /dev/null +++ b/packages/fuzzy-viz/CHANGELOG.md @@ -0,0 +1,18 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# 0.1.0 (2020-12-22) + + +### Bug Fixes + +* **fuzzy-viz:** update imports ([22f37a5](https://github.com/thi-ng/umbrella/commit/22f37a526acd6911720100e77ad41029d8799004)) + + +### Features + +* **fuzzy-viz:** add/update instrumentStrategy() & co ([131d137](https://github.com/thi-ng/umbrella/commit/131d13776735e3dd222090a6b514bfbe4878d9f2)) +* **fuzzy-viz:** add/update viz options, fix zero marker ([bee9cd0](https://github.com/thi-ng/umbrella/commit/bee9cd08b32ce43cc6661146dd87f35db9516559)) +* **fuzzy-viz:** import as new pkg ([8b23934](https://github.com/thi-ng/umbrella/commit/8b239347894bf8c7192890151868ecdb1ac3bf2b)) diff --git a/packages/fuzzy-viz/package.json b/packages/fuzzy-viz/package.json index 31dfea68aa..6a17a5d86a 100644 --- a/packages/fuzzy-viz/package.json +++ b/packages/fuzzy-viz/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/fuzzy-viz", - "version": "0.0.1", + "version": "0.1.0", "description": "Visualization, instrumentation & introspection utils for @thi.ng/fuzzy", "module": "./index.js", "main": "./lib/index.js", @@ -49,13 +49,13 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/fuzzy": "^0.0.1", - "@thi.ng/hiccup": "^3.6.4", - "@thi.ng/hiccup-svg": "^3.6.5", - "@thi.ng/math": "^2.2.2", - "@thi.ng/strings": "^1.11.2", - "@thi.ng/text-canvas": "^0.2.35" + "@thi.ng/api": "^6.13.5", + "@thi.ng/fuzzy": "^0.1.0", + "@thi.ng/hiccup": "^3.6.5", + "@thi.ng/hiccup-svg": "^3.6.6", + "@thi.ng/math": "^3.0.0", + "@thi.ng/strings": "^1.11.3", + "@thi.ng/text-canvas": "^0.2.36" }, "files": [ "*.js", diff --git a/packages/fuzzy/CHANGELOG.md b/packages/fuzzy/CHANGELOG.md new file mode 100644 index 0000000000..c303ad75b5 --- /dev/null +++ b/packages/fuzzy/CHANGELOG.md @@ -0,0 +1,28 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# 0.1.0 (2020-12-22) + + +### Features + +* **fuzzy:** add alphaCut() & implication() fns ([8ec15fa](https://github.com/thi-ng/umbrella/commit/8ec15fa5c0f33fd7342c4047a5523e9fd0597ed1)) +* **fuzzy:** add evaluate() ([0ffc9d0](https://github.com/thi-ng/umbrella/commit/0ffc9d01f9bd40ba616d1f59e3ced74fa7c0dc7f)) +* **fuzzy:** add maxima(), compose(), restructure ([f15d8d7](https://github.com/thi-ng/umbrella/commit/f15d8d73df2a438d4866d57fc25fed625acd7a8a)) +* **fuzzy:** add min true threshold for classify() ([6f49a30](https://github.com/thi-ng/umbrella/commit/6f49a308c62a598f6d0a0e6e5046cd8e24d81eab)) +* **fuzzy:** add shapes, strongAnd(), update combineTerms() ([5bf8f0c](https://github.com/thi-ng/umbrella/commit/5bf8f0c01541afeb367eff21cb45118a1b62549a)) +* **fuzzy:** add strict arg for classify(), update docs ([b39248f](https://github.com/thi-ng/umbrella/commit/b39248f359aa0148ff72c484d78175f8f435fe97)) +* **fuzzy:** add/update/migrate defuzz strategies ([c1ee15f](https://github.com/thi-ng/umbrella/commit/c1ee15fdce2b08176c5bc97ba9ca7a56a84817c7)) +* **fuzzy:** import as new pkg, refactor ([a578194](https://github.com/thi-ng/umbrella/commit/a57819454f38de4c35095b64b9e7028d9ac21454)) +* **fuzzy:** make lvar, rules, defuzz() typesafe ([0b210c3](https://github.com/thi-ng/umbrella/commit/0b210c3841ce9184b8dfb83ca2dde5ceca0a3b6e)) +* **fuzzy:** migrate t-norms from [@thi](https://github.com/thi).ng/math pkg ([f8993e0](https://github.com/thi-ng/umbrella/commit/f8993e0dc1aed0243629a21d36ee85e91b2e938d)) +* **fuzzy:** update defuzz() & strategies ([cf337f3](https://github.com/thi-ng/umbrella/commit/cf337f36dbf24a9cfc4c6f364c3aea82428b5940)) +* **fuzzy:** update defuzz() output prep ([81abe8c](https://github.com/thi-ng/umbrella/commit/81abe8cb718ce335940234aecf693ba53564a715)) +* **fuzzy:** update types, update compose ([566469d](https://github.com/thi-ng/umbrella/commit/566469d5c420cc2c4fdc3b107e04b52929b61915)) + + +### Performance Improvements + +* **fuzzy:** update defuzz() ([60030dd](https://github.com/thi-ng/umbrella/commit/60030dd9a5ceb02d58ad89766e14f80019f6f72f)) diff --git a/packages/fuzzy/package.json b/packages/fuzzy/package.json index e90aecf4aa..342b832069 100644 --- a/packages/fuzzy/package.json +++ b/packages/fuzzy/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/fuzzy", - "version": "0.0.1", + "version": "0.1.0", "description": "Fuzzy logic operators & configurable rule inferencing engine", "module": "./index.js", "main": "./lib/index.js", @@ -49,8 +49,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/math": "^2.2.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/math": "^3.0.0" }, "files": [ "*.js", diff --git a/packages/geom-accel/CHANGELOG.md b/packages/geom-accel/CHANGELOG.md index 7404a929a1..be6c740599 100644 --- a/packages/geom-accel/CHANGELOG.md +++ b/packages/geom-accel/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.28...@thi.ng/geom-accel@2.1.29) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-accel + + + + + # [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.0.11...@thi.ng/geom-accel@2.1.0) (2020-04-23) diff --git a/packages/geom-accel/package.json b/packages/geom-accel/package.json index 64a70bb3e8..af0f8d6393 100644 --- a/packages/geom-accel/package.json +++ b/packages/geom-accel/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-accel", - "version": "2.1.28", + "version": "2.1.29", "description": "n-D spatial indexing data structures with a shared ES6 Map/Set-like API", "module": "./index.js", "main": "./lib/index.js", @@ -50,16 +50,16 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/arrays": "^0.8.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/equiv": "^1.0.33", - "@thi.ng/geom-api": "^1.1.4", - "@thi.ng/geom-isec": "^0.7.2", - "@thi.ng/heaps": "^1.2.28", - "@thi.ng/math": "^2.2.2", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/arrays": "^0.8.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/equiv": "^1.0.34", + "@thi.ng/geom-api": "^2.0.0", + "@thi.ng/geom-isec": "^0.7.3", + "@thi.ng/heaps": "^1.2.29", + "@thi.ng/math": "^3.0.0", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-api/CHANGELOG.md b/packages/geom-api/CHANGELOG.md index 4740a28f64..a2f7c579c6 100644 --- a/packages/geom-api/CHANGELOG.md +++ b/packages/geom-api/CHANGELOG.md @@ -3,6 +3,24 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.1.4...@thi.ng/geom-api@2.0.0) (2020-12-22) + + +### Code Refactoring + +* **geom-api:** fix [#256](https://github.com/thi-ng/umbrella/issues/256) remove Type enum ([e2cd24a](https://github.com/thi-ng/umbrella/commit/e2cd24a7fc24af4c2541cd426e5b03431cc8fe86)) +* **geom-api:** fix [#256](https://github.com/thi-ng/umbrella/issues/256) replace enum w/ type alias ([c079a2a](https://github.com/thi-ng/umbrella/commit/c079a2ac620ef731429501d88580b4baada98ab6)) + + +### BREAKING CHANGES + +* **geom-api:** remove obsolete shape Type enum +* **geom-api:** replace SegmentType enum w/ type alias + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.34...@thi.ng/geom-api@1.1.0) (2020-09-22) diff --git a/packages/geom-api/package.json b/packages/geom-api/package.json index 3256b9fb0c..e272196a47 100644 --- a/packages/geom-api/package.json +++ b/packages/geom-api/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-api", - "version": "1.1.4", + "version": "2.0.0", "description": "Shared type & interface declarations for @thi.ng/geom packages", "module": "./index.js", "main": "./lib/index.js", @@ -49,8 +49,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-arc/CHANGELOG.md b/packages/geom-arc/CHANGELOG.md index 39b31f8994..5e2f3d4cf6 100644 --- a/packages/geom-arc/CHANGELOG.md +++ b/packages/geom-arc/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.3.17...@thi.ng/geom-arc@0.3.18) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-arc + + + + + # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.2.32...@thi.ng/geom-arc@0.3.0) (2020-06-20) diff --git a/packages/geom-arc/package.json b/packages/geom-arc/package.json index 9404af848e..f4542e8b25 100644 --- a/packages/geom-arc/package.json +++ b/packages/geom-arc/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-arc", - "version": "0.3.17", + "version": "0.3.18", "description": "2D circular / elliptic arc operations", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/checks": "^2.7.11", - "@thi.ng/geom-api": "^1.1.4", - "@thi.ng/geom-resample": "^0.2.50", - "@thi.ng/math": "^2.2.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/checks": "^2.7.12", + "@thi.ng/geom-api": "^2.0.0", + "@thi.ng/geom-resample": "^0.2.51", + "@thi.ng/math": "^3.0.0", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-clip-line/CHANGELOG.md b/packages/geom-clip-line/CHANGELOG.md index ca3554003c..e70fcc9615 100644 --- a/packages/geom-clip-line/CHANGELOG.md +++ b/packages/geom-clip-line/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.2.13...@thi.ng/geom-clip-line@1.2.14) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-clip-line + + + + + # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.1.4...@thi.ng/geom-clip-line@1.2.0) (2020-07-17) diff --git a/packages/geom-clip-line/package.json b/packages/geom-clip-line/package.json index c701d34ee3..f676de3b9a 100644 --- a/packages/geom-clip-line/package.json +++ b/packages/geom-clip-line/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-clip-line", - "version": "1.2.13", + "version": "1.2.14", "description": "2D line clipping (Liang-Barsky)", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/geom-isec": "^0.7.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/geom-isec": "^0.7.3", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-clip-poly/CHANGELOG.md b/packages/geom-clip-poly/CHANGELOG.md index 7776b2fd56..cea921ddae 100644 --- a/packages/geom-clip-poly/CHANGELOG.md +++ b/packages/geom-clip-poly/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.38...@thi.ng/geom-clip-poly@1.0.39) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-clip-poly + + + + + # 1.0.0 (2020-02-25) diff --git a/packages/geom-clip-poly/package.json b/packages/geom-clip-poly/package.json index 8fca32858a..0ee98efcff 100644 --- a/packages/geom-clip-poly/package.json +++ b/packages/geom-clip-poly/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-clip-poly", - "version": "1.0.38", + "version": "1.0.39", "description": "2D convex polygon clipping (Sutherland-Hodgeman)", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/geom-isec": "^0.7.2", - "@thi.ng/geom-poly-utils": "^0.2.2", - "@thi.ng/math": "^2.2.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/geom-isec": "^0.7.3", + "@thi.ng/geom-poly-utils": "^0.3.0", + "@thi.ng/math": "^3.0.0", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-closest-point/CHANGELOG.md b/packages/geom-closest-point/CHANGELOG.md index c966ef7a46..6ce44a2cc9 100644 --- a/packages/geom-closest-point/CHANGELOG.md +++ b/packages/geom-closest-point/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.5.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.5.4...@thi.ng/geom-closest-point@0.5.5) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-closest-point + + + + + # [0.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.4.0...@thi.ng/geom-closest-point@0.5.0) (2020-09-22) diff --git a/packages/geom-closest-point/package.json b/packages/geom-closest-point/package.json index 6e35017ecb..e0b7967e87 100644 --- a/packages/geom-closest-point/package.json +++ b/packages/geom-closest-point/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-closest-point", - "version": "0.5.4", + "version": "0.5.5", "description": "2D / 3D closest point / proximity helpers", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/math": "^2.2.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/math": "^3.0.0", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-fuzz/CHANGELOG.md b/packages/geom-fuzz/CHANGELOG.md index d1b9e07d67..75235840f5 100644 --- a/packages/geom-fuzz/CHANGELOG.md +++ b/packages/geom-fuzz/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-fuzz@0.1.25...@thi.ng/geom-fuzz@0.1.26) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-fuzz + + + + + # 0.1.0 (2020-06-20) diff --git a/packages/geom-fuzz/package.json b/packages/geom-fuzz/package.json index d0fb6a913a..aebc09d6ac 100644 --- a/packages/geom-fuzz/package.json +++ b/packages/geom-fuzz/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-fuzz", - "version": "0.1.25", + "version": "0.1.26", "description": "Highly configurable, fuzzy line & polygon creation with presets and composable fill & stroke styles. Canvas & SVG support", "module": "./index.js", "main": "./lib/index.js", @@ -48,16 +48,16 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/associative": "^5.0.11", - "@thi.ng/color": "^1.3.2", - "@thi.ng/geom": "^1.13.4", - "@thi.ng/geom-api": "^1.1.4", - "@thi.ng/geom-clip-line": "^1.2.13", - "@thi.ng/geom-resample": "^0.2.50", - "@thi.ng/grid-iterators": "^0.4.15", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/associative": "^5.0.12", + "@thi.ng/color": "^2.0.0", + "@thi.ng/geom": "^2.0.0", + "@thi.ng/geom-api": "^2.0.0", + "@thi.ng/geom-clip-line": "^1.2.14", + "@thi.ng/geom-resample": "^0.2.51", + "@thi.ng/grid-iterators": "^0.4.16", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-hull/CHANGELOG.md b/packages/geom-hull/CHANGELOG.md index f223e7eebb..37991cfed8 100644 --- a/packages/geom-hull/CHANGELOG.md +++ b/packages/geom-hull/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.0.71](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.70...@thi.ng/geom-hull@0.0.71) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-hull + + + + + ## [0.0.61](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.60...@thi.ng/geom-hull@0.0.61) (2020-08-16) **Note:** Version bump only for package @thi.ng/geom-hull diff --git a/packages/geom-hull/package.json b/packages/geom-hull/package.json index 75dc0953a7..7dd112c1f4 100644 --- a/packages/geom-hull/package.json +++ b/packages/geom-hull/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-hull", - "version": "0.0.70", + "version": "0.0.71", "description": "Fast 2D convex hull (Graham Scan)", "module": "./index.js", "main": "./lib/index.js", @@ -49,8 +49,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/math": "^2.2.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/math": "^3.0.0", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-io-obj/CHANGELOG.md b/packages/geom-io-obj/CHANGELOG.md index bd1623f335..fb0eaeb81a 100644 --- a/packages/geom-io-obj/CHANGELOG.md +++ b/packages/geom-io-obj/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.28...@thi.ng/geom-io-obj@0.1.29) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-io-obj + + + + + # 0.1.0 (2020-04-20) diff --git a/packages/geom-io-obj/package.json b/packages/geom-io-obj/package.json index 682bf876bc..e829cd54b3 100644 --- a/packages/geom-io-obj/package.json +++ b/packages/geom-io-obj/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-io-obj", - "version": "0.1.28", + "version": "0.1.29", "description": "Wavefront OBJ parser (& exporter soon)", "module": "./index.js", "main": "./lib/index.js", @@ -49,8 +49,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-isec/CHANGELOG.md b/packages/geom-isec/CHANGELOG.md index 97ce1b4137..dc8929ad12 100644 --- a/packages/geom-isec/CHANGELOG.md +++ b/packages/geom-isec/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.7.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.7.2...@thi.ng/geom-isec@0.7.3) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-isec + + + + + # [0.7.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.6.1...@thi.ng/geom-isec@0.7.0) (2020-11-24) diff --git a/packages/geom-isec/package.json b/packages/geom-isec/package.json index e31294f3c3..76c6a5b77d 100644 --- a/packages/geom-isec/package.json +++ b/packages/geom-isec/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-isec", - "version": "0.7.2", + "version": "0.7.3", "description": "2D/3D shape intersection checks", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/geom-api": "^1.1.4", - "@thi.ng/geom-closest-point": "^0.5.4", - "@thi.ng/math": "^2.2.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/geom-api": "^2.0.0", + "@thi.ng/geom-closest-point": "^0.5.5", + "@thi.ng/math": "^3.0.0", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-isoline/CHANGELOG.md b/packages/geom-isoline/CHANGELOG.md index a8d7c3d870..a85351578a 100644 --- a/packages/geom-isoline/CHANGELOG.md +++ b/packages/geom-isoline/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.69](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.68...@thi.ng/geom-isoline@0.1.69) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-isoline + + + + + ## [0.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.24...@thi.ng/geom-isoline@0.1.25) (2019-08-21) ### Performance Improvements diff --git a/packages/geom-isoline/package.json b/packages/geom-isoline/package.json index b3216b1e33..f868c9a3e3 100644 --- a/packages/geom-isoline/package.json +++ b/packages/geom-isoline/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-isoline", - "version": "0.1.68", + "version": "0.1.69", "description": "Fast 2D contour line extraction / generation", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-poly-utils/CHANGELOG.md b/packages/geom-poly-utils/CHANGELOG.md index bc840b754d..e8a8563739 100644 --- a/packages/geom-poly-utils/CHANGELOG.md +++ b/packages/geom-poly-utils/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.2.2...@thi.ng/geom-poly-utils@0.3.0) (2020-12-22) + + +### Features + +* **geom-poly-utils:** add tangents(), smoothTangents() ([12a9d8a](https://github.com/thi-ng/umbrella/commit/12a9d8a641672f4c3e007a80dd08cfe9b54ce650)) + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.66...@thi.ng/geom-poly-utils@0.2.0) (2020-11-24) diff --git a/packages/geom-poly-utils/package.json b/packages/geom-poly-utils/package.json index 7ee077676d..23fd265060 100644 --- a/packages/geom-poly-utils/package.json +++ b/packages/geom-poly-utils/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-poly-utils", - "version": "0.2.2", + "version": "0.3.0", "description": "2D polygon/polyline analysis & processing utilities", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/geom-api": "^1.1.4", - "@thi.ng/math": "^2.2.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/geom-api": "^2.0.0", + "@thi.ng/math": "^3.0.0", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-resample/CHANGELOG.md b/packages/geom-resample/CHANGELOG.md index 57290c39f8..e6643ca89c 100644 --- a/packages/geom-resample/CHANGELOG.md +++ b/packages/geom-resample/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.51](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.50...@thi.ng/geom-resample@0.2.51) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-resample + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.1.17...@thi.ng/geom-resample@0.2.0) (2019-07-07) ### Features diff --git a/packages/geom-resample/package.json b/packages/geom-resample/package.json index eef3bd5d8d..1bf3dcb3e7 100644 --- a/packages/geom-resample/package.json +++ b/packages/geom-resample/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-resample", - "version": "0.2.50", + "version": "0.2.51", "description": "Customizable nD polyline interpolation, re-sampling, splitting & nearest point computation", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/checks": "^2.7.11", - "@thi.ng/geom-api": "^1.1.4", - "@thi.ng/geom-closest-point": "^0.5.4", - "@thi.ng/math": "^2.2.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/checks": "^2.7.12", + "@thi.ng/geom-api": "^2.0.0", + "@thi.ng/geom-closest-point": "^0.5.5", + "@thi.ng/math": "^3.0.0", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-splines/CHANGELOG.md b/packages/geom-splines/CHANGELOG.md index e85463a01f..350b933e19 100644 --- a/packages/geom-splines/CHANGELOG.md +++ b/packages/geom-splines/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.5.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.37...@thi.ng/geom-splines@0.5.38) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-splines + + + + + # [0.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.4.5...@thi.ng/geom-splines@0.5.0) (2020-02-25) diff --git a/packages/geom-splines/package.json b/packages/geom-splines/package.json index 7f08dd1309..b5aafab5cc 100644 --- a/packages/geom-splines/package.json +++ b/packages/geom-splines/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-splines", - "version": "0.5.37", + "version": "0.5.38", "description": "nD cubic & quadratic curve analysis, conversion, interpolation, splitting", "module": "./index.js", "main": "./lib/index.js", @@ -49,13 +49,13 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/geom-api": "^1.1.4", - "@thi.ng/geom-arc": "^0.3.17", - "@thi.ng/geom-resample": "^0.2.50", - "@thi.ng/math": "^2.2.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/geom-api": "^2.0.0", + "@thi.ng/geom-arc": "^0.3.18", + "@thi.ng/geom-resample": "^0.2.51", + "@thi.ng/math": "^3.0.0", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-subdiv-curve/CHANGELOG.md b/packages/geom-subdiv-curve/CHANGELOG.md index d776894b65..476e5cfc4a 100644 --- a/packages/geom-subdiv-curve/CHANGELOG.md +++ b/packages/geom-subdiv-curve/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.69](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.68...@thi.ng/geom-subdiv-curve@0.1.69) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-subdiv-curve + + + + + # 0.1.0 (2019-02-05) ### Features diff --git a/packages/geom-subdiv-curve/package.json b/packages/geom-subdiv-curve/package.json index bf93fda01f..bd6b1927e0 100644 --- a/packages/geom-subdiv-curve/package.json +++ b/packages/geom-subdiv-curve/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-subdiv-curve", - "version": "0.1.68", + "version": "0.1.69", "description": "Freely customizable, iterative nD subdivision curves for open / closed geometries", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/geom-api": "^1.1.4", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/geom-api": "^2.0.0", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-tessellate/CHANGELOG.md b/packages/geom-tessellate/CHANGELOG.md index fbd9865da0..d0ed1ce034 100644 --- a/packages/geom-tessellate/CHANGELOG.md +++ b/packages/geom-tessellate/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.52](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.51...@thi.ng/geom-tessellate@0.2.52) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-tessellate + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.1.17...@thi.ng/geom-tessellate@0.2.0) (2019-07-07) ### Features diff --git a/packages/geom-tessellate/package.json b/packages/geom-tessellate/package.json index eb8c1281d4..c09806779b 100644 --- a/packages/geom-tessellate/package.json +++ b/packages/geom-tessellate/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-tessellate", - "version": "0.2.51", + "version": "0.2.52", "description": "2D/3D convex polygon tessellators", "module": "./index.js", "main": "./lib/index.js", @@ -49,12 +49,12 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/checks": "^2.7.11", - "@thi.ng/geom-api": "^1.1.4", - "@thi.ng/geom-isec": "^0.7.2", - "@thi.ng/geom-poly-utils": "^0.2.2", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/checks": "^2.7.12", + "@thi.ng/geom-api": "^2.0.0", + "@thi.ng/geom-isec": "^0.7.3", + "@thi.ng/geom-poly-utils": "^0.3.0", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom-voronoi/CHANGELOG.md b/packages/geom-voronoi/CHANGELOG.md index 5f0f7d0564..0eb5b8aa84 100644 --- a/packages/geom-voronoi/CHANGELOG.md +++ b/packages/geom-voronoi/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.13...@thi.ng/geom-voronoi@0.2.14) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/geom-voronoi + + + + + ## [0.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.2.1...@thi.ng/geom-voronoi@0.2.2) (2020-07-28) diff --git a/packages/geom-voronoi/package.json b/packages/geom-voronoi/package.json index c47d801359..b6dcbf4baa 100644 --- a/packages/geom-voronoi/package.json +++ b/packages/geom-voronoi/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-voronoi", - "version": "0.2.13", + "version": "0.2.14", "description": "Fast, incremental 2D Delaunay & Voronoi mesh implementation", "module": "./index.js", "main": "./lib/index.js", @@ -49,15 +49,15 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/geom-clip-line": "^1.2.13", - "@thi.ng/geom-clip-poly": "^1.0.38", - "@thi.ng/geom-isec": "^0.7.2", - "@thi.ng/geom-poly-utils": "^0.2.2", - "@thi.ng/math": "^2.2.2", - "@thi.ng/quad-edge": "^0.2.26", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/geom-clip-line": "^1.2.14", + "@thi.ng/geom-clip-poly": "^1.0.39", + "@thi.ng/geom-isec": "^0.7.3", + "@thi.ng/geom-poly-utils": "^0.3.0", + "@thi.ng/math": "^3.0.0", + "@thi.ng/quad-edge": "^0.2.27", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/geom/CHANGELOG.md b/packages/geom/CHANGELOG.md index 88efe974ae..1894c2e6ff 100644 --- a/packages/geom/CHANGELOG.md +++ b/packages/geom/CHANGELOG.md @@ -3,6 +3,32 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.13.4...@thi.ng/geom@2.0.0) (2020-12-22) + + +### Bug Fixes + +* **geom:** fix [#268](https://github.com/thi-ng/umbrella/issues/268) add Group.copyTransformed() ([2da6c63](https://github.com/thi-ng/umbrella/commit/2da6c63b5a2dbc45bc1272eaf592d3d74d8ce74e)) + + +### Code Refactoring + +* **geom:** fix [#256](https://github.com/thi-ng/umbrella/issues/256) replace enum w/ type alias ([67988ad](https://github.com/thi-ng/umbrella/commit/67988ad31f478b28de85e40d8ab7c51501ef4acb)) +* **geom:** fix [#256](https://github.com/thi-ng/umbrella/issues/256) replace Type enum w/ alias ([ef7ba74](https://github.com/thi-ng/umbrella/commit/ef7ba74c189755d760d84c700b0c970a281a3b04)) + + +### BREAKING CHANGES + +* **geom:** replace Type enum returned by IShape.type w/ string consts + +- update all shape classes +- update all ops/multimethod dispatches +* **geom:** replace SegmentType w/ type alias + + + + + ## [1.13.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.13.0...@thi.ng/geom@1.13.1) (2020-11-24) diff --git a/packages/geom/package.json b/packages/geom/package.json index 4e499f6e44..cd5d1c6419 100644 --- a/packages/geom/package.json +++ b/packages/geom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom", - "version": "1.13.4", + "version": "2.0.0", "description": "Functional, polymorphic API for 2D geometry types & SVG generation", "module": "./index.js", "main": "./lib/index.js", @@ -49,32 +49,32 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/arrays": "^0.8.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/defmulti": "^1.3.2", - "@thi.ng/equiv": "^1.0.33", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/geom-api": "^1.1.4", - "@thi.ng/geom-arc": "^0.3.17", - "@thi.ng/geom-clip-line": "^1.2.13", - "@thi.ng/geom-clip-poly": "^1.0.38", - "@thi.ng/geom-closest-point": "^0.5.4", - "@thi.ng/geom-hull": "^0.0.70", - "@thi.ng/geom-isec": "^0.7.2", - "@thi.ng/geom-poly-utils": "^0.2.2", - "@thi.ng/geom-resample": "^0.2.50", - "@thi.ng/geom-splines": "^0.5.37", - "@thi.ng/geom-subdiv-curve": "^0.1.68", - "@thi.ng/geom-tessellate": "^0.2.51", - "@thi.ng/hiccup": "^3.6.4", - "@thi.ng/hiccup-svg": "^3.6.5", - "@thi.ng/math": "^2.2.2", - "@thi.ng/matrices": "^0.6.37", - "@thi.ng/random": "^2.1.2", - "@thi.ng/strings": "^1.11.2", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/arrays": "^0.8.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/defmulti": "^1.3.3", + "@thi.ng/equiv": "^1.0.34", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/geom-api": "^2.0.0", + "@thi.ng/geom-arc": "^0.3.18", + "@thi.ng/geom-clip-line": "^1.2.14", + "@thi.ng/geom-clip-poly": "^1.0.39", + "@thi.ng/geom-closest-point": "^0.5.5", + "@thi.ng/geom-hull": "^0.0.71", + "@thi.ng/geom-isec": "^0.7.3", + "@thi.ng/geom-poly-utils": "^0.3.0", + "@thi.ng/geom-resample": "^0.2.51", + "@thi.ng/geom-splines": "^0.5.38", + "@thi.ng/geom-subdiv-curve": "^0.1.69", + "@thi.ng/geom-tessellate": "^0.2.52", + "@thi.ng/hiccup": "^3.6.5", + "@thi.ng/hiccup-svg": "^3.6.6", + "@thi.ng/math": "^3.0.0", + "@thi.ng/matrices": "^0.6.38", + "@thi.ng/random": "^2.1.3", + "@thi.ng/strings": "^1.11.3", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/gp/CHANGELOG.md b/packages/gp/CHANGELOG.md index d3c7964d87..b9dc2f5239 100644 --- a/packages/gp/CHANGELOG.md +++ b/packages/gp/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.35...@thi.ng/gp@0.2.0) (2020-12-22) + + +### Code Refactoring + +* **gp:** fix [#256](https://github.com/thi-ng/umbrella/issues/256) replace enum w/ type alias ([6fd4291](https://github.com/thi-ng/umbrella/commit/6fd4291eb2be4baae93b3f365478f73990e044b0)) + + +### BREAKING CHANGES + +* **gp:** replace GeneType w/ type alias + + + + + # 0.1.0 (2019-11-30) ### Bug Fixes diff --git a/packages/gp/package.json b/packages/gp/package.json index 6a736c8b26..6c18aea1bb 100644 --- a/packages/gp/package.json +++ b/packages/gp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/gp", - "version": "0.1.35", + "version": "0.2.0", "description": "Genetic programming helpers & strategies (tree based & multi-expression programming)", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/math": "^2.2.2", - "@thi.ng/random": "^2.1.2", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/zipper": "^0.1.29" + "@thi.ng/api": "^6.13.5", + "@thi.ng/math": "^3.0.0", + "@thi.ng/random": "^2.1.3", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/zipper": "^0.1.30" }, "files": [ "*.js", diff --git a/packages/grid-iterators/CHANGELOG.md b/packages/grid-iterators/CHANGELOG.md index cf4afab137..4a4c567669 100644 --- a/packages/grid-iterators/CHANGELOG.md +++ b/packages/grid-iterators/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.4.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.4.15...@thi.ng/grid-iterators@0.4.16) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/grid-iterators + + + + + # [0.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.3.17...@thi.ng/grid-iterators@0.4.0) (2020-06-20) diff --git a/packages/grid-iterators/package.json b/packages/grid-iterators/package.json index e1c5251630..6f1107e1f6 100644 --- a/packages/grid-iterators/package.json +++ b/packages/grid-iterators/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/grid-iterators", - "version": "0.4.15", + "version": "0.4.16", "description": "2D grid iterators w/ multiple orderings", "module": "./index.js", "main": "./lib/index.js", @@ -50,11 +50,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/arrays": "^0.8.4", - "@thi.ng/binary": "^2.0.19", - "@thi.ng/morton": "^2.0.28", - "@thi.ng/random": "^2.1.2", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/arrays": "^0.8.5", + "@thi.ng/binary": "^2.0.20", + "@thi.ng/morton": "^2.0.29", + "@thi.ng/random": "^2.1.3", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/hdiff/CHANGELOG.md b/packages/hdiff/CHANGELOG.md index ebe6c94e55..f75fdd6453 100644 --- a/packages/hdiff/CHANGELOG.md +++ b/packages/hdiff/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdiff@0.1.19...@thi.ng/hdiff@0.1.20) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/hdiff + + + + + # 0.1.0 (2020-06-14) diff --git a/packages/hdiff/package.json b/packages/hdiff/package.json index e0a7a396e3..00da56b861 100644 --- a/packages/hdiff/package.json +++ b/packages/hdiff/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdiff", - "version": "0.1.19", + "version": "0.1.20", "description": "String diffing w/ hiccup output for further processing, e.g. with @thi.ng/hdom, @thi.ng/hiccup. Includes CLI util to generate HTML, with theme support and code folding", "module": "./index.js", "main": "./lib/index.js", @@ -51,11 +51,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/diff": "^3.2.35", - "@thi.ng/hiccup": "^3.6.4", - "@thi.ng/hiccup-css": "^1.1.42", - "@thi.ng/strings": "^1.11.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/diff": "^4.0.0", + "@thi.ng/hiccup": "^3.6.5", + "@thi.ng/hiccup-css": "^1.1.43", + "@thi.ng/strings": "^1.11.3" }, "files": [ "*.js", diff --git a/packages/hdom-canvas/CHANGELOG.md b/packages/hdom-canvas/CHANGELOG.md index fa9fb75273..519f21e3c6 100644 --- a/packages/hdom-canvas/CHANGELOG.md +++ b/packages/hdom-canvas/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.0.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@3.0.23...@thi.ng/hdom-canvas@3.0.24) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/hdom-canvas + + + + + # [3.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@2.4.26...@thi.ng/hdom-canvas@3.0.0) (2020-06-05) diff --git a/packages/hdom-canvas/package.json b/packages/hdom-canvas/package.json index 506addd4fc..49ab953fc4 100644 --- a/packages/hdom-canvas/package.json +++ b/packages/hdom-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom-canvas", - "version": "3.0.23", + "version": "3.0.24", "description": "@thi.ng/hdom component wrapper for declarative canvas scenegraphs", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/diff": "^3.2.35", - "@thi.ng/hdom": "^8.2.13", - "@thi.ng/hiccup-canvas": "^1.1.13" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/diff": "^4.0.0", + "@thi.ng/hdom": "^8.2.14", + "@thi.ng/hiccup-canvas": "^1.1.14" }, "files": [ "*.js", diff --git a/packages/hdom-components/CHANGELOG.md b/packages/hdom-components/CHANGELOG.md index c0e5e9270f..3f8879c52b 100644 --- a/packages/hdom-components/CHANGELOG.md +++ b/packages/hdom-components/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.0.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@4.0.17...@thi.ng/hdom-components@4.0.18) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/hdom-components + + + + + # [4.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@3.2.12...@thi.ng/hdom-components@4.0.0) (2020-06-07) diff --git a/packages/hdom-components/package.json b/packages/hdom-components/package.json index 1d4f5336de..b48542b091 100644 --- a/packages/hdom-components/package.json +++ b/packages/hdom-components/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom-components", - "version": "4.0.17", + "version": "4.0.18", "description": "Raw, skinnable UI & SVG components for @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -49,12 +49,12 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/adapt-dpi": "^1.0.11", - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/math": "^2.2.2", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/transducers-stats": "^1.1.43" + "@thi.ng/adapt-dpi": "^1.0.12", + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/math": "^3.0.0", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/transducers-stats": "^1.1.44" }, "files": [ "*.js", diff --git a/packages/hdom-mock/CHANGELOG.md b/packages/hdom-mock/CHANGELOG.md index 1960053efb..18a2851971 100644 --- a/packages/hdom-mock/CHANGELOG.md +++ b/packages/hdom-mock/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.1.45...@thi.ng/hdom-mock@1.1.46) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/hdom-mock + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.0.16...@thi.ng/hdom-mock@1.1.0) (2019-07-07) ### Features diff --git a/packages/hdom-mock/package.json b/packages/hdom-mock/package.json index 1f8d90f23a..a4cedc3bc4 100644 --- a/packages/hdom-mock/package.json +++ b/packages/hdom-mock/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom-mock", - "version": "1.1.45", + "version": "1.1.46", "description": "Mock base implementation for @thi.ng/hdom API", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/hdom": "^8.2.13" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/hdom": "^8.2.14" }, "files": [ "*.js", diff --git a/packages/hdom/CHANGELOG.md b/packages/hdom/CHANGELOG.md index 0d1086e009..a5abb5d07f 100644 --- a/packages/hdom/CHANGELOG.md +++ b/packages/hdom/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.2.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.2.13...@thi.ng/hdom@8.2.14) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/hdom + + + + + # [8.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.1.0...@thi.ng/hdom@8.2.0) (2020-07-02) diff --git a/packages/hdom/package.json b/packages/hdom/package.json index 24a0e648d9..72982a06ed 100644 --- a/packages/hdom/package.json +++ b/packages/hdom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom", - "version": "8.2.13", + "version": "8.2.14", "description": "Lightweight vanilla ES6 UI component trees with customizable branch-local behaviors", "module": "./index.js", "main": "./lib/index.js", @@ -40,7 +40,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.12.1", - "@thi.ng/atom": "^4.1.24", + "@thi.ng/atom": "^4.1.25", "@types/mocha": "^8.2.0", "@types/node": "^14.14.14", "mocha": "^8.2.1", @@ -50,13 +50,13 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/diff": "^3.2.35", - "@thi.ng/equiv": "^1.0.33", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/hiccup": "^3.6.4", - "@thi.ng/prefixes": "^0.1.8" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/diff": "^4.0.0", + "@thi.ng/equiv": "^1.0.34", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/hiccup": "^3.6.5", + "@thi.ng/prefixes": "^0.1.9" }, "files": [ "*.js", diff --git a/packages/heaps/CHANGELOG.md b/packages/heaps/CHANGELOG.md index ce0271e729..9f4330a6cf 100644 --- a/packages/heaps/CHANGELOG.md +++ b/packages/heaps/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.2.28...@thi.ng/heaps@1.2.29) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/heaps + + + + + # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.1.6...@thi.ng/heaps@1.2.0) (2020-01-24) ### Features diff --git a/packages/heaps/package.json b/packages/heaps/package.json index 3d088a6bc2..ad4185bf3b 100644 --- a/packages/heaps/package.json +++ b/packages/heaps/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/heaps", - "version": "1.2.28", + "version": "1.2.29", "description": "Various heap implementations for arbitrary values and with customizable ordering", "module": "./index.js", "main": "./lib/index.js", @@ -50,8 +50,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/compare": "^1.3.20" + "@thi.ng/api": "^6.13.5", + "@thi.ng/compare": "^1.3.21" }, "files": [ "*.js", diff --git a/packages/hex/CHANGELOG.md b/packages/hex/CHANGELOG.md index 0131c7e39f..40ee2983d4 100644 --- a/packages/hex/CHANGELOG.md +++ b/packages/hex/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/hex@0.1.1...@thi.ng/hex@0.1.2) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/hex + + + + + # 0.1.0 (2020-11-24) diff --git a/packages/hex/package.json b/packages/hex/package.json index e373ae3c05..02342fd519 100644 --- a/packages/hex/package.json +++ b/packages/hex/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hex", - "version": "0.1.1", + "version": "0.1.2", "description": "Hex string formatters for 4/8/16/24/32/48/64bit words", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/hiccup-canvas/CHANGELOG.md b/packages/hiccup-canvas/CHANGELOG.md index 904815912e..79045b5218 100644 --- a/packages/hiccup-canvas/CHANGELOG.md +++ b/packages/hiccup-canvas/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-canvas@1.1.13...@thi.ng/hiccup-canvas@1.1.14) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/hiccup-canvas + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-canvas@1.0.6...@thi.ng/hiccup-canvas@1.1.0) (2020-07-17) diff --git a/packages/hiccup-canvas/package.json b/packages/hiccup-canvas/package.json index f188023a4b..27d9913c94 100644 --- a/packages/hiccup-canvas/package.json +++ b/packages/hiccup-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-canvas", - "version": "1.1.13", + "version": "1.1.14", "description": "Hiccup shape tree renderer for vanilla Canvas 2D contexts", "module": "./index.js", "main": "./lib/index.js", @@ -48,11 +48,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/color": "^1.3.2", - "@thi.ng/math": "^2.2.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/color": "^2.0.0", + "@thi.ng/math": "^3.0.0", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/hiccup-carbon-icons/CHANGELOG.md b/packages/hiccup-carbon-icons/CHANGELOG.md index 86e40c94cb..07c5513df6 100644 --- a/packages/hiccup-carbon-icons/CHANGELOG.md +++ b/packages/hiccup-carbon-icons/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@2.0.7...@thi.ng/hiccup-carbon-icons@2.0.8) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/hiccup-carbon-icons + + + + + # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@1.0.51...@thi.ng/hiccup-carbon-icons@2.0.0) (2020-08-19) diff --git a/packages/hiccup-carbon-icons/package.json b/packages/hiccup-carbon-icons/package.json index 2b44ac9dbe..c048b504b3 100644 --- a/packages/hiccup-carbon-icons/package.json +++ b/packages/hiccup-carbon-icons/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-carbon-icons", - "version": "2.0.7", + "version": "2.0.8", "description": "Full set of IBM's Carbon icons in hiccup format", "module": "./index.js", "main": "./lib/index.js", @@ -42,7 +42,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.12.1", - "@thi.ng/hiccup": "^3.6.4", + "@thi.ng/hiccup": "^3.6.5", "@types/mocha": "^8.2.0", "@types/node": "^14.14.14", "mocha": "^8.2.1", diff --git a/packages/hiccup-css/CHANGELOG.md b/packages/hiccup-css/CHANGELOG.md index da135b5162..fed65d0c80 100644 --- a/packages/hiccup-css/CHANGELOG.md +++ b/packages/hiccup-css/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.42...@thi.ng/hiccup-css@1.1.43) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/hiccup-css + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.0.19...@thi.ng/hiccup-css@1.1.0) (2019-07-07) ### Features diff --git a/packages/hiccup-css/package.json b/packages/hiccup-css/package.json index 722c2585e4..64b505e526 100644 --- a/packages/hiccup-css/package.json +++ b/packages/hiccup-css/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-css", - "version": "1.1.42", + "version": "1.1.43", "description": "CSS from nested JS data structures", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/hiccup-html/CHANGELOG.md b/packages/hiccup-html/CHANGELOG.md index 62aaaf9026..e563bcaa6c 100644 --- a/packages/hiccup-html/CHANGELOG.md +++ b/packages/hiccup-html/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-html@0.3.9...@thi.ng/hiccup-html@0.3.10) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/hiccup-html + + + + + # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-html@0.2.0...@thi.ng/hiccup-html@0.3.0) (2020-07-09) diff --git a/packages/hiccup-html/package.json b/packages/hiccup-html/package.json index 45939edbea..dbdfe7e328 100644 --- a/packages/hiccup-html/package.json +++ b/packages/hiccup-html/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-html", - "version": "0.3.9", + "version": "0.3.10", "description": "100+ type-checked HTML5 element functions for @thi.ng/hiccup related infrastructure", "module": "./index.js", "main": "./lib/index.js", @@ -48,7 +48,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4" + "@thi.ng/api": "^6.13.5" }, "files": [ "*.js", diff --git a/packages/hiccup-markdown/CHANGELOG.md b/packages/hiccup-markdown/CHANGELOG.md index 03e7165551..1a24bf2d00 100644 --- a/packages/hiccup-markdown/CHANGELOG.md +++ b/packages/hiccup-markdown/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.38...@thi.ng/hiccup-markdown@1.2.39) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/hiccup-markdown + + + + + # [1.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.1.14...@thi.ng/hiccup-markdown@1.2.0) (2020-03-28) diff --git a/packages/hiccup-markdown/package.json b/packages/hiccup-markdown/package.json index 8bacea1530..e25dceb1e9 100644 --- a/packages/hiccup-markdown/package.json +++ b/packages/hiccup-markdown/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-markdown", - "version": "1.2.38", + "version": "1.2.39", "description": "Markdown parser & serializer from/to Hiccup format", "module": "./index.js", "main": "./lib/index.js", @@ -49,16 +49,16 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/arrays": "^0.8.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/defmulti": "^1.3.2", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/fsm": "^2.4.29", - "@thi.ng/hiccup": "^3.6.4", - "@thi.ng/strings": "^1.11.2", - "@thi.ng/text-canvas": "^0.2.35", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/arrays": "^0.8.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/defmulti": "^1.3.3", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/fsm": "^2.4.30", + "@thi.ng/hiccup": "^3.6.5", + "@thi.ng/strings": "^1.11.3", + "@thi.ng/text-canvas": "^0.2.36", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/hiccup-svg/CHANGELOG.md b/packages/hiccup-svg/CHANGELOG.md index 0384849533..f19d9f6749 100644 --- a/packages/hiccup-svg/CHANGELOG.md +++ b/packages/hiccup-svg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.6.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.6.5...@thi.ng/hiccup-svg@3.6.6) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/hiccup-svg + + + + + # [3.6.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.5.11...@thi.ng/hiccup-svg@3.6.0) (2020-09-13) diff --git a/packages/hiccup-svg/package.json b/packages/hiccup-svg/package.json index 9ad1003601..16a51f21f2 100644 --- a/packages/hiccup-svg/package.json +++ b/packages/hiccup-svg/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-svg", - "version": "3.6.5", + "version": "3.6.6", "description": "SVG element functions for @thi.ng/hiccup & @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/checks": "^2.7.11", - "@thi.ng/color": "^1.3.2", - "@thi.ng/prefixes": "^0.1.8" + "@thi.ng/checks": "^2.7.12", + "@thi.ng/color": "^2.0.0", + "@thi.ng/prefixes": "^0.1.9" }, "files": [ "*.js", diff --git a/packages/hiccup/CHANGELOG.md b/packages/hiccup/CHANGELOG.md index 79337e8fde..1ceb3de6de 100644 --- a/packages/hiccup/CHANGELOG.md +++ b/packages/hiccup/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.6.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.6.4...@thi.ng/hiccup@3.6.5) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/hiccup + + + + + # [3.6.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.5.8...@thi.ng/hiccup@3.6.0) (2020-09-13) diff --git a/packages/hiccup/package.json b/packages/hiccup/package.json index 5214d815af..cde7472df8 100644 --- a/packages/hiccup/package.json +++ b/packages/hiccup/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup", - "version": "3.6.4", + "version": "3.6.5", "description": "HTML/SVG/XML serialization of nested data structures, iterables & closures", "module": "./index.js", "main": "./lib/index.js", @@ -40,7 +40,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.12.1", - "@thi.ng/atom": "^4.1.24", + "@thi.ng/atom": "^4.1.25", "@types/mocha": "^8.2.0", "@types/node": "^14.14.14", "mocha": "^8.2.1", @@ -50,10 +50,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/prefixes": "^0.1.8" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/prefixes": "^0.1.9" }, "files": [ "*.js", diff --git a/packages/idgen/CHANGELOG.md b/packages/idgen/CHANGELOG.md index cc10273c49..5e1b177634 100644 --- a/packages/idgen/CHANGELOG.md +++ b/packages/idgen/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.2.27...@thi.ng/idgen@0.2.28) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/idgen + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.1.0...@thi.ng/idgen@0.2.0) (2020-01-24) ### Features diff --git a/packages/idgen/package.json b/packages/idgen/package.json index e7af7e7581..9d4ad2757f 100644 --- a/packages/idgen/package.json +++ b/packages/idgen/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/idgen", - "version": "0.2.27", + "version": "0.2.28", "description": "Generator of opaque numeric identifiers with optional support for ID versioning and efficient re-use", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", + "@thi.ng/api": "^6.13.5", "tslib": "2.0.1" }, "files": [ diff --git a/packages/iges/CHANGELOG.md b/packages/iges/CHANGELOG.md index e8c3a801bb..c6b56000c3 100644 --- a/packages/iges/CHANGELOG.md +++ b/packages/iges/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.53](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.52...@thi.ng/iges@1.1.53) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/iges + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.0.15...@thi.ng/iges@1.1.0) (2019-04-15) ### Features diff --git a/packages/iges/package.json b/packages/iges/package.json index 6625de46ee..67d8a59e7c 100644 --- a/packages/iges/package.json +++ b/packages/iges/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/iges", - "version": "1.1.52", + "version": "1.1.53", "description": "IGES 5.3 serializer for (currently only) polygonal geometry, both open & closed", "module": "./index.js", "main": "./lib/index.js", @@ -49,12 +49,12 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/defmulti": "^1.3.2", - "@thi.ng/strings": "^1.11.2", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/defmulti": "^1.3.3", + "@thi.ng/strings": "^1.11.3", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/imgui/CHANGELOG.md b/packages/imgui/CHANGELOG.md index ed6551c822..df0c83935f 100644 --- a/packages/imgui/CHANGELOG.md +++ b/packages/imgui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.45...@thi.ng/imgui@0.2.46) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/imgui + + + + + ## [0.2.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.41...@thi.ng/imgui@0.2.42) (2020-11-24) diff --git a/packages/imgui/package.json b/packages/imgui/package.json index 6e03ba6d05..de0cd6bd00 100644 --- a/packages/imgui/package.json +++ b/packages/imgui/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/imgui", - "version": "0.2.45", + "version": "0.2.46", "description": "Immediate mode GUI with flexible state handling & data only shape output", "module": "./index.js", "main": "./lib/index.js", @@ -49,16 +49,16 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/geom": "^1.13.4", - "@thi.ng/geom-api": "^1.1.4", - "@thi.ng/geom-isec": "^0.7.2", - "@thi.ng/geom-tessellate": "^0.2.51", - "@thi.ng/layout": "^0.1.25", - "@thi.ng/math": "^2.2.2", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/geom": "^2.0.0", + "@thi.ng/geom-api": "^2.0.0", + "@thi.ng/geom-isec": "^0.7.3", + "@thi.ng/geom-tessellate": "^0.2.52", + "@thi.ng/layout": "^0.1.26", + "@thi.ng/math": "^3.0.0", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/interceptors/CHANGELOG.md b/packages/interceptors/CHANGELOG.md index f127eeef0f..8f76a6a3aa 100644 --- a/packages/interceptors/CHANGELOG.md +++ b/packages/interceptors/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.2.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.2.35...@thi.ng/interceptors@2.2.36) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/interceptors + + + + + # [2.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.1.3...@thi.ng/interceptors@2.2.0) (2019-08-21) ### Features diff --git a/packages/interceptors/package.json b/packages/interceptors/package.json index a889fce4b0..6df1276142 100644 --- a/packages/interceptors/package.json +++ b/packages/interceptors/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/interceptors", - "version": "2.2.35", + "version": "2.2.36", "description": "Interceptor based event bus, side effect & immutable state handling", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/atom": "^4.1.24", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/paths": "^4.1.10" + "@thi.ng/api": "^6.13.5", + "@thi.ng/atom": "^4.1.25", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/paths": "^4.1.11" }, "files": [ "*.js", diff --git a/packages/intervals/CHANGELOG.md b/packages/intervals/CHANGELOG.md index 5f5076c36e..68f209227e 100644 --- a/packages/intervals/CHANGELOG.md +++ b/packages/intervals/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@2.1.2...@thi.ng/intervals@2.1.3) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/intervals + + + + + # [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@2.0.25...@thi.ng/intervals@2.1.0) (2020-11-24) diff --git a/packages/intervals/package.json b/packages/intervals/package.json index a0b6e5287f..320581f350 100644 --- a/packages/intervals/package.json +++ b/packages/intervals/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/intervals", - "version": "2.1.2", + "version": "2.1.3", "description": "Closed/open/semi-open interval data type, queries & operations", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/dlogic": "^1.0.35", - "@thi.ng/errors": "^1.2.24" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/dlogic": "^1.0.36", + "@thi.ng/errors": "^1.2.25" }, "files": [ "*.js", diff --git a/packages/iterators/CHANGELOG.md b/packages/iterators/CHANGELOG.md index 5f13fc94f7..bad05d4f49 100644 --- a/packages/iterators/CHANGELOG.md +++ b/packages/iterators/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.43...@thi.ng/iterators@5.1.44) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/iterators + + + + + # [5.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.0.19...@thi.ng/iterators@5.1.0) (2019-07-07) ### Bug Fixes diff --git a/packages/iterators/package.json b/packages/iterators/package.json index ef391cb2b4..786ef0367a 100644 --- a/packages/iterators/package.json +++ b/packages/iterators/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/iterators", - "version": "5.1.43", + "version": "5.1.44", "description": "Clojure inspired, composable ES6 iterators & generators", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/dcons": "^2.3.3", - "@thi.ng/errors": "^1.2.24" + "@thi.ng/api": "^6.13.5", + "@thi.ng/dcons": "^2.3.4", + "@thi.ng/errors": "^1.2.25" }, "files": [ "*.js", diff --git a/packages/layout/CHANGELOG.md b/packages/layout/CHANGELOG.md index 2f4f24c514..e3d6dda2e9 100644 --- a/packages/layout/CHANGELOG.md +++ b/packages/layout/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/layout@0.1.25...@thi.ng/layout@0.1.26) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/layout + + + + + # 0.1.0 (2020-02-25) diff --git a/packages/layout/package.json b/packages/layout/package.json index a10d3bd487..6191226764 100644 --- a/packages/layout/package.json +++ b/packages/layout/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/layout", - "version": "0.1.25", + "version": "0.1.26", "description": "Configurable nested 2D grid layout manager", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/checks": "^2.7.11" + "@thi.ng/checks": "^2.7.12" }, "files": [ "*.js", diff --git a/packages/leb128/CHANGELOG.md b/packages/leb128/CHANGELOG.md index d45d5109d1..3cd09a10d4 100644 --- a/packages/leb128/CHANGELOG.md +++ b/packages/leb128/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.37...@thi.ng/leb128@1.0.38) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/leb128 + + + + + ## [1.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.0...@thi.ng/leb128@1.0.1) (2019-11-30) ### Bug Fixes diff --git a/packages/leb128/package.json b/packages/leb128/package.json index b425b6df12..4c743345ee 100644 --- a/packages/leb128/package.json +++ b/packages/leb128/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/leb128", - "version": "1.0.37", + "version": "1.0.38", "description": "WASM based LEB128 encoder / decoder (signed & unsigned)", "module": "./index.js", "main": "./lib/index.js", @@ -50,9 +50,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/transducers-binary": "^0.5.33" + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/transducers-binary": "^0.6.0" }, "files": [ "*.js", diff --git a/packages/lsys/CHANGELOG.md b/packages/lsys/CHANGELOG.md index 24fc99ee9b..20a9ebd683 100644 --- a/packages/lsys/CHANGELOG.md +++ b/packages/lsys/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.66](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.65...@thi.ng/lsys@0.2.66) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/lsys + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.1.0...@thi.ng/lsys@0.2.0) (2019-02-26) ### Features diff --git a/packages/lsys/package.json b/packages/lsys/package.json index e5cc183f4a..eb41d2b26b 100644 --- a/packages/lsys/package.json +++ b/packages/lsys/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/lsys", - "version": "0.2.65", + "version": "0.2.66", "description": "Functional, extensible L-System architecture w/ support for probabilistic rules", "module": "./index.js", "main": "./lib/index.js", @@ -49,13 +49,13 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/compose": "^1.4.21", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/math": "^2.2.2", - "@thi.ng/random": "^2.1.2", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/compose": "^1.4.22", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/math": "^3.0.0", + "@thi.ng/random": "^2.1.3", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/malloc/CHANGELOG.md b/packages/malloc/CHANGELOG.md index d99a514938..87b5df3b6a 100644 --- a/packages/malloc/CHANGELOG.md +++ b/packages/malloc/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.2.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.2.3...@thi.ng/malloc@4.2.4) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/malloc + + + + + # [4.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.1.26...@thi.ng/malloc@4.2.0) (2020-10-19) diff --git a/packages/malloc/package.json b/packages/malloc/package.json index 64355ef2c5..ea67b0b89d 100644 --- a/packages/malloc/package.json +++ b/packages/malloc/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/malloc", - "version": "4.2.3", + "version": "4.2.4", "description": "ArrayBuffer based malloc() impl for hybrid JS/WASM use cases, based on thi.ng/tinyalloc", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/binary": "^2.0.19", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24" + "@thi.ng/api": "^6.13.5", + "@thi.ng/binary": "^2.0.20", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25" }, "files": [ "*.js", diff --git a/packages/math/CHANGELOG.md b/packages/math/CHANGELOG.md index b8b5c13418..453d5e6a8b 100644 --- a/packages/math/CHANGELOG.md +++ b/packages/math/CHANGELOG.md @@ -3,6 +3,39 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@2.2.2...@thi.ng/math@3.0.0) (2020-12-22) + + +### Bug Fixes + +* **math:** fix [#256](https://github.com/thi-ng/umbrella/issues/256) replace enum w/ type alias ([8f00375](https://github.com/thi-ng/umbrella/commit/8f00375722ff3e207f1711229acff69c3bd1343f)) + + +### Code Refactoring + +* **math:** update/fix sigmoid() behavior ([07a278f](https://github.com/thi-ng/umbrella/commit/07a278fdd82004610aa9b7acb585c3c841af24ba)) + + +### Features + +* **math:** add gaussian() ([138befe](https://github.com/thi-ng/umbrella/commit/138befe1f2d14eb9a4fb3829179b8d03d49e6bbc)) +* **math:** add more parametric T-norms ([38bd40e](https://github.com/thi-ng/umbrella/commit/38bd40e1595e318c6472a526e03c8c8a06ebf396)) +* **math:** add various T-norm functions ([ab4a810](https://github.com/thi-ng/umbrella/commit/ab4a810981c08c54365d5ea3212cd465d2589cf0)) + + +### BREAKING CHANGES + +* **math:** replace Crossing enum w/ type alias +* **math:** add new bias arg for sigmoid() to satisfy more use cases. +Use sigmoid01() for old behavior. + +- add/update docstrings +- add desmos links + + + + + # [2.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@2.1.1...@thi.ng/math@2.2.0) (2020-11-24) diff --git a/packages/math/package.json b/packages/math/package.json index 9366abfe5a..a63c705cf6 100644 --- a/packages/math/package.json +++ b/packages/math/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/math", - "version": "2.2.2", + "version": "3.0.0", "description": "Assorted common math functions & utilities", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4" + "@thi.ng/api": "^6.13.5" }, "files": [ "*.js", diff --git a/packages/matrices/CHANGELOG.md b/packages/matrices/CHANGELOG.md index baaa3f2b6d..cb6c61e765 100644 --- a/packages/matrices/CHANGELOG.md +++ b/packages/matrices/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.6.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.37...@thi.ng/matrices@0.6.38) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/matrices + + + + + # [0.6.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.5.12...@thi.ng/matrices@0.6.0) (2020-02-25) diff --git a/packages/matrices/package.json b/packages/matrices/package.json index 852755a57d..c05bcf86e3 100644 --- a/packages/matrices/package.json +++ b/packages/matrices/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/matrices", - "version": "0.6.37", + "version": "0.6.38", "description": "Matrix & quaternion operations for 2D/3D geometry processing", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/math": "^2.2.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/math": "^3.0.0", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/memoize/CHANGELOG.md b/packages/memoize/CHANGELOG.md index 470e4b086a..dbce87ece5 100644 --- a/packages/memoize/CHANGELOG.md +++ b/packages/memoize/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.1.6...@thi.ng/memoize@2.1.7) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/memoize + + + + + # [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.0.19...@thi.ng/memoize@2.1.0) (2020-08-20) diff --git a/packages/memoize/package.json b/packages/memoize/package.json index 01e27bdc3a..39c6fccddb 100644 --- a/packages/memoize/package.json +++ b/packages/memoize/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/memoize", - "version": "2.1.6", + "version": "2.1.7", "description": "Function memoization with configurable caching", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4" + "@thi.ng/api": "^6.13.5" }, "files": [ "*.js", diff --git a/packages/mime/CHANGELOG.md b/packages/mime/CHANGELOG.md index 23c8f98536..e92ee83004 100644 --- a/packages/mime/CHANGELOG.md +++ b/packages/mime/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/mime@0.1.25...@thi.ng/mime@0.1.26) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/mime + + + + + # 0.1.0 (2020-02-25) diff --git a/packages/mime/package.json b/packages/mime/package.json index e0fbb9266b..a2fcd9190b 100644 --- a/packages/mime/package.json +++ b/packages/mime/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/mime", - "version": "0.1.25", + "version": "0.1.26", "description": "350+ file extension to MIME type mappings, based on mime-db", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4" + "@thi.ng/api": "^6.13.5" }, "files": [ "*.js", diff --git a/packages/morton/CHANGELOG.md b/packages/morton/CHANGELOG.md index 55b8b27857..41f55835a1 100644 --- a/packages/morton/CHANGELOG.md +++ b/packages/morton/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@2.0.28...@thi.ng/morton@2.0.29) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/morton + + + + + ## [2.0.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@2.0.8...@thi.ng/morton@2.0.9) (2020-04-11) diff --git a/packages/morton/package.json b/packages/morton/package.json index cb39be32c6..4384f45418 100644 --- a/packages/morton/package.json +++ b/packages/morton/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/morton", - "version": "2.0.28", + "version": "2.0.29", "description": "Z-order curve / Morton encoding, decoding & range extraction for arbitrary dimensions", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/binary": "^2.0.19", - "@thi.ng/math": "^2.2.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/binary": "^2.0.20", + "@thi.ng/math": "^3.0.0" }, "files": [ "*.js", diff --git a/packages/oquery/CHANGELOG.md b/packages/oquery/CHANGELOG.md index c49c065fbd..1f1c437ec4 100644 --- a/packages/oquery/CHANGELOG.md +++ b/packages/oquery/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/oquery@0.2.1...@thi.ng/oquery@0.2.2) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/oquery + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/oquery@0.1.15...@thi.ng/oquery@0.2.0) (2020-12-07) diff --git a/packages/oquery/package.json b/packages/oquery/package.json index 7f9cd17b55..f7ce38c848 100644 --- a/packages/oquery/package.json +++ b/packages/oquery/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/oquery", - "version": "0.2.1", + "version": "0.2.2", "description": "Datalog-inspired, optimized pattern/predicate query engine for JS objects & arrays", "module": "./index.js", "main": "./lib/index.js", @@ -48,10 +48,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/defmulti": "^1.3.2", - "@thi.ng/equiv": "^1.0.33" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/defmulti": "^1.3.3", + "@thi.ng/equiv": "^1.0.34" }, "files": [ "*.js", diff --git a/packages/parse/CHANGELOG.md b/packages/parse/CHANGELOG.md index c9224d39f0..45fde688a0 100644 --- a/packages/parse/CHANGELOG.md +++ b/packages/parse/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.9.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.9.7...@thi.ng/parse@0.9.8) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/parse + + + + + # [0.9.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.8.2...@thi.ng/parse@0.9.0) (2020-08-17) diff --git a/packages/parse/package.json b/packages/parse/package.json index eba86f297f..5631750326 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/parse", - "version": "0.9.7", + "version": "0.9.8", "description": "Purely functional parser combinators & AST generation for generic inputs", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/defmulti": "^1.3.2", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/strings": "^1.11.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/defmulti": "^1.3.3", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/strings": "^1.11.3" }, "files": [ "*.js", diff --git a/packages/paths/CHANGELOG.md b/packages/paths/CHANGELOG.md index b0025f386f..a7f1368840 100644 --- a/packages/paths/CHANGELOG.md +++ b/packages/paths/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.1.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.1.10...@thi.ng/paths@4.1.11) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/paths + + + + + # [4.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.0.11...@thi.ng/paths@4.1.0) (2020-07-08) diff --git a/packages/paths/package.json b/packages/paths/package.json index 1d8971d4e7..1725d04bbb 100644 --- a/packages/paths/package.json +++ b/packages/paths/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/paths", - "version": "4.1.10", + "version": "4.1.11", "description": "Immutable, optimized and optionally typed path-based object property / array accessors with structural sharing", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25" }, "files": [ "*.js", diff --git a/packages/pixel/CHANGELOG.md b/packages/pixel/CHANGELOG.md index 0ef1d691f6..4f3d2a9770 100644 --- a/packages/pixel/CHANGELOG.md +++ b/packages/pixel/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.4.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.4.9...@thi.ng/pixel@0.4.10) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/pixel + + + + + # [0.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.3.6...@thi.ng/pixel@0.4.0) (2020-07-22) diff --git a/packages/pixel/package.json b/packages/pixel/package.json index c3c97368e5..083aecba89 100644 --- a/packages/pixel/package.json +++ b/packages/pixel/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pixel", - "version": "0.4.9", + "version": "0.4.10", "description": "Typed array backed, packed integer and unpacked floating point pixel buffers w/ customizable formats, blitting, dithering, conversions", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/math": "^2.2.2", - "@thi.ng/porter-duff": "^0.1.34" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/math": "^3.0.0", + "@thi.ng/porter-duff": "^0.1.35" }, "files": [ "*.js", diff --git a/packages/pointfree-lang/CHANGELOG.md b/packages/pointfree-lang/CHANGELOG.md index cb63b54da2..dec2739b78 100644 --- a/packages/pointfree-lang/CHANGELOG.md +++ b/packages/pointfree-lang/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.4.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.4.17...@thi.ng/pointfree-lang@1.4.18) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/pointfree-lang + + + + + # [1.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.3.0...@thi.ng/pointfree-lang@1.4.0) (2020-04-27) diff --git a/packages/pointfree-lang/package.json b/packages/pointfree-lang/package.json index 64f46c43dc..cfc438237e 100644 --- a/packages/pointfree-lang/package.json +++ b/packages/pointfree-lang/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pointfree-lang", - "version": "1.4.17", + "version": "1.4.18", "description": "Forth style syntax layer/compiler & CLI for the @thi.ng/pointfree DSL", "module": "./index.js", "main": "./lib/index.js", @@ -53,10 +53,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/bench": "^2.0.24", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/pointfree": "^2.0.18", + "@thi.ng/api": "^6.13.5", + "@thi.ng/bench": "^2.0.25", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/pointfree": "^2.0.19", "commander": "^6.2.0" }, "files": [ diff --git a/packages/pointfree/CHANGELOG.md b/packages/pointfree/CHANGELOG.md index fd1c800859..2abf0cacc4 100644 --- a/packages/pointfree/CHANGELOG.md +++ b/packages/pointfree/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@2.0.18...@thi.ng/pointfree@2.0.19) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/pointfree + + + + + # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@1.3.3...@thi.ng/pointfree@2.0.0) (2020-04-16) diff --git a/packages/pointfree/package.json b/packages/pointfree/package.json index 8336b4a530..ce37a53972 100644 --- a/packages/pointfree/package.json +++ b/packages/pointfree/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pointfree", - "version": "2.0.18", + "version": "2.0.19", "description": "Pointfree functional composition / Forth style stack execution engine", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/compose": "^1.4.21", - "@thi.ng/equiv": "^1.0.33", - "@thi.ng/errors": "^1.2.24" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/compose": "^1.4.22", + "@thi.ng/equiv": "^1.0.34", + "@thi.ng/errors": "^1.2.25" }, "files": [ "*.js", diff --git a/packages/poisson/CHANGELOG.md b/packages/poisson/CHANGELOG.md index 92405c60e4..60346bc0b9 100644 --- a/packages/poisson/CHANGELOG.md +++ b/packages/poisson/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.1.21...@thi.ng/poisson@1.1.22) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/poisson + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.0.17...@thi.ng/poisson@1.1.0) (2020-05-29) diff --git a/packages/poisson/package.json b/packages/poisson/package.json index 51f30fc642..13b7d77524 100644 --- a/packages/poisson/package.json +++ b/packages/poisson/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/poisson", - "version": "1.1.21", + "version": "1.1.22", "description": "nD Stratified grid and Poisson-disc sampling w/ support for spatial density functions and custom PRNGs", "module": "./index.js", "main": "./lib/index.js", @@ -49,12 +49,12 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/geom-api": "^1.1.4", - "@thi.ng/random": "^2.1.2", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/geom-api": "^2.0.0", + "@thi.ng/random": "^2.1.3", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/porter-duff/CHANGELOG.md b/packages/porter-duff/CHANGELOG.md index c81030290e..17ffd2189c 100644 --- a/packages/porter-duff/CHANGELOG.md +++ b/packages/porter-duff/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/porter-duff@0.1.34...@thi.ng/porter-duff@0.1.35) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/porter-duff + + + + + # 0.1.0 (2019-07-31) ### Bug Fixes diff --git a/packages/porter-duff/package.json b/packages/porter-duff/package.json index 0f1031868c..71b413671c 100644 --- a/packages/porter-duff/package.json +++ b/packages/porter-duff/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/porter-duff", - "version": "0.1.34", + "version": "0.1.35", "description": "Porter-Duff operators for packed ints & float-array alpha compositing", "module": "./index.js", "main": "./lib/index.js", @@ -49,8 +49,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/math": "^2.2.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/math": "^3.0.0" }, "files": [ "*.js", diff --git a/packages/prefixes/CHANGELOG.md b/packages/prefixes/CHANGELOG.md index 6663144b60..6db966b969 100644 --- a/packages/prefixes/CHANGELOG.md +++ b/packages/prefixes/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/prefixes@0.1.8...@thi.ng/prefixes@0.1.9) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/prefixes + + + + + # 0.1.0 (2020-07-02) diff --git a/packages/prefixes/package.json b/packages/prefixes/package.json index f0c98a752e..1f0121ef07 100644 --- a/packages/prefixes/package.json +++ b/packages/prefixes/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/prefixes", - "version": "0.1.8", + "version": "0.1.9", "description": "50+ Linked Data vocabulary prefixes and their namespace URLs", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/quad-edge/CHANGELOG.md b/packages/quad-edge/CHANGELOG.md index 86b193a40a..043b57949e 100644 --- a/packages/quad-edge/CHANGELOG.md +++ b/packages/quad-edge/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/quad-edge@0.2.26...@thi.ng/quad-edge@0.2.27) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/quad-edge + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/quad-edge@0.1.4...@thi.ng/quad-edge@0.2.0) (2019-07-07) ### Features diff --git a/packages/quad-edge/package.json b/packages/quad-edge/package.json index aa6172ff94..3aabc5debd 100644 --- a/packages/quad-edge/package.json +++ b/packages/quad-edge/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/quad-edge", - "version": "0.2.26", + "version": "0.2.27", "description": "Quadedge data structure after Guibas & Stolfi", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/ramp/CHANGELOG.md b/packages/ramp/CHANGELOG.md index 20c329a0af..cd3ef09b3a 100644 --- a/packages/ramp/CHANGELOG.md +++ b/packages/ramp/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.39...@thi.ng/ramp@0.1.40) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/ramp + + + + + # 0.1.0 (2020-01-24) ### Features diff --git a/packages/ramp/package.json b/packages/ramp/package.json index 758ed87e5c..52c3ac9977 100644 --- a/packages/ramp/package.json +++ b/packages/ramp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/ramp", - "version": "0.1.39", + "version": "0.1.40", "description": "Parametric interpolated 1D lookup tables for remapping values", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/arrays": "^0.8.4", - "@thi.ng/compare": "^1.3.20", - "@thi.ng/math": "^2.2.2", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/arrays": "^0.8.5", + "@thi.ng/compare": "^1.3.21", + "@thi.ng/math": "^3.0.0", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/random/CHANGELOG.md b/packages/random/CHANGELOG.md index 61344117a6..f2886827a2 100644 --- a/packages/random/CHANGELOG.md +++ b/packages/random/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@2.1.2...@thi.ng/random@2.1.3) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/random + + + + + ## [2.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@2.1.0...@thi.ng/random@2.1.1) (2020-11-26) diff --git a/packages/random/package.json b/packages/random/package.json index 37233d62d3..324ffd14e4 100644 --- a/packages/random/package.json +++ b/packages/random/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/random", - "version": "2.1.2", + "version": "2.1.3", "description": "Pseudo-random number generators w/ unified API", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/hex": "^0.1.1" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/hex": "^0.1.2" }, "files": [ "*.js", diff --git a/packages/range-coder/CHANGELOG.md b/packages/range-coder/CHANGELOG.md index ee07517104..7a6ec16c13 100644 --- a/packages/range-coder/CHANGELOG.md +++ b/packages/range-coder/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.63](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.62...@thi.ng/range-coder@1.0.63) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/range-coder + + + + + # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@0.1.28...@thi.ng/range-coder@1.0.0) (2019-01-21) ### Build System diff --git a/packages/range-coder/package.json b/packages/range-coder/package.json index e6538a3059..37e1944a8f 100644 --- a/packages/range-coder/package.json +++ b/packages/range-coder/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/range-coder", - "version": "1.0.62", + "version": "1.0.63", "description": "Binary data range encoder / decoder", "module": "./index.js", "main": "./lib/index.js", @@ -40,7 +40,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.12.1", - "@thi.ng/transducers": "^7.5.2", + "@thi.ng/transducers": "^7.5.3", "@types/mocha": "^8.2.0", "@types/node": "^14.14.14", "mocha": "^8.2.1", @@ -50,7 +50,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/bitstream": "^1.1.29" + "@thi.ng/bitstream": "^1.1.30" }, "files": [ "*.js", diff --git a/packages/rdom-canvas/CHANGELOG.md b/packages/rdom-canvas/CHANGELOG.md index 4093d488d0..3741b40872 100644 --- a/packages/rdom-canvas/CHANGELOG.md +++ b/packages/rdom-canvas/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-canvas@0.1.21...@thi.ng/rdom-canvas@0.1.22) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/rdom-canvas + + + + + ## [0.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-canvas@0.1.8...@thi.ng/rdom-canvas@0.1.9) (2020-07-28) diff --git a/packages/rdom-canvas/package.json b/packages/rdom-canvas/package.json index 347a24648f..77f563914f 100644 --- a/packages/rdom-canvas/package.json +++ b/packages/rdom-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rdom-canvas", - "version": "0.1.21", + "version": "0.1.22", "description": "@thi.ng/rdom component wrapper for @thi.ng/hiccup-canvas and declarative canvas drawing", "module": "./index.js", "main": "./lib/index.js", @@ -48,13 +48,13 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/adapt-dpi": "^1.0.11", - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/hiccup-canvas": "^1.1.13", - "@thi.ng/rdom": "^0.3.0", - "@thi.ng/rstream": "^5.0.10", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/adapt-dpi": "^1.0.12", + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/hiccup-canvas": "^1.1.14", + "@thi.ng/rdom": "^0.3.1", + "@thi.ng/rstream": "^5.0.11", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/rdom-components/CHANGELOG.md b/packages/rdom-components/CHANGELOG.md index 96ca3fa87e..e473a4bf66 100644 --- a/packages/rdom-components/CHANGELOG.md +++ b/packages/rdom-components/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-components@0.1.18...@thi.ng/rdom-components@0.1.19) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/rdom-components + + + + + ## [0.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom-components@0.1.1...@thi.ng/rdom-components@0.1.2) (2020-07-09) diff --git a/packages/rdom-components/package.json b/packages/rdom-components/package.json index e1955b5f23..6a8c7678e9 100644 --- a/packages/rdom-components/package.json +++ b/packages/rdom-components/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rdom-components", - "version": "0.1.18", + "version": "0.1.19", "description": "Collection of unstyled, customizable components for @thi.ng/rdom", "module": "./index.js", "main": "./lib/index.js", @@ -48,13 +48,13 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/associative": "^5.0.11", - "@thi.ng/hiccup-html": "^0.3.9", - "@thi.ng/rdom": "^0.3.0", - "@thi.ng/rstream": "^5.0.10", - "@thi.ng/strings": "^1.11.2", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/associative": "^5.0.12", + "@thi.ng/hiccup-html": "^0.3.10", + "@thi.ng/rdom": "^0.3.1", + "@thi.ng/rstream": "^5.0.11", + "@thi.ng/strings": "^1.11.3", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/rdom/CHANGELOG.md b/packages/rdom/CHANGELOG.md index 8b0d553cc8..d80d062307 100644 --- a/packages/rdom/CHANGELOG.md +++ b/packages/rdom/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom@0.3.0...@thi.ng/rdom@0.3.1) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/rdom + + + + + # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rdom@0.2.16...@thi.ng/rdom@0.3.0) (2020-12-07) diff --git a/packages/rdom/package.json b/packages/rdom/package.json index 5efd359e02..460e106b75 100644 --- a/packages/rdom/package.json +++ b/packages/rdom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rdom", - "version": "0.3.0", + "version": "0.3.1", "description": "Lightweight, reactive, VDOM-less UI/DOM components with async lifecycle and @thi.ng/hiccup compatible", "module": "./index.js", "main": "./lib/index.js", @@ -49,14 +49,14 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/hiccup": "^3.6.4", - "@thi.ng/paths": "^4.1.10", - "@thi.ng/prefixes": "^0.1.8", - "@thi.ng/rstream": "^5.0.10", - "@thi.ng/strings": "^1.11.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/hiccup": "^3.6.5", + "@thi.ng/paths": "^4.1.11", + "@thi.ng/prefixes": "^0.1.9", + "@thi.ng/rstream": "^5.0.11", + "@thi.ng/strings": "^1.11.3" }, "files": [ "*.js", diff --git a/packages/resolve-map/CHANGELOG.md b/packages/resolve-map/CHANGELOG.md index 3e4b0afc68..e53e4b9d5d 100644 --- a/packages/resolve-map/CHANGELOG.md +++ b/packages/resolve-map/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.2.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.2.9...@thi.ng/resolve-map@4.2.10) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/resolve-map + + + + + # [4.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.1.31...@thi.ng/resolve-map@4.2.0) (2020-07-18) diff --git a/packages/resolve-map/package.json b/packages/resolve-map/package.json index cb04392d0e..c381b9f93a 100644 --- a/packages/resolve-map/package.json +++ b/packages/resolve-map/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/resolve-map", - "version": "4.2.9", + "version": "4.2.10", "description": "DAG resolution of vanilla objects & arrays with internally linked values", "module": "./index.js", "main": "./lib/index.js", @@ -48,10 +48,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/paths": "^4.1.10" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/paths": "^4.1.11" }, "files": [ "*.js", diff --git a/packages/rle-pack/CHANGELOG.md b/packages/rle-pack/CHANGELOG.md index a677ac684e..d74f631f39 100644 --- a/packages/rle-pack/CHANGELOG.md +++ b/packages/rle-pack/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@2.1.29...@thi.ng/rle-pack@2.1.30) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/rle-pack + + + + + # [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@2.0.6...@thi.ng/rle-pack@2.1.0) (2019-07-07) ### Features diff --git a/packages/rle-pack/package.json b/packages/rle-pack/package.json index 7074ef925f..7ba7d0fead 100644 --- a/packages/rle-pack/package.json +++ b/packages/rle-pack/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rle-pack", - "version": "2.1.29", + "version": "2.1.30", "description": "Binary run-length encoding packer w/ flexible repeat bit widths", "module": "./index.js", "main": "./lib/index.js", @@ -50,8 +50,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/bitstream": "^1.1.29", - "@thi.ng/errors": "^1.2.24" + "@thi.ng/bitstream": "^1.1.30", + "@thi.ng/errors": "^1.2.25" }, "files": [ "*.js", diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md index 8340d07a82..17d74aa789 100644 --- a/packages/router/CHANGELOG.md +++ b/packages/router/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@2.0.36...@thi.ng/router@2.0.37) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/router + + + + + # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@1.0.12...@thi.ng/router@2.0.0) (2019-07-07) ### Code Refactoring diff --git a/packages/router/package.json b/packages/router/package.json index 217f5eb7b7..de9317bd46 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/router", - "version": "2.0.36", + "version": "2.0.37", "description": "Generic router for browser & non-browser based applications", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/equiv": "^1.0.33", - "@thi.ng/errors": "^1.2.24", + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/equiv": "^1.0.34", + "@thi.ng/errors": "^1.2.25", "tslib": "2.0.1" }, "files": [ diff --git a/packages/rstream-csp/CHANGELOG.md b/packages/rstream-csp/CHANGELOG.md index 1d09004480..308c4bed6b 100644 --- a/packages/rstream-csp/CHANGELOG.md +++ b/packages/rstream-csp/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.45...@thi.ng/rstream-csp@2.0.46) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/rstream-csp + + + + + # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@1.0.33...@thi.ng/rstream-csp@2.0.0) (2019-11-30) ### Code Refactoring diff --git a/packages/rstream-csp/package.json b/packages/rstream-csp/package.json index d786f73d45..08331a21b1 100644 --- a/packages/rstream-csp/package.json +++ b/packages/rstream-csp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-csp", - "version": "2.0.45", + "version": "2.0.46", "description": "@thi.ng/csp bridge module for @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -49,8 +49,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/csp": "^1.1.43", - "@thi.ng/rstream": "^5.0.10" + "@thi.ng/csp": "^1.1.44", + "@thi.ng/rstream": "^5.0.11" }, "files": [ "*.js", diff --git a/packages/rstream-dot/CHANGELOG.md b/packages/rstream-dot/CHANGELOG.md index 27b3c838c9..bb312966b2 100644 --- a/packages/rstream-dot/CHANGELOG.md +++ b/packages/rstream-dot/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.53](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.52...@thi.ng/rstream-dot@1.1.53) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/rstream-dot + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.0.26...@thi.ng/rstream-dot@1.1.0) (2019-07-07) ### Features diff --git a/packages/rstream-dot/package.json b/packages/rstream-dot/package.json index f5d35e1769..ec74b8c9b0 100644 --- a/packages/rstream-dot/package.json +++ b/packages/rstream-dot/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-dot", - "version": "1.1.52", + "version": "1.1.53", "description": "Graphviz DOT conversion of @thi.ng/rstream dataflow graph topologies", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/rstream": "^5.0.10" + "@thi.ng/rstream": "^5.0.11" }, "files": [ "*.js", diff --git a/packages/rstream-gestures/CHANGELOG.md b/packages/rstream-gestures/CHANGELOG.md index 3d519b4d1b..c2fa6b0a1a 100644 --- a/packages/rstream-gestures/CHANGELOG.md +++ b/packages/rstream-gestures/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.45...@thi.ng/rstream-gestures@3.0.0) (2020-12-22) + + +### Code Refactoring + +* **rstream-gestures:** fix [#256](https://github.com/thi-ng/umbrella/issues/256) replace GestureType enum ([80ef1e1](https://github.com/thi-ng/umbrella/commit/80ef1e1558070421cf6ed2d707a55b91fe1c290d)) + + +### BREAKING CHANGES + +* **rstream-gestures:** replace GestureType w/ type alias + + + + + ## [2.0.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.39...@thi.ng/rstream-gestures@2.0.40) (2020-09-27) diff --git a/packages/rstream-gestures/package.json b/packages/rstream-gestures/package.json index d23c7ca8ca..412f31c2b0 100644 --- a/packages/rstream-gestures/package.json +++ b/packages/rstream-gestures/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-gestures", - "version": "2.0.45", + "version": "3.0.0", "description": "Unified mouse, mouse wheel & multi-touch event stream abstraction", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/math": "^2.2.2", - "@thi.ng/rstream": "^5.0.10", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/math": "^3.0.0", + "@thi.ng/rstream": "^5.0.11", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/rstream-graph/CHANGELOG.md b/packages/rstream-graph/CHANGELOG.md index 484e646d10..437ea7049b 100644 --- a/packages/rstream-graph/CHANGELOG.md +++ b/packages/rstream-graph/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.2.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.46...@thi.ng/rstream-graph@3.2.47) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/rstream-graph + + + + + # [3.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.1.8...@thi.ng/rstream-graph@3.2.0) (2019-11-30) ### Bug Fixes diff --git a/packages/rstream-graph/package.json b/packages/rstream-graph/package.json index b98721cd29..84cca953b1 100644 --- a/packages/rstream-graph/package.json +++ b/packages/rstream-graph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-graph", - "version": "3.2.46", + "version": "3.2.47", "description": "Declarative dataflow graph construction for @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -49,14 +49,14 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/atom": "^4.1.24", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/paths": "^4.1.10", - "@thi.ng/resolve-map": "^4.2.9", - "@thi.ng/rstream": "^5.0.10", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/atom": "^4.1.25", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/paths": "^4.1.11", + "@thi.ng/resolve-map": "^4.2.10", + "@thi.ng/rstream": "^5.0.11", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/rstream-log-file/CHANGELOG.md b/packages/rstream-log-file/CHANGELOG.md index b9df57e808..714b2337ad 100644 --- a/packages/rstream-log-file/CHANGELOG.md +++ b/packages/rstream-log-file/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.68](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.67...@thi.ng/rstream-log-file@0.1.68) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/rstream-log-file + + + + + # 0.1.0 (2019-03-19) ### Features diff --git a/packages/rstream-log-file/package.json b/packages/rstream-log-file/package.json index 8e1d76a429..51652135a6 100644 --- a/packages/rstream-log-file/package.json +++ b/packages/rstream-log-file/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-log-file", - "version": "0.1.67", + "version": "0.1.68", "description": "File output handler for structured, multilevel & hierarchical loggers based on @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/rstream": "^5.0.10" + "@thi.ng/rstream": "^5.0.11" }, "files": [ "*.js", diff --git a/packages/rstream-log/CHANGELOG.md b/packages/rstream-log/CHANGELOG.md index 252dad972a..b58a50b1f4 100644 --- a/packages/rstream-log/CHANGELOG.md +++ b/packages/rstream-log/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.1.53](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.52...@thi.ng/rstream-log@3.1.53) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/rstream-log + + + + + # [3.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.0.14...@thi.ng/rstream-log@3.1.0) (2019-07-07) ### Features diff --git a/packages/rstream-log/package.json b/packages/rstream-log/package.json index bdf677e8bf..d569ea7ecc 100644 --- a/packages/rstream-log/package.json +++ b/packages/rstream-log/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-log", - "version": "3.1.52", + "version": "3.1.53", "description": "Structured, multilevel & hierarchical loggers based on @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/rstream": "^5.0.10", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/rstream": "^5.0.11", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/rstream-query/CHANGELOG.md b/packages/rstream-query/CHANGELOG.md index 4dba714ee9..1e4aa12a4d 100644 --- a/packages/rstream-query/CHANGELOG.md +++ b/packages/rstream-query/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.53](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.52...@thi.ng/rstream-query@1.1.53) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/rstream-query + + + + + ## [1.1.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.6...@thi.ng/rstream-query@1.1.7) (2019-11-30) ### Bug Fixes diff --git a/packages/rstream-query/package.json b/packages/rstream-query/package.json index 9b0abde5f2..6cd78d9fa7 100644 --- a/packages/rstream-query/package.json +++ b/packages/rstream-query/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-query", - "version": "1.1.52", + "version": "1.1.53", "description": "@thi.ng/rstream based triple store & reactive query engine", "module": "./index.js", "main": "./lib/index.js", @@ -49,15 +49,15 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/associative": "^5.0.11", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/equiv": "^1.0.33", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/math": "^2.2.2", - "@thi.ng/rstream": "^5.0.10", - "@thi.ng/rstream-dot": "^1.1.52", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/associative": "^5.0.12", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/equiv": "^1.0.34", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/math": "^3.0.0", + "@thi.ng/rstream": "^5.0.11", + "@thi.ng/rstream-dot": "^1.1.53", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/rstream/CHANGELOG.md b/packages/rstream/CHANGELOG.md index aade0b2ec7..33fb0d19bf 100644 --- a/packages/rstream/CHANGELOG.md +++ b/packages/rstream/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@5.0.10...@thi.ng/rstream@5.0.11) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/rstream + + + + + ## [5.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@5.0.3...@thi.ng/rstream@5.0.4) (2020-09-13) diff --git a/packages/rstream/package.json b/packages/rstream/package.json index d7e5686aa7..dbb7e666cb 100644 --- a/packages/rstream/package.json +++ b/packages/rstream/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream", - "version": "5.0.10", + "version": "5.0.11", "description": "Reactive streams & subscription primitives for constructing dataflow graphs / pipelines", "module": "./index.js", "main": "./lib/index.js", @@ -49,13 +49,13 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/arrays": "^0.8.4", - "@thi.ng/associative": "^5.0.11", - "@thi.ng/atom": "^4.1.24", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/arrays": "^0.8.5", + "@thi.ng/associative": "^5.0.12", + "@thi.ng/atom": "^4.1.25", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/sax/CHANGELOG.md b/packages/sax/CHANGELOG.md index e961a8526e..18e2b18254 100644 --- a/packages/sax/CHANGELOG.md +++ b/packages/sax/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.42...@thi.ng/sax@1.1.43) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/sax + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.0.19...@thi.ng/sax@1.1.0) (2019-07-07) ### Features diff --git a/packages/sax/package.json b/packages/sax/package.json index 6150c1b3e9..ad8726324d 100644 --- a/packages/sax/package.json +++ b/packages/sax/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sax", - "version": "1.1.42", + "version": "1.1.43", "description": "Transducer-based, SAX-like, non-validating, speedy & tiny XML parser", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/transducers-fsm": "^1.1.42" + "@thi.ng/api": "^6.13.5", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/transducers-fsm": "^1.1.43" }, "files": [ "*.js", diff --git a/packages/scenegraph/CHANGELOG.md b/packages/scenegraph/CHANGELOG.md index b8ad171fcf..c6365c8704 100644 --- a/packages/scenegraph/CHANGELOG.md +++ b/packages/scenegraph/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.3.11...@thi.ng/scenegraph@0.3.12) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/scenegraph + + + + + # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.2.1...@thi.ng/scenegraph@0.3.0) (2020-07-28) diff --git a/packages/scenegraph/package.json b/packages/scenegraph/package.json index 423da71fd9..4adbde150a 100644 --- a/packages/scenegraph/package.json +++ b/packages/scenegraph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/scenegraph", - "version": "0.3.11", + "version": "0.3.12", "description": "Extensible 2D/3D scene graph with @thi.ng/hiccup-canvas support", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/matrices": "^0.6.37", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/matrices": "^0.6.38", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/seq/CHANGELOG.md b/packages/seq/CHANGELOG.md index 483c99bc6d..575f813624 100644 --- a/packages/seq/CHANGELOG.md +++ b/packages/seq/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.2.27...@thi.ng/seq@0.2.28) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/seq + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.1.0...@thi.ng/seq@0.2.0) (2020-01-24) ### Features diff --git a/packages/seq/package.json b/packages/seq/package.json index ecf932f344..251f4459d7 100644 --- a/packages/seq/package.json +++ b/packages/seq/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/seq", - "version": "0.2.27", + "version": "0.2.28", "description": "Various implementations of the @thi.ng/api `ISeq` interface / sequence abstraction", "module": "./index.js", "main": "./lib/index.js", @@ -49,8 +49,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12" }, "files": [ "*.js", diff --git a/packages/sexpr/CHANGELOG.md b/packages/sexpr/CHANGELOG.md index 563d1a12c5..2f1dfe97c1 100644 --- a/packages/sexpr/CHANGELOG.md +++ b/packages/sexpr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.2.30...@thi.ng/sexpr@0.2.31) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/sexpr + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.1.0...@thi.ng/sexpr@0.2.0) (2019-09-23) ### Features diff --git a/packages/sexpr/package.json b/packages/sexpr/package.json index 8adb285370..1e8b856174 100644 --- a/packages/sexpr/package.json +++ b/packages/sexpr/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sexpr", - "version": "0.2.30", + "version": "0.2.31", "description": "Extensible S-Expression parser & runtime infrastructure", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/defmulti": "^1.3.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/defmulti": "^1.3.3" }, "files": [ "*.js", diff --git a/packages/shader-ast-glsl/CHANGELOG.md b/packages/shader-ast-glsl/CHANGELOG.md index 1cdc0c9bb7..dca1a813a3 100644 --- a/packages/shader-ast-glsl/CHANGELOG.md +++ b/packages/shader-ast-glsl/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.2.14...@thi.ng/shader-ast-glsl@0.2.15) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/shader-ast-glsl + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.1.39...@thi.ng/shader-ast-glsl@0.2.0) (2020-07-28) diff --git a/packages/shader-ast-glsl/package.json b/packages/shader-ast-glsl/package.json index 98c63366ba..5d9fff9883 100644 --- a/packages/shader-ast-glsl/package.json +++ b/packages/shader-ast-glsl/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/shader-ast-glsl", - "version": "0.2.14", + "version": "0.2.15", "description": "Customizable GLSL codegen for @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/shader-ast": "^0.7.6" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/shader-ast": "^0.7.7" }, "files": [ "*.js", diff --git a/packages/shader-ast-js/CHANGELOG.md b/packages/shader-ast-js/CHANGELOG.md index bbd013cd88..482d634be9 100644 --- a/packages/shader-ast-js/CHANGELOG.md +++ b/packages/shader-ast-js/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.5.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.5.12...@thi.ng/shader-ast-js@0.5.13) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/shader-ast-js + + + + + # [0.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.4.40...@thi.ng/shader-ast-js@0.5.0) (2020-08-10) diff --git a/packages/shader-ast-js/package.json b/packages/shader-ast-js/package.json index eb1746574d..5b312865f8 100644 --- a/packages/shader-ast-js/package.json +++ b/packages/shader-ast-js/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/shader-ast-js", - "version": "0.5.12", + "version": "0.5.13", "description": "Customizable JS codegen, compiler & runtime for @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -49,14 +49,14 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/math": "^2.2.2", - "@thi.ng/matrices": "^0.6.37", - "@thi.ng/pixel": "^0.4.9", - "@thi.ng/shader-ast": "^0.7.6", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/math": "^3.0.0", + "@thi.ng/matrices": "^0.6.38", + "@thi.ng/pixel": "^0.4.10", + "@thi.ng/shader-ast": "^0.7.7", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/shader-ast-stdlib/CHANGELOG.md b/packages/shader-ast-stdlib/CHANGELOG.md index 9a8b81bf8c..48ec7ce258 100644 --- a/packages/shader-ast-stdlib/CHANGELOG.md +++ b/packages/shader-ast-stdlib/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.5.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.5.6...@thi.ng/shader-ast-stdlib@0.5.7) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/shader-ast-stdlib + + + + + # [0.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.4.6...@thi.ng/shader-ast-stdlib@0.5.0) (2020-08-28) diff --git a/packages/shader-ast-stdlib/package.json b/packages/shader-ast-stdlib/package.json index 41a730704b..efc9023ef6 100644 --- a/packages/shader-ast-stdlib/package.json +++ b/packages/shader-ast-stdlib/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/shader-ast-stdlib", - "version": "0.5.6", + "version": "0.5.7", "description": "Function collection for modular GPGPU / shader programming with @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -49,8 +49,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/shader-ast": "^0.7.6" + "@thi.ng/api": "^6.13.5", + "@thi.ng/shader-ast": "^0.7.7" }, "files": [ "*.js", diff --git a/packages/shader-ast/CHANGELOG.md b/packages/shader-ast/CHANGELOG.md index 1618d6933d..4f62f2daaa 100644 --- a/packages/shader-ast/CHANGELOG.md +++ b/packages/shader-ast/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.7.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.7.6...@thi.ng/shader-ast@0.7.7) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/shader-ast + + + + + # [0.7.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.6.3...@thi.ng/shader-ast@0.7.0) (2020-08-28) diff --git a/packages/shader-ast/package.json b/packages/shader-ast/package.json index 8b3b32f813..210299f259 100644 --- a/packages/shader-ast/package.json +++ b/packages/shader-ast/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/shader-ast", - "version": "0.7.6", + "version": "0.7.7", "description": "DSL to define shader code in TypeScript and cross-compile to GLSL, JS and other targets", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/defmulti": "^1.3.2", - "@thi.ng/dgraph": "^1.3.2", - "@thi.ng/errors": "^1.2.24" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/defmulti": "^1.3.3", + "@thi.ng/dgraph": "^1.3.3", + "@thi.ng/errors": "^1.2.25" }, "files": [ "*.js", diff --git a/packages/simd/CHANGELOG.md b/packages/simd/CHANGELOG.md index d6e87f52a8..d6a93396b7 100644 --- a/packages/simd/CHANGELOG.md +++ b/packages/simd/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.4.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.4.10...@thi.ng/simd@0.4.11) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/simd + + + + + # [0.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.3.1...@thi.ng/simd@0.4.0) (2020-07-25) diff --git a/packages/simd/package.json b/packages/simd/package.json index e3066ebccf..6e580ab4b8 100644 --- a/packages/simd/package.json +++ b/packages/simd/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/simd", - "version": "0.4.10", + "version": "0.4.11", "description": "WASM based SIMD vector operations for batch processing", "module": "./index.js", "main": "./lib/index.js", @@ -52,7 +52,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/transducers-binary": "^0.5.33" + "@thi.ng/transducers-binary": "^0.6.0" }, "files": [ "*.js", diff --git a/packages/soa/CHANGELOG.md b/packages/soa/CHANGELOG.md index 84a815caea..addc1f46af 100644 --- a/packages/soa/CHANGELOG.md +++ b/packages/soa/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.41...@thi.ng/soa@0.1.42) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/soa + + + + + # 0.1.0 (2019-11-09) ### Bug Fixes diff --git a/packages/soa/package.json b/packages/soa/package.json index 909782ae4f..80b136963f 100644 --- a/packages/soa/package.json +++ b/packages/soa/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/soa", - "version": "0.1.41", + "version": "0.1.42", "description": "SOA & AOS memory mapped structured views with optional & extensible serialization", "module": "./index.js", "main": "./lib/index.js", @@ -40,7 +40,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.12.1", - "@thi.ng/equiv": "^1.0.33", + "@thi.ng/equiv": "^1.0.34", "@types/mocha": "^8.2.0", "@types/node": "^14.14.14", "mocha": "^8.2.1", @@ -50,10 +50,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/binary": "^2.0.19", - "@thi.ng/transducers-binary": "^0.5.33", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/binary": "^2.0.20", + "@thi.ng/transducers-binary": "^0.6.0", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/sparse/CHANGELOG.md b/packages/sparse/CHANGELOG.md index 29f14f10de..54a7183e4b 100644 --- a/packages/sparse/CHANGELOG.md +++ b/packages/sparse/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.59](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.58...@thi.ng/sparse@0.1.59) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/sparse + + + + + # 0.1.0 (2019-02-17) ### Features diff --git a/packages/sparse/package.json b/packages/sparse/package.json index b104226ee2..fb8782709a 100644 --- a/packages/sparse/package.json +++ b/packages/sparse/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sparse", - "version": "0.1.58", + "version": "0.1.59", "description": "Sparse vector & matrix implementations", "module": "./index.js", "main": "./lib/index.js", @@ -49,8 +49,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/strings/CHANGELOG.md b/packages/strings/CHANGELOG.md index 019f522f32..ad341e18f1 100644 --- a/packages/strings/CHANGELOG.md +++ b/packages/strings/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.11.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.11.2...@thi.ng/strings@1.11.3) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/strings + + + + + # [1.11.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.10.0...@thi.ng/strings@1.11.0) (2020-11-24) diff --git a/packages/strings/package.json b/packages/strings/package.json index 4cfe15a55f..e58178ec0a 100644 --- a/packages/strings/package.json +++ b/packages/strings/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/strings", - "version": "1.11.2", + "version": "1.11.3", "description": "Various string formatting & utility functions", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/hex": "^0.1.1", - "@thi.ng/memoize": "^2.1.6" + "@thi.ng/api": "^6.13.5", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/hex": "^0.1.2", + "@thi.ng/memoize": "^2.1.7" }, "files": [ "*.js", diff --git a/packages/system/CHANGELOG.md b/packages/system/CHANGELOG.md index 9a31a6538c..3d0b491891 100644 --- a/packages/system/CHANGELOG.md +++ b/packages/system/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.31...@thi.ng/system@0.2.32) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/system + + + + + ## [0.2.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.25...@thi.ng/system@0.2.26) (2020-09-13) diff --git a/packages/system/package.json b/packages/system/package.json index 24a387c7f3..e54baae47b 100644 --- a/packages/system/package.json +++ b/packages/system/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/system", - "version": "0.2.31", + "version": "0.2.32", "description": "Minimal DI / life cycle container for stateful app components", "module": "./index.js", "main": "./lib/index.js", @@ -49,8 +49,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/dgraph": "^1.3.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/dgraph": "^1.3.3" }, "files": [ "*.js", diff --git a/packages/text-canvas/CHANGELOG.md b/packages/text-canvas/CHANGELOG.md index 2ef224ef52..9065a36254 100644 --- a/packages/text-canvas/CHANGELOG.md +++ b/packages/text-canvas/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.35...@thi.ng/text-canvas@0.2.36) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/text-canvas + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.1.2...@thi.ng/text-canvas@0.2.0) (2020-03-01) diff --git a/packages/text-canvas/package.json b/packages/text-canvas/package.json index 9945b5c723..bbc573c0f1 100644 --- a/packages/text-canvas/package.json +++ b/packages/text-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/text-canvas", - "version": "0.2.35", + "version": "0.2.36", "description": "Text based canvas, drawing, tables with arbitrary formatting (incl. ANSI/HTML)", "module": "./index.js", "main": "./lib/index.js", @@ -49,14 +49,14 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/arrays": "^0.8.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/geom-clip-line": "^1.2.13", - "@thi.ng/math": "^2.2.2", - "@thi.ng/memoize": "^2.1.6", - "@thi.ng/strings": "^1.11.2", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/arrays": "^0.8.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/geom-clip-line": "^1.2.14", + "@thi.ng/math": "^3.0.0", + "@thi.ng/memoize": "^2.1.7", + "@thi.ng/strings": "^1.11.3", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/transducers-binary/CHANGELOG.md b/packages/transducers-binary/CHANGELOG.md index 16f5fff40e..84778b54fd 100644 --- a/packages/transducers-binary/CHANGELOG.md +++ b/packages/transducers-binary/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.6.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.33...@thi.ng/transducers-binary@0.6.0) (2020-12-22) + + +### Code Refactoring + +* **transducers-binary:** fix [#256](https://github.com/thi-ng/umbrella/issues/256) replace enum w/ type alias ([50cc52a](https://github.com/thi-ng/umbrella/commit/50cc52a84b135535053370e022309aee5b670625)) + + +### BREAKING CHANGES + +* **transducers-binary:** replace Type enum w/ type alias, update BinStructItem + + + + + # [0.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.4.9...@thi.ng/transducers-binary@0.5.0) (2020-02-25) diff --git a/packages/transducers-binary/package.json b/packages/transducers-binary/package.json index 6a0a71b2d7..1cefbc3716 100644 --- a/packages/transducers-binary/package.json +++ b/packages/transducers-binary/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers-binary", - "version": "0.5.33", + "version": "0.6.0", "description": "Binary data related transducers & reducers", "module": "./index.js", "main": "./lib/index.js", @@ -49,12 +49,12 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/binary": "^2.0.19", - "@thi.ng/compose": "^1.4.21", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/hex": "^0.1.1", - "@thi.ng/random": "^2.1.2", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/binary": "^2.0.20", + "@thi.ng/compose": "^1.4.22", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/hex": "^0.1.2", + "@thi.ng/random": "^2.1.3", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/transducers-fsm/CHANGELOG.md b/packages/transducers-fsm/CHANGELOG.md index b1f0850128..b2f381c88b 100644 --- a/packages/transducers-fsm/CHANGELOG.md +++ b/packages/transducers-fsm/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.42...@thi.ng/transducers-fsm@1.1.43) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/transducers-fsm + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.0.19...@thi.ng/transducers-fsm@1.1.0) (2019-07-07) ### Features diff --git a/packages/transducers-fsm/package.json b/packages/transducers-fsm/package.json index 6d7c3c62b6..322e028498 100644 --- a/packages/transducers-fsm/package.json +++ b/packages/transducers-fsm/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers-fsm", - "version": "1.1.42", + "version": "1.1.43", "description": "Transducer-based Finite State Machine transformer", "module": "./index.js", "main": "./lib/index.js", @@ -49,8 +49,8 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/transducers-hdom/CHANGELOG.md b/packages/transducers-hdom/CHANGELOG.md index abac55acff..aa46aa2448 100644 --- a/packages/transducers-hdom/CHANGELOG.md +++ b/packages/transducers-hdom/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.75](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.74...@thi.ng/transducers-hdom@2.0.75) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/transducers-hdom + + + + + # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@1.2.16...@thi.ng/transducers-hdom@2.0.0) (2019-01-21) ### Build System diff --git a/packages/transducers-hdom/package.json b/packages/transducers-hdom/package.json index 8ef1367c8a..aec2488e49 100644 --- a/packages/transducers-hdom/package.json +++ b/packages/transducers-hdom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers-hdom", - "version": "2.0.74", + "version": "2.0.75", "description": "Transducer based UI updater for @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/hdom": "^8.2.13", - "@thi.ng/hiccup": "^3.6.4", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/hdom": "^8.2.14", + "@thi.ng/hiccup": "^3.6.5", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/transducers-patch/CHANGELOG.md b/packages/transducers-patch/CHANGELOG.md index 465219fe7c..5950dd97d7 100644 --- a/packages/transducers-patch/CHANGELOG.md +++ b/packages/transducers-patch/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.33...@thi.ng/transducers-patch@0.2.0) (2020-12-22) + + +### Code Refactoring + +* **transducers-patch:** fix [#256](https://github.com/thi-ng/umbrella/issues/256) replace enum ([5086a33](https://github.com/thi-ng/umbrella/commit/5086a330698992fc65ce2e774fc495e0d2e3e58a)) + + +### BREAKING CHANGES + +* **transducers-patch:** replace Patch enum w/ type alias, +update PatchArrayOp/PatchObjOp + + + + + ## [0.1.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.4...@thi.ng/transducers-patch@0.1.5) (2020-03-28) diff --git a/packages/transducers-patch/package.json b/packages/transducers-patch/package.json index 3529d6b0e9..cfa1b894d1 100644 --- a/packages/transducers-patch/package.json +++ b/packages/transducers-patch/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers-patch", - "version": "0.1.33", + "version": "0.2.0", "description": "Reducers for patch-based, immutable-by-default array & object editing", "module": "./index.js", "main": "./lib/index.js", @@ -49,11 +49,11 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/paths": "^4.1.10", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/paths": "^4.1.11", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/transducers-stats/CHANGELOG.md b/packages/transducers-stats/CHANGELOG.md index 9329b12832..c1f19d28a4 100644 --- a/packages/transducers-stats/CHANGELOG.md +++ b/packages/transducers-stats/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.43...@thi.ng/transducers-stats@1.1.44) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/transducers-stats + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.0.19...@thi.ng/transducers-stats@1.1.0) (2019-07-07) ### Features diff --git a/packages/transducers-stats/package.json b/packages/transducers-stats/package.json index 9db33a4242..cd4093ad57 100644 --- a/packages/transducers-stats/package.json +++ b/packages/transducers-stats/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers-stats", - "version": "1.1.43", + "version": "1.1.44", "description": "Transducers for statistical / technical analysis", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/checks": "^2.7.11", - "@thi.ng/dcons": "^2.3.3", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/checks": "^2.7.12", + "@thi.ng/dcons": "^2.3.4", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/transducers/CHANGELOG.md b/packages/transducers/CHANGELOG.md index 15e6bc7462..e0c6048437 100644 --- a/packages/transducers/CHANGELOG.md +++ b/packages/transducers/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [7.5.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@7.5.2...@thi.ng/transducers@7.5.3) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/transducers + + + + + # [7.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@7.4.0...@thi.ng/transducers@7.5.0) (2020-11-24) diff --git a/packages/transducers/package.json b/packages/transducers/package.json index 42eb20f365..975cd6a2a5 100644 --- a/packages/transducers/package.json +++ b/packages/transducers/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers", - "version": "7.5.2", + "version": "7.5.3", "description": "Lightweight transducer implementations for ES6 / TypeScript", "module": "./index.js", "main": "./lib/index.js", @@ -49,14 +49,14 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/arrays": "^0.8.4", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/compare": "^1.3.20", - "@thi.ng/compose": "^1.4.21", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/math": "^2.2.2", - "@thi.ng/random": "^2.1.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/arrays": "^0.8.5", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/compare": "^1.3.21", + "@thi.ng/compose": "^1.4.22", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/math": "^3.0.0", + "@thi.ng/random": "^2.1.3" }, "files": [ "*.js", diff --git a/packages/unionstruct/CHANGELOG.md b/packages/unionstruct/CHANGELOG.md index bb593e62f4..e33819fbe2 100644 --- a/packages/unionstruct/CHANGELOG.md +++ b/packages/unionstruct/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@1.1.27...@thi.ng/unionstruct@1.1.28) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/unionstruct + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@1.0.6...@thi.ng/unionstruct@1.1.0) (2019-07-07) ### Bug Fixes diff --git a/packages/unionstruct/package.json b/packages/unionstruct/package.json index f73cc6cd96..c21002070b 100644 --- a/packages/unionstruct/package.json +++ b/packages/unionstruct/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/unionstruct", - "version": "1.1.27", + "version": "1.1.28", "description": "C-style struct, union and bitfield read/write views of ArrayBuffers", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/vclock/CHANGELOG.md b/packages/vclock/CHANGELOG.md index d47f51dc9f..b67839de75 100644 --- a/packages/vclock/CHANGELOG.md +++ b/packages/vclock/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/vclock@0.1.1...@thi.ng/vclock@0.1.2) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/vclock + + + + + # 0.1.0 (2020-11-26) diff --git a/packages/vclock/package.json b/packages/vclock/package.json index 9d6acc90c7..95e7fe1a31 100644 --- a/packages/vclock/package.json +++ b/packages/vclock/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/vclock", - "version": "0.1.1", + "version": "0.1.2", "description": "Vector clock functions for synchronizing distributed states & processes", "module": "./index.js", "main": "./lib/index.js", @@ -49,7 +49,7 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4" + "@thi.ng/api": "^6.13.5" }, "files": [ "*.js", diff --git a/packages/vector-pools/CHANGELOG.md b/packages/vector-pools/CHANGELOG.md index f6702d10e9..0b155da0e6 100644 --- a/packages/vector-pools/CHANGELOG.md +++ b/packages/vector-pools/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.52](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.51...@thi.ng/vector-pools@1.0.52) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/vector-pools + + + + + # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@0.2.16...@thi.ng/vector-pools@1.0.0) (2019-07-07) ### Code Refactoring diff --git a/packages/vector-pools/package.json b/packages/vector-pools/package.json index 9ccfede0db..9be1c719f4 100644 --- a/packages/vector-pools/package.json +++ b/packages/vector-pools/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/vector-pools", - "version": "1.0.51", + "version": "1.0.52", "description": "Data structures for managing & working with strided, memory mapped vectors", "module": "./index.js", "main": "./lib/index.js", @@ -49,12 +49,12 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/binary": "^2.0.19", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/malloc": "^4.2.3", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/binary": "^2.0.20", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/malloc": "^4.2.4", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/vectors/CHANGELOG.md b/packages/vectors/CHANGELOG.md index 4e46a75e16..0090fd5bbc 100644 --- a/packages/vectors/CHANGELOG.md +++ b/packages/vectors/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.8.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.8.2...@thi.ng/vectors@4.8.3) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/vectors + + + + + # [4.8.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.7.0...@thi.ng/vectors@4.8.0) (2020-11-24) diff --git a/packages/vectors/package.json b/packages/vectors/package.json index e1605c1335..6e397a17b4 100644 --- a/packages/vectors/package.json +++ b/packages/vectors/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/vectors", - "version": "4.8.2", + "version": "4.8.3", "description": "Optimized 2d/3d/4d and arbitrary length vector operations", "module": "./index.js", "main": "./lib/index.js", @@ -49,15 +49,15 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/binary": "^2.0.19", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/equiv": "^1.0.33", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/math": "^2.2.2", - "@thi.ng/memoize": "^2.1.6", - "@thi.ng/random": "^2.1.2", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/binary": "^2.0.20", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/equiv": "^1.0.34", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/math": "^3.0.0", + "@thi.ng/memoize": "^2.1.7", + "@thi.ng/random": "^2.1.3", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/viz/CHANGELOG.md b/packages/viz/CHANGELOG.md index 9afea66504..8c28badacf 100644 --- a/packages/viz/CHANGELOG.md +++ b/packages/viz/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/viz@0.2.2...@thi.ng/viz@0.2.3) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/viz + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/viz@0.1.2...@thi.ng/viz@0.2.0) (2020-11-24) diff --git a/packages/viz/package.json b/packages/viz/package.json index c678ddd1ca..db4303b331 100644 --- a/packages/viz/package.json +++ b/packages/viz/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/viz", - "version": "0.2.2", + "version": "0.2.3", "description": "Declarative, functional & multi-format data visualization toolkit based around @thi.ng/hiccup", "module": "./index.js", "main": "./lib/index.js", @@ -46,7 +46,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.12.1", - "@thi.ng/date": "^0.2.3", + "@thi.ng/date": "^0.2.4", "@types/mocha": "^8.2.0", "@types/node": "^14.14.14", "mocha": "^8.2.1", @@ -56,13 +56,13 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/arrays": "^0.8.4", - "@thi.ng/associative": "^5.0.11", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/math": "^2.2.2", - "@thi.ng/strings": "^1.11.2", - "@thi.ng/transducers": "^7.5.2" + "@thi.ng/api": "^6.13.5", + "@thi.ng/arrays": "^0.8.5", + "@thi.ng/associative": "^5.0.12", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/math": "^3.0.0", + "@thi.ng/strings": "^1.11.3", + "@thi.ng/transducers": "^7.5.3" }, "files": [ "*.js", diff --git a/packages/webgl-msdf/CHANGELOG.md b/packages/webgl-msdf/CHANGELOG.md index dc05d6c923..b6f19f9fad 100644 --- a/packages/webgl-msdf/CHANGELOG.md +++ b/packages/webgl-msdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.66](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.65...@thi.ng/webgl-msdf@0.1.66) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/webgl-msdf + + + + + ## [0.1.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.9...@thi.ng/webgl-msdf@0.1.10) (2019-11-30) ### Bug Fixes diff --git a/packages/webgl-msdf/package.json b/packages/webgl-msdf/package.json index f24c5a1098..57a4e28970 100644 --- a/packages/webgl-msdf/package.json +++ b/packages/webgl-msdf/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/webgl-msdf", - "version": "0.1.65", + "version": "0.1.66", "description": "Multi-channel SDF font rendering & basic text layout for WebGL", "module": "./index.js", "main": "./lib/index.js", @@ -49,12 +49,12 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/shader-ast": "^0.7.6", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vector-pools": "^1.0.51", - "@thi.ng/vectors": "^4.8.2", - "@thi.ng/webgl": "^3.3.8" + "@thi.ng/api": "^6.13.5", + "@thi.ng/shader-ast": "^0.7.7", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vector-pools": "^1.0.52", + "@thi.ng/vectors": "^4.8.3", + "@thi.ng/webgl": "^3.3.9" }, "files": [ "*.js", diff --git a/packages/webgl-shadertoy/CHANGELOG.md b/packages/webgl-shadertoy/CHANGELOG.md index 5d29c77e65..30b3819f88 100644 --- a/packages/webgl-shadertoy/CHANGELOG.md +++ b/packages/webgl-shadertoy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.53](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.52...@thi.ng/webgl-shadertoy@0.2.53) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/webgl-shadertoy + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.1.4...@thi.ng/webgl-shadertoy@0.2.0) (2020-02-25) diff --git a/packages/webgl-shadertoy/package.json b/packages/webgl-shadertoy/package.json index 1ee21960d6..8eafaa07a5 100644 --- a/packages/webgl-shadertoy/package.json +++ b/packages/webgl-shadertoy/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/webgl-shadertoy", - "version": "0.2.52", + "version": "0.2.53", "description": "Basic WebGL scaffolding for running interactive fragment shaders via @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -49,10 +49,10 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/shader-ast": "^0.7.6", - "@thi.ng/shader-ast-glsl": "^0.2.14", - "@thi.ng/webgl": "^3.3.8" + "@thi.ng/api": "^6.13.5", + "@thi.ng/shader-ast": "^0.7.7", + "@thi.ng/shader-ast-glsl": "^0.2.15", + "@thi.ng/webgl": "^3.3.9" }, "files": [ "*.js", diff --git a/packages/webgl/CHANGELOG.md b/packages/webgl/CHANGELOG.md index 7d3e592341..de45d727bb 100644 --- a/packages/webgl/CHANGELOG.md +++ b/packages/webgl/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.3.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@3.3.8...@thi.ng/webgl@3.3.9) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/webgl + + + + + # [3.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@3.2.1...@thi.ng/webgl@3.3.0) (2020-08-20) diff --git a/packages/webgl/package.json b/packages/webgl/package.json index 9d35dcd3d9..16d7df95a8 100644 --- a/packages/webgl/package.json +++ b/packages/webgl/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/webgl", - "version": "3.3.8", + "version": "3.3.9", "description": "WebGL & GLSL abstraction layer", "module": "./index.js", "main": "./lib/index.js", @@ -49,21 +49,21 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/adapt-dpi": "^1.0.11", - "@thi.ng/api": "^6.13.4", - "@thi.ng/associative": "^5.0.11", - "@thi.ng/checks": "^2.7.11", - "@thi.ng/equiv": "^1.0.33", - "@thi.ng/errors": "^1.2.24", - "@thi.ng/matrices": "^0.6.37", - "@thi.ng/memoize": "^2.1.6", - "@thi.ng/pixel": "^0.4.9", - "@thi.ng/shader-ast": "^0.7.6", - "@thi.ng/shader-ast-glsl": "^0.2.14", - "@thi.ng/shader-ast-stdlib": "^0.5.6", - "@thi.ng/transducers": "^7.5.2", - "@thi.ng/vector-pools": "^1.0.51", - "@thi.ng/vectors": "^4.8.2" + "@thi.ng/adapt-dpi": "^1.0.12", + "@thi.ng/api": "^6.13.5", + "@thi.ng/associative": "^5.0.12", + "@thi.ng/checks": "^2.7.12", + "@thi.ng/equiv": "^1.0.34", + "@thi.ng/errors": "^1.2.25", + "@thi.ng/matrices": "^0.6.38", + "@thi.ng/memoize": "^2.1.7", + "@thi.ng/pixel": "^0.4.10", + "@thi.ng/shader-ast": "^0.7.7", + "@thi.ng/shader-ast-glsl": "^0.2.15", + "@thi.ng/shader-ast-stdlib": "^0.5.7", + "@thi.ng/transducers": "^7.5.3", + "@thi.ng/vector-pools": "^1.0.52", + "@thi.ng/vectors": "^4.8.3" }, "files": [ "*.js", diff --git a/packages/zipper/CHANGELOG.md b/packages/zipper/CHANGELOG.md index 7dc5672619..ac9c8fffb6 100644 --- a/packages/zipper/CHANGELOG.md +++ b/packages/zipper/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/zipper@0.1.29...@thi.ng/zipper@0.1.30) (2020-12-22) + +**Note:** Version bump only for package @thi.ng/zipper + + + + + # 0.1.0 (2019-11-30) ### Features diff --git a/packages/zipper/package.json b/packages/zipper/package.json index fde39e2671..96fd692bd8 100644 --- a/packages/zipper/package.json +++ b/packages/zipper/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/zipper", - "version": "0.1.29", + "version": "0.1.30", "description": "Functional tree editing, manipulation & navigation", "module": "./index.js", "main": "./lib/index.js", @@ -49,9 +49,9 @@ "typescript": "^4.1.3" }, "dependencies": { - "@thi.ng/api": "^6.13.4", - "@thi.ng/arrays": "^0.8.4", - "@thi.ng/checks": "^2.7.11" + "@thi.ng/api": "^6.13.5", + "@thi.ng/arrays": "^0.8.5", + "@thi.ng/checks": "^2.7.12" }, "files": [ "*.js",