From 94adf04e0958a05d77c5d6ded7ee34905f0f4690 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 11 Apr 2020 23:33:55 +0100 Subject: [PATCH 01/78] docs: update main readme --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a36485872b..1980b7eb6c 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ packages) in the [**examples**](./examples/README.md) directory. - [Part 3 - Convolution, 1D/2D Cellular automata](https://medium.com/@thi.ng/of-umbrellas-transducers-reactive-streams-mushrooms-pt-3-a1c4e621db9b) - [Part 4 - Disjoint Sets, Graph analysis, Signed Distance Fields](https://medium.com/@thi.ng/of-umbrellas-transducers-reactive-streams-mushrooms-pt-4-62d8e71e5603) -## Community +## Community & contributing Join our little community on our [Discord server](https://discord.gg/JhYcmBw) or get in touch via @@ -91,6 +91,11 @@ server](https://discord.gg/JhYcmBw) or get in touch via tracker](https://github.com/thi-ng/umbrella/issues). If you'd like to contribute, please first read [this document](./CONTRIBUTING.md). +In general, we welcome contributions of all kinds (docs, examples, bug +fixes, feature requests, financial contributions etc.). You can find a +fairly detailed overview for contributors here: +[CONTRIBUTING.md](https://github.com/thi-ng/umbrella/blob/develop/CONTRIBUTING.md). + ## Projects + +# ![parse](https://media.thi.ng/umbrella/banners/thing-parse.svg?02e4088b) + +[![npm version](https://img.shields.io/npm/v/@thi.ng/parse.svg)](https://www.npmjs.com/package/@thi.ng/parse) +![npm downloads](https://img.shields.io/npm/dm/@thi.ng/parse.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) + - [RPN parser & interpreter example](#rpn-parser--interpreter-example) + - [Context & reader creation](#context--reader-creation) + - [Presets parsers](#presets-parsers) + - [Primitives](#primitives) + - [Anchors](#anchors) + - [Combinators](#combinators) + - [Transformers](#transformers) +- [Authors](#authors) +- [License](#license) + +## About + +Purely functional parser combinators & AST generation for generic inputs. + +### Status + +**ALPHA** - bleeding edge / work-in-progress + +## Installation + +```bash +yarn add @thi.ng/parse +``` + +Package sizes (gzipped, pre-treeshake): ESM: 1.97 KB / CJS: 2.17 KB / UMD: 2.08 KB + +## Dependencies + +- [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/api) +- [@thi.ng/arrays](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/arrays) +- [@thi.ng/checks](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/checks) +- [@thi.ng/errors](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/errors) + +## API + +[Generated API docs](https://docs.thi.ng/umbrella/parse/) + +TODO + +### RPN parser & interpreter example + +```ts +import { + INT, WS, + alt, oneOf, repeat0, xform, + defContext +} from "@thi.ng/parse"; + +// data stack for execution +const stack = []; + +// operator implementations +const ops = { + "+": (a, b) => a + b, + "-": (a, b) => a - b, + "*": (a, b) => a * b, + "/": (a, b) => a / b, +}; + +// signed integer parser (using INT preset) with transform fn +// user fn here only used for pushing values on data stack +// also, if a transform returns null, the parse scope will +// be removed from the result AST +const value = xform(INT, (scope) => { + stack.push(scope.result); + return null; +}); + +// parser for any of the registered operators (again w/ transform) +// the transform here applies the op in RPN fashion to the data stack +const op = xform(oneOf(Object.keys(ops)), (scope) => { + const b = stack.pop(); + const a = stack.pop(); + stack.push(ops[scope.result](a, b)); + return null; +}); + +// parser for complete RPN program, combines above two parsers +// and the whitespace preset as alternatives +const program = repeat0(alt([value, op, WS])); + +// prepare parser context (incl. reader) and execute +program(defContext("10 5 3 * + -2 * 10 /")); + +// print result data stack, i.e. result of: +// 3 * 5 + 10 * -2 / 10 (in infix notation) +console.log(stack); +// [-5] +``` + +### Context & reader creation + +- `defContext` - +- `defStringReader` - + +### Presets parsers + +Source: [constants.ts](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/constants.ts) + +- `ALPHA` - +- `ALPHA_NUM` - +- `DIGIT` - +- `DIGITS_0` - +- `DIGITS_1` - +- `FLOAT` - +- `HEX_DIGIT` - +- `HEX_DIGITS_1` - +- `HEX_UINT` - +- `INT` - +- `UINT` - +- `SIGN` - +- `WS` - + +### Primitives + +Source: [/prims](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/prims) + +- `always` - +- `lift` - +- `lit` - +- `noneOf` - +- `oneOf` - +- `range` - +- `satisfy` - +- `string` - + +### Anchors + +- `anchor` - +- `inputStart` / `inputEnd` - +- `lineStart` / `lineEnd` - + +### Combinators + +Source: [/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/combinators) + +- `alt` - +- `maybe` - +- `not` - +- `repeat` - +- `seq` - + +### Transformers + +- `xform` - +- `check` - +- `discard` - +- `expect` - +- `merge` - + +Source: [/xform](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/xform) + +- `comp` - transform composition +- `xfFloat` - +- `xfInt` - +- `xfMerge` - + +## Authors + +Karsten Schmidt + +## License + +© 2020 Karsten Schmidt // Apache Software License 2.0 diff --git a/packages/parse/api-extractor.json b/packages/parse/api-extractor.json new file mode 100644 index 0000000000..94972e6bed --- /dev/null +++ b/packages/parse/api-extractor.json @@ -0,0 +1,3 @@ +{ + "extends": "../../api-extractor.json" +} diff --git a/packages/parse/package.json b/packages/parse/package.json new file mode 100644 index 0000000000..f54a652051 --- /dev/null +++ b/packages/parse/package.json @@ -0,0 +1,74 @@ +{ + "name": "@thi.ng/parse", + "version": "0.0.1", + "description": "Purely functional parser combinators & AST generation for generic inputs", + "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/parse", + "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", + "test": "mocha test", + "cover": "nyc mocha test && nyc report --reporter=lcov", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib combinators prims xform", + "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 src", + "pub": "yarn build:release && yarn publish --access public" + }, + "devDependencies": { + "@istanbuljs/nyc-config-typescript": "^1.0.1", + "@microsoft/api-extractor": "^7.7.8", + "@types/mocha": "^7.0.1", + "@types/node": "^13.7.4", + "mocha": "^7.1.1", + "nyc": "^15.0.0", + "ts-node": "^8.6.2", + "typedoc": "^0.16.10", + "typescript": "^3.8.3" + }, + "dependencies": { + "@thi.ng/api": "^6.10.0", + "@thi.ng/arrays": "^0.6.3", + "@thi.ng/checks": "^2.6.2", + "@thi.ng/errors": "^1.2.10" + }, + "files": [ + "*.js", + "*.d.ts", + "lib", + "combinators", + "prims", + "xform" + ], + "keywords": [ + "AST", + "combinator", + "composition", + "ES6", + "functional", + "grammar", + "parser", + "recursive", + "typescript" + ], + "publishConfig": { + "access": "public" + }, + "sideEffects": false, + "thi.ng": { + "branch": "feature/parse", + "status": "alpha", + "year": 2020 + } +} diff --git a/packages/parse/src/api.ts b/packages/parse/src/api.ts new file mode 100644 index 0000000000..9b2c2e9ee6 --- /dev/null +++ b/packages/parse/src/api.ts @@ -0,0 +1,34 @@ +import type { Fn, Fn0, Nullable } from "@thi.ng/api"; +import { ParseContext } from "./context"; + +export interface ParseScope { + id: string; + state: ParseState; + children: Nullable[]>; + result: any; +} + +export interface ParseState { + p: number; + l: number; + c: number; + done?: boolean; + last?: T; +} + +export interface IReader { + read(state: ParseState): T; + next(state: ParseState): void; + set(state: ParseState, pos: number): void; + info(state: ParseState): string; +} + +export type Parser = Fn, boolean>; + +export type Lift = T | Fn0; + +export type ScopeTransform = ( + scope: Nullable>, + ctx: ParseContext, + user?: any +) => Nullable>; diff --git a/packages/parse/src/combinators/alt.ts b/packages/parse/src/combinators/alt.ts new file mode 100644 index 0000000000..8306e01488 --- /dev/null +++ b/packages/parse/src/combinators/alt.ts @@ -0,0 +1,11 @@ +import type { Parser } from "../api"; + +export const alt = (parsers: Parser[]): Parser => (ctx) => { + if (ctx.done) return false; + for (let i = 0, n = parsers.length; i < n; i++) { + if (parsers[i](ctx)) { + return true; + } + } + return false; +}; diff --git a/packages/parse/src/combinators/check.ts b/packages/parse/src/combinators/check.ts new file mode 100644 index 0000000000..6588a6c9b4 --- /dev/null +++ b/packages/parse/src/combinators/check.ts @@ -0,0 +1,14 @@ +import type { Predicate } from "@thi.ng/api"; +import type { Parser, ParseScope } from "../api"; +import { parseError } from "../error"; +import { xform } from "./xform"; + +export const check = ( + parser: Parser, + pred: Predicate>, + msg = "check failed" +) => + xform(parser, (scope, ctx) => { + if (!pred(scope!)) parseError(ctx, msg); + return scope; + }); diff --git a/packages/parse/src/combinators/discard.ts b/packages/parse/src/combinators/discard.ts new file mode 100644 index 0000000000..d6257faf97 --- /dev/null +++ b/packages/parse/src/combinators/discard.ts @@ -0,0 +1,4 @@ +import type { Parser } from "../api"; +import { xform } from "./xform"; + +export const discard = (parser: Parser) => xform(parser, () => null); diff --git a/packages/parse/src/combinators/expect.ts b/packages/parse/src/combinators/expect.ts new file mode 100644 index 0000000000..2ed058f3a4 --- /dev/null +++ b/packages/parse/src/combinators/expect.ts @@ -0,0 +1,5 @@ +import type { Parser } from "../api"; +import { parseError } from "../error"; + +export const expect = (parser: Parser, err: string): Parser => (ctx) => + parser(ctx) || parseError(ctx, err); diff --git a/packages/parse/src/combinators/maybe.ts b/packages/parse/src/combinators/maybe.ts new file mode 100644 index 0000000000..da5e9aac24 --- /dev/null +++ b/packages/parse/src/combinators/maybe.ts @@ -0,0 +1,8 @@ +import type { Lift, Parser } from "../api"; +import { lift } from "../prims/lift"; + +export const maybe = ( + parser: Parser, + fn?: Lift, + id = "maybe" +): Parser => (ctx) => parser(ctx) || lift(fn != null ? fn : null, id)(ctx); diff --git a/packages/parse/src/combinators/merge.ts b/packages/parse/src/combinators/merge.ts new file mode 100644 index 0000000000..70e5d4d4f3 --- /dev/null +++ b/packages/parse/src/combinators/merge.ts @@ -0,0 +1,5 @@ +import type { Parser } from "../api"; +import { xfMerge } from "../xform/merge"; +import { xform } from "./xform"; + +export const merge = (parser: Parser) => xform(parser, xfMerge); diff --git a/packages/parse/src/combinators/not.ts b/packages/parse/src/combinators/not.ts new file mode 100644 index 0000000000..3884836b50 --- /dev/null +++ b/packages/parse/src/combinators/not.ts @@ -0,0 +1,17 @@ +import { isFunction } from "@thi.ng/checks"; +import type { Lift, Parser } from "../api"; + +export const not = ( + parser: Parser, + lift?: Lift, + id = "not" +): Parser => (ctx) => { + if (ctx.done) return false; + const scope = ctx.start(id); + if (parser(ctx)) { + ctx.discard(); + return false; + } + scope.result = lift != null ? (isFunction(lift) ? lift() : lift) : null; + return ctx.end(); +}; diff --git a/packages/parse/src/combinators/print.ts b/packages/parse/src/combinators/print.ts new file mode 100644 index 0000000000..f67cdb09b9 --- /dev/null +++ b/packages/parse/src/combinators/print.ts @@ -0,0 +1,5 @@ +import type { Parser } from "../api"; +import { xfPrint } from "../xform/print"; +import { xform } from "./xform"; + +export const print = (parser: Parser) => xform(parser, xfPrint); diff --git a/packages/parse/src/combinators/repeat.ts b/packages/parse/src/combinators/repeat.ts new file mode 100644 index 0000000000..5adffee038 --- /dev/null +++ b/packages/parse/src/combinators/repeat.ts @@ -0,0 +1,26 @@ +import type { Parser } from "../api"; + +export const repeat = ( + parser: Parser, + id = "repeat", + min: number, + max = Infinity +): Parser => (ctx) => { + if (ctx.done) return false; + ctx.start(id); + for (let i = 0; i < max; i++) { + if (!parser(ctx)) { + if (i < min) { + return ctx.discard(); + } + break; + } + } + return ctx.end(); +}; + +export const repeat0 = (parser: Parser, id = "repeat0", max?: number) => + repeat(parser, id, 0, max); + +export const repeat1 = (parser: Parser, id = "repeat1", max?: number) => + repeat(parser, id, 1, max); diff --git a/packages/parse/src/combinators/seq.ts b/packages/parse/src/combinators/seq.ts new file mode 100644 index 0000000000..f6c81424b1 --- /dev/null +++ b/packages/parse/src/combinators/seq.ts @@ -0,0 +1,14 @@ +import type { Parser } from "../api"; + +export const seq = (parsers: Parser[], id = "seq"): Parser => ( + ctx +) => { + if (ctx.done) return false; + ctx.start(id); + for (let i = 0, n = parsers.length; i < n; i++) { + if (!parsers[i](ctx)) { + return ctx.discard(); + } + } + return ctx.end(); +}; diff --git a/packages/parse/src/combinators/xform.ts b/packages/parse/src/combinators/xform.ts new file mode 100644 index 0000000000..09b7f8bfc2 --- /dev/null +++ b/packages/parse/src/combinators/xform.ts @@ -0,0 +1,23 @@ +import { peek } from "@thi.ng/arrays"; +import type { Parser, ScopeTransform } from "../api"; + +export const xform = ( + parser: Parser, + xf: ScopeTransform, + user?: any +): Parser => (ctx) => { + const res = parser(ctx); + if (res) { + const scope = peek(ctx.scope.children!); + const res = xf(scope, ctx, user); + if (res) { + if (scope.children && !scope.children.length) { + scope.children = null; + } + } else { + ctx.scope.children!.pop(); + } + return true; + } + return false; +}; diff --git a/packages/parse/src/constants.ts b/packages/parse/src/constants.ts new file mode 100644 index 0000000000..78e5a1dee2 --- /dev/null +++ b/packages/parse/src/constants.ts @@ -0,0 +1,47 @@ +import { alt } from "./combinators/alt"; +import { maybe } from "./combinators/maybe"; +import { repeat0, repeat1 } from "./combinators/repeat"; +import { seq } from "./combinators/seq"; +import { xform } from "./combinators/xform"; +import { lit } from "./prims/lit"; +import { oneOf } from "./prims/one-of"; +import { range } from "./prims/range"; +import { xfFloat, xfInt } from "./xform/number"; + +export const WS = oneOf(" \t\n\r"); + +export const DIGIT = range("0", "9"); + +export const HEX_DIGIT = alt([ + DIGIT, + range("a", "f"), + range("A", "F"), +]); + +export const ALPHA = alt([range("a", "z"), range("A", "Z")]); + +export const ALPHA_NUM = alt([ALPHA, DIGIT]); + +export const SIGN = maybe(oneOf("-+"), ""); + +export const DIGITS_0 = repeat0(DIGIT); +export const DIGITS_1 = repeat1(DIGIT); +export const HEX_DIGITS_1 = repeat1(HEX_DIGIT); + +const EXP = maybe(seq([maybe(oneOf("eE")), SIGN, DIGITS_1])); + +const DOT = lit("."); + +const FRACT0 = maybe(seq([DOT, maybe(DIGITS_0)])); +const FRACT1 = seq([DOT, DIGITS_1]); + +export const INT = xform(seq([SIGN, DIGITS_1]), xfInt()); + +export const UINT = xform(DIGITS_1, xfInt()); + +export const HEX_UINT = xform(HEX_DIGITS_1, xfInt(16)); + +export const FLOAT = xform( + seq([SIGN, alt([FRACT1, seq([DIGITS_1, FRACT0])]), EXP]), + xfFloat +); diff --git a/packages/parse/src/context.ts b/packages/parse/src/context.ts new file mode 100644 index 0000000000..c82c51669a --- /dev/null +++ b/packages/parse/src/context.ts @@ -0,0 +1,85 @@ +import type { ParseScope, IReader } from "./api"; +import { peek } from "@thi.ng/arrays"; +import { parseError } from "./error"; +import { defStringReader } from "./string-reader"; + +interface ContextOpts { + /** + * Max recursion depth failsafe. + * + * @defaultVal 32 + */ + maxDepth: number; +} + +export class ParseContext { + protected _scopes: ParseScope[]; + protected _maxDepth: number; + + constructor(public reader: IReader, opts?: Partial) { + this._scopes = [ + { + id: "root", + state: { p: 0, l: 1, c: 1 }, + children: null, + result: null, + }, + ]; + opts = { maxDepth: 32, ...opts }; + this._maxDepth = opts.maxDepth!; + } + + start(type: string) { + if (this._scopes.length >= this._maxDepth) { + parseError(this, `recursion limit reached ${this._maxDepth}`); + } + const curr = peek(this._scopes); + const scope: ParseScope = { + id: type, + state: { ...curr.state }, + children: null, + result: null, + }; + this._scopes.push(scope); + return scope; + } + + discard() { + this._scopes.pop()!; + return false; + } + + end() { + const child = this._scopes.pop()!; + const parent = peek(this._scopes); + const cstate = child.state; + const pstate = parent.state; + // child.state = pstate; + child.state = { p: pstate.p, l: pstate.l, c: pstate.c }; + parent.state = cstate; + const children = parent.children; + children ? children.push(child) : (parent.children = [child]); + return true; + } + + get scope() { + return peek(this._scopes); + } + + get state() { + return peek(this._scopes).state; + } + + get done() { + return peek(this._scopes).state.done; + } +} + +/** + * Creates new {@link ParseContext} for given input string and context options. + * + * @param input - + * @param opts - + */ +export const defContext = (input: string, opts?: Partial) => + new ParseContext(defStringReader(input), opts); diff --git a/packages/parse/src/error.ts b/packages/parse/src/error.ts new file mode 100644 index 0000000000..d8e271fbbf --- /dev/null +++ b/packages/parse/src/error.ts @@ -0,0 +1,9 @@ +import { defError } from "@thi.ng/errors"; +import { ParseContext } from "./context"; + +const ParseError = defError(() => `ParseError`); + +export const parseError = (ctx: ParseContext, msg: string): never => { + const info = ctx.reader.info(ctx.scope.state); + throw new ParseError(msg + (info ? ` @ ${info}` : "")); +}; diff --git a/packages/parse/src/index.ts b/packages/parse/src/index.ts new file mode 100644 index 0000000000..d2168d76ac --- /dev/null +++ b/packages/parse/src/index.ts @@ -0,0 +1,32 @@ +export * from "./api"; +export * from "./constants"; +export * from "./context"; +export * from "./error"; +export * from "./string-reader"; + +export * from "./combinators/alt"; +export * from "./combinators/check"; +export * from "./combinators/discard"; +export * from "./combinators/expect"; +export * from "./combinators/maybe"; +export * from "./combinators/merge"; +export * from "./combinators/not"; +export * from "./combinators/print"; +export * from "./combinators/repeat"; +export * from "./combinators/seq"; +export * from "./combinators/xform"; + +export * from "./prims/always"; +export * from "./prims/anchor"; +export * from "./prims/lift"; +export * from "./prims/lit"; +export * from "./prims/none-of"; +export * from "./prims/one-of"; +export * from "./prims/range"; +export * from "./prims/satisfy"; +export * from "./prims/string"; + +export * from "./xform/comp"; +export * from "./xform/number"; +export * from "./xform/merge"; +export * from "./xform/print"; diff --git a/packages/parse/src/prims/always.ts b/packages/parse/src/prims/always.ts new file mode 100644 index 0000000000..8ff6993848 --- /dev/null +++ b/packages/parse/src/prims/always.ts @@ -0,0 +1,3 @@ +import { satisfy } from "./satisfy"; + +export const always = (id = "always") => satisfy(() => true, id); diff --git a/packages/parse/src/prims/anchor.ts b/packages/parse/src/prims/anchor.ts new file mode 100644 index 0000000000..6714473b37 --- /dev/null +++ b/packages/parse/src/prims/anchor.ts @@ -0,0 +1,24 @@ +import type { Fn2, Nullable } from "@thi.ng/api"; +import type { Parser } from "../api"; + +export const anchor = ( + fn: Fn2, Nullable, boolean> +): Parser => (ctx) => { + const state = ctx.state; + return fn(state.last, state.done ? null : ctx.reader.read(state)); +}; + +export const inputStart: Parser = (ctx) => ctx.state.last == null; + +export const inputEnd: Parser = (ctx) => + ctx.state.done || !ctx.reader.read(ctx.state); + +export const lineStart: Parser = (ctx) => { + const l = ctx.state.last; + return l == null || l === "\n"; +}; + +export const lineEnd: Parser = (ctx) => { + const state = ctx.state; + return state.done || ctx.reader.read(state) === "\n"; +}; diff --git a/packages/parse/src/prims/lift.ts b/packages/parse/src/prims/lift.ts new file mode 100644 index 0000000000..de4b1c56f8 --- /dev/null +++ b/packages/parse/src/prims/lift.ts @@ -0,0 +1,10 @@ +import { isFunction } from "@thi.ng/checks"; +import type { Lift, Parser } from "../api"; + +export const lift = (result: Lift, id = "lift"): Parser => ( + ctx +) => { + const scope = ctx.start(id); + scope.result = isFunction(result) ? result() : result; + return ctx.end(); +}; diff --git a/packages/parse/src/prims/lit.ts b/packages/parse/src/prims/lit.ts new file mode 100644 index 0000000000..3207e36dae --- /dev/null +++ b/packages/parse/src/prims/lit.ts @@ -0,0 +1,3 @@ +import { satisfy } from "./satisfy"; + +export const lit = (c: T, id = "lit") => satisfy((x) => x === c, id); diff --git a/packages/parse/src/prims/none-of.ts b/packages/parse/src/prims/none-of.ts new file mode 100644 index 0000000000..61a8b36074 --- /dev/null +++ b/packages/parse/src/prims/none-of.ts @@ -0,0 +1,16 @@ +import { isSet } from "@thi.ng/checks"; +import type { Parser } from "../api"; +import { satisfy } from "./satisfy"; + +export function noneOf(opts: string, id?: string): Parser; +export function noneOf(opts: T[], id?: string): Parser; +export function noneOf(opts: Set, id?: string): Parser; +export function noneOf( + opts: string | any[] | Set, + id = "oneOf" +): Parser { + return satisfy( + isSet(opts) ? (x) => !opts.has(x) : (x) => opts.indexOf(x) < 0, + id + ); +} diff --git a/packages/parse/src/prims/one-of.ts b/packages/parse/src/prims/one-of.ts new file mode 100644 index 0000000000..a5a44d16c4 --- /dev/null +++ b/packages/parse/src/prims/one-of.ts @@ -0,0 +1,16 @@ +import { isSet } from "@thi.ng/checks"; +import type { Parser } from "../api"; +import { satisfy } from "./satisfy"; + +export function oneOf(opts: string, id?: string): Parser; +export function oneOf(opts: T[], id?: string): Parser; +export function oneOf(opts: Set, id?: string): Parser; +export function oneOf( + opts: string | any[] | Set, + id = "oneOf" +): Parser { + return satisfy( + isSet(opts) ? (x) => opts.has(x) : (x) => opts.indexOf(x) >= 0, + id + ); +} diff --git a/packages/parse/src/prims/range.ts b/packages/parse/src/prims/range.ts new file mode 100644 index 0000000000..da5006aa08 --- /dev/null +++ b/packages/parse/src/prims/range.ts @@ -0,0 +1,5 @@ +import type { NumOrString } from "@thi.ng/api"; +import { satisfy } from "./satisfy"; + +export const range = (min: T, max: T, id = "lit") => + satisfy((x) => x >= min && x <= max, id); diff --git a/packages/parse/src/prims/satisfy.ts b/packages/parse/src/prims/satisfy.ts new file mode 100644 index 0000000000..1107380e63 --- /dev/null +++ b/packages/parse/src/prims/satisfy.ts @@ -0,0 +1,17 @@ +import type { Predicate } from "@thi.ng/api"; +import type { Parser } from "../api"; + +export const satisfy = (fn: Predicate, id = "lit"): Parser => ( + ctx +) => { + if (ctx.done) return false; + const reader = ctx.reader; + const r = reader.read(ctx.state); + if (!fn(r)) { + return false; + } + const scope = ctx.start(id); + reader.next(scope.state); + scope.result = r; + return ctx.end(); +}; diff --git a/packages/parse/src/prims/string.ts b/packages/parse/src/prims/string.ts new file mode 100644 index 0000000000..991ccd84d9 --- /dev/null +++ b/packages/parse/src/prims/string.ts @@ -0,0 +1,20 @@ +import type { Parser } from "../api"; + +export const string = (str: ArrayLike, id = "string"): Parser => ( + ctx +) => { + if (ctx.done) return false; + const scope = ctx.start(id); + const state = scope.state; + const reader = ctx.reader; + for (let i = 0, n = str.length; i < n; i++) { + if (state.done) return false; + const r = reader.read(state); + if (r !== str[i]) { + return ctx.discard(); + } + reader.next(state); + } + scope.result = str; + return ctx.end(); +}; diff --git a/packages/parse/src/string-reader.ts b/packages/parse/src/string-reader.ts new file mode 100644 index 0000000000..7ab0a4f93e --- /dev/null +++ b/packages/parse/src/string-reader.ts @@ -0,0 +1,32 @@ +import type { ParseState, IReader } from "./api"; + +class StringReader implements IReader { + constructor(protected input: string) {} + read(state: ParseState): string { + return this.input[state.p]; + } + + next(state: ParseState): void { + if (state.done) return; + state.last = this.input[state.p]; + if (state.last === "\n") { + state.l++; + state.c = 1; + } else { + state.c++; + } + state.done = ++state.p >= this.input.length; + } + + set(state: ParseState, pos: number): void { + if (state.done) return; + state.p = pos; + state.done = pos >= this.input.length; + } + + info(state: ParseState) { + return `offset ${state.p} (${state.l}:${state.c})`; + } +} + +export const defStringReader = (input: string) => new StringReader(input); diff --git a/packages/parse/src/xform/comp.ts b/packages/parse/src/xform/comp.ts new file mode 100644 index 0000000000..adeeeb0ef4 --- /dev/null +++ b/packages/parse/src/xform/comp.ts @@ -0,0 +1,22 @@ +import { ScopeTransform } from "../api"; + +export const xfComp = (...xs: ScopeTransform[]): ScopeTransform => { + const [a, b, c, d] = xs; + switch (xs.length) { + case 0: + return (x) => x; + case 1: + return a; + case 2: + return (scope, ctx, user) => b(a(scope, ctx, user), ctx, user); + case 3: + return (scope, ctx, user) => + c(b(a(scope, ctx, user), ctx, user), ctx, user); + case 4: + return (scope, ctx, user) => + d(c(b(a(scope, ctx, user), ctx, user), ctx, user), ctx, user); + default: + return (scope, ctx, user) => + xs.reduce((scope, x) => x(scope, ctx, user), scope); + } +}; diff --git a/packages/parse/src/xform/merge.ts b/packages/parse/src/xform/merge.ts new file mode 100644 index 0000000000..693d9ea34a --- /dev/null +++ b/packages/parse/src/xform/merge.ts @@ -0,0 +1,14 @@ +import type { Nullable } from "@thi.ng/api"; +import type { ParseScope } from "../api"; + +export const xfMerge = (scope: Nullable>) => { + if (!scope || !scope.children) return null; + const res = []; + for (let c of scope.children) { + xfMerge(c); + if (c.result) res.push(c.result); + } + scope.result = res.join(""); + scope.children = null; + return scope; +}; diff --git a/packages/parse/src/xform/number.ts b/packages/parse/src/xform/number.ts new file mode 100644 index 0000000000..5c7d43eec0 --- /dev/null +++ b/packages/parse/src/xform/number.ts @@ -0,0 +1,12 @@ +import { ScopeTransform } from "../api"; +import { xfMerge } from "./merge"; + +export const xfInt = (radix = 10): ScopeTransform => (scope) => { + scope!.result = parseInt(xfMerge(scope)!.result, radix); + return scope; +}; + +export const xfFloat: ScopeTransform = (scope) => { + scope!.result = parseFloat(xfMerge(scope)!.result); + return scope; +}; diff --git a/packages/parse/src/xform/print.ts b/packages/parse/src/xform/print.ts new file mode 100644 index 0000000000..faf2770450 --- /dev/null +++ b/packages/parse/src/xform/print.ts @@ -0,0 +1,15 @@ +import { ScopeTransform } from "../api"; + +export const xfPrint: ScopeTransform = (scope, _, indent = 0) => { + if (!scope) return; + const prefix = indent > 0 ? " ".repeat(indent) : ""; + console.log( + `${prefix}${scope.id} (${scope.state.l}:${scope.state.c}): ${scope.result}` + ); + if (scope.children) { + for (let c of scope.children) { + xfPrint(c, _, indent + 1); + } + } + return scope; +}; diff --git a/packages/parse/test/index.ts b/packages/parse/test/index.ts new file mode 100644 index 0000000000..8696b8889b --- /dev/null +++ b/packages/parse/test/index.ts @@ -0,0 +1,47 @@ +import { Fn2 } from "@thi.ng/api"; +import * as assert from "assert"; +import { alt, defContext, FLOAT, INT, oneOf, repeat0, WS, xform } from "../src"; + +describe("parse", () => { + it("float", () => { + [ + "1", + "-1", + "+1", + "1.", + "1.01", + ".1", + "-.1", + "1.2e3", + "-1.2e-3", + ".1e+3", + ].forEach((x) => { + const ctx = defContext(x); + assert(FLOAT(ctx), x); + assert.equal(ctx.scope.children![0].result, parseFloat(x), x); + }); + }); + + it("RPN", () => { + const stack: number[] = []; + const ops: Record> = { + "+": (a, b) => a + b, + "-": (a, b) => a - b, + "*": (a, b) => a * b, + "/": (a, b) => a / b, + }; + const value = xform(INT, (scope) => { + stack.push(scope!.result); + return null; + }); + const op = xform(oneOf("+-*/"), (scope) => { + const b = stack.pop()!; + const a = stack.pop()!; + stack.push(ops[scope!.result](a, b)); + return null; + }); + const program = repeat0(alt([value, op, WS])); + program(defContext("10 5 3 * + -2 * 10 /")); + assert.deepEqual(stack, [-5]); + }); +}); diff --git a/packages/parse/test/tsconfig.json b/packages/parse/test/tsconfig.json new file mode 100644 index 0000000000..f6e63560dd --- /dev/null +++ b/packages/parse/test/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.json", + "compilerOptions": { + "outDir": "../build", + "module": "commonjs" + }, + "include": [ + "./**/*.ts", + "../src/**/*.ts" + ] +} diff --git a/packages/parse/tpl.readme.md b/packages/parse/tpl.readme.md new file mode 100644 index 0000000000..f7c78d93da --- /dev/null +++ b/packages/parse/tpl.readme.md @@ -0,0 +1,168 @@ +# ${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 + +```bash +yarn add ${pkg.name} +``` + +${pkg.size} + +## Dependencies + +${pkg.deps} + +${examples} + +## API + +${docLink} + +TODO + +### RPN parser & interpreter example + +```ts +import { + INT, WS, + alt, oneOf, repeat0, xform, + defContext +} from "@thi.ng/parse"; + +// data stack for execution +const stack = []; + +// operator implementations +const ops = { + "+": (a, b) => a + b, + "-": (a, b) => a - b, + "*": (a, b) => a * b, + "/": (a, b) => a / b, +}; + +// signed integer parser (using INT preset) with transform fn +// user fn here only used for pushing values on data stack +// also, if a transform returns null, the parse scope will +// be removed from the result AST +const value = xform(INT, (scope) => { + stack.push(scope.result); + return null; +}); + +// parser for any of the registered operators (again w/ transform) +// the transform here applies the op in RPN fashion to the data stack +const op = xform(oneOf(Object.keys(ops)), (scope) => { + const b = stack.pop(); + const a = stack.pop(); + stack.push(ops[scope.result](a, b)); + return null; +}); + +// parser for complete RPN program, combines above two parsers +// and the whitespace preset as alternatives +const program = repeat0(alt([value, op, WS])); + +// prepare parser context (incl. reader) and execute +program(defContext("10 5 3 * + -2 * 10 /")); + +// print result data stack, i.e. result of: +// 3 * 5 + 10 * -2 / 10 (in infix notation) +console.log(stack); +// [-5] +``` + +### Context & reader creation + +- `defContext` - +- `defStringReader` - + +### Presets parsers + +Source: [constants.ts](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/constants.ts) + +- `ALPHA` - +- `ALPHA_NUM` - +- `DIGIT` - +- `DIGITS_0` - +- `DIGITS_1` - +- `FLOAT` - +- `HEX_DIGIT` - +- `HEX_DIGITS_1` - +- `HEX_UINT` - +- `INT` - +- `UINT` - +- `SIGN` - +- `WS` - + +### Primitives + +Source: [/prims](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/prims) + +- `always` - +- `lift` - +- `lit` - +- `noneOf` - +- `oneOf` - +- `range` - +- `satisfy` - +- `string` - + +### Anchors + +- `anchor` - +- `inputStart` / `inputEnd` - +- `lineStart` / `lineEnd` - + +### Combinators + +Source: [/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/combinators) + +- `alt` - +- `maybe` - +- `not` - +- `repeat` - +- `seq` - + +### Transformers + +- `xform` - +- `check` - +- `discard` - +- `expect` - +- `merge` - + +Source: [/xform](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/xform) + +- `comp` - transform composition +- `xfFloat` - +- `xfInt` - +- `xfMerge` - + +## Authors + +${authors} + +## License + +© ${copyright} // ${license} diff --git a/packages/parse/tsconfig.json b/packages/parse/tsconfig.json new file mode 100644 index 0000000000..893b9979c5 --- /dev/null +++ b/packages/parse/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": ".", + "module": "es6", + "target": "es6" + }, + "include": [ + "./src/**/*.ts" + ] +} From 2911324fb40cee221796afd1a1faf75f12d098de Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 15 Apr 2020 01:50:55 +0100 Subject: [PATCH 06/78] docs: update WIP pkg list --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1980b7eb6c..ecf9ea5222 100644 --- a/README.md +++ b/README.md @@ -98,11 +98,11 @@ fairly detailed overview for contributors here: ## Projects - + +- [@thi.ng/parse](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse) - parser combinators & AST generator ### Fundamentals From a913c969c5a7de300feb44237931723d88b0d26a Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 15 Apr 2020 14:05:35 +0100 Subject: [PATCH 07/78] refactor(parse): update context, rename ops, remove arrays dep --- packages/parse/package.json | 1 - packages/parse/src/combinators/repeat.ts | 9 +++-- packages/parse/src/combinators/xform.ts | 6 ++-- packages/parse/src/constants.ts | 10 +++--- packages/parse/src/context.ts | 44 +++++++++++++----------- packages/parse/test/index.ts | 13 +++++-- 6 files changed, 49 insertions(+), 34 deletions(-) diff --git a/packages/parse/package.json b/packages/parse/package.json index f54a652051..c85101f77c 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -39,7 +39,6 @@ }, "dependencies": { "@thi.ng/api": "^6.10.0", - "@thi.ng/arrays": "^0.6.3", "@thi.ng/checks": "^2.6.2", "@thi.ng/errors": "^1.2.10" }, diff --git a/packages/parse/src/combinators/repeat.ts b/packages/parse/src/combinators/repeat.ts index 5adffee038..678af8302d 100644 --- a/packages/parse/src/combinators/repeat.ts +++ b/packages/parse/src/combinators/repeat.ts @@ -19,8 +19,11 @@ export const repeat = ( return ctx.end(); }; -export const repeat0 = (parser: Parser, id = "repeat0", max?: number) => - repeat(parser, id, 0, max); +export const zeroOrMore = ( + parser: Parser, + id = "repeat0", + max?: number +) => repeat(parser, id, 0, max); -export const repeat1 = (parser: Parser, id = "repeat1", max?: number) => +export const oneOrMore = (parser: Parser, id = "repeat1", max?: number) => repeat(parser, id, 1, max); diff --git a/packages/parse/src/combinators/xform.ts b/packages/parse/src/combinators/xform.ts index 09b7f8bfc2..6eb0754bf6 100644 --- a/packages/parse/src/combinators/xform.ts +++ b/packages/parse/src/combinators/xform.ts @@ -1,4 +1,3 @@ -import { peek } from "@thi.ng/arrays"; import type { Parser, ScopeTransform } from "../api"; export const xform = ( @@ -8,14 +7,15 @@ export const xform = ( ): Parser => (ctx) => { const res = parser(ctx); if (res) { - const scope = peek(ctx.scope.children!); + const children = ctx.scope.children!; + const scope = children[children.length - 1]; const res = xf(scope, ctx, user); if (res) { if (scope.children && !scope.children.length) { scope.children = null; } } else { - ctx.scope.children!.pop(); + children.pop(); } return true; } diff --git a/packages/parse/src/constants.ts b/packages/parse/src/constants.ts index 78e5a1dee2..6a0c19bbd7 100644 --- a/packages/parse/src/constants.ts +++ b/packages/parse/src/constants.ts @@ -1,6 +1,6 @@ import { alt } from "./combinators/alt"; import { maybe } from "./combinators/maybe"; -import { repeat0, repeat1 } from "./combinators/repeat"; +import { oneOrMore, zeroOrMore } from "./combinators/repeat"; import { seq } from "./combinators/seq"; import { xform } from "./combinators/xform"; import { lit } from "./prims/lit"; @@ -24,9 +24,11 @@ export const ALPHA_NUM = alt([ALPHA, DIGIT]); export const SIGN = maybe(oneOf("-+"), ""); -export const DIGITS_0 = repeat0(DIGIT); -export const DIGITS_1 = repeat1(DIGIT); -export const HEX_DIGITS_1 = repeat1(HEX_DIGIT); +export const DIGITS_0 = zeroOrMore(DIGIT); + +export const DIGITS_1 = oneOrMore(DIGIT); + +export const HEX_DIGITS_1 = oneOrMore(HEX_DIGIT); const EXP = maybe(seq([maybe(oneOf("eE")), SIGN, DIGITS_1])); diff --git a/packages/parse/src/context.ts b/packages/parse/src/context.ts index c82c51669a..4d5b8a0d51 100644 --- a/packages/parse/src/context.ts +++ b/packages/parse/src/context.ts @@ -1,5 +1,4 @@ -import type { ParseScope, IReader } from "./api"; -import { peek } from "@thi.ng/arrays"; +import type { IReader, ParseScope } from "./api"; import { parseError } from "./error"; import { defStringReader } from "./string-reader"; @@ -14,64 +13,67 @@ interface ContextOpts { export class ParseContext { protected _scopes: ParseScope[]; + protected _curr: ParseScope; protected _maxDepth: number; constructor(public reader: IReader, opts?: Partial) { - this._scopes = [ - { - id: "root", - state: { p: 0, l: 1, c: 1 }, - children: null, - result: null, - }, - ]; opts = { maxDepth: 32, ...opts }; this._maxDepth = opts.maxDepth!; + this._curr = { + id: "root", + state: { p: 0, l: 1, c: 1 }, + children: null, + result: null, + }; + this._scopes = [this._curr]; } start(type: string) { if (this._scopes.length >= this._maxDepth) { parseError(this, `recursion limit reached ${this._maxDepth}`); } - const curr = peek(this._scopes); + const scopes = this._scopes; const scope: ParseScope = { id: type, - state: { ...curr.state }, + state: { ...scopes[scopes.length - 1].state }, children: null, result: null, }; - this._scopes.push(scope); - return scope; + scopes.push(scope); + return (this._curr = scope); } discard() { - this._scopes.pop()!; + const scopes = this._scopes; + scopes.pop(); + this._curr = scopes[scopes.length - 1]; return false; } end() { - const child = this._scopes.pop()!; - const parent = peek(this._scopes); + const scopes = this._scopes; + const child = scopes.pop()!; + const parent = scopes[scopes.length - 1]; const cstate = child.state; const pstate = parent.state; - // child.state = pstate; child.state = { p: pstate.p, l: pstate.l, c: pstate.c }; parent.state = cstate; const children = parent.children; children ? children.push(child) : (parent.children = [child]); + this._curr = parent; return true; } get scope() { - return peek(this._scopes); + return this._curr; } get state() { - return peek(this._scopes).state; + return this._curr.state; } get done() { - return peek(this._scopes).state.done; + return this._curr.state.done; } } diff --git a/packages/parse/test/index.ts b/packages/parse/test/index.ts index 8696b8889b..02a8b77677 100644 --- a/packages/parse/test/index.ts +++ b/packages/parse/test/index.ts @@ -1,6 +1,15 @@ import { Fn2 } from "@thi.ng/api"; import * as assert from "assert"; -import { alt, defContext, FLOAT, INT, oneOf, repeat0, WS, xform } from "../src"; +import { + alt, + defContext, + FLOAT, + INT, + oneOf, + WS, + xform, + zeroOrMore, +} from "../src"; describe("parse", () => { it("float", () => { @@ -40,7 +49,7 @@ describe("parse", () => { stack.push(ops[scope!.result](a, b)); return null; }); - const program = repeat0(alt([value, op, WS])); + const program = zeroOrMore(alt([value, op, WS])); program(defContext("10 5 3 * + -2 * 10 /")); assert.deepEqual(stack, [-5]); }); From c5cfabeaf5ab6e124d5fc2455fd3f5ede96248cd Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 15 Apr 2020 16:22:39 +0100 Subject: [PATCH 08/78] feat(parse): update repeat ops, reader, initial state --- packages/parse/src/api.ts | 4 +- packages/parse/src/combinators/repeat.ts | 17 +++-- packages/parse/src/constants.ts | 4 +- packages/parse/src/context.ts | 1 + packages/parse/src/error.ts | 2 +- packages/parse/src/string-reader.ts | 9 ++- packages/parse/test/index.ts | 90 +++++++++++++++++++++++- packages/parse/tpl.readme.md | 1 + 8 files changed, 109 insertions(+), 19 deletions(-) diff --git a/packages/parse/src/api.ts b/packages/parse/src/api.ts index 9b2c2e9ee6..02c56de696 100644 --- a/packages/parse/src/api.ts +++ b/packages/parse/src/api.ts @@ -19,8 +19,8 @@ export interface ParseState { export interface IReader { read(state: ParseState): T; next(state: ParseState): void; - set(state: ParseState, pos: number): void; - info(state: ParseState): string; + isDone(state: ParseState): boolean; + format(state: ParseState): string; } export type Parser = Fn, boolean>; diff --git a/packages/parse/src/combinators/repeat.ts b/packages/parse/src/combinators/repeat.ts index 678af8302d..3a70eb411f 100644 --- a/packages/parse/src/combinators/repeat.ts +++ b/packages/parse/src/combinators/repeat.ts @@ -2,11 +2,11 @@ import type { Parser } from "../api"; export const repeat = ( parser: Parser, - id = "repeat", min: number, - max = Infinity + max: number, + id = "repeat" ): Parser => (ctx) => { - if (ctx.done) return false; + if (ctx.done) return min < 1; ctx.start(id); for (let i = 0; i < max; i++) { if (!parser(ctx)) { @@ -22,8 +22,11 @@ export const repeat = ( export const zeroOrMore = ( parser: Parser, id = "repeat0", - max?: number -) => repeat(parser, id, 0, max); + max = Infinity +) => repeat(parser, 0, max, id); -export const oneOrMore = (parser: Parser, id = "repeat1", max?: number) => - repeat(parser, id, 1, max); +export const oneOrMore = ( + parser: Parser, + id = "repeat1", + max = Infinity +) => repeat(parser, 1, max, id); diff --git a/packages/parse/src/constants.ts b/packages/parse/src/constants.ts index 6a0c19bbd7..809d3e63c9 100644 --- a/packages/parse/src/constants.ts +++ b/packages/parse/src/constants.ts @@ -22,14 +22,14 @@ export const ALPHA = alt([range("a", "z"), range("A", "Z")]); export const ALPHA_NUM = alt([ALPHA, DIGIT]); -export const SIGN = maybe(oneOf("-+"), ""); - export const DIGITS_0 = zeroOrMore(DIGIT); export const DIGITS_1 = oneOrMore(DIGIT); export const HEX_DIGITS_1 = oneOrMore(HEX_DIGIT); +const SIGN = maybe(oneOf("-+")); + const EXP = maybe(seq([maybe(oneOf("eE")), SIGN, DIGITS_1])); const DOT = lit("."); diff --git a/packages/parse/src/context.ts b/packages/parse/src/context.ts index 4d5b8a0d51..4e91616620 100644 --- a/packages/parse/src/context.ts +++ b/packages/parse/src/context.ts @@ -26,6 +26,7 @@ export class ParseContext { result: null, }; this._scopes = [this._curr]; + reader.isDone(this._curr.state); } start(type: string) { diff --git a/packages/parse/src/error.ts b/packages/parse/src/error.ts index d8e271fbbf..44a39dcb1a 100644 --- a/packages/parse/src/error.ts +++ b/packages/parse/src/error.ts @@ -4,6 +4,6 @@ import { ParseContext } from "./context"; const ParseError = defError(() => `ParseError`); export const parseError = (ctx: ParseContext, msg: string): never => { - const info = ctx.reader.info(ctx.scope.state); + const info = ctx.reader.format(ctx.scope.state); throw new ParseError(msg + (info ? ` @ ${info}` : "")); }; diff --git a/packages/parse/src/string-reader.ts b/packages/parse/src/string-reader.ts index 7ab0a4f93e..5d0885c51c 100644 --- a/packages/parse/src/string-reader.ts +++ b/packages/parse/src/string-reader.ts @@ -2,6 +2,7 @@ import type { ParseState, IReader } from "./api"; class StringReader implements IReader { constructor(protected input: string) {} + read(state: ParseState): string { return this.input[state.p]; } @@ -18,13 +19,11 @@ class StringReader implements IReader { state.done = ++state.p >= this.input.length; } - set(state: ParseState, pos: number): void { - if (state.done) return; - state.p = pos; - state.done = pos >= this.input.length; + isDone(state: ParseState) { + return (state.done = state.p >= this.input.length); } - info(state: ParseState) { + format(state: ParseState) { return `offset ${state.p} (${state.l}:${state.c})`; } } diff --git a/packages/parse/test/index.ts b/packages/parse/test/index.ts index 02a8b77677..d1bc44f59a 100644 --- a/packages/parse/test/index.ts +++ b/packages/parse/test/index.ts @@ -3,15 +3,101 @@ import * as assert from "assert"; import { alt, defContext, + DIGIT, FLOAT, INT, oneOf, + oneOrMore, + Parser, + seq, WS, xform, zeroOrMore, } from "../src"; +const check = ( + parser: Parser, + src: string, + res: boolean, + pos: number +) => { + const ctx = defContext(src); + assert.equal(parser(ctx), res, `src: '${src}'`); + assert.equal(ctx.state.p, pos, `src: '${src}' pos: ${ctx.state.p}`); +}; + describe("parse", () => { + it("initial ctx", () => { + assert.deepEqual(defContext("").state, { + p: 0, + l: 1, + c: 1, + done: true, + }); + assert.deepEqual(defContext(" ").state, { + p: 0, + l: 1, + c: 1, + done: false, + }); + }); + + it("zeroOrMore", () => { + const ws = zeroOrMore(WS); + const p1 = seq([DIGIT, ws, DIGIT]); + const p2 = zeroOrMore(p1); + + check(ws, "", true, 0); + check(ws, " ", true, 1); + check(ws, " ", true, 2); + + check(p1, "", false, 0); + check(p1, "11", true, 2); + check(p1, "1 1", true, 3); + check(p1, "1 ", false, 0); + check(p1, "1 ", false, 0); + check(p1, "1 x", false, 0); + + check(p2, "", true, 0); + check(p2, "11", true, 2); + check(p2, "1 1", true, 3); + check(p2, "1 x", true, 0); + check(p2, "1 122", true, 5); + }); + + it("oneOrMore", () => { + const ws = oneOrMore(WS); + const p1 = seq([DIGIT, ws, DIGIT]); + const p2 = oneOrMore(p1); + const p3 = oneOrMore(seq([DIGIT, zeroOrMore(WS), DIGIT])); + + check(ws, "", false, 0); + check(ws, " ", true, 1); + check(ws, " ", true, 2); + + check(p1, "", false, 0); + check(p1, "11", false, 0); + check(p1, "1 1", true, 3); + check(p1, "1 ", false, 0); + check(p1, "1 ", false, 0); + check(p1, "1 x", false, 0); + + check(p2, "", false, 0); + check(p2, "11", false, 0); + check(p2, "1 1", true, 3); + check(p2, "1 x", false, 0); + check(p2, "1 12 2", true, 6); + + check(p3, "", false, 0); + check(p3, "1", false, 0); + check(p3, "1x", false, 0); + check(p3, "1 x", false, 0); + check(p3, "11", true, 2); + check(p3, "1111", true, 4); + check(p3, "111 1", true, 5); + check(p3, "11x", true, 2); + }); + it("float", () => { [ "1", @@ -43,13 +129,13 @@ describe("parse", () => { stack.push(scope!.result); return null; }); - const op = xform(oneOf("+-*/"), (scope) => { + const op = xform(oneOf(Object.keys(ops)), (scope) => { const b = stack.pop()!; const a = stack.pop()!; stack.push(ops[scope!.result](a, b)); return null; }); - const program = zeroOrMore(alt([value, op, WS])); + const program = zeroOrMore(alt([value, op, zeroOrMore(WS)])); program(defContext("10 5 3 * + -2 * 10 /")); assert.deepEqual(stack, [-5]); }); diff --git a/packages/parse/tpl.readme.md b/packages/parse/tpl.readme.md index f7c78d93da..19d0879258 100644 --- a/packages/parse/tpl.readme.md +++ b/packages/parse/tpl.readme.md @@ -141,6 +141,7 @@ Source: [/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/pac - `alt` - - `maybe` - - `not` - +- `oneOrMore` / `zeroOrMore` - - `repeat` - - `seq` - From 43f33687431f9ea8269c1eba0342d0589f7ac4dc Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 15 Apr 2020 18:07:35 +0100 Subject: [PATCH 09/78] feat(parse): add collect/xfCollect, update xfPrint --- packages/parse/src/combinators/collect.ts | 5 +++++ packages/parse/src/context.ts | 4 ++++ packages/parse/src/index.ts | 2 ++ packages/parse/src/xform/collect.ts | 7 +++++++ packages/parse/src/xform/print.ts | 4 +++- 5 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 packages/parse/src/combinators/collect.ts create mode 100644 packages/parse/src/xform/collect.ts diff --git a/packages/parse/src/combinators/collect.ts b/packages/parse/src/combinators/collect.ts new file mode 100644 index 0000000000..854f99f2ed --- /dev/null +++ b/packages/parse/src/combinators/collect.ts @@ -0,0 +1,5 @@ +import type { Parser } from "../api"; +import { xfCollect } from "../xform/collect"; +import { xform } from "./xform"; + +export const collect = (parser: Parser) => xform(parser, xfCollect); diff --git a/packages/parse/src/context.ts b/packages/parse/src/context.ts index 4e91616620..12a26d6e54 100644 --- a/packages/parse/src/context.ts +++ b/packages/parse/src/context.ts @@ -76,6 +76,10 @@ export class ParseContext { get done() { return this._curr.state.done; } + + get result() { + return this._curr.children ? this._curr.children[0].result : undefined; + } } /** diff --git a/packages/parse/src/index.ts b/packages/parse/src/index.ts index d2168d76ac..525e610c47 100644 --- a/packages/parse/src/index.ts +++ b/packages/parse/src/index.ts @@ -6,6 +6,7 @@ export * from "./string-reader"; export * from "./combinators/alt"; export * from "./combinators/check"; +export * from "./combinators/collect"; export * from "./combinators/discard"; export * from "./combinators/expect"; export * from "./combinators/maybe"; @@ -26,6 +27,7 @@ export * from "./prims/range"; export * from "./prims/satisfy"; export * from "./prims/string"; +export * from "./xform/collect"; export * from "./xform/comp"; export * from "./xform/number"; export * from "./xform/merge"; diff --git a/packages/parse/src/xform/collect.ts b/packages/parse/src/xform/collect.ts new file mode 100644 index 0000000000..a94bd1ea75 --- /dev/null +++ b/packages/parse/src/xform/collect.ts @@ -0,0 +1,7 @@ +import { ScopeTransform } from "../api"; + +export const xfCollect: ScopeTransform = (scope) => { + scope!.result = scope!.children!.map((c) => c.result); + scope!.children = null; + return scope; +}; diff --git a/packages/parse/src/xform/print.ts b/packages/parse/src/xform/print.ts index faf2770450..a18eea3583 100644 --- a/packages/parse/src/xform/print.ts +++ b/packages/parse/src/xform/print.ts @@ -4,7 +4,9 @@ export const xfPrint: ScopeTransform = (scope, _, indent = 0) => { if (!scope) return; const prefix = indent > 0 ? " ".repeat(indent) : ""; console.log( - `${prefix}${scope.id} (${scope.state.l}:${scope.state.c}): ${scope.result}` + `${prefix}${scope.id} (${scope.state.l}:${ + scope.state.c + }): ${JSON.stringify(scope.result)}` ); if (scope.children) { for (let c of scope.children) { From c91ae4a4554df6141436300567add9a070a6fe36 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 15 Apr 2020 18:08:03 +0100 Subject: [PATCH 10/78] test(parse): add/update tests (svg) --- packages/parse/test/float.ts | 24 ++++++++++++++++ packages/parse/test/index.ts | 48 ------------------------------- packages/parse/test/rpn.ts | 30 ++++++++++++++++++++ packages/parse/test/svg.ts | 55 ++++++++++++++++++++++++++++++++++++ 4 files changed, 109 insertions(+), 48 deletions(-) create mode 100644 packages/parse/test/float.ts create mode 100644 packages/parse/test/rpn.ts create mode 100644 packages/parse/test/svg.ts diff --git a/packages/parse/test/float.ts b/packages/parse/test/float.ts new file mode 100644 index 0000000000..2817f95778 --- /dev/null +++ b/packages/parse/test/float.ts @@ -0,0 +1,24 @@ +import * as assert from "assert"; +import { defContext, FLOAT } from "../src"; + +describe("parse", () => { + it("float", () => { + [ + "1", + "-1", + "+1", + "1.", + "1.01", + ".1", + "-.1", + "1.2e3", + "-1.2e-3", + ".1e+3", + "-1-", + ].forEach((x) => { + const ctx = defContext(x); + assert(FLOAT(ctx), x); + assert.equal(ctx.scope.children![0].result, parseFloat(x), x); + }); + }); +}); diff --git a/packages/parse/test/index.ts b/packages/parse/test/index.ts index d1bc44f59a..469762ba54 100644 --- a/packages/parse/test/index.ts +++ b/packages/parse/test/index.ts @@ -1,17 +1,11 @@ -import { Fn2 } from "@thi.ng/api"; import * as assert from "assert"; import { - alt, defContext, DIGIT, - FLOAT, - INT, - oneOf, oneOrMore, Parser, seq, WS, - xform, zeroOrMore, } from "../src"; @@ -97,46 +91,4 @@ describe("parse", () => { check(p3, "111 1", true, 5); check(p3, "11x", true, 2); }); - - it("float", () => { - [ - "1", - "-1", - "+1", - "1.", - "1.01", - ".1", - "-.1", - "1.2e3", - "-1.2e-3", - ".1e+3", - ].forEach((x) => { - const ctx = defContext(x); - assert(FLOAT(ctx), x); - assert.equal(ctx.scope.children![0].result, parseFloat(x), x); - }); - }); - - it("RPN", () => { - const stack: number[] = []; - const ops: Record> = { - "+": (a, b) => a + b, - "-": (a, b) => a - b, - "*": (a, b) => a * b, - "/": (a, b) => a / b, - }; - const value = xform(INT, (scope) => { - stack.push(scope!.result); - return null; - }); - const op = xform(oneOf(Object.keys(ops)), (scope) => { - const b = stack.pop()!; - const a = stack.pop()!; - stack.push(ops[scope!.result](a, b)); - return null; - }); - const program = zeroOrMore(alt([value, op, zeroOrMore(WS)])); - program(defContext("10 5 3 * + -2 * 10 /")); - assert.deepEqual(stack, [-5]); - }); }); diff --git a/packages/parse/test/rpn.ts b/packages/parse/test/rpn.ts new file mode 100644 index 0000000000..adcd207569 --- /dev/null +++ b/packages/parse/test/rpn.ts @@ -0,0 +1,30 @@ +import { Fn2 } from "@thi.ng/api"; +import * as assert from "assert"; +import { alt, defContext, INT, oneOf, WS, xform, zeroOrMore } from "../src"; + +describe("parse", () => { + it("RPN calc", () => { + const stack: number[] = []; + const ops: Record> = { + "+": (a, b) => a + b, + "-": (a, b) => a - b, + "*": (a, b) => a * b, + "/": (a, b) => a / b, + }; + const value = xform(INT, (scope) => { + stack.push(scope!.result); + return null; + }); + const op = xform(oneOf(Object.keys(ops)), (scope) => { + const b = stack.pop()!; + const a = stack.pop()!; + stack.push(ops[scope!.result](a, b)); + return null; + }); + const program = zeroOrMore(alt([value, op, zeroOrMore(WS)])); + const ctx = defContext("10 5 3 * + -2 * 10 /"); + assert(program(ctx)); + assert(ctx.done); + assert.deepEqual(stack, [-5]); + }); +}); diff --git a/packages/parse/test/svg.ts b/packages/parse/test/svg.ts new file mode 100644 index 0000000000..ff5a7fa4ab --- /dev/null +++ b/packages/parse/test/svg.ts @@ -0,0 +1,55 @@ +import * as assert from "assert"; +import { + alt, + collect, + defContext, + discard, + INT, + oneOf, + Parser, + seq, + WS, + xform, + zeroOrMore, +} from "../src"; + +const check = ( + parser: Parser, + src: string, + res: boolean, + pos: number +) => { + const ctx = defContext(src); + assert.equal(parser(ctx), res, `src: '${src}'`); + assert.equal(ctx.state.p, pos, `src: '${src}' pos: ${ctx.state.p}`); +}; + +describe("parse", () => { + it("SVG", () => { + const ws = discard(zeroOrMore(WS)); + const wsc = discard(zeroOrMore(oneOf(" \n,"))); + const point = collect(seq([INT, wsc, INT])); + const move = collect(seq([oneOf("Mm"), ws, point, ws])); + const line = collect(seq([oneOf("Ll"), ws, point, ws])); + const curve = collect( + seq([oneOf("Cc"), ws, point, wsc, point, wsc, point, ws]) + ); + const close = xform(oneOf("Zz"), ($) => (($!.result = [$!.result]), $)); + const path = collect(zeroOrMore(alt([move, line, curve, close]))); + check(point, "1-2", true, 3); + check(move, "M1-2", true, 4); + check(line, "l1-2", true, 4); + check(curve, "c1-2-3 4,5 6", true, 12); + check(path, "M0,1L2 3c4,5-6,7 8 9z", true, 21); + + const ctx = defContext("M0,1L2 3c4,5-6,7 8 9z"); + assert(path(ctx)); + assert(ctx.done); + assert.deepEqual(ctx.result, [ + ["M", [0, 1]], + ["L", [2, 3]], + ["c", [4, 5], [-6, 7], [8, 9]], + ["z"], + ]); + }); +}); From bb9097663a3295c4d7d394221b2ca0c9f3b9becd Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 15 Apr 2020 18:29:21 +0100 Subject: [PATCH 11/78] docs(parse): update readme --- packages/parse/README.md | 33 +++++++++++++++++++++++++++++---- packages/parse/tpl.readme.md | 28 ++++++++++++++++++++++++++-- 2 files changed, 55 insertions(+), 6 deletions(-) diff --git a/packages/parse/README.md b/packages/parse/README.md index 2be07b748d..81def0cc82 100644 --- a/packages/parse/README.md +++ b/packages/parse/README.md @@ -14,6 +14,7 @@ This project is part of the - [Installation](#installation) - [Dependencies](#dependencies) - [API](#api) + - [SVG path parser example](#svg-path-parser-example) - [RPN parser & interpreter example](#rpn-parser--interpreter-example) - [Context & reader creation](#context--reader-creation) - [Presets parsers](#presets-parsers) @@ -38,12 +39,11 @@ Purely functional parser combinators & AST generation for generic inputs. yarn add @thi.ng/parse ``` -Package sizes (gzipped, pre-treeshake): ESM: 1.97 KB / CJS: 2.17 KB / UMD: 2.08 KB +Package sizes (gzipped, pre-treeshake): ESM: 2.08 KB / CJS: 2.27 KB / UMD: 2.16 KB ## Dependencies - [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/api) -- [@thi.ng/arrays](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/arrays) - [@thi.ng/checks](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/checks) - [@thi.ng/errors](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/errors) @@ -53,12 +53,34 @@ Package sizes (gzipped, pre-treeshake): ESM: 1.97 KB / CJS: 2.17 KB / UMD: 2.08 TODO +### SVG path parser example + +```ts +const ws = discard(zeroOrMore(WS)); +const wsc = discard(zeroOrMore(oneOf(" ,"))); + +const point = collect(seq([INT, wsc, INT])); +const move = collect(seq([oneOf("Mm"), ws, point, ws])); +const line = collect(seq([oneOf("Ll"), ws, point, ws])); +const curve = collect(seq([oneOf("Cc"), ws, point, wsc, point, wsc, point, ws])); +const close = xform(oneOf("Zz"), ($) => ($.result = [$.result], $)); + +const path = collect(zeroOrMore(alt([move, line, curve, close]))); + +const ctx = defContext("M0,1L2 3c4,5-6,7 8 9z"); +path(ctx); +// true + +ctx.result +// [["M", [0, 1]], ["L", [2, 3]], ["c", [4, 5], [-6, 7], [8, 9]], ["z"]] +``` + ### RPN parser & interpreter example ```ts import { INT, WS, - alt, oneOf, repeat0, xform, + alt, oneOf, xform, zeroOrMore defContext } from "@thi.ng/parse"; @@ -93,7 +115,7 @@ const op = xform(oneOf(Object.keys(ops)), (scope) => { // parser for complete RPN program, combines above two parsers // and the whitespace preset as alternatives -const program = repeat0(alt([value, op, WS])); +const program = zeroOrMore(alt([value, op, zeroOrMore(WS)])) // prepare parser context (incl. reader) and execute program(defContext("10 5 3 * + -2 * 10 /")); @@ -153,6 +175,7 @@ Source: [/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/pac - `alt` - - `maybe` - - `not` - +- `oneOrMore` / `zeroOrMore` - - `repeat` - - `seq` - @@ -160,6 +183,7 @@ Source: [/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/pac - `xform` - - `check` - +- `collect` - - `discard` - - `expect` - - `merge` - @@ -167,6 +191,7 @@ Source: [/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/pac Source: [/xform](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/xform) - `comp` - transform composition +- `xfCollect` - - `xfFloat` - - `xfInt` - - `xfMerge` - diff --git a/packages/parse/tpl.readme.md b/packages/parse/tpl.readme.md index 19d0879258..10805873ad 100644 --- a/packages/parse/tpl.readme.md +++ b/packages/parse/tpl.readme.md @@ -41,12 +41,34 @@ ${docLink} TODO +### SVG path parser example + +```ts +const ws = discard(zeroOrMore(WS)); +const wsc = discard(zeroOrMore(oneOf(" ,"))); + +const point = collect(seq([INT, wsc, INT])); +const move = collect(seq([oneOf("Mm"), ws, point, ws])); +const line = collect(seq([oneOf("Ll"), ws, point, ws])); +const curve = collect(seq([oneOf("Cc"), ws, point, wsc, point, wsc, point, ws])); +const close = xform(oneOf("Zz"), ($) => ($.result = [$.result], $)); + +const path = collect(zeroOrMore(alt([move, line, curve, close]))); + +const ctx = defContext("M0,1L2 3c4,5-6,7 8 9z"); +path(ctx); +// true + +ctx.result +// [["M", [0, 1]], ["L", [2, 3]], ["c", [4, 5], [-6, 7], [8, 9]], ["z"]] +``` + ### RPN parser & interpreter example ```ts import { INT, WS, - alt, oneOf, repeat0, xform, + alt, oneOf, xform, zeroOrMore defContext } from "@thi.ng/parse"; @@ -81,7 +103,7 @@ const op = xform(oneOf(Object.keys(ops)), (scope) => { // parser for complete RPN program, combines above two parsers // and the whitespace preset as alternatives -const program = repeat0(alt([value, op, WS])); +const program = zeroOrMore(alt([value, op, zeroOrMore(WS)])) // prepare parser context (incl. reader) and execute program(defContext("10 5 3 * + -2 * 10 /")); @@ -149,6 +171,7 @@ Source: [/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/pac - `xform` - - `check` - +- `collect` - - `discard` - - `expect` - - `merge` - @@ -156,6 +179,7 @@ Source: [/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/pac Source: [/xform](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/xform) - `comp` - transform composition +- `xfCollect` - - `xfFloat` - - `xfInt` - - `xfMerge` - From bef1d4f628320d1aac9cf6d924749d4f15864d07 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 16 Apr 2020 01:27:58 +0100 Subject: [PATCH 12/78] feat(parse): update ParseContext, repeat & lift - add context debug option / tracing - add .addChild() - update repeat zero-match handling - simplify lift() --- packages/parse/src/combinators/repeat.ts | 4 +- packages/parse/src/constants.ts | 4 +- packages/parse/src/context.ts | 52 ++++++++++++++++++++---- packages/parse/src/prims/lift.ts | 5 +-- 4 files changed, 51 insertions(+), 14 deletions(-) diff --git a/packages/parse/src/combinators/repeat.ts b/packages/parse/src/combinators/repeat.ts index 3a70eb411f..267168f539 100644 --- a/packages/parse/src/combinators/repeat.ts +++ b/packages/parse/src/combinators/repeat.ts @@ -6,7 +6,9 @@ export const repeat = ( max: number, id = "repeat" ): Parser => (ctx) => { - if (ctx.done) return min < 1; + if (ctx.done) { + return min < 1 ? (ctx.addChild(id), true) : false; + } ctx.start(id); for (let i = 0; i < max; i++) { if (!parser(ctx)) { diff --git a/packages/parse/src/constants.ts b/packages/parse/src/constants.ts index 809d3e63c9..0eb1424bc8 100644 --- a/packages/parse/src/constants.ts +++ b/packages/parse/src/constants.ts @@ -37,13 +37,13 @@ const DOT = lit("."); const FRACT0 = maybe(seq([DOT, maybe(DIGITS_0)])); const FRACT1 = seq([DOT, DIGITS_1]); -export const INT = xform(seq([SIGN, DIGITS_1]), xfInt()); +export const INT = xform(seq([SIGN, DIGITS_1], "int"), xfInt()); export const UINT = xform(DIGITS_1, xfInt()); export const HEX_UINT = xform(HEX_DIGITS_1, xfInt(16)); export const FLOAT = xform( - seq([SIGN, alt([FRACT1, seq([DIGITS_1, FRACT0])]), EXP]), + seq([SIGN, alt([FRACT1, seq([DIGITS_1, FRACT0])]), EXP], "float"), xfFloat ); diff --git a/packages/parse/src/context.ts b/packages/parse/src/context.ts index 12a26d6e54..531c3b2c25 100644 --- a/packages/parse/src/context.ts +++ b/packages/parse/src/context.ts @@ -9,16 +9,25 @@ interface ContextOpts { * @defaultVal 32 */ maxDepth: number; + /** + * True to enable parser debug output. + * + * @defaultValue false + */ + debug: boolean; } export class ParseContext { + maxDepth: number; + debug: boolean; + protected _scopes: ParseScope[]; protected _curr: ParseScope; - protected _maxDepth: number; constructor(public reader: IReader, opts?: Partial) { - opts = { maxDepth: 32, ...opts }; - this._maxDepth = opts.maxDepth!; + opts = { maxDepth: 32, debug: false, ...opts }; + this.maxDepth = opts.maxDepth!; + this.debug = opts.debug!; this._curr = { id: "root", state: { p: 0, l: 1, c: 1 }, @@ -29,25 +38,33 @@ export class ParseContext { reader.isDone(this._curr.state); } - start(type: string) { - if (this._scopes.length >= this._maxDepth) { - parseError(this, `recursion limit reached ${this._maxDepth}`); + start(id: string) { + if (this._scopes.length >= this.maxDepth) { + parseError(this, `recursion limit reached ${this.maxDepth}`); } const scopes = this._scopes; const scope: ParseScope = { - id: type, + id, state: { ...scopes[scopes.length - 1].state }, children: null, result: null, }; scopes.push(scope); + if (this.debug) { + console.log( + `${" ".repeat(scopes.length)}start: ${id} (${scope.state.p})` + ); + } return (this._curr = scope); } discard() { const scopes = this._scopes; - scopes.pop(); + const child = scopes.pop()!; this._curr = scopes[scopes.length - 1]; + if (this.debug) { + console.log(`${" ".repeat(scopes.length + 1)}discard: ${child.id}`); + } return false; } @@ -57,6 +74,11 @@ export class ParseContext { const parent = scopes[scopes.length - 1]; const cstate = child.state; const pstate = parent.state; + if (this.debug) { + console.log( + `${" ".repeat(scopes.length + 1)}end: ${child.id} (${cstate.p})` + ); + } child.state = { p: pstate.p, l: pstate.l, c: pstate.c }; parent.state = cstate; const children = parent.children; @@ -65,6 +87,20 @@ export class ParseContext { return true; } + addChild(id: string, result: any = null) { + const curr = this._curr; + const cstate = curr.state; + const child: ParseScope = { + id, + state: { p: cstate.p, l: cstate.l, c: cstate.c }, + children: null, + result, + }; + const children = curr.children; + children ? children.push(child) : (curr.children = [child]); + return child; + } + get scope() { return this._curr; } diff --git a/packages/parse/src/prims/lift.ts b/packages/parse/src/prims/lift.ts index de4b1c56f8..92c84c68f2 100644 --- a/packages/parse/src/prims/lift.ts +++ b/packages/parse/src/prims/lift.ts @@ -4,7 +4,6 @@ import type { Lift, Parser } from "../api"; export const lift = (result: Lift, id = "lift"): Parser => ( ctx ) => { - const scope = ctx.start(id); - scope.result = isFunction(result) ? result() : result; - return ctx.end(); + ctx.addChild(id, isFunction(result) ? result() : result); + return true; }; From 02597bf825df3e467cf2d090c69198d85f1767f2 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 16 Apr 2020 11:34:25 +0100 Subject: [PATCH 13/78] feat(parse): add ctx getters, add presets, update maybe --- packages/parse/src/combinators/maybe.ts | 2 +- packages/parse/src/constants.ts | 8 +++++--- packages/parse/src/context.ts | 21 ++++++++++++++++++++- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/packages/parse/src/combinators/maybe.ts b/packages/parse/src/combinators/maybe.ts index da5e9aac24..1ad944c362 100644 --- a/packages/parse/src/combinators/maybe.ts +++ b/packages/parse/src/combinators/maybe.ts @@ -5,4 +5,4 @@ export const maybe = ( parser: Parser, fn?: Lift, id = "maybe" -): Parser => (ctx) => parser(ctx) || lift(fn != null ? fn : null, id)(ctx); +): Parser => (ctx) => parser(ctx) || lift(fn, id)(ctx); diff --git a/packages/parse/src/constants.ts b/packages/parse/src/constants.ts index 0eb1424bc8..5dcf7e4d2c 100644 --- a/packages/parse/src/constants.ts +++ b/packages/parse/src/constants.ts @@ -8,9 +8,11 @@ import { oneOf } from "./prims/one-of"; import { range } from "./prims/range"; import { xfFloat, xfInt } from "./xform/number"; -export const WS = oneOf(" \t\n\r"); +export const WS = oneOf(" \t\n\r", "ws"); +export const WS_0 = zeroOrMore(WS, "ws0"); +export const WS_1 = oneOrMore(WS, "ws1"); -export const DIGIT = range("0", "9"); +export const DIGIT = range("0", "9", "digit"); export const HEX_DIGIT = alt([ DIGIT, @@ -34,7 +36,7 @@ const EXP = maybe(seq([maybe(oneOf("eE")), SIGN, DIGITS_1])); const DOT = lit("."); -const FRACT0 = maybe(seq([DOT, maybe(DIGITS_0)])); +const FRACT0 = maybe(seq([DOT, DIGITS_0])); const FRACT1 = seq([DOT, DIGITS_1]); export const INT = xform(seq([SIGN, DIGITS_1], "int"), xfInt()); diff --git a/packages/parse/src/context.ts b/packages/parse/src/context.ts index 531c3b2c25..65d7709704 100644 --- a/packages/parse/src/context.ts +++ b/packages/parse/src/context.ts @@ -113,8 +113,27 @@ export class ParseContext { return this._curr.state.done; } + /** + * Returns root node. + */ + get root() { + return this._scopes[0]; + } + + /** + * Returns root node's `result` or `undefined`. + */ get result() { - return this._curr.children ? this._curr.children[0].result : undefined; + const children = this.root.children; + return children ? children[0].result : undefined; + } + + /** + * Returns root node's children or `undefined`. + */ + get children() { + const children = this.root.children; + return children ? children[0].children : undefined; } } From 43f62c54ac51a4254d694ffede9b42f91d7f314b Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 16 Apr 2020 15:38:54 +0100 Subject: [PATCH 14/78] refactor(parse): split presets into sep files --- packages/parse/src/constants.ts | 51 ------------------------ packages/parse/src/index.ts | 6 ++- packages/parse/src/presets/alpha.ts | 23 +++++++++++ packages/parse/src/presets/digits.ts | 32 +++++++++++++++ packages/parse/src/presets/numbers.ts | 47 ++++++++++++++++++++++ packages/parse/src/presets/whitespace.ts | 18 +++++++++ 6 files changed, 125 insertions(+), 52 deletions(-) delete mode 100644 packages/parse/src/constants.ts create mode 100644 packages/parse/src/presets/alpha.ts create mode 100644 packages/parse/src/presets/digits.ts create mode 100644 packages/parse/src/presets/numbers.ts create mode 100644 packages/parse/src/presets/whitespace.ts diff --git a/packages/parse/src/constants.ts b/packages/parse/src/constants.ts deleted file mode 100644 index 5dcf7e4d2c..0000000000 --- a/packages/parse/src/constants.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { alt } from "./combinators/alt"; -import { maybe } from "./combinators/maybe"; -import { oneOrMore, zeroOrMore } from "./combinators/repeat"; -import { seq } from "./combinators/seq"; -import { xform } from "./combinators/xform"; -import { lit } from "./prims/lit"; -import { oneOf } from "./prims/one-of"; -import { range } from "./prims/range"; -import { xfFloat, xfInt } from "./xform/number"; - -export const WS = oneOf(" \t\n\r", "ws"); -export const WS_0 = zeroOrMore(WS, "ws0"); -export const WS_1 = oneOrMore(WS, "ws1"); - -export const DIGIT = range("0", "9", "digit"); - -export const HEX_DIGIT = alt([ - DIGIT, - range("a", "f"), - range("A", "F"), -]); - -export const ALPHA = alt([range("a", "z"), range("A", "Z")]); - -export const ALPHA_NUM = alt([ALPHA, DIGIT]); - -export const DIGITS_0 = zeroOrMore(DIGIT); - -export const DIGITS_1 = oneOrMore(DIGIT); - -export const HEX_DIGITS_1 = oneOrMore(HEX_DIGIT); - -const SIGN = maybe(oneOf("-+")); - -const EXP = maybe(seq([maybe(oneOf("eE")), SIGN, DIGITS_1])); - -const DOT = lit("."); - -const FRACT0 = maybe(seq([DOT, DIGITS_0])); -const FRACT1 = seq([DOT, DIGITS_1]); - -export const INT = xform(seq([SIGN, DIGITS_1], "int"), xfInt()); - -export const UINT = xform(DIGITS_1, xfInt()); - -export const HEX_UINT = xform(HEX_DIGITS_1, xfInt(16)); - -export const FLOAT = xform( - seq([SIGN, alt([FRACT1, seq([DIGITS_1, FRACT0])]), EXP], "float"), - xfFloat -); diff --git a/packages/parse/src/index.ts b/packages/parse/src/index.ts index 525e610c47..193ace297f 100644 --- a/packages/parse/src/index.ts +++ b/packages/parse/src/index.ts @@ -1,5 +1,4 @@ export * from "./api"; -export * from "./constants"; export * from "./context"; export * from "./error"; export * from "./string-reader"; @@ -32,3 +31,8 @@ export * from "./xform/comp"; export * from "./xform/number"; export * from "./xform/merge"; export * from "./xform/print"; + +export * from "./presets/alpha"; +export * from "./presets/digits"; +export * from "./presets/numbers"; +export * from "./presets/whitespace"; diff --git a/packages/parse/src/presets/alpha.ts b/packages/parse/src/presets/alpha.ts new file mode 100644 index 0000000000..71f1bb6902 --- /dev/null +++ b/packages/parse/src/presets/alpha.ts @@ -0,0 +1,23 @@ +import { range } from "../prims/range"; +import { alt } from "../combinators/alt"; +import { DIGIT } from "./digits"; + +/** + * Matches single char in `a` - `z` range. + */ +export const LOWER_CASE = range("a", "z"); + +/** + * Matches single char in `A` - `Z` range. + */ +export const UPPER_CASE = range("A", "Z"); + +/** + * Matches single in {@link LOWER_CASE} or {@link UPPER_CASE}. + */ +export const ALPHA = alt([LOWER_CASE, UPPER_CASE]); + +/** + * Matches single in {@link ALPHA} or {@link DIGIT}. + */ +export const ALPHA_NUM = alt([ALPHA, DIGIT]); diff --git a/packages/parse/src/presets/digits.ts b/packages/parse/src/presets/digits.ts new file mode 100644 index 0000000000..658f237043 --- /dev/null +++ b/packages/parse/src/presets/digits.ts @@ -0,0 +1,32 @@ +import { alt } from "../combinators/alt"; +import { oneOrMore, zeroOrMore } from "../combinators/repeat"; +import { range } from "../prims/range"; + +/** + * Matches single decimal digit. + */ +export const DIGIT = range("0", "9", "digit"); + +/** + * Matches single hex digit (case insensitive). + */ +export const HEX_DIGIT = alt([ + DIGIT, + range("a", "f"), + range("A", "F"), +]); + +/** + * Matches zero or more {@link DIGIT}s. + */ +export const DIGITS_0 = zeroOrMore(DIGIT); + +/** + * Matches one or more {@link DIGIT}s. + */ +export const DIGITS_1 = oneOrMore(DIGIT); + +/** + * Matches one or more {@link HEX_DIGIT}s. + */ +export const HEX_DIGITS_1 = oneOrMore(HEX_DIGIT); diff --git a/packages/parse/src/presets/numbers.ts b/packages/parse/src/presets/numbers.ts new file mode 100644 index 0000000000..fe5d491d7a --- /dev/null +++ b/packages/parse/src/presets/numbers.ts @@ -0,0 +1,47 @@ +import { alt } from "../combinators/alt"; +import { maybe } from "../combinators/maybe"; +import { seq } from "../combinators/seq"; +import { xform } from "../combinators/xform"; +import { lit } from "../prims/lit"; +import { oneOf } from "../prims/one-of"; +import { xfFloat, xfInt } from "../xform/number"; +import { DIGITS_0, DIGITS_1, HEX_DIGITS_1 } from "./digits"; + +/** + * Matches single `+` or `-` char. + */ +export const SIGN = maybe(oneOf("-+")); + +/** + * Matches optionally signed {@link DIGITS_1} and result transformed w/ + * {@link xfInt} to JS number. + */ +export const INT = xform(seq([SIGN, DIGITS_1], "int"), xfInt()); + +/** + * Matches same as {@link DIGITS_1}, but result transformed w/ + * {@link xfInt} to JS number. + */ +export const UINT = xform(DIGITS_1, xfInt()); + +/** + * Matches same as {@link HEX_DIGITS_1}, but result transformed w/ + * {@link xfInt} to JS number. + */ +export const HEX_UINT = xform(HEX_DIGITS_1, xfInt(16)); + +const EXP = maybe(seq([maybe(oneOf("eE")), SIGN, DIGITS_1])); + +const DOT = lit("."); + +const FRACT0 = maybe(seq([DOT, DIGITS_0])); +const FRACT1 = seq([DOT, DIGITS_1]); + +/** + * Matches IEEE754 floating point number and transforms result w/ + * {@link xfFloat}. + */ +export const FLOAT = xform( + seq([SIGN, alt([FRACT1, seq([DIGITS_1, FRACT0])]), EXP], "float"), + xfFloat +); diff --git a/packages/parse/src/presets/whitespace.ts b/packages/parse/src/presets/whitespace.ts new file mode 100644 index 0000000000..2b8bf4d6dc --- /dev/null +++ b/packages/parse/src/presets/whitespace.ts @@ -0,0 +1,18 @@ +import { discard } from "../combinators/discard"; +import { oneOrMore, zeroOrMore } from "../combinators/repeat"; +import { oneOf } from "../prims/one-of"; + +/** + * Matches single whitespace char. + */ +export const WS = oneOf(" \t\n\r", "ws"); + +/** + * Zero or more {@link WS}. Result will be discarded. + */ +export const WS_0 = discard(zeroOrMore(WS, "ws0")); + +/** + * One or more {@link WS}. Result will be discarded. + */ +export const WS_1 = discard(oneOrMore(WS, "ws1")); From 3bec0dbf759d9742adefb936e58359f95da58fc8 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 16 Apr 2020 15:40:16 +0100 Subject: [PATCH 15/78] feat(parse): add ArrayReader, update pkg info --- packages/parse/package.json | 4 ++- packages/parse/src/index.ts | 14 +++++----- packages/parse/src/readers/array-reader.ts | 26 +++++++++++++++++++ .../parse/src/{ => readers}/string-reader.ts | 2 +- 4 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 packages/parse/src/readers/array-reader.ts rename packages/parse/src/{ => readers}/string-reader.ts (93%) diff --git a/packages/parse/package.json b/packages/parse/package.json index c85101f77c..8740eadd66 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -20,7 +20,7 @@ "build:test": "rimraf build && tsc -p test/tsconfig.json", "test": "mocha test", "cover": "nyc mocha test && nyc report --reporter=lcov", - "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib combinators prims xform", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib combinators presets prims readers xform", "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 src", @@ -47,7 +47,9 @@ "*.d.ts", "lib", "combinators", + "presets", "prims", + "readers", "xform" ], "keywords": [ diff --git a/packages/parse/src/index.ts b/packages/parse/src/index.ts index 193ace297f..b0ea7b71e2 100644 --- a/packages/parse/src/index.ts +++ b/packages/parse/src/index.ts @@ -1,7 +1,6 @@ export * from "./api"; export * from "./context"; export * from "./error"; -export * from "./string-reader"; export * from "./combinators/alt"; export * from "./combinators/check"; @@ -16,6 +15,11 @@ export * from "./combinators/repeat"; export * from "./combinators/seq"; export * from "./combinators/xform"; +export * from "./presets/alpha"; +export * from "./presets/digits"; +export * from "./presets/numbers"; +export * from "./presets/whitespace"; + export * from "./prims/always"; export * from "./prims/anchor"; export * from "./prims/lift"; @@ -26,13 +30,11 @@ export * from "./prims/range"; export * from "./prims/satisfy"; export * from "./prims/string"; +export * from "./readers/array-reader"; +export * from "./readers/string-reader"; + export * from "./xform/collect"; export * from "./xform/comp"; export * from "./xform/number"; export * from "./xform/merge"; export * from "./xform/print"; - -export * from "./presets/alpha"; -export * from "./presets/digits"; -export * from "./presets/numbers"; -export * from "./presets/whitespace"; diff --git a/packages/parse/src/readers/array-reader.ts b/packages/parse/src/readers/array-reader.ts new file mode 100644 index 0000000000..8126e776cd --- /dev/null +++ b/packages/parse/src/readers/array-reader.ts @@ -0,0 +1,26 @@ +import type { ParseState, IReader } from "../api"; + +class ArrayReader implements IReader { + constructor(protected input: ArrayLike) {} + + read(state: ParseState): T { + return this.input[state.p]; + } + + next(state: ParseState): void { + if (state.done) return; + state.last = this.input[state.p]; + state.done = ++state.p >= this.input.length; + } + + isDone(state: ParseState) { + return (state.done = state.p >= this.input.length); + } + + format(state: ParseState) { + return `offset ${state.p}`; + } +} + +export const defArrayReader = (input: ArrayLike) => + new ArrayReader(input); diff --git a/packages/parse/src/string-reader.ts b/packages/parse/src/readers/string-reader.ts similarity index 93% rename from packages/parse/src/string-reader.ts rename to packages/parse/src/readers/string-reader.ts index 5d0885c51c..04bd5a610f 100644 --- a/packages/parse/src/string-reader.ts +++ b/packages/parse/src/readers/string-reader.ts @@ -1,4 +1,4 @@ -import type { ParseState, IReader } from "./api"; +import type { ParseState, IReader } from "../api"; class StringReader implements IReader { constructor(protected input: string) {} From a89ee871a098582c909fcf8558ed979d04942250 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 16 Apr 2020 15:52:18 +0100 Subject: [PATCH 16/78] feat(parse): make retained state info optional --- packages/parse/src/api.ts | 2 +- packages/parse/src/context.ts | 79 ++++++++++++++++++++--------- packages/parse/src/error.ts | 2 +- packages/parse/src/prims/anchor.ts | 10 ++-- packages/parse/src/prims/range.ts | 13 +++++ packages/parse/src/prims/satisfy.ts | 4 +- packages/parse/src/prims/string.ts | 2 +- packages/parse/src/xform/print.ts | 8 ++- packages/parse/test/index.ts | 2 +- packages/parse/test/rpn.ts | 6 +-- packages/parse/test/svg.ts | 11 ++-- 11 files changed, 91 insertions(+), 48 deletions(-) diff --git a/packages/parse/src/api.ts b/packages/parse/src/api.ts index 02c56de696..61a6d5bfb4 100644 --- a/packages/parse/src/api.ts +++ b/packages/parse/src/api.ts @@ -3,7 +3,7 @@ import { ParseContext } from "./context"; export interface ParseScope { id: string; - state: ParseState; + state: Nullable>; children: Nullable[]>; result: any; } diff --git a/packages/parse/src/context.ts b/packages/parse/src/context.ts index 65d7709704..7f683976d5 100644 --- a/packages/parse/src/context.ts +++ b/packages/parse/src/context.ts @@ -1,6 +1,7 @@ +import { isString } from "@thi.ng/checks"; import type { IReader, ParseScope } from "./api"; import { parseError } from "./error"; -import { defStringReader } from "./string-reader"; +import { defStringReader } from "./readers/string-reader"; interface ContextOpts { /** @@ -10,24 +11,34 @@ interface ContextOpts { */ maxDepth: number; /** - * True to enable parser debug output. + * True to enable parser debug output. Will emit details of each + * parse scope. * * @defaultValue false */ debug: boolean; + /** + * True to retain reader state for each AST node. State of root node + * is always available. + * + * @defaultValue false + */ + retain: boolean; } export class ParseContext { - maxDepth: number; - debug: boolean; - protected _scopes: ParseScope[]; protected _curr: ParseScope; + protected _maxDepth: number; + protected _debug: boolean; + protected _retain: boolean; + constructor(public reader: IReader, opts?: Partial) { - opts = { maxDepth: 32, debug: false, ...opts }; - this.maxDepth = opts.maxDepth!; - this.debug = opts.debug!; + opts = { maxDepth: 32, debug: false, retain: false, ...opts }; + this._maxDepth = opts.maxDepth!; + this._debug = opts.debug!; + this._retain = opts.retain!; this._curr = { id: "root", state: { p: 0, l: 1, c: 1 }, @@ -35,24 +46,24 @@ export class ParseContext { result: null, }; this._scopes = [this._curr]; - reader.isDone(this._curr.state); + reader.isDone(this._curr.state!); } start(id: string) { - if (this._scopes.length >= this.maxDepth) { - parseError(this, `recursion limit reached ${this.maxDepth}`); + if (this._scopes.length >= this._maxDepth) { + parseError(this, `recursion limit reached ${this._maxDepth}`); } const scopes = this._scopes; const scope: ParseScope = { id, - state: { ...scopes[scopes.length - 1].state }, + state: { ...scopes[scopes.length - 1].state! }, children: null, result: null, }; scopes.push(scope); - if (this.debug) { + if (this._debug) { console.log( - `${" ".repeat(scopes.length)}start: ${id} (${scope.state.p})` + `${" ".repeat(scopes.length)}start: ${id} (${scope.state!.p})` ); } return (this._curr = scope); @@ -62,7 +73,7 @@ export class ParseContext { const scopes = this._scopes; const child = scopes.pop()!; this._curr = scopes[scopes.length - 1]; - if (this.debug) { + if (this._debug) { console.log(`${" ".repeat(scopes.length + 1)}discard: ${child.id}`); } return false; @@ -74,12 +85,16 @@ export class ParseContext { const parent = scopes[scopes.length - 1]; const cstate = child.state; const pstate = parent.state; - if (this.debug) { + if (this._debug) { console.log( - `${" ".repeat(scopes.length + 1)}end: ${child.id} (${cstate.p})` + `${" ".repeat(scopes.length + 1)}end: ${child.id} (${ + cstate!.p + })` ); } - child.state = { p: pstate.p, l: pstate.l, c: pstate.c }; + child.state = this._retain + ? { p: pstate!.p, l: pstate!.l, c: pstate!.c } + : null; parent.state = cstate; const children = parent.children; children ? children.push(child) : (parent.children = [child]); @@ -92,7 +107,9 @@ export class ParseContext { const cstate = curr.state; const child: ParseScope = { id, - state: { p: cstate.p, l: cstate.l, c: cstate.c }, + state: this._retain + ? { p: cstate!.p, l: cstate!.l, c: cstate!.c } + : null, children: null, result, }; @@ -110,7 +127,7 @@ export class ParseContext { } get done() { - return this._curr.state.done; + return this._curr.state!.done; } /** @@ -138,10 +155,26 @@ export class ParseContext { } /** - * Creates new {@link ParseContext} for given input string and context options. + * Creates new {@link ParseContext} for given input string or reader and + * context options. * * @param input - * @param opts - */ -export const defContext = (input: string, opts?: Partial) => - new ParseContext(defStringReader(input), opts); +export function defContext( + input: string, + opts?: Partial +): ParseContext; +export function defContext( + input: IReader, + opts?: Partial +): ParseContext; +export function defContext( + input: string | IReader, + opts?: Partial +): ParseContext { + return new ParseContext( + isString(input) ? defStringReader(input) : input, + opts + ); +} diff --git a/packages/parse/src/error.ts b/packages/parse/src/error.ts index 44a39dcb1a..0fc7875635 100644 --- a/packages/parse/src/error.ts +++ b/packages/parse/src/error.ts @@ -4,6 +4,6 @@ import { ParseContext } from "./context"; const ParseError = defError(() => `ParseError`); export const parseError = (ctx: ParseContext, msg: string): never => { - const info = ctx.reader.format(ctx.scope.state); + const info = ctx.reader.format(ctx.scope.state!); throw new ParseError(msg + (info ? ` @ ${info}` : "")); }; diff --git a/packages/parse/src/prims/anchor.ts b/packages/parse/src/prims/anchor.ts index 6714473b37..aae5cca3e3 100644 --- a/packages/parse/src/prims/anchor.ts +++ b/packages/parse/src/prims/anchor.ts @@ -4,21 +4,21 @@ import type { Parser } from "../api"; export const anchor = ( fn: Fn2, Nullable, boolean> ): Parser => (ctx) => { - const state = ctx.state; + const state = ctx.state!; return fn(state.last, state.done ? null : ctx.reader.read(state)); }; -export const inputStart: Parser = (ctx) => ctx.state.last == null; +export const inputStart: Parser = (ctx) => ctx.state!.last == null; export const inputEnd: Parser = (ctx) => - ctx.state.done || !ctx.reader.read(ctx.state); + ctx.state!.done || !ctx.reader.read(ctx.state!); export const lineStart: Parser = (ctx) => { - const l = ctx.state.last; + const l = ctx.state!.last; return l == null || l === "\n"; }; export const lineEnd: Parser = (ctx) => { - const state = ctx.state; + const state = ctx.state!; return state.done || ctx.reader.read(state) === "\n"; }; diff --git a/packages/parse/src/prims/range.ts b/packages/parse/src/prims/range.ts index da5006aa08..b69665e244 100644 --- a/packages/parse/src/prims/range.ts +++ b/packages/parse/src/prims/range.ts @@ -3,3 +3,16 @@ import { satisfy } from "./satisfy"; export const range = (min: T, max: T, id = "lit") => satisfy((x) => x >= min && x <= max, id); + +/** + * Matches single char in given UTF-16 code range. + * + * @param min + * @param max + * @param id + */ +export const utf16Range = (min: number, max: number, id = "utfLit") => + satisfy((x) => { + const c = x.charCodeAt(0)!; + return c >= min && c <= max; + }, id); diff --git a/packages/parse/src/prims/satisfy.ts b/packages/parse/src/prims/satisfy.ts index 1107380e63..54b16676ef 100644 --- a/packages/parse/src/prims/satisfy.ts +++ b/packages/parse/src/prims/satisfy.ts @@ -6,12 +6,12 @@ export const satisfy = (fn: Predicate, id = "lit"): Parser => ( ) => { if (ctx.done) return false; const reader = ctx.reader; - const r = reader.read(ctx.state); + const r = reader.read(ctx.state!); if (!fn(r)) { return false; } const scope = ctx.start(id); - reader.next(scope.state); + reader.next(scope.state!); scope.result = r; return ctx.end(); }; diff --git a/packages/parse/src/prims/string.ts b/packages/parse/src/prims/string.ts index 991ccd84d9..3c8a420629 100644 --- a/packages/parse/src/prims/string.ts +++ b/packages/parse/src/prims/string.ts @@ -5,7 +5,7 @@ export const string = (str: ArrayLike, id = "string"): Parser => ( ) => { if (ctx.done) return false; const scope = ctx.start(id); - const state = scope.state; + const state = scope.state!; const reader = ctx.reader; for (let i = 0, n = str.length; i < n; i++) { if (state.done) return false; diff --git a/packages/parse/src/xform/print.ts b/packages/parse/src/xform/print.ts index a18eea3583..0b93bc8bcf 100644 --- a/packages/parse/src/xform/print.ts +++ b/packages/parse/src/xform/print.ts @@ -3,11 +3,9 @@ import { ScopeTransform } from "../api"; export const xfPrint: ScopeTransform = (scope, _, indent = 0) => { if (!scope) return; const prefix = indent > 0 ? " ".repeat(indent) : ""; - console.log( - `${prefix}${scope.id} (${scope.state.l}:${ - scope.state.c - }): ${JSON.stringify(scope.result)}` - ); + const state = scope.state; + const info = state ? ` (${state.l}:${state.c})` : ""; + console.log(`${prefix}${scope.id}${info}: ${JSON.stringify(scope.result)}`); if (scope.children) { for (let c of scope.children) { xfPrint(c, _, indent + 1); diff --git a/packages/parse/test/index.ts b/packages/parse/test/index.ts index 469762ba54..a889b806b4 100644 --- a/packages/parse/test/index.ts +++ b/packages/parse/test/index.ts @@ -17,7 +17,7 @@ const check = ( ) => { const ctx = defContext(src); assert.equal(parser(ctx), res, `src: '${src}'`); - assert.equal(ctx.state.p, pos, `src: '${src}' pos: ${ctx.state.p}`); + assert.equal(ctx.state!.p, pos, `src: '${src}' pos: ${ctx.state!.p}`); }; describe("parse", () => { diff --git a/packages/parse/test/rpn.ts b/packages/parse/test/rpn.ts index adcd207569..9ba4bcc4be 100644 --- a/packages/parse/test/rpn.ts +++ b/packages/parse/test/rpn.ts @@ -1,6 +1,6 @@ import { Fn2 } from "@thi.ng/api"; import * as assert from "assert"; -import { alt, defContext, INT, oneOf, WS, xform, zeroOrMore } from "../src"; +import { alt, defContext, FLOAT, oneOf, WS_0, xform, zeroOrMore } from "../src"; describe("parse", () => { it("RPN calc", () => { @@ -11,7 +11,7 @@ describe("parse", () => { "*": (a, b) => a * b, "/": (a, b) => a / b, }; - const value = xform(INT, (scope) => { + const value = xform(FLOAT, (scope) => { stack.push(scope!.result); return null; }); @@ -21,7 +21,7 @@ describe("parse", () => { stack.push(ops[scope!.result](a, b)); return null; }); - const program = zeroOrMore(alt([value, op, zeroOrMore(WS)])); + const program = zeroOrMore(alt([value, op, WS_0])); const ctx = defContext("10 5 3 * + -2 * 10 /"); assert(program(ctx)); assert(ctx.done); diff --git a/packages/parse/test/svg.ts b/packages/parse/test/svg.ts index ff5a7fa4ab..52a78cd129 100644 --- a/packages/parse/test/svg.ts +++ b/packages/parse/test/svg.ts @@ -8,7 +8,7 @@ import { oneOf, Parser, seq, - WS, + WS_0, xform, zeroOrMore, } from "../src"; @@ -21,18 +21,17 @@ const check = ( ) => { const ctx = defContext(src); assert.equal(parser(ctx), res, `src: '${src}'`); - assert.equal(ctx.state.p, pos, `src: '${src}' pos: ${ctx.state.p}`); + assert.equal(ctx.state!.p, pos, `src: '${src}' pos: ${ctx.state!.p}`); }; describe("parse", () => { it("SVG", () => { - const ws = discard(zeroOrMore(WS)); const wsc = discard(zeroOrMore(oneOf(" \n,"))); const point = collect(seq([INT, wsc, INT])); - const move = collect(seq([oneOf("Mm"), ws, point, ws])); - const line = collect(seq([oneOf("Ll"), ws, point, ws])); + const move = collect(seq([oneOf("Mm"), WS_0, point, WS_0])); + const line = collect(seq([oneOf("Ll"), WS_0, point, WS_0])); const curve = collect( - seq([oneOf("Cc"), ws, point, wsc, point, wsc, point, ws]) + seq([oneOf("Cc"), WS_0, point, wsc, point, wsc, point, WS_0]) ); const close = xform(oneOf("Zz"), ($) => (($!.result = [$!.result]), $)); const path = collect(zeroOrMore(alt([move, line, curve, close]))); From 14d0014d548df4bfbd41c9e4ac72838cd6ad55fd Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 16 Apr 2020 16:16:04 +0100 Subject: [PATCH 17/78] docs(parse): update readme --- packages/parse/README.md | 190 ++++++++++++++++++++--------------- packages/parse/tpl.readme.md | 182 +++++++++++++++++++-------------- 2 files changed, 216 insertions(+), 156 deletions(-) diff --git a/packages/parse/README.md b/packages/parse/README.md index 81def0cc82..4c19e0e05d 100644 --- a/packages/parse/README.md +++ b/packages/parse/README.md @@ -10,18 +10,18 @@ This project is part of the [@thi.ng/umbrella](https://github.com/thi-ng/umbrella/) monorepo. - [About](#about) + - [Features](#features) - [Status](#status) - [Installation](#installation) - [Dependencies](#dependencies) - [API](#api) - - [SVG path parser example](#svg-path-parser-example) - - [RPN parser & interpreter example](#rpn-parser--interpreter-example) - [Context & reader creation](#context--reader-creation) - [Presets parsers](#presets-parsers) - [Primitives](#primitives) - - [Anchors](#anchors) - [Combinators](#combinators) - [Transformers](#transformers) + - [SVG path parser example](#svg-path-parser-example) + - [RPN parser & interpreter example](#rpn-parser--interpreter-example) - [Authors](#authors) - [License](#license) @@ -29,6 +29,19 @@ This project is part of the Purely functional parser combinators & AST generation for generic inputs. +### Features + +- small API surface, easy-to-grok syntax +- all parsers implemented as composable, higher-order functions +- all state centrally kept/managed by a parser context given as arg +- support for custom readers (currently only string & array-like numeric + inputs (incl. typed arrays) supported) +- automatic AST generation & ability to transform/prune nodes during parsing +- node transforms are composable too +- each AST node (optionally) retains reader information (position, line + num, column) - disabled by default to save memory +- common, re-usable preset parsers & node transforms included + ### Status **ALPHA** - bleeding edge / work-in-progress @@ -39,7 +52,7 @@ Purely functional parser combinators & AST generation for generic inputs. yarn add @thi.ng/parse ``` -Package sizes (gzipped, pre-treeshake): ESM: 2.08 KB / CJS: 2.27 KB / UMD: 2.16 KB +Package sizes (gzipped, pre-treeshake): ESM: 2.38 KB / CJS: 2.59 KB / UMD: 2.47 KB ## Dependencies @@ -53,24 +66,111 @@ Package sizes (gzipped, pre-treeshake): ESM: 2.08 KB / CJS: 2.27 KB / UMD: 2.16 TODO +### Context & reader creation + +- [`defContext`](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/context.ts) + +Source: +[/readers](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/readers) + +- `defArrayReader` +- `defStringReader` + +### Presets parsers + +Source: +[/presets](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/presets) + +- `WS` / `WS_0` / `WS_1` +- `ALPHA` / `LOWER_CASE` / `UPPER_CASE` / `ALPHA_NUM` +- `DIGIT` / `DIGITS_0` / `DIGITS_1` +- `HEX_DIGIT` / `HEX_DIGITS_1` +- `INT` / `UINT` / `HEX_UINT` / `FLOAT` / `SIGN` + +### Primitives + +Source: +[/prims](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/prims) + +- `anchor` +- `always` +- `inputStart` / `inputEnd` +- `lift` +- `lineStart` / `lineEnd` +- `lit` +- `noneOf` +- `oneOf` +- `range` +- `satisfy` +- `string` + +### Combinators + +Source: +[/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/combinators) + +- `alt` +- `maybe` +- `not` +- `oneOrMore` / `zeroOrMore` +- `repeat` +- `seq` + +### Transformers + +Syntax sugars for `xform(parser, fn)`: + +- `xform` +- `check` +- `collect` +- `discard` +- `expect` +- `merge` + +Source: +[/xform](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/xform) + +- `comp` - scope transform composition +- `xfCollect` +- `xfFloat` +- `xfInt` +- `xfMerge` + ### SVG path parser example ```ts -const ws = discard(zeroOrMore(WS)); +import { + INT, WS_0, + alt, oneOf, seq, zeroOrMore, + collect, discard, xform, + defContext +} from "@thi.ng/parse"; + +// whitespace parser +// discard() removes results from AST const wsc = discard(zeroOrMore(oneOf(" ,"))); +// svg path parser rules +// collect() collects child results in array, then removes children +// INT & WS_0 are preset parsers (see section above) const point = collect(seq([INT, wsc, INT])); -const move = collect(seq([oneOf("Mm"), ws, point, ws])); -const line = collect(seq([oneOf("Ll"), ws, point, ws])); -const curve = collect(seq([oneOf("Cc"), ws, point, wsc, point, wsc, point, ws])); +const move = collect(seq([oneOf("Mm"), WS_0, point, WS_0])); +const line = collect(seq([oneOf("Ll"), WS_0, point, WS_0])); +const curve = collect(seq([oneOf("Cc"), WS_0, point, wsc, point, wsc, point, WS_0])); +// xform used here to wrap result in array +// (to produce same result format as parsers above) const close = xform(oneOf("Zz"), ($) => ($.result = [$.result], $)); +// main path parser const path = collect(zeroOrMore(alt([move, line, curve, close]))); +// prepare parse context & reader const ctx = defContext("M0,1L2 3c4,5-6,7 8 9z"); +// parse input into AST path(ctx); // true +// transformed result of AST root node ctx.result // [["M", [0, 1]], ["L", [2, 3]], ["c", [4, 5], [-6, 7], [8, 9]], ["z"]] ``` @@ -79,7 +179,7 @@ ctx.result ```ts import { - INT, WS, + INT, WS_0, alt, oneOf, xform, zeroOrMore defContext } from "@thi.ng/parse"; @@ -115,7 +215,7 @@ const op = xform(oneOf(Object.keys(ops)), (scope) => { // parser for complete RPN program, combines above two parsers // and the whitespace preset as alternatives -const program = zeroOrMore(alt([value, op, zeroOrMore(WS)])) +const program = zeroOrMore(alt([value, op, WS_0])) // prepare parser context (incl. reader) and execute program(defContext("10 5 3 * + -2 * 10 /")); @@ -126,76 +226,6 @@ console.log(stack); // [-5] ``` -### Context & reader creation - -- `defContext` - -- `defStringReader` - - -### Presets parsers - -Source: [constants.ts](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/constants.ts) - -- `ALPHA` - -- `ALPHA_NUM` - -- `DIGIT` - -- `DIGITS_0` - -- `DIGITS_1` - -- `FLOAT` - -- `HEX_DIGIT` - -- `HEX_DIGITS_1` - -- `HEX_UINT` - -- `INT` - -- `UINT` - -- `SIGN` - -- `WS` - - -### Primitives - -Source: [/prims](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/prims) - -- `always` - -- `lift` - -- `lit` - -- `noneOf` - -- `oneOf` - -- `range` - -- `satisfy` - -- `string` - - -### Anchors - -- `anchor` - -- `inputStart` / `inputEnd` - -- `lineStart` / `lineEnd` - - -### Combinators - -Source: [/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/combinators) - -- `alt` - -- `maybe` - -- `not` - -- `oneOrMore` / `zeroOrMore` - -- `repeat` - -- `seq` - - -### Transformers - -- `xform` - -- `check` - -- `collect` - -- `discard` - -- `expect` - -- `merge` - - -Source: [/xform](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/xform) - -- `comp` - transform composition -- `xfCollect` - -- `xfFloat` - -- `xfInt` - -- `xfMerge` - - ## Authors Karsten Schmidt diff --git a/packages/parse/tpl.readme.md b/packages/parse/tpl.readme.md index 10805873ad..38e4a95172 100644 --- a/packages/parse/tpl.readme.md +++ b/packages/parse/tpl.readme.md @@ -13,6 +13,19 @@ This project is part of the ${pkg.description} +### Features + +- small API surface, easy-to-grok syntax +- all parsers implemented as composable, higher-order functions +- all state centrally kept/managed by a parser context given as arg +- support for custom readers (currently only string & array-like numeric + inputs (incl. typed arrays) supported) +- automatic AST generation & ability to transform/prune nodes during parsing +- node transforms are composable too +- each AST node (optionally) retains reader information (position, line + num, column) - disabled by default to save memory +- common, re-usable preset parsers & node transforms included + ${status} ${supportPackages} @@ -41,24 +54,111 @@ ${docLink} TODO +### Context & reader creation + +- [`defContext`](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/context.ts) + +Source: +[/readers](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/readers) + +- `defArrayReader` +- `defStringReader` + +### Presets parsers + +Source: +[/presets](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/presets) + +- `WS` / `WS_0` / `WS_1` +- `ALPHA` / `LOWER_CASE` / `UPPER_CASE` / `ALPHA_NUM` +- `DIGIT` / `DIGITS_0` / `DIGITS_1` +- `HEX_DIGIT` / `HEX_DIGITS_1` +- `INT` / `UINT` / `HEX_UINT` / `FLOAT` / `SIGN` + +### Primitives + +Source: +[/prims](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/prims) + +- `anchor` +- `always` +- `inputStart` / `inputEnd` +- `lift` +- `lineStart` / `lineEnd` +- `lit` +- `noneOf` +- `oneOf` +- `range` +- `satisfy` +- `string` + +### Combinators + +Source: +[/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/combinators) + +- `alt` +- `maybe` +- `not` +- `oneOrMore` / `zeroOrMore` +- `repeat` +- `seq` + +### Transformers + +Syntax sugars for `xform(parser, fn)`: + +- `xform` +- `check` +- `collect` +- `discard` +- `expect` +- `merge` + +Source: +[/xform](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/xform) + +- `comp` - scope transform composition +- `xfCollect` +- `xfFloat` +- `xfInt` +- `xfMerge` + ### SVG path parser example ```ts -const ws = discard(zeroOrMore(WS)); +import { + INT, WS_0, + alt, oneOf, seq, zeroOrMore, + collect, discard, xform, + defContext +} from "@thi.ng/parse"; + +// whitespace parser +// discard() removes results from AST const wsc = discard(zeroOrMore(oneOf(" ,"))); +// svg path parser rules +// collect() collects child results in array, then removes children +// INT & WS_0 are preset parsers (see section above) const point = collect(seq([INT, wsc, INT])); -const move = collect(seq([oneOf("Mm"), ws, point, ws])); -const line = collect(seq([oneOf("Ll"), ws, point, ws])); -const curve = collect(seq([oneOf("Cc"), ws, point, wsc, point, wsc, point, ws])); +const move = collect(seq([oneOf("Mm"), WS_0, point, WS_0])); +const line = collect(seq([oneOf("Ll"), WS_0, point, WS_0])); +const curve = collect(seq([oneOf("Cc"), WS_0, point, wsc, point, wsc, point, WS_0])); +// xform used here to wrap result in array +// (to produce same result format as parsers above) const close = xform(oneOf("Zz"), ($) => ($.result = [$.result], $)); +// main path parser const path = collect(zeroOrMore(alt([move, line, curve, close]))); +// prepare parse context & reader const ctx = defContext("M0,1L2 3c4,5-6,7 8 9z"); +// parse input into AST path(ctx); // true +// transformed result of AST root node ctx.result // [["M", [0, 1]], ["L", [2, 3]], ["c", [4, 5], [-6, 7], [8, 9]], ["z"]] ``` @@ -67,7 +167,7 @@ ctx.result ```ts import { - INT, WS, + INT, WS_0, alt, oneOf, xform, zeroOrMore defContext } from "@thi.ng/parse"; @@ -103,7 +203,7 @@ const op = xform(oneOf(Object.keys(ops)), (scope) => { // parser for complete RPN program, combines above two parsers // and the whitespace preset as alternatives -const program = zeroOrMore(alt([value, op, zeroOrMore(WS)])) +const program = zeroOrMore(alt([value, op, WS_0])) // prepare parser context (incl. reader) and execute program(defContext("10 5 3 * + -2 * 10 /")); @@ -114,76 +214,6 @@ console.log(stack); // [-5] ``` -### Context & reader creation - -- `defContext` - -- `defStringReader` - - -### Presets parsers - -Source: [constants.ts](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/constants.ts) - -- `ALPHA` - -- `ALPHA_NUM` - -- `DIGIT` - -- `DIGITS_0` - -- `DIGITS_1` - -- `FLOAT` - -- `HEX_DIGIT` - -- `HEX_DIGITS_1` - -- `HEX_UINT` - -- `INT` - -- `UINT` - -- `SIGN` - -- `WS` - - -### Primitives - -Source: [/prims](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/prims) - -- `always` - -- `lift` - -- `lit` - -- `noneOf` - -- `oneOf` - -- `range` - -- `satisfy` - -- `string` - - -### Anchors - -- `anchor` - -- `inputStart` / `inputEnd` - -- `lineStart` / `lineEnd` - - -### Combinators - -Source: [/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/combinators) - -- `alt` - -- `maybe` - -- `not` - -- `oneOrMore` / `zeroOrMore` - -- `repeat` - -- `seq` - - -### Transformers - -- `xform` - -- `check` - -- `collect` - -- `discard` - -- `expect` - -- `merge` - - -Source: [/xform](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/xform) - -- `comp` - transform composition -- `xfCollect` - -- `xfFloat` - -- `xfInt` - -- `xfMerge` - - ## Authors ${authors} From cd7363d7f93e0db00797a9ec30bd44b399396860 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 16 Apr 2020 17:09:24 +0100 Subject: [PATCH 18/78] feat(parse): update defContext, add basic array test --- packages/parse/src/context.ts | 19 +++++++++++----- packages/parse/src/readers/array-reader.ts | 10 ++++----- packages/parse/src/readers/string-reader.ts | 10 ++++----- packages/parse/test/binary.ts | 25 +++++++++++++++++++++ 4 files changed, 49 insertions(+), 15 deletions(-) create mode 100644 packages/parse/test/binary.ts diff --git a/packages/parse/src/context.ts b/packages/parse/src/context.ts index 7f683976d5..7a449ffdd4 100644 --- a/packages/parse/src/context.ts +++ b/packages/parse/src/context.ts @@ -1,7 +1,8 @@ -import { isString } from "@thi.ng/checks"; +import { isString, isArrayLike } from "@thi.ng/checks"; import type { IReader, ParseScope } from "./api"; import { parseError } from "./error"; import { defStringReader } from "./readers/string-reader"; +import { defArrayReader } from "./readers/array-reader"; interface ContextOpts { /** @@ -155,8 +156,8 @@ export class ParseContext { } /** - * Creates new {@link ParseContext} for given input string or reader and - * context options. + * Creates new {@link ParseContext} for given input string, array or + * reader and context options. * * @param input - * @param opts - @@ -165,16 +166,24 @@ export function defContext( input: string, opts?: Partial ): ParseContext; +export function defContext( + input: ArrayLike, + opts?: Partial +): ParseContext; export function defContext( input: IReader, opts?: Partial ): ParseContext; export function defContext( - input: string | IReader, + input: string | ArrayLike | IReader, opts?: Partial ): ParseContext { return new ParseContext( - isString(input) ? defStringReader(input) : input, + isString(input) + ? defStringReader(input) + : isArrayLike(input) + ? defArrayReader(input) + : input, opts ); } diff --git a/packages/parse/src/readers/array-reader.ts b/packages/parse/src/readers/array-reader.ts index 8126e776cd..974c7e567f 100644 --- a/packages/parse/src/readers/array-reader.ts +++ b/packages/parse/src/readers/array-reader.ts @@ -1,20 +1,20 @@ import type { ParseState, IReader } from "../api"; class ArrayReader implements IReader { - constructor(protected input: ArrayLike) {} + constructor(protected _src: ArrayLike) {} read(state: ParseState): T { - return this.input[state.p]; + return this._src[state.p]; } next(state: ParseState): void { if (state.done) return; - state.last = this.input[state.p]; - state.done = ++state.p >= this.input.length; + state.last = this._src[state.p]; + state.done = ++state.p >= this._src.length; } isDone(state: ParseState) { - return (state.done = state.p >= this.input.length); + return (state.done = state.p >= this._src.length); } format(state: ParseState) { diff --git a/packages/parse/src/readers/string-reader.ts b/packages/parse/src/readers/string-reader.ts index 04bd5a610f..ab81fb424c 100644 --- a/packages/parse/src/readers/string-reader.ts +++ b/packages/parse/src/readers/string-reader.ts @@ -1,26 +1,26 @@ import type { ParseState, IReader } from "../api"; class StringReader implements IReader { - constructor(protected input: string) {} + constructor(protected _src: string) {} read(state: ParseState): string { - return this.input[state.p]; + return this._src[state.p]; } next(state: ParseState): void { if (state.done) return; - state.last = this.input[state.p]; + state.last = this._src[state.p]; if (state.last === "\n") { state.l++; state.c = 1; } else { state.c++; } - state.done = ++state.p >= this.input.length; + state.done = ++state.p >= this._src.length; } isDone(state: ParseState) { - return (state.done = state.p >= this.input.length); + return (state.done = state.p >= this._src.length); } format(state: ParseState) { diff --git a/packages/parse/test/binary.ts b/packages/parse/test/binary.ts new file mode 100644 index 0000000000..16c5915059 --- /dev/null +++ b/packages/parse/test/binary.ts @@ -0,0 +1,25 @@ +import * as assert from "assert"; +import { defContext, lit, oneOrMore, Parser, range, seq, string } from "../src"; + +const check = ( + parser: Parser, + src: ArrayLike, + res: boolean, + pos: number +) => { + const ctx = defContext(src); + assert.equal(parser(ctx), res, `src: '${src}'`); + assert.equal(ctx.state!.p, pos, `src: '${src}' pos: ${ctx.state!.p}`); +}; + +describe("parse", () => { + it("binary basics", () => { + check(seq([string([1, 2, 3, 4]), lit(5)]), [1, 2, 3, 4, 5], true, 5); + check( + seq([oneOrMore(range(0, 4)), lit(5)]), + [1, 2, 3, 4, 5], + true, + 5 + ); + }); +}); From 6c6de85dd5c8b3d5686ce2088b60eaf8d4fd5575 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 16 Apr 2020 17:22:50 +0100 Subject: [PATCH 19/78] docs: update main pkg list --- README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ecf9ea5222..468e3cbc05 100644 --- a/README.md +++ b/README.md @@ -98,11 +98,11 @@ fairly detailed overview for contributors here: ## Projects + ### Fundamentals @@ -262,11 +262,12 @@ fairly detailed overview for contributors here: ### DSLs -| Project | Version | Changelog | Description | -|-------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|-----------------------------------------------| -| [`@thi.ng/pointfree`](./packages/pointfree) | [![version](https://img.shields.io/npm/v/@thi.ng/pointfree.svg)](https://www.npmjs.com/package/@thi.ng/pointfree) | [changelog](./packages/pointfree/CHANGELOG.md) | Stack-based DSL & functional composition | -| [`@thi.ng/pointfree-lang`](./packages/pointfree-lang) | [![version](https://img.shields.io/npm/v/@thi.ng/pointfree-lang.svg)](https://www.npmjs.com/package/@thi.ng/pointfree-lang) | [changelog](./packages/pointfree-lang/CHANGELOG.md) | Forth-like syntax layer for @thi.ng/pointfree | -| [`@thi.ng/sexpr`](./packages/sexpr) | [![version](https://img.shields.io/npm/v/@thi.ng/sexpr.svg)](https://www.npmjs.com/package/@thi.ng/sexpr) | [changelog](./packages/sexpr/CHANGELOG.md) | S-Expression parser & runtime infrastructure | +| Project | Version | Changelog | Description | +|-------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|------------------------------------------------| +| [`@thi.ng/parse`](./packages/parse) | [![version](https://img.shields.io/npm/v/@thi.ng/parse.svg)](https://www.npmjs.com/package/@thi.ng/parse) | [changelog](./packages/parse/CHANGELOG.md) | Parser combinators & AST generator/transformer | +| [`@thi.ng/pointfree`](./packages/pointfree) | [![version](https://img.shields.io/npm/v/@thi.ng/pointfree.svg)](https://www.npmjs.com/package/@thi.ng/pointfree) | [changelog](./packages/pointfree/CHANGELOG.md) | Stack-based DSL & functional composition | +| [`@thi.ng/pointfree-lang`](./packages/pointfree-lang) | [![version](https://img.shields.io/npm/v/@thi.ng/pointfree-lang.svg)](https://www.npmjs.com/package/@thi.ng/pointfree-lang) | [changelog](./packages/pointfree-lang/CHANGELOG.md) | Forth-like syntax layer for @thi.ng/pointfree | +| [`@thi.ng/sexpr`](./packages/sexpr) | [![version](https://img.shields.io/npm/v/@thi.ng/sexpr.svg)](https://www.npmjs.com/package/@thi.ng/sexpr) | [changelog](./packages/sexpr/CHANGELOG.md) | S-Expression parser & runtime infrastructure | ## Building From 479593cb3f036bb1101d3c36c2f6a850eb9e3322 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 16 Apr 2020 17:29:41 +0100 Subject: [PATCH 20/78] docs: regenerate readmes --- packages/parse/README.md | 2 +- packages/pointfree-lang/README.md | 2 +- packages/pointfree/README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/parse/README.md b/packages/parse/README.md index 4c19e0e05d..83a601f6dc 100644 --- a/packages/parse/README.md +++ b/packages/parse/README.md @@ -52,7 +52,7 @@ Purely functional parser combinators & AST generation for generic inputs. yarn add @thi.ng/parse ``` -Package sizes (gzipped, pre-treeshake): ESM: 2.38 KB / CJS: 2.59 KB / UMD: 2.47 KB +Package sizes (gzipped, pre-treeshake): ESM: 2.39 KB / CJS: 2.60 KB / UMD: 2.48 KB ## Dependencies diff --git a/packages/pointfree-lang/README.md b/packages/pointfree-lang/README.md index b7f00e0a94..cf3742d3d2 100644 --- a/packages/pointfree-lang/README.md +++ b/packages/pointfree-lang/README.md @@ -69,7 +69,7 @@ an ES6 embedded DSL for concatenative programming: yarn add @thi.ng/pointfree-lang ``` -Package sizes (gzipped, pre-treeshake): ESM: 5.05 KB / CJS: 5.05 KB / UMD: 4.97 KB +Package sizes (gzipped, pre-treeshake): ESM: 5.06 KB / CJS: 5.05 KB / UMD: 4.97 KB ## Dependencies diff --git a/packages/pointfree/README.md b/packages/pointfree/README.md index f81b88d081..8dcf353651 100644 --- a/packages/pointfree/README.md +++ b/packages/pointfree/README.md @@ -193,7 +193,7 @@ non-linear control flow. yarn add @thi.ng/pointfree ``` -Package sizes (gzipped, pre-treeshake): ESM: 3.23 KB / CJS: 3.75 KB / UMD: 3.52 KB +Package sizes (gzipped, pre-treeshake): ESM: 3.31 KB / CJS: 3.84 KB / UMD: 3.55 KB ## Dependencies From 05bef98cdcd96dfd33a89a34df2b62e2a8105997 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 16 Apr 2020 17:30:43 +0100 Subject: [PATCH 21/78] Publish - @thi.ng/parse@0.1.0 - @thi.ng/pointfree-lang@1.3.0 - @thi.ng/pointfree@2.0.0 --- packages/parse/CHANGELOG.md | 18 ++++++++++++++++++ packages/parse/package.json | 2 +- packages/pointfree-lang/CHANGELOG.md | 11 +++++++++++ packages/pointfree-lang/package.json | 4 ++-- packages/pointfree/CHANGELOG.md | 16 ++++++++++++++++ packages/pointfree/package.json | 2 +- 6 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 packages/parse/CHANGELOG.md diff --git a/packages/parse/CHANGELOG.md b/packages/parse/CHANGELOG.md new file mode 100644 index 0000000000..32ec959250 --- /dev/null +++ b/packages/parse/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-04-16) + + +### Features + +* **parse:** add ArrayReader, update pkg info ([3bec0db](https://github.com/thi-ng/umbrella/commit/3bec0dbf759d9742adefb936e58359f95da58fc8)) +* **parse:** add collect/xfCollect, update xfPrint ([43f3368](https://github.com/thi-ng/umbrella/commit/43f33687431f9ea8269c1eba0342d0589f7ac4dc)) +* **parse:** add ctx getters, add presets, update maybe ([02597bf](https://github.com/thi-ng/umbrella/commit/02597bf825df3e467cf2d090c69198d85f1767f2)) +* **parse:** import as new package ([151e50c](https://github.com/thi-ng/umbrella/commit/151e50cc1e2bfaf8d70a6bb82907eec483dd8316)) +* **parse:** make retained state info optional ([a89ee87](https://github.com/thi-ng/umbrella/commit/a89ee871a098582c909fcf8558ed979d04942250)) +* **parse:** update defContext, add basic array test ([cd7363d](https://github.com/thi-ng/umbrella/commit/cd7363d7f93e0db00797a9ec30bd44b399396860)) +* **parse:** update ParseContext, repeat & lift ([bef1d4f](https://github.com/thi-ng/umbrella/commit/bef1d4f628320d1aac9cf6d924749d4f15864d07)) +* **parse:** update repeat ops, reader, initial state ([c5cfabe](https://github.com/thi-ng/umbrella/commit/c5cfabeaf5ab6e124d5fc2455fd3f5ede96248cd)) diff --git a/packages/parse/package.json b/packages/parse/package.json index 8740eadd66..5f58baca26 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/parse", - "version": "0.0.1", + "version": "0.1.0", "description": "Purely functional parser combinators & AST generation for generic inputs", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/pointfree-lang/CHANGELOG.md b/packages/pointfree-lang/CHANGELOG.md index bdca080656..e3aa02c3f7 100644 --- a/packages/pointfree-lang/CHANGELOG.md +++ b/packages/pointfree-lang/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. +# [1.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.2.3...@thi.ng/pointfree-lang@1.3.0) (2020-04-16) + + +### Features + +* **pointfree-lang:** add `>word`, update pkg & readme ([4fe2f7f](https://github.com/thi-ng/umbrella/commit/4fe2f7f97b234f92141c2a455aad50d4732de75a)) + + + + + ## [1.2.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.2.2...@thi.ng/pointfree-lang@1.2.3) (2020-04-11) **Note:** Version bump only for package @thi.ng/pointfree-lang diff --git a/packages/pointfree-lang/package.json b/packages/pointfree-lang/package.json index df51cd4f6c..1828c26628 100644 --- a/packages/pointfree-lang/package.json +++ b/packages/pointfree-lang/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pointfree-lang", - "version": "1.2.3", + "version": "1.3.0", "description": "Forth style syntax layer/compiler & CLI for the @thi.ng/pointfree DSL", "module": "./index.js", "main": "./lib/index.js", @@ -45,7 +45,7 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/bench": "^2.0.8", "@thi.ng/errors": "^1.2.10", - "@thi.ng/pointfree": "^1.3.3", + "@thi.ng/pointfree": "^2.0.0", "commander": "^5.0.0", "tslib": "^1.11.1" }, diff --git a/packages/pointfree/CHANGELOG.md b/packages/pointfree/CHANGELOG.md index e67826a15d..21053f4aa7 100644 --- a/packages/pointfree/CHANGELOG.md +++ b/packages/pointfree/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/pointfree@1.3.3...@thi.ng/pointfree@2.0.0) (2020-04-16) + + +### Features + +* **pointfree:** add new words, rename HOF words ([0d19c9a](https://github.com/thi-ng/umbrella/commit/0d19c9a23de3fc4188d8d0329783211f5013716b)), closes [#210](https://github.com/thi-ng/umbrella/issues/210) + + +### BREAKING CHANGES + +* **pointfree:** rename HOF words + + + + + ## [1.3.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@1.3.2...@thi.ng/pointfree@1.3.3) (2020-04-11) **Note:** Version bump only for package @thi.ng/pointfree diff --git a/packages/pointfree/package.json b/packages/pointfree/package.json index 3855686351..e4e3990a87 100644 --- a/packages/pointfree/package.json +++ b/packages/pointfree/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pointfree", - "version": "1.3.3", + "version": "2.0.0", "description": "Pointfree functional composition / Forth style stack execution engine", "module": "./index.js", "main": "./lib/index.js", From 8ca5c7f184af3d03f06b03b9136a675fb9e63d64 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 17 Apr 2020 00:18:50 +0100 Subject: [PATCH 22/78] perf(parse): major speedup satisfy() (~1.6x faster) - update ParseContext.addChild() to optionally progress reader - update call sites in satisfy(), lift(), repeat() --- packages/parse/src/combinators/repeat.ts | 2 +- packages/parse/src/context.ts | 7 +++++-- packages/parse/src/prims/lift.ts | 5 +---- packages/parse/src/prims/satisfy.ts | 8 ++------ 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/packages/parse/src/combinators/repeat.ts b/packages/parse/src/combinators/repeat.ts index 267168f539..01b342986c 100644 --- a/packages/parse/src/combinators/repeat.ts +++ b/packages/parse/src/combinators/repeat.ts @@ -7,7 +7,7 @@ export const repeat = ( id = "repeat" ): Parser => (ctx) => { if (ctx.done) { - return min < 1 ? (ctx.addChild(id), true) : false; + return min < 1 ? ctx.addChild(id) : false; } ctx.start(id); for (let i = 0; i < max; i++) { diff --git a/packages/parse/src/context.ts b/packages/parse/src/context.ts index 7a449ffdd4..962274a7bb 100644 --- a/packages/parse/src/context.ts +++ b/packages/parse/src/context.ts @@ -103,7 +103,7 @@ export class ParseContext { return true; } - addChild(id: string, result: any = null) { + addChild(id: string, result: any = null, consume = false) { const curr = this._curr; const cstate = curr.state; const child: ParseScope = { @@ -116,7 +116,10 @@ export class ParseContext { }; const children = curr.children; children ? children.push(child) : (curr.children = [child]); - return child; + if (consume) { + this.reader.next(cstate!); + } + return true; } get scope() { diff --git a/packages/parse/src/prims/lift.ts b/packages/parse/src/prims/lift.ts index 92c84c68f2..0f8980823d 100644 --- a/packages/parse/src/prims/lift.ts +++ b/packages/parse/src/prims/lift.ts @@ -3,7 +3,4 @@ import type { Lift, Parser } from "../api"; export const lift = (result: Lift, id = "lift"): Parser => ( ctx -) => { - ctx.addChild(id, isFunction(result) ? result() : result); - return true; -}; +) => ctx.addChild(id, isFunction(result) ? result() : result); diff --git a/packages/parse/src/prims/satisfy.ts b/packages/parse/src/prims/satisfy.ts index 54b16676ef..a139033295 100644 --- a/packages/parse/src/prims/satisfy.ts +++ b/packages/parse/src/prims/satisfy.ts @@ -5,13 +5,9 @@ export const satisfy = (fn: Predicate, id = "lit"): Parser => ( ctx ) => { if (ctx.done) return false; - const reader = ctx.reader; - const r = reader.read(ctx.state!); + const r = ctx.reader.read(ctx.state!); if (!fn(r)) { return false; } - const scope = ctx.start(id); - reader.next(scope.state!); - scope.result = r; - return ctx.end(); + return ctx.addChild(id, r, true); }; From ee537f49c239de19326865687853e9b2814330bf Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 17 Apr 2020 12:15:38 +0100 Subject: [PATCH 23/78] feat(parse): add/rename/reorg parsers, xforms, ctx - add dlit(), dstring() - add fail() - rename lift() => pass(), Lift => PassValue - rename merge()/xfMerge() => join()/xfJoin() - add hoist()/xfHoist() - migrate xform syntax sugars to /xform - add indent() util for ParseContext & print() --- packages/parse/README.md | 31 ++++++++++++++--------- packages/parse/src/api.ts | 2 +- packages/parse/src/combinators/collect.ts | 5 ---- packages/parse/src/combinators/maybe.ts | 8 +++--- packages/parse/src/combinators/merge.ts | 5 ---- packages/parse/src/combinators/not.ts | 10 ++++---- packages/parse/src/combinators/print.ts | 5 ---- packages/parse/src/context.ts | 20 +++++++-------- packages/parse/src/index.ts | 9 +++---- packages/parse/src/prims/fail.ts | 4 +++ packages/parse/src/prims/lift.ts | 6 ----- packages/parse/src/prims/lit.ts | 14 ++++++++++ packages/parse/src/prims/pass.ts | 8 ++++++ packages/parse/src/prims/satisfy.ts | 5 +--- packages/parse/src/prims/string.ts | 3 +++ packages/parse/src/utils.ts | 11 ++++++++ packages/parse/src/xform/collect.ts | 10 +++++++- packages/parse/src/xform/comp.ts | 8 +++++- packages/parse/src/xform/hoist.ts | 10 ++++++++ packages/parse/src/xform/join.ts | 22 ++++++++++++++++ packages/parse/src/xform/merge.ts | 14 ---------- packages/parse/src/xform/number.ts | 6 ++--- packages/parse/src/xform/print.ts | 17 ++++++++++--- packages/parse/tpl.readme.md | 29 +++++++++++++-------- 24 files changed, 166 insertions(+), 96 deletions(-) delete mode 100644 packages/parse/src/combinators/collect.ts delete mode 100644 packages/parse/src/combinators/merge.ts delete mode 100644 packages/parse/src/combinators/print.ts create mode 100644 packages/parse/src/prims/fail.ts delete mode 100644 packages/parse/src/prims/lift.ts create mode 100644 packages/parse/src/prims/pass.ts create mode 100644 packages/parse/src/utils.ts create mode 100644 packages/parse/src/xform/hoist.ts create mode 100644 packages/parse/src/xform/join.ts delete mode 100644 packages/parse/src/xform/merge.ts diff --git a/packages/parse/README.md b/packages/parse/README.md index 83a601f6dc..ddd78a2c00 100644 --- a/packages/parse/README.md +++ b/packages/parse/README.md @@ -52,7 +52,7 @@ Purely functional parser combinators & AST generation for generic inputs. yarn add @thi.ng/parse ``` -Package sizes (gzipped, pre-treeshake): ESM: 2.39 KB / CJS: 2.60 KB / UMD: 2.48 KB +Package sizes (gzipped, pre-treeshake): ESM: 2.47 KB / CJS: 2.69 KB / UMD: 2.55 KB ## Dependencies @@ -94,15 +94,16 @@ Source: - `anchor` - `always` +- `fail` - `inputStart` / `inputEnd` -- `lift` - `lineStart` / `lineEnd` -- `lit` +- `lit` / `dlit` - `noneOf` - `oneOf` +- `pass` - `range` - `satisfy` -- `string` +- `string` / `dstring` ### Combinators @@ -110,31 +111,37 @@ Source: [/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/combinators) - `alt` +- `check` +- `discard` +- `expect` - `maybe` - `not` - `oneOrMore` / `zeroOrMore` - `repeat` - `seq` +- `xform` ### Transformers +Source: +[/xform](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/xform) + Syntax sugars for `xform(parser, fn)`: -- `xform` -- `check` - `collect` -- `discard` -- `expect` -- `merge` +- `hoist` +- `join` +- `print` -Source: -[/xform](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/xform) +Actual transforms: - `comp` - scope transform composition - `xfCollect` - `xfFloat` +- `xfHoist` - `xfInt` -- `xfMerge` +- `xfJoin` +- `xfPrint` ### SVG path parser example diff --git a/packages/parse/src/api.ts b/packages/parse/src/api.ts index 61a6d5bfb4..d8ac50ebc4 100644 --- a/packages/parse/src/api.ts +++ b/packages/parse/src/api.ts @@ -25,7 +25,7 @@ export interface IReader { export type Parser = Fn, boolean>; -export type Lift = T | Fn0; +export type PassValue = T | Fn0; export type ScopeTransform = ( scope: Nullable>, diff --git a/packages/parse/src/combinators/collect.ts b/packages/parse/src/combinators/collect.ts deleted file mode 100644 index 854f99f2ed..0000000000 --- a/packages/parse/src/combinators/collect.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Parser } from "../api"; -import { xfCollect } from "../xform/collect"; -import { xform } from "./xform"; - -export const collect = (parser: Parser) => xform(parser, xfCollect); diff --git a/packages/parse/src/combinators/maybe.ts b/packages/parse/src/combinators/maybe.ts index 1ad944c362..12457a2c33 100644 --- a/packages/parse/src/combinators/maybe.ts +++ b/packages/parse/src/combinators/maybe.ts @@ -1,8 +1,8 @@ -import type { Lift, Parser } from "../api"; -import { lift } from "../prims/lift"; +import type { Parser, PassValue } from "../api"; +import { pass } from "../prims/pass"; export const maybe = ( parser: Parser, - fn?: Lift, + result?: PassValue, id = "maybe" -): Parser => (ctx) => parser(ctx) || lift(fn, id)(ctx); +): Parser => (ctx) => parser(ctx) || pass(result, id)(ctx); diff --git a/packages/parse/src/combinators/merge.ts b/packages/parse/src/combinators/merge.ts deleted file mode 100644 index 70e5d4d4f3..0000000000 --- a/packages/parse/src/combinators/merge.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Parser } from "../api"; -import { xfMerge } from "../xform/merge"; -import { xform } from "./xform"; - -export const merge = (parser: Parser) => xform(parser, xfMerge); diff --git a/packages/parse/src/combinators/not.ts b/packages/parse/src/combinators/not.ts index 3884836b50..703480da8e 100644 --- a/packages/parse/src/combinators/not.ts +++ b/packages/parse/src/combinators/not.ts @@ -1,17 +1,17 @@ import { isFunction } from "@thi.ng/checks"; -import type { Lift, Parser } from "../api"; +import type { Parser, PassValue } from "../api"; export const not = ( parser: Parser, - lift?: Lift, + result?: PassValue, id = "not" ): Parser => (ctx) => { if (ctx.done) return false; const scope = ctx.start(id); if (parser(ctx)) { - ctx.discard(); - return false; + return ctx.discard(); } - scope.result = lift != null ? (isFunction(lift) ? lift() : lift) : null; + scope.result = + result != null ? (isFunction(result) ? result() : result) : null; return ctx.end(); }; diff --git a/packages/parse/src/combinators/print.ts b/packages/parse/src/combinators/print.ts deleted file mode 100644 index f67cdb09b9..0000000000 --- a/packages/parse/src/combinators/print.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Parser } from "../api"; -import { xfPrint } from "../xform/print"; -import { xform } from "./xform"; - -export const print = (parser: Parser) => xform(parser, xfPrint); diff --git a/packages/parse/src/context.ts b/packages/parse/src/context.ts index 962274a7bb..8b85026181 100644 --- a/packages/parse/src/context.ts +++ b/packages/parse/src/context.ts @@ -1,8 +1,9 @@ -import { isString, isArrayLike } from "@thi.ng/checks"; -import type { IReader, ParseScope } from "./api"; +import { isArrayLike, isString } from "@thi.ng/checks"; +import type { IReader, ParseScope, ParseState } from "./api"; import { parseError } from "./error"; -import { defStringReader } from "./readers/string-reader"; import { defArrayReader } from "./readers/array-reader"; +import { defStringReader } from "./readers/string-reader"; +import { indent } from "./utils"; interface ContextOpts { /** @@ -64,7 +65,7 @@ export class ParseContext { scopes.push(scope); if (this._debug) { console.log( - `${" ".repeat(scopes.length)}start: ${id} (${scope.state!.p})` + `${indent(scopes.length)}start: ${id} (${scope.state!.p})` ); } return (this._curr = scope); @@ -75,7 +76,7 @@ export class ParseContext { const child = scopes.pop()!; this._curr = scopes[scopes.length - 1]; if (this._debug) { - console.log(`${" ".repeat(scopes.length + 1)}discard: ${child.id}`); + console.log(`${indent(scopes.length + 1)}discard: ${child.id}`); } return false; } @@ -85,16 +86,15 @@ export class ParseContext { const child = scopes.pop()!; const parent = scopes[scopes.length - 1]; const cstate = child.state; - const pstate = parent.state; + let pstate: ParseState; if (this._debug) { console.log( - `${" ".repeat(scopes.length + 1)}end: ${child.id} (${ - cstate!.p - })` + `${indent(scopes.length + 1)}end: ${child.id} (${cstate!.p})` ); } child.state = this._retain - ? { p: pstate!.p, l: pstate!.l, c: pstate!.c } + ? ((pstate = parent.state!), + { p: pstate.p, l: pstate.l, c: pstate.c }) : null; parent.state = cstate; const children = parent.children; diff --git a/packages/parse/src/index.ts b/packages/parse/src/index.ts index b0ea7b71e2..0d024659e1 100644 --- a/packages/parse/src/index.ts +++ b/packages/parse/src/index.ts @@ -4,13 +4,10 @@ export * from "./error"; export * from "./combinators/alt"; export * from "./combinators/check"; -export * from "./combinators/collect"; export * from "./combinators/discard"; export * from "./combinators/expect"; export * from "./combinators/maybe"; -export * from "./combinators/merge"; export * from "./combinators/not"; -export * from "./combinators/print"; export * from "./combinators/repeat"; export * from "./combinators/seq"; export * from "./combinators/xform"; @@ -22,10 +19,11 @@ export * from "./presets/whitespace"; export * from "./prims/always"; export * from "./prims/anchor"; -export * from "./prims/lift"; +export * from "./prims/fail"; export * from "./prims/lit"; export * from "./prims/none-of"; export * from "./prims/one-of"; +export * from "./prims/pass"; export * from "./prims/range"; export * from "./prims/satisfy"; export * from "./prims/string"; @@ -35,6 +33,7 @@ export * from "./readers/string-reader"; export * from "./xform/collect"; export * from "./xform/comp"; +export * from "./xform/hoist"; +export * from "./xform/join"; export * from "./xform/number"; -export * from "./xform/merge"; export * from "./xform/print"; diff --git a/packages/parse/src/prims/fail.ts b/packages/parse/src/prims/fail.ts new file mode 100644 index 0000000000..ab4102de6e --- /dev/null +++ b/packages/parse/src/prims/fail.ts @@ -0,0 +1,4 @@ +import type { Parser } from "../api"; +import { parseError } from "../error"; + +export const fail = (msg: string): Parser => (ctx) => parseError(ctx, msg); diff --git a/packages/parse/src/prims/lift.ts b/packages/parse/src/prims/lift.ts deleted file mode 100644 index 0f8980823d..0000000000 --- a/packages/parse/src/prims/lift.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { isFunction } from "@thi.ng/checks"; -import type { Lift, Parser } from "../api"; - -export const lift = (result: Lift, id = "lift"): Parser => ( - ctx -) => ctx.addChild(id, isFunction(result) ? result() : result); diff --git a/packages/parse/src/prims/lit.ts b/packages/parse/src/prims/lit.ts index 3207e36dae..7b12e7096b 100644 --- a/packages/parse/src/prims/lit.ts +++ b/packages/parse/src/prims/lit.ts @@ -1,3 +1,17 @@ +import { discard } from "../combinators/discard"; import { satisfy } from "./satisfy"; +/** + * Matches single char/value `c`. + * + * @param c + * @param id + */ export const lit = (c: T, id = "lit") => satisfy((x) => x === c, id); + +/** + * Discarded literal. Same as {@link lit}, but result will be discarded. + * + * @param c + */ +export const dlit = (c: T) => discard(lit(c)); diff --git a/packages/parse/src/prims/pass.ts b/packages/parse/src/prims/pass.ts new file mode 100644 index 0000000000..1f2662e781 --- /dev/null +++ b/packages/parse/src/prims/pass.ts @@ -0,0 +1,8 @@ +import { isFunction } from "@thi.ng/checks"; +import type { PassValue, Parser } from "../api"; + +export const pass = ( + result: PassValue, + id = "lift" +): Parser => (ctx) => + ctx.addChild(id, isFunction(result) ? result() : result); diff --git a/packages/parse/src/prims/satisfy.ts b/packages/parse/src/prims/satisfy.ts index a139033295..b0a00dc25a 100644 --- a/packages/parse/src/prims/satisfy.ts +++ b/packages/parse/src/prims/satisfy.ts @@ -6,8 +6,5 @@ export const satisfy = (fn: Predicate, id = "lit"): Parser => ( ) => { if (ctx.done) return false; const r = ctx.reader.read(ctx.state!); - if (!fn(r)) { - return false; - } - return ctx.addChild(id, r, true); + return fn(r) ? ctx.addChild(id, r, true) : false; }; diff --git a/packages/parse/src/prims/string.ts b/packages/parse/src/prims/string.ts index 3c8a420629..fa0fb6555c 100644 --- a/packages/parse/src/prims/string.ts +++ b/packages/parse/src/prims/string.ts @@ -1,4 +1,5 @@ import type { Parser } from "../api"; +import { discard } from "../combinators/discard"; export const string = (str: ArrayLike, id = "string"): Parser => ( ctx @@ -18,3 +19,5 @@ export const string = (str: ArrayLike, id = "string"): Parser => ( scope.result = str; return ctx.end(); }; + +export const dstring = (str: ArrayLike) => discard(string(str)); diff --git a/packages/parse/src/utils.ts b/packages/parse/src/utils.ts new file mode 100644 index 0000000000..9316147c9f --- /dev/null +++ b/packages/parse/src/utils.ts @@ -0,0 +1,11 @@ +const cache: string[] = []; + +/** + * Memoized indentation. + * + * @param x + * + * @internal + */ +export const indent = (x: number) => + x > 0 ? cache[x] || (cache[x] = " ".repeat(x)) : ""; diff --git a/packages/parse/src/xform/collect.ts b/packages/parse/src/xform/collect.ts index a94bd1ea75..8edf01622f 100644 --- a/packages/parse/src/xform/collect.ts +++ b/packages/parse/src/xform/collect.ts @@ -1,7 +1,15 @@ -import { ScopeTransform } from "../api"; +import { Parser, ScopeTransform } from "../api"; +import { xform } from "../combinators/xform"; export const xfCollect: ScopeTransform = (scope) => { scope!.result = scope!.children!.map((c) => c.result); scope!.children = null; return scope; }; + +/** + * Syntax sugar for `xform(parser, xfCollect)`. + * + * @param parser + */ +export const collect = (parser: Parser) => xform(parser, xfCollect); diff --git a/packages/parse/src/xform/comp.ts b/packages/parse/src/xform/comp.ts index adeeeb0ef4..bfa914c190 100644 --- a/packages/parse/src/xform/comp.ts +++ b/packages/parse/src/xform/comp.ts @@ -1,6 +1,12 @@ import { ScopeTransform } from "../api"; -export const xfComp = (...xs: ScopeTransform[]): ScopeTransform => { +/** + * Takes any number of {@link ScopeTransform}s and composes them into + * new xform w/ left to right order of execution. + * + * @param xs + */ +export const comp = (...xs: ScopeTransform[]): ScopeTransform => { const [a, b, c, d] = xs; switch (xs.length) { case 0: diff --git a/packages/parse/src/xform/hoist.ts b/packages/parse/src/xform/hoist.ts new file mode 100644 index 0000000000..a4e8b532b2 --- /dev/null +++ b/packages/parse/src/xform/hoist.ts @@ -0,0 +1,10 @@ +import { Parser, ScopeTransform } from "../api"; +import { xform } from "../combinators/xform"; + +export const xfHoist: ScopeTransform = (scope) => { + scope!.result = scope!.children![0].result; + scope!.children = null; + return scope; +}; + +export const hoist = (parser: Parser) => xform(parser, xfHoist); diff --git a/packages/parse/src/xform/join.ts b/packages/parse/src/xform/join.ts new file mode 100644 index 0000000000..bdaa19b0f6 --- /dev/null +++ b/packages/parse/src/xform/join.ts @@ -0,0 +1,22 @@ +import type { Nullable } from "@thi.ng/api"; +import type { Parser, ParseScope } from "../api"; +import { xform } from "../combinators/xform"; + +export const xfJoin = (scope: Nullable>) => { + if (!scope || !scope.children) return null; + const res = []; + for (let c of scope.children) { + xfJoin(c); + if (c.result) res.push(c.result); + } + scope.result = res.join(""); + scope.children = null; + return scope; +}; + +/** + * Syntax sugar for `xform(parser, xfJoin)`. + * + * @param parser + */ +export const join = (parser: Parser) => xform(parser, xfJoin); diff --git a/packages/parse/src/xform/merge.ts b/packages/parse/src/xform/merge.ts deleted file mode 100644 index 693d9ea34a..0000000000 --- a/packages/parse/src/xform/merge.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { Nullable } from "@thi.ng/api"; -import type { ParseScope } from "../api"; - -export const xfMerge = (scope: Nullable>) => { - if (!scope || !scope.children) return null; - const res = []; - for (let c of scope.children) { - xfMerge(c); - if (c.result) res.push(c.result); - } - scope.result = res.join(""); - scope.children = null; - return scope; -}; diff --git a/packages/parse/src/xform/number.ts b/packages/parse/src/xform/number.ts index 5c7d43eec0..7e1361c2c8 100644 --- a/packages/parse/src/xform/number.ts +++ b/packages/parse/src/xform/number.ts @@ -1,12 +1,12 @@ import { ScopeTransform } from "../api"; -import { xfMerge } from "./merge"; +import { xfJoin } from "./join"; export const xfInt = (radix = 10): ScopeTransform => (scope) => { - scope!.result = parseInt(xfMerge(scope)!.result, radix); + scope!.result = parseInt(xfJoin(scope)!.result, radix); return scope; }; export const xfFloat: ScopeTransform = (scope) => { - scope!.result = parseFloat(xfMerge(scope)!.result); + scope!.result = parseFloat(xfJoin(scope)!.result); return scope; }; diff --git a/packages/parse/src/xform/print.ts b/packages/parse/src/xform/print.ts index 0b93bc8bcf..7e85f5ece4 100644 --- a/packages/parse/src/xform/print.ts +++ b/packages/parse/src/xform/print.ts @@ -1,15 +1,24 @@ -import { ScopeTransform } from "../api"; +import { Parser, ScopeTransform } from "../api"; +import { xform } from "../combinators/xform"; +import { indent } from "../utils"; -export const xfPrint: ScopeTransform = (scope, _, indent = 0) => { +export const xfPrint: ScopeTransform = (scope, _, level = 0) => { if (!scope) return; - const prefix = indent > 0 ? " ".repeat(indent) : ""; + const prefix = indent(level); const state = scope.state; const info = state ? ` (${state.l}:${state.c})` : ""; console.log(`${prefix}${scope.id}${info}: ${JSON.stringify(scope.result)}`); if (scope.children) { for (let c of scope.children) { - xfPrint(c, _, indent + 1); + xfPrint(c, _, level + 1); } } return scope; }; + +/** + * Syntax sugar for `xform(parser, xfPrint)`. + * + * @param parser + */ +export const print = (parser: Parser) => xform(parser, xfPrint); diff --git a/packages/parse/tpl.readme.md b/packages/parse/tpl.readme.md index 38e4a95172..92d033f2a4 100644 --- a/packages/parse/tpl.readme.md +++ b/packages/parse/tpl.readme.md @@ -82,15 +82,16 @@ Source: - `anchor` - `always` +- `fail` - `inputStart` / `inputEnd` -- `lift` - `lineStart` / `lineEnd` -- `lit` +- `lit` / `dlit` - `noneOf` - `oneOf` +- `pass` - `range` - `satisfy` -- `string` +- `string` / `dstring` ### Combinators @@ -98,31 +99,37 @@ Source: [/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/combinators) - `alt` +- `check` +- `discard` +- `expect` - `maybe` - `not` - `oneOrMore` / `zeroOrMore` - `repeat` - `seq` +- `xform` ### Transformers +Source: +[/xform](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/xform) + Syntax sugars for `xform(parser, fn)`: -- `xform` -- `check` - `collect` -- `discard` -- `expect` -- `merge` +- `hoist` +- `join` +- `print` -Source: -[/xform](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/xform) +Actual transforms: - `comp` - scope transform composition - `xfCollect` - `xfFloat` +- `xfHoist` - `xfInt` -- `xfMerge` +- `xfJoin` +- `xfPrint` ### SVG path parser example From 1c2666bd70fffec7426a57c11d19ff059ac5e1c9 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 17 Apr 2020 12:53:49 +0100 Subject: [PATCH 24/78] Publish - @thi.ng/parse@0.2.0 --- packages/parse/CHANGELOG.md | 16 ++++++++++++++++ packages/parse/package.json | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/parse/CHANGELOG.md b/packages/parse/CHANGELOG.md index 32ec959250..a9c17e3d4f 100644 --- a/packages/parse/CHANGELOG.md +++ b/packages/parse/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/parse@0.1.0...@thi.ng/parse@0.2.0) (2020-04-17) + + +### Features + +* **parse:** add/rename/reorg parsers, xforms, ctx ([ee537f4](https://github.com/thi-ng/umbrella/commit/ee537f49c239de19326865687853e9b2814330bf)) + + +### Performance Improvements + +* **parse:** major speedup satisfy() (~1.6x faster) ([8ca5c7f](https://github.com/thi-ng/umbrella/commit/8ca5c7f184af3d03f06b03b9136a675fb9e63d64)) + + + + + # 0.1.0 (2020-04-16) diff --git a/packages/parse/package.json b/packages/parse/package.json index 5f58baca26..3856915e8c 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/parse", - "version": "0.1.0", + "version": "0.2.0", "description": "Purely functional parser combinators & AST generation for generic inputs", "module": "./index.js", "main": "./lib/index.js", From 832c0b7e88d87b2da0e37f602e592ad7b548da09 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 17 Apr 2020 15:02:22 +0100 Subject: [PATCH 25/78] feat(parse): add skipWhile(), more discarded wrappers - add skipWhile() - add dalt(), dseq() wrappers - add NL, DNL presets - add ParseContext .state setter --- packages/parse/src/combinators/alt.ts | 3 ++ packages/parse/src/combinators/seq.ts | 3 ++ packages/parse/src/combinators/xform.ts | 6 ++-- packages/parse/src/context.ts | 6 +++- packages/parse/src/index.ts | 1 + packages/parse/src/presets/whitespace.ts | 10 +++++++ packages/parse/src/prims/anchor.ts | 15 +++++----- packages/parse/src/prims/satisfy.ts | 2 +- packages/parse/src/prims/skip.ts | 36 ++++++++++++++++++++++++ 9 files changed, 69 insertions(+), 13 deletions(-) create mode 100644 packages/parse/src/prims/skip.ts diff --git a/packages/parse/src/combinators/alt.ts b/packages/parse/src/combinators/alt.ts index 8306e01488..c87d557fbb 100644 --- a/packages/parse/src/combinators/alt.ts +++ b/packages/parse/src/combinators/alt.ts @@ -1,4 +1,5 @@ import type { Parser } from "../api"; +import { discard } from "./discard"; export const alt = (parsers: Parser[]): Parser => (ctx) => { if (ctx.done) return false; @@ -9,3 +10,5 @@ export const alt = (parsers: Parser[]): Parser => (ctx) => { } return false; }; + +export const dalt = (parsers: Parser[]) => discard(alt(parsers)); diff --git a/packages/parse/src/combinators/seq.ts b/packages/parse/src/combinators/seq.ts index f6c81424b1..1832ef9771 100644 --- a/packages/parse/src/combinators/seq.ts +++ b/packages/parse/src/combinators/seq.ts @@ -1,4 +1,5 @@ import type { Parser } from "../api"; +import { discard } from "./discard"; export const seq = (parsers: Parser[], id = "seq"): Parser => ( ctx @@ -12,3 +13,5 @@ export const seq = (parsers: Parser[], id = "seq"): Parser => ( } return ctx.end(); }; + +export const dseq = (parsers: Parser[]) => discard(seq(parsers)); diff --git a/packages/parse/src/combinators/xform.ts b/packages/parse/src/combinators/xform.ts index 6eb0754bf6..0c3143a627 100644 --- a/packages/parse/src/combinators/xform.ts +++ b/packages/parse/src/combinators/xform.ts @@ -5,12 +5,10 @@ export const xform = ( xf: ScopeTransform, user?: any ): Parser => (ctx) => { - const res = parser(ctx); - if (res) { + if (parser(ctx)) { const children = ctx.scope.children!; const scope = children[children.length - 1]; - const res = xf(scope, ctx, user); - if (res) { + if (xf(scope, ctx, user)) { if (scope.children && !scope.children.length) { scope.children = null; } diff --git a/packages/parse/src/context.ts b/packages/parse/src/context.ts index 8b85026181..1ffae5bcb4 100644 --- a/packages/parse/src/context.ts +++ b/packages/parse/src/context.ts @@ -127,7 +127,11 @@ export class ParseContext { } get state() { - return this._curr.state; + return this._curr.state!; + } + + set state(state: ParseState) { + this._curr.state = state; } get done() { diff --git a/packages/parse/src/index.ts b/packages/parse/src/index.ts index 0d024659e1..ef9ed7be9f 100644 --- a/packages/parse/src/index.ts +++ b/packages/parse/src/index.ts @@ -26,6 +26,7 @@ export * from "./prims/one-of"; export * from "./prims/pass"; export * from "./prims/range"; export * from "./prims/satisfy"; +export * from "./prims/skip"; export * from "./prims/string"; export * from "./readers/array-reader"; diff --git a/packages/parse/src/presets/whitespace.ts b/packages/parse/src/presets/whitespace.ts index 2b8bf4d6dc..90323ec554 100644 --- a/packages/parse/src/presets/whitespace.ts +++ b/packages/parse/src/presets/whitespace.ts @@ -7,6 +7,16 @@ import { oneOf } from "../prims/one-of"; */ export const WS = oneOf(" \t\n\r", "ws"); +/** + * Matches single `\n` or `\r` char. + */ +export const NL = oneOf("\n\r"); + +/** + * Matches & discards single `\n` or `\r` char. + */ +export const DNL = discard(NL); + /** * Zero or more {@link WS}. Result will be discarded. */ diff --git a/packages/parse/src/prims/anchor.ts b/packages/parse/src/prims/anchor.ts index aae5cca3e3..b76b2098b6 100644 --- a/packages/parse/src/prims/anchor.ts +++ b/packages/parse/src/prims/anchor.ts @@ -4,21 +4,22 @@ import type { Parser } from "../api"; export const anchor = ( fn: Fn2, Nullable, boolean> ): Parser => (ctx) => { - const state = ctx.state!; + const state = ctx.state; return fn(state.last, state.done ? null : ctx.reader.read(state)); }; -export const inputStart: Parser = (ctx) => ctx.state!.last == null; +export const inputStart: Parser = (ctx) => ctx.state.last == null; export const inputEnd: Parser = (ctx) => - ctx.state!.done || !ctx.reader.read(ctx.state!); + ctx.state.done || !ctx.reader.read(ctx.state); export const lineStart: Parser = (ctx) => { - const l = ctx.state!.last; - return l == null || l === "\n"; + const l = ctx.state.last; + return l == null || l === "\n" || l === "\r"; }; export const lineEnd: Parser = (ctx) => { - const state = ctx.state!; - return state.done || ctx.reader.read(state) === "\n"; + const state = ctx.state; + let c: string; + return state.done || (c = ctx.reader.read(state)) === "\n" || c === "\r"; }; diff --git a/packages/parse/src/prims/satisfy.ts b/packages/parse/src/prims/satisfy.ts index b0a00dc25a..82882d0970 100644 --- a/packages/parse/src/prims/satisfy.ts +++ b/packages/parse/src/prims/satisfy.ts @@ -5,6 +5,6 @@ export const satisfy = (fn: Predicate, id = "lit"): Parser => ( ctx ) => { if (ctx.done) return false; - const r = ctx.reader.read(ctx.state!); + const r = ctx.reader.read(ctx.state); return fn(r) ? ctx.addChild(id, r, true) : false; }; diff --git a/packages/parse/src/prims/skip.ts b/packages/parse/src/prims/skip.ts new file mode 100644 index 0000000000..dc2ea122eb --- /dev/null +++ b/packages/parse/src/prims/skip.ts @@ -0,0 +1,36 @@ +import type { Parser } from "../api"; +import type { Predicate } from "@thi.ng/api"; + +/** + * Consumes input, but ignores it as long as given `pred` fn returns + * true. The char for which `pred` fails will NOT be consumed and the + * context state will be forwarded to that position. If `pred` never + * returns false before the end of the input is reached, this parser + * will return false and context state remains untouched. + * + * @example + * ```ts + * const comment = dseq([lit("#"), skipWhile((x) => x !== "\n"), NL]); + * + * const ctx = defContext("# ignore more!\n"); + * comment(ctx); + * // true + * + * ctx.state + * // { p: 15, l: 2, c: 1, done: true, last: '\n' } + * ``` + * + * @param pred + */ +export const skipWhile = (pred: Predicate): Parser => (ctx) => { + const state = { ...ctx.state }; + const reader = ctx.reader; + while (!state.done) { + if (!pred(reader.read(state))) { + ctx.state = state; + return true; + } + reader.next(state); + } + return false; +}; From 2708bbfee138be06c71c8eb84996c533bdbba8e2 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 18 Apr 2020 01:23:58 +0100 Subject: [PATCH 26/78] feat(geom-io-obj): import as new pkg --- packages/geom-io-obj/LICENSE | 201 ++++++++++++++++++++++++ packages/geom-io-obj/README.md | 131 +++++++++++++++ packages/geom-io-obj/api-extractor.json | 3 + packages/geom-io-obj/package.json | 60 +++++++ packages/geom-io-obj/src/api.ts | 28 ++++ packages/geom-io-obj/src/index.ts | 2 + packages/geom-io-obj/src/parser.ts | 166 +++++++++++++++++++ packages/geom-io-obj/tpl.readme.md | 127 +++++++++++++++ packages/geom-io-obj/tsconfig.json | 11 ++ 9 files changed, 729 insertions(+) create mode 100644 packages/geom-io-obj/LICENSE create mode 100644 packages/geom-io-obj/README.md create mode 100644 packages/geom-io-obj/api-extractor.json create mode 100644 packages/geom-io-obj/package.json create mode 100644 packages/geom-io-obj/src/api.ts create mode 100644 packages/geom-io-obj/src/index.ts create mode 100644 packages/geom-io-obj/src/parser.ts create mode 100644 packages/geom-io-obj/tpl.readme.md create mode 100644 packages/geom-io-obj/tsconfig.json diff --git a/packages/geom-io-obj/LICENSE b/packages/geom-io-obj/LICENSE new file mode 100644 index 0000000000..8dada3edaf --- /dev/null +++ b/packages/geom-io-obj/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/geom-io-obj/README.md b/packages/geom-io-obj/README.md new file mode 100644 index 0000000000..a07e50021a --- /dev/null +++ b/packages/geom-io-obj/README.md @@ -0,0 +1,131 @@ + + +# ![geom-io-obj](https://media.thi.ng/umbrella/banners/thing-geom-io-obj.svg?ab1d8b98) + +[![npm version](https://img.shields.io/npm/v/@thi.ng/geom-io-obj.svg)](https://www.npmjs.com/package/@thi.ng/geom-io-obj) +![npm downloads](https://img.shields.io/npm/dm/@thi.ng/geom-io-obj.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) + - [Features](#features) + - [Status](#status) +- [Installation](#installation) +- [Dependencies](#dependencies) +- [API](#api) +- [Benchmarks](#benchmarks) +- [Authors](#authors) +- [License](#license) + +## About + +Wavefront OBJ parser (& exporter soon). + +### Features + +- geometry split into declared objects & groups (can be disabled) +- full support for n-gon faces, polylines +- vertex & normal swizzling (optional, e.g. convert Y-up / Z-up) +- skip parsing/processing of UVs and/or normals +- per group `mtllib` and `usemtl` references +- per group smooth flags +- fast (~100 verts, normals & faces per ms, MBP2015, Node 13.10) + +### Status + +**ALPHA** - bleeding edge / work-in-progress + +## Installation + +```bash +yarn add @thi.ng/geom-io-obj +``` + +Package sizes (gzipped, pre-treeshake): ESM: 858 bytes / CJS: 911 bytes / UMD: 1012 bytes + +## Dependencies + +- [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/develop/packages/api) + +## API + +[Generated API docs](https://docs.thi.ng/umbrella/geom-io-obj/) + +TODO + +See +[api.ts](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-io-obj/src/api.ts) +for details about resulting data structure. + +```ts +import { parseObj } from "@thi.ng/geom-io-obj"; + +const src = ` +# test cube + +v 1.0000 1.0000 1.0000 +v 1.0000 1.0000 0.0000 +v 1.0000 0.0000 0.0000 +v 1.0000 0.0000 1.0000 +v 0.0000 1.0000 0.0000 +v 0.0000 1.0000 1.0000 +v 0.0000 0.0000 1.0000 +v 0.0000 0.0000 0.0000 + +# quad faces +f 4 3 2 1 +f 8 7 6 5 +f 6 1 2 5 +f 8 3 4 7 +f 7 4 1 6 +f 3 8 5 2 +`; + +const model = parseObj(src); + +console.log(model.vertices); +// [ +// [ 1, 1, 1 ], +// [ 1, 1, 0 ], +// [ 1, 0, 0 ], +// [ 1, 0, 1 ], +// [ 0, 1, 0 ], +// [ 0, 1, 1 ], +// [ 0, 0, 1 ], +// [ 0, 0, 0 ] +// ] + +console.log(model.objects[0].groups[0].faces); +// [ +// { v: [ 3, 2, 1, 0 ] }, +// { v: [ 7, 6, 5, 4 ] }, +// { v: [ 5, 0, 1, 4 ] }, +// { v: [ 7, 2, 3, 6 ] }, +// { v: [ 6, 3, 0, 5 ] }, +// { v: [ 2, 7, 4, 1 ] } +// ] +``` + +## Benchmarks + +Benchmark uses a quad-mesh model with 143,423 vertices, same number of normals and 142,802 faces (filesize 43.7MB). + +```text +benchmarking: parse + warmup... 7155.26ms (5 runs) + executing... + total: 13890.64ms, runs: 10 + mean: 1389.06ms, median: 1379.48ms, range: [1339.18..1450.96] + q1: 1371.56ms, q3: 1427.43ms + sd: 2.40% +``` + +## Authors + +Karsten Schmidt + +## License + +© 2020 Karsten Schmidt // Apache Software License 2.0 diff --git a/packages/geom-io-obj/api-extractor.json b/packages/geom-io-obj/api-extractor.json new file mode 100644 index 0000000000..94972e6bed --- /dev/null +++ b/packages/geom-io-obj/api-extractor.json @@ -0,0 +1,3 @@ +{ + "extends": "../../api-extractor.json" +} diff --git a/packages/geom-io-obj/package.json b/packages/geom-io-obj/package.json new file mode 100644 index 0000000000..1178a8a65d --- /dev/null +++ b/packages/geom-io-obj/package.json @@ -0,0 +1,60 @@ +{ + "name": "@thi.ng/geom-io-obj", + "version": "0.0.1", + "description": "Wavefront OBJ parser (& exporter soon)", + "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/geom-io-obj", + "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", + "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 src", + "pub": "yarn build:release && yarn publish --access public" + }, + "devDependencies": { + "@istanbuljs/nyc-config-typescript": "^1.0.1", + "@microsoft/api-extractor": "^7.7.8", + "@types/mocha": "^7.0.1", + "@types/node": "^13.7.4", + "mocha": "^7.1.1", + "nyc": "^15.0.0", + "ts-node": "^8.6.2", + "typedoc": "^0.16.10", + "typescript": "^3.8.3" + }, + "dependencies": { + "@thi.ng/api": "^6.9.0" + }, + "files": [ + "*.js", + "*.d.ts", + "lib" + ], + "keywords": [ + "ES6", + "typescript" + ], + "publishConfig": { + "access": "public" + }, + "sideEffects": false, + "thi.ng": { + "status": "alpha", + "year": 2020 + } +} diff --git a/packages/geom-io-obj/src/api.ts b/packages/geom-io-obj/src/api.ts new file mode 100644 index 0000000000..9eb006da58 --- /dev/null +++ b/packages/geom-io-obj/src/api.ts @@ -0,0 +1,28 @@ +import type { Vec } from "@thi.ng/vectors"; + +export interface OBJModel { + vertices: Vec[]; + normals: Vec[]; + uvs: Vec[]; + objects: OBJObject[]; + mtlLibs: string[]; +} + +export interface OBJObject { + id: string; + groups: OBJGroup[]; +} + +export interface OBJGroup { + id: string; + smooth: boolean; + mtl?: string; + faces: OBJFace[]; + lines: number[][]; +} + +export interface OBJFace { + v: number[]; + n?: number[]; + uv?: number[]; +} diff --git a/packages/geom-io-obj/src/index.ts b/packages/geom-io-obj/src/index.ts new file mode 100644 index 0000000000..6b56b7d253 --- /dev/null +++ b/packages/geom-io-obj/src/index.ts @@ -0,0 +1,2 @@ +export * from "./api"; +export * from "./parser"; diff --git a/packages/geom-io-obj/src/parser.ts b/packages/geom-io-obj/src/parser.ts new file mode 100644 index 0000000000..fadecb4a02 --- /dev/null +++ b/packages/geom-io-obj/src/parser.ts @@ -0,0 +1,166 @@ +import { assert, Fn } from "@thi.ng/api"; +import type { OBJFace, OBJGroup, OBJModel } from "./api"; +import { Vec } from "@thi.ng/vectors"; + +export interface ParseOpts { + normals: boolean; + uvs: boolean; + objects: boolean; + groups: boolean; + swizzle?: Fn; +} + +export const parseOBJ = (src: string, opts?: Partial) => { + opts = { + normals: true, + uvs: true, + objects: true, + groups: true, + ...opts, + }; + const result = { + vertices: [], + normals: [], + uvs: [], + objects: [], + mtlLibs: [], + }; + let currGroup!: OBJGroup; + let nextID = 0; + + const newGroup = (id: string, force = false) => { + id = id || `group-${nextID++}`; + (force || opts!.groups) && + result.objects[result.objects.length - 1].groups.push( + (currGroup = { + id, + smooth: false, + faces: [], + lines: [], + }) + ); + }; + + const newObject = (id: string, force = false) => { + (force || opts!.objects) && + result.objects.push({ id: id || `object-${nextID++}`, groups: [] }); + newGroup(id || "default", force); + }; + + const readVec2 = (items: string[]) => [ + parseFloat(items[1]), + parseFloat(items[2]), + ]; + + const readVec3 = (items: string[]) => [ + parseFloat(items[1]), + parseFloat(items[2]), + parseFloat(items[3]), + ]; + + const addID = (acc: number[], x: string, num: number) => { + const v = parseInt(x); + acc.push(v < 0 ? v + num : v - 1); + }; + + const readFace = (line: string[]) => { + const face = { v: [] }; + const n = line.length; + const nv = result.vertices.length; + const nuv = result.uvs.length; + const nn = result.normals.length; + const items = line[1].split("/"); + switch (items.length) { + case 1: + for (let i = 1; i < n; i++) { + addID(face.v, line[i], nv); + } + break; + case 2: + opts!.uvs && (face.uv = []); + for (let i = 1; i < n; i++) { + const f = line[i].split("/"); + addID(face.v, f[0], nv); + face.uv && addID(face.uv!, f[1], nuv); + } + break; + case 3: + opts!.uvs && items[1].length && (face.uv = []); + opts!.normals && items[2].length && (face.n = []); + for (let i = 1; i < n; i++) { + const f = line[i].split("/"); + addID(face.v, f[0], nv); + face.uv && addID(face.uv!, f[1], nuv); + face.n && addID(face.n!, f[2], nn); + } + break; + default: + } + return face; + }; + + const readPolyLine = (items: string[]) => { + const num = result.vertices.length; + const verts: number[] = []; + for (let i = 1, n = items.length; i < n; i++) { + addID(verts, items[i], num); + } + return verts; + }; + + newObject("default", true); + + const lines = src.split(/[\n\r]+/g); + const swizzle = opts.swizzle; + + for (let i = 0, n = lines.length; i < n; i++) { + const l = lines[i]; + if (!l.length || l[0] === "#") continue; + const items = l.trim().split(/\s+/g); + const len = items.length; + switch (items[0]) { + case "v": { + assert(len > 3, `invalid vertex @ line ${i}`); + const v = readVec3(items); + result.vertices.push(swizzle ? swizzle(v) : v); + break; + } + case "vn": { + assert(len > 3, `invalid normal @ line ${i}`); + const v = readVec3(items); + result.normals.push(swizzle ? swizzle(v) : v); + break; + } + case "vt": + assert(len > 2, `invalid uv @ line ${i}`); + result.uvs.push(readVec2(items)); + break; + case "f": + assert(len > 3, `invalid face @ line ${i}`); + currGroup.faces.push(readFace(items)); + break; + case "l": + assert(len > 2, `invalid polyline @ line ${i}`); + currGroup.lines.push(readPolyLine(items)); + break; + case "o": + opts.objects && newObject(items[1]); + break; + case "g": + opts.groups && newGroup(items[1]); + break; + case "s": + currGroup.smooth = items[1] !== "0" && items[1] !== "off"; + break; + case "mtllib": + result.mtlLibs.push(items[1]); + break; + case "usemtl": + currGroup.mtl = items[1]; + break; + default: + console.log(`ignoring token: ${items[0]} @ line ${i}`); + } + } + return result; +}; diff --git a/packages/geom-io-obj/tpl.readme.md b/packages/geom-io-obj/tpl.readme.md new file mode 100644 index 0000000000..51163168d8 --- /dev/null +++ b/packages/geom-io-obj/tpl.readme.md @@ -0,0 +1,127 @@ +# ${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 + +- geometry split into declared objects & groups (can be disabled) +- full support for n-gon faces, polylines +- vertex & normal swizzling (optional, e.g. convert Y-up / Z-up) +- skip parsing/processing of UVs and/or normals +- per group `mtllib` and `usemtl` references +- per group smooth flags +- fast (~100 verts, normals & faces per ms, MBP2015, Node 13.10) + +${status} + +${supportPackages} + +${relatedPackages} + +${blogPosts} + +## Installation + +```bash +yarn add ${pkg.name} +``` + +${pkg.size} + +## Dependencies + +${pkg.deps} + +${examples} + +## API + +${docLink} + +TODO + +See +[api.ts](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-io-obj/src/api.ts) +for details about resulting data structure. + +```ts +import { parseObj } from "@thi.ng/geom-io-obj"; + +const src = ` +# test cube + +v 1.0000 1.0000 1.0000 +v 1.0000 1.0000 0.0000 +v 1.0000 0.0000 0.0000 +v 1.0000 0.0000 1.0000 +v 0.0000 1.0000 0.0000 +v 0.0000 1.0000 1.0000 +v 0.0000 0.0000 1.0000 +v 0.0000 0.0000 0.0000 + +# quad faces +f 4 3 2 1 +f 8 7 6 5 +f 6 1 2 5 +f 8 3 4 7 +f 7 4 1 6 +f 3 8 5 2 +`; + +const model = parseObj(src); + +console.log(model.vertices); +// [ +// [ 1, 1, 1 ], +// [ 1, 1, 0 ], +// [ 1, 0, 0 ], +// [ 1, 0, 1 ], +// [ 0, 1, 0 ], +// [ 0, 1, 1 ], +// [ 0, 0, 1 ], +// [ 0, 0, 0 ] +// ] + +console.log(model.objects[0].groups[0].faces); +// [ +// { v: [ 3, 2, 1, 0 ] }, +// { v: [ 7, 6, 5, 4 ] }, +// { v: [ 5, 0, 1, 4 ] }, +// { v: [ 7, 2, 3, 6 ] }, +// { v: [ 6, 3, 0, 5 ] }, +// { v: [ 2, 7, 4, 1 ] } +// ] +``` + +## Benchmarks + +Benchmark uses a quad-mesh model with 143,423 vertices, same number of normals and 142,802 faces (filesize 43.7MB). + +```text +benchmarking: parse + warmup... 7155.26ms (5 runs) + executing... + total: 13890.64ms, runs: 10 + mean: 1389.06ms, median: 1379.48ms, range: [1339.18..1450.96] + q1: 1371.56ms, q3: 1427.43ms + sd: 2.40% +``` + +## Authors + +${authors} + +## License + +© ${copyright} // ${license} diff --git a/packages/geom-io-obj/tsconfig.json b/packages/geom-io-obj/tsconfig.json new file mode 100644 index 0000000000..893b9979c5 --- /dev/null +++ b/packages/geom-io-obj/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": ".", + "module": "es6", + "target": "es6" + }, + "include": [ + "./src/**/*.ts" + ] +} From 1398e2b06a8eace8b61333c36db6e82d6e1478f3 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 18 Apr 2020 01:28:18 +0100 Subject: [PATCH 27/78] feat(parse): add more whitespace presets --- packages/parse/src/presets/whitespace.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/parse/src/presets/whitespace.ts b/packages/parse/src/presets/whitespace.ts index 90323ec554..5f12bf7b02 100644 --- a/packages/parse/src/presets/whitespace.ts +++ b/packages/parse/src/presets/whitespace.ts @@ -7,6 +7,11 @@ import { oneOf } from "../prims/one-of"; */ export const WS = oneOf(" \t\n\r", "ws"); +/** + * Matches single space or tab char. + */ +export const SPACE = oneOf(" \t", "space"); + /** * Matches single `\n` or `\r` char. */ @@ -20,9 +25,19 @@ export const DNL = discard(NL); /** * Zero or more {@link WS}. Result will be discarded. */ -export const WS_0 = discard(zeroOrMore(WS, "ws0")); +export const WS_0 = discard(zeroOrMore(WS)); /** * One or more {@link WS}. Result will be discarded. */ -export const WS_1 = discard(oneOrMore(WS, "ws1")); +export const WS_1 = discard(oneOrMore(WS)); + +/** + * Zero or more {@link SPACE}. Result will be discarded. + */ +export const SPACE_0 = discard(zeroOrMore(SPACE)); + +/** + * One or more {@link SPACE}. Result will be discarded. + */ +export const SPACE_1 = discard(oneOrMore(SPACE)); From be7facb1f2c7186180d356c74927aa0d5af7b2aa Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 18 Apr 2020 01:36:24 +0100 Subject: [PATCH 28/78] build(geom-io-obj): update pkg deps --- packages/geom-io-obj/package.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/geom-io-obj/package.json b/packages/geom-io-obj/package.json index 1178a8a65d..ba0563629f 100644 --- a/packages/geom-io-obj/package.json +++ b/packages/geom-io-obj/package.json @@ -38,7 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.9.0" + "@thi.ng/api": "^6.10.1", + "@thi.ng/vectors": "^4.2.5" }, "files": [ "*.js", @@ -47,6 +48,12 @@ ], "keywords": [ "ES6", + "geometry", + "mesh", + "OBJ", + "parser", + "polygon", + "polyline", "typescript" ], "publishConfig": { From ea6541847975846080a905b06e24c717fc648a84 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 18 Apr 2020 12:05:47 +0100 Subject: [PATCH 29/78] feat(geom-io-obj): add more opts, tessellator, tests --- packages/geom-io-obj/README.md | 53 +++++++--- packages/geom-io-obj/package.json | 2 +- packages/geom-io-obj/src/api.ts | 58 +++++++++++ packages/geom-io-obj/src/parser.ts | 104 +++++++++++-------- packages/geom-io-obj/test/index.ts | 126 ++++++++++++++++++++++++ packages/geom-io-obj/test/tsconfig.json | 11 +++ packages/geom-io-obj/tpl.readme.md | 49 ++++++--- 7 files changed, 332 insertions(+), 71 deletions(-) create mode 100644 packages/geom-io-obj/test/index.ts create mode 100644 packages/geom-io-obj/test/tsconfig.json diff --git a/packages/geom-io-obj/README.md b/packages/geom-io-obj/README.md index a07e50021a..8c362dcd08 100644 --- a/packages/geom-io-obj/README.md +++ b/packages/geom-io-obj/README.md @@ -11,6 +11,7 @@ This project is part of the - [About](#about) - [Features](#features) + - [Planned features](#planned-features) - [Status](#status) - [Installation](#installation) - [Dependencies](#dependencies) @@ -25,13 +26,21 @@ Wavefront OBJ parser (& exporter soon). ### Features -- geometry split into declared objects & groups (can be disabled) -- full support for n-gon faces, polylines -- vertex & normal swizzling (optional, e.g. convert Y-up / Z-up) -- skip parsing/processing of UVs and/or normals -- per group `mtllib` and `usemtl` references -- per group smooth flags -- fast (~100 verts, normals & faces per ms, MBP2015, Node 13.10) +- Geometry split into declared objects & groups by default (can be disabled) +- Full support for n-gon faces, polylines +- Optional n-gon face tessellation into triangles +- Support for relative (negative) vertex references +- Optional vertex, normal & UV transforms (e.g. convert Y-up / Z-up, flip UVs) +- Skip parsing/processing of UVs and/or normals +- Per group `mtllib` and `usemtl` references +- Per group smooth flags +- Optionally retained comments (e.g. for additional metadata parsing) +- Fast (~100 verts, normals & faces per millisecond, MBP2015, Node 13.10) + +### Planned features + +- [ ] OBJ export +- [ ] MTL parser ### Status @@ -48,6 +57,7 @@ Package sizes (gzipped, pre-treeshake): ESM: 858 bytes / CJS: 911 bytes / UMD: 1 ## Dependencies - [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/develop/packages/api) +- [@thi.ng/vectors](https://github.com/thi-ng/umbrella/tree/develop/packages/vectors) ## API @@ -57,7 +67,7 @@ TODO See [api.ts](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-io-obj/src/api.ts) -for details about resulting data structure. +for details about resulting data structure. Also see tests for more. ```ts import { parseObj } from "@thi.ng/geom-io-obj"; @@ -83,6 +93,7 @@ f 7 4 1 6 f 3 8 5 2 `; +// parse with defaults const model = parseObj(src); console.log(model.vertices); @@ -97,6 +108,7 @@ console.log(model.vertices); // [ 0, 0, 0 ] // ] +// vertex indices now zero-based (instead of 1-based in OBJ) console.log(model.objects[0].groups[0].faces); // [ // { v: [ 3, 2, 1, 0 ] }, @@ -110,16 +122,25 @@ console.log(model.objects[0].groups[0].faces); ## Benchmarks -Benchmark uses a quad-mesh model with 143,423 vertices, same number of normals and 142,802 faces (filesize 43.7MB). +Benchmark uses a quad-mesh model with 143,423 vertices, same number of +normals and 142,802 quad faces (filesize 43.7MB). ```text benchmarking: parse - warmup... 7155.26ms (5 runs) - executing... - total: 13890.64ms, runs: 10 - mean: 1389.06ms, median: 1379.48ms, range: [1339.18..1450.96] - q1: 1371.56ms, q3: 1427.43ms - sd: 2.40% + warmup... 7299.40ms (5 runs) + executing... + total: 13795.25ms, runs: 10 + mean: 1379.52ms, median: 1379.91ms, range: [1356.43..1431.49] + q1: 1362.21ms, q3: 1415.23ms + sd: 1.77% + +benchmarking: parse w/ tessellation + warmup... 7752.45ms (5 runs) + executing... + total: 15170.43ms, runs: 10 + mean: 1517.04ms, median: 1540.89ms, range: [1425.28..1616.09] + q1: 1487.29ms, q3: 1551.26ms + sd: 3.35% ``` ## Authors @@ -128,4 +149,4 @@ Karsten Schmidt ## License -© 2020 Karsten Schmidt // Apache Software License 2.0 +© 2016 - 2020 Karsten Schmidt // Apache Software License 2.0 diff --git a/packages/geom-io-obj/package.json b/packages/geom-io-obj/package.json index ba0563629f..53951f2d5d 100644 --- a/packages/geom-io-obj/package.json +++ b/packages/geom-io-obj/package.json @@ -62,6 +62,6 @@ "sideEffects": false, "thi.ng": { "status": "alpha", - "year": 2020 + "year": 2016 } } diff --git a/packages/geom-io-obj/src/api.ts b/packages/geom-io-obj/src/api.ts index 9eb006da58..33e0acd22a 100644 --- a/packages/geom-io-obj/src/api.ts +++ b/packages/geom-io-obj/src/api.ts @@ -1,11 +1,69 @@ +import type { Fn } from "@thi.ng/api"; import type { Vec } from "@thi.ng/vectors"; +export interface ParseOpts { + /** + * If true, creates declared objects in OBJ source. If false, all + * faces/lines will be merged in default object. + * + * @defaultValue true + */ + objects: boolean; + /** + * If true, creates declared (optionally named) groups in OBJ + * source. If false, all faces/lines will be merged in default + * group of current object. + * + * @defaultValue true + */ + groups: boolean; + /** + * If true, n-gon faces (quads or higher) will be split into + * triangles. + * + * @defaultValue false + */ + tessellate: boolean; + /** + * If true, retains all comment lines (e.g. for metadata) + * + * @defaultValue false + */ + comments: boolean; + /** + * If false, skips parsing of normals and ignores their references + * in faces. + * + * @defaultValue true + */ + normals: boolean; + /** + * If false, skips parsing of UVs / tex coords and ignores their + * references in faces. + * + * @defaultValue true + */ + uvs: boolean; + /** + * Transform function applied to all read vertices and normals. + */ + xform?: Fn; + /** + * Transform function applied to all read UVs. + */ + xformUV?: Fn; +} + +/** + * Result data structure returned by {@link parseOBJ}. + */ export interface OBJModel { vertices: Vec[]; normals: Vec[]; uvs: Vec[]; objects: OBJObject[]; mtlLibs: string[]; + comments: string[]; } export interface OBJObject { diff --git a/packages/geom-io-obj/src/parser.ts b/packages/geom-io-obj/src/parser.ts index fadecb4a02..da5749846b 100644 --- a/packages/geom-io-obj/src/parser.ts +++ b/packages/geom-io-obj/src/parser.ts @@ -1,14 +1,6 @@ -import { assert, Fn } from "@thi.ng/api"; -import type { OBJFace, OBJGroup, OBJModel } from "./api"; +import { assert } from "@thi.ng/api"; import { Vec } from "@thi.ng/vectors"; - -export interface ParseOpts { - normals: boolean; - uvs: boolean; - objects: boolean; - groups: boolean; - swizzle?: Fn; -} +import type { OBJFace, OBJGroup, OBJModel, ParseOpts } from "./api"; export const parseOBJ = (src: string, opts?: Partial) => { opts = { @@ -16,15 +8,23 @@ export const parseOBJ = (src: string, opts?: Partial) => { uvs: true, objects: true, groups: true, + comments: false, + tessellate: false, ...opts, }; + + const vertices: Vec[] = []; + const normals: Vec[] = []; + const uvs: Vec[] = []; const result = { - vertices: [], - normals: [], - uvs: [], + vertices, + normals, + uvs, objects: [], mtlLibs: [], + comments: [], }; + let faces: OBJFace[]; let currGroup!: OBJGroup; let nextID = 0; @@ -35,8 +35,9 @@ export const parseOBJ = (src: string, opts?: Partial) => { (currGroup = { id, smooth: false, - faces: [], + faces: faces = [], lines: [], + mtl: currGroup ? currGroup.mtl : undefined, }) ); }; @@ -44,20 +45,9 @@ export const parseOBJ = (src: string, opts?: Partial) => { const newObject = (id: string, force = false) => { (force || opts!.objects) && result.objects.push({ id: id || `object-${nextID++}`, groups: [] }); - newGroup(id || "default", force); + newGroup("default", force); }; - const readVec2 = (items: string[]) => [ - parseFloat(items[1]), - parseFloat(items[2]), - ]; - - const readVec3 = (items: string[]) => [ - parseFloat(items[1]), - parseFloat(items[2]), - parseFloat(items[3]), - ]; - const addID = (acc: number[], x: string, num: number) => { const v = parseInt(x); acc.push(v < 0 ? v + num : v - 1); @@ -66,9 +56,9 @@ export const parseOBJ = (src: string, opts?: Partial) => { const readFace = (line: string[]) => { const face = { v: [] }; const n = line.length; - const nv = result.vertices.length; - const nuv = result.uvs.length; - const nn = result.normals.length; + const nv = vertices.length; + const nuv = uvs.length; + const nn = normals.length; const items = line[1].split("/"); switch (items.length) { case 1: @@ -100,45 +90,55 @@ export const parseOBJ = (src: string, opts?: Partial) => { }; const readPolyLine = (items: string[]) => { - const num = result.vertices.length; + const nv = vertices.length; const verts: number[] = []; for (let i = 1, n = items.length; i < n; i++) { - addID(verts, items[i], num); + addID(verts, items[i], nv); } return verts; }; newObject("default", true); + const { xform, xformUV, tessellate, comments } = opts; const lines = src.split(/[\n\r]+/g); - const swizzle = opts.swizzle; for (let i = 0, n = lines.length; i < n; i++) { const l = lines[i]; - if (!l.length || l[0] === "#") continue; + if (!l.length) continue; + if (l[0] === "#") { + comments && result.comments.push(l.substr(1).trim()); + continue; + } const items = l.trim().split(/\s+/g); const len = items.length; switch (items[0]) { case "v": { assert(len > 3, `invalid vertex @ line ${i}`); const v = readVec3(items); - result.vertices.push(swizzle ? swizzle(v) : v); + vertices.push(xform ? xform(v) : v); break; } case "vn": { assert(len > 3, `invalid normal @ line ${i}`); const v = readVec3(items); - result.normals.push(swizzle ? swizzle(v) : v); + normals.push(xform ? xform(v) : v); break; } - case "vt": + case "vt": { assert(len > 2, `invalid uv @ line ${i}`); - result.uvs.push(readVec2(items)); + const v = readVec2(items); + uvs.push(xformUV ? xformUV(v) : v); break; - case "f": + } + case "f": { assert(len > 3, `invalid face @ line ${i}`); - currGroup.faces.push(readFace(items)); + const f = readFace(items); + tessellate && f.v.length > 3 + ? faces!.push(...tessellateFace(f)) + : faces!.push(f); break; + } case "l": assert(len > 2, `invalid polyline @ line ${i}`); currGroup.lines.push(readPolyLine(items)); @@ -164,3 +164,29 @@ export const parseOBJ = (src: string, opts?: Partial) => { } return result; }; + +const readVec2 = (items: string[]) => [ + parseFloat(items[1]), + parseFloat(items[2]), +]; + +const readVec3 = (items: string[]) => [ + parseFloat(items[1]), + parseFloat(items[2]), + parseFloat(items[3]), +]; + +const tessellateFace = (face: OBJFace) => { + const { v, uv, n } = face; + const v0 = v[0]; + const uv0 = uv && uv[0]; + const n0 = n && n[0]; + const acc: OBJFace[] = []; + for (let i = 1, num = v.length - 1; i < num; i++) { + const tri: OBJFace = { v: [v0, v[i], v[i + 1]] }; + uv && (tri.uv = [uv0!, uv[i], uv[i + 1]]); + n && (tri.n = [n0!, n[i], n[i + 1]]); + acc.push(tri); + } + return acc; +}; diff --git a/packages/geom-io-obj/test/index.ts b/packages/geom-io-obj/test/index.ts new file mode 100644 index 0000000000..78d317565e --- /dev/null +++ b/packages/geom-io-obj/test/index.ts @@ -0,0 +1,126 @@ +import * as assert from "assert"; +import { parseOBJ } from "../src"; + +const src = ` +# test cube + +mtllib cube.mtl +usemtl noise + +o cube +v 1.0000 1.0000 1.0000 +v 1.0000 1.0000 0.0000 +v 1.0000 0.0000 0.0000 +v 1.0000 0.0000 1.0000 +v 0.0000 1.0000 0.0000 +v 0.0000 1.0000 1.0000 +v 0.0000 0.0000 1.0000 +v 0.0000 0.0000 0.0000 + +# quad faces +f 4 3 2 1 +f 8 7 6 5 +f 6 1 2 5 +g other +s +f 8 3 4 7 +f 7 4 1 6 +f 3 8 5 2 +`; + +const cubeVerts = [ + [1, 1, 1], + [1, 1, 0], + [1, 0, 0], + [1, 0, 1], + [0, 1, 0], + [0, 1, 1], + [0, 0, 1], + [0, 0, 0], +]; + +const cubeFaces = [ + { v: [3, 2, 1, 0] }, + { v: [7, 6, 5, 4] }, + { v: [5, 0, 1, 4] }, + { v: [7, 2, 3, 6] }, + { v: [6, 3, 0, 5] }, + { v: [2, 7, 4, 1] }, +]; + +describe("geom-io-obj", () => { + it("cube (default)", () => { + const model = parseOBJ(src); + assert.deepEqual(model.vertices, cubeVerts); + assert.equal(model.objects.length, 2); + assert.equal(model.objects[1].id, "cube"); + assert.deepEqual(model.objects[1].groups, [ + { + id: "default", + smooth: false, + mtl: "noise", + lines: [], + faces: cubeFaces.slice(0, 3), + }, + { + id: "other", + smooth: true, + mtl: "noise", + lines: [], + faces: cubeFaces.slice(3), + }, + ]); + assert.deepEqual(model.mtlLibs, ["cube.mtl"]); + }); + + it("cube (no obj, no groups)", () => { + const model = parseOBJ(src, { objects: false, groups: false }); + assert.deepEqual(model.vertices, cubeVerts); + assert.equal(model.objects.length, 1); + assert.equal(model.objects[0].id, "default"); + assert.deepEqual(model.objects[0].groups, [ + { + id: "default", + smooth: true, + mtl: "noise", + lines: [], + faces: cubeFaces, + }, + ]); + }); + + it("cube (tessel)", () => { + const model = parseOBJ(src, { + objects: false, + groups: false, + tessellate: true, + }); + assert.deepEqual(model.objects[0].groups, [ + { + id: "default", + smooth: true, + mtl: "noise", + lines: [], + faces: [ + { v: [3, 2, 1] }, + { v: [3, 1, 0] }, + { v: [7, 6, 5] }, + { v: [7, 5, 4] }, + { v: [5, 0, 1] }, + { v: [5, 1, 4] }, + { v: [7, 2, 3] }, + { v: [7, 3, 6] }, + { v: [6, 3, 0] }, + { v: [6, 0, 5] }, + { v: [2, 7, 4] }, + { v: [2, 4, 1] }, + ], + }, + ]); + }); + + it("comments", () => { + const model = parseOBJ(src, { comments: true }); + assert.deepEqual(model.comments, ["test cube", "quad faces"]); + }); +}); diff --git a/packages/geom-io-obj/test/tsconfig.json b/packages/geom-io-obj/test/tsconfig.json new file mode 100644 index 0000000000..f6e63560dd --- /dev/null +++ b/packages/geom-io-obj/test/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.json", + "compilerOptions": { + "outDir": "../build", + "module": "commonjs" + }, + "include": [ + "./**/*.ts", + "../src/**/*.ts" + ] +} diff --git a/packages/geom-io-obj/tpl.readme.md b/packages/geom-io-obj/tpl.readme.md index 51163168d8..8946382371 100644 --- a/packages/geom-io-obj/tpl.readme.md +++ b/packages/geom-io-obj/tpl.readme.md @@ -15,13 +15,21 @@ ${pkg.description} ### Features -- geometry split into declared objects & groups (can be disabled) -- full support for n-gon faces, polylines -- vertex & normal swizzling (optional, e.g. convert Y-up / Z-up) -- skip parsing/processing of UVs and/or normals -- per group `mtllib` and `usemtl` references -- per group smooth flags -- fast (~100 verts, normals & faces per ms, MBP2015, Node 13.10) +- Geometry split into declared objects & groups by default (can be disabled) +- Full support for n-gon faces, polylines +- Optional n-gon face tessellation into triangles +- Support for relative (negative) vertex references +- Optional vertex, normal & UV transforms (e.g. convert Y-up / Z-up, flip UVs) +- Skip parsing/processing of UVs and/or normals +- Per group `mtllib` and `usemtl` references +- Per group smooth flags +- Optionally retained comments (e.g. for additional metadata parsing) +- Fast (~100 verts, normals & faces per millisecond, MBP2015, Node 13.10) + +### Planned features + +- [ ] OBJ export +- [ ] MTL parser ${status} @@ -53,7 +61,7 @@ TODO See [api.ts](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-io-obj/src/api.ts) -for details about resulting data structure. +for details about resulting data structure. Also see tests for more. ```ts import { parseObj } from "@thi.ng/geom-io-obj"; @@ -79,6 +87,7 @@ f 7 4 1 6 f 3 8 5 2 `; +// parse with defaults const model = parseObj(src); console.log(model.vertices); @@ -93,6 +102,7 @@ console.log(model.vertices); // [ 0, 0, 0 ] // ] +// vertex indices now zero-based (instead of 1-based in OBJ) console.log(model.objects[0].groups[0].faces); // [ // { v: [ 3, 2, 1, 0 ] }, @@ -106,16 +116,25 @@ console.log(model.objects[0].groups[0].faces); ## Benchmarks -Benchmark uses a quad-mesh model with 143,423 vertices, same number of normals and 142,802 faces (filesize 43.7MB). +Benchmark uses a quad-mesh model with 143,423 vertices, same number of +normals and 142,802 quad faces (filesize 43.7MB). ```text benchmarking: parse - warmup... 7155.26ms (5 runs) - executing... - total: 13890.64ms, runs: 10 - mean: 1389.06ms, median: 1379.48ms, range: [1339.18..1450.96] - q1: 1371.56ms, q3: 1427.43ms - sd: 2.40% + warmup... 7299.40ms (5 runs) + executing... + total: 13795.25ms, runs: 10 + mean: 1379.52ms, median: 1379.91ms, range: [1356.43..1431.49] + q1: 1362.21ms, q3: 1415.23ms + sd: 1.77% + +benchmarking: parse w/ tessellation + warmup... 7752.45ms (5 runs) + executing... + total: 15170.43ms, runs: 10 + mean: 1517.04ms, median: 1540.89ms, range: [1425.28..1616.09] + q1: 1487.29ms, q3: 1551.26ms + sd: 3.35% ``` ## Authors From b914267b88325d5c94a028aee192268e75736181 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 18 Apr 2020 16:17:04 +0100 Subject: [PATCH 30/78] feat(parse): add dynamic() & DynamicParser --- packages/parse/src/api.ts | 4 ++++ packages/parse/src/combinators/dynamic.ts | 23 +++++++++++++++++++++++ packages/parse/src/index.ts | 1 + 3 files changed, 28 insertions(+) create mode 100644 packages/parse/src/combinators/dynamic.ts diff --git a/packages/parse/src/api.ts b/packages/parse/src/api.ts index d8ac50ebc4..ad90b72b88 100644 --- a/packages/parse/src/api.ts +++ b/packages/parse/src/api.ts @@ -25,6 +25,10 @@ export interface IReader { export type Parser = Fn, boolean>; +export type DynamicParser = Parser & { + set: Fn, void>; +}; + export type PassValue = T | Fn0; export type ScopeTransform = ( diff --git a/packages/parse/src/combinators/dynamic.ts b/packages/parse/src/combinators/dynamic.ts new file mode 100644 index 0000000000..3414e341d7 --- /dev/null +++ b/packages/parse/src/combinators/dynamic.ts @@ -0,0 +1,23 @@ +import type { Nullable } from "@thi.ng/api"; +import type { DynamicParser, Parser } from "../api"; +import { ParseContext } from "../context"; + +/** + * Returns a parser function placeholder, whose implementation can be + * set at a later stage via calling `.set()`. + * + * @examples + * ```ts + * const parser = dynamic(); + * parser.set(lit("a")); + * + * parser(defContext("a")); + * // true + * ``` + */ +export const dynamic = (): DynamicParser => { + let impl: Nullable>; + const wrapper: any = (ctx: ParseContext) => (impl ? impl(ctx) : false); + wrapper.set = (p: Parser) => (impl = p); + return wrapper; +}; diff --git a/packages/parse/src/index.ts b/packages/parse/src/index.ts index ef9ed7be9f..fd4c70fe8a 100644 --- a/packages/parse/src/index.ts +++ b/packages/parse/src/index.ts @@ -5,6 +5,7 @@ export * from "./error"; export * from "./combinators/alt"; export * from "./combinators/check"; export * from "./combinators/discard"; +export * from "./combinators/dynamic"; export * from "./combinators/expect"; export * from "./combinators/maybe"; export * from "./combinators/not"; From 25414b598211c05597714bc07d16a5f6a6249e5f Mon Sep 17 00:00:00 2001 From: stwind Date: Sun, 19 Apr 2020 01:04:43 +0800 Subject: [PATCH 31/78] fix(webgl): unbind fbo after configure --- packages/webgl/src/fbo.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/webgl/src/fbo.ts b/packages/webgl/src/fbo.ts index 2291ad40e3..55a51106d7 100644 --- a/packages/webgl/src/fbo.ts +++ b/packages/webgl/src/fbo.ts @@ -108,7 +108,8 @@ export class FBO implements IFbo { 0 ); } - return this.validate(); + this.validate(); + return this.unbind(); } validate() { From 38e9c66c25c02db4d7fb79837645dfaf654e6788 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sat, 18 Apr 2020 22:05:13 +0100 Subject: [PATCH 32/78] feat(parse): initial checkin grammar compiler --- packages/parse/src/api.ts | 12 +- packages/parse/src/grammar.ts | 205 ++++++++++++++++++++++++++++++++++ packages/parse/src/index.ts | 1 + 3 files changed, 217 insertions(+), 1 deletion(-) create mode 100644 packages/parse/src/grammar.ts diff --git a/packages/parse/src/api.ts b/packages/parse/src/api.ts index ad90b72b88..1cec1f15cf 100644 --- a/packages/parse/src/api.ts +++ b/packages/parse/src/api.ts @@ -1,4 +1,4 @@ -import type { Fn, Fn0, Nullable } from "@thi.ng/api"; +import type { Fn, Fn0, IObjectOf, Nullable } from "@thi.ng/api"; import { ParseContext } from "./context"; export interface ParseScope { @@ -36,3 +36,13 @@ export type ScopeTransform = ( ctx: ParseContext, user?: any ) => Nullable>; + +export type Rules = IObjectOf>; + +export type RuleTransforms = IObjectOf>; + +export interface Language { + grammar: ParseContext; + env: RuleTransforms; + rules: Rules; +} diff --git a/packages/parse/src/grammar.ts b/packages/parse/src/grammar.ts new file mode 100644 index 0000000000..09be28e440 --- /dev/null +++ b/packages/parse/src/grammar.ts @@ -0,0 +1,205 @@ +import { DEFAULT, defmulti } from "@thi.ng/defmulti"; +import { illegalArgs, unsupported } from "@thi.ng/errors"; +import type { Language, Parser, ParseScope, RuleTransforms } from "./api"; +import { alt } from "./combinators/alt"; +import { dynamic } from "./combinators/dynamic"; +import { maybe } from "./combinators/maybe"; +import { not } from "./combinators/not"; +import { oneOrMore, repeat, zeroOrMore } from "./combinators/repeat"; +import { seq } from "./combinators/seq"; +import { xform } from "./combinators/xform"; +import { defContext } from "./context"; +import { ALPHA_NUM } from "./presets/alpha"; +import { HEX_DIGIT } from "./presets/digits"; +import { UINT } from "./presets/numbers"; +import { WS_0, WS_1 } from "./presets/whitespace"; +import { dlit, lit } from "./prims/lit"; +import { noneOf } from "./prims/none-of"; +import { oneOf } from "./prims/one-of"; +import { range } from "./prims/range"; +import { dstring } from "./prims/string"; +import { collect } from "./xform/collect"; +import { hoist } from "./xform/hoist"; +import { join } from "./xform/join"; +import { xfInt } from "./xform/number"; +import { xfPrint } from "./xform/print"; + +const apos = dlit("'"); +const dash = dlit("-"); + +const UNICODE = xform( + seq([dstring("\\u"), repeat(HEX_DIGIT, 4, 4)], "char"), + ($, ctx) => ( + ($!.result = String.fromCharCode(xfInt(16)($, ctx)!.result)), $ + ) +); + +const REPEAT = maybe( + alt([ + oneOf("?*+", "repeat"), + collect( + seq( + [ + dlit("{"), + UINT, + maybe(hoist(seq([dlit(","), UINT]))), + dlit("}"), + ], + "repeatN" + ) + ), + ]) +); + +const CHAR_OR_ESC = alt([ALPHA_NUM, UNICODE]); + +const CHAR_RANGE = seq([CHAR_OR_ESC, dash, CHAR_OR_ESC], "charRange"); + +const CHAR_SEL = seq( + [ + dlit("["), + maybe(lit("^", "invert")), + oneOrMore(alt([CHAR_RANGE, UNICODE, noneOf("]", "char")]), "choice"), + dlit("]"), + REPEAT, + ], + "charSel" +); + +const LIT = hoist(seq([apos, CHAR_OR_ESC, apos], "char")); + +const SYM = join(oneOrMore(alt([ALPHA_NUM, oneOf(".-_$")]), "sym")); + +const RULE_REF = seq([dlit("<"), SYM, dlit(">"), REPEAT], "ref"); + +const TERM = alt([RULE_REF, LIT, CHAR_SEL]); + +const ALT = seq( + [ + dlit("("), + WS_0, + TERM, + zeroOrMore(seq([WS_0, dlit("|"), WS_0, TERM])), + WS_0, + dlit(")"), + REPEAT, + ], + "alt" +); + +const RULE_XF = hoist(seq([dstring("=>"), WS_1, SYM, WS_1], "xform")); + +const RULE = seq( + [ + WS_0, + SYM, + WS_0, + dlit(":"), + oneOrMore(alt([TERM, ALT, WS_1]), "body"), + maybe(RULE_XF), + dlit(";"), + WS_0, + ], + "rule" +); + +const GRAMMAR = zeroOrMore(RULE, "rules"); + +const compile = defmulti, Language, any>( + (scope) => scope.id +); + +compile.addAll({ + root: ($, lang) => { + const rules = $.children![0].children!; + rules.reduce( + (acc, r) => ((acc[r.children![0].result] = dynamic()), acc), + lang.rules + ); + for (let r of rules) { + const id = r.children![0].result; + lang.rules[id].set(compile(r, lang)); + } + return lang; + }, + rule: ($, lang) => { + const [id, body, xfID] = $.children!; + console.log(`rule: ${id.result}`); + const acc: Parser[] = []; + for (let b of body.children!) { + const c = compile(b, lang); + c && acc.push(c); + } + let parser = acc.length > 1 ? seq(acc) : acc[0]; + if (xfID.result) { + const xf = lang.env[xfID.result]; + if (!xf) illegalArgs(`missing xform: ${xfID.result}`); + parser = xform(parser, xf); + } + return parser; + }, + ref: ($, lang) => { + const [id, repeat] = $.children!; + const ref = lang.rules[id.result]; + if (!ref) illegalArgs(`invalid rule ref: ${id.result}`); + return compileRepeat(ref, repeat); + }, + alt: ($, lang) => { + const acc: Parser[] = [compile($.children![0], lang)]; + for (let c of $.children![1].children!) { + acc.push(compile(c.children![0], lang)); + } + return compileRepeat( + acc.length > 1 ? alt(acc) : acc[0], + $.children![2] + ); + }, + char: ($) => { + const x = $.result; + console.log(`lit: '${x}'`); + return lit(x); + }, + charRange: ($) => { + const [a, b] = $.children!; + console.log(`range: ${a.result} - ${b.result}`); + return range(a.result, b.result); + }, + charSel: ($, lang) => { + const choices = $.children![1].children!.map((c) => compile(c, lang)); + const [invert, , repeat] = $.children!; + console.log(`invert: ${invert.result}, repeat: ${repeat.result}`); + let parser = choices.length > 1 ? alt(choices) : choices[0]; + if (invert.result) { + parser = not(parser); + } + return compileRepeat(parser, repeat); + }, +}); + +compile.add(DEFAULT, ($) => unsupported(`unknown op: ${$.id}`)); + +const compileRepeat = (parser: Parser, rspec: ParseScope) => { + if (rspec.id === "repeat") { + switch (rspec.result) { + case "?": + return maybe(parser); + case "*": + return join(zeroOrMore(parser)); + case "+": + return join(oneOrMore(parser)); + default: + return parser; + } + } else if (rspec.id === "repeatN") { + return repeat(parser, rspec.result[0], rspec.result[1]); + } + return parser; +}; + +export const defLanguage = (rules: string, env: RuleTransforms = {}) => { + const ctx = defContext(rules); + if (GRAMMAR(ctx)) { + xfPrint(ctx.root, ctx); + return compile(ctx.root, { env, grammar: ctx, rules: {} }); + } +}; diff --git a/packages/parse/src/index.ts b/packages/parse/src/index.ts index fd4c70fe8a..9c2f48c700 100644 --- a/packages/parse/src/index.ts +++ b/packages/parse/src/index.ts @@ -1,6 +1,7 @@ export * from "./api"; export * from "./context"; export * from "./error"; +export * from "./grammar"; export * from "./combinators/alt"; export * from "./combinators/check"; From d47c0a220e4912a30c59a7fd3c81b8376d74d720 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 19 Apr 2020 20:11:26 +0100 Subject: [PATCH 33/78] feat(parse): add ParseContext.reset(), update addChild() --- packages/parse/src/context.ts | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/parse/src/context.ts b/packages/parse/src/context.ts index 1ffae5bcb4..dc254c909c 100644 --- a/packages/parse/src/context.ts +++ b/packages/parse/src/context.ts @@ -29,8 +29,8 @@ interface ContextOpts { } export class ParseContext { - protected _scopes: ParseScope[]; - protected _curr: ParseScope; + protected _scopes!: ParseScope[]; + protected _curr!: ParseScope; protected _maxDepth: number; protected _debug: boolean; @@ -41,6 +41,10 @@ export class ParseContext { this._maxDepth = opts.maxDepth!; this._debug = opts.debug!; this._retain = opts.retain!; + this.reset(); + } + + reset() { this._curr = { id: "root", state: { p: 0, l: 1, c: 1 }, @@ -48,7 +52,8 @@ export class ParseContext { result: null, }; this._scopes = [this._curr]; - reader.isDone(this._curr.state!); + this.reader.isDone(this._curr.state!); + return this; } start(id: string) { @@ -103,7 +108,11 @@ export class ParseContext { return true; } - addChild(id: string, result: any = null, consume = false) { + addChild( + id: string, + result: any = null, + newState: ParseState | boolean = false + ) { const curr = this._curr; const cstate = curr.state; const child: ParseScope = { @@ -116,8 +125,10 @@ export class ParseContext { }; const children = curr.children; children ? children.push(child) : (curr.children = [child]); - if (consume) { - this.reader.next(cstate!); + if (newState !== false) { + newState === true + ? this.reader.next(cstate!) + : (this._curr.state = newState); } return true; } From 328103f55f4bb311470b8767a27d28a78d0dcb4b Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 19 Apr 2020 20:34:19 +0100 Subject: [PATCH 34/78] feat(parse): add/update/rename parser primitives - add LitParser type to annotate single-char parsers - add satisfyD() - add stringOf() for predicated strings - add wordBoundary anchor - add/update/rename discarding parser prims: - litD(), stringD(), noneOfD(), oneOfD(), rangeD() - export predicate versions: - litP(), noneOfP(), oneOfP(), rangeP() - update skipWhile() behavior --- packages/parse/package.json | 3 +- packages/parse/src/api.ts | 4 +++ packages/parse/src/prims/anchor.ts | 21 ++++++++++---- packages/parse/src/prims/lit.ts | 9 +++--- packages/parse/src/prims/none-of.ts | 38 ++++++++++++++++--------- packages/parse/src/prims/one-of.ts | 37 +++++++++++++++--------- packages/parse/src/prims/range.ts | 44 +++++++++++++++++++++++------ packages/parse/src/prims/satisfy.ts | 33 ++++++++++++++++------ packages/parse/src/prims/skip.ts | 19 ++++++------- packages/parse/src/prims/string.ts | 35 +++++++++++++++++++++-- 10 files changed, 177 insertions(+), 66 deletions(-) diff --git a/packages/parse/package.json b/packages/parse/package.json index 3856915e8c..2e8be5dfd4 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -40,7 +40,8 @@ "dependencies": { "@thi.ng/api": "^6.10.0", "@thi.ng/checks": "^2.6.2", - "@thi.ng/errors": "^1.2.10" + "@thi.ng/errors": "^1.2.10", + "@thi.ng/strings": "^1.8.3" }, "files": [ "*.js", diff --git a/packages/parse/src/api.ts b/packages/parse/src/api.ts index 1cec1f15cf..b129dd5438 100644 --- a/packages/parse/src/api.ts +++ b/packages/parse/src/api.ts @@ -25,12 +25,16 @@ export interface IReader { export type Parser = Fn, boolean>; +export type LitParser = Parser & { __lit: true }; + export type DynamicParser = Parser & { set: Fn, void>; }; export type PassValue = T | Fn0; +export type CharSet = IObjectOf; + export type ScopeTransform = ( scope: Nullable>, ctx: ParseContext, diff --git a/packages/parse/src/prims/anchor.ts b/packages/parse/src/prims/anchor.ts index b76b2098b6..59bba6df18 100644 --- a/packages/parse/src/prims/anchor.ts +++ b/packages/parse/src/prims/anchor.ts @@ -1,9 +1,8 @@ -import type { Fn2, Nullable } from "@thi.ng/api"; +import type { Nullable, Predicate2 } from "@thi.ng/api"; +import { ALPHA_NUM } from "@thi.ng/strings"; import type { Parser } from "../api"; -export const anchor = ( - fn: Fn2, Nullable, boolean> -): Parser => (ctx) => { +export const anchor = (fn: Predicate2>): Parser => (ctx) => { const state = ctx.state; return fn(state.last, state.done ? null : ctx.reader.read(state)); }; @@ -11,7 +10,7 @@ export const anchor = ( export const inputStart: Parser = (ctx) => ctx.state.last == null; export const inputEnd: Parser = (ctx) => - ctx.state.done || !ctx.reader.read(ctx.state); + ctx.state.done || ctx.reader.read(ctx.state) === undefined; export const lineStart: Parser = (ctx) => { const l = ctx.state.last; @@ -23,3 +22,15 @@ export const lineEnd: Parser = (ctx) => { let c: string; return state.done || (c = ctx.reader.read(state)) === "\n" || c === "\r"; }; + +export const wordBoundaryP: Predicate2> = (prev, next) => { + return prev + ? next + ? ALPHA_NUM[prev] && !ALPHA_NUM[next] + : ALPHA_NUM[prev] + : next + ? ALPHA_NUM[next] + : false; +}; + +export const wordBoundary = anchor(wordBoundaryP); diff --git a/packages/parse/src/prims/lit.ts b/packages/parse/src/prims/lit.ts index 7b12e7096b..ef9edd71ad 100644 --- a/packages/parse/src/prims/lit.ts +++ b/packages/parse/src/prims/lit.ts @@ -1,5 +1,6 @@ -import { discard } from "../combinators/discard"; -import { satisfy } from "./satisfy"; +import { satisfyD, satisfy } from "./satisfy"; + +export const litP = (c: T) => (x: T) => x === c; /** * Matches single char/value `c`. @@ -7,11 +8,11 @@ import { satisfy } from "./satisfy"; * @param c * @param id */ -export const lit = (c: T, id = "lit") => satisfy((x) => x === c, id); +export const lit = (c: T, id = "lit") => satisfy(litP(c), id); /** * Discarded literal. Same as {@link lit}, but result will be discarded. * * @param c */ -export const dlit = (c: T) => discard(lit(c)); +export const litD = (c: T) => satisfyD(litP(c)); diff --git a/packages/parse/src/prims/none-of.ts b/packages/parse/src/prims/none-of.ts index 61a8b36074..085e4a1e29 100644 --- a/packages/parse/src/prims/none-of.ts +++ b/packages/parse/src/prims/none-of.ts @@ -1,16 +1,28 @@ -import { isSet } from "@thi.ng/checks"; -import type { Parser } from "../api"; -import { satisfy } from "./satisfy"; +import type { Predicate } from "@thi.ng/api"; +import { isPlainObject, isSet } from "@thi.ng/checks"; +import type { CharSet, LitParser } from "../api"; +import { satisfy, satisfyD } from "./satisfy"; -export function noneOf(opts: string, id?: string): Parser; -export function noneOf(opts: T[], id?: string): Parser; -export function noneOf(opts: Set, id?: string): Parser; +export const noneOfP = ( + opts: string | CharSet | any[] | Set +): Predicate => + isSet(opts) + ? (x) => !opts.has(x) + : isPlainObject(opts) + ? (x) => !(opts)[x] + : (x) => opts.indexOf(x) < 0; + +export function noneOf(opts: string | CharSet, id?: string): LitParser; +export function noneOf(opts: T[] | Set, id?: string): LitParser; export function noneOf( - opts: string | any[] | Set, - id = "oneOf" -): Parser { - return satisfy( - isSet(opts) ? (x) => !opts.has(x) : (x) => opts.indexOf(x) < 0, - id - ); + opts: string | CharSet | any[] | Set, + id = "noneOf" +) { + return satisfy(noneOfP(opts), id); +} + +export function noneOfD(opts: string | CharSet): LitParser; +export function noneOfD(opts: T[] | Set): LitParser; +export function noneOfD(opts: string | CharSet | any[] | Set) { + return satisfyD(noneOfP(opts)); } diff --git a/packages/parse/src/prims/one-of.ts b/packages/parse/src/prims/one-of.ts index a5a44d16c4..b17f08bd11 100644 --- a/packages/parse/src/prims/one-of.ts +++ b/packages/parse/src/prims/one-of.ts @@ -1,16 +1,25 @@ -import { isSet } from "@thi.ng/checks"; -import type { Parser } from "../api"; -import { satisfy } from "./satisfy"; +import type { Predicate } from "@thi.ng/api"; +import { isPlainObject, isSet } from "@thi.ng/checks"; +import type { CharSet, LitParser } from "../api"; +import { satisfy, satisfyD } from "./satisfy"; -export function oneOf(opts: string, id?: string): Parser; -export function oneOf(opts: T[], id?: string): Parser; -export function oneOf(opts: Set, id?: string): Parser; -export function oneOf( - opts: string | any[] | Set, - id = "oneOf" -): Parser { - return satisfy( - isSet(opts) ? (x) => opts.has(x) : (x) => opts.indexOf(x) >= 0, - id - ); +export const oneOfP = ( + opts: string | any[] | Set | CharSet +): Predicate => + isSet(opts) + ? (x) => opts.has(x) + : isPlainObject(opts) + ? (x) => (opts)[x] + : (x) => opts.indexOf(x) >= 0; + +export function oneOf(opts: string | CharSet, id?: string): LitParser; +export function oneOf(opts: T[] | Set, id?: string): LitParser; +export function oneOf(opts: string | CharSet | any[] | Set, id = "oneOf") { + return satisfy(oneOfP(opts), id); +} + +export function oneOfD(opts: string | CharSet): LitParser; +export function oneOfD(opts: T[] | Set): LitParser; +export function oneOfD(opts: string | CharSet | any[] | Set) { + return satisfyD(oneOfP(opts)); } diff --git a/packages/parse/src/prims/range.ts b/packages/parse/src/prims/range.ts index b69665e244..913de04a6a 100644 --- a/packages/parse/src/prims/range.ts +++ b/packages/parse/src/prims/range.ts @@ -1,8 +1,29 @@ -import type { NumOrString } from "@thi.ng/api"; -import { satisfy } from "./satisfy"; +import type { NumOrString, Predicate } from "@thi.ng/api"; +import { LitParser } from "../api"; +import { satisfy, satisfyD } from "./satisfy"; -export const range = (min: T, max: T, id = "lit") => - satisfy((x) => x >= min && x <= max, id); +export const rangeP = (min: T, max: T): Predicate => ( + x +) => x >= min && x <= max; + +export const utf16RangeP = (min: number, max: number): Predicate => ( + x +) => { + const c = x.charCodeAt(0)!; + return c >= min && c <= max; +}; + +export function range(min: string, max: string, id?: string): LitParser; +export function range(min: number, max: number, id?: string): LitParser; +export function range(min: NumOrString, max: NumOrString, id = "lit") { + return satisfy(rangeP(min, max), id); +} + +export function rangeD(min: string, max: string): LitParser; +export function rangeD(min: number, max: number): LitParser; +export function rangeD(min: NumOrString, max: NumOrString) { + return satisfyD(rangeP(min, max)); +} /** * Matches single char in given UTF-16 code range. @@ -12,7 +33,14 @@ export const range = (min: T, max: T, id = "lit") => * @param id */ export const utf16Range = (min: number, max: number, id = "utfLit") => - satisfy((x) => { - const c = x.charCodeAt(0)!; - return c >= min && c <= max; - }, id); + satisfy(utf16RangeP(min, max), id); + +/** + * Matches single char in given UTF-16 code range. + * + * @param min + * @param max + * @param id + */ +export const utf16RangeD = (min: number, max: number) => + satisfyD(utf16RangeP(min, max)); diff --git a/packages/parse/src/prims/satisfy.ts b/packages/parse/src/prims/satisfy.ts index 82882d0970..c52e2a478f 100644 --- a/packages/parse/src/prims/satisfy.ts +++ b/packages/parse/src/prims/satisfy.ts @@ -1,10 +1,27 @@ import type { Predicate } from "@thi.ng/api"; -import type { Parser } from "../api"; +import type { Parser, LitParser } from "../api"; -export const satisfy = (fn: Predicate, id = "lit"): Parser => ( - ctx -) => { - if (ctx.done) return false; - const r = ctx.reader.read(ctx.state); - return fn(r) ? ctx.addChild(id, r, true) : false; -}; +export function satisfy(pred: Predicate, id = "lit") { + const parser: Parser = (ctx) => { + if (ctx.done) return false; + const r = ctx.reader.read(ctx.state); + return pred(r) ? ctx.addChild(id, r, true) : false; + }; + return >parser; +} + +/** + * Like {@link satisfy}, but avoids creating AST node and discards + * result. + * + * @param pred + */ +export function satisfyD(pred: Predicate) { + const parser: Parser = (ctx) => { + if (ctx.done) return false; + const state = ctx.state!; + const reader = ctx.reader; + return pred(reader.read(state)) ? (reader.next(state), true) : false; + }; + return >parser; +} diff --git a/packages/parse/src/prims/skip.ts b/packages/parse/src/prims/skip.ts index dc2ea122eb..0a5101a3c7 100644 --- a/packages/parse/src/prims/skip.ts +++ b/packages/parse/src/prims/skip.ts @@ -2,15 +2,14 @@ import type { Parser } from "../api"; import type { Predicate } from "@thi.ng/api"; /** - * Consumes input, but ignores it as long as given `pred` fn returns - * true. The char for which `pred` fails will NOT be consumed and the - * context state will be forwarded to that position. If `pred` never - * returns false before the end of the input is reached, this parser - * will return false and context state remains untouched. + * Consumes input, but ignores it as long as given `pred` predicate fn + * returns true. The char for which `pred` fails will NOT be consumed + * and the context state will be forwarded to that position. If the end + * of the input is reached, this parser will return true. * * @example * ```ts - * const comment = dseq([lit("#"), skipWhile((x) => x !== "\n"), NL]); + * const comment = seqD([litD("#"), skipWhile(noneOfP("\n")), NL]); * * const ctx = defContext("# ignore more!\n"); * comment(ctx); @@ -26,11 +25,9 @@ export const skipWhile = (pred: Predicate): Parser => (ctx) => { const state = { ...ctx.state }; const reader = ctx.reader; while (!state.done) { - if (!pred(reader.read(state))) { - ctx.state = state; - return true; - } + if (!pred(reader.read(state))) break; reader.next(state); } - return false; + ctx.state = state; + return true; }; diff --git a/packages/parse/src/prims/string.ts b/packages/parse/src/prims/string.ts index fa0fb6555c..396768e4ab 100644 --- a/packages/parse/src/prims/string.ts +++ b/packages/parse/src/prims/string.ts @@ -1,5 +1,5 @@ import type { Parser } from "../api"; -import { discard } from "../combinators/discard"; +import { Predicate, Fn } from "@thi.ng/api"; export const string = (str: ArrayLike, id = "string"): Parser => ( ctx @@ -20,4 +20,35 @@ export const string = (str: ArrayLike, id = "string"): Parser => ( return ctx.end(); }; -export const dstring = (str: ArrayLike) => discard(string(str)); +export const stringD = (str: ArrayLike): Parser => (ctx) => { + if (ctx.done) return false; + const state = { ...ctx.state! }; + const reader = ctx.reader; + for (let i = 0, n = str.length; i < n; i++) { + if (state.done) return false; + const r = reader.read(state); + if (r !== str[i]) { + return false; + } + reader.next(state); + } + ctx.state = state; + return true; +}; + +export const stringOf = ( + pred: Predicate, + id = "string", + reduce: Fn = (x) => x.join("") +): Parser => (ctx) => { + const state = { ...ctx.state }; + const reader = ctx.reader; + let acc: T[] = []; + while (!state.done) { + const r = reader.read(state); + if (!pred(r)) break; + acc.push(r); + reader.next(state); + } + return ctx.addChild(id, reduce(acc), state); +}; From 719b437335b7861c41ef8d8e204350fdad398103 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 19 Apr 2020 20:35:41 +0100 Subject: [PATCH 35/78] refactor(strings): update ALPHA, ALPHA_NUM & WS groups --- packages/strings/src/groups.ts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/packages/strings/src/groups.ts b/packages/strings/src/groups.ts index 722f66f3a6..a8bb52faa4 100644 --- a/packages/strings/src/groups.ts +++ b/packages/strings/src/groups.ts @@ -16,10 +16,12 @@ const defGroup = (...xs: Iterable[]) => { * true. All others undefined. */ export const WS: IObjectOf = Object.freeze({ + "\t": true, "\n": true, + "\v": true, + "\f": true, "\r": true, - "\t": true, - " ": true + " ": true, }); /** @@ -51,10 +53,18 @@ export const LOWER = defGroup(charRange("a", "z")); export const UPPER = defGroup(charRange("A", "Z")); /** - * Object with ASCII upper & lowercase characters as keys and their - * values set to true. All others undefined. + * Combination of {@link UPPER} and {@link LOWER}. + */ +export const ALPHA = Object.freeze({ ...UPPER, ...LOWER }); + +/** + * Combination of {@link ALPHA} and {@link DIGITS} and '_'. */ -export const ALPHA = { ...UPPER, ...LOWER }; +export const ALPHA_NUM: IObjectOf = Object.freeze({ + ...ALPHA, + ...DIGITS, + _: true, +}); /** * Object with ASCII punctuation characters as keys and their values set From e4eab036243f4f646880b974624ae680e77cff7f Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 19 Apr 2020 20:39:33 +0100 Subject: [PATCH 36/78] feat(parse): add/update combinators - add startsWith, endsWith, entireLine, entirely - add wrap() - rename dalt/dseq => altD/seqD --- packages/parse/src/combinators/alt.ts | 2 +- packages/parse/src/combinators/boundary.ts | 13 +++++++++++++ packages/parse/src/combinators/seq.ts | 2 +- packages/parse/src/combinators/wrap.ts | 11 +++++++++++ 4 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 packages/parse/src/combinators/boundary.ts create mode 100644 packages/parse/src/combinators/wrap.ts diff --git a/packages/parse/src/combinators/alt.ts b/packages/parse/src/combinators/alt.ts index c87d557fbb..689019a08f 100644 --- a/packages/parse/src/combinators/alt.ts +++ b/packages/parse/src/combinators/alt.ts @@ -11,4 +11,4 @@ export const alt = (parsers: Parser[]): Parser => (ctx) => { return false; }; -export const dalt = (parsers: Parser[]) => discard(alt(parsers)); +export const altD = (parsers: Parser[]) => discard(alt(parsers)); diff --git a/packages/parse/src/combinators/boundary.ts b/packages/parse/src/combinators/boundary.ts new file mode 100644 index 0000000000..090577ad57 --- /dev/null +++ b/packages/parse/src/combinators/boundary.ts @@ -0,0 +1,13 @@ +import { Parser } from "../api"; +import { inputEnd, inputStart, lineEnd, lineStart } from "../prims/anchor"; +import { seq } from "./seq"; + +export const startsWith = (parser: Parser) => seq([inputStart, parser]); + +export const endsWith = (parser: Parser) => seq([parser, inputEnd]); + +export const entireLine = (parser: Parser) => + seq([lineStart, parser, lineEnd]); + +export const entirely = (parser: Parser) => + seq([inputStart, parser, inputEnd]); diff --git a/packages/parse/src/combinators/seq.ts b/packages/parse/src/combinators/seq.ts index 1832ef9771..5fa7ce72e4 100644 --- a/packages/parse/src/combinators/seq.ts +++ b/packages/parse/src/combinators/seq.ts @@ -14,4 +14,4 @@ export const seq = (parsers: Parser[], id = "seq"): Parser => ( return ctx.end(); }; -export const dseq = (parsers: Parser[]) => discard(seq(parsers)); +export const seqD = (parsers: Parser[]) => discard(seq(parsers)); diff --git a/packages/parse/src/combinators/wrap.ts b/packages/parse/src/combinators/wrap.ts new file mode 100644 index 0000000000..62404f71ef --- /dev/null +++ b/packages/parse/src/combinators/wrap.ts @@ -0,0 +1,11 @@ +import { Parser } from "../api"; +import { litD } from "../prims/lit"; +import { hoist } from "../xform/hoist"; +import { seq } from "./seq"; + +export const wrap = ( + parser: Parser, + pre: T, + post: T = pre, + id = "wrap" +) => hoist(seq([litD(pre), parser, litD(post)], id)); From e16426b82f0dda94ab9aa92ba6e3af8d769f3fed Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 19 Apr 2020 20:40:32 +0100 Subject: [PATCH 37/78] feat(parse): add withID() xform, add doc strings --- packages/parse/src/xform/collect.ts | 6 ++++++ packages/parse/src/xform/hoist.ts | 11 +++++++++++ packages/parse/src/xform/join.ts | 6 ++++++ packages/parse/src/xform/number.ts | 12 ++++++++++++ packages/parse/src/xform/print.ts | 21 +++++++++++++++++++++ packages/parse/src/xform/with-id.ts | 15 +++++++++++++++ 6 files changed, 71 insertions(+) create mode 100644 packages/parse/src/xform/with-id.ts diff --git a/packages/parse/src/xform/collect.ts b/packages/parse/src/xform/collect.ts index 8edf01622f..ddbdc16277 100644 --- a/packages/parse/src/xform/collect.ts +++ b/packages/parse/src/xform/collect.ts @@ -1,6 +1,12 @@ import { Parser, ScopeTransform } from "../api"; import { xform } from "../combinators/xform"; +/** + * Collects results of all direct children into an array, then discards + * children. Also see {@link collect}. + * + * @param scope + */ export const xfCollect: ScopeTransform = (scope) => { scope!.result = scope!.children!.map((c) => c.result); scope!.children = null; diff --git a/packages/parse/src/xform/hoist.ts b/packages/parse/src/xform/hoist.ts index a4e8b532b2..f05d01af06 100644 --- a/packages/parse/src/xform/hoist.ts +++ b/packages/parse/src/xform/hoist.ts @@ -1,10 +1,21 @@ import { Parser, ScopeTransform } from "../api"; import { xform } from "../combinators/xform"; +/** + * Moves the result of first child node to this node, then discards all + * children. Also see {@link hoist}. + * + * @param scope + */ export const xfHoist: ScopeTransform = (scope) => { scope!.result = scope!.children![0].result; scope!.children = null; return scope; }; +/** + * Syntax sugar for `xform(parser, xfHoist)`. + * + * @param parser + */ export const hoist = (parser: Parser) => xform(parser, xfHoist); diff --git a/packages/parse/src/xform/join.ts b/packages/parse/src/xform/join.ts index bdaa19b0f6..c5eaf961ad 100644 --- a/packages/parse/src/xform/join.ts +++ b/packages/parse/src/xform/join.ts @@ -2,6 +2,12 @@ import type { Nullable } from "@thi.ng/api"; import type { Parser, ParseScope } from "../api"; import { xform } from "../combinators/xform"; +/** + * Recursively joins non-null results of all children into a single + * string, then discards children. Also see {@link join}. + * + * @param scope + */ export const xfJoin = (scope: Nullable>) => { if (!scope || !scope.children) return null; const res = []; diff --git a/packages/parse/src/xform/number.ts b/packages/parse/src/xform/number.ts index 7e1361c2c8..bc081f97d2 100644 --- a/packages/parse/src/xform/number.ts +++ b/packages/parse/src/xform/number.ts @@ -1,11 +1,23 @@ import { ScopeTransform } from "../api"; import { xfJoin } from "./join"; +/** + * Higher order transform. First joins all children via {@link xfJoin}, + * then parses resulting string into an integer with given `radix`. + * + * @param radix + */ export const xfInt = (radix = 10): ScopeTransform => (scope) => { scope!.result = parseInt(xfJoin(scope)!.result, radix); return scope; }; +/** + * First joins all children via {@link xfJoin}, then parses resulting + * string into a floating point value. + * + * @param scope + */ export const xfFloat: ScopeTransform = (scope) => { scope!.result = parseFloat(xfJoin(scope)!.result); return scope; diff --git a/packages/parse/src/xform/print.ts b/packages/parse/src/xform/print.ts index 7e85f5ece4..c13c67a90e 100644 --- a/packages/parse/src/xform/print.ts +++ b/packages/parse/src/xform/print.ts @@ -2,6 +2,15 @@ import { Parser, ScopeTransform } from "../api"; import { xform } from "../combinators/xform"; import { indent } from "../utils"; +/** + * Side effect only. Traverses current AST node and all children and + * prints each node's ID, result and reader state (if available). Also + * see {@link print}. + * + * @param scope + * @param ctx + * @param level + */ export const xfPrint: ScopeTransform = (scope, _, level = 0) => { if (!scope) return; const prefix = indent(level); @@ -19,6 +28,18 @@ export const xfPrint: ScopeTransform = (scope, _, level = 0) => { /** * Syntax sugar for `xform(parser, xfPrint)`. * + * @example + * ```ts + * print(seq([lit("["), oneOrMore(ALPHA), lit("]")]))(defContext("[abc]")) + * // seq: null + * // lit: "[" + * // repeat1: null + * // lit: "a" + * // lit: "b" + * // lit: "c" + * // lit: "]" + * ``` + * * @param parser */ export const print = (parser: Parser) => xform(parser, xfPrint); diff --git a/packages/parse/src/xform/with-id.ts b/packages/parse/src/xform/with-id.ts new file mode 100644 index 0000000000..991ed11ab2 --- /dev/null +++ b/packages/parse/src/xform/with-id.ts @@ -0,0 +1,15 @@ +import { ScopeTransform, Parser } from "../api"; +import { xform } from "../combinators/xform"; + +/** + * Assigns given `id` to AST node. E.g. used for re-labeling parser + * results defined by {@link defGrammar}. + * + * @param id + */ +export const xfID = (id: string): ScopeTransform => (scope) => ( + (scope!.id = id), scope +); + +export const withID = (id: string, parser: Parser) => + xform(parser, xfID(id)); From 12f2499253163a923c42e3be29ce2223a6648e11 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 19 Apr 2020 21:09:55 +0100 Subject: [PATCH 38/78] feat(parse): add/update/rename parser presets --- packages/parse/src/presets/alpha.ts | 12 +++---- packages/parse/src/presets/bits.ts | 8 +++++ packages/parse/src/presets/digits.ts | 26 ++------------- packages/parse/src/presets/escape.ts | 22 +++++++++++++ packages/parse/src/presets/hex.ts | 21 ++++++++++++ packages/parse/src/presets/numbers.ts | 42 +++++++++++++----------- packages/parse/src/presets/whitespace.ts | 20 +++++------ 7 files changed, 92 insertions(+), 59 deletions(-) create mode 100644 packages/parse/src/presets/bits.ts create mode 100644 packages/parse/src/presets/escape.ts create mode 100644 packages/parse/src/presets/hex.ts diff --git a/packages/parse/src/presets/alpha.ts b/packages/parse/src/presets/alpha.ts index 71f1bb6902..5c51edd11d 100644 --- a/packages/parse/src/presets/alpha.ts +++ b/packages/parse/src/presets/alpha.ts @@ -1,23 +1,23 @@ +import { ALPHA as _ALPHA, ALPHA_NUM as _ALPHA_NUM } from "@thi.ng/strings"; +import { oneOf } from "../prims/one-of"; import { range } from "../prims/range"; -import { alt } from "../combinators/alt"; -import { DIGIT } from "./digits"; /** * Matches single char in `a` - `z` range. */ -export const LOWER_CASE = range("a", "z"); +export const LOWER_CASE = range("a", "z"); /** * Matches single char in `A` - `Z` range. */ -export const UPPER_CASE = range("A", "Z"); +export const UPPER_CASE = range("A", "Z"); /** * Matches single in {@link LOWER_CASE} or {@link UPPER_CASE}. */ -export const ALPHA = alt([LOWER_CASE, UPPER_CASE]); +export const ALPHA = oneOf(_ALPHA); /** * Matches single in {@link ALPHA} or {@link DIGIT}. */ -export const ALPHA_NUM = alt([ALPHA, DIGIT]); +export const ALPHA_NUM = oneOf(_ALPHA_NUM); diff --git a/packages/parse/src/presets/bits.ts b/packages/parse/src/presets/bits.ts new file mode 100644 index 0000000000..2e5acb942b --- /dev/null +++ b/packages/parse/src/presets/bits.ts @@ -0,0 +1,8 @@ +import { oneOf } from "../prims/one-of"; +import { xfInt } from "../xform/number"; +import { repeat } from "../combinators/repeat"; +import { xform } from "../combinators/xform"; + +export const BIT = oneOf("01"); + +export const BINARY_UINT = xform(repeat(BIT, 1, 32, "uint"), xfInt(2)); diff --git a/packages/parse/src/presets/digits.ts b/packages/parse/src/presets/digits.ts index 658f237043..c54c9b796c 100644 --- a/packages/parse/src/presets/digits.ts +++ b/packages/parse/src/presets/digits.ts @@ -1,32 +1,12 @@ -import { alt } from "../combinators/alt"; -import { oneOrMore, zeroOrMore } from "../combinators/repeat"; +import { oneOrMore } from "../combinators/repeat"; import { range } from "../prims/range"; /** * Matches single decimal digit. */ -export const DIGIT = range("0", "9", "digit"); - -/** - * Matches single hex digit (case insensitive). - */ -export const HEX_DIGIT = alt([ - DIGIT, - range("a", "f"), - range("A", "F"), -]); - -/** - * Matches zero or more {@link DIGIT}s. - */ -export const DIGITS_0 = zeroOrMore(DIGIT); +export const DIGIT = range("0", "9", "digit"); /** * Matches one or more {@link DIGIT}s. */ -export const DIGITS_1 = oneOrMore(DIGIT); - -/** - * Matches one or more {@link HEX_DIGIT}s. - */ -export const HEX_DIGITS_1 = oneOrMore(HEX_DIGIT); +export const DIGITS = oneOrMore(DIGIT); diff --git a/packages/parse/src/presets/escape.ts b/packages/parse/src/presets/escape.ts new file mode 100644 index 0000000000..263616a177 --- /dev/null +++ b/packages/parse/src/presets/escape.ts @@ -0,0 +1,22 @@ +import { always } from "../prims/always"; +import { litD } from "../prims/lit"; +import { seq } from "../combinators/seq"; +import { hoist } from "../xform/hoist"; +import { xform } from "../combinators/xform"; +import { repeat } from "../combinators/repeat"; +import { HEX_DIGIT } from "./hex"; +import { stringD } from "../prims/string"; +import { xfInt } from "../xform/number"; + +export const ESC = hoist(seq([litD("\\"), always()], "esc")); + +/** + * Matches a single `\uNNNN` escaped unicode hex literal and transforms + * it into it actual character via `String.fromCharCode()`. + */ +export const UNICODE = xform( + seq([stringD("\\u"), repeat(HEX_DIGIT, 4, 4)], "unicode"), + ($, ctx) => ( + ($!.result = String.fromCharCode(xfInt(16)($, ctx)!.result)), $ + ) +); diff --git a/packages/parse/src/presets/hex.ts b/packages/parse/src/presets/hex.ts new file mode 100644 index 0000000000..a728a77cf2 --- /dev/null +++ b/packages/parse/src/presets/hex.ts @@ -0,0 +1,21 @@ +import { HEX } from "@thi.ng/strings"; +import { oneOrMore, repeat } from "../combinators/repeat"; +import { xform } from "../combinators/xform"; +import { oneOf } from "../prims/one-of"; +import { xfInt } from "../xform/number"; + +/** + * Matches single hex digit (case insensitive). + */ +export const HEX_DIGIT = oneOf(HEX); + +/** + * Matches one or more {@link HEX_DIGIT}s. + */ +export const HEX_DIGITS = oneOrMore(HEX_DIGIT); + +/** + * Matches 1-8 successive {@link HEX_DIGIT} and transforms with + * {@link xfInt} to JS number. + */ +export const HEX_UINT = xform(repeat(HEX_DIGIT, 1, 8, "uint"), xfInt(16)); diff --git a/packages/parse/src/presets/numbers.ts b/packages/parse/src/presets/numbers.ts index fe5d491d7a..c66f663ccf 100644 --- a/packages/parse/src/presets/numbers.ts +++ b/packages/parse/src/presets/numbers.ts @@ -1,11 +1,15 @@ import { alt } from "../combinators/alt"; import { maybe } from "../combinators/maybe"; +import { zeroOrMore } from "../combinators/repeat"; import { seq } from "../combinators/seq"; import { xform } from "../combinators/xform"; import { lit } from "../prims/lit"; import { oneOf } from "../prims/one-of"; +import { comp } from "../xform/comp"; +import { join } from "../xform/join"; import { xfFloat, xfInt } from "../xform/number"; -import { DIGITS_0, DIGITS_1, HEX_DIGITS_1 } from "./digits"; +import { xfID } from "../xform/with-id"; +import { DIGIT, DIGITS } from "./digits"; /** * Matches single `+` or `-` char. @@ -13,35 +17,33 @@ import { DIGITS_0, DIGITS_1, HEX_DIGITS_1 } from "./digits"; export const SIGN = maybe(oneOf("-+")); /** - * Matches optionally signed {@link DIGITS_1} and result transformed w/ + * Matches optionally signed {@link DIGITS} and result transformed w/ * {@link xfInt} to JS number. */ -export const INT = xform(seq([SIGN, DIGITS_1], "int"), xfInt()); +export const INT = xform(seq([SIGN, DIGITS], "int"), xfInt()); /** - * Matches same as {@link DIGITS_1}, but result transformed w/ + * Matches same as {@link DIGITS} but result transformed w/ * {@link xfInt} to JS number. */ -export const UINT = xform(DIGITS_1, xfInt()); +export const UINT = xform(DIGITS, comp(xfID("uint"), xfInt())); -/** - * Matches same as {@link HEX_DIGITS_1}, but result transformed w/ - * {@link xfInt} to JS number. - */ -export const HEX_UINT = xform(HEX_DIGITS_1, xfInt(16)); - -const EXP = maybe(seq([maybe(oneOf("eE")), SIGN, DIGITS_1])); +const EXP = maybe(seq([maybe(oneOf("eE")), SIGN, DIGITS])); const DOT = lit("."); -const FRACT0 = maybe(seq([DOT, DIGITS_0])); -const FRACT1 = seq([DOT, DIGITS_1]); +const FRACT0 = maybe(seq([DOT, zeroOrMore(DIGIT)])); +const FRACT1 = seq([DOT, DIGITS]); + +const _REAL = seq([SIGN, alt([FRACT1, seq([DIGITS, FRACT0])]), EXP], "real"); + +/** + * Matches IEEE754 floating point number. + */ +export const REAL = join(_REAL); /** - * Matches IEEE754 floating point number and transforms result w/ - * {@link xfFloat}. + * Like {@link REAL} but transforms result w/ {@link xfFloat} to JS + * number. */ -export const FLOAT = xform( - seq([SIGN, alt([FRACT1, seq([DIGITS_1, FRACT0])]), EXP], "float"), - xfFloat -); +export const FLOAT = xform(_REAL, xfFloat); diff --git a/packages/parse/src/presets/whitespace.ts b/packages/parse/src/presets/whitespace.ts index 5f12bf7b02..a14f078d7c 100644 --- a/packages/parse/src/presets/whitespace.ts +++ b/packages/parse/src/presets/whitespace.ts @@ -1,16 +1,16 @@ import { discard } from "../combinators/discard"; import { oneOrMore, zeroOrMore } from "../combinators/repeat"; -import { oneOf } from "../prims/one-of"; +import { oneOf, oneOfD } from "../prims/one-of"; /** - * Matches single whitespace char. + * Matches & discards single whitespace char: ` \t\n\r`. */ -export const WS = oneOf(" \t\n\r", "ws"); +export const WS = oneOfD(" \t\n\r"); /** - * Matches single space or tab char. + * Matches & discards single space or tab char. */ -export const SPACE = oneOf(" \t", "space"); +export const SPACE = oneOfD(" \t"); /** * Matches single `\n` or `\r` char. @@ -20,24 +20,24 @@ export const NL = oneOf("\n\r"); /** * Matches & discards single `\n` or `\r` char. */ -export const DNL = discard(NL); +export const DNL = oneOfD("\n\r"); /** * Zero or more {@link WS}. Result will be discarded. */ -export const WS_0 = discard(zeroOrMore(WS)); +export const WS0 = discard(zeroOrMore(WS)); /** * One or more {@link WS}. Result will be discarded. */ -export const WS_1 = discard(oneOrMore(WS)); +export const WS1 = discard(oneOrMore(WS)); /** * Zero or more {@link SPACE}. Result will be discarded. */ -export const SPACE_0 = discard(zeroOrMore(SPACE)); +export const SPACES0 = discard(zeroOrMore(SPACE)); /** * One or more {@link SPACE}. Result will be discarded. */ -export const SPACE_1 = discard(oneOrMore(SPACE)); +export const SPACES = discard(oneOrMore(SPACE)); From 3ba89732be8fce0fad082f49d4eb14871112ec2f Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 19 Apr 2020 21:11:07 +0100 Subject: [PATCH 39/78] refactor(parse): update grammar & pkg re-exports --- packages/parse/src/grammar.ts | 91 +++++++++++++++++------------------ packages/parse/src/index.ts | 6 +++ 2 files changed, 51 insertions(+), 46 deletions(-) diff --git a/packages/parse/src/grammar.ts b/packages/parse/src/grammar.ts index 09be28e440..eb444a54ce 100644 --- a/packages/parse/src/grammar.ts +++ b/packages/parse/src/grammar.ts @@ -10,29 +10,21 @@ import { seq } from "./combinators/seq"; import { xform } from "./combinators/xform"; import { defContext } from "./context"; import { ALPHA_NUM } from "./presets/alpha"; -import { HEX_DIGIT } from "./presets/digits"; +import { ESC, UNICODE } from "./presets/escape"; import { UINT } from "./presets/numbers"; -import { WS_0, WS_1 } from "./presets/whitespace"; -import { dlit, lit } from "./prims/lit"; +import { WS0, WS1 } from "./presets/whitespace"; +import { lit, litD } from "./prims/lit"; import { noneOf } from "./prims/none-of"; import { oneOf } from "./prims/one-of"; import { range } from "./prims/range"; -import { dstring } from "./prims/string"; +import { stringD } from "./prims/string"; import { collect } from "./xform/collect"; import { hoist } from "./xform/hoist"; import { join } from "./xform/join"; -import { xfInt } from "./xform/number"; import { xfPrint } from "./xform/print"; -const apos = dlit("'"); -const dash = dlit("-"); - -const UNICODE = xform( - seq([dstring("\\u"), repeat(HEX_DIGIT, 4, 4)], "char"), - ($, ctx) => ( - ($!.result = String.fromCharCode(xfInt(16)($, ctx)!.result)), $ - ) -); +const apos = litD("'"); +const dash = litD("-"); const REPEAT = maybe( alt([ @@ -40,10 +32,10 @@ const REPEAT = maybe( collect( seq( [ - dlit("{"), + litD("{"), UINT, - maybe(hoist(seq([dlit(","), UINT]))), - dlit("}"), + maybe(hoist(seq([litD(","), UINT]))), + litD("}"), ], "repeatN" ) @@ -51,16 +43,16 @@ const REPEAT = maybe( ]) ); -const CHAR_OR_ESC = alt([ALPHA_NUM, UNICODE]); +const CHAR_OR_ESC = alt([ALPHA_NUM, UNICODE, ESC]); const CHAR_RANGE = seq([CHAR_OR_ESC, dash, CHAR_OR_ESC], "charRange"); const CHAR_SEL = seq( [ - dlit("["), + litD("["), maybe(lit("^", "invert")), oneOrMore(alt([CHAR_RANGE, UNICODE, noneOf("]", "char")]), "choice"), - dlit("]"), + litD("]"), REPEAT, ], "charSel" @@ -70,54 +62,61 @@ const LIT = hoist(seq([apos, CHAR_OR_ESC, apos], "char")); const SYM = join(oneOrMore(alt([ALPHA_NUM, oneOf(".-_$")]), "sym")); -const RULE_REF = seq([dlit("<"), SYM, dlit(">"), REPEAT], "ref"); +const RULE_REF = seq([litD("<"), SYM, litD(">"), REPEAT], "ref"); const TERM = alt([RULE_REF, LIT, CHAR_SEL]); const ALT = seq( [ - dlit("("), - WS_0, + litD("("), + WS0, TERM, - zeroOrMore(seq([WS_0, dlit("|"), WS_0, TERM])), - WS_0, - dlit(")"), + zeroOrMore(seq([WS0, litD("|"), WS0, TERM])), + WS0, + litD(")"), REPEAT, ], "alt" ); -const RULE_XF = hoist(seq([dstring("=>"), WS_1, SYM, WS_1], "xform")); +const RULE_XF = hoist(seq([stringD("=>"), WS1, SYM, WS1], "xform")); const RULE = seq( [ - WS_0, + WS0, SYM, - WS_0, - dlit(":"), - oneOrMore(alt([TERM, ALT, WS_1]), "body"), + WS0, + litD(":"), + oneOrMore(alt([TERM, ALT, WS1]), "body"), maybe(RULE_XF), - dlit(";"), - WS_0, + litD(";"), + WS0, ], "rule" ); const GRAMMAR = zeroOrMore(RULE, "rules"); +const first = ($: ParseScope) => $.children![0]; + +const nth = ($: ParseScope, n: number) => $.children![n]; + const compile = defmulti, Language, any>( - (scope) => scope.id + (scope) => scope.id, + { + unicode: ["char"], + } ); compile.addAll({ root: ($, lang) => { - const rules = $.children![0].children!; + const rules = first($).children!; rules.reduce( - (acc, r) => ((acc[r.children![0].result] = dynamic()), acc), + (acc, r) => ((acc[first(r).result] = dynamic()), acc), lang.rules ); for (let r of rules) { - const id = r.children![0].result; + const id = first(r).result; lang.rules[id].set(compile(r, lang)); } return lang; @@ -130,7 +129,7 @@ compile.addAll({ const c = compile(b, lang); c && acc.push(c); } - let parser = acc.length > 1 ? seq(acc) : acc[0]; + let parser = acc.length > 1 ? seq(acc, id.result) : acc[0]; if (xfID.result) { const xf = lang.env[xfID.result]; if (!xf) illegalArgs(`missing xform: ${xfID.result}`); @@ -145,9 +144,9 @@ compile.addAll({ return compileRepeat(ref, repeat); }, alt: ($, lang) => { - const acc: Parser[] = [compile($.children![0], lang)]; - for (let c of $.children![1].children!) { - acc.push(compile(c.children![0], lang)); + const acc: Parser[] = [compile(first($), lang)]; + for (let c of nth($, 1).children!) { + acc.push(compile(first(c), lang)); } return compileRepeat( acc.length > 1 ? alt(acc) : acc[0], @@ -162,10 +161,10 @@ compile.addAll({ charRange: ($) => { const [a, b] = $.children!; console.log(`range: ${a.result} - ${b.result}`); - return range(a.result, b.result); + return range(a.result, b.result); }, charSel: ($, lang) => { - const choices = $.children![1].children!.map((c) => compile(c, lang)); + const choices = nth($, 1).children!.map((c) => compile(c, lang)); const [invert, , repeat] = $.children!; console.log(`invert: ${invert.result}, repeat: ${repeat.result}`); let parser = choices.length > 1 ? alt(choices) : choices[0]; @@ -184,9 +183,9 @@ const compileRepeat = (parser: Parser, rspec: ParseScope) => { case "?": return maybe(parser); case "*": - return join(zeroOrMore(parser)); + return zeroOrMore(parser); case "+": - return join(oneOrMore(parser)); + return oneOrMore(parser); default: return parser; } @@ -196,7 +195,7 @@ const compileRepeat = (parser: Parser, rspec: ParseScope) => { return parser; }; -export const defLanguage = (rules: string, env: RuleTransforms = {}) => { +export const defGrammar = (rules: string, env: RuleTransforms = {}) => { const ctx = defContext(rules); if (GRAMMAR(ctx)) { xfPrint(ctx.root, ctx); diff --git a/packages/parse/src/index.ts b/packages/parse/src/index.ts index 9c2f48c700..682fdf1779 100644 --- a/packages/parse/src/index.ts +++ b/packages/parse/src/index.ts @@ -4,6 +4,7 @@ export * from "./error"; export * from "./grammar"; export * from "./combinators/alt"; +export * from "./combinators/boundary"; export * from "./combinators/check"; export * from "./combinators/discard"; export * from "./combinators/dynamic"; @@ -12,10 +13,14 @@ export * from "./combinators/maybe"; export * from "./combinators/not"; export * from "./combinators/repeat"; export * from "./combinators/seq"; +export * from "./combinators/wrap"; export * from "./combinators/xform"; export * from "./presets/alpha"; +export * from "./presets/bits"; export * from "./presets/digits"; +export * from "./presets/escape"; +export * from "./presets/hex"; export * from "./presets/numbers"; export * from "./presets/whitespace"; @@ -40,3 +45,4 @@ export * from "./xform/hoist"; export * from "./xform/join"; export * from "./xform/number"; export * from "./xform/print"; +export * from "./xform/with-id"; From 0e0a2ff6a6618f4c5871c18d30e18e828e0ebde4 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 19 Apr 2020 21:11:38 +0100 Subject: [PATCH 40/78] test(parse): add/update tests --- packages/parse/test/binary.ts | 7 +------ packages/parse/test/grammar.ts | 25 +++++++++++++++++++++++++ packages/parse/test/rpn.ts | 4 ++-- packages/parse/test/svg.ts | 8 ++++---- 4 files changed, 32 insertions(+), 12 deletions(-) create mode 100644 packages/parse/test/grammar.ts diff --git a/packages/parse/test/binary.ts b/packages/parse/test/binary.ts index 16c5915059..714bfabe2a 100644 --- a/packages/parse/test/binary.ts +++ b/packages/parse/test/binary.ts @@ -15,11 +15,6 @@ const check = ( describe("parse", () => { it("binary basics", () => { check(seq([string([1, 2, 3, 4]), lit(5)]), [1, 2, 3, 4, 5], true, 5); - check( - seq([oneOrMore(range(0, 4)), lit(5)]), - [1, 2, 3, 4, 5], - true, - 5 - ); + check(seq([oneOrMore(range(0, 4)), lit(5)]), [1, 2, 3, 4, 5], true, 5); }); }); diff --git a/packages/parse/test/grammar.ts b/packages/parse/test/grammar.ts new file mode 100644 index 0000000000..b17696ff6e --- /dev/null +++ b/packages/parse/test/grammar.ts @@ -0,0 +1,25 @@ +import * as assert from "assert"; +import { defContext, defGrammar, Parser, xfCollect, xfJoin } from "../src"; + +const check = ( + parser: Parser, + src: string, + res: boolean, + pos: number +) => { + const ctx = defContext(src); + assert.equal(parser(ctx), res, `src: '${src}'`); + assert.equal(ctx.state!.p, pos, `src: '${src}' pos: ${ctx.state!.p}`); + return ctx; +}; + +describe("parse", () => { + it("grammar", () => { + const lang = defGrammar( + "_: [ ]+ => discard ; num: [0-9a-f]+ => join ; prog: (<_> | )* => collect ;", + { discard: () => null, join: xfJoin, collect: xfCollect } + ); + const ctx = check(lang!.rules.prog, "decafbad 55 aa", true, 14); + assert.deepEqual(ctx.result, ["decafbad", "55", "aa"]); + }); +}); diff --git a/packages/parse/test/rpn.ts b/packages/parse/test/rpn.ts index 9ba4bcc4be..965fd456f3 100644 --- a/packages/parse/test/rpn.ts +++ b/packages/parse/test/rpn.ts @@ -1,6 +1,6 @@ import { Fn2 } from "@thi.ng/api"; import * as assert from "assert"; -import { alt, defContext, FLOAT, oneOf, WS_0, xform, zeroOrMore } from "../src"; +import { alt, defContext, FLOAT, oneOf, WS0, xform, zeroOrMore } from "../src"; describe("parse", () => { it("RPN calc", () => { @@ -21,7 +21,7 @@ describe("parse", () => { stack.push(ops[scope!.result](a, b)); return null; }); - const program = zeroOrMore(alt([value, op, WS_0])); + const program = zeroOrMore(alt([value, op, WS0])); const ctx = defContext("10 5 3 * + -2 * 10 /"); assert(program(ctx)); assert(ctx.done); diff --git a/packages/parse/test/svg.ts b/packages/parse/test/svg.ts index 52a78cd129..767dd9c7b1 100644 --- a/packages/parse/test/svg.ts +++ b/packages/parse/test/svg.ts @@ -8,7 +8,7 @@ import { oneOf, Parser, seq, - WS_0, + WS0, xform, zeroOrMore, } from "../src"; @@ -28,10 +28,10 @@ describe("parse", () => { it("SVG", () => { const wsc = discard(zeroOrMore(oneOf(" \n,"))); const point = collect(seq([INT, wsc, INT])); - const move = collect(seq([oneOf("Mm"), WS_0, point, WS_0])); - const line = collect(seq([oneOf("Ll"), WS_0, point, WS_0])); + const move = collect(seq([oneOf("Mm"), WS0, point, WS0])); + const line = collect(seq([oneOf("Ll"), WS0, point, WS0])); const curve = collect( - seq([oneOf("Cc"), WS_0, point, wsc, point, wsc, point, WS_0]) + seq([oneOf("Cc"), WS0, point, wsc, point, wsc, point, WS0]) ); const close = xform(oneOf("Zz"), ($) => (($!.result = [$!.result]), $)); const path = collect(zeroOrMore(alt([move, line, curve, close]))); From 822fcba9a29a05bad98eecf2b341d07a3a90abeb Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 20 Apr 2020 12:23:48 +0100 Subject: [PATCH 41/78] feat(parse): update grammar parser & compiler - add GrammarOpts - update rules to enable repetition of all terms - add string term - make debug output optional --- packages/parse/src/api.ts | 16 +++++ packages/parse/src/context.ts | 15 +++-- packages/parse/src/grammar.ts | 118 ++++++++++++++++++++++------------ 3 files changed, 102 insertions(+), 47 deletions(-) diff --git a/packages/parse/src/api.ts b/packages/parse/src/api.ts index b129dd5438..203958373f 100644 --- a/packages/parse/src/api.ts +++ b/packages/parse/src/api.ts @@ -41,6 +41,22 @@ export type ScopeTransform = ( user?: any ) => Nullable>; +export interface GrammarOpts { + /** + * If true, prints AST and verbose compiler output. + * + * @defaultValue false + */ + debug: boolean; + /** + * CURRENTLY UNUSED. If true will apply AST optimizations prior to + * compilation. + * + * @defaultValue true + */ + optimize: boolean; +} + export type Rules = IObjectOf>; export type RuleTransforms = IObjectOf>; diff --git a/packages/parse/src/context.ts b/packages/parse/src/context.ts index dc254c909c..9f39551460 100644 --- a/packages/parse/src/context.ts +++ b/packages/parse/src/context.ts @@ -68,11 +68,10 @@ export class ParseContext { result: null, }; scopes.push(scope); - if (this._debug) { + this._debug && console.log( `${indent(scopes.length)}start: ${id} (${scope.state!.p})` ); - } return (this._curr = scope); } @@ -80,9 +79,8 @@ export class ParseContext { const scopes = this._scopes; const child = scopes.pop()!; this._curr = scopes[scopes.length - 1]; - if (this._debug) { + this._debug && console.log(`${indent(scopes.length + 1)}discard: ${child.id}`); - } return false; } @@ -92,11 +90,10 @@ export class ParseContext { const parent = scopes[scopes.length - 1]; const cstate = child.state; let pstate: ParseState; - if (this._debug) { + this._debug && console.log( `${indent(scopes.length + 1)}end: ${child.id} (${cstate!.p})` ); - } child.state = this._retain ? ((pstate = parent.state!), { p: pstate.p, l: pstate.l, c: pstate.c }) @@ -123,6 +120,12 @@ export class ParseContext { children: null, result, }; + this._debug && + console.log( + `${indent(this._scopes.length + 1)}addChild: ${id} (${ + cstate!.p + })` + ); const children = curr.children; children ? children.push(child) : (curr.children = [child]); if (newState !== false) { diff --git a/packages/parse/src/grammar.ts b/packages/parse/src/grammar.ts index eb444a54ce..26df672d9b 100644 --- a/packages/parse/src/grammar.ts +++ b/packages/parse/src/grammar.ts @@ -1,6 +1,12 @@ import { DEFAULT, defmulti } from "@thi.ng/defmulti"; import { illegalArgs, unsupported } from "@thi.ng/errors"; -import type { Language, Parser, ParseScope, RuleTransforms } from "./api"; +import type { + GrammarOpts, + Language, + Parser, + ParseScope, + RuleTransforms, +} from "./api"; import { alt } from "./combinators/alt"; import { dynamic } from "./combinators/dynamic"; import { maybe } from "./combinators/maybe"; @@ -14,16 +20,17 @@ import { ESC, UNICODE } from "./presets/escape"; import { UINT } from "./presets/numbers"; import { WS0, WS1 } from "./presets/whitespace"; import { lit, litD } from "./prims/lit"; -import { noneOf } from "./prims/none-of"; +import { noneOf, noneOfP } from "./prims/none-of"; import { oneOf } from "./prims/one-of"; import { range } from "./prims/range"; -import { stringD } from "./prims/string"; +import { string, stringD, stringOf } from "./prims/string"; import { collect } from "./xform/collect"; import { hoist } from "./xform/hoist"; import { join } from "./xform/join"; -import { xfPrint } from "./xform/print"; +import { print } from "./xform/print"; const apos = litD("'"); +const quote = litD('"'); const dash = litD("-"); const REPEAT = maybe( @@ -53,18 +60,19 @@ const CHAR_SEL = seq( maybe(lit("^", "invert")), oneOrMore(alt([CHAR_RANGE, UNICODE, noneOf("]", "char")]), "choice"), litD("]"), - REPEAT, ], "charSel" ); const LIT = hoist(seq([apos, CHAR_OR_ESC, apos], "char")); +const STRING = hoist(seq([quote, stringOf(noneOfP('"')), quote], "string")); + const SYM = join(oneOrMore(alt([ALPHA_NUM, oneOf(".-_$")]), "sym")); -const RULE_REF = seq([litD("<"), SYM, litD(">"), REPEAT], "ref"); +const RULE_REF = seq([litD("<"), SYM, litD(">")], "ref"); -const TERM = alt([RULE_REF, LIT, CHAR_SEL]); +const TERM = seq([alt([RULE_REF, LIT, STRING, CHAR_SEL]), REPEAT], "term"); const ALT = seq( [ @@ -95,13 +103,13 @@ const RULE = seq( "rule" ); -const GRAMMAR = zeroOrMore(RULE, "rules"); +export const GRAMMAR = zeroOrMore(RULE, "rules"); const first = ($: ParseScope) => $.children![0]; const nth = ($: ParseScope, n: number) => $.children![n]; -const compile = defmulti, Language, any>( +const compile = defmulti, Language, GrammarOpts, any>( (scope) => scope.id, { unicode: ["char"], @@ -109,7 +117,7 @@ const compile = defmulti, Language, any>( ); compile.addAll({ - root: ($, lang) => { + root: ($, lang, opts) => { const rules = first($).children!; rules.reduce( (acc, r) => ((acc[first(r).result] = dynamic()), acc), @@ -117,16 +125,16 @@ compile.addAll({ ); for (let r of rules) { const id = first(r).result; - lang.rules[id].set(compile(r, lang)); + lang.rules[id].set(compile(r, lang, opts)); } return lang; }, - rule: ($, lang) => { + rule: ($, lang, opts) => { const [id, body, xfID] = $.children!; - console.log(`rule: ${id.result}`); + opts.debug && console.log(`rule: ${id.result}`); const acc: Parser[] = []; for (let b of body.children!) { - const c = compile(b, lang); + const c = compile(b, lang, opts); c && acc.push(c); } let parser = acc.length > 1 ? seq(acc, id.result) : acc[0]; @@ -138,46 +146,63 @@ compile.addAll({ return parser; }, ref: ($, lang) => { - const [id, repeat] = $.children!; - const ref = lang.rules[id.result]; - if (!ref) illegalArgs(`invalid rule ref: ${id.result}`); - return compileRepeat(ref, repeat); + const id = first($).result; + const ref = lang.rules[id]; + return ref || illegalArgs(`invalid rule ref: ${id}`); }, - alt: ($, lang) => { - const acc: Parser[] = [compile(first($), lang)]; - for (let c of nth($, 1).children!) { - acc.push(compile(first(c), lang)); + term: ($, lang, opts) => { + const [term, repeat] = $!.children!; + opts.debug && console.log(`term: ${term.id}`); + return compileRepeat(compile(term, lang, opts), repeat, opts); + }, + alt: ($, lang, opts) => { + opts.debug && console.log(`alt: ${$.id}`); + const acc: Parser[] = [compile(first($), lang, opts)]; + const terms = nth($, 1).children!; + if (terms) { + for (let c of terms) { + acc.push(compile(first(c), lang, opts)); + } } return compileRepeat( acc.length > 1 ? alt(acc) : acc[0], - $.children![2] + $.children![2], + opts ); }, - char: ($) => { + char: ($, _, opts) => { const x = $.result; - console.log(`lit: '${x}'`); + opts.debug && console.log(`lit: '${x}'`); return lit(x); }, - charRange: ($) => { + string: ($, _, opts) => { + const x = $.result; + opts.debug && console.log(`string: "${x}"`); + return string(x); + }, + charRange: ($, _, opts) => { const [a, b] = $.children!; - console.log(`range: ${a.result} - ${b.result}`); + opts.debug && console.log(`range: ${a.result} - ${b.result}`); return range(a.result, b.result); }, - charSel: ($, lang) => { - const choices = nth($, 1).children!.map((c) => compile(c, lang)); - const [invert, , repeat] = $.children!; - console.log(`invert: ${invert.result}, repeat: ${repeat.result}`); - let parser = choices.length > 1 ? alt(choices) : choices[0]; - if (invert.result) { - parser = not(parser); - } - return compileRepeat(parser, repeat); + charSel: ($, lang, opts) => { + opts.debug && console.log("charSel"); + const choices = nth($, 1).children!.map((c) => compile(c, lang, opts)); + const invert = first($).result; + const parser = choices.length > 1 ? alt(choices) : choices[0]; + opts.debug && console.log(`invert: ${invert}`); + return invert ? not(parser) : parser; }, }); compile.add(DEFAULT, ($) => unsupported(`unknown op: ${$.id}`)); -const compileRepeat = (parser: Parser, rspec: ParseScope) => { +const compileRepeat = ( + parser: Parser, + rspec: ParseScope, + opts: GrammarOpts +) => { + opts.debug && console.log(`repeat: ${rspec.id}`); if (rspec.id === "repeat") { switch (rspec.result) { case "?": @@ -195,10 +220,21 @@ const compileRepeat = (parser: Parser, rspec: ParseScope) => { return parser; }; -export const defGrammar = (rules: string, env: RuleTransforms = {}) => { +export const defGrammar = ( + rules: string, + env: RuleTransforms = {}, + opts?: Partial +) => { + opts = { debug: false, optimize: true, ...opts }; const ctx = defContext(rules); - if (GRAMMAR(ctx)) { - xfPrint(ctx.root, ctx); - return compile(ctx.root, { env, grammar: ctx, rules: {} }); + const result = (opts.debug ? print(GRAMMAR) : GRAMMAR)(ctx); + if (result) { + return ( + compile( + ctx.root, + { env, grammar: ctx, rules: {} }, + opts + ) + ); } }; From e09a2c40d1ad7272a5abc15c8b11e497f79eb0dd Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 20 Apr 2020 14:48:05 +0100 Subject: [PATCH 42/78] feat(parse): add discarding combinators, move discard - add repeatD, oneOrMoreD, zeroOrMoreD --- packages/parse/src/combinators/alt.ts | 2 +- packages/parse/src/combinators/discard.ts | 4 ---- packages/parse/src/combinators/repeat.ts | 10 ++++++++++ packages/parse/src/combinators/seq.ts | 2 +- packages/parse/src/index.ts | 2 +- packages/parse/src/xform/discard.ts | 14 ++++++++++++++ 6 files changed, 27 insertions(+), 7 deletions(-) delete mode 100644 packages/parse/src/combinators/discard.ts create mode 100644 packages/parse/src/xform/discard.ts diff --git a/packages/parse/src/combinators/alt.ts b/packages/parse/src/combinators/alt.ts index 689019a08f..0c32fea8d4 100644 --- a/packages/parse/src/combinators/alt.ts +++ b/packages/parse/src/combinators/alt.ts @@ -1,5 +1,5 @@ import type { Parser } from "../api"; -import { discard } from "./discard"; +import { discard } from "../xform/discard"; export const alt = (parsers: Parser[]): Parser => (ctx) => { if (ctx.done) return false; diff --git a/packages/parse/src/combinators/discard.ts b/packages/parse/src/combinators/discard.ts deleted file mode 100644 index d6257faf97..0000000000 --- a/packages/parse/src/combinators/discard.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { Parser } from "../api"; -import { xform } from "./xform"; - -export const discard = (parser: Parser) => xform(parser, () => null); diff --git a/packages/parse/src/combinators/repeat.ts b/packages/parse/src/combinators/repeat.ts index 01b342986c..eeb4771467 100644 --- a/packages/parse/src/combinators/repeat.ts +++ b/packages/parse/src/combinators/repeat.ts @@ -1,4 +1,5 @@ import type { Parser } from "../api"; +import { discard } from "../xform/discard"; export const repeat = ( parser: Parser, @@ -32,3 +33,12 @@ export const oneOrMore = ( id = "repeat1", max = Infinity ) => repeat(parser, 1, max, id); + +export const repeatD = (parser: Parser, min: number, max: number) => + discard(repeat(parser, min, max)); + +export const zeroOrMoreD = (parser: Parser, max = Infinity) => + repeatD(parser, 0, max); + +export const oneOrMoreD = (parser: Parser, max = Infinity) => + repeatD(parser, 1, max); diff --git a/packages/parse/src/combinators/seq.ts b/packages/parse/src/combinators/seq.ts index 5fa7ce72e4..edcffcef89 100644 --- a/packages/parse/src/combinators/seq.ts +++ b/packages/parse/src/combinators/seq.ts @@ -1,5 +1,5 @@ import type { Parser } from "../api"; -import { discard } from "./discard"; +import { discard } from "../xform/discard"; export const seq = (parsers: Parser[], id = "seq"): Parser => ( ctx diff --git a/packages/parse/src/index.ts b/packages/parse/src/index.ts index 682fdf1779..75a8fa6998 100644 --- a/packages/parse/src/index.ts +++ b/packages/parse/src/index.ts @@ -6,7 +6,6 @@ export * from "./grammar"; export * from "./combinators/alt"; export * from "./combinators/boundary"; export * from "./combinators/check"; -export * from "./combinators/discard"; export * from "./combinators/dynamic"; export * from "./combinators/expect"; export * from "./combinators/maybe"; @@ -41,6 +40,7 @@ export * from "./readers/string-reader"; export * from "./xform/collect"; export * from "./xform/comp"; +export * from "./xform/discard"; export * from "./xform/hoist"; export * from "./xform/join"; export * from "./xform/number"; diff --git a/packages/parse/src/xform/discard.ts b/packages/parse/src/xform/discard.ts new file mode 100644 index 0000000000..e2b711d74f --- /dev/null +++ b/packages/parse/src/xform/discard.ts @@ -0,0 +1,14 @@ +import type { Parser } from "../api"; +import { xform } from "../combinators/xform"; + +/** + * Discards AST node and any of its children. + */ +export const xfDiscard = () => null; + +/** + * Syntax sugar for `xform(parser, xfDiscard)`. + * + * @param parser + */ +export const discard = (parser: Parser) => xform(parser, xfDiscard); From 069a6ef11c9423bdb2974b11823cc39743dfceec Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 20 Apr 2020 14:49:03 +0100 Subject: [PATCH 43/78] feat(parse): update ESC & whitespace parsers --- packages/parse/src/presets/escape.ts | 20 ++++++++++++++++++-- packages/parse/src/presets/whitespace.ts | 14 +++++++------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/packages/parse/src/presets/escape.ts b/packages/parse/src/presets/escape.ts index 263616a177..c761da1dad 100644 --- a/packages/parse/src/presets/escape.ts +++ b/packages/parse/src/presets/escape.ts @@ -1,14 +1,30 @@ import { always } from "../prims/always"; import { litD } from "../prims/lit"; import { seq } from "../combinators/seq"; -import { hoist } from "../xform/hoist"; import { xform } from "../combinators/xform"; import { repeat } from "../combinators/repeat"; import { HEX_DIGIT } from "./hex"; import { stringD } from "../prims/string"; import { xfInt } from "../xform/number"; +import { IObjectOf } from "@thi.ng/api"; -export const ESC = hoist(seq([litD("\\"), always()], "esc")); +const ESC_VALUES: IObjectOf = { + 0: "\0", + b: "\b", + t: "\t", + n: "\n", + v: "\v", + f: "\f", + r: "\r", +}; + +export const ESC = xform(seq([litD("\\"), always()], "esc"), ($) => { + const id = $!.children![0].result; + const resolved = ESC_VALUES[id]; + $!.result = resolved !== undefined ? resolved : id; + $!.children = null; + return $; +}); /** * Matches a single `\uNNNN` escaped unicode hex literal and transforms diff --git a/packages/parse/src/presets/whitespace.ts b/packages/parse/src/presets/whitespace.ts index a14f078d7c..72925c582b 100644 --- a/packages/parse/src/presets/whitespace.ts +++ b/packages/parse/src/presets/whitespace.ts @@ -1,11 +1,11 @@ -import { discard } from "../combinators/discard"; -import { oneOrMore, zeroOrMore } from "../combinators/repeat"; +import { WS as _WS } from "@thi.ng/strings"; +import { oneOrMoreD, zeroOrMoreD } from "../combinators/repeat"; import { oneOf, oneOfD } from "../prims/one-of"; /** * Matches & discards single whitespace char: ` \t\n\r`. */ -export const WS = oneOfD(" \t\n\r"); +export const WS = oneOfD(_WS); /** * Matches & discards single space or tab char. @@ -25,19 +25,19 @@ export const DNL = oneOfD("\n\r"); /** * Zero or more {@link WS}. Result will be discarded. */ -export const WS0 = discard(zeroOrMore(WS)); +export const WS0 = zeroOrMoreD(WS); /** * One or more {@link WS}. Result will be discarded. */ -export const WS1 = discard(oneOrMore(WS)); +export const WS1 = oneOrMoreD(WS); /** * Zero or more {@link SPACE}. Result will be discarded. */ -export const SPACES0 = discard(zeroOrMore(SPACE)); +export const SPACES0 = zeroOrMoreD(SPACE); /** * One or more {@link SPACE}. Result will be discarded. */ -export const SPACES = discard(oneOrMore(SPACE)); +export const SPACES = oneOrMoreD(SPACE); From 03ed96592f1598767d5feeac1b49b8cc4b1d6285 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 20 Apr 2020 14:50:35 +0100 Subject: [PATCH 44/78] feat(parse): add grammar default transforms, update/fix rules --- packages/parse/src/grammar.ts | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/packages/parse/src/grammar.ts b/packages/parse/src/grammar.ts index 26df672d9b..6fb09079ba 100644 --- a/packages/parse/src/grammar.ts +++ b/packages/parse/src/grammar.ts @@ -24,10 +24,14 @@ import { noneOf, noneOfP } from "./prims/none-of"; import { oneOf } from "./prims/one-of"; import { range } from "./prims/range"; import { string, stringD, stringOf } from "./prims/string"; -import { collect } from "./xform/collect"; -import { hoist } from "./xform/hoist"; -import { join } from "./xform/join"; +import { collect, xfCollect } from "./xform/collect"; +import { xfDiscard } from "./xform/discard"; +import { hoist, xfHoist } from "./xform/hoist"; +import { join, xfJoin } from "./xform/join"; +import { xfFloat, xfInt } from "./xform/number"; import { print } from "./xform/print"; +import { always } from "./prims/always"; +import { withID } from "./xform/with-id"; const apos = litD("'"); const quote = litD('"'); @@ -50,7 +54,7 @@ const REPEAT = maybe( ]) ); -const CHAR_OR_ESC = alt([ALPHA_NUM, UNICODE, ESC]); +const CHAR_OR_ESC = alt([UNICODE, ESC, always()]); const CHAR_RANGE = seq([CHAR_OR_ESC, dash, CHAR_OR_ESC], "charRange"); @@ -137,7 +141,8 @@ compile.addAll({ const c = compile(b, lang, opts); c && acc.push(c); } - let parser = acc.length > 1 ? seq(acc, id.result) : acc[0]; + let parser = + acc.length > 1 ? seq(acc, id.result) : withID(id.result, acc[0]); if (xfID.result) { const xf = lang.env[xfID.result]; if (!xf) illegalArgs(`missing xform: ${xfID.result}`); @@ -222,10 +227,20 @@ const compileRepeat = ( export const defGrammar = ( rules: string, - env: RuleTransforms = {}, + env?: RuleTransforms, opts?: Partial ) => { opts = { debug: false, optimize: true, ...opts }; + env = { + collect: xfCollect, + discard: xfDiscard, + float: xfFloat, + hex: xfInt(16), + hoist: xfHoist, + int: xfInt(10), + join: xfJoin, + ...env, + }; const ctx = defContext(rules); const result = (opts.debug ? print(GRAMMAR) : GRAMMAR)(ctx); if (result) { From b5c33af2aa1a6d03e7715ad47f47cd3d1b4af537 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 20 Apr 2020 14:51:19 +0100 Subject: [PATCH 45/78] docs(parse): update readme --- packages/parse/README.md | 157 +++++++++++++++++++++++++++++------ packages/parse/tpl.readme.md | 151 +++++++++++++++++++++++++++------ 2 files changed, 257 insertions(+), 51 deletions(-) diff --git a/packages/parse/README.md b/packages/parse/README.md index ddd78a2c00..58d1524dfd 100644 --- a/packages/parse/README.md +++ b/packages/parse/README.md @@ -18,8 +18,11 @@ This project is part of the - [Context & reader creation](#context--reader-creation) - [Presets parsers](#presets-parsers) - [Primitives](#primitives) + - [Anchors](#anchors) - [Combinators](#combinators) - [Transformers](#transformers) +- [Grammar definition](#grammar-definition) +- [Examples](#examples) - [SVG path parser example](#svg-path-parser-example) - [RPN parser & interpreter example](#rpn-parser--interpreter-example) - [Authors](#authors) @@ -41,6 +44,7 @@ Purely functional parser combinators & AST generation for generic inputs. - each AST node (optionally) retains reader information (position, line num, column) - disabled by default to save memory - common, re-usable preset parsers & node transforms included +- parser compilation from grammar DSL strings ### Status @@ -52,13 +56,14 @@ Purely functional parser combinators & AST generation for generic inputs. yarn add @thi.ng/parse ``` -Package sizes (gzipped, pre-treeshake): ESM: 2.47 KB / CJS: 2.69 KB / UMD: 2.55 KB +Package sizes (gzipped, pre-treeshake): ESM: 4.44 KB / CJS: 4.77 KB / UMD: 4.46 KB ## Dependencies - [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/api) - [@thi.ng/checks](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/checks) - [@thi.ng/errors](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/errors) +- [@thi.ng/strings](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/strings) ## API @@ -81,44 +86,54 @@ Source: Source: [/presets](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/presets) -- `WS` / `WS_0` / `WS_1` +- `WS` / `WS0` / `WS1` / `NL` / `DNL` / `SPACE` / `SPACES` / `SPACES0` - `ALPHA` / `LOWER_CASE` / `UPPER_CASE` / `ALPHA_NUM` -- `DIGIT` / `DIGITS_0` / `DIGITS_1` -- `HEX_DIGIT` / `HEX_DIGITS_1` -- `INT` / `UINT` / `HEX_UINT` / `FLOAT` / `SIGN` +- `ESC` / `UNICODE` +- `DIGIT` / `DIGITS` / `DIGITS0` +- `HEX_DIGIT` / `HEX_DIGITS` / `HEX_UINT` +- `BIT` / `BINARY_UINT` +- `INT` / `UINT` / `REAL` / `FLOAT` / `SIGN` ### Primitives Source: [/prims](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/prims) -- `anchor` - `always` - `fail` +- `lit` / `litD` / `litP` +- `noneOf` / `noneOfD` / `noneOfP` +- `oneOf` / `oneOfD` / `oneOfP` +- `pass` +- `range` / `rangeD` / `rangeP` +- `satisfy` / `satisfyD` +- `skipWhile` +- `string` / `stringD` +- `stringOf` + +### Anchors + +- `anchor` - `inputStart` / `inputEnd` - `lineStart` / `lineEnd` -- `lit` / `dlit` -- `noneOf` -- `oneOf` -- `pass` -- `range` -- `satisfy` -- `string` / `dstring` +- `wordBoundary` +- `startsWith` / `endsWith` +- `entireLine` +- `entirely` ### Combinators Source: [/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/combinators) -- `alt` +- `alt` / `altD` - `check` -- `discard` - `expect` - `maybe` - `not` -- `oneOrMore` / `zeroOrMore` -- `repeat` -- `seq` +- `oneOrMore` / `zeroOrMore` / `oneOrMoreD` / `zeroOrMoreD` +- `repeat` / `repeatD` +- `seq` / `seqD` - `xform` ### Transformers @@ -129,6 +144,7 @@ Source: Syntax sugars for `xform(parser, fn)`: - `collect` +- `discard` - `hoist` - `join` - `print` @@ -137,17 +153,106 @@ Actual transforms: - `comp` - scope transform composition - `xfCollect` +- `xfDiscard` - `xfFloat` - `xfHoist` -- `xfInt` +- `xfInt(radix)` - `xfJoin` - `xfPrint` +## Grammar definition + +Complex parsers can be constructed via +[`defGrammar()`](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/grammar.ts#L228), +which accepts a string of rule definitions in the built-in (and still +WIP) grammar rule definition language, similar to PEGs and regular +expressions: + +Example grammar + +```text +ws: ' '+ => discard ; +sym: [a-z] [a-z0-9_]* => join ; +num: [0-9]+ => int ; +program: ( | | )* ; +``` + +Here, each line is a single parse rule definition, with each rule +consisting of a sequence of one or more: + +- `'x'` - single char literal (also supports `\uXXXX` unicode escapes) +- `"abc"` - mutli-char string +- `[a-z0-9!@]` - regex style char set (incl. char range support) +- `` - rule references (order independent) +- `( term | ... | )` - choice of sub-terms + +Each of these terms can be immediately followed by one of these regexp +style repetition specs: + +- `?` - zero or one occurrence +- `*` - zero or more +- `+` - one or more +- `{min,max}` - min-max repetitions + +Furthermore, each rule can specify an optional rule transform function +which will only be applied after the rule's parser has successfully +completed. The transform is given at the end of a rule, separated by +`=>`. + +Custom transforms can be supplied via an additional arg to +`defGrammar()`. The following default transforms are available by +default (can be overwritten) and correspond to the [above mentioned +transforms](#transformers): + +- `collect` - collect sub terms into array +- `discard` - discard result +- `hoist` - use result of 1st child term only +- `join` - join sub terms into single string +- `float` - parse as floating point number +- `int` - parse as integer +- `hex` - parse as hex int + +```ts +// define language +const lang = defGrammar(` +ws: ' '+ => discard ; +sym: [a-z] [a-z0-9_]* => join ; +num: [0-9]+ => int ; +program: ( | | )* ; +`); + +// define input & parser context +const ctx = defContext("1 2 add 3 mul"); + +// parse & print AST +print(lang.rules.program)(ctx) +// program: null +// num: 1 +// num: 2 +// word: "add" +// num: 3 +// word: "mul" + +// parse result +// true + +ctx.children +// [ +// { id: 'num', state: null, children: null, result: 1 }, +// { id: 'num', state: null, children: null, result: 2 }, +// { id: 'word', state: null, children: null, result: 'add' }, +// { id: 'num', state: null, children: null, result: 3 }, +// { id: 'word', state: null, children: null, result: 'mul' } +// ] +``` + +## Examples + ### SVG path parser example ```ts import { - INT, WS_0, + INT, WS0, alt, oneOf, seq, zeroOrMore, collect, discard, xform, defContext @@ -159,11 +264,11 @@ const wsc = discard(zeroOrMore(oneOf(" ,"))); // svg path parser rules // collect() collects child results in array, then removes children -// INT & WS_0 are preset parsers (see section above) +// INT & WS0 are preset parsers (see section above) const point = collect(seq([INT, wsc, INT])); -const move = collect(seq([oneOf("Mm"), WS_0, point, WS_0])); -const line = collect(seq([oneOf("Ll"), WS_0, point, WS_0])); -const curve = collect(seq([oneOf("Cc"), WS_0, point, wsc, point, wsc, point, WS_0])); +const move = collect(seq([oneOf("Mm"), WS0, point, WS0])); +const line = collect(seq([oneOf("Ll"), WS0, point, WS0])); +const curve = collect(seq([oneOf("Cc"), WS0, point, wsc, point, wsc, point, WS0])); // xform used here to wrap result in array // (to produce same result format as parsers above) const close = xform(oneOf("Zz"), ($) => ($.result = [$.result], $)); @@ -186,7 +291,7 @@ ctx.result ```ts import { - INT, WS_0, + INT, WS0, alt, oneOf, xform, zeroOrMore defContext } from "@thi.ng/parse"; @@ -222,7 +327,7 @@ const op = xform(oneOf(Object.keys(ops)), (scope) => { // parser for complete RPN program, combines above two parsers // and the whitespace preset as alternatives -const program = zeroOrMore(alt([value, op, WS_0])) +const program = zeroOrMore(alt([value, op, WS0])) // prepare parser context (incl. reader) and execute program(defContext("10 5 3 * + -2 * 10 /")); diff --git a/packages/parse/tpl.readme.md b/packages/parse/tpl.readme.md index 92d033f2a4..ef0c000c52 100644 --- a/packages/parse/tpl.readme.md +++ b/packages/parse/tpl.readme.md @@ -25,6 +25,7 @@ ${pkg.description} - each AST node (optionally) retains reader information (position, line num, column) - disabled by default to save memory - common, re-usable preset parsers & node transforms included +- parser compilation from grammar DSL strings ${status} @@ -69,44 +70,54 @@ Source: Source: [/presets](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/presets) -- `WS` / `WS_0` / `WS_1` +- `WS` / `WS0` / `WS1` / `NL` / `DNL` / `SPACE` / `SPACES` / `SPACES0` - `ALPHA` / `LOWER_CASE` / `UPPER_CASE` / `ALPHA_NUM` -- `DIGIT` / `DIGITS_0` / `DIGITS_1` -- `HEX_DIGIT` / `HEX_DIGITS_1` -- `INT` / `UINT` / `HEX_UINT` / `FLOAT` / `SIGN` +- `ESC` / `UNICODE` +- `DIGIT` / `DIGITS` / `DIGITS0` +- `HEX_DIGIT` / `HEX_DIGITS` / `HEX_UINT` +- `BIT` / `BINARY_UINT` +- `INT` / `UINT` / `REAL` / `FLOAT` / `SIGN` ### Primitives Source: [/prims](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/prims) -- `anchor` - `always` - `fail` +- `lit` / `litD` / `litP` +- `noneOf` / `noneOfD` / `noneOfP` +- `oneOf` / `oneOfD` / `oneOfP` +- `pass` +- `range` / `rangeD` / `rangeP` +- `satisfy` / `satisfyD` +- `skipWhile` +- `string` / `stringD` +- `stringOf` + +### Anchors + +- `anchor` - `inputStart` / `inputEnd` - `lineStart` / `lineEnd` -- `lit` / `dlit` -- `noneOf` -- `oneOf` -- `pass` -- `range` -- `satisfy` -- `string` / `dstring` +- `wordBoundary` +- `startsWith` / `endsWith` +- `entireLine` +- `entirely` ### Combinators Source: [/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/combinators) -- `alt` +- `alt` / `altD` - `check` -- `discard` - `expect` - `maybe` - `not` -- `oneOrMore` / `zeroOrMore` -- `repeat` -- `seq` +- `oneOrMore` / `zeroOrMore` / `oneOrMoreD` / `zeroOrMoreD` +- `repeat` / `repeatD` +- `seq` / `seqD` - `xform` ### Transformers @@ -117,6 +128,7 @@ Source: Syntax sugars for `xform(parser, fn)`: - `collect` +- `discard` - `hoist` - `join` - `print` @@ -125,17 +137,106 @@ Actual transforms: - `comp` - scope transform composition - `xfCollect` +- `xfDiscard` - `xfFloat` - `xfHoist` -- `xfInt` +- `xfInt(radix)` - `xfJoin` - `xfPrint` +## Grammar definition + +Complex parsers can be constructed via +[`defGrammar()`](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/grammar.ts#L228), +which accepts a string of rule definitions in the built-in (and still +WIP) grammar rule definition language, similar to PEGs and regular +expressions: + +Example grammar + +```text +ws: ' '+ => discard ; +sym: [a-z] [a-z0-9_]* => join ; +num: [0-9]+ => int ; +program: ( | | )* ; +``` + +Here, each line is a single parse rule definition, with each rule +consisting of a sequence of one or more: + +- `'x'` - single char literal (also supports `\uXXXX` unicode escapes) +- `"abc"` - mutli-char string +- `[a-z0-9!@]` - regex style char set (incl. char range support) +- `` - rule references (order independent) +- `( term | ... | )` - choice of sub-terms + +Each of these terms can be immediately followed by one of these regexp +style repetition specs: + +- `?` - zero or one occurrence +- `*` - zero or more +- `+` - one or more +- `{min,max}` - min-max repetitions + +Furthermore, each rule can specify an optional rule transform function +which will only be applied after the rule's parser has successfully +completed. The transform is given at the end of a rule, separated by +`=>`. + +Custom transforms can be supplied via an additional arg to +`defGrammar()`. The following default transforms are available by +default (can be overwritten) and correspond to the [above mentioned +transforms](#transformers): + +- `collect` - collect sub terms into array +- `discard` - discard result +- `hoist` - use result of 1st child term only +- `join` - join sub terms into single string +- `float` - parse as floating point number +- `int` - parse as integer +- `hex` - parse as hex int + +```ts +// define language +const lang = defGrammar(` +ws: ' '+ => discard ; +sym: [a-z] [a-z0-9_]* => join ; +num: [0-9]+ => int ; +program: ( | | )* ; +`); + +// define input & parser context +const ctx = defContext("1 2 add 3 mul"); + +// parse & print AST +print(lang.rules.program)(ctx) +// program: null +// num: 1 +// num: 2 +// word: "add" +// num: 3 +// word: "mul" + +// parse result +// true + +ctx.children +// [ +// { id: 'num', state: null, children: null, result: 1 }, +// { id: 'num', state: null, children: null, result: 2 }, +// { id: 'word', state: null, children: null, result: 'add' }, +// { id: 'num', state: null, children: null, result: 3 }, +// { id: 'word', state: null, children: null, result: 'mul' } +// ] +``` + +## Examples + ### SVG path parser example ```ts import { - INT, WS_0, + INT, WS0, alt, oneOf, seq, zeroOrMore, collect, discard, xform, defContext @@ -147,11 +248,11 @@ const wsc = discard(zeroOrMore(oneOf(" ,"))); // svg path parser rules // collect() collects child results in array, then removes children -// INT & WS_0 are preset parsers (see section above) +// INT & WS0 are preset parsers (see section above) const point = collect(seq([INT, wsc, INT])); -const move = collect(seq([oneOf("Mm"), WS_0, point, WS_0])); -const line = collect(seq([oneOf("Ll"), WS_0, point, WS_0])); -const curve = collect(seq([oneOf("Cc"), WS_0, point, wsc, point, wsc, point, WS_0])); +const move = collect(seq([oneOf("Mm"), WS0, point, WS0])); +const line = collect(seq([oneOf("Ll"), WS0, point, WS0])); +const curve = collect(seq([oneOf("Cc"), WS0, point, wsc, point, wsc, point, WS0])); // xform used here to wrap result in array // (to produce same result format as parsers above) const close = xform(oneOf("Zz"), ($) => ($.result = [$.result], $)); @@ -174,7 +275,7 @@ ctx.result ```ts import { - INT, WS_0, + INT, WS0, alt, oneOf, xform, zeroOrMore defContext } from "@thi.ng/parse"; @@ -210,7 +311,7 @@ const op = xform(oneOf(Object.keys(ops)), (scope) => { // parser for complete RPN program, combines above two parsers // and the whitespace preset as alternatives -const program = zeroOrMore(alt([value, op, WS_0])) +const program = zeroOrMore(alt([value, op, WS0])) // prepare parser context (incl. reader) and execute program(defContext("10 5 3 * + -2 * 10 /")); From 853869f84f7f36e6cf8e1d35e3bb761e14423bd0 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 20 Apr 2020 14:53:15 +0100 Subject: [PATCH 46/78] docs(parse): fix branch links --- packages/parse/README.md | 22 +++++++++++----------- packages/parse/package.json | 1 - packages/parse/tpl.readme.md | 14 +++++++------- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/packages/parse/README.md b/packages/parse/README.md index 58d1524dfd..01c96e532d 100644 --- a/packages/parse/README.md +++ b/packages/parse/README.md @@ -60,10 +60,10 @@ Package sizes (gzipped, pre-treeshake): ESM: 4.44 KB / CJS: 4.77 KB / UMD: 4.46 ## Dependencies -- [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/api) -- [@thi.ng/checks](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/checks) -- [@thi.ng/errors](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/errors) -- [@thi.ng/strings](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/strings) +- [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/develop/packages/api) +- [@thi.ng/checks](https://github.com/thi-ng/umbrella/tree/develop/packages/checks) +- [@thi.ng/errors](https://github.com/thi-ng/umbrella/tree/develop/packages/errors) +- [@thi.ng/strings](https://github.com/thi-ng/umbrella/tree/develop/packages/strings) ## API @@ -73,10 +73,10 @@ TODO ### Context & reader creation -- [`defContext`](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/context.ts) +- [`defContext`](https://github.com/thi-ng/umbrella/tree/develop/packages/parse/src/context.ts) Source: -[/readers](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/readers) +[/readers](https://github.com/thi-ng/umbrella/tree/develop/packages/parse/src/readers) - `defArrayReader` - `defStringReader` @@ -84,7 +84,7 @@ Source: ### Presets parsers Source: -[/presets](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/presets) +[/presets](https://github.com/thi-ng/umbrella/tree/develop/packages/parse/src/presets) - `WS` / `WS0` / `WS1` / `NL` / `DNL` / `SPACE` / `SPACES` / `SPACES0` - `ALPHA` / `LOWER_CASE` / `UPPER_CASE` / `ALPHA_NUM` @@ -97,7 +97,7 @@ Source: ### Primitives Source: -[/prims](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/prims) +[/prims](https://github.com/thi-ng/umbrella/tree/develop/packages/parse/src/prims) - `always` - `fail` @@ -124,7 +124,7 @@ Source: ### Combinators Source: -[/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/combinators) +[/combinators](https://github.com/thi-ng/umbrella/tree/develop/packages/parse/src/combinators) - `alt` / `altD` - `check` @@ -139,7 +139,7 @@ Source: ### Transformers Source: -[/xform](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/xform) +[/xform](https://github.com/thi-ng/umbrella/tree/develop/packages/parse/src/xform) Syntax sugars for `xform(parser, fn)`: @@ -163,7 +163,7 @@ Actual transforms: ## Grammar definition Complex parsers can be constructed via -[`defGrammar()`](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/grammar.ts#L228), +[`defGrammar()`](https://github.com/thi-ng/umbrella/tree/develop/packages/parse/src/grammar.ts#L228), which accepts a string of rule definitions in the built-in (and still WIP) grammar rule definition language, similar to PEGs and regular expressions: diff --git a/packages/parse/package.json b/packages/parse/package.json index 2e8be5dfd4..7909998b85 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -69,7 +69,6 @@ }, "sideEffects": false, "thi.ng": { - "branch": "feature/parse", "status": "alpha", "year": 2020 } diff --git a/packages/parse/tpl.readme.md b/packages/parse/tpl.readme.md index ef0c000c52..55ea90f4c9 100644 --- a/packages/parse/tpl.readme.md +++ b/packages/parse/tpl.readme.md @@ -57,10 +57,10 @@ TODO ### Context & reader creation -- [`defContext`](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/context.ts) +- [`defContext`](https://github.com/thi-ng/umbrella/tree/develop/packages/parse/src/context.ts) Source: -[/readers](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/readers) +[/readers](https://github.com/thi-ng/umbrella/tree/develop/packages/parse/src/readers) - `defArrayReader` - `defStringReader` @@ -68,7 +68,7 @@ Source: ### Presets parsers Source: -[/presets](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/presets) +[/presets](https://github.com/thi-ng/umbrella/tree/develop/packages/parse/src/presets) - `WS` / `WS0` / `WS1` / `NL` / `DNL` / `SPACE` / `SPACES` / `SPACES0` - `ALPHA` / `LOWER_CASE` / `UPPER_CASE` / `ALPHA_NUM` @@ -81,7 +81,7 @@ Source: ### Primitives Source: -[/prims](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/prims) +[/prims](https://github.com/thi-ng/umbrella/tree/develop/packages/parse/src/prims) - `always` - `fail` @@ -108,7 +108,7 @@ Source: ### Combinators Source: -[/combinators](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/combinators) +[/combinators](https://github.com/thi-ng/umbrella/tree/develop/packages/parse/src/combinators) - `alt` / `altD` - `check` @@ -123,7 +123,7 @@ Source: ### Transformers Source: -[/xform](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/xform) +[/xform](https://github.com/thi-ng/umbrella/tree/develop/packages/parse/src/xform) Syntax sugars for `xform(parser, fn)`: @@ -147,7 +147,7 @@ Actual transforms: ## Grammar definition Complex parsers can be constructed via -[`defGrammar()`](https://github.com/thi-ng/umbrella/tree/feature/parse/packages/parse/src/grammar.ts#L228), +[`defGrammar()`](https://github.com/thi-ng/umbrella/tree/develop/packages/parse/src/grammar.ts#L228), which accepts a string of rule definitions in the built-in (and still WIP) grammar rule definition language, similar to PEGs and regular expressions: From b67ca9f83f9f94000f5506051793e97dcb6cbc94 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 20 Apr 2020 14:57:21 +0100 Subject: [PATCH 47/78] docs(parse): fix typos --- packages/parse/README.md | 8 ++++---- packages/parse/tpl.readme.md | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/parse/README.md b/packages/parse/README.md index 01c96e532d..358e6bcbbb 100644 --- a/packages/parse/README.md +++ b/packages/parse/README.md @@ -229,9 +229,9 @@ print(lang.rules.program)(ctx) // program: null // num: 1 // num: 2 -// word: "add" +// sym: "add" // num: 3 -// word: "mul" +// sym: "mul" // parse result // true @@ -240,9 +240,9 @@ ctx.children // [ // { id: 'num', state: null, children: null, result: 1 }, // { id: 'num', state: null, children: null, result: 2 }, -// { id: 'word', state: null, children: null, result: 'add' }, +// { id: 'sym', state: null, children: null, result: 'add' }, // { id: 'num', state: null, children: null, result: 3 }, -// { id: 'word', state: null, children: null, result: 'mul' } +// { id: 'sym', state: null, children: null, result: 'mul' } // ] ``` diff --git a/packages/parse/tpl.readme.md b/packages/parse/tpl.readme.md index 55ea90f4c9..bec4575696 100644 --- a/packages/parse/tpl.readme.md +++ b/packages/parse/tpl.readme.md @@ -213,9 +213,9 @@ print(lang.rules.program)(ctx) // program: null // num: 1 // num: 2 -// word: "add" +// sym: "add" // num: 3 -// word: "mul" +// sym: "mul" // parse result // true @@ -224,9 +224,9 @@ ctx.children // [ // { id: 'num', state: null, children: null, result: 1 }, // { id: 'num', state: null, children: null, result: 2 }, -// { id: 'word', state: null, children: null, result: 'add' }, +// { id: 'sym', state: null, children: null, result: 'add' }, // { id: 'num', state: null, children: null, result: 3 }, -// { id: 'word', state: null, children: null, result: 'mul' } +// { id: 'sym', state: null, children: null, result: 'mul' } // ] ``` From 5e40f3e463f964583ceef2988d0bc3f4ecabdd8e Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 20 Apr 2020 15:16:45 +0100 Subject: [PATCH 48/78] docs: update pkg list in main readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 468e3cbc05..18bfb0df5d 100644 --- a/README.md +++ b/README.md @@ -213,6 +213,7 @@ fairly detailed overview for contributors here: | [`@thi.ng/geom-clip-poly`](./packages/geom-clip-poly) | [![version](https://img.shields.io/npm/v/@thi.ng/geom-clip-poly.svg)](https://www.npmjs.com/package/@thi.ng/geom-clip-poly) | [changelog](./packages/geom-clip-poly/CHANGELOG.md) | 2D convex polygon clipping | | [`@thi.ng/geom-closest-point`](./packages/geom-closest-point) | [![version](https://img.shields.io/npm/v/@thi.ng/geom-closest-point.svg)](https://www.npmjs.com/package/@thi.ng/geom-closest-point) | [changelog](./packages/geom-closest-point/CHANGELOG.md) | Closest point helpers | | [`@thi.ng/geom-hull`](./packages/geom-hull) | [![version](https://img.shields.io/npm/v/@thi.ng/geom-hull.svg)](https://www.npmjs.com/package/@thi.ng/geom-hull) | [changelog](./packages/geom-hull/CHANGELOG.md) | 2D convex hull (Graham scan) | +| [`@thi.ng/geom-io-obj`](./packages/geom-io-obj) | [![version](https://img.shields.io/npm/v/@thi.ng/geom-io-obj.svg)](https://www.npmjs.com/package/@thi.ng/geom-io-obj) | [changelog](./packages/geom-io-obj/CHANGELOG.md) | Wavefront OBJ model parser | | [`@thi.ng/geom-isec`](./packages/geom-isec) | [![version](https://img.shields.io/npm/v/@thi.ng/geom-isec.svg)](https://www.npmjs.com/package/@thi.ng/geom-isec) | [changelog](./packages/geom-isec/CHANGELOG.md) | Point & shape intersection tests | | [`@thi.ng/geom-isoline`](./packages/geom-isoline) | [![version](https://img.shields.io/npm/v/@thi.ng/geom-isoline.svg)](https://www.npmjs.com/package/@thi.ng/geom-isoline) | [changelog](./packages/geom-isoline/CHANGELOG.md) | 2D contour line extraction | | [`@thi.ng/geom-poly-utils`](./packages/geom-poly-utils) | [![version](https://img.shields.io/npm/v/@thi.ng/geom-poly-utils.svg)](https://www.npmjs.com/package/@thi.ng/geom-poly-utils) | [changelog](./packages/geom-poly-utils/CHANGELOG.md) | 2D polygon helpers | From 4ec4361346c3c4a5552148955a6412aa1ed8f4bc Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 20 Apr 2020 15:18:06 +0100 Subject: [PATCH 49/78] Publish - @thi.ng/adjacency@0.1.38 - @thi.ng/associative@4.0.4 - @thi.ng/bencode@0.3.19 - @thi.ng/bitfield@0.3.5 - @thi.ng/cache@1.0.39 - @thi.ng/color@1.1.15 - @thi.ng/csp@1.1.19 - @thi.ng/dcons@2.2.12 - @thi.ng/dgraph-dot@0.1.4 - @thi.ng/dgraph@1.2.4 - @thi.ng/dsp-io-wav@0.1.9 - @thi.ng/dsp@2.0.11 - @thi.ng/ecs@0.3.11 - @thi.ng/fsm@2.4.5 - @thi.ng/geom-accel@2.0.11 - @thi.ng/geom-api@1.0.11 - @thi.ng/geom-arc@0.2.22 - @thi.ng/geom-clip-line@1.0.9 - @thi.ng/geom-clip-poly@1.0.9 - @thi.ng/geom-closest-point@0.3.22 - @thi.ng/geom-hull@0.0.42 - @thi.ng/geom-io-obj@0.1.0 - @thi.ng/geom-isec@0.4.11 - @thi.ng/geom-isoline@0.1.40 - @thi.ng/geom-poly-utils@0.1.40 - @thi.ng/geom-resample@0.2.22 - @thi.ng/geom-splines@0.5.9 - @thi.ng/geom-subdiv-curve@0.1.39 - @thi.ng/geom-tessellate@0.2.22 - @thi.ng/geom-voronoi@0.1.40 - @thi.ng/geom@1.8.10 - @thi.ng/gp@0.1.12 - @thi.ng/grid-iterators@0.3.9 - @thi.ng/hdom-canvas@2.4.15 - @thi.ng/hdom-components@3.2.5 - @thi.ng/hiccup-css@1.1.19 - @thi.ng/hiccup-markdown@1.2.5 - @thi.ng/hiccup-svg@3.4.12 - @thi.ng/iges@1.1.24 - @thi.ng/imgui@0.2.10 - @thi.ng/iterators@5.1.19 - @thi.ng/leb128@1.0.13 - @thi.ng/lsys@0.2.37 - @thi.ng/matrices@0.6.9 - @thi.ng/parse@0.3.0 - @thi.ng/poisson@1.0.11 - @thi.ng/ramp@0.1.11 - @thi.ng/range-coder@1.0.39 - @thi.ng/rstream-csp@2.0.13 - @thi.ng/rstream-dot@1.1.20 - @thi.ng/rstream-gestures@2.0.12 - @thi.ng/rstream-graph@3.2.13 - @thi.ng/rstream-log-file@0.1.35 - @thi.ng/rstream-log@3.1.20 - @thi.ng/rstream-query@1.1.20 - @thi.ng/rstream@4.0.5 - @thi.ng/sax@1.1.19 - @thi.ng/scenegraph@0.1.12 - @thi.ng/shader-ast-glsl@0.1.22 - @thi.ng/shader-ast-js@0.4.15 - @thi.ng/shader-ast-stdlib@0.3.15 - @thi.ng/shader-ast@0.3.16 - @thi.ng/simd@0.1.13 - @thi.ng/soa@0.1.13 - @thi.ng/sparse@0.1.35 - @thi.ng/strings@1.8.4 - @thi.ng/system@0.2.4 - @thi.ng/text-canvas@0.2.6 - @thi.ng/transducers-binary@0.5.9 - @thi.ng/transducers-fsm@1.1.19 - @thi.ng/transducers-hdom@2.0.46 - @thi.ng/transducers-patch@0.1.9 - @thi.ng/transducers-stats@1.1.19 - @thi.ng/transducers@6.4.6 - @thi.ng/vector-pools@1.0.22 - @thi.ng/vectors@4.2.6 - @thi.ng/webgl-msdf@0.1.24 - @thi.ng/webgl-shadertoy@0.2.11 - @thi.ng/webgl@1.0.6 --- packages/adjacency/CHANGELOG.md | 8 ++++++ packages/adjacency/package.json | 10 +++---- packages/associative/CHANGELOG.md | 8 ++++++ packages/associative/package.json | 6 ++--- packages/bencode/CHANGELOG.md | 8 ++++++ packages/bencode/package.json | 6 ++--- packages/bitfield/CHANGELOG.md | 8 ++++++ packages/bitfield/package.json | 4 +-- packages/cache/CHANGELOG.md | 8 ++++++ packages/cache/package.json | 6 ++--- packages/color/CHANGELOG.md | 8 ++++++ packages/color/package.json | 8 +++--- packages/csp/CHANGELOG.md | 8 ++++++ packages/csp/package.json | 6 ++--- packages/dcons/CHANGELOG.md | 8 ++++++ packages/dcons/package.json | 4 +-- packages/dgraph-dot/CHANGELOG.md | 8 ++++++ packages/dgraph-dot/package.json | 4 +-- packages/dgraph/CHANGELOG.md | 8 ++++++ packages/dgraph/package.json | 6 ++--- packages/dsp-io-wav/CHANGELOG.md | 8 ++++++ packages/dsp-io-wav/package.json | 6 ++--- packages/dsp/CHANGELOG.md | 8 ++++++ packages/dsp/package.json | 4 +-- packages/ecs/CHANGELOG.md | 8 ++++++ packages/ecs/package.json | 8 +++--- packages/fsm/CHANGELOG.md | 8 ++++++ packages/fsm/package.json | 6 ++--- packages/geom-accel/CHANGELOG.md | 8 ++++++ packages/geom-accel/package.json | 10 +++---- packages/geom-api/CHANGELOG.md | 8 ++++++ packages/geom-api/package.json | 4 +-- packages/geom-arc/CHANGELOG.md | 8 ++++++ packages/geom-arc/package.json | 8 +++--- packages/geom-clip-line/CHANGELOG.md | 8 ++++++ packages/geom-clip-line/package.json | 4 +-- packages/geom-clip-poly/CHANGELOG.md | 8 ++++++ packages/geom-clip-poly/package.json | 8 +++--- packages/geom-closest-point/CHANGELOG.md | 8 ++++++ packages/geom-closest-point/package.json | 4 +-- packages/geom-hull/CHANGELOG.md | 8 ++++++ packages/geom-hull/package.json | 4 +-- packages/geom-io-obj/CHANGELOG.md | 12 +++++++++ packages/geom-io-obj/package.json | 4 +-- packages/geom-isec/CHANGELOG.md | 8 ++++++ packages/geom-isec/package.json | 8 +++--- packages/geom-isoline/CHANGELOG.md | 8 ++++++ packages/geom-isoline/package.json | 6 ++--- packages/geom-poly-utils/CHANGELOG.md | 8 ++++++ packages/geom-poly-utils/package.json | 6 ++--- packages/geom-resample/CHANGELOG.md | 8 ++++++ packages/geom-resample/package.json | 8 +++--- packages/geom-splines/CHANGELOG.md | 8 ++++++ packages/geom-splines/package.json | 10 +++---- packages/geom-subdiv-curve/CHANGELOG.md | 8 ++++++ packages/geom-subdiv-curve/package.json | 8 +++--- packages/geom-tessellate/CHANGELOG.md | 8 ++++++ packages/geom-tessellate/package.json | 12 ++++----- packages/geom-voronoi/CHANGELOG.md | 8 ++++++ packages/geom-voronoi/package.json | 12 ++++----- packages/geom/CHANGELOG.md | 8 ++++++ packages/geom/package.json | 34 ++++++++++++------------ packages/gp/CHANGELOG.md | 8 ++++++ packages/gp/package.json | 4 +-- packages/grid-iterators/CHANGELOG.md | 8 ++++++ packages/grid-iterators/package.json | 4 +-- packages/hdom-canvas/CHANGELOG.md | 8 ++++++ packages/hdom-canvas/package.json | 6 ++--- packages/hdom-components/CHANGELOG.md | 8 ++++++ packages/hdom-components/package.json | 6 ++--- packages/hiccup-css/CHANGELOG.md | 8 ++++++ packages/hiccup-css/package.json | 4 +-- packages/hiccup-markdown/CHANGELOG.md | 8 ++++++ packages/hiccup-markdown/package.json | 10 +++---- packages/hiccup-svg/CHANGELOG.md | 8 ++++++ packages/hiccup-svg/package.json | 4 +-- packages/iges/CHANGELOG.md | 8 ++++++ packages/iges/package.json | 8 +++--- packages/imgui/CHANGELOG.md | 8 ++++++ packages/imgui/package.json | 14 +++++----- packages/iterators/CHANGELOG.md | 8 ++++++ packages/iterators/package.json | 4 +-- packages/leb128/CHANGELOG.md | 8 ++++++ packages/leb128/package.json | 4 +-- packages/lsys/CHANGELOG.md | 8 ++++++ packages/lsys/package.json | 6 ++--- packages/matrices/CHANGELOG.md | 8 ++++++ packages/matrices/package.json | 4 +-- packages/parse/CHANGELOG.md | 23 ++++++++++++++++ packages/parse/package.json | 4 +-- packages/poisson/CHANGELOG.md | 8 ++++++ packages/poisson/package.json | 6 ++--- packages/ramp/CHANGELOG.md | 8 ++++++ packages/ramp/package.json | 6 ++--- packages/range-coder/CHANGELOG.md | 8 ++++++ packages/range-coder/package.json | 4 +-- 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 | 8 ++++++ packages/rstream-gestures/package.json | 6 ++--- packages/rstream-graph/CHANGELOG.md | 8 ++++++ packages/rstream-graph/package.json | 6 ++--- 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 | 6 ++--- packages/rstream-query/CHANGELOG.md | 8 ++++++ packages/rstream-query/package.json | 10 +++---- packages/rstream/CHANGELOG.md | 8 ++++++ packages/rstream/package.json | 6 ++--- packages/sax/CHANGELOG.md | 8 ++++++ packages/sax/package.json | 6 ++--- packages/scenegraph/CHANGELOG.md | 8 ++++++ packages/scenegraph/package.json | 6 ++--- packages/shader-ast-glsl/CHANGELOG.md | 8 ++++++ packages/shader-ast-glsl/package.json | 4 +-- packages/shader-ast-js/CHANGELOG.md | 8 ++++++ packages/shader-ast-js/package.json | 8 +++--- packages/shader-ast-stdlib/CHANGELOG.md | 8 ++++++ packages/shader-ast-stdlib/package.json | 4 +-- packages/shader-ast/CHANGELOG.md | 8 ++++++ packages/shader-ast/package.json | 4 +-- packages/simd/CHANGELOG.md | 8 ++++++ packages/simd/package.json | 6 ++--- packages/soa/CHANGELOG.md | 8 ++++++ packages/soa/package.json | 6 ++--- packages/sparse/CHANGELOG.md | 8 ++++++ packages/sparse/package.json | 4 +-- packages/strings/CHANGELOG.md | 8 ++++++ packages/strings/package.json | 2 +- packages/system/CHANGELOG.md | 8 ++++++ packages/system/package.json | 4 +-- packages/text-canvas/CHANGELOG.md | 8 ++++++ packages/text-canvas/package.json | 6 ++--- packages/transducers-binary/CHANGELOG.md | 8 ++++++ packages/transducers-binary/package.json | 6 ++--- packages/transducers-fsm/CHANGELOG.md | 8 ++++++ packages/transducers-fsm/package.json | 4 +-- packages/transducers-hdom/CHANGELOG.md | 8 ++++++ packages/transducers-hdom/package.json | 4 +-- packages/transducers-patch/CHANGELOG.md | 8 ++++++ packages/transducers-patch/package.json | 4 +-- packages/transducers-stats/CHANGELOG.md | 8 ++++++ packages/transducers-stats/package.json | 6 ++--- packages/transducers/CHANGELOG.md | 8 ++++++ packages/transducers/package.json | 4 +-- packages/vector-pools/CHANGELOG.md | 8 ++++++ packages/vector-pools/package.json | 6 ++--- packages/vectors/CHANGELOG.md | 8 ++++++ packages/vectors/package.json | 4 +-- packages/webgl-msdf/CHANGELOG.md | 8 ++++++ packages/webgl-msdf/package.json | 12 ++++----- packages/webgl-shadertoy/CHANGELOG.md | 8 ++++++ packages/webgl-shadertoy/package.json | 10 +++---- packages/webgl/CHANGELOG.md | 8 ++++++ packages/webgl/package.json | 18 ++++++------- 158 files changed, 910 insertions(+), 259 deletions(-) create mode 100644 packages/geom-io-obj/CHANGELOG.md diff --git a/packages/adjacency/CHANGELOG.md b/packages/adjacency/CHANGELOG.md index b4a95fa5f2..6e9c5dac32 100644 --- a/packages/adjacency/CHANGELOG.md +++ b/packages/adjacency/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.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.37...@thi.ng/adjacency@0.1.38) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/adjacency + + + + + ## [0.1.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.36...@thi.ng/adjacency@0.1.37) (2020-04-11) **Note:** Version bump only for package @thi.ng/adjacency diff --git a/packages/adjacency/package.json b/packages/adjacency/package.json index 96e197f92b..7ad4c15392 100644 --- a/packages/adjacency/package.json +++ b/packages/adjacency/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/adjacency", - "version": "0.1.37", + "version": "0.1.38", "description": "Sparse & bitwise adjacency matrices and related functions for directed & undirected graphs", "module": "./index.js", "main": "./lib/index.js", @@ -29,7 +29,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.7.8", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "@types/mocha": "^7.0.1", "@types/node": "^13.7.4", "mocha": "^7.1.1", @@ -41,10 +41,10 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/binary": "^2.0.3", - "@thi.ng/bitfield": "^0.3.4", + "@thi.ng/bitfield": "^0.3.5", "@thi.ng/checks": "^2.6.2", - "@thi.ng/dcons": "^2.2.11", - "@thi.ng/sparse": "^0.1.34", + "@thi.ng/dcons": "^2.2.12", + "@thi.ng/sparse": "^0.1.35", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/associative/CHANGELOG.md b/packages/associative/CHANGELOG.md index 2e7d922d7f..ccbac79069 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. +## [4.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@4.0.3...@thi.ng/associative@4.0.4) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/associative + + + + + ## [4.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@4.0.2...@thi.ng/associative@4.0.3) (2020-04-11) **Note:** Version bump only for package @thi.ng/associative diff --git a/packages/associative/package.json b/packages/associative/package.json index 94d6d24957..04b7fea9f0 100644 --- a/packages/associative/package.json +++ b/packages/associative/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/associative", - "version": "4.0.3", + "version": "4.0.4", "description": "Alternative Map and Set implementations with customizable equality semantics & supporting operations", "module": "./index.js", "main": "./lib/index.js", @@ -42,10 +42,10 @@ "@thi.ng/binary": "^2.0.3", "@thi.ng/checks": "^2.6.2", "@thi.ng/compare": "^1.3.2", - "@thi.ng/dcons": "^2.2.11", + "@thi.ng/dcons": "^2.2.12", "@thi.ng/equiv": "^1.0.19", "@thi.ng/errors": "^1.2.10", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/bencode/CHANGELOG.md b/packages/bencode/CHANGELOG.md index 42c84edbda..47dcfcafce 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.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.18...@thi.ng/bencode@0.3.19) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/bencode + + + + + ## [0.3.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.17...@thi.ng/bencode@0.3.18) (2020-04-11) **Note:** Version bump only for package @thi.ng/bencode diff --git a/packages/bencode/package.json b/packages/bencode/package.json index 51904025df..d814f3abbb 100644 --- a/packages/bencode/package.json +++ b/packages/bencode/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bencode", - "version": "0.3.18", + "version": "0.3.19", "description": "Bencode binary encoder / decoder with optional UTF8 encoding & floating point support", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "@thi.ng/checks": "^2.6.2", "@thi.ng/defmulti": "^1.2.11", "@thi.ng/errors": "^1.2.10", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/transducers-binary": "^0.5.8", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/transducers-binary": "^0.5.9", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/bitfield/CHANGELOG.md b/packages/bitfield/CHANGELOG.md index 633c8569f3..5a062944d4 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.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.4...@thi.ng/bitfield@0.3.5) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/bitfield + + + + + ## [0.3.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.3...@thi.ng/bitfield@0.3.4) (2020-04-11) **Note:** Version bump only for package @thi.ng/bitfield diff --git a/packages/bitfield/package.json b/packages/bitfield/package.json index 61ab40df4b..3f118afed3 100644 --- a/packages/bitfield/package.json +++ b/packages/bitfield/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bitfield", - "version": "0.3.4", + "version": "0.3.5", "description": "1D / 2D bit field implementations", "module": "./index.js", "main": "./lib/index.js", @@ -40,7 +40,7 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/binary": "^2.0.3", - "@thi.ng/strings": "^1.8.3", + "@thi.ng/strings": "^1.8.4", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/cache/CHANGELOG.md b/packages/cache/CHANGELOG.md index f62f2b3706..e1624fe932 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.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.38...@thi.ng/cache@1.0.39) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/cache + + + + + ## [1.0.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.37...@thi.ng/cache@1.0.38) (2020-04-11) **Note:** Version bump only for package @thi.ng/cache diff --git a/packages/cache/package.json b/packages/cache/package.json index 1027029ac7..586e48e17d 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/cache", - "version": "1.0.38", + "version": "1.0.39", "description": "In-memory cache implementations with ES6 Map-like API and different eviction strategies", "module": "./index.js", "main": "./lib/index.js", @@ -39,8 +39,8 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/dcons": "^2.2.11", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/dcons": "^2.2.12", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/color/CHANGELOG.md b/packages/color/CHANGELOG.md index 7975d497f9..902c4f42b0 100644 --- a/packages/color/CHANGELOG.md +++ b/packages/color/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.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.1.14...@thi.ng/color@1.1.15) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/color + + + + + ## [1.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.1.13...@thi.ng/color@1.1.14) (2020-04-11) **Note:** Version bump only for package @thi.ng/color diff --git a/packages/color/package.json b/packages/color/package.json index e51a5d7aa7..6af7203eea 100644 --- a/packages/color/package.json +++ b/packages/color/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/color", - "version": "1.1.14", + "version": "1.1.15", "description": "Array-based color ops, conversions, multi-color gradients, presets", "module": "./index.js", "main": "./lib/index.js", @@ -44,9 +44,9 @@ "@thi.ng/defmulti": "^1.2.11", "@thi.ng/errors": "^1.2.10", "@thi.ng/math": "^1.7.6", - "@thi.ng/strings": "^1.8.3", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/strings": "^1.8.4", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/csp/CHANGELOG.md b/packages/csp/CHANGELOG.md index 1fa2b0185c..acdd3e7678 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.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.18...@thi.ng/csp@1.1.19) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/csp + + + + + ## [1.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.17...@thi.ng/csp@1.1.18) (2020-04-11) **Note:** Version bump only for package @thi.ng/csp diff --git a/packages/csp/package.json b/packages/csp/package.json index 1f778f2aa7..78e464b477 100644 --- a/packages/csp/package.json +++ b/packages/csp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/csp", - "version": "1.1.18", + "version": "1.1.19", "description": "ES6 promise based CSP primitives & operations", "module": "./index.js", "main": "./lib/index.js", @@ -45,9 +45,9 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/arrays": "^0.6.3", "@thi.ng/checks": "^2.6.2", - "@thi.ng/dcons": "^2.2.11", + "@thi.ng/dcons": "^2.2.12", "@thi.ng/errors": "^1.2.10", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/dcons/CHANGELOG.md b/packages/dcons/CHANGELOG.md index 425da8a357..d0dd5e18ac 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.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.2.11...@thi.ng/dcons@2.2.12) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/dcons + + + + + ## [2.2.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.2.10...@thi.ng/dcons@2.2.11) (2020-04-11) **Note:** Version bump only for package @thi.ng/dcons diff --git a/packages/dcons/package.json b/packages/dcons/package.json index 96413e5695..5254b2e756 100644 --- a/packages/dcons/package.json +++ b/packages/dcons/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dcons", - "version": "2.2.11", + "version": "2.2.12", "description": "Double-linked list with comprehensive set of operations", "module": "./index.js", "main": "./lib/index.js", @@ -44,7 +44,7 @@ "@thi.ng/equiv": "^1.0.19", "@thi.ng/errors": "^1.2.10", "@thi.ng/random": "^1.4.5", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/dgraph-dot/CHANGELOG.md b/packages/dgraph-dot/CHANGELOG.md index cf3df9ab3b..55da8d4932 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.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.3...@thi.ng/dgraph-dot@0.1.4) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/dgraph-dot + + + + + ## [0.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.2...@thi.ng/dgraph-dot@0.1.3) (2020-04-11) **Note:** Version bump only for package @thi.ng/dgraph-dot diff --git a/packages/dgraph-dot/package.json b/packages/dgraph-dot/package.json index 5008c27fbd..de43cfd20a 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.3", + "version": "0.1.4", "description": "Customizable Graphviz DOT serialization for @thi.ng/dgraph", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/dgraph": "^1.2.3", + "@thi.ng/dgraph": "^1.2.4", "@thi.ng/dot": "^1.2.3" }, "files": [ diff --git a/packages/dgraph/CHANGELOG.md b/packages/dgraph/CHANGELOG.md index 9b2086edcd..2bb68bad72 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.2.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.2.3...@thi.ng/dgraph@1.2.4) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/dgraph + + + + + ## [1.2.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.2.2...@thi.ng/dgraph@1.2.3) (2020-04-11) **Note:** Version bump only for package @thi.ng/dgraph diff --git a/packages/dgraph/package.json b/packages/dgraph/package.json index fef221b8d3..b0952e20dd 100644 --- a/packages/dgraph/package.json +++ b/packages/dgraph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dgraph", - "version": "1.2.3", + "version": "1.2.4", "description": "Type-agnostic directed acyclic graph (DAG) & graph operations", "module": "./index.js", "main": "./lib/index.js", @@ -39,10 +39,10 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/associative": "^4.0.3", + "@thi.ng/associative": "^4.0.4", "@thi.ng/equiv": "^1.0.19", "@thi.ng/errors": "^1.2.10", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/dsp-io-wav/CHANGELOG.md b/packages/dsp-io-wav/CHANGELOG.md index 6c3fa1e20a..6bd3ea30c5 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.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.8...@thi.ng/dsp-io-wav@0.1.9) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/dsp-io-wav + + + + + ## [0.1.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.7...@thi.ng/dsp-io-wav@0.1.8) (2020-04-11) **Note:** Version bump only for package @thi.ng/dsp-io-wav diff --git a/packages/dsp-io-wav/package.json b/packages/dsp-io-wav/package.json index 6d104a24b7..f73f8c85a9 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.8", + "version": "0.1.9", "description": "WAV file format generation", "module": "./index.js", "main": "./lib/index.js", @@ -40,8 +40,8 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/binary": "^2.0.3", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/transducers-binary": "^0.5.8", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/transducers-binary": "^0.5.9", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/dsp/CHANGELOG.md b/packages/dsp/CHANGELOG.md index 1087ac8fd1..1cc15f7a9f 100644 --- a/packages/dsp/CHANGELOG.md +++ b/packages/dsp/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.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.0.10...@thi.ng/dsp@2.0.11) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/dsp + + + + + ## [2.0.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.0.9...@thi.ng/dsp@2.0.10) (2020-04-11) **Note:** Version bump only for package @thi.ng/dsp diff --git a/packages/dsp/package.json b/packages/dsp/package.json index 14593f9189..a5e6437b59 100644 --- a/packages/dsp/package.json +++ b/packages/dsp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dsp", - "version": "2.0.10", + "version": "2.0.11", "description": "Composable signal generators, oscillators, filters, FFT, spectrum, windowing & related DSP utils", "module": "./index.js", "main": "./lib/index.js", @@ -41,7 +41,7 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", "@thi.ng/math": "^1.7.6", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/ecs/CHANGELOG.md b/packages/ecs/CHANGELOG.md index c3e259af4c..d4f62df15c 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.3.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.3.10...@thi.ng/ecs@0.3.11) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/ecs + + + + + ## [0.3.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.3.9...@thi.ng/ecs@0.3.10) (2020-04-11) **Note:** Version bump only for package @thi.ng/ecs diff --git a/packages/ecs/package.json b/packages/ecs/package.json index fca7d8e18c..b61b06ee2e 100644 --- a/packages/ecs/package.json +++ b/packages/ecs/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/ecs", - "version": "0.3.10", + "version": "0.3.11", "description": "Entity Component System based around typed arrays & sparse sets", "module": "./index.js", "main": "./lib/index.js", @@ -40,12 +40,12 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/associative": "^4.0.3", + "@thi.ng/associative": "^4.0.4", "@thi.ng/binary": "^2.0.3", "@thi.ng/checks": "^2.6.2", - "@thi.ng/dcons": "^2.2.11", + "@thi.ng/dcons": "^2.2.12", "@thi.ng/idgen": "^0.2.9", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/fsm/CHANGELOG.md b/packages/fsm/CHANGELOG.md index f3951c49b9..f1e1d41ff5 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.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.4...@thi.ng/fsm@2.4.5) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/fsm + + + + + ## [2.4.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.3...@thi.ng/fsm@2.4.4) (2020-04-11) **Note:** Version bump only for package @thi.ng/fsm diff --git a/packages/fsm/package.json b/packages/fsm/package.json index c375bd53be..b754f76188 100644 --- a/packages/fsm/package.json +++ b/packages/fsm/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/fsm", - "version": "2.4.4", + "version": "2.4.5", "description": "Composable primitives for building declarative, transducer based Finite-State Machines & matchers for arbitrary data streams", "module": "./index.js", "main": "./lib/index.js", @@ -42,8 +42,8 @@ "@thi.ng/arrays": "^0.6.3", "@thi.ng/equiv": "^1.0.19", "@thi.ng/errors": "^1.2.10", - "@thi.ng/strings": "^1.8.3", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/strings": "^1.8.4", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-accel/CHANGELOG.md b/packages/geom-accel/CHANGELOG.md index 5e7dcbd7d2..dfb5f25969 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.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.0.10...@thi.ng/geom-accel@2.0.11) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-accel + + + + + ## [2.0.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.0.9...@thi.ng/geom-accel@2.0.10) (2020-04-11) **Note:** Version bump only for package @thi.ng/geom-accel diff --git a/packages/geom-accel/package.json b/packages/geom-accel/package.json index b749d0b14d..3317677c65 100644 --- a/packages/geom-accel/package.json +++ b/packages/geom-accel/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-accel", - "version": "2.0.10", + "version": "2.0.11", "description": "n-D spatial indexing data structures", "module": "./index.js", "main": "./lib/index.js", @@ -42,12 +42,12 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/arrays": "^0.6.3", "@thi.ng/equiv": "^1.0.19", - "@thi.ng/geom-api": "^1.0.10", - "@thi.ng/geom-isec": "^0.4.10", + "@thi.ng/geom-api": "^1.0.11", + "@thi.ng/geom-isec": "^0.4.11", "@thi.ng/heaps": "^1.2.10", "@thi.ng/math": "^1.7.6", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-api/CHANGELOG.md b/packages/geom-api/CHANGELOG.md index 3737753047..8636e6da39 100644 --- a/packages/geom-api/CHANGELOG.md +++ b/packages/geom-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. +## [1.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.10...@thi.ng/geom-api@1.0.11) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-api + + + + + ## [1.0.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.9...@thi.ng/geom-api@1.0.10) (2020-04-11) **Note:** Version bump only for package @thi.ng/geom-api diff --git a/packages/geom-api/package.json b/packages/geom-api/package.json index 1571bdbc25..01fa1311c7 100644 --- a/packages/geom-api/package.json +++ b/packages/geom-api/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-api", - "version": "1.0.10", + "version": "1.0.11", "description": "Shared type & interface declarations for @thi.ng/geom packages", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-arc/CHANGELOG.md b/packages/geom-arc/CHANGELOG.md index 2c65b57000..86349ae7da 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.2.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.2.21...@thi.ng/geom-arc@0.2.22) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-arc + + + + + ## [0.2.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.2.20...@thi.ng/geom-arc@0.2.21) (2020-04-11) **Note:** Version bump only for package @thi.ng/geom-arc diff --git a/packages/geom-arc/package.json b/packages/geom-arc/package.json index 50bd502653..1463edf8c1 100644 --- a/packages/geom-arc/package.json +++ b/packages/geom-arc/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-arc", - "version": "0.2.21", + "version": "0.2.22", "description": "2D circular / elliptic arc operations", "module": "./index.js", "main": "./lib/index.js", @@ -39,10 +39,10 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.10", - "@thi.ng/geom-resample": "^0.2.21", + "@thi.ng/geom-api": "^1.0.11", + "@thi.ng/geom-resample": "^0.2.22", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-clip-line/CHANGELOG.md b/packages/geom-clip-line/CHANGELOG.md index 0115434441..b322f1020d 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.0.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.0.8...@thi.ng/geom-clip-line@1.0.9) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-clip-line + + + + + ## [1.0.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.0.7...@thi.ng/geom-clip-line@1.0.8) (2020-04-11) **Note:** Version bump only for package @thi.ng/geom-clip-line diff --git a/packages/geom-clip-line/package.json b/packages/geom-clip-line/package.json index 707c135b30..ce5a9d7d89 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.0.8", + "version": "1.0.9", "description": "2D line clipping (Liang-Barsky)", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-clip-poly/CHANGELOG.md b/packages/geom-clip-poly/CHANGELOG.md index e39c873b93..95ca1a11d3 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.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.8...@thi.ng/geom-clip-poly@1.0.9) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-clip-poly + + + + + ## [1.0.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.7...@thi.ng/geom-clip-poly@1.0.8) (2020-04-11) **Note:** Version bump only for package @thi.ng/geom-clip-poly diff --git a/packages/geom-clip-poly/package.json b/packages/geom-clip-poly/package.json index 6cc330444e..3f07e93bf7 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.8", + "version": "1.0.9", "description": "2D convex polygon clipping (Sutherland-Hodgeman)", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/geom-isec": "^0.4.10", - "@thi.ng/geom-poly-utils": "^0.1.39", + "@thi.ng/geom-isec": "^0.4.11", + "@thi.ng/geom-poly-utils": "^0.1.40", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-closest-point/CHANGELOG.md b/packages/geom-closest-point/CHANGELOG.md index ae66c2be5a..6fe699fc39 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.3.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.3.21...@thi.ng/geom-closest-point@0.3.22) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-closest-point + + + + + ## [0.3.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.3.20...@thi.ng/geom-closest-point@0.3.21) (2020-04-11) **Note:** Version bump only for package @thi.ng/geom-closest-point diff --git a/packages/geom-closest-point/package.json b/packages/geom-closest-point/package.json index a07a1c9f9b..03ed217343 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.3.21", + "version": "0.3.22", "description": "2D / 3D closest point / proximity helpers", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-hull/CHANGELOG.md b/packages/geom-hull/CHANGELOG.md index ec7d6c6e25..168c080904 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.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.41...@thi.ng/geom-hull@0.0.42) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-hull + + + + + ## [0.0.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.40...@thi.ng/geom-hull@0.0.41) (2020-04-11) **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 267ac69d15..65381c9b68 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.41", + "version": "0.0.42", "description": "Fast 2D convex hull (Graham Scan)", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-io-obj/CHANGELOG.md b/packages/geom-io-obj/CHANGELOG.md new file mode 100644 index 0000000000..bd1623f335 --- /dev/null +++ b/packages/geom-io-obj/CHANGELOG.md @@ -0,0 +1,12 @@ +# 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-04-20) + + +### Features + +* **geom-io-obj:** add more opts, tessellator, tests ([ea65418](https://github.com/thi-ng/umbrella/commit/ea6541847975846080a905b06e24c717fc648a84)) +* **geom-io-obj:** import as new pkg ([2708bbf](https://github.com/thi-ng/umbrella/commit/2708bbfee138be06c71c8eb84996c533bdbba8e2)) diff --git a/packages/geom-io-obj/package.json b/packages/geom-io-obj/package.json index 53951f2d5d..2d2960d109 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.0.1", + "version": "0.1.0", "description": "Wavefront OBJ parser (& exporter soon)", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/vectors": "^4.2.5" + "@thi.ng/vectors": "^4.2.6" }, "files": [ "*.js", diff --git a/packages/geom-isec/CHANGELOG.md b/packages/geom-isec/CHANGELOG.md index 4336770aef..d33eb410de 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.4.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.4.10...@thi.ng/geom-isec@0.4.11) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-isec + + + + + ## [0.4.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.4.9...@thi.ng/geom-isec@0.4.10) (2020-04-11) **Note:** Version bump only for package @thi.ng/geom-isec diff --git a/packages/geom-isec/package.json b/packages/geom-isec/package.json index 7924f635eb..dc62100453 100644 --- a/packages/geom-isec/package.json +++ b/packages/geom-isec/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-isec", - "version": "0.4.10", + "version": "0.4.11", "description": "2D/3D shape intersection checks", "module": "./index.js", "main": "./lib/index.js", @@ -39,10 +39,10 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/geom-api": "^1.0.10", - "@thi.ng/geom-closest-point": "^0.3.21", + "@thi.ng/geom-api": "^1.0.11", + "@thi.ng/geom-closest-point": "^0.3.22", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-isoline/CHANGELOG.md b/packages/geom-isoline/CHANGELOG.md index ab979fe120..739d061c0c 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.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.39...@thi.ng/geom-isoline@0.1.40) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-isoline + + + + + ## [0.1.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.38...@thi.ng/geom-isoline@0.1.39) (2020-04-11) **Note:** Version bump only for package @thi.ng/geom-isoline diff --git a/packages/geom-isoline/package.json b/packages/geom-isoline/package.json index b63b522266..6b0476cfb0 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.39", + "version": "0.1.40", "description": "Fast 2D contour line extraction / generation", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-poly-utils/CHANGELOG.md b/packages/geom-poly-utils/CHANGELOG.md index b17229a98a..050e8208d7 100644 --- a/packages/geom-poly-utils/CHANGELOG.md +++ b/packages/geom-poly-utils/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/geom-poly-utils@0.1.39...@thi.ng/geom-poly-utils@0.1.40) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-poly-utils + + + + + ## [0.1.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.38...@thi.ng/geom-poly-utils@0.1.39) (2020-04-11) **Note:** Version bump only for package @thi.ng/geom-poly-utils diff --git a/packages/geom-poly-utils/package.json b/packages/geom-poly-utils/package.json index 7749b88863..ce1930a043 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.1.39", + "version": "0.1.40", "description": "2D polygon / triangle analysis & processing utilities", "module": "./index.js", "main": "./lib/index.js", @@ -39,9 +39,9 @@ }, "dependencies": { "@thi.ng/errors": "^1.2.10", - "@thi.ng/geom-api": "^1.0.10", + "@thi.ng/geom-api": "^1.0.11", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-resample/CHANGELOG.md b/packages/geom-resample/CHANGELOG.md index 55cbe77610..1a4c7f5296 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.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.21...@thi.ng/geom-resample@0.2.22) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-resample + + + + + ## [0.2.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.20...@thi.ng/geom-resample@0.2.21) (2020-04-11) **Note:** Version bump only for package @thi.ng/geom-resample diff --git a/packages/geom-resample/package.json b/packages/geom-resample/package.json index e5210c6b31..2be47ccfa3 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.21", + "version": "0.2.22", "description": "Customizable nD polyline interpolation, re-sampling, splitting & nearest point computation", "module": "./index.js", "main": "./lib/index.js", @@ -39,10 +39,10 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.10", - "@thi.ng/geom-closest-point": "^0.3.21", + "@thi.ng/geom-api": "^1.0.11", + "@thi.ng/geom-closest-point": "^0.3.22", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-splines/CHANGELOG.md b/packages/geom-splines/CHANGELOG.md index 6fb881496d..2adfd5cb8d 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.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.8...@thi.ng/geom-splines@0.5.9) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-splines + + + + + ## [0.5.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.7...@thi.ng/geom-splines@0.5.8) (2020-04-11) **Note:** Version bump only for package @thi.ng/geom-splines diff --git a/packages/geom-splines/package.json b/packages/geom-splines/package.json index 5232746750..cea9d71847 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.8", + "version": "0.5.9", "description": "nD cubic & quadratic curve analysis, conversion, interpolation, splitting", "module": "./index.js", "main": "./lib/index.js", @@ -39,11 +39,11 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.10", - "@thi.ng/geom-arc": "^0.2.21", - "@thi.ng/geom-resample": "^0.2.21", + "@thi.ng/geom-api": "^1.0.11", + "@thi.ng/geom-arc": "^0.2.22", + "@thi.ng/geom-resample": "^0.2.22", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-subdiv-curve/CHANGELOG.md b/packages/geom-subdiv-curve/CHANGELOG.md index bf795ea8ed..08912b7957 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.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.38...@thi.ng/geom-subdiv-curve@0.1.39) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-subdiv-curve + + + + + ## [0.1.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.37...@thi.ng/geom-subdiv-curve@0.1.38) (2020-04-11) **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 7697e92f39..30437204f1 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.38", + "version": "0.1.39", "description": "Freely customizable, iterative nD subdivision curves for open / closed geometries", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/geom-api": "^1.0.10", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/geom-api": "^1.0.11", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-tessellate/CHANGELOG.md b/packages/geom-tessellate/CHANGELOG.md index 773ae13cb4..95b6823444 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.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.21...@thi.ng/geom-tessellate@0.2.22) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-tessellate + + + + + ## [0.2.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.20...@thi.ng/geom-tessellate@0.2.21) (2020-04-11) **Note:** Version bump only for package @thi.ng/geom-tessellate diff --git a/packages/geom-tessellate/package.json b/packages/geom-tessellate/package.json index 31596fd1cf..6e8e5e58c5 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.21", + "version": "0.2.22", "description": "2D/3D convex polygon tessellators", "module": "./index.js", "main": "./lib/index.js", @@ -39,11 +39,11 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.10", - "@thi.ng/geom-isec": "^0.4.10", - "@thi.ng/geom-poly-utils": "^0.1.39", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/geom-api": "^1.0.11", + "@thi.ng/geom-isec": "^0.4.11", + "@thi.ng/geom-poly-utils": "^0.1.40", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-voronoi/CHANGELOG.md b/packages/geom-voronoi/CHANGELOG.md index fa0fda6306..80bd29ff13 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.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.1.39...@thi.ng/geom-voronoi@0.1.40) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom-voronoi + + + + + ## [0.1.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.1.38...@thi.ng/geom-voronoi@0.1.39) (2020-04-11) **Note:** Version bump only for package @thi.ng/geom-voronoi diff --git a/packages/geom-voronoi/package.json b/packages/geom-voronoi/package.json index f2cc04e1a2..831e4cb3a9 100644 --- a/packages/geom-voronoi/package.json +++ b/packages/geom-voronoi/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-voronoi", - "version": "0.1.39", + "version": "0.1.40", "description": "Fast, incremental 2D Delaunay & Voronoi mesh implementation", "module": "./index.js", "main": "./lib/index.js", @@ -40,13 +40,13 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-clip-line": "^1.0.8", - "@thi.ng/geom-clip-poly": "^1.0.8", - "@thi.ng/geom-isec": "^0.4.10", - "@thi.ng/geom-poly-utils": "^0.1.39", + "@thi.ng/geom-clip-line": "^1.0.9", + "@thi.ng/geom-clip-poly": "^1.0.9", + "@thi.ng/geom-isec": "^0.4.11", + "@thi.ng/geom-poly-utils": "^0.1.40", "@thi.ng/math": "^1.7.6", "@thi.ng/quad-edge": "^0.2.12", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom/CHANGELOG.md b/packages/geom/CHANGELOG.md index cacb838683..71d8f90fbc 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.8.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.8.9...@thi.ng/geom@1.8.10) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/geom + + + + + ## [1.8.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.8.8...@thi.ng/geom@1.8.9) (2020-04-11) **Note:** Version bump only for package @thi.ng/geom diff --git a/packages/geom/package.json b/packages/geom/package.json index 16415cb682..0a54e2895a 100644 --- a/packages/geom/package.json +++ b/packages/geom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom", - "version": "1.8.9", + "version": "1.8.10", "description": "Functional, polymorphic API for 2D geometry types & SVG generation", "module": "./index.js", "main": "./lib/index.js", @@ -45,25 +45,25 @@ "@thi.ng/defmulti": "^1.2.11", "@thi.ng/equiv": "^1.0.19", "@thi.ng/errors": "^1.2.10", - "@thi.ng/geom-api": "^1.0.10", - "@thi.ng/geom-arc": "^0.2.21", - "@thi.ng/geom-clip-line": "^1.0.8", - "@thi.ng/geom-clip-poly": "^1.0.8", - "@thi.ng/geom-closest-point": "^0.3.21", - "@thi.ng/geom-hull": "^0.0.41", - "@thi.ng/geom-isec": "^0.4.10", - "@thi.ng/geom-poly-utils": "^0.1.39", - "@thi.ng/geom-resample": "^0.2.21", - "@thi.ng/geom-splines": "^0.5.8", - "@thi.ng/geom-subdiv-curve": "^0.1.38", - "@thi.ng/geom-tessellate": "^0.2.21", + "@thi.ng/geom-api": "^1.0.11", + "@thi.ng/geom-arc": "^0.2.22", + "@thi.ng/geom-clip-line": "^1.0.9", + "@thi.ng/geom-clip-poly": "^1.0.9", + "@thi.ng/geom-closest-point": "^0.3.22", + "@thi.ng/geom-hull": "^0.0.42", + "@thi.ng/geom-isec": "^0.4.11", + "@thi.ng/geom-poly-utils": "^0.1.40", + "@thi.ng/geom-resample": "^0.2.22", + "@thi.ng/geom-splines": "^0.5.9", + "@thi.ng/geom-subdiv-curve": "^0.1.39", + "@thi.ng/geom-tessellate": "^0.2.22", "@thi.ng/hiccup": "^3.2.18", - "@thi.ng/hiccup-svg": "^3.4.11", + "@thi.ng/hiccup-svg": "^3.4.12", "@thi.ng/math": "^1.7.6", - "@thi.ng/matrices": "^0.6.8", + "@thi.ng/matrices": "^0.6.9", "@thi.ng/random": "^1.4.5", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/gp/CHANGELOG.md b/packages/gp/CHANGELOG.md index ad3a212187..6684492594 100644 --- a/packages/gp/CHANGELOG.md +++ b/packages/gp/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.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.11...@thi.ng/gp@0.1.12) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/gp + + + + + ## [0.1.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.10...@thi.ng/gp@0.1.11) (2020-04-11) **Note:** Version bump only for package @thi.ng/gp diff --git a/packages/gp/package.json b/packages/gp/package.json index 51080e5573..f543a35f79 100644 --- a/packages/gp/package.json +++ b/packages/gp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/gp", - "version": "0.1.11", + "version": "0.1.12", "description": "Genetic programming helpers & strategies (tree based & multi-expression programming)", "module": "./index.js", "main": "./lib/index.js", @@ -41,7 +41,7 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/math": "^1.7.6", "@thi.ng/random": "^1.4.5", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "@thi.ng/zipper": "^0.1.11", "tslib": "^1.11.1" }, diff --git a/packages/grid-iterators/CHANGELOG.md b/packages/grid-iterators/CHANGELOG.md index fc6b2615fb..01bd2190de 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.3.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.3.8...@thi.ng/grid-iterators@0.3.9) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/grid-iterators + + + + + ## [0.3.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.3.7...@thi.ng/grid-iterators@0.3.8) (2020-04-11) **Note:** Version bump only for package @thi.ng/grid-iterators diff --git a/packages/grid-iterators/package.json b/packages/grid-iterators/package.json index a1729b725b..4a7353dc54 100644 --- a/packages/grid-iterators/package.json +++ b/packages/grid-iterators/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/grid-iterators", - "version": "0.3.8", + "version": "0.3.9", "description": "2D grid iterators w/ multiple orderings", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "@thi.ng/binary": "^2.0.3", "@thi.ng/morton": "^2.0.9", "@thi.ng/random": "^1.4.5", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hdom-canvas/CHANGELOG.md b/packages/hdom-canvas/CHANGELOG.md index bdb308f4b1..5a4a73cbac 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. +## [2.4.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@2.4.14...@thi.ng/hdom-canvas@2.4.15) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/hdom-canvas + + + + + ## [2.4.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@2.4.13...@thi.ng/hdom-canvas@2.4.14) (2020-04-11) **Note:** Version bump only for package @thi.ng/hdom-canvas diff --git a/packages/hdom-canvas/package.json b/packages/hdom-canvas/package.json index bfe70d2196..b0e39b73ef 100644 --- a/packages/hdom-canvas/package.json +++ b/packages/hdom-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom-canvas", - "version": "2.4.14", + "version": "2.4.15", "description": "Declarative canvas scenegraph & visualization for @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -40,11 +40,11 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", - "@thi.ng/color": "^1.1.14", + "@thi.ng/color": "^1.1.15", "@thi.ng/diff": "^3.2.16", "@thi.ng/hdom": "^8.0.20", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hdom-components/CHANGELOG.md b/packages/hdom-components/CHANGELOG.md index fcbde9f78c..82eb3125cf 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. +## [3.2.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@3.2.4...@thi.ng/hdom-components@3.2.5) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/hdom-components + + + + + ## [3.2.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@3.2.3...@thi.ng/hdom-components@3.2.4) (2020-04-11) **Note:** Version bump only for package @thi.ng/hdom-components diff --git a/packages/hdom-components/package.json b/packages/hdom-components/package.json index 466071b99a..4373dc173a 100644 --- a/packages/hdom-components/package.json +++ b/packages/hdom-components/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom-components", - "version": "3.2.4", + "version": "3.2.5", "description": "Raw, skinnable UI & SVG components for @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -41,8 +41,8 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", "@thi.ng/math": "^1.7.6", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/transducers-stats": "^1.1.18", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/transducers-stats": "^1.1.19", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hiccup-css/CHANGELOG.md b/packages/hiccup-css/CHANGELOG.md index 220e863cdb..955c95d831 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.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.18...@thi.ng/hiccup-css@1.1.19) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/hiccup-css + + + + + ## [1.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.17...@thi.ng/hiccup-css@1.1.18) (2020-04-11) **Note:** Version bump only for package @thi.ng/hiccup-css diff --git a/packages/hiccup-css/package.json b/packages/hiccup-css/package.json index 98ceb8ee57..12b29df094 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.18", + "version": "1.1.19", "description": "CSS from nested JS data structures", "module": "./index.js", "main": "./lib/index.js", @@ -41,7 +41,7 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", "@thi.ng/errors": "^1.2.10", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hiccup-markdown/CHANGELOG.md b/packages/hiccup-markdown/CHANGELOG.md index 4fb1eb35c8..b476ada644 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.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.4...@thi.ng/hiccup-markdown@1.2.5) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/hiccup-markdown + + + + + ## [1.2.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.3...@thi.ng/hiccup-markdown@1.2.4) (2020-04-11) **Note:** Version bump only for package @thi.ng/hiccup-markdown diff --git a/packages/hiccup-markdown/package.json b/packages/hiccup-markdown/package.json index 71dcc7661c..bb08d5c6af 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.4", + "version": "1.2.5", "description": "Markdown parser & serializer from/to Hiccup format", "module": "./index.js", "main": "./lib/index.js", @@ -42,11 +42,11 @@ "@thi.ng/checks": "^2.6.2", "@thi.ng/defmulti": "^1.2.11", "@thi.ng/errors": "^1.2.10", - "@thi.ng/fsm": "^2.4.4", + "@thi.ng/fsm": "^2.4.5", "@thi.ng/hiccup": "^3.2.18", - "@thi.ng/strings": "^1.8.3", - "@thi.ng/text-canvas": "^0.2.5", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/strings": "^1.8.4", + "@thi.ng/text-canvas": "^0.2.6", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hiccup-svg/CHANGELOG.md b/packages/hiccup-svg/CHANGELOG.md index 4949f1afbb..3956cc2d40 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.4.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.4.11...@thi.ng/hiccup-svg@3.4.12) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/hiccup-svg + + + + + ## [3.4.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.4.10...@thi.ng/hiccup-svg@3.4.11) (2020-04-11) **Note:** Version bump only for package @thi.ng/hiccup-svg diff --git a/packages/hiccup-svg/package.json b/packages/hiccup-svg/package.json index b6757f015f..b7cc705fe2 100644 --- a/packages/hiccup-svg/package.json +++ b/packages/hiccup-svg/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-svg", - "version": "3.4.11", + "version": "3.4.12", "description": "SVG element functions for @thi.ng/hiccup & @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/color": "^1.1.14", + "@thi.ng/color": "^1.1.15", "@thi.ng/hiccup": "^3.2.18", "tslib": "^1.11.1" }, diff --git a/packages/iges/CHANGELOG.md b/packages/iges/CHANGELOG.md index 7a2f3d6e7a..ccb8f76183 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.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.23...@thi.ng/iges@1.1.24) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/iges + + + + + ## [1.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.22...@thi.ng/iges@1.1.23) (2020-04-11) **Note:** Version bump only for package @thi.ng/iges diff --git a/packages/iges/package.json b/packages/iges/package.json index b14e1d992a..53365a9d8b 100644 --- a/packages/iges/package.json +++ b/packages/iges/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/iges", - "version": "1.1.23", + "version": "1.1.24", "description": "IGES 5.3 serializer for (currently only) polygonal geometry, both open & closed", "module": "./index.js", "main": "./lib/index.js", @@ -41,9 +41,9 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", "@thi.ng/defmulti": "^1.2.11", - "@thi.ng/strings": "^1.8.3", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/strings": "^1.8.4", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/imgui/CHANGELOG.md b/packages/imgui/CHANGELOG.md index 3d38689a91..30b665f21d 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.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.9...@thi.ng/imgui@0.2.10) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/imgui + + + + + ## [0.2.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.8...@thi.ng/imgui@0.2.9) (2020-04-11) **Note:** Version bump only for package @thi.ng/imgui diff --git a/packages/imgui/package.json b/packages/imgui/package.json index 068bda712e..65f6ca0fb9 100644 --- a/packages/imgui/package.json +++ b/packages/imgui/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/imgui", - "version": "0.2.9", + "version": "0.2.10", "description": "Immediate mode GUI with flexible state handling & data only shape output", "module": "./index.js", "main": "./lib/index.js", @@ -40,14 +40,14 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom": "^1.8.9", - "@thi.ng/geom-api": "^1.0.10", - "@thi.ng/geom-isec": "^0.4.10", - "@thi.ng/geom-tessellate": "^0.2.21", + "@thi.ng/geom": "^1.8.10", + "@thi.ng/geom-api": "^1.0.11", + "@thi.ng/geom-isec": "^0.4.11", + "@thi.ng/geom-tessellate": "^0.2.22", "@thi.ng/layout": "^0.1.7", "@thi.ng/math": "^1.7.6", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/iterators/CHANGELOG.md b/packages/iterators/CHANGELOG.md index c083a6ed87..6954dc1f0d 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.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.18...@thi.ng/iterators@5.1.19) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/iterators + + + + + ## [5.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.17...@thi.ng/iterators@5.1.18) (2020-04-11) **Note:** Version bump only for package @thi.ng/iterators diff --git a/packages/iterators/package.json b/packages/iterators/package.json index 0ff330f8b9..f16fefc438 100644 --- a/packages/iterators/package.json +++ b/packages/iterators/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/iterators", - "version": "5.1.18", + "version": "5.1.19", "description": "Clojure inspired, composable ES6 iterators & generators", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/dcons": "^2.2.11", + "@thi.ng/dcons": "^2.2.12", "@thi.ng/errors": "^1.2.10", "tslib": "^1.11.1" }, diff --git a/packages/leb128/CHANGELOG.md b/packages/leb128/CHANGELOG.md index cf5971505f..5b2aecc2e3 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.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.12...@thi.ng/leb128@1.0.13) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/leb128 + + + + + ## [1.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.11...@thi.ng/leb128@1.0.12) (2020-04-11) **Note:** Version bump only for package @thi.ng/leb128 diff --git a/packages/leb128/package.json b/packages/leb128/package.json index 73782ecd24..db2711a2ef 100644 --- a/packages/leb128/package.json +++ b/packages/leb128/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/leb128", - "version": "1.0.12", + "version": "1.0.13", "description": "WASM based LEB128 encoder / decoder (signed & unsigned)", "module": "./index.js", "main": "./lib/index.js", @@ -41,7 +41,7 @@ "dependencies": { "@thi.ng/checks": "^2.6.2", "@thi.ng/errors": "^1.2.10", - "@thi.ng/transducers-binary": "^0.5.8", + "@thi.ng/transducers-binary": "^0.5.9", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/lsys/CHANGELOG.md b/packages/lsys/CHANGELOG.md index 39d56841ac..26b11d8fb7 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.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.36...@thi.ng/lsys@0.2.37) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/lsys + + + + + ## [0.2.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.35...@thi.ng/lsys@0.2.36) (2020-04-11) **Note:** Version bump only for package @thi.ng/lsys diff --git a/packages/lsys/package.json b/packages/lsys/package.json index 01c41814f7..fa4b79ba2e 100644 --- a/packages/lsys/package.json +++ b/packages/lsys/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/lsys", - "version": "0.2.36", + "version": "0.2.37", "description": "Functional, extensible L-System architecture w/ support for probabilistic rules", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "@thi.ng/errors": "^1.2.10", "@thi.ng/math": "^1.7.6", "@thi.ng/random": "^1.4.5", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/matrices/CHANGELOG.md b/packages/matrices/CHANGELOG.md index b26048194c..750fd29b5a 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.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.8...@thi.ng/matrices@0.6.9) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/matrices + + + + + ## [0.6.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.7...@thi.ng/matrices@0.6.8) (2020-04-11) **Note:** Version bump only for package @thi.ng/matrices diff --git a/packages/matrices/package.json b/packages/matrices/package.json index f4c6d52d16..61ca280293 100644 --- a/packages/matrices/package.json +++ b/packages/matrices/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/matrices", - "version": "0.6.8", + "version": "0.6.9", "description": "Matrix & quaternion operations for 2D/3D geometry processing", "module": "./index.js", "main": "./lib/index.js", @@ -41,7 +41,7 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/parse/CHANGELOG.md b/packages/parse/CHANGELOG.md index a9c17e3d4f..d5d6e2edc1 100644 --- a/packages/parse/CHANGELOG.md +++ b/packages/parse/CHANGELOG.md @@ -3,6 +3,29 @@ 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/parse@0.2.0...@thi.ng/parse@0.3.0) (2020-04-20) + + +### Features + +* **parse:** add discarding combinators, move discard ([e09a2c4](https://github.com/thi-ng/umbrella/commit/e09a2c40d1ad7272a5abc15c8b11e497f79eb0dd)) +* **parse:** add dynamic() & DynamicParser ([b914267](https://github.com/thi-ng/umbrella/commit/b914267b88325d5c94a028aee192268e75736181)) +* **parse:** add grammar default transforms, update/fix rules ([03ed965](https://github.com/thi-ng/umbrella/commit/03ed96592f1598767d5feeac1b49b8cc4b1d6285)) +* **parse:** add more whitespace presets ([1398e2b](https://github.com/thi-ng/umbrella/commit/1398e2b06a8eace8b61333c36db6e82d6e1478f3)) +* **parse:** add ParseContext.reset(), update addChild() ([d47c0a2](https://github.com/thi-ng/umbrella/commit/d47c0a220e4912a30c59a7fd3c81b8376d74d720)) +* **parse:** add skipWhile(), more discarded wrappers ([832c0b7](https://github.com/thi-ng/umbrella/commit/832c0b7e88d87b2da0e37f602e592ad7b548da09)) +* **parse:** add withID() xform, add doc strings ([e16426b](https://github.com/thi-ng/umbrella/commit/e16426b82f0dda94ab9aa92ba6e3af8d769f3fed)) +* **parse:** add/update combinators ([e4eab03](https://github.com/thi-ng/umbrella/commit/e4eab036243f4f646880b974624ae680e77cff7f)) +* **parse:** add/update/rename parser presets ([12f2499](https://github.com/thi-ng/umbrella/commit/12f2499253163a923c42e3be29ce2223a6648e11)) +* **parse:** add/update/rename parser primitives ([328103f](https://github.com/thi-ng/umbrella/commit/328103f55f4bb311470b8767a27d28a78d0dcb4b)) +* **parse:** initial checkin grammar compiler ([38e9c66](https://github.com/thi-ng/umbrella/commit/38e9c66c25c02db4d7fb79837645dfaf654e6788)) +* **parse:** update ESC & whitespace parsers ([069a6ef](https://github.com/thi-ng/umbrella/commit/069a6ef11c9423bdb2974b11823cc39743dfceec)) +* **parse:** update grammar parser & compiler ([822fcba](https://github.com/thi-ng/umbrella/commit/822fcba9a29a05bad98eecf2b341d07a3a90abeb)) + + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.1.0...@thi.ng/parse@0.2.0) (2020-04-17) diff --git a/packages/parse/package.json b/packages/parse/package.json index 7909998b85..3bc9d49210 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/parse", - "version": "0.2.0", + "version": "0.3.0", "description": "Purely functional parser combinators & AST generation for generic inputs", "module": "./index.js", "main": "./lib/index.js", @@ -41,7 +41,7 @@ "@thi.ng/api": "^6.10.0", "@thi.ng/checks": "^2.6.2", "@thi.ng/errors": "^1.2.10", - "@thi.ng/strings": "^1.8.3" + "@thi.ng/strings": "^1.8.4" }, "files": [ "*.js", diff --git a/packages/poisson/CHANGELOG.md b/packages/poisson/CHANGELOG.md index bae41033fd..b7a94f5210 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.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.0.10...@thi.ng/poisson@1.0.11) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/poisson + + + + + ## [1.0.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.0.9...@thi.ng/poisson@1.0.10) (2020-04-11) **Note:** Version bump only for package @thi.ng/poisson diff --git a/packages/poisson/package.json b/packages/poisson/package.json index 2d1cff9e89..8c65e72ee2 100644 --- a/packages/poisson/package.json +++ b/packages/poisson/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/poisson", - "version": "1.0.10", + "version": "1.0.11", "description": "nD Poisson-disc sampling w/ support for spatial density functions and custom PRNGs", "module": "./index.js", "main": "./lib/index.js", @@ -39,9 +39,9 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.10", + "@thi.ng/geom-api": "^1.0.11", "@thi.ng/random": "^1.4.5", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/ramp/CHANGELOG.md b/packages/ramp/CHANGELOG.md index 7183c15918..b5788d76ba 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.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.10...@thi.ng/ramp@0.1.11) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/ramp + + + + + ## [0.1.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.9...@thi.ng/ramp@0.1.10) (2020-04-11) **Note:** Version bump only for package @thi.ng/ramp diff --git a/packages/ramp/package.json b/packages/ramp/package.json index d7b3c30668..91a8aa45d7 100644 --- a/packages/ramp/package.json +++ b/packages/ramp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/ramp", - "version": "0.1.10", + "version": "0.1.11", "description": "Parametric interpolated 1D lookup tables for remapping values", "module": "./index.js", "main": "./lib/index.js", @@ -42,8 +42,8 @@ "@thi.ng/arrays": "^0.6.3", "@thi.ng/compare": "^1.3.2", "@thi.ng/math": "^1.7.6", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/range-coder/CHANGELOG.md b/packages/range-coder/CHANGELOG.md index cff2b45498..7d0310e759 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.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.38...@thi.ng/range-coder@1.0.39) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/range-coder + + + + + ## [1.0.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.37...@thi.ng/range-coder@1.0.38) (2020-04-11) **Note:** Version bump only for package @thi.ng/range-coder diff --git a/packages/range-coder/package.json b/packages/range-coder/package.json index d583608ee6..3dffa8a09c 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.38", + "version": "1.0.39", "description": "Binary data range encoder / decoder", "module": "./index.js", "main": "./lib/index.js", @@ -29,7 +29,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.7.8", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "@types/mocha": "^7.0.1", "@types/node": "^13.7.4", "mocha": "^7.1.1", diff --git a/packages/rstream-csp/CHANGELOG.md b/packages/rstream-csp/CHANGELOG.md index 955a835084..5e4b85f4ac 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.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.12...@thi.ng/rstream-csp@2.0.13) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/rstream-csp + + + + + ## [2.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.11...@thi.ng/rstream-csp@2.0.12) (2020-04-11) **Note:** Version bump only for package @thi.ng/rstream-csp diff --git a/packages/rstream-csp/package.json b/packages/rstream-csp/package.json index f206380f0b..d0ba6e5345 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.12", + "version": "2.0.13", "description": "@thi.ng/csp bridge module for @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/csp": "^1.1.18", - "@thi.ng/rstream": "^4.0.4", + "@thi.ng/csp": "^1.1.19", + "@thi.ng/rstream": "^4.0.5", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream-dot/CHANGELOG.md b/packages/rstream-dot/CHANGELOG.md index 0736d7f321..8e97e23d3a 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.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.19...@thi.ng/rstream-dot@1.1.20) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/rstream-dot + + + + + ## [1.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.18...@thi.ng/rstream-dot@1.1.19) (2020-04-11) **Note:** Version bump only for package @thi.ng/rstream-dot diff --git a/packages/rstream-dot/package.json b/packages/rstream-dot/package.json index dd145c7ad0..32c0a499c9 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.19", + "version": "1.1.20", "description": "Graphviz DOT conversion of @thi.ng/rstream dataflow graph topologies", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/rstream": "^4.0.4", + "@thi.ng/rstream": "^4.0.5", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream-gestures/CHANGELOG.md b/packages/rstream-gestures/CHANGELOG.md index 34591a8329..c7055872ca 100644 --- a/packages/rstream-gestures/CHANGELOG.md +++ b/packages/rstream-gestures/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.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.11...@thi.ng/rstream-gestures@2.0.12) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/rstream-gestures + + + + + ## [2.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.10...@thi.ng/rstream-gestures@2.0.11) (2020-04-11) **Note:** Version bump only for package @thi.ng/rstream-gestures diff --git a/packages/rstream-gestures/package.json b/packages/rstream-gestures/package.json index a540e82fea..9f7151f62d 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.11", + "version": "2.0.12", "description": "Unified mouse, mouse wheel & multi-touch event stream abstraction", "module": "./index.js", "main": "./lib/index.js", @@ -41,8 +41,8 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", "@thi.ng/math": "^1.7.6", - "@thi.ng/rstream": "^4.0.4", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/rstream": "^4.0.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream-graph/CHANGELOG.md b/packages/rstream-graph/CHANGELOG.md index b6d0a17229..f57ed5a4d2 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.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.12...@thi.ng/rstream-graph@3.2.13) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/rstream-graph + + + + + ## [3.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.11...@thi.ng/rstream-graph@3.2.12) (2020-04-11) **Note:** Version bump only for package @thi.ng/rstream-graph diff --git a/packages/rstream-graph/package.json b/packages/rstream-graph/package.json index f096c7537d..f91a9081a6 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.12", + "version": "3.2.13", "description": "Declarative dataflow graph construction for @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "@thi.ng/errors": "^1.2.10", "@thi.ng/paths": "^4.0.2", "@thi.ng/resolve-map": "^4.1.19", - "@thi.ng/rstream": "^4.0.4", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/rstream": "^4.0.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream-log-file/CHANGELOG.md b/packages/rstream-log-file/CHANGELOG.md index c8a00550d0..3e45a19e5c 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.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.34...@thi.ng/rstream-log-file@0.1.35) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/rstream-log-file + + + + + ## [0.1.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.33...@thi.ng/rstream-log-file@0.1.34) (2020-04-11) **Note:** Version bump only for package @thi.ng/rstream-log-file diff --git a/packages/rstream-log-file/package.json b/packages/rstream-log-file/package.json index 8c5b9960e9..4c1b2c759b 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.34", + "version": "0.1.35", "description": "File output handler for structured, multilevel & hierarchical loggers based on @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/rstream": "^4.0.4", + "@thi.ng/rstream": "^4.0.5", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream-log/CHANGELOG.md b/packages/rstream-log/CHANGELOG.md index 88c2224ed2..225bed0f43 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.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.19...@thi.ng/rstream-log@3.1.20) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/rstream-log + + + + + ## [3.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.18...@thi.ng/rstream-log@3.1.19) (2020-04-11) **Note:** Version bump only for package @thi.ng/rstream-log diff --git a/packages/rstream-log/package.json b/packages/rstream-log/package.json index ca96f7d8f4..825e8485aa 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.19", + "version": "3.1.20", "description": "Structured, multilevel & hierarchical loggers based on @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -41,8 +41,8 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", "@thi.ng/errors": "^1.2.10", - "@thi.ng/rstream": "^4.0.4", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/rstream": "^4.0.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream-query/CHANGELOG.md b/packages/rstream-query/CHANGELOG.md index d2d0e11f9e..4bedf70afd 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.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.19...@thi.ng/rstream-query@1.1.20) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/rstream-query + + + + + ## [1.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.18...@thi.ng/rstream-query@1.1.19) (2020-04-11) **Note:** Version bump only for package @thi.ng/rstream-query diff --git a/packages/rstream-query/package.json b/packages/rstream-query/package.json index d0e92937a9..2acf6f45ac 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.19", + "version": "1.1.20", "description": "@thi.ng/rstream based triple store & reactive query engine", "module": "./index.js", "main": "./lib/index.js", @@ -39,14 +39,14 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/associative": "^4.0.3", + "@thi.ng/associative": "^4.0.4", "@thi.ng/checks": "^2.6.2", "@thi.ng/equiv": "^1.0.19", "@thi.ng/errors": "^1.2.10", "@thi.ng/math": "^1.7.6", - "@thi.ng/rstream": "^4.0.4", - "@thi.ng/rstream-dot": "^1.1.19", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/rstream": "^4.0.5", + "@thi.ng/rstream-dot": "^1.1.20", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream/CHANGELOG.md b/packages/rstream/CHANGELOG.md index c2b638c3ab..2615fd6a54 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. +## [4.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@4.0.4...@thi.ng/rstream@4.0.5) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/rstream + + + + + ## [4.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@4.0.3...@thi.ng/rstream@4.0.4) (2020-04-11) **Note:** Version bump only for package @thi.ng/rstream diff --git a/packages/rstream/package.json b/packages/rstream/package.json index e574a0bbdd..c5c8aa3fa7 100644 --- a/packages/rstream/package.json +++ b/packages/rstream/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream", - "version": "4.0.4", + "version": "4.0.5", "description": "Reactive streams & subscription primitives for constructing dataflow graphs / pipelines", "module": "./index.js", "main": "./lib/index.js", @@ -39,12 +39,12 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/associative": "^4.0.3", + "@thi.ng/associative": "^4.0.4", "@thi.ng/atom": "^4.1.3", "@thi.ng/checks": "^2.6.2", "@thi.ng/errors": "^1.2.10", "@thi.ng/paths": "^4.0.2", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/sax/CHANGELOG.md b/packages/sax/CHANGELOG.md index 791efccd96..61156c0f08 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.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.18...@thi.ng/sax@1.1.19) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/sax + + + + + ## [1.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.17...@thi.ng/sax@1.1.18) (2020-04-11) **Note:** Version bump only for package @thi.ng/sax diff --git a/packages/sax/package.json b/packages/sax/package.json index 984e3b8c72..855c36a3a7 100644 --- a/packages/sax/package.json +++ b/packages/sax/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sax", - "version": "1.1.18", + "version": "1.1.19", "description": "Transducer-based, SAX-like, non-validating, speedy & tiny XML parser", "module": "./index.js", "main": "./lib/index.js", @@ -39,8 +39,8 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/transducers-fsm": "^1.1.18", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/transducers-fsm": "^1.1.19", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/scenegraph/CHANGELOG.md b/packages/scenegraph/CHANGELOG.md index 5a6b8661b0..68101c02b6 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.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.1.11...@thi.ng/scenegraph@0.1.12) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/scenegraph + + + + + ## [0.1.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.1.10...@thi.ng/scenegraph@0.1.11) (2020-04-11) **Note:** Version bump only for package @thi.ng/scenegraph diff --git a/packages/scenegraph/package.json b/packages/scenegraph/package.json index 7dc7890abd..f617c6186a 100644 --- a/packages/scenegraph/package.json +++ b/packages/scenegraph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/scenegraph", - "version": "0.1.11", + "version": "0.1.12", "description": "Extensible 2D/3D scene graph with @thi.ng/hdom-canvas support", "module": "./index.js", "main": "./lib/index.js", @@ -40,8 +40,8 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", - "@thi.ng/matrices": "^0.6.8", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/matrices": "^0.6.9", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/shader-ast-glsl/CHANGELOG.md b/packages/shader-ast-glsl/CHANGELOG.md index e76244c3c1..82001a5cd0 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.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.1.21...@thi.ng/shader-ast-glsl@0.1.22) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/shader-ast-glsl + + + + + ## [0.1.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.1.20...@thi.ng/shader-ast-glsl@0.1.21) (2020-04-11) **Note:** Version bump only for package @thi.ng/shader-ast-glsl diff --git a/packages/shader-ast-glsl/package.json b/packages/shader-ast-glsl/package.json index a04da08948..41b2e9fd76 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.1.21", + "version": "0.1.22", "description": "Customizable GLSL code generator for @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -41,7 +41,7 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", "@thi.ng/errors": "^1.2.10", - "@thi.ng/shader-ast": "^0.3.15", + "@thi.ng/shader-ast": "^0.3.16", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/shader-ast-js/CHANGELOG.md b/packages/shader-ast-js/CHANGELOG.md index 26986fffa3..47ea9e213c 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.4.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.4.14...@thi.ng/shader-ast-js@0.4.15) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/shader-ast-js + + + + + ## [0.4.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.4.13...@thi.ng/shader-ast-js@0.4.14) (2020-04-11) **Note:** Version bump only for package @thi.ng/shader-ast-js diff --git a/packages/shader-ast-js/package.json b/packages/shader-ast-js/package.json index 0f3dbd175f..9804540da2 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.4.14", + "version": "0.4.15", "description": "Customizable JS code generator, compiler & runtime for @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -42,10 +42,10 @@ "@thi.ng/checks": "^2.6.2", "@thi.ng/errors": "^1.2.10", "@thi.ng/math": "^1.7.6", - "@thi.ng/matrices": "^0.6.8", + "@thi.ng/matrices": "^0.6.9", "@thi.ng/pixel": "^0.1.16", - "@thi.ng/shader-ast": "^0.3.15", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/shader-ast": "^0.3.16", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/shader-ast-stdlib/CHANGELOG.md b/packages/shader-ast-stdlib/CHANGELOG.md index ac8227dd21..9d1d0a25cf 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.3.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.3.14...@thi.ng/shader-ast-stdlib@0.3.15) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/shader-ast-stdlib + + + + + ## [0.3.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.3.13...@thi.ng/shader-ast-stdlib@0.3.14) (2020-04-11) **Note:** Version bump only for package @thi.ng/shader-ast-stdlib diff --git a/packages/shader-ast-stdlib/package.json b/packages/shader-ast-stdlib/package.json index 251da87006..a445f8939d 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.3.14", + "version": "0.3.15", "description": "Function collection for modular GPGPU / shader programming with @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/shader-ast": "^0.3.15", + "@thi.ng/shader-ast": "^0.3.16", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/shader-ast/CHANGELOG.md b/packages/shader-ast/CHANGELOG.md index b99384ab69..274caa6965 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.3.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.3.15...@thi.ng/shader-ast@0.3.16) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/shader-ast + + + + + ## [0.3.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.3.14...@thi.ng/shader-ast@0.3.15) (2020-04-11) **Note:** Version bump only for package @thi.ng/shader-ast diff --git a/packages/shader-ast/package.json b/packages/shader-ast/package.json index 7df9c13855..69c45ce87e 100644 --- a/packages/shader-ast/package.json +++ b/packages/shader-ast/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/shader-ast", - "version": "0.3.15", + "version": "0.3.16", "description": "DSL to define shader code in TypeScript and cross-compile to GLSL, JS and other targets", "module": "./index.js", "main": "./lib/index.js", @@ -41,7 +41,7 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", "@thi.ng/defmulti": "^1.2.11", - "@thi.ng/dgraph": "^1.2.3", + "@thi.ng/dgraph": "^1.2.4", "@thi.ng/errors": "^1.2.10", "tslib": "^1.11.1" }, diff --git a/packages/simd/CHANGELOG.md b/packages/simd/CHANGELOG.md index fbd16335a5..67335a2d61 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.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.1.12...@thi.ng/simd@0.1.13) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/simd + + + + + ## [0.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.1.11...@thi.ng/simd@0.1.12) (2020-04-11) **Note:** Version bump only for package @thi.ng/simd diff --git a/packages/simd/package.json b/packages/simd/package.json index f10ea191bf..4ecf667ff6 100644 --- a/packages/simd/package.json +++ b/packages/simd/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/simd", - "version": "0.1.12", + "version": "0.1.13", "description": "WASM based SIMD vector operations for batch processing", "module": "./index.js", "main": "./lib/index.js", @@ -42,8 +42,8 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/transducers-binary": "^0.5.8", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/transducers-binary": "^0.5.9", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/soa/CHANGELOG.md b/packages/soa/CHANGELOG.md index bf46cd6d36..fbd84e72cb 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.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.12...@thi.ng/soa@0.1.13) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/soa + + + + + ## [0.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.11...@thi.ng/soa@0.1.12) (2020-04-11) **Note:** Version bump only for package @thi.ng/soa diff --git a/packages/soa/package.json b/packages/soa/package.json index 3c45c9969b..4cadfdf99d 100644 --- a/packages/soa/package.json +++ b/packages/soa/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/soa", - "version": "0.1.12", + "version": "0.1.13", "description": "SOA & AOS memory mapped structured views with optional & extensible serialization", "module": "./index.js", "main": "./lib/index.js", @@ -41,8 +41,8 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/binary": "^2.0.3", - "@thi.ng/transducers-binary": "^0.5.8", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/transducers-binary": "^0.5.9", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/sparse/CHANGELOG.md b/packages/sparse/CHANGELOG.md index 05df7c97fc..0361cb14a7 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.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.34...@thi.ng/sparse@0.1.35) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/sparse + + + + + ## [0.1.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.33...@thi.ng/sparse@0.1.34) (2020-04-11) **Note:** Version bump only for package @thi.ng/sparse diff --git a/packages/sparse/package.json b/packages/sparse/package.json index 4e5032dabc..32669d55fb 100644 --- a/packages/sparse/package.json +++ b/packages/sparse/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sparse", - "version": "0.1.34", + "version": "0.1.35", "description": "Sparse vector & matrix implementations", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/strings/CHANGELOG.md b/packages/strings/CHANGELOG.md index b515143d85..13a5d3a8c0 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.8.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.8.3...@thi.ng/strings@1.8.4) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/strings + + + + + ## [1.8.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.8.2...@thi.ng/strings@1.8.3) (2020-04-11) **Note:** Version bump only for package @thi.ng/strings diff --git a/packages/strings/package.json b/packages/strings/package.json index 279d1fe7ec..b5f909de07 100644 --- a/packages/strings/package.json +++ b/packages/strings/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/strings", - "version": "1.8.3", + "version": "1.8.4", "description": "Various string formatting & utility functions", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/system/CHANGELOG.md b/packages/system/CHANGELOG.md index 16ae1937b6..dd9b640e12 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.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.3...@thi.ng/system@0.2.4) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/system + + + + + ## [0.2.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.2...@thi.ng/system@0.2.3) (2020-04-11) **Note:** Version bump only for package @thi.ng/system diff --git a/packages/system/package.json b/packages/system/package.json index e55c181452..0bcf80c8a1 100644 --- a/packages/system/package.json +++ b/packages/system/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/system", - "version": "0.2.3", + "version": "0.2.4", "description": "Minimal DI / life cycle container for stateful app components", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/dgraph": "^1.2.3", + "@thi.ng/dgraph": "^1.2.4", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/text-canvas/CHANGELOG.md b/packages/text-canvas/CHANGELOG.md index 6c823a696a..0722ae4293 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.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.5...@thi.ng/text-canvas@0.2.6) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/text-canvas + + + + + ## [0.2.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.4...@thi.ng/text-canvas@0.2.5) (2020-04-11) **Note:** Version bump only for package @thi.ng/text-canvas diff --git a/packages/text-canvas/package.json b/packages/text-canvas/package.json index 8b13854d60..909707799b 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.5", + "version": "0.2.6", "description": "Text based canvas, drawing, tables with arbitrary formatting (incl. ANSI/HTML)", "module": "./index.js", "main": "./lib/index.js", @@ -41,10 +41,10 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/arrays": "^0.6.3", - "@thi.ng/geom-clip-line": "^1.0.8", + "@thi.ng/geom-clip-line": "^1.0.9", "@thi.ng/math": "^1.7.6", "@thi.ng/memoize": "^2.0.7", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/transducers-binary/CHANGELOG.md b/packages/transducers-binary/CHANGELOG.md index 11d19e5dc5..b1f037b611 100644 --- a/packages/transducers-binary/CHANGELOG.md +++ b/packages/transducers-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. +## [0.5.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.8...@thi.ng/transducers-binary@0.5.9) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/transducers-binary + + + + + ## [0.5.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.7...@thi.ng/transducers-binary@0.5.8) (2020-04-11) **Note:** Version bump only for package @thi.ng/transducers-binary diff --git a/packages/transducers-binary/package.json b/packages/transducers-binary/package.json index 75da69c35c..c481901b07 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.8", + "version": "0.5.9", "description": "Binary data related transducers & reducers", "module": "./index.js", "main": "./lib/index.js", @@ -40,8 +40,8 @@ "dependencies": { "@thi.ng/compose": "^1.4.3", "@thi.ng/random": "^1.4.5", - "@thi.ng/strings": "^1.8.3", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/strings": "^1.8.4", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/transducers-fsm/CHANGELOG.md b/packages/transducers-fsm/CHANGELOG.md index e8d2e340dd..79b800fe85 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.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.18...@thi.ng/transducers-fsm@1.1.19) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/transducers-fsm + + + + + ## [1.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.17...@thi.ng/transducers-fsm@1.1.18) (2020-04-11) **Note:** Version bump only for package @thi.ng/transducers-fsm diff --git a/packages/transducers-fsm/package.json b/packages/transducers-fsm/package.json index e6fbc5a9dd..fe8c49b7ff 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.18", + "version": "1.1.19", "description": "Transducer-based Finite State Machine transformer", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/transducers-hdom/CHANGELOG.md b/packages/transducers-hdom/CHANGELOG.md index 9131f8af85..613e9c4670 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.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.45...@thi.ng/transducers-hdom@2.0.46) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/transducers-hdom + + + + + ## [2.0.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.44...@thi.ng/transducers-hdom@2.0.45) (2020-04-11) **Note:** Version bump only for package @thi.ng/transducers-hdom diff --git a/packages/transducers-hdom/package.json b/packages/transducers-hdom/package.json index f3b1cddf74..55ce330025 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.45", + "version": "2.0.46", "description": "Transducer based UI updater for @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -40,7 +40,7 @@ "dependencies": { "@thi.ng/hdom": "^8.0.20", "@thi.ng/hiccup": "^3.2.18", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/transducers-patch/CHANGELOG.md b/packages/transducers-patch/CHANGELOG.md index 06cce853b5..0e6bb28b0c 100644 --- a/packages/transducers-patch/CHANGELOG.md +++ b/packages/transducers-patch/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/transducers-patch@0.1.8...@thi.ng/transducers-patch@0.1.9) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/transducers-patch + + + + + ## [0.1.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.7...@thi.ng/transducers-patch@0.1.8) (2020-04-11) **Note:** Version bump only for package @thi.ng/transducers-patch diff --git a/packages/transducers-patch/package.json b/packages/transducers-patch/package.json index e373d2fa6d..bafc04f2c6 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.8", + "version": "0.1.9", "description": "Reducers for patch-based, immutable-by-default array & object editing", "module": "./index.js", "main": "./lib/index.js", @@ -42,7 +42,7 @@ "@thi.ng/checks": "^2.6.2", "@thi.ng/errors": "^1.2.10", "@thi.ng/paths": "^4.0.2", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/transducers-stats/CHANGELOG.md b/packages/transducers-stats/CHANGELOG.md index c01c15fdac..6b19ebcc73 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.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.18...@thi.ng/transducers-stats@1.1.19) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/transducers-stats + + + + + ## [1.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.17...@thi.ng/transducers-stats@1.1.18) (2020-04-11) **Note:** Version bump only for package @thi.ng/transducers-stats diff --git a/packages/transducers-stats/package.json b/packages/transducers-stats/package.json index 9c9970cc81..18fe56f687 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.18", + "version": "1.1.19", "description": "Transducers for statistical / technical analysis", "module": "./index.js", "main": "./lib/index.js", @@ -39,9 +39,9 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/dcons": "^2.2.11", + "@thi.ng/dcons": "^2.2.12", "@thi.ng/errors": "^1.2.10", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/transducers/CHANGELOG.md b/packages/transducers/CHANGELOG.md index 579e16d447..a58e0a0104 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. +## [6.4.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@6.4.5...@thi.ng/transducers@6.4.6) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/transducers + + + + + ## [6.4.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@6.4.4...@thi.ng/transducers@6.4.5) (2020-04-11) **Note:** Version bump only for package @thi.ng/transducers diff --git a/packages/transducers/package.json b/packages/transducers/package.json index 97cc68137f..a3481e8100 100644 --- a/packages/transducers/package.json +++ b/packages/transducers/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers", - "version": "6.4.5", + "version": "6.4.6", "description": "Lightweight transducer implementations for ES6 / TypeScript", "module": "./index.js", "main": "./lib/index.js", @@ -47,7 +47,7 @@ "@thi.ng/errors": "^1.2.10", "@thi.ng/math": "^1.7.6", "@thi.ng/random": "^1.4.5", - "@thi.ng/strings": "^1.8.3", + "@thi.ng/strings": "^1.8.4", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/vector-pools/CHANGELOG.md b/packages/vector-pools/CHANGELOG.md index 2653c0c2ee..fdffd86a07 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.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.21...@thi.ng/vector-pools@1.0.22) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/vector-pools + + + + + ## [1.0.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.20...@thi.ng/vector-pools@1.0.21) (2020-04-11) **Note:** Version bump only for package @thi.ng/vector-pools diff --git a/packages/vector-pools/package.json b/packages/vector-pools/package.json index ff2245b8bc..1bc3536841 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.21", + "version": "1.0.22", "description": "Data structures for managing & working with strided, memory mapped vectors", "module": "./index.js", "main": "./lib/index.js", @@ -42,8 +42,8 @@ "@thi.ng/binary": "^2.0.3", "@thi.ng/checks": "^2.6.2", "@thi.ng/malloc": "^4.1.11", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/vectors/CHANGELOG.md b/packages/vectors/CHANGELOG.md index 637d75dc31..74b415449c 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.2.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.2.5...@thi.ng/vectors@4.2.6) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/vectors + + + + + ## [4.2.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.2.4...@thi.ng/vectors@4.2.5) (2020-04-11) **Note:** Version bump only for package @thi.ng/vectors diff --git a/packages/vectors/package.json b/packages/vectors/package.json index 676cdf3e3d..4f5cd3b06f 100644 --- a/packages/vectors/package.json +++ b/packages/vectors/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/vectors", - "version": "4.2.5", + "version": "4.2.6", "description": "Optimized 2d/3d/4d and arbitrary length vector operations", "module": "./index.js", "main": "./lib/index.js", @@ -46,7 +46,7 @@ "@thi.ng/math": "^1.7.6", "@thi.ng/memoize": "^2.0.7", "@thi.ng/random": "^1.4.5", - "@thi.ng/transducers": "^6.4.5", + "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/webgl-msdf/CHANGELOG.md b/packages/webgl-msdf/CHANGELOG.md index 3894bb6a3a..a75f64f793 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.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.23...@thi.ng/webgl-msdf@0.1.24) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/webgl-msdf + + + + + ## [0.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.22...@thi.ng/webgl-msdf@0.1.23) (2020-04-11) **Note:** Version bump only for package @thi.ng/webgl-msdf diff --git a/packages/webgl-msdf/package.json b/packages/webgl-msdf/package.json index e2f66f1f84..180dd7e989 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.23", + "version": "0.1.24", "description": "Multi-channel SDF font rendering & basic text layout for WebGL", "module": "./index.js", "main": "./lib/index.js", @@ -39,11 +39,11 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/shader-ast": "^0.3.15", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/vector-pools": "^1.0.21", - "@thi.ng/vectors": "^4.2.5", - "@thi.ng/webgl": "^1.0.5", + "@thi.ng/shader-ast": "^0.3.16", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/vector-pools": "^1.0.22", + "@thi.ng/vectors": "^4.2.6", + "@thi.ng/webgl": "^1.0.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/webgl-shadertoy/CHANGELOG.md b/packages/webgl-shadertoy/CHANGELOG.md index 3ce065cccc..a47edae6af 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.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.10...@thi.ng/webgl-shadertoy@0.2.11) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/webgl-shadertoy + + + + + ## [0.2.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.9...@thi.ng/webgl-shadertoy@0.2.10) (2020-04-11) **Note:** Version bump only for package @thi.ng/webgl-shadertoy diff --git a/packages/webgl-shadertoy/package.json b/packages/webgl-shadertoy/package.json index de1ae19092..25cab52284 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.10", + "version": "0.2.11", "description": "Basic WebGL scaffolding for running interactive fragment shaders via @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -39,10 +39,10 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/shader-ast": "^0.3.15", - "@thi.ng/shader-ast-glsl": "^0.1.21", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/webgl": "^1.0.5", + "@thi.ng/shader-ast": "^0.3.16", + "@thi.ng/shader-ast-glsl": "^0.1.22", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/webgl": "^1.0.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/webgl/CHANGELOG.md b/packages/webgl/CHANGELOG.md index b30f08df4d..35d143c9fa 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. +## [1.0.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@1.0.5...@thi.ng/webgl@1.0.6) (2020-04-20) + +**Note:** Version bump only for package @thi.ng/webgl + + + + + ## [1.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@1.0.4...@thi.ng/webgl@1.0.5) (2020-04-11) diff --git a/packages/webgl/package.json b/packages/webgl/package.json index 23f691eeb1..6f20629c5b 100644 --- a/packages/webgl/package.json +++ b/packages/webgl/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/webgl", - "version": "1.0.5", + "version": "1.0.6", "description": "WebGL & GLSL abstraction layer", "module": "./index.js", "main": "./lib/index.js", @@ -39,19 +39,19 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/associative": "^4.0.3", + "@thi.ng/associative": "^4.0.4", "@thi.ng/binary": "^2.0.3", "@thi.ng/checks": "^2.6.2", "@thi.ng/equiv": "^1.0.19", "@thi.ng/errors": "^1.2.10", - "@thi.ng/matrices": "^0.6.8", + "@thi.ng/matrices": "^0.6.9", "@thi.ng/pixel": "^0.1.16", - "@thi.ng/shader-ast": "^0.3.15", - "@thi.ng/shader-ast-glsl": "^0.1.21", - "@thi.ng/shader-ast-stdlib": "^0.3.14", - "@thi.ng/transducers": "^6.4.5", - "@thi.ng/vector-pools": "^1.0.21", - "@thi.ng/vectors": "^4.2.5", + "@thi.ng/shader-ast": "^0.3.16", + "@thi.ng/shader-ast-glsl": "^0.1.22", + "@thi.ng/shader-ast-stdlib": "^0.3.15", + "@thi.ng/transducers": "^6.4.6", + "@thi.ng/vector-pools": "^1.0.22", + "@thi.ng/vectors": "^4.2.6", "tslib": "^1.11.1" }, "files": [ From 1d0f4c4baef5b1cfb207f606f4e3873a14c3afce Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 21 Apr 2020 11:07:11 +0100 Subject: [PATCH 50/78] fix(parse): update not() behavior, add passD() --- packages/parse/src/combinators/not.ts | 30 ++++++++++++++++----------- packages/parse/src/prims/pass.ts | 14 ++++++++++++- 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/packages/parse/src/combinators/not.ts b/packages/parse/src/combinators/not.ts index 703480da8e..0dbaa3424f 100644 --- a/packages/parse/src/combinators/not.ts +++ b/packages/parse/src/combinators/not.ts @@ -1,17 +1,23 @@ -import { isFunction } from "@thi.ng/checks"; -import type { Parser, PassValue } from "../api"; +import type { Parser } from "../api"; +import { always } from "../prims/always"; -export const not = ( +/** + * Runs `parser`, discards its result and if it passed returns false, + * else runs `fail` parser and returns its result. By default `fail` is + * using {@link always}, which consumes a single character and always + * succeeds. To avoid consuming a character on first `parser`'s failure, + * use {@link pass} or {@link passD} instead. + * + * @param parser - + * @param fail - + */ +export const not = ( parser: Parser, - result?: PassValue, - id = "not" + fail: Parser = always() ): Parser => (ctx) => { if (ctx.done) return false; - const scope = ctx.start(id); - if (parser(ctx)) { - return ctx.discard(); - } - scope.result = - result != null ? (isFunction(result) ? result() : result) : null; - return ctx.end(); + ctx.start(""); + const res = parser(ctx); + ctx.discard(); + return res ? false : fail(ctx); }; diff --git a/packages/parse/src/prims/pass.ts b/packages/parse/src/prims/pass.ts index 1f2662e781..cb48a0e154 100644 --- a/packages/parse/src/prims/pass.ts +++ b/packages/parse/src/prims/pass.ts @@ -1,8 +1,20 @@ import { isFunction } from "@thi.ng/checks"; import type { PassValue, Parser } from "../api"; +/** + * Parser which consumes no input and always succeeds. Adds new AST node + * with `result`. + * + * @param result - + * @param id - + */ export const pass = ( result: PassValue, - id = "lift" + id = "pass" ): Parser => (ctx) => ctx.addChild(id, isFunction(result) ? result() : result); + +/** + * Parser which consumes no input and always succeeds. No AST creation. + */ +export const passD: Parser = () => true; From 861e7f32d98a9f693a9271d31235d1603700b36c Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 21 Apr 2020 11:41:18 +0100 Subject: [PATCH 51/78] feat(parse): update grammar DSL, hoist xforms - allow esc sequences in grammar string literals - expose various preset parser for re-use in grammar DSL - rename xfHoist => hoistResult - add new xfHoist to hoist entire child node - add doc strings --- packages/parse/src/api.ts | 2 +- packages/parse/src/grammar.ts | 57 +++++++++++++++++++++---------- packages/parse/src/xform/hoist.ts | 22 ++++++++++-- 3 files changed, 60 insertions(+), 21 deletions(-) diff --git a/packages/parse/src/api.ts b/packages/parse/src/api.ts index 203958373f..efb8c671fc 100644 --- a/packages/parse/src/api.ts +++ b/packages/parse/src/api.ts @@ -57,7 +57,7 @@ export interface GrammarOpts { optimize: boolean; } -export type Rules = IObjectOf>; +export type Rules = IObjectOf>; export type RuleTransforms = IObjectOf>; diff --git a/packages/parse/src/grammar.ts b/packages/parse/src/grammar.ts index 6fb09079ba..9f2caabd51 100644 --- a/packages/parse/src/grammar.ts +++ b/packages/parse/src/grammar.ts @@ -1,6 +1,7 @@ import { DEFAULT, defmulti } from "@thi.ng/defmulti"; import { illegalArgs, unsupported } from "@thi.ng/errors"; import type { + DynamicParser, GrammarOpts, Language, Parser, @@ -15,22 +16,24 @@ import { oneOrMore, repeat, zeroOrMore } from "./combinators/repeat"; import { seq } from "./combinators/seq"; import { xform } from "./combinators/xform"; import { defContext } from "./context"; -import { ALPHA_NUM } from "./presets/alpha"; +import { ALPHA, ALPHA_NUM } from "./presets/alpha"; +import { DIGIT } from "./presets/digits"; import { ESC, UNICODE } from "./presets/escape"; -import { UINT } from "./presets/numbers"; -import { WS0, WS1 } from "./presets/whitespace"; +import { HEX_DIGIT } from "./presets/hex"; +import { FLOAT, INT, UINT } from "./presets/numbers"; +import { WS, WS0, WS1 } from "./presets/whitespace"; +import { always } from "./prims/always"; import { lit, litD } from "./prims/lit"; -import { noneOf, noneOfP } from "./prims/none-of"; +import { noneOf } from "./prims/none-of"; import { oneOf } from "./prims/one-of"; import { range } from "./prims/range"; -import { string, stringD, stringOf } from "./prims/string"; +import { string, stringD } from "./prims/string"; import { collect, xfCollect } from "./xform/collect"; import { xfDiscard } from "./xform/discard"; -import { hoist, xfHoist } from "./xform/hoist"; +import { hoistResult, xfHoist, xfHoistResult } from "./xform/hoist"; import { join, xfJoin } from "./xform/join"; import { xfFloat, xfInt } from "./xform/number"; import { print } from "./xform/print"; -import { always } from "./prims/always"; import { withID } from "./xform/with-id"; const apos = litD("'"); @@ -45,7 +48,7 @@ const REPEAT = maybe( [ litD("{"), UINT, - maybe(hoist(seq([litD(","), UINT]))), + maybe(hoistResult(seq([litD(","), UINT]))), litD("}"), ], "repeatN" @@ -68,9 +71,11 @@ const CHAR_SEL = seq( "charSel" ); -const LIT = hoist(seq([apos, CHAR_OR_ESC, apos], "char")); +const LIT = hoistResult(seq([apos, CHAR_OR_ESC, apos], "char")); -const STRING = hoist(seq([quote, stringOf(noneOfP('"')), quote], "string")); +const STRING = join( + seq([quote, zeroOrMore(alt([UNICODE, ESC, noneOf('"')])), quote], "string") +); const SYM = join(oneOrMore(alt([ALPHA_NUM, oneOf(".-_$")]), "sym")); @@ -91,7 +96,7 @@ const ALT = seq( "alt" ); -const RULE_XF = hoist(seq([stringD("=>"), WS1, SYM, WS1], "xform")); +const RULE_XF = hoistResult(seq([stringD("=>"), WS1, SYM, WS1], "xform")); const RULE = seq( [ @@ -129,7 +134,7 @@ compile.addAll({ ); for (let r of rules) { const id = first(r).result; - lang.rules[id].set(compile(r, lang, opts)); + (>lang.rules[id]).set(compile(r, lang, opts)); } return lang; }, @@ -237,6 +242,7 @@ export const defGrammar = ( float: xfFloat, hex: xfInt(16), hoist: xfHoist, + hoistR: xfHoistResult, int: xfInt(10), join: xfJoin, ...env, @@ -244,12 +250,27 @@ export const defGrammar = ( const ctx = defContext(rules); const result = (opts.debug ? print(GRAMMAR) : GRAMMAR)(ctx); if (result) { - return ( - compile( - ctx.root, - { env, grammar: ctx, rules: {} }, - opts - ) + return compile( + ctx.root, + { + env, + grammar: ctx, + rules: { + ALPHA_NUM, + ALPHA, + DIGIT, + ESC, + FLOAT, + HEX_DIGIT, + INT, + STRING, + UNICODE, + WS, + WS0, + WS1, + }, + }, + opts ); } }; diff --git a/packages/parse/src/xform/hoist.ts b/packages/parse/src/xform/hoist.ts index f05d01af06..38f449e83c 100644 --- a/packages/parse/src/xform/hoist.ts +++ b/packages/parse/src/xform/hoist.ts @@ -2,12 +2,22 @@ import { Parser, ScopeTransform } from "../api"; import { xform } from "../combinators/xform"; /** - * Moves the result of first child node to this node, then discards all - * children. Also see {@link hoist}. + * Replace AST node with its first child node. Also see {@link hoist}. * * @param scope */ export const xfHoist: ScopeTransform = (scope) => { + Object.assign(scope, scope!.children![0]); + return scope; +}; + +/** + * Moves the result of first child node to this node, then discards all + * children. Also see {@link hoistR}. + * + * @param scope + */ +export const xfHoistResult: ScopeTransform = (scope) => { scope!.result = scope!.children![0].result; scope!.children = null; return scope; @@ -19,3 +29,11 @@ export const xfHoist: ScopeTransform = (scope) => { * @param parser */ export const hoist = (parser: Parser) => xform(parser, xfHoist); + +/** + * Syntax sugar for `xform(parser, xfHoistR)`. + * + * @param parser + */ +export const hoistResult = (parser: Parser) => + xform(parser, xfHoistResult); From a3dae6ee1c54b42f789947e6e7fcc39a92e5cbcb Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 21 Apr 2020 11:41:51 +0100 Subject: [PATCH 52/78] refactor(parse): update wrap() combinator --- packages/parse/src/combinators/wrap.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/parse/src/combinators/wrap.ts b/packages/parse/src/combinators/wrap.ts index 62404f71ef..d072aa58ee 100644 --- a/packages/parse/src/combinators/wrap.ts +++ b/packages/parse/src/combinators/wrap.ts @@ -3,9 +3,5 @@ import { litD } from "../prims/lit"; import { hoist } from "../xform/hoist"; import { seq } from "./seq"; -export const wrap = ( - parser: Parser, - pre: T, - post: T = pre, - id = "wrap" -) => hoist(seq([litD(pre), parser, litD(post)], id)); +export const wrap = (parser: Parser, pre: T, post: T = pre) => + hoist(seq([litD(pre), parser, litD(post)])); From c38f3acc37f53fbddecbaf1c92ebe9aa9c5ed248 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 21 Apr 2020 12:03:22 +0100 Subject: [PATCH 53/78] docs(parse): update readme --- packages/parse/README.md | 86 +++++++++++++++++++++++++++--------- packages/parse/tpl.readme.md | 83 +++++++++++++++++++++++++--------- 2 files changed, 126 insertions(+), 43 deletions(-) diff --git a/packages/parse/README.md b/packages/parse/README.md index 358e6bcbbb..20a1599a39 100644 --- a/packages/parse/README.md +++ b/packages/parse/README.md @@ -23,6 +23,7 @@ This project is part of the - [Transformers](#transformers) - [Grammar definition](#grammar-definition) - [Examples](#examples) + - [S-expression DSL](#s-expression-dsl) - [SVG path parser example](#svg-path-parser-example) - [RPN parser & interpreter example](#rpn-parser--interpreter-example) - [Authors](#authors) @@ -56,7 +57,7 @@ Purely functional parser combinators & AST generation for generic inputs. yarn add @thi.ng/parse ``` -Package sizes (gzipped, pre-treeshake): ESM: 4.44 KB / CJS: 4.77 KB / UMD: 4.46 KB +Package sizes (gzipped, pre-treeshake): ESM: 4.49 KB / CJS: 4.83 KB / UMD: 4.55 KB ## Dependencies @@ -206,48 +207,89 @@ transforms](#transformers): - `collect` - collect sub terms into array - `discard` - discard result -- `hoist` - use result of 1st child term only +- `hoist` - replace AST node with its 1st child +- `hoistR` - use result of 1st child term only - `join` - join sub terms into single string - `float` - parse as floating point number - `int` - parse as integer - `hex` - parse as hex int +For convenience, the following built-in parser presets are available as +rule references in the grammar definition as well: + +- `ALPHA` +- `ALPHA_NUM` +- `DIGIT` +- `ESC` +- `FLOAT` +- `HEX_DIGIT` +- `INT` +- `STRING` +- `UNICODE` +- `WS` +- `WS0` +- `WS1` + +## Examples + +### S-expression DSL + +(Also see +[@thi.ng/defmulti](https://github.com/thi-ng/umbrella/tree/develop/packages/defmulti) +as a useful tool for processing/interpreting/compiling the result AST) + ```ts -// define language +// define language via grammar DSL +// the upper-cased rule names are built-ins const lang = defGrammar(` -ws: ' '+ => discard ; -sym: [a-z] [a-z0-9_]* => join ; -num: [0-9]+ => int ; -program: ( | | )* ; +lopen: '(' => discard ; +lclose: ')' => discard ; +list: ; +sym: ( | [?!$+\\u002d*/.~#^=<>] )+ => join ; +expr: ( | | | | )* ; `); // define input & parser context -const ctx = defContext("1 2 add 3 mul"); +const ctx = defContext(` +(def hello (x) (str "hello, " x)) + +(print (hello 42)) +`); // parse & print AST -print(lang.rules.program)(ctx) -// program: null -// num: 1 -// num: 2 -// sym: "add" -// num: 3 -// sym: "mul" +print(lang.rules.expr)(ctx) +// expr: null +// list: null +// expr: null +// sym: "def" +// sym: "hello" +// list: null +// expr: null +// sym: "x" +// list: null +// expr: null +// sym: "str" +// string: "hello, " +// sym: "x" +// list: null +// expr: null +// sym: "print" +// list: null +// expr: null +// sym: "hello" +// real: 42 // parse result // true +// the two top-level s-expressions... ctx.children // [ -// { id: 'num', state: null, children: null, result: 1 }, -// { id: 'num', state: null, children: null, result: 2 }, -// { id: 'sym', state: null, children: null, result: 'add' }, -// { id: 'num', state: null, children: null, result: 3 }, -// { id: 'sym', state: null, children: null, result: 'mul' } +// { id: 'list', state: null, children: [ [Object] ], result: null }, +// { id: 'list', state: null, children: [ [Object] ], result: null } // ] ``` -## Examples - ### SVG path parser example ```ts diff --git a/packages/parse/tpl.readme.md b/packages/parse/tpl.readme.md index bec4575696..62abd0b346 100644 --- a/packages/parse/tpl.readme.md +++ b/packages/parse/tpl.readme.md @@ -190,48 +190,89 @@ transforms](#transformers): - `collect` - collect sub terms into array - `discard` - discard result -- `hoist` - use result of 1st child term only +- `hoist` - replace AST node with its 1st child +- `hoistR` - use result of 1st child term only - `join` - join sub terms into single string - `float` - parse as floating point number - `int` - parse as integer - `hex` - parse as hex int +For convenience, the following built-in parser presets are available as +rule references in the grammar definition as well: + +- `ALPHA` +- `ALPHA_NUM` +- `DIGIT` +- `ESC` +- `FLOAT` +- `HEX_DIGIT` +- `INT` +- `STRING` +- `UNICODE` +- `WS` +- `WS0` +- `WS1` + +## Examples + +### S-expression DSL + +(Also see +[@thi.ng/defmulti](https://github.com/thi-ng/umbrella/tree/develop/packages/defmulti) +as a useful tool for processing/interpreting/compiling the result AST) + ```ts -// define language +// define language via grammar DSL +// the upper-cased rule names are built-ins const lang = defGrammar(` -ws: ' '+ => discard ; -sym: [a-z] [a-z0-9_]* => join ; -num: [0-9]+ => int ; -program: ( | | )* ; +lopen: '(' => discard ; +lclose: ')' => discard ; +list: ; +sym: ( | [?!$+\\u002d*/.~#^=<>] )+ => join ; +expr: ( | | | | )* ; `); // define input & parser context -const ctx = defContext("1 2 add 3 mul"); +const ctx = defContext(` +(def hello (x) (str "hello, " x)) + +(print (hello 42)) +`); // parse & print AST -print(lang.rules.program)(ctx) -// program: null -// num: 1 -// num: 2 -// sym: "add" -// num: 3 -// sym: "mul" +print(lang.rules.expr)(ctx) +// expr: null +// list: null +// expr: null +// sym: "def" +// sym: "hello" +// list: null +// expr: null +// sym: "x" +// list: null +// expr: null +// sym: "str" +// string: "hello, " +// sym: "x" +// list: null +// expr: null +// sym: "print" +// list: null +// expr: null +// sym: "hello" +// real: 42 // parse result // true +// the two top-level s-expressions... ctx.children // [ -// { id: 'num', state: null, children: null, result: 1 }, -// { id: 'num', state: null, children: null, result: 2 }, -// { id: 'sym', state: null, children: null, result: 'add' }, -// { id: 'num', state: null, children: null, result: 3 }, -// { id: 'sym', state: null, children: null, result: 'mul' } +// { id: 'list', state: null, children: [ [Object] ], result: null }, +// { id: 'list', state: null, children: [ [Object] ], result: null } // ] ``` -## Examples - ### SVG path parser example ```ts From 066bd8bef8111d17ec17ca61abcc7a5874044ef5 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 21 Apr 2020 12:21:13 +0100 Subject: [PATCH 54/78] build: update make-module script --- scripts/make-module | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/make-module b/scripts/make-module index 478719204b..5c6130fa39 100755 --- a/scripts/make-module +++ b/scripts/make-module @@ -76,14 +76,14 @@ cat << EOF > "$MODULE"/package.json "@microsoft/api-extractor": "^7.7.8", "@types/mocha": "^7.0.1", "@types/node": "^13.7.4", - "mocha": "^7.0.1", + "mocha": "^7.1.1", "nyc": "^15.0.0", "ts-node": "^8.6.2", "typedoc": "^0.16.10", "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.9.0" + "@thi.ng/api": "^6.10.1" }, "files": [ "*.js", From 1e530795888d4712682cbb0b9324965aef6f49e1 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 21 Apr 2020 12:21:32 +0100 Subject: [PATCH 55/78] Publish - @thi.ng/parse@0.4.0 - @thi.ng/webgl-msdf@0.1.25 - @thi.ng/webgl-shadertoy@0.2.12 - @thi.ng/webgl@1.0.7 --- packages/parse/CHANGELOG.md | 16 ++++++++++++++++ packages/parse/package.json | 2 +- packages/webgl-msdf/CHANGELOG.md | 8 ++++++++ packages/webgl-msdf/package.json | 4 ++-- packages/webgl-shadertoy/CHANGELOG.md | 8 ++++++++ packages/webgl-shadertoy/package.json | 4 ++-- packages/webgl/CHANGELOG.md | 11 +++++++++++ packages/webgl/package.json | 2 +- 8 files changed, 49 insertions(+), 6 deletions(-) diff --git a/packages/parse/CHANGELOG.md b/packages/parse/CHANGELOG.md index d5d6e2edc1..cd34d30d66 100644 --- a/packages/parse/CHANGELOG.md +++ b/packages/parse/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.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.3.0...@thi.ng/parse@0.4.0) (2020-04-21) + + +### Bug Fixes + +* **parse:** update not() behavior, add passD() ([1d0f4c4](https://github.com/thi-ng/umbrella/commit/1d0f4c4baef5b1cfb207f606f4e3873a14c3afce)) + + +### Features + +* **parse:** update grammar DSL, hoist xforms ([861e7f3](https://github.com/thi-ng/umbrella/commit/861e7f32d98a9f693a9271d31235d1603700b36c)) + + + + + # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.2.0...@thi.ng/parse@0.3.0) (2020-04-20) diff --git a/packages/parse/package.json b/packages/parse/package.json index 3bc9d49210..040ee63961 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/parse", - "version": "0.3.0", + "version": "0.4.0", "description": "Purely functional parser combinators & AST generation for generic inputs", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/webgl-msdf/CHANGELOG.md b/packages/webgl-msdf/CHANGELOG.md index a75f64f793..32882c61c8 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.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.24...@thi.ng/webgl-msdf@0.1.25) (2020-04-21) + +**Note:** Version bump only for package @thi.ng/webgl-msdf + + + + + ## [0.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.23...@thi.ng/webgl-msdf@0.1.24) (2020-04-20) **Note:** Version bump only for package @thi.ng/webgl-msdf diff --git a/packages/webgl-msdf/package.json b/packages/webgl-msdf/package.json index 180dd7e989..c9e680b0a9 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.24", + "version": "0.1.25", "description": "Multi-channel SDF font rendering & basic text layout for WebGL", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "@thi.ng/transducers": "^6.4.6", "@thi.ng/vector-pools": "^1.0.22", "@thi.ng/vectors": "^4.2.6", - "@thi.ng/webgl": "^1.0.6", + "@thi.ng/webgl": "^1.0.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/webgl-shadertoy/CHANGELOG.md b/packages/webgl-shadertoy/CHANGELOG.md index a47edae6af..21e68d9fa9 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.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.11...@thi.ng/webgl-shadertoy@0.2.12) (2020-04-21) + +**Note:** Version bump only for package @thi.ng/webgl-shadertoy + + + + + ## [0.2.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.10...@thi.ng/webgl-shadertoy@0.2.11) (2020-04-20) **Note:** Version bump only for package @thi.ng/webgl-shadertoy diff --git a/packages/webgl-shadertoy/package.json b/packages/webgl-shadertoy/package.json index 25cab52284..b00f2ab56b 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.11", + "version": "0.2.12", "description": "Basic WebGL scaffolding for running interactive fragment shaders via @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -42,7 +42,7 @@ "@thi.ng/shader-ast": "^0.3.16", "@thi.ng/shader-ast-glsl": "^0.1.22", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/webgl": "^1.0.6", + "@thi.ng/webgl": "^1.0.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/webgl/CHANGELOG.md b/packages/webgl/CHANGELOG.md index 35d143c9fa..6a9e7cce8c 100644 --- a/packages/webgl/CHANGELOG.md +++ b/packages/webgl/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. +## [1.0.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@1.0.6...@thi.ng/webgl@1.0.7) (2020-04-21) + + +### Bug Fixes + +* **webgl:** unbind fbo after configure ([25414b5](https://github.com/thi-ng/umbrella/commit/25414b598211c05597714bc07d16a5f6a6249e5f)) + + + + + ## [1.0.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@1.0.5...@thi.ng/webgl@1.0.6) (2020-04-20) **Note:** Version bump only for package @thi.ng/webgl diff --git a/packages/webgl/package.json b/packages/webgl/package.json index 6f20629c5b..044e5e9552 100644 --- a/packages/webgl/package.json +++ b/packages/webgl/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/webgl", - "version": "1.0.6", + "version": "1.0.7", "description": "WebGL & GLSL abstraction layer", "module": "./index.js", "main": "./lib/index.js", From 642abb4fced97f4437e46d632b00449ef0904a82 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 21 Apr 2020 17:22:53 +0100 Subject: [PATCH 56/78] build(parse): add missing deps --- packages/parse/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/parse/package.json b/packages/parse/package.json index 040ee63961..9b54d013d6 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -40,6 +40,7 @@ "dependencies": { "@thi.ng/api": "^6.10.0", "@thi.ng/checks": "^2.6.2", + "@thi.ng/defmulti": "^1.2.11", "@thi.ng/errors": "^1.2.10", "@thi.ng/strings": "^1.8.4" }, From 0603a1459a7a4b5991021146b9ec7af157cc146b Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 21 Apr 2020 17:45:00 +0100 Subject: [PATCH 57/78] Publish - @thi.ng/parse@0.4.1 --- packages/parse/CHANGELOG.md | 8 ++++++++ packages/parse/package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/parse/CHANGELOG.md b/packages/parse/CHANGELOG.md index cd34d30d66..fdfc9539db 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.4.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.4.0...@thi.ng/parse@0.4.1) (2020-04-21) + +**Note:** Version bump only for package @thi.ng/parse + + + + + # [0.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.3.0...@thi.ng/parse@0.4.0) (2020-04-21) diff --git a/packages/parse/package.json b/packages/parse/package.json index 9b54d013d6..b91e1c6acb 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/parse", - "version": "0.4.0", + "version": "0.4.1", "description": "Purely functional parser combinators & AST generation for generic inputs", "module": "./index.js", "main": "./lib/index.js", From a4b1ec0fd14c97017e5e7f8c034f8e5f83ef3d96 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 21 Apr 2020 17:46:10 +0100 Subject: [PATCH 58/78] docs(parse): update readme --- packages/parse/README.md | 19 ++++++++++++------- packages/parse/tpl.readme.md | 18 +++++++++++------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/packages/parse/README.md b/packages/parse/README.md index 20a1599a39..9cc292720d 100644 --- a/packages/parse/README.md +++ b/packages/parse/README.md @@ -63,6 +63,7 @@ Package sizes (gzipped, pre-treeshake): ESM: 4.49 KB / CJS: 4.83 KB / UMD: 4.55 - [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/develop/packages/api) - [@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/errors](https://github.com/thi-ng/umbrella/tree/develop/packages/errors) - [@thi.ng/strings](https://github.com/thi-ng/umbrella/tree/develop/packages/strings) @@ -105,7 +106,7 @@ Source: - `lit` / `litD` / `litP` - `noneOf` / `noneOfD` / `noneOfP` - `oneOf` / `oneOfD` / `oneOfP` -- `pass` +- `pass` / `passD` - `range` / `rangeD` / `rangeP` - `satisfy` / `satisfyD` - `skipWhile` @@ -146,7 +147,7 @@ Syntax sugars for `xform(parser, fn)`: - `collect` - `discard` -- `hoist` +- `hoist` / `hoistResult` - `join` - `print` @@ -156,7 +157,7 @@ Actual transforms: - `xfCollect` - `xfDiscard` - `xfFloat` -- `xfHoist` +- `xfHoist` / `xfHoistResult` - `xfInt(radix)` - `xfJoin` - `xfPrint` @@ -181,13 +182,17 @@ program: ( | | )* ; Here, each line is a single parse rule definition, with each rule consisting of a sequence of one or more: -- `'x'` - single char literal (also supports `\uXXXX` unicode escapes) -- `"abc"` - mutli-char string -- `[a-z0-9!@]` - regex style char set (incl. char range support) +- `'x'` - single char literal +- `"abc"` - multi-char string +- `[a-z0-9!@]` - regex style char set (incl. char range support, inversion via `^`) - `` - rule references (order independent) - `( term | ... | )` - choice of sub-terms -Each of these terms can be immediately followed by one of these regexp +Literals, strings and char sets can include `\uXXXX` unicode escapes (if +given within a JS source string, double escaping must be used, i.e. +`\\uXXXX`). + +All of these terms can be immediately followed by one of these regexp style repetition specs: - `?` - zero or one occurrence diff --git a/packages/parse/tpl.readme.md b/packages/parse/tpl.readme.md index 62abd0b346..dcff9b9979 100644 --- a/packages/parse/tpl.readme.md +++ b/packages/parse/tpl.readme.md @@ -88,7 +88,7 @@ Source: - `lit` / `litD` / `litP` - `noneOf` / `noneOfD` / `noneOfP` - `oneOf` / `oneOfD` / `oneOfP` -- `pass` +- `pass` / `passD` - `range` / `rangeD` / `rangeP` - `satisfy` / `satisfyD` - `skipWhile` @@ -129,7 +129,7 @@ Syntax sugars for `xform(parser, fn)`: - `collect` - `discard` -- `hoist` +- `hoist` / `hoistResult` - `join` - `print` @@ -139,7 +139,7 @@ Actual transforms: - `xfCollect` - `xfDiscard` - `xfFloat` -- `xfHoist` +- `xfHoist` / `xfHoistResult` - `xfInt(radix)` - `xfJoin` - `xfPrint` @@ -164,13 +164,17 @@ program: ( | | )* ; Here, each line is a single parse rule definition, with each rule consisting of a sequence of one or more: -- `'x'` - single char literal (also supports `\uXXXX` unicode escapes) -- `"abc"` - mutli-char string -- `[a-z0-9!@]` - regex style char set (incl. char range support) +- `'x'` - single char literal +- `"abc"` - multi-char string +- `[a-z0-9!@]` - regex style char set (incl. char range support, inversion via `^`) - `` - rule references (order independent) - `( term | ... | )` - choice of sub-terms -Each of these terms can be immediately followed by one of these regexp +Literals, strings and char sets can include `\uXXXX` unicode escapes (if +given within a JS source string, double escaping must be used, i.e. +`\\uXXXX`). + +All of these terms can be immediately followed by one of these regexp style repetition specs: - `?` - zero or one occurrence From 34cad0eee8cd6d555ddc8ed718858b6885519f85 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 22 Apr 2020 20:21:58 +0100 Subject: [PATCH 59/78] feat(vectors): add equals/2/3/4() --- packages/vectors/src/equals.ts | 13 +++++++++++++ packages/vectors/src/index.ts | 1 + 2 files changed, 14 insertions(+) create mode 100644 packages/vectors/src/equals.ts diff --git a/packages/vectors/src/equals.ts b/packages/vectors/src/equals.ts new file mode 100644 index 0000000000..6204a4a9c2 --- /dev/null +++ b/packages/vectors/src/equals.ts @@ -0,0 +1,13 @@ +import { equivArrayLike } from "@thi.ng/equiv"; +import { MultiVecOpRoVV } from "./api"; +import { vop } from "./internal/vop"; + +export const equals: MultiVecOpRoVV = vop(0); + +equals.add(2, (a, b) => a[0] === b[0] && a[1] === b[1]); +equals.add(3, (a, b) => a[0] === b[0] && a[1] === b[1] && a[2] === b[2]); +equals.add( + 4, + (a, b) => a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] +); +equals.default(equivArrayLike); diff --git a/packages/vectors/src/index.ts b/packages/vectors/src/index.ts index c5e97ca482..4ddd9039cc 100644 --- a/packages/vectors/src/index.ts +++ b/packages/vectors/src/index.ts @@ -59,6 +59,7 @@ export * from "./dotc"; export * from "./dots"; export * from "./empty"; export * from "./eqdelta"; +export * from "./equals"; export * from "./every"; export * from "./exp"; export * from "./exp_2"; From e34c44d624026bbce946d904c5b861f7a48fd484 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 22 Apr 2020 23:51:38 +0100 Subject: [PATCH 60/78] feat(geom-accel): add 2d/3d spatial grids --- packages/geom-accel/package.json | 1 + packages/geom-accel/src/aspatial-grid.ts | 175 +++++++++++++++++++++++ packages/geom-accel/src/index.ts | 2 + packages/geom-accel/src/spatial-grid2.ts | 70 +++++++++ packages/geom-accel/src/spatial-grid3.ts | 80 +++++++++++ packages/geom-accel/src/utils.ts | 2 + 6 files changed, 330 insertions(+) create mode 100644 packages/geom-accel/src/aspatial-grid.ts create mode 100644 packages/geom-accel/src/spatial-grid2.ts create mode 100644 packages/geom-accel/src/spatial-grid3.ts create mode 100644 packages/geom-accel/src/utils.ts diff --git a/packages/geom-accel/package.json b/packages/geom-accel/package.json index 3317677c65..4fba428064 100644 --- a/packages/geom-accel/package.json +++ b/packages/geom-accel/package.json @@ -41,6 +41,7 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/arrays": "^0.6.3", + "@thi.ng/checks": "^2.6.2", "@thi.ng/equiv": "^1.0.19", "@thi.ng/geom-api": "^1.0.11", "@thi.ng/geom-isec": "^0.4.11", diff --git a/packages/geom-accel/src/aspatial-grid.ts b/packages/geom-accel/src/aspatial-grid.ts new file mode 100644 index 0000000000..cebbf74b2f --- /dev/null +++ b/packages/geom-accel/src/aspatial-grid.ts @@ -0,0 +1,175 @@ +import type { Fn, Nullable, Pair } from "@thi.ng/api"; +import { IRegionQuery, ISpatialMap } from "@thi.ng/geom-api"; +import { Heap } from "@thi.ng/heaps"; +import { EPS } from "@thi.ng/math"; +import { map } from "@thi.ng/transducers"; +import { + div, + equals, + floor, + ReadonlyVec, + subN, + VecOpRoVV, +} from "@thi.ng/vectors"; + +/** + * Common base class for {@link SpatialGrid2} and {@link SpatialGrid3}. + * + * @internal + */ +export abstract class ASpatialGrid + implements IRegionQuery, ISpatialMap { + protected _cells!: Nullable[]>[]; + protected _num: number; + protected _invSize: ReadonlyVec; + protected _res1: ReadonlyVec; + + constructor( + protected _min: ReadonlyVec, + protected _size: ReadonlyVec, + protected _res: ReadonlyVec + ) { + floor(null, this._res); + this._res1 = subN([], this._res, 1); + this._invSize = div([], this._res, _size); + this._num = 0; + } + + get size() { + return this._num; + } + + *[Symbol.iterator](): IterableIterator> { + const cells = this._cells; + for (let i = cells.length; --i >= 0; ) { + if (cells[i]) yield* cells[i]!; + } + } + + keys(): IterableIterator { + return map((p) => p[0], this); + } + + values(): IterableIterator { + return map((p) => p[1], this); + } + + copy() { + const copy = this.empty(); + copy._num = this._num; + const src = this._cells; + const dest = copy._cells; + for (let i = src.length; --i >= 0; ) { + dest[i] = src[i] ? src[i]!.slice() : null; + } + return copy; + } + + abstract empty(): ASpatialGrid; + + clear() { + this._cells.fill(null); + this._num = 0; + } + + has(k: K, eps = EPS) { + return !!this.find(k, eps); + } + + get(k: K, eps = EPS) { + const pair = this.find(k, eps); + return pair ? pair[1] : undefined; + } + + set(k: K, v: V, eps = EPS) { + if (eps >= 0 && this.query(k, eps, 1).length) return false; + const id = this.findIndex(k); + const cell = this._cells[id]; + if (!cell) { + this._cells[id] = [[k, v]]; + return true; + } + cell.push([k, v]); + this._num++; + return true; + } + + into(pairs: Iterable>, eps = EPS) { + let ok = true; + for (let [k, v] of pairs) { + ok = this.set(k, v, eps) && ok; + } + return ok; + } + + remove(k: K) { + const id = this.findIndex(k); + const cell = this._cells[id]; + if (!cell) return false; + for (let i = cell.length; --i >= 0; ) { + if (equals(cell[i][0], k)) { + cell.splice(i, 1); + this._num--; + return true; + } + } + return false; + } + + query( + q: K, + radius: number, + limit?: number, + acc?: Pair[] + ): Pair[] { + return this.doQuery((p) => p, q, radius, limit, acc); + } + + queryKeys(q: K, radius: number, limit?: number, acc?: K[]): K[] { + return this.doQuery((p) => p[0], q, radius, limit, acc); + } + + queryValues(q: K, radius: number, limit?: number, acc?: V[]): V[] { + return this.doQuery((p) => p[1], q, radius, limit, acc); + } + + protected abstract doQuery( + fn: Fn, T>, + k: K, + r: number, + limit?: number, + acc?: T[] + ): T[]; + + protected queryCell( + dist: VecOpRoVV, + heap: Heap<[number, Nullable>?]>, + c: Pair[], + k: K, + limit: number + ) { + for (let i = c.length; --i >= 0; ) { + const d = dist(c[i][0], k); + if (d <= heap.values[0][0]) { + heap.length >= limit + ? heap.pushPop([d, c[i]]) + : heap.push([d, c[i]]); + } + } + } + + protected find(k: K, eps: number) { + if (eps > 0) { + const res = this.query(k, EPS, 1); + return res.length ? res[0] : undefined; + } + const cell = this._cells[this.findIndex(k)]; + if (cell) { + for (let i = cell.length; --i >= 0; ) { + if (equals(cell[i][0], k)) return cell[i]; + } + } + } + + protected abstract findIndex(k: ReadonlyVec): number; +} diff --git a/packages/geom-accel/src/index.ts b/packages/geom-accel/src/index.ts index c64015325f..e9a6deb83a 100644 --- a/packages/geom-accel/src/index.ts +++ b/packages/geom-accel/src/index.ts @@ -2,3 +2,5 @@ export * from "./kd-tree-map"; export * from "./kd-tree-set"; export * from "./nd-quadtree-map"; export * from "./nd-quadtree-set"; +export * from "./spatial-grid2"; +export * from "./spatial-grid3"; diff --git a/packages/geom-accel/src/spatial-grid2.ts b/packages/geom-accel/src/spatial-grid2.ts new file mode 100644 index 0000000000..929c4b6cfe --- /dev/null +++ b/packages/geom-accel/src/spatial-grid2.ts @@ -0,0 +1,70 @@ +import type { Fn, Nullable, Pair } from "@thi.ng/api"; +import { isNumber } from "@thi.ng/checks"; +import { Heap } from "@thi.ng/heaps"; +import { clamp } from "@thi.ng/math"; +import { addN2, distSq2, ReadonlyVec, subN2, Vec } from "@thi.ng/vectors"; +import { ASpatialGrid } from "./aspatial-grid"; +import { CMP } from "./utils"; + +const TMP: Vec = []; + +export class SpatialGrid2 extends ASpatialGrid { + constructor( + min: ReadonlyVec, + size: ReadonlyVec, + res: ReadonlyVec | number + ) { + super(min, size, isNumber(res) ? [res, res] : res); + this._cells = new Array(this._res[0] * this._res[1]); + } + + copy(): SpatialGrid2 { + return >super.copy(); + } + + empty() { + return new SpatialGrid2(this._min, this._size, this._res); + } + + protected doQuery( + fn: Fn, T>, + k: K, + r: number, + limit = Infinity, + acc: T[] = [] + ) { + const id1 = this.findIndex(subN2(TMP, k, r)); + const id2 = this.findIndex(addN2(TMP, k, r)); + const stride = this._res[0]; + const x1 = id1 % stride; + const x2 = id2 % stride; + const y1 = ((id1 / stride) | 0) * stride; + const y2 = ((id2 / stride) | 0) * stride; + const cells = this._cells; + let c: Nullable[]>; + let x: number, y: number; + r *= r; + const heap = new Heap<[number, Nullable>?]>([[r]], { + compare: CMP, + }); + const sel = heap.values; + for (y = y1; y <= y2; y += stride) { + for (x = x1; x <= x2; x++) { + c = cells[y + x]; + c && c.length && this.queryCell(distSq2, heap, c, k, limit); + } + } + for (let n = sel.sort(CMP).length; --n >= 0; ) { + const s = sel[n][1]; + s && acc.push(fn(s)); + } + return acc; + } + + protected findIndex(k: ReadonlyVec) { + const { _min: min, _res1: res1, _invSize: invSize } = this; + const kx = clamp((k[0] - min[0]) * invSize[0], 0, res1[0]); + const ky = clamp((k[1] - min[1]) * invSize[1], 0, res1[1]); + return (kx | 0) + (ky | 0) * this._res[0]; + } +} diff --git a/packages/geom-accel/src/spatial-grid3.ts b/packages/geom-accel/src/spatial-grid3.ts new file mode 100644 index 0000000000..06ccff421e --- /dev/null +++ b/packages/geom-accel/src/spatial-grid3.ts @@ -0,0 +1,80 @@ +import type { Fn, Nullable, Pair } from "@thi.ng/api"; +import { isNumber } from "@thi.ng/checks"; +import { Heap } from "@thi.ng/heaps"; +import { clamp } from "@thi.ng/math"; +import { addN3, distSq3, ReadonlyVec, subN3, Vec } from "@thi.ng/vectors"; +import { ASpatialGrid } from "./aspatial-grid"; +import { CMP } from "./utils"; + +const TMP: Vec = []; + +export class SpatialGrid3 extends ASpatialGrid { + protected _stride: ReadonlyVec; + + constructor( + min: ReadonlyVec, + size: ReadonlyVec, + res: ReadonlyVec | number + ) { + super(min, size, isNumber(res) ? [res, res, res] : res); + this._cells = new Array(this._res[0] * this._res[1] * this._res[2]); + this._stride = [this._res[0], this._res[0] * this._res[1]]; + } + + copy(): SpatialGrid3 { + return >super.copy(); + } + + empty() { + return new SpatialGrid3(this._min, this._size, this._res); + } + + protected doQuery( + fn: Fn, T>, + k: K, + r: number, + limit = Infinity, + acc: T[] = [] + ) { + const id1 = this.findIndex(subN3(TMP, k, r)); + const id2 = this.findIndex(addN3(TMP, k, r)); + const [width, slice] = this._stride; + const x1 = id1 % width; + const x2 = id2 % width; + const y1 = ((id1 / width) | 0) * width; + const y2 = ((id2 / width) | 0) * width; + const z1 = ((id1 / slice) | 0) * slice; + const z2 = ((id2 / slice) | 0) * slice; + const cells = this._cells; + let c: Nullable[]>; + let x: number, y: number, z: number; + r *= r; + const heap = new Heap<[number, Nullable>?]>([[r]], { + compare: CMP, + }); + const sel = heap.values; + for (z = z1; z <= z2; z += slice) { + for (y = y1; y <= y2; y += width) { + for (x = x1; x <= x2; x++) { + c = cells[z + y + x]; + c && c.length && this.queryCell(distSq3, heap, c, k, limit); + } + } + } + for (let n = sel.sort(CMP).length; --n >= 0; ) { + const s = sel[n][1]; + s && acc.push(fn(s)); + } + return acc; + } + + protected findIndex(k: ReadonlyVec) { + const { _min: min, _res1: res1, _invSize: invSize } = this; + const kx = clamp((k[0] - min[0]) * invSize[0], 0, res1[0]); + const ky = clamp((k[1] - min[1]) * invSize[1], 0, res1[1]); + const kz = clamp((k[2] - min[2]) * invSize[2], 0, res1[2]); + return ( + (kx | 0) + (ky | 0) * this._stride[0] + (kz | 0) * this._stride[1] + ); + } +} diff --git a/packages/geom-accel/src/utils.ts b/packages/geom-accel/src/utils.ts new file mode 100644 index 0000000000..e81a519b51 --- /dev/null +++ b/packages/geom-accel/src/utils.ts @@ -0,0 +1,2 @@ +/** @internal */ +export const CMP = (a: [number, any?], b: [number, any?]) => b[0] - a[0]; From b322d953d88e5b03e3fa15fa7393c2a625b6fc2a Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 23 Apr 2020 00:02:29 +0100 Subject: [PATCH 61/78] refactor(geom-accel): extract addResults(), update imports --- packages/geom-accel/src/kd-tree-map.ts | 20 +++------ packages/geom-accel/src/nd-quadtree-map.ts | 49 ++++++++-------------- packages/geom-accel/src/spatial-grid2.ts | 8 +--- packages/geom-accel/src/spatial-grid3.ts | 8 +--- packages/geom-accel/src/utils.ts | 15 +++++++ 5 files changed, 42 insertions(+), 58 deletions(-) diff --git a/packages/geom-accel/src/kd-tree-map.ts b/packages/geom-accel/src/kd-tree-map.ts index 5f67f58c30..e920f5654f 100644 --- a/packages/geom-accel/src/kd-tree-map.ts +++ b/packages/geom-accel/src/kd-tree-map.ts @@ -1,20 +1,14 @@ +import type { Fn, ICopy, IEmpty, Pair } from "@thi.ng/api"; import { ensureArray } from "@thi.ng/arrays"; +import type { IRegionQuery, ISpatialMap } from "@thi.ng/geom-api"; import { Heap } from "@thi.ng/heaps"; import { EPS } from "@thi.ng/math"; import { map } from "@thi.ng/transducers"; import { distSq, ReadonlyVec, Vec } from "@thi.ng/vectors"; -import type { - Fn, - ICopy, - IEmpty, - Pair -} from "@thi.ng/api"; -import type { IRegionQuery, ISpatialMap } from "@thi.ng/geom-api"; +import { CMP, addResults } from "./utils"; type MaybeKdNode = KdNode | undefined; -const CMP = (a: [number, any], b: [number, any]) => b[0] - a[0]; - export class KdNode { d: number; parent?: KdNode; @@ -219,15 +213,11 @@ export class KdTreeMap const nodes = new Heap<[number, MaybeKdNode]>( [[maxDist, undefined]], { - compare: CMP + compare: CMP, } ); nearest(q, nodes, this.dim, maxNum, this.root!); - const sel = nodes.values.sort(CMP); - for (let n = sel.length; --n >= 0; ) { - const s = sel[n][1]; - s && acc.push(f(s)); - } + return addResults(f, nodes.values, acc); } return acc; } diff --git a/packages/geom-accel/src/nd-quadtree-map.ts b/packages/geom-accel/src/nd-quadtree-map.ts index ce9bb53313..0c617c9f92 100644 --- a/packages/geom-accel/src/nd-quadtree-map.ts +++ b/packages/geom-accel/src/nd-quadtree-map.ts @@ -1,15 +1,11 @@ import { assert } from "@thi.ng/api"; +import type { Fn, ICopy, IEmpty, Pair } from "@thi.ng/api"; import { equivArrayLike } from "@thi.ng/equiv"; +import type { IRegionQuery, ISpatialMap } from "@thi.ng/geom-api"; import { pointInCenteredBox, testCenteredBoxSphere } from "@thi.ng/geom-isec"; import { Heap } from "@thi.ng/heaps"; import { EPS } from "@thi.ng/math"; -import { - iterate, - map, - permutations, - repeat, - take -} from "@thi.ng/transducers"; +import { iterate, map, permutations, repeat, take } from "@thi.ng/transducers"; import { addmN, distSq, @@ -18,17 +14,9 @@ import { MultiVecOpRoVV, ReadonlyVec, submN, - vop + vop, } from "@thi.ng/vectors"; -import type { - Fn, - ICopy, - IEmpty, - Pair -} from "@thi.ng/api"; -import type { IRegionQuery, ISpatialMap } from "@thi.ng/geom-api"; - -const CMP = (a: [number, any?], b: [number, any?]) => b[0] - a[0]; +import { CMP, addResults } from "./utils"; export class NdQtNode { pos: ReadonlyVec; @@ -94,19 +82,18 @@ export class NdQtNode { max: number, acc: T[] ) { - const sel = this.doQuery( - p, - r, - max, - new Heap<[number, NdQtNode?]>([[r * r]], { - compare: CMP - }) - ).values.sort(CMP); - for (let n = sel.length; --n >= 0; ) { - const s = sel[n][1]; - s && acc.push(fn(s)); - } - return acc; + return addResults( + fn, + this.doQuery( + p, + r, + max, + new Heap<[number, NdQtNode?]>([[r * r]], { + compare: CMP, + }) + ).values, + acc + ); } queryKeys(p: K, r: number, max: number, acc: K[]): K[] { @@ -350,7 +337,7 @@ const MAX_CHILDREN = [ ...take( NdQuadtreeMap.MAX_DIM + 1, iterate((x) => x * 2, 1) - ) + ), ]; const CHILD_OFFSETS: ReadonlyVec[][] = []; diff --git a/packages/geom-accel/src/spatial-grid2.ts b/packages/geom-accel/src/spatial-grid2.ts index 929c4b6cfe..4416512198 100644 --- a/packages/geom-accel/src/spatial-grid2.ts +++ b/packages/geom-accel/src/spatial-grid2.ts @@ -4,7 +4,7 @@ import { Heap } from "@thi.ng/heaps"; import { clamp } from "@thi.ng/math"; import { addN2, distSq2, ReadonlyVec, subN2, Vec } from "@thi.ng/vectors"; import { ASpatialGrid } from "./aspatial-grid"; -import { CMP } from "./utils"; +import { CMP, addResults } from "./utils"; const TMP: Vec = []; @@ -54,11 +54,7 @@ export class SpatialGrid2 extends ASpatialGrid { c && c.length && this.queryCell(distSq2, heap, c, k, limit); } } - for (let n = sel.sort(CMP).length; --n >= 0; ) { - const s = sel[n][1]; - s && acc.push(fn(s)); - } - return acc; + return addResults(fn, sel, acc); } protected findIndex(k: ReadonlyVec) { diff --git a/packages/geom-accel/src/spatial-grid3.ts b/packages/geom-accel/src/spatial-grid3.ts index 06ccff421e..c30576f3b3 100644 --- a/packages/geom-accel/src/spatial-grid3.ts +++ b/packages/geom-accel/src/spatial-grid3.ts @@ -4,7 +4,7 @@ import { Heap } from "@thi.ng/heaps"; import { clamp } from "@thi.ng/math"; import { addN3, distSq3, ReadonlyVec, subN3, Vec } from "@thi.ng/vectors"; import { ASpatialGrid } from "./aspatial-grid"; -import { CMP } from "./utils"; +import { CMP, addResults } from "./utils"; const TMP: Vec = []; @@ -61,11 +61,7 @@ export class SpatialGrid3 extends ASpatialGrid { } } } - for (let n = sel.sort(CMP).length; --n >= 0; ) { - const s = sel[n][1]; - s && acc.push(fn(s)); - } - return acc; + return addResults(fn, sel, acc); } protected findIndex(k: ReadonlyVec) { diff --git a/packages/geom-accel/src/utils.ts b/packages/geom-accel/src/utils.ts index e81a519b51..4916c22d9b 100644 --- a/packages/geom-accel/src/utils.ts +++ b/packages/geom-accel/src/utils.ts @@ -1,2 +1,17 @@ +import type { Fn, Nullable } from "@thi.ng/api"; + /** @internal */ export const CMP = (a: [number, any?], b: [number, any?]) => b[0] - a[0]; + +/** @internal */ +export const addResults = ( + fn: Fn, + sel: [number, Nullable?][], + acc: B[] +) => { + for (let n = sel.sort(CMP).length; --n >= 0; ) { + const s = sel[n][1]; + s && acc.push(fn(s)); + } + return acc; +}; From a4295f8728f54d78b7706584feeaf6f897f23ada Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 23 Apr 2020 10:59:56 +0100 Subject: [PATCH 62/78] minor(geom-accel): update imports --- packages/geom-accel/src/aspatial-grid.ts | 2 +- packages/geom-accel/src/spatial-grid2.ts | 2 +- packages/geom-accel/src/spatial-grid3.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/geom-accel/src/aspatial-grid.ts b/packages/geom-accel/src/aspatial-grid.ts index cebbf74b2f..e803f3fad7 100644 --- a/packages/geom-accel/src/aspatial-grid.ts +++ b/packages/geom-accel/src/aspatial-grid.ts @@ -1,5 +1,5 @@ import type { Fn, Nullable, Pair } from "@thi.ng/api"; -import { IRegionQuery, ISpatialMap } from "@thi.ng/geom-api"; +import type { IRegionQuery, ISpatialMap } from "@thi.ng/geom-api"; import { Heap } from "@thi.ng/heaps"; import { EPS } from "@thi.ng/math"; import { map } from "@thi.ng/transducers"; diff --git a/packages/geom-accel/src/spatial-grid2.ts b/packages/geom-accel/src/spatial-grid2.ts index 4416512198..d776a34b86 100644 --- a/packages/geom-accel/src/spatial-grid2.ts +++ b/packages/geom-accel/src/spatial-grid2.ts @@ -4,7 +4,7 @@ import { Heap } from "@thi.ng/heaps"; import { clamp } from "@thi.ng/math"; import { addN2, distSq2, ReadonlyVec, subN2, Vec } from "@thi.ng/vectors"; import { ASpatialGrid } from "./aspatial-grid"; -import { CMP, addResults } from "./utils"; +import { addResults, CMP } from "./utils"; const TMP: Vec = []; diff --git a/packages/geom-accel/src/spatial-grid3.ts b/packages/geom-accel/src/spatial-grid3.ts index c30576f3b3..2f1f100b4f 100644 --- a/packages/geom-accel/src/spatial-grid3.ts +++ b/packages/geom-accel/src/spatial-grid3.ts @@ -4,7 +4,7 @@ import { Heap } from "@thi.ng/heaps"; import { clamp } from "@thi.ng/math"; import { addN3, distSq3, ReadonlyVec, subN3, Vec } from "@thi.ng/vectors"; import { ASpatialGrid } from "./aspatial-grid"; -import { CMP, addResults } from "./utils"; +import { addResults, CMP } from "./utils"; const TMP: Vec = []; From b98ac4963c00d7dd3a1179d15c245619cc882b72 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 23 Apr 2020 11:08:29 +0100 Subject: [PATCH 63/78] docs(geom-accel): update readme --- packages/geom-accel/README.md | 19 +++++++++---------- packages/geom-accel/package.json | 12 +++++++++--- packages/geom-accel/tpl.readme.md | 14 ++++++-------- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/packages/geom-accel/README.md b/packages/geom-accel/README.md index 9fe584314f..2b072146c2 100644 --- a/packages/geom-accel/README.md +++ b/packages/geom-accel/README.md @@ -20,21 +20,19 @@ This project is part of the ## About -n-D spatial indexing data structures. +n-D spatial indexing data structures with a shared ES6 Map/Set-like API. Some implementations were ported from the Clojure version of [thi.ng/geom](http://thi.ng/geom). Currently available: -- [k-D Tree](src/kdtree.ts) - -**TODO: reimport / publish** - -- [Grid](src/grid.ts) -- [Quadtree](src/quadtree.ts) -- [Octree](src/octree.ts) -- [Morton / Z-order](src/morton.ts) +- [KdTreeMap](src/kd-tree-map.ts) +- [KdTreeSet](src/kd-tree-set.ts) +- [NdQuadtreeMap](src/nd-quadtree-map.ts) +- [NdQuadtreeSet](src/nd-quadtree-set.ts) +- [SpatialGrid2](src/spatial-grid2.ts) +- [SpatialGrid3](src/spatial-grid3.ts) ### Status @@ -46,12 +44,13 @@ Currently available: yarn add @thi.ng/geom-accel ``` -Package sizes (gzipped, pre-treeshake): ESM: 2.85 KB / CJS: 2.93 KB / UMD: 2.92 KB +Package sizes (gzipped, pre-treeshake): ESM: 3.76 KB / CJS: 3.83 KB / UMD: 3.82 KB ## Dependencies - [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/develop/packages/api) - [@thi.ng/arrays](https://github.com/thi-ng/umbrella/tree/develop/packages/arrays) +- [@thi.ng/checks](https://github.com/thi-ng/umbrella/tree/develop/packages/checks) - [@thi.ng/equiv](https://github.com/thi-ng/umbrella/tree/develop/packages/equiv) - [@thi.ng/geom-api](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-api) - [@thi.ng/geom-isec](https://github.com/thi-ng/umbrella/tree/develop/packages/geom-isec) diff --git a/packages/geom-accel/package.json b/packages/geom-accel/package.json index 4fba428064..fb697fdcc2 100644 --- a/packages/geom-accel/package.json +++ b/packages/geom-accel/package.json @@ -1,7 +1,7 @@ { "name": "@thi.ng/geom-accel", "version": "2.0.11", - "description": "n-D spatial indexing data structures", + "description": "n-D spatial indexing data structures with a shared ES6 Map/Set-like API", "module": "./index.js", "main": "./lib/index.js", "umd:main": "./lib/index.umd.js", @@ -59,12 +59,18 @@ "keywords": [ "2D", "3D", - "nD", + "acceleration", "data structure", "ES6", - "acceleration", + "grid", "kd-tree", + "map", + "nD", + "octtree", "pointcloud", + "quadtree", + "region query", + "set", "spatial index", "tree", "typescript" diff --git a/packages/geom-accel/tpl.readme.md b/packages/geom-accel/tpl.readme.md index 4a11de7ebb..205de30243 100644 --- a/packages/geom-accel/tpl.readme.md +++ b/packages/geom-accel/tpl.readme.md @@ -18,14 +18,12 @@ Some implementations were ported from the Clojure version of Currently available: -- [k-D Tree](src/kdtree.ts) - -**TODO: reimport / publish** - -- [Grid](src/grid.ts) -- [Quadtree](src/quadtree.ts) -- [Octree](src/octree.ts) -- [Morton / Z-order](src/morton.ts) +- [KdTreeMap](src/kd-tree-map.ts) +- [KdTreeSet](src/kd-tree-set.ts) +- [NdQuadtreeMap](src/nd-quadtree-map.ts) +- [NdQuadtreeSet](src/nd-quadtree-set.ts) +- [SpatialGrid2](src/spatial-grid2.ts) +- [SpatialGrid3](src/spatial-grid3.ts) ${status} From 458f5b34a4fa1c58f55b23be8455e6bd7b7bb72d Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 23 Apr 2020 11:40:46 +0100 Subject: [PATCH 64/78] feat(parse): add built-ins, extract STRING, minor updates - add anchors to built-in grammar rules - extract STRING preset parser - add doc strings - add s-expr parser test - update imports - update readme --- packages/parse/README.md | 7 +- packages/parse/src/combinators/boundary.ts | 2 +- packages/parse/src/combinators/wrap.ts | 2 +- packages/parse/src/grammar.ts | 18 ++- packages/parse/src/index.ts | 1 + packages/parse/src/presets/string.ts | 13 ++ packages/parse/src/prims/lit.ts | 5 + packages/parse/src/prims/none-of.ts | 18 +++ packages/parse/src/prims/one-of.ts | 17 +++ packages/parse/src/prims/pass.ts | 2 +- packages/parse/src/prims/range.ts | 19 ++- packages/parse/src/prims/satisfy.ts | 17 +-- packages/parse/src/prims/skip.ts | 2 +- packages/parse/src/prims/string.ts | 2 +- packages/parse/src/xform/collect.ts | 2 +- packages/parse/src/xform/comp.ts | 2 +- packages/parse/src/xform/hoist.ts | 2 +- packages/parse/src/xform/number.ts | 2 +- packages/parse/src/xform/print.ts | 2 +- packages/parse/src/xform/with-id.ts | 2 +- packages/parse/test/sexpr.ts | 133 +++++++++++++++++++++ packages/parse/tpl.readme.md | 5 + 22 files changed, 244 insertions(+), 31 deletions(-) create mode 100644 packages/parse/src/presets/string.ts create mode 100644 packages/parse/test/sexpr.ts diff --git a/packages/parse/README.md b/packages/parse/README.md index 9cc292720d..0ccd4479a2 100644 --- a/packages/parse/README.md +++ b/packages/parse/README.md @@ -57,7 +57,7 @@ Purely functional parser combinators & AST generation for generic inputs. yarn add @thi.ng/parse ``` -Package sizes (gzipped, pre-treeshake): ESM: 4.49 KB / CJS: 4.83 KB / UMD: 4.55 KB +Package sizes (gzipped, pre-treeshake): ESM: 4.51 KB / CJS: 4.86 KB / UMD: 4.57 KB ## Dependencies @@ -225,12 +225,17 @@ rule references in the grammar definition as well: - `ALPHA` - `ALPHA_NUM` - `DIGIT` +- `END` - input end - `ESC` - `FLOAT` - `HEX_DIGIT` - `INT` +- `LEND` - line end +- `LSTART` - line start +- `START` - input start - `STRING` - `UNICODE` +- `WB` - word boundary - `WS` - `WS0` - `WS1` diff --git a/packages/parse/src/combinators/boundary.ts b/packages/parse/src/combinators/boundary.ts index 090577ad57..4c2b5f556b 100644 --- a/packages/parse/src/combinators/boundary.ts +++ b/packages/parse/src/combinators/boundary.ts @@ -1,4 +1,4 @@ -import { Parser } from "../api"; +import type { Parser } from "../api"; import { inputEnd, inputStart, lineEnd, lineStart } from "../prims/anchor"; import { seq } from "./seq"; diff --git a/packages/parse/src/combinators/wrap.ts b/packages/parse/src/combinators/wrap.ts index d072aa58ee..2d9b199c9b 100644 --- a/packages/parse/src/combinators/wrap.ts +++ b/packages/parse/src/combinators/wrap.ts @@ -1,4 +1,4 @@ -import { Parser } from "../api"; +import type { Parser } from "../api"; import { litD } from "../prims/lit"; import { hoist } from "../xform/hoist"; import { seq } from "./seq"; diff --git a/packages/parse/src/grammar.ts b/packages/parse/src/grammar.ts index 9f2caabd51..e558dd523a 100644 --- a/packages/parse/src/grammar.ts +++ b/packages/parse/src/grammar.ts @@ -21,8 +21,16 @@ import { DIGIT } from "./presets/digits"; import { ESC, UNICODE } from "./presets/escape"; import { HEX_DIGIT } from "./presets/hex"; import { FLOAT, INT, UINT } from "./presets/numbers"; +import { STRING } from "./presets/string"; import { WS, WS0, WS1 } from "./presets/whitespace"; import { always } from "./prims/always"; +import { + inputEnd, + inputStart, + lineEnd, + lineStart, + wordBoundary, +} from "./prims/anchor"; import { lit, litD } from "./prims/lit"; import { noneOf } from "./prims/none-of"; import { oneOf } from "./prims/one-of"; @@ -37,7 +45,6 @@ import { print } from "./xform/print"; import { withID } from "./xform/with-id"; const apos = litD("'"); -const quote = litD('"'); const dash = litD("-"); const REPEAT = maybe( @@ -73,10 +80,6 @@ const CHAR_SEL = seq( const LIT = hoistResult(seq([apos, CHAR_OR_ESC, apos], "char")); -const STRING = join( - seq([quote, zeroOrMore(alt([UNICODE, ESC, noneOf('"')])), quote], "string") -); - const SYM = join(oneOrMore(alt([ALPHA_NUM, oneOf(".-_$")]), "sym")); const RULE_REF = seq([litD("<"), SYM, litD(">")], "ref"); @@ -259,12 +262,17 @@ export const defGrammar = ( ALPHA_NUM, ALPHA, DIGIT, + END: inputEnd, ESC, FLOAT, HEX_DIGIT, INT, + LEND: lineEnd, + LSTART: lineStart, + START: inputStart, STRING, UNICODE, + WB: wordBoundary, WS, WS0, WS1, diff --git a/packages/parse/src/index.ts b/packages/parse/src/index.ts index 75a8fa6998..4765c48e86 100644 --- a/packages/parse/src/index.ts +++ b/packages/parse/src/index.ts @@ -21,6 +21,7 @@ export * from "./presets/digits"; export * from "./presets/escape"; export * from "./presets/hex"; export * from "./presets/numbers"; +export * from "./presets/string"; export * from "./presets/whitespace"; export * from "./prims/always"; diff --git a/packages/parse/src/presets/string.ts b/packages/parse/src/presets/string.ts new file mode 100644 index 0000000000..23f410bf3b --- /dev/null +++ b/packages/parse/src/presets/string.ts @@ -0,0 +1,13 @@ +import { alt } from "../combinators/alt"; +import { zeroOrMore } from "../combinators/repeat"; +import { seq } from "../combinators/seq"; +import { litD } from "../prims/lit"; +import { noneOf } from "../prims/none-of"; +import { join } from "../xform/join"; +import { ESC, UNICODE } from "./escape"; + +const quote = litD('"'); + +export const STRING = join( + seq([quote, zeroOrMore(alt([UNICODE, ESC, noneOf('"')])), quote], "string") +); diff --git a/packages/parse/src/prims/lit.ts b/packages/parse/src/prims/lit.ts index ef9edd71ad..d6db7ebe62 100644 --- a/packages/parse/src/prims/lit.ts +++ b/packages/parse/src/prims/lit.ts @@ -1,5 +1,10 @@ import { satisfyD, satisfy } from "./satisfy"; +/** + * HOF predicate for matching given single char literal. + * + * @param c + */ export const litP = (c: T) => (x: T) => x === c; /** diff --git a/packages/parse/src/prims/none-of.ts b/packages/parse/src/prims/none-of.ts index 085e4a1e29..15cdad6f0f 100644 --- a/packages/parse/src/prims/none-of.ts +++ b/packages/parse/src/prims/none-of.ts @@ -3,6 +3,12 @@ import { isPlainObject, isSet } from "@thi.ng/checks"; import type { CharSet, LitParser } from "../api"; import { satisfy, satisfyD } from "./satisfy"; +/** + * HOF predicate for matching single char against given options. Returns + * true if there's no match. + * + * @param opts + */ export const noneOfP = ( opts: string | CharSet | any[] | Set ): Predicate => @@ -12,6 +18,13 @@ export const noneOfP = ( ? (x) => !(opts)[x] : (x) => opts.indexOf(x) < 0; +/** + * Matches single char against given options and only succeeds if + * there's no match. Also see {@link oneOf} for reverse logic. + * + * @param opts + * @param id + */ export function noneOf(opts: string | CharSet, id?: string): LitParser; export function noneOf(opts: T[] | Set, id?: string): LitParser; export function noneOf( @@ -21,6 +34,11 @@ export function noneOf( return satisfy(noneOfP(opts), id); } +/** + * Like {@link noneOf}, but discards result. + * + * @param opts + */ export function noneOfD(opts: string | CharSet): LitParser; export function noneOfD(opts: T[] | Set): LitParser; export function noneOfD(opts: string | CharSet | any[] | Set) { diff --git a/packages/parse/src/prims/one-of.ts b/packages/parse/src/prims/one-of.ts index b17f08bd11..8cc2170efd 100644 --- a/packages/parse/src/prims/one-of.ts +++ b/packages/parse/src/prims/one-of.ts @@ -3,6 +3,11 @@ import { isPlainObject, isSet } from "@thi.ng/checks"; import type { CharSet, LitParser } from "../api"; import { satisfy, satisfyD } from "./satisfy"; +/** + * HOF predicate for matching single char against given options. + * + * @param opts + */ export const oneOfP = ( opts: string | any[] | Set | CharSet ): Predicate => @@ -12,12 +17,24 @@ export const oneOfP = ( ? (x) => (opts)[x] : (x) => opts.indexOf(x) >= 0; +/** + * Matches single char against given options. Also see {@link noneOf} + * for reverse logic. + * + * @param opts + * @param id + */ export function oneOf(opts: string | CharSet, id?: string): LitParser; export function oneOf(opts: T[] | Set, id?: string): LitParser; export function oneOf(opts: string | CharSet | any[] | Set, id = "oneOf") { return satisfy(oneOfP(opts), id); } +/** + * Like {@link oneOf}, but discards result. + * + * @param opts + */ export function oneOfD(opts: string | CharSet): LitParser; export function oneOfD(opts: T[] | Set): LitParser; export function oneOfD(opts: string | CharSet | any[] | Set) { diff --git a/packages/parse/src/prims/pass.ts b/packages/parse/src/prims/pass.ts index cb48a0e154..363ac6564a 100644 --- a/packages/parse/src/prims/pass.ts +++ b/packages/parse/src/prims/pass.ts @@ -1,5 +1,5 @@ import { isFunction } from "@thi.ng/checks"; -import type { PassValue, Parser } from "../api"; +import type { Parser, PassValue } from "../api"; /** * Parser which consumes no input and always succeeds. Adds new AST node diff --git a/packages/parse/src/prims/range.ts b/packages/parse/src/prims/range.ts index 913de04a6a..677d859a47 100644 --- a/packages/parse/src/prims/range.ts +++ b/packages/parse/src/prims/range.ts @@ -1,11 +1,24 @@ import type { NumOrString, Predicate } from "@thi.ng/api"; -import { LitParser } from "../api"; +import type { LitParser } from "../api"; import { satisfy, satisfyD } from "./satisfy"; +/** + * HOF predicate for matching single char within given range. + * + * @param min - + * @param max - + */ export const rangeP = (min: T, max: T): Predicate => ( x ) => x >= min && x <= max; +/** + * HOF predicate for matching single char within given UTF16 codepoint + * range. + * + * @param min - + * @param max - + */ export const utf16RangeP = (min: number, max: number): Predicate => ( x ) => { @@ -26,7 +39,7 @@ export function rangeD(min: NumOrString, max: NumOrString) { } /** - * Matches single char in given UTF-16 code range. + * Matches single char in given UTF-16 codepoint range. * * @param min * @param max @@ -36,7 +49,7 @@ export const utf16Range = (min: number, max: number, id = "utfLit") => satisfy(utf16RangeP(min, max), id); /** - * Matches single char in given UTF-16 code range. + * Matches single char in given UTF-16 codepoint range. * * @param min * @param max diff --git a/packages/parse/src/prims/satisfy.ts b/packages/parse/src/prims/satisfy.ts index c52e2a478f..c27610e2a1 100644 --- a/packages/parse/src/prims/satisfy.ts +++ b/packages/parse/src/prims/satisfy.ts @@ -1,14 +1,12 @@ import type { Predicate } from "@thi.ng/api"; -import type { Parser, LitParser } from "../api"; +import type { LitParser } from "../api"; -export function satisfy(pred: Predicate, id = "lit") { - const parser: Parser = (ctx) => { +export const satisfy = (pred: Predicate, id = "satisfy") => + >((ctx) => { if (ctx.done) return false; const r = ctx.reader.read(ctx.state); return pred(r) ? ctx.addChild(id, r, true) : false; - }; - return >parser; -} + }); /** * Like {@link satisfy}, but avoids creating AST node and discards @@ -16,12 +14,9 @@ export function satisfy(pred: Predicate, id = "lit") { * * @param pred */ -export function satisfyD(pred: Predicate) { - const parser: Parser = (ctx) => { +export const satisfyD = (pred: Predicate) => >((ctx) => { if (ctx.done) return false; const state = ctx.state!; const reader = ctx.reader; return pred(reader.read(state)) ? (reader.next(state), true) : false; - }; - return >parser; -} + }); diff --git a/packages/parse/src/prims/skip.ts b/packages/parse/src/prims/skip.ts index 0a5101a3c7..23175c7ad1 100644 --- a/packages/parse/src/prims/skip.ts +++ b/packages/parse/src/prims/skip.ts @@ -1,5 +1,5 @@ -import type { Parser } from "../api"; import type { Predicate } from "@thi.ng/api"; +import type { Parser } from "../api"; /** * Consumes input, but ignores it as long as given `pred` predicate fn diff --git a/packages/parse/src/prims/string.ts b/packages/parse/src/prims/string.ts index 396768e4ab..83adc956cb 100644 --- a/packages/parse/src/prims/string.ts +++ b/packages/parse/src/prims/string.ts @@ -1,5 +1,5 @@ +import type { Fn, Predicate } from "@thi.ng/api"; import type { Parser } from "../api"; -import { Predicate, Fn } from "@thi.ng/api"; export const string = (str: ArrayLike, id = "string"): Parser => ( ctx diff --git a/packages/parse/src/xform/collect.ts b/packages/parse/src/xform/collect.ts index ddbdc16277..d302b4b1a4 100644 --- a/packages/parse/src/xform/collect.ts +++ b/packages/parse/src/xform/collect.ts @@ -1,4 +1,4 @@ -import { Parser, ScopeTransform } from "../api"; +import type { Parser, ScopeTransform } from "../api"; import { xform } from "../combinators/xform"; /** diff --git a/packages/parse/src/xform/comp.ts b/packages/parse/src/xform/comp.ts index bfa914c190..61329915e0 100644 --- a/packages/parse/src/xform/comp.ts +++ b/packages/parse/src/xform/comp.ts @@ -1,4 +1,4 @@ -import { ScopeTransform } from "../api"; +import type { ScopeTransform } from "../api"; /** * Takes any number of {@link ScopeTransform}s and composes them into diff --git a/packages/parse/src/xform/hoist.ts b/packages/parse/src/xform/hoist.ts index 38f449e83c..6c996d0281 100644 --- a/packages/parse/src/xform/hoist.ts +++ b/packages/parse/src/xform/hoist.ts @@ -1,4 +1,4 @@ -import { Parser, ScopeTransform } from "../api"; +import type { Parser, ScopeTransform } from "../api"; import { xform } from "../combinators/xform"; /** diff --git a/packages/parse/src/xform/number.ts b/packages/parse/src/xform/number.ts index bc081f97d2..df4c9ca76a 100644 --- a/packages/parse/src/xform/number.ts +++ b/packages/parse/src/xform/number.ts @@ -1,4 +1,4 @@ -import { ScopeTransform } from "../api"; +import type { ScopeTransform } from "../api"; import { xfJoin } from "./join"; /** diff --git a/packages/parse/src/xform/print.ts b/packages/parse/src/xform/print.ts index c13c67a90e..9df8844cee 100644 --- a/packages/parse/src/xform/print.ts +++ b/packages/parse/src/xform/print.ts @@ -1,4 +1,4 @@ -import { Parser, ScopeTransform } from "../api"; +import type { Parser, ScopeTransform } from "../api"; import { xform } from "../combinators/xform"; import { indent } from "../utils"; diff --git a/packages/parse/src/xform/with-id.ts b/packages/parse/src/xform/with-id.ts index 991ed11ab2..359ca2443a 100644 --- a/packages/parse/src/xform/with-id.ts +++ b/packages/parse/src/xform/with-id.ts @@ -1,4 +1,4 @@ -import { ScopeTransform, Parser } from "../api"; +import type { ScopeTransform, Parser } from "../api"; import { xform } from "../combinators/xform"; /** diff --git a/packages/parse/test/sexpr.ts b/packages/parse/test/sexpr.ts new file mode 100644 index 0000000000..147f4eb978 --- /dev/null +++ b/packages/parse/test/sexpr.ts @@ -0,0 +1,133 @@ +import * as assert from "assert"; +import { defContext, defGrammar, ParseScope } from "../src"; + +const grammar = ` +lopen: '(' => discard ; +lclose: ')' => discard ; +list: ; +sym: ( | [?!$+\\u002d*/.~#^=<>] )+ => join ; +expr: ( | | | | )* ; +prog: => hoist ; +`; + +const prune = (scope: ParseScope) => { + if (!scope) return; + delete scope.state; + if (scope.result == null) delete scope.result; + if (scope.children) { + for (let c of scope.children) { + prune(c); + } + } else { + delete scope.children; + } + return scope; +}; + +describe("parse", () => { + it("s-expr", () => { + const lang = defGrammar(grammar); + assert(!!lang); + const ctx = defContext( + `(def hello (x) (str "hello, " x))\n\n(print (hello -12.3))` + ); + assert(lang!.rules.prog(ctx)); + const tree = prune(ctx.root); + assert.deepEqual(tree, { + id: "root", + children: [ + { + id: "expr", + children: [ + { + id: "list", + children: [ + { + id: "expr", + children: [ + { + id: "sym", + result: "def", + }, + { + id: "sym", + result: "hello", + }, + { + id: "list", + children: [ + { + id: "expr", + children: [ + { + id: "sym", + result: "x", + }, + ], + }, + ], + }, + { + id: "list", + children: [ + { + id: "expr", + children: [ + { + id: "sym", + result: "str", + }, + { + id: "string", + result: "hello, ", + }, + { + id: "sym", + result: "x", + }, + ], + }, + ], + }, + ], + }, + ], + }, + { + id: "list", + children: [ + { + id: "expr", + children: [ + { + id: "sym", + result: "print", + }, + { + id: "list", + children: [ + { + id: "expr", + children: [ + { + id: "sym", + result: "hello", + }, + { + id: "real", + result: -12.3, + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + }); + }); +}); diff --git a/packages/parse/tpl.readme.md b/packages/parse/tpl.readme.md index dcff9b9979..c534c3c6c4 100644 --- a/packages/parse/tpl.readme.md +++ b/packages/parse/tpl.readme.md @@ -207,12 +207,17 @@ rule references in the grammar definition as well: - `ALPHA` - `ALPHA_NUM` - `DIGIT` +- `END` - input end - `ESC` - `FLOAT` - `HEX_DIGIT` - `INT` +- `LEND` - line end +- `LSTART` - line start +- `START` - input start - `STRING` - `UNICODE` +- `WB` - word boundary - `WS` - `WS0` - `WS1` From 949d1f07a0e0cb038ee1aefa3a284a08ac2930a1 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 23 Apr 2020 12:49:11 +0100 Subject: [PATCH 65/78] Publish - @thi.ng/adjacency@0.1.39 - @thi.ng/color@1.1.16 - @thi.ng/geom-accel@2.1.0 - @thi.ng/geom-api@1.0.12 - @thi.ng/geom-arc@0.2.23 - @thi.ng/geom-clip-line@1.0.10 - @thi.ng/geom-clip-poly@1.0.10 - @thi.ng/geom-closest-point@0.3.23 - @thi.ng/geom-hull@0.0.43 - @thi.ng/geom-io-obj@0.1.1 - @thi.ng/geom-isec@0.4.12 - @thi.ng/geom-isoline@0.1.41 - @thi.ng/geom-poly-utils@0.1.41 - @thi.ng/geom-resample@0.2.23 - @thi.ng/geom-splines@0.5.10 - @thi.ng/geom-subdiv-curve@0.1.40 - @thi.ng/geom-tessellate@0.2.23 - @thi.ng/geom-voronoi@0.1.41 - @thi.ng/geom@1.8.11 - @thi.ng/hdom-canvas@2.4.16 - @thi.ng/hiccup-markdown@1.2.6 - @thi.ng/hiccup-svg@3.4.13 - @thi.ng/iges@1.1.25 - @thi.ng/imgui@0.2.11 - @thi.ng/lsys@0.2.38 - @thi.ng/matrices@0.6.10 - @thi.ng/parse@0.5.0 - @thi.ng/poisson@1.0.12 - @thi.ng/ramp@0.1.12 - @thi.ng/scenegraph@0.1.13 - @thi.ng/shader-ast-js@0.4.16 - @thi.ng/soa@0.1.14 - @thi.ng/text-canvas@0.2.7 - @thi.ng/vector-pools@1.0.23 - @thi.ng/vectors@4.3.0 - @thi.ng/webgl-msdf@0.1.26 - @thi.ng/webgl-shadertoy@0.2.13 - @thi.ng/webgl@1.0.8 --- packages/adjacency/CHANGELOG.md | 8 ++++++ packages/adjacency/package.json | 4 +-- packages/color/CHANGELOG.md | 8 ++++++ packages/color/package.json | 4 +-- packages/geom-accel/CHANGELOG.md | 11 ++++++++ packages/geom-accel/package.json | 8 +++--- packages/geom-api/CHANGELOG.md | 8 ++++++ packages/geom-api/package.json | 4 +-- packages/geom-arc/CHANGELOG.md | 8 ++++++ packages/geom-arc/package.json | 8 +++--- packages/geom-clip-line/CHANGELOG.md | 8 ++++++ packages/geom-clip-line/package.json | 4 +-- packages/geom-clip-poly/CHANGELOG.md | 8 ++++++ packages/geom-clip-poly/package.json | 8 +++--- packages/geom-closest-point/CHANGELOG.md | 8 ++++++ packages/geom-closest-point/package.json | 4 +-- packages/geom-hull/CHANGELOG.md | 8 ++++++ packages/geom-hull/package.json | 4 +-- packages/geom-io-obj/CHANGELOG.md | 8 ++++++ packages/geom-io-obj/package.json | 4 +-- packages/geom-isec/CHANGELOG.md | 8 ++++++ packages/geom-isec/package.json | 8 +++--- packages/geom-isoline/CHANGELOG.md | 8 ++++++ packages/geom-isoline/package.json | 4 +-- packages/geom-poly-utils/CHANGELOG.md | 8 ++++++ packages/geom-poly-utils/package.json | 6 ++--- packages/geom-resample/CHANGELOG.md | 8 ++++++ packages/geom-resample/package.json | 8 +++--- packages/geom-splines/CHANGELOG.md | 8 ++++++ packages/geom-splines/package.json | 10 ++++---- packages/geom-subdiv-curve/CHANGELOG.md | 8 ++++++ packages/geom-subdiv-curve/package.json | 6 ++--- packages/geom-tessellate/CHANGELOG.md | 8 ++++++ packages/geom-tessellate/package.json | 10 ++++---- packages/geom-voronoi/CHANGELOG.md | 8 ++++++ packages/geom-voronoi/package.json | 12 ++++----- packages/geom/CHANGELOG.md | 8 ++++++ packages/geom/package.json | 32 ++++++++++++------------ packages/hdom-canvas/CHANGELOG.md | 8 ++++++ packages/hdom-canvas/package.json | 6 ++--- packages/hiccup-markdown/CHANGELOG.md | 8 ++++++ packages/hiccup-markdown/package.json | 4 +-- packages/hiccup-svg/CHANGELOG.md | 8 ++++++ packages/hiccup-svg/package.json | 4 +-- packages/iges/CHANGELOG.md | 8 ++++++ packages/iges/package.json | 4 +-- packages/imgui/CHANGELOG.md | 8 ++++++ packages/imgui/package.json | 12 ++++----- packages/lsys/CHANGELOG.md | 8 ++++++ packages/lsys/package.json | 4 +-- packages/matrices/CHANGELOG.md | 8 ++++++ packages/matrices/package.json | 4 +-- packages/parse/CHANGELOG.md | 11 ++++++++ packages/parse/package.json | 2 +- packages/poisson/CHANGELOG.md | 8 ++++++ packages/poisson/package.json | 6 ++--- packages/ramp/CHANGELOG.md | 8 ++++++ packages/ramp/package.json | 4 +-- packages/scenegraph/CHANGELOG.md | 8 ++++++ packages/scenegraph/package.json | 6 ++--- packages/shader-ast-js/CHANGELOG.md | 8 ++++++ packages/shader-ast-js/package.json | 6 ++--- packages/soa/CHANGELOG.md | 8 ++++++ packages/soa/package.json | 4 +-- packages/text-canvas/CHANGELOG.md | 8 ++++++ packages/text-canvas/package.json | 4 +-- packages/vector-pools/CHANGELOG.md | 8 ++++++ packages/vector-pools/package.json | 4 +-- packages/vectors/CHANGELOG.md | 11 ++++++++ packages/vectors/package.json | 2 +- packages/webgl-msdf/CHANGELOG.md | 8 ++++++ packages/webgl-msdf/package.json | 8 +++--- packages/webgl-shadertoy/CHANGELOG.md | 8 ++++++ packages/webgl-shadertoy/package.json | 4 +-- packages/webgl/CHANGELOG.md | 8 ++++++ packages/webgl/package.json | 8 +++--- 76 files changed, 435 insertions(+), 122 deletions(-) diff --git a/packages/adjacency/CHANGELOG.md b/packages/adjacency/CHANGELOG.md index 6e9c5dac32..c1d9156593 100644 --- a/packages/adjacency/CHANGELOG.md +++ b/packages/adjacency/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.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.38...@thi.ng/adjacency@0.1.39) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/adjacency + + + + + ## [0.1.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.37...@thi.ng/adjacency@0.1.38) (2020-04-20) **Note:** Version bump only for package @thi.ng/adjacency diff --git a/packages/adjacency/package.json b/packages/adjacency/package.json index 7ad4c15392..f37204de6c 100644 --- a/packages/adjacency/package.json +++ b/packages/adjacency/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/adjacency", - "version": "0.1.38", + "version": "0.1.39", "description": "Sparse & bitwise adjacency matrices and related functions for directed & undirected graphs", "module": "./index.js", "main": "./lib/index.js", @@ -29,7 +29,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.7.8", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "@types/mocha": "^7.0.1", "@types/node": "^13.7.4", "mocha": "^7.1.1", diff --git a/packages/color/CHANGELOG.md b/packages/color/CHANGELOG.md index 902c4f42b0..8342d203dd 100644 --- a/packages/color/CHANGELOG.md +++ b/packages/color/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.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.1.15...@thi.ng/color@1.1.16) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/color + + + + + ## [1.1.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.1.14...@thi.ng/color@1.1.15) (2020-04-20) **Note:** Version bump only for package @thi.ng/color diff --git a/packages/color/package.json b/packages/color/package.json index 6af7203eea..08b29c4f57 100644 --- a/packages/color/package.json +++ b/packages/color/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/color", - "version": "1.1.15", + "version": "1.1.16", "description": "Array-based color ops, conversions, multi-color gradients, presets", "module": "./index.js", "main": "./lib/index.js", @@ -46,7 +46,7 @@ "@thi.ng/math": "^1.7.6", "@thi.ng/strings": "^1.8.4", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-accel/CHANGELOG.md b/packages/geom-accel/CHANGELOG.md index dfb5f25969..34d4b529e0 100644 --- a/packages/geom-accel/CHANGELOG.md +++ b/packages/geom-accel/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. +# [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) + + +### Features + +* **geom-accel:** add 2d/3d spatial grids ([e34c44d](https://github.com/thi-ng/umbrella/commit/e34c44d624026bbce946d904c5b861f7a48fd484)) + + + + + ## [2.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.0.10...@thi.ng/geom-accel@2.0.11) (2020-04-20) **Note:** Version bump only for package @thi.ng/geom-accel diff --git a/packages/geom-accel/package.json b/packages/geom-accel/package.json index fb697fdcc2..38f701a0dc 100644 --- a/packages/geom-accel/package.json +++ b/packages/geom-accel/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-accel", - "version": "2.0.11", + "version": "2.1.0", "description": "n-D spatial indexing data structures with a shared ES6 Map/Set-like API", "module": "./index.js", "main": "./lib/index.js", @@ -43,12 +43,12 @@ "@thi.ng/arrays": "^0.6.3", "@thi.ng/checks": "^2.6.2", "@thi.ng/equiv": "^1.0.19", - "@thi.ng/geom-api": "^1.0.11", - "@thi.ng/geom-isec": "^0.4.11", + "@thi.ng/geom-api": "^1.0.12", + "@thi.ng/geom-isec": "^0.4.12", "@thi.ng/heaps": "^1.2.10", "@thi.ng/math": "^1.7.6", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-api/CHANGELOG.md b/packages/geom-api/CHANGELOG.md index 8636e6da39..e009eabc2e 100644 --- a/packages/geom-api/CHANGELOG.md +++ b/packages/geom-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. +## [1.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.11...@thi.ng/geom-api@1.0.12) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-api + + + + + ## [1.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.10...@thi.ng/geom-api@1.0.11) (2020-04-20) **Note:** Version bump only for package @thi.ng/geom-api diff --git a/packages/geom-api/package.json b/packages/geom-api/package.json index 01fa1311c7..7cac644d00 100644 --- a/packages/geom-api/package.json +++ b/packages/geom-api/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-api", - "version": "1.0.11", + "version": "1.0.12", "description": "Shared type & interface declarations for @thi.ng/geom packages", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-arc/CHANGELOG.md b/packages/geom-arc/CHANGELOG.md index 86349ae7da..a586c1757f 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.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.2.22...@thi.ng/geom-arc@0.2.23) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-arc + + + + + ## [0.2.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.2.21...@thi.ng/geom-arc@0.2.22) (2020-04-20) **Note:** Version bump only for package @thi.ng/geom-arc diff --git a/packages/geom-arc/package.json b/packages/geom-arc/package.json index 1463edf8c1..692e449cba 100644 --- a/packages/geom-arc/package.json +++ b/packages/geom-arc/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-arc", - "version": "0.2.22", + "version": "0.2.23", "description": "2D circular / elliptic arc operations", "module": "./index.js", "main": "./lib/index.js", @@ -39,10 +39,10 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.11", - "@thi.ng/geom-resample": "^0.2.22", + "@thi.ng/geom-api": "^1.0.12", + "@thi.ng/geom-resample": "^0.2.23", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-clip-line/CHANGELOG.md b/packages/geom-clip-line/CHANGELOG.md index b322f1020d..3a8103a6c3 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.0.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.0.9...@thi.ng/geom-clip-line@1.0.10) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-clip-line + + + + + ## [1.0.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.0.8...@thi.ng/geom-clip-line@1.0.9) (2020-04-20) **Note:** Version bump only for package @thi.ng/geom-clip-line diff --git a/packages/geom-clip-line/package.json b/packages/geom-clip-line/package.json index ce5a9d7d89..2607613013 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.0.9", + "version": "1.0.10", "description": "2D line clipping (Liang-Barsky)", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-clip-poly/CHANGELOG.md b/packages/geom-clip-poly/CHANGELOG.md index 95ca1a11d3..21367f6a1c 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.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.9...@thi.ng/geom-clip-poly@1.0.10) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-clip-poly + + + + + ## [1.0.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.8...@thi.ng/geom-clip-poly@1.0.9) (2020-04-20) **Note:** Version bump only for package @thi.ng/geom-clip-poly diff --git a/packages/geom-clip-poly/package.json b/packages/geom-clip-poly/package.json index 3f07e93bf7..6a517b2f30 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.9", + "version": "1.0.10", "description": "2D convex polygon clipping (Sutherland-Hodgeman)", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/geom-isec": "^0.4.11", - "@thi.ng/geom-poly-utils": "^0.1.40", + "@thi.ng/geom-isec": "^0.4.12", + "@thi.ng/geom-poly-utils": "^0.1.41", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-closest-point/CHANGELOG.md b/packages/geom-closest-point/CHANGELOG.md index 6fe699fc39..d061364077 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.3.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.3.22...@thi.ng/geom-closest-point@0.3.23) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-closest-point + + + + + ## [0.3.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.3.21...@thi.ng/geom-closest-point@0.3.22) (2020-04-20) **Note:** Version bump only for package @thi.ng/geom-closest-point diff --git a/packages/geom-closest-point/package.json b/packages/geom-closest-point/package.json index 03ed217343..cacf22908a 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.3.22", + "version": "0.3.23", "description": "2D / 3D closest point / proximity helpers", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-hull/CHANGELOG.md b/packages/geom-hull/CHANGELOG.md index 168c080904..cbd155efc7 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.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.42...@thi.ng/geom-hull@0.0.43) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-hull + + + + + ## [0.0.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.41...@thi.ng/geom-hull@0.0.42) (2020-04-20) **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 65381c9b68..6beec03b19 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.42", + "version": "0.0.43", "description": "Fast 2D convex hull (Graham Scan)", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-io-obj/CHANGELOG.md b/packages/geom-io-obj/CHANGELOG.md index bd1623f335..0741073a80 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.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.0...@thi.ng/geom-io-obj@0.1.1) (2020-04-23) + +**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 2d2960d109..02c88c3b1b 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.0", + "version": "0.1.1", "description": "Wavefront OBJ parser (& exporter soon)", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/vectors": "^4.2.6" + "@thi.ng/vectors": "^4.3.0" }, "files": [ "*.js", diff --git a/packages/geom-isec/CHANGELOG.md b/packages/geom-isec/CHANGELOG.md index d33eb410de..b627036af8 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.4.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.4.11...@thi.ng/geom-isec@0.4.12) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-isec + + + + + ## [0.4.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.4.10...@thi.ng/geom-isec@0.4.11) (2020-04-20) **Note:** Version bump only for package @thi.ng/geom-isec diff --git a/packages/geom-isec/package.json b/packages/geom-isec/package.json index dc62100453..85029591a0 100644 --- a/packages/geom-isec/package.json +++ b/packages/geom-isec/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-isec", - "version": "0.4.11", + "version": "0.4.12", "description": "2D/3D shape intersection checks", "module": "./index.js", "main": "./lib/index.js", @@ -39,10 +39,10 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/geom-api": "^1.0.11", - "@thi.ng/geom-closest-point": "^0.3.22", + "@thi.ng/geom-api": "^1.0.12", + "@thi.ng/geom-closest-point": "^0.3.23", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-isoline/CHANGELOG.md b/packages/geom-isoline/CHANGELOG.md index 739d061c0c..cc99686087 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.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.40...@thi.ng/geom-isoline@0.1.41) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-isoline + + + + + ## [0.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.39...@thi.ng/geom-isoline@0.1.40) (2020-04-20) **Note:** Version bump only for package @thi.ng/geom-isoline diff --git a/packages/geom-isoline/package.json b/packages/geom-isoline/package.json index 6b0476cfb0..d6b2ebda87 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.40", + "version": "0.1.41", "description": "Fast 2D contour line extraction / generation", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-poly-utils/CHANGELOG.md b/packages/geom-poly-utils/CHANGELOG.md index 050e8208d7..3f2182e68f 100644 --- a/packages/geom-poly-utils/CHANGELOG.md +++ b/packages/geom-poly-utils/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.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.40...@thi.ng/geom-poly-utils@0.1.41) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-poly-utils + + + + + ## [0.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.39...@thi.ng/geom-poly-utils@0.1.40) (2020-04-20) **Note:** Version bump only for package @thi.ng/geom-poly-utils diff --git a/packages/geom-poly-utils/package.json b/packages/geom-poly-utils/package.json index ce1930a043..7dfe18b17e 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.1.40", + "version": "0.1.41", "description": "2D polygon / triangle analysis & processing utilities", "module": "./index.js", "main": "./lib/index.js", @@ -39,9 +39,9 @@ }, "dependencies": { "@thi.ng/errors": "^1.2.10", - "@thi.ng/geom-api": "^1.0.11", + "@thi.ng/geom-api": "^1.0.12", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-resample/CHANGELOG.md b/packages/geom-resample/CHANGELOG.md index 1a4c7f5296..b72966bb34 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.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.22...@thi.ng/geom-resample@0.2.23) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-resample + + + + + ## [0.2.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.21...@thi.ng/geom-resample@0.2.22) (2020-04-20) **Note:** Version bump only for package @thi.ng/geom-resample diff --git a/packages/geom-resample/package.json b/packages/geom-resample/package.json index 2be47ccfa3..1e127580e9 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.22", + "version": "0.2.23", "description": "Customizable nD polyline interpolation, re-sampling, splitting & nearest point computation", "module": "./index.js", "main": "./lib/index.js", @@ -39,10 +39,10 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.11", - "@thi.ng/geom-closest-point": "^0.3.22", + "@thi.ng/geom-api": "^1.0.12", + "@thi.ng/geom-closest-point": "^0.3.23", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-splines/CHANGELOG.md b/packages/geom-splines/CHANGELOG.md index 2adfd5cb8d..f79bfce08a 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.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.9...@thi.ng/geom-splines@0.5.10) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-splines + + + + + ## [0.5.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.8...@thi.ng/geom-splines@0.5.9) (2020-04-20) **Note:** Version bump only for package @thi.ng/geom-splines diff --git a/packages/geom-splines/package.json b/packages/geom-splines/package.json index cea9d71847..57deb57fad 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.9", + "version": "0.5.10", "description": "nD cubic & quadratic curve analysis, conversion, interpolation, splitting", "module": "./index.js", "main": "./lib/index.js", @@ -39,11 +39,11 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.11", - "@thi.ng/geom-arc": "^0.2.22", - "@thi.ng/geom-resample": "^0.2.22", + "@thi.ng/geom-api": "^1.0.12", + "@thi.ng/geom-arc": "^0.2.23", + "@thi.ng/geom-resample": "^0.2.23", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-subdiv-curve/CHANGELOG.md b/packages/geom-subdiv-curve/CHANGELOG.md index 08912b7957..1e2fe33850 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.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.39...@thi.ng/geom-subdiv-curve@0.1.40) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-subdiv-curve + + + + + ## [0.1.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.38...@thi.ng/geom-subdiv-curve@0.1.39) (2020-04-20) **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 30437204f1..87cf0f16ef 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.39", + "version": "0.1.40", "description": "Freely customizable, iterative nD subdivision curves for open / closed geometries", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/geom-api": "^1.0.11", + "@thi.ng/geom-api": "^1.0.12", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-tessellate/CHANGELOG.md b/packages/geom-tessellate/CHANGELOG.md index 95b6823444..53e3d2a012 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.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.22...@thi.ng/geom-tessellate@0.2.23) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-tessellate + + + + + ## [0.2.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.21...@thi.ng/geom-tessellate@0.2.22) (2020-04-20) **Note:** Version bump only for package @thi.ng/geom-tessellate diff --git a/packages/geom-tessellate/package.json b/packages/geom-tessellate/package.json index 6e8e5e58c5..05367a91ca 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.22", + "version": "0.2.23", "description": "2D/3D convex polygon tessellators", "module": "./index.js", "main": "./lib/index.js", @@ -39,11 +39,11 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.11", - "@thi.ng/geom-isec": "^0.4.11", - "@thi.ng/geom-poly-utils": "^0.1.40", + "@thi.ng/geom-api": "^1.0.12", + "@thi.ng/geom-isec": "^0.4.12", + "@thi.ng/geom-poly-utils": "^0.1.41", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-voronoi/CHANGELOG.md b/packages/geom-voronoi/CHANGELOG.md index 80bd29ff13..3139ca6a87 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.1.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.1.40...@thi.ng/geom-voronoi@0.1.41) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-voronoi + + + + + ## [0.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.1.39...@thi.ng/geom-voronoi@0.1.40) (2020-04-20) **Note:** Version bump only for package @thi.ng/geom-voronoi diff --git a/packages/geom-voronoi/package.json b/packages/geom-voronoi/package.json index 831e4cb3a9..ea316a2df1 100644 --- a/packages/geom-voronoi/package.json +++ b/packages/geom-voronoi/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-voronoi", - "version": "0.1.40", + "version": "0.1.41", "description": "Fast, incremental 2D Delaunay & Voronoi mesh implementation", "module": "./index.js", "main": "./lib/index.js", @@ -40,13 +40,13 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-clip-line": "^1.0.9", - "@thi.ng/geom-clip-poly": "^1.0.9", - "@thi.ng/geom-isec": "^0.4.11", - "@thi.ng/geom-poly-utils": "^0.1.40", + "@thi.ng/geom-clip-line": "^1.0.10", + "@thi.ng/geom-clip-poly": "^1.0.10", + "@thi.ng/geom-isec": "^0.4.12", + "@thi.ng/geom-poly-utils": "^0.1.41", "@thi.ng/math": "^1.7.6", "@thi.ng/quad-edge": "^0.2.12", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom/CHANGELOG.md b/packages/geom/CHANGELOG.md index 71d8f90fbc..65ff0b5201 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.8.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.8.10...@thi.ng/geom@1.8.11) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom + + + + + ## [1.8.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.8.9...@thi.ng/geom@1.8.10) (2020-04-20) **Note:** Version bump only for package @thi.ng/geom diff --git a/packages/geom/package.json b/packages/geom/package.json index 0a54e2895a..c28560af69 100644 --- a/packages/geom/package.json +++ b/packages/geom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom", - "version": "1.8.10", + "version": "1.8.11", "description": "Functional, polymorphic API for 2D geometry types & SVG generation", "module": "./index.js", "main": "./lib/index.js", @@ -45,25 +45,25 @@ "@thi.ng/defmulti": "^1.2.11", "@thi.ng/equiv": "^1.0.19", "@thi.ng/errors": "^1.2.10", - "@thi.ng/geom-api": "^1.0.11", - "@thi.ng/geom-arc": "^0.2.22", - "@thi.ng/geom-clip-line": "^1.0.9", - "@thi.ng/geom-clip-poly": "^1.0.9", - "@thi.ng/geom-closest-point": "^0.3.22", - "@thi.ng/geom-hull": "^0.0.42", - "@thi.ng/geom-isec": "^0.4.11", - "@thi.ng/geom-poly-utils": "^0.1.40", - "@thi.ng/geom-resample": "^0.2.22", - "@thi.ng/geom-splines": "^0.5.9", - "@thi.ng/geom-subdiv-curve": "^0.1.39", - "@thi.ng/geom-tessellate": "^0.2.22", + "@thi.ng/geom-api": "^1.0.12", + "@thi.ng/geom-arc": "^0.2.23", + "@thi.ng/geom-clip-line": "^1.0.10", + "@thi.ng/geom-clip-poly": "^1.0.10", + "@thi.ng/geom-closest-point": "^0.3.23", + "@thi.ng/geom-hull": "^0.0.43", + "@thi.ng/geom-isec": "^0.4.12", + "@thi.ng/geom-poly-utils": "^0.1.41", + "@thi.ng/geom-resample": "^0.2.23", + "@thi.ng/geom-splines": "^0.5.10", + "@thi.ng/geom-subdiv-curve": "^0.1.40", + "@thi.ng/geom-tessellate": "^0.2.23", "@thi.ng/hiccup": "^3.2.18", - "@thi.ng/hiccup-svg": "^3.4.12", + "@thi.ng/hiccup-svg": "^3.4.13", "@thi.ng/math": "^1.7.6", - "@thi.ng/matrices": "^0.6.9", + "@thi.ng/matrices": "^0.6.10", "@thi.ng/random": "^1.4.5", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hdom-canvas/CHANGELOG.md b/packages/hdom-canvas/CHANGELOG.md index 5a4a73cbac..b5edfc0e7c 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. +## [2.4.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@2.4.15...@thi.ng/hdom-canvas@2.4.16) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/hdom-canvas + + + + + ## [2.4.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@2.4.14...@thi.ng/hdom-canvas@2.4.15) (2020-04-20) **Note:** Version bump only for package @thi.ng/hdom-canvas diff --git a/packages/hdom-canvas/package.json b/packages/hdom-canvas/package.json index b0e39b73ef..44553e5204 100644 --- a/packages/hdom-canvas/package.json +++ b/packages/hdom-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom-canvas", - "version": "2.4.15", + "version": "2.4.16", "description": "Declarative canvas scenegraph & visualization for @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -40,11 +40,11 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", - "@thi.ng/color": "^1.1.15", + "@thi.ng/color": "^1.1.16", "@thi.ng/diff": "^3.2.16", "@thi.ng/hdom": "^8.0.20", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hiccup-markdown/CHANGELOG.md b/packages/hiccup-markdown/CHANGELOG.md index b476ada644..0d5374b283 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.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.5...@thi.ng/hiccup-markdown@1.2.6) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/hiccup-markdown + + + + + ## [1.2.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.4...@thi.ng/hiccup-markdown@1.2.5) (2020-04-20) **Note:** Version bump only for package @thi.ng/hiccup-markdown diff --git a/packages/hiccup-markdown/package.json b/packages/hiccup-markdown/package.json index bb08d5c6af..54941529e2 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.5", + "version": "1.2.6", "description": "Markdown parser & serializer from/to Hiccup format", "module": "./index.js", "main": "./lib/index.js", @@ -45,7 +45,7 @@ "@thi.ng/fsm": "^2.4.5", "@thi.ng/hiccup": "^3.2.18", "@thi.ng/strings": "^1.8.4", - "@thi.ng/text-canvas": "^0.2.6", + "@thi.ng/text-canvas": "^0.2.7", "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, diff --git a/packages/hiccup-svg/CHANGELOG.md b/packages/hiccup-svg/CHANGELOG.md index 3956cc2d40..a7630a30cb 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.4.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.4.12...@thi.ng/hiccup-svg@3.4.13) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/hiccup-svg + + + + + ## [3.4.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.4.11...@thi.ng/hiccup-svg@3.4.12) (2020-04-20) **Note:** Version bump only for package @thi.ng/hiccup-svg diff --git a/packages/hiccup-svg/package.json b/packages/hiccup-svg/package.json index b7cc705fe2..bb60d49e87 100644 --- a/packages/hiccup-svg/package.json +++ b/packages/hiccup-svg/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-svg", - "version": "3.4.12", + "version": "3.4.13", "description": "SVG element functions for @thi.ng/hiccup & @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/color": "^1.1.15", + "@thi.ng/color": "^1.1.16", "@thi.ng/hiccup": "^3.2.18", "tslib": "^1.11.1" }, diff --git a/packages/iges/CHANGELOG.md b/packages/iges/CHANGELOG.md index ccb8f76183..c46b842bf6 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.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.24...@thi.ng/iges@1.1.25) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/iges + + + + + ## [1.1.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.23...@thi.ng/iges@1.1.24) (2020-04-20) **Note:** Version bump only for package @thi.ng/iges diff --git a/packages/iges/package.json b/packages/iges/package.json index 53365a9d8b..c7b663beab 100644 --- a/packages/iges/package.json +++ b/packages/iges/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/iges", - "version": "1.1.24", + "version": "1.1.25", "description": "IGES 5.3 serializer for (currently only) polygonal geometry, both open & closed", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "@thi.ng/defmulti": "^1.2.11", "@thi.ng/strings": "^1.8.4", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/imgui/CHANGELOG.md b/packages/imgui/CHANGELOG.md index 30b665f21d..44fb646406 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.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.10...@thi.ng/imgui@0.2.11) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/imgui + + + + + ## [0.2.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.9...@thi.ng/imgui@0.2.10) (2020-04-20) **Note:** Version bump only for package @thi.ng/imgui diff --git a/packages/imgui/package.json b/packages/imgui/package.json index 65f6ca0fb9..931cd45cf0 100644 --- a/packages/imgui/package.json +++ b/packages/imgui/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/imgui", - "version": "0.2.10", + "version": "0.2.11", "description": "Immediate mode GUI with flexible state handling & data only shape output", "module": "./index.js", "main": "./lib/index.js", @@ -40,14 +40,14 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom": "^1.8.10", - "@thi.ng/geom-api": "^1.0.11", - "@thi.ng/geom-isec": "^0.4.11", - "@thi.ng/geom-tessellate": "^0.2.22", + "@thi.ng/geom": "^1.8.11", + "@thi.ng/geom-api": "^1.0.12", + "@thi.ng/geom-isec": "^0.4.12", + "@thi.ng/geom-tessellate": "^0.2.23", "@thi.ng/layout": "^0.1.7", "@thi.ng/math": "^1.7.6", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/lsys/CHANGELOG.md b/packages/lsys/CHANGELOG.md index 26b11d8fb7..6b012d6249 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.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.37...@thi.ng/lsys@0.2.38) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/lsys + + + + + ## [0.2.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.36...@thi.ng/lsys@0.2.37) (2020-04-20) **Note:** Version bump only for package @thi.ng/lsys diff --git a/packages/lsys/package.json b/packages/lsys/package.json index fa4b79ba2e..b1046aefe6 100644 --- a/packages/lsys/package.json +++ b/packages/lsys/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/lsys", - "version": "0.2.37", + "version": "0.2.38", "description": "Functional, extensible L-System architecture w/ support for probabilistic rules", "module": "./index.js", "main": "./lib/index.js", @@ -44,7 +44,7 @@ "@thi.ng/math": "^1.7.6", "@thi.ng/random": "^1.4.5", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/matrices/CHANGELOG.md b/packages/matrices/CHANGELOG.md index 750fd29b5a..7461fbd01c 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.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.9...@thi.ng/matrices@0.6.10) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/matrices + + + + + ## [0.6.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.8...@thi.ng/matrices@0.6.9) (2020-04-20) **Note:** Version bump only for package @thi.ng/matrices diff --git a/packages/matrices/package.json b/packages/matrices/package.json index 61ca280293..ce346c8327 100644 --- a/packages/matrices/package.json +++ b/packages/matrices/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/matrices", - "version": "0.6.9", + "version": "0.6.10", "description": "Matrix & quaternion operations for 2D/3D geometry processing", "module": "./index.js", "main": "./lib/index.js", @@ -41,7 +41,7 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/parse/CHANGELOG.md b/packages/parse/CHANGELOG.md index fdfc9539db..b4d4470a7a 100644 --- a/packages/parse/CHANGELOG.md +++ b/packages/parse/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.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.4.1...@thi.ng/parse@0.5.0) (2020-04-23) + + +### Features + +* **parse:** add built-ins, extract STRING, minor updates ([458f5b3](https://github.com/thi-ng/umbrella/commit/458f5b34a4fa1c58f55b23be8455e6bd7b7bb72d)) + + + + + ## [0.4.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.4.0...@thi.ng/parse@0.4.1) (2020-04-21) **Note:** Version bump only for package @thi.ng/parse diff --git a/packages/parse/package.json b/packages/parse/package.json index b91e1c6acb..3d8091764e 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/parse", - "version": "0.4.1", + "version": "0.5.0", "description": "Purely functional parser combinators & AST generation for generic inputs", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/poisson/CHANGELOG.md b/packages/poisson/CHANGELOG.md index b7a94f5210..7c2fb45cb1 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.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.0.11...@thi.ng/poisson@1.0.12) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/poisson + + + + + ## [1.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.0.10...@thi.ng/poisson@1.0.11) (2020-04-20) **Note:** Version bump only for package @thi.ng/poisson diff --git a/packages/poisson/package.json b/packages/poisson/package.json index 8c65e72ee2..6826824f8e 100644 --- a/packages/poisson/package.json +++ b/packages/poisson/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/poisson", - "version": "1.0.11", + "version": "1.0.12", "description": "nD Poisson-disc sampling w/ support for spatial density functions and custom PRNGs", "module": "./index.js", "main": "./lib/index.js", @@ -39,9 +39,9 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.11", + "@thi.ng/geom-api": "^1.0.12", "@thi.ng/random": "^1.4.5", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/ramp/CHANGELOG.md b/packages/ramp/CHANGELOG.md index b5788d76ba..363f456492 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.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.11...@thi.ng/ramp@0.1.12) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/ramp + + + + + ## [0.1.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.10...@thi.ng/ramp@0.1.11) (2020-04-20) **Note:** Version bump only for package @thi.ng/ramp diff --git a/packages/ramp/package.json b/packages/ramp/package.json index 91a8aa45d7..8f2db35f0e 100644 --- a/packages/ramp/package.json +++ b/packages/ramp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/ramp", - "version": "0.1.11", + "version": "0.1.12", "description": "Parametric interpolated 1D lookup tables for remapping values", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "@thi.ng/compare": "^1.3.2", "@thi.ng/math": "^1.7.6", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/scenegraph/CHANGELOG.md b/packages/scenegraph/CHANGELOG.md index 68101c02b6..9c0a233440 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.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.1.12...@thi.ng/scenegraph@0.1.13) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/scenegraph + + + + + ## [0.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.1.11...@thi.ng/scenegraph@0.1.12) (2020-04-20) **Note:** Version bump only for package @thi.ng/scenegraph diff --git a/packages/scenegraph/package.json b/packages/scenegraph/package.json index f617c6186a..cc8b76588b 100644 --- a/packages/scenegraph/package.json +++ b/packages/scenegraph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/scenegraph", - "version": "0.1.12", + "version": "0.1.13", "description": "Extensible 2D/3D scene graph with @thi.ng/hdom-canvas support", "module": "./index.js", "main": "./lib/index.js", @@ -40,8 +40,8 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", - "@thi.ng/matrices": "^0.6.9", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/matrices": "^0.6.10", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/shader-ast-js/CHANGELOG.md b/packages/shader-ast-js/CHANGELOG.md index 47ea9e213c..101b5b1648 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.4.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.4.15...@thi.ng/shader-ast-js@0.4.16) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/shader-ast-js + + + + + ## [0.4.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.4.14...@thi.ng/shader-ast-js@0.4.15) (2020-04-20) **Note:** Version bump only for package @thi.ng/shader-ast-js diff --git a/packages/shader-ast-js/package.json b/packages/shader-ast-js/package.json index 9804540da2..775b450e1d 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.4.15", + "version": "0.4.16", "description": "Customizable JS code generator, compiler & runtime for @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -42,10 +42,10 @@ "@thi.ng/checks": "^2.6.2", "@thi.ng/errors": "^1.2.10", "@thi.ng/math": "^1.7.6", - "@thi.ng/matrices": "^0.6.9", + "@thi.ng/matrices": "^0.6.10", "@thi.ng/pixel": "^0.1.16", "@thi.ng/shader-ast": "^0.3.16", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/soa/CHANGELOG.md b/packages/soa/CHANGELOG.md index fbd84e72cb..7d5b8b3342 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.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.13...@thi.ng/soa@0.1.14) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/soa + + + + + ## [0.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.12...@thi.ng/soa@0.1.13) (2020-04-20) **Note:** Version bump only for package @thi.ng/soa diff --git a/packages/soa/package.json b/packages/soa/package.json index 4cadfdf99d..7f37d1b317 100644 --- a/packages/soa/package.json +++ b/packages/soa/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/soa", - "version": "0.1.13", + "version": "0.1.14", "description": "SOA & AOS memory mapped structured views with optional & extensible serialization", "module": "./index.js", "main": "./lib/index.js", @@ -42,7 +42,7 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/binary": "^2.0.3", "@thi.ng/transducers-binary": "^0.5.9", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/text-canvas/CHANGELOG.md b/packages/text-canvas/CHANGELOG.md index 0722ae4293..eed68605e0 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.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.6...@thi.ng/text-canvas@0.2.7) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/text-canvas + + + + + ## [0.2.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.5...@thi.ng/text-canvas@0.2.6) (2020-04-20) **Note:** Version bump only for package @thi.ng/text-canvas diff --git a/packages/text-canvas/package.json b/packages/text-canvas/package.json index 909707799b..9ec7b7249d 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.6", + "version": "0.2.7", "description": "Text based canvas, drawing, tables with arbitrary formatting (incl. ANSI/HTML)", "module": "./index.js", "main": "./lib/index.js", @@ -41,7 +41,7 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/arrays": "^0.6.3", - "@thi.ng/geom-clip-line": "^1.0.9", + "@thi.ng/geom-clip-line": "^1.0.10", "@thi.ng/math": "^1.7.6", "@thi.ng/memoize": "^2.0.7", "@thi.ng/transducers": "^6.4.6", diff --git a/packages/vector-pools/CHANGELOG.md b/packages/vector-pools/CHANGELOG.md index fdffd86a07..647584e843 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.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.22...@thi.ng/vector-pools@1.0.23) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/vector-pools + + + + + ## [1.0.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.21...@thi.ng/vector-pools@1.0.22) (2020-04-20) **Note:** Version bump only for package @thi.ng/vector-pools diff --git a/packages/vector-pools/package.json b/packages/vector-pools/package.json index 1bc3536841..3c5dff06ad 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.22", + "version": "1.0.23", "description": "Data structures for managing & working with strided, memory mapped vectors", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "@thi.ng/checks": "^2.6.2", "@thi.ng/malloc": "^4.1.11", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/vectors/CHANGELOG.md b/packages/vectors/CHANGELOG.md index 74b415449c..c037b5198f 100644 --- a/packages/vectors/CHANGELOG.md +++ b/packages/vectors/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. +# [4.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.2.6...@thi.ng/vectors@4.3.0) (2020-04-23) + + +### Features + +* **vectors:** add equals/2/3/4() ([34cad0e](https://github.com/thi-ng/umbrella/commit/34cad0eee8cd6d555ddc8ed718858b6885519f85)) + + + + + ## [4.2.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.2.5...@thi.ng/vectors@4.2.6) (2020-04-20) **Note:** Version bump only for package @thi.ng/vectors diff --git a/packages/vectors/package.json b/packages/vectors/package.json index 4f5cd3b06f..76859c0ee5 100644 --- a/packages/vectors/package.json +++ b/packages/vectors/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/vectors", - "version": "4.2.6", + "version": "4.3.0", "description": "Optimized 2d/3d/4d and arbitrary length vector operations", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/webgl-msdf/CHANGELOG.md b/packages/webgl-msdf/CHANGELOG.md index 32882c61c8..0685f6ad50 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.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.25...@thi.ng/webgl-msdf@0.1.26) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/webgl-msdf + + + + + ## [0.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.24...@thi.ng/webgl-msdf@0.1.25) (2020-04-21) **Note:** Version bump only for package @thi.ng/webgl-msdf diff --git a/packages/webgl-msdf/package.json b/packages/webgl-msdf/package.json index c9e680b0a9..cbe08448a2 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.25", + "version": "0.1.26", "description": "Multi-channel SDF font rendering & basic text layout for WebGL", "module": "./index.js", "main": "./lib/index.js", @@ -41,9 +41,9 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/shader-ast": "^0.3.16", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vector-pools": "^1.0.22", - "@thi.ng/vectors": "^4.2.6", - "@thi.ng/webgl": "^1.0.7", + "@thi.ng/vector-pools": "^1.0.23", + "@thi.ng/vectors": "^4.3.0", + "@thi.ng/webgl": "^1.0.8", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/webgl-shadertoy/CHANGELOG.md b/packages/webgl-shadertoy/CHANGELOG.md index 21e68d9fa9..fa1f1d93af 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.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.12...@thi.ng/webgl-shadertoy@0.2.13) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/webgl-shadertoy + + + + + ## [0.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.11...@thi.ng/webgl-shadertoy@0.2.12) (2020-04-21) **Note:** Version bump only for package @thi.ng/webgl-shadertoy diff --git a/packages/webgl-shadertoy/package.json b/packages/webgl-shadertoy/package.json index b00f2ab56b..b0eaa90e66 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.12", + "version": "0.2.13", "description": "Basic WebGL scaffolding for running interactive fragment shaders via @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -42,7 +42,7 @@ "@thi.ng/shader-ast": "^0.3.16", "@thi.ng/shader-ast-glsl": "^0.1.22", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/webgl": "^1.0.7", + "@thi.ng/webgl": "^1.0.8", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/webgl/CHANGELOG.md b/packages/webgl/CHANGELOG.md index 6a9e7cce8c..4aa0f240b1 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. +## [1.0.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@1.0.7...@thi.ng/webgl@1.0.8) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/webgl + + + + + ## [1.0.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@1.0.6...@thi.ng/webgl@1.0.7) (2020-04-21) diff --git a/packages/webgl/package.json b/packages/webgl/package.json index 044e5e9552..a1e6d3881f 100644 --- a/packages/webgl/package.json +++ b/packages/webgl/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/webgl", - "version": "1.0.7", + "version": "1.0.8", "description": "WebGL & GLSL abstraction layer", "module": "./index.js", "main": "./lib/index.js", @@ -44,14 +44,14 @@ "@thi.ng/checks": "^2.6.2", "@thi.ng/equiv": "^1.0.19", "@thi.ng/errors": "^1.2.10", - "@thi.ng/matrices": "^0.6.9", + "@thi.ng/matrices": "^0.6.10", "@thi.ng/pixel": "^0.1.16", "@thi.ng/shader-ast": "^0.3.16", "@thi.ng/shader-ast-glsl": "^0.1.22", "@thi.ng/shader-ast-stdlib": "^0.3.15", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vector-pools": "^1.0.22", - "@thi.ng/vectors": "^4.2.6", + "@thi.ng/vector-pools": "^1.0.23", + "@thi.ng/vectors": "^4.3.0", "tslib": "^1.11.1" }, "files": [ From 874c5e363a681e5efa2fa4b9e78d3f01332f3ac8 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 23 Apr 2020 12:55:15 +0100 Subject: [PATCH 66/78] docs(vectors): update readme --- packages/vectors/README.md | 3 ++- packages/vectors/tpl.readme.md | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/vectors/README.md b/packages/vectors/README.md index 261a1e33b4..2a3b91fca4 100644 --- a/packages/vectors/README.md +++ b/packages/vectors/README.md @@ -144,7 +144,7 @@ Partially ported from [thi.ng/geom](http://thi.ng/geom) (Clojure) and yarn add @thi.ng/vectors ``` -Package sizes (gzipped, pre-treeshake): ESM: 10.88 KB / CJS: 13.71 KB / UMD: 12.06 KB +Package sizes (gzipped, pre-treeshake): ESM: 10.95 KB / CJS: 13.78 KB / UMD: 12.12 KB ## Dependencies @@ -546,6 +546,7 @@ Functions to transform flat / strided buffers w/ vector operations: ### Comparison / equality - `comparator2` / `comparator3` / `comparator4` +- `equals` / `equals2` / `equals3` / `equals4` - `eqDelta` / `eqDelta2` / `eqDelta3` / `eqDelta4` - `eqDeltaS` - `eqDeltaArray` diff --git a/packages/vectors/tpl.readme.md b/packages/vectors/tpl.readme.md index 0d9f738642..e56fea718d 100644 --- a/packages/vectors/tpl.readme.md +++ b/packages/vectors/tpl.readme.md @@ -463,6 +463,7 @@ Functions to transform flat / strided buffers w/ vector operations: ### Comparison / equality - `comparator2` / `comparator3` / `comparator4` +- `equals` / `equals2` / `equals3` / `equals4` - `eqDelta` / `eqDelta2` / `eqDelta3` / `eqDelta4` - `eqDeltaS` - `eqDeltaArray` From 041f590f6c1c29efd01fccc26cbbb2c0992e1147 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 23 Apr 2020 13:02:45 +0100 Subject: [PATCH 67/78] fix(vectors): add missing equals2/3/4 exports --- packages/vectors/src/equals.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/vectors/src/equals.ts b/packages/vectors/src/equals.ts index 6204a4a9c2..aff802a296 100644 --- a/packages/vectors/src/equals.ts +++ b/packages/vectors/src/equals.ts @@ -4,9 +4,14 @@ import { vop } from "./internal/vop"; export const equals: MultiVecOpRoVV = vop(0); -equals.add(2, (a, b) => a[0] === b[0] && a[1] === b[1]); -equals.add(3, (a, b) => a[0] === b[0] && a[1] === b[1] && a[2] === b[2]); -equals.add( +export const equals2 = equals.add(2, (a, b) => a[0] === b[0] && a[1] === b[1]); + +export const equals3 = equals.add( + 3, + (a, b) => a[0] === b[0] && a[1] === b[1] && a[2] === b[2] +); + +export const equals4 = equals.add( 4, (a, b) => a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] ); From 7d53b9da131181ae2cf35d325941a353f9b3494b Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 23 Apr 2020 13:03:58 +0100 Subject: [PATCH 68/78] Publish - @thi.ng/adjacency@0.1.40 - @thi.ng/color@1.1.17 - @thi.ng/geom-accel@2.1.1 - @thi.ng/geom-api@1.0.13 - @thi.ng/geom-arc@0.2.24 - @thi.ng/geom-clip-line@1.0.11 - @thi.ng/geom-clip-poly@1.0.11 - @thi.ng/geom-closest-point@0.3.24 - @thi.ng/geom-hull@0.0.44 - @thi.ng/geom-io-obj@0.1.2 - @thi.ng/geom-isec@0.4.13 - @thi.ng/geom-isoline@0.1.42 - @thi.ng/geom-poly-utils@0.1.42 - @thi.ng/geom-resample@0.2.24 - @thi.ng/geom-splines@0.5.11 - @thi.ng/geom-subdiv-curve@0.1.41 - @thi.ng/geom-tessellate@0.2.24 - @thi.ng/geom-voronoi@0.1.42 - @thi.ng/geom@1.8.12 - @thi.ng/hdom-canvas@2.4.17 - @thi.ng/hiccup-markdown@1.2.7 - @thi.ng/hiccup-svg@3.4.14 - @thi.ng/iges@1.1.26 - @thi.ng/imgui@0.2.12 - @thi.ng/lsys@0.2.39 - @thi.ng/matrices@0.6.11 - @thi.ng/poisson@1.0.13 - @thi.ng/ramp@0.1.13 - @thi.ng/scenegraph@0.1.14 - @thi.ng/shader-ast-js@0.4.17 - @thi.ng/soa@0.1.15 - @thi.ng/text-canvas@0.2.8 - @thi.ng/vector-pools@1.0.24 - @thi.ng/vectors@4.3.1 - @thi.ng/webgl-msdf@0.1.27 - @thi.ng/webgl-shadertoy@0.2.14 - @thi.ng/webgl@1.0.9 --- packages/adjacency/CHANGELOG.md | 8 ++++++ packages/adjacency/package.json | 4 +-- packages/color/CHANGELOG.md | 8 ++++++ packages/color/package.json | 4 +-- packages/geom-accel/CHANGELOG.md | 8 ++++++ packages/geom-accel/package.json | 8 +++--- packages/geom-api/CHANGELOG.md | 8 ++++++ packages/geom-api/package.json | 4 +-- packages/geom-arc/CHANGELOG.md | 8 ++++++ packages/geom-arc/package.json | 8 +++--- packages/geom-clip-line/CHANGELOG.md | 8 ++++++ packages/geom-clip-line/package.json | 4 +-- packages/geom-clip-poly/CHANGELOG.md | 8 ++++++ packages/geom-clip-poly/package.json | 8 +++--- packages/geom-closest-point/CHANGELOG.md | 8 ++++++ packages/geom-closest-point/package.json | 4 +-- packages/geom-hull/CHANGELOG.md | 8 ++++++ packages/geom-hull/package.json | 4 +-- packages/geom-io-obj/CHANGELOG.md | 8 ++++++ packages/geom-io-obj/package.json | 4 +-- packages/geom-isec/CHANGELOG.md | 8 ++++++ packages/geom-isec/package.json | 8 +++--- packages/geom-isoline/CHANGELOG.md | 8 ++++++ packages/geom-isoline/package.json | 4 +-- packages/geom-poly-utils/CHANGELOG.md | 8 ++++++ packages/geom-poly-utils/package.json | 6 ++--- packages/geom-resample/CHANGELOG.md | 8 ++++++ packages/geom-resample/package.json | 8 +++--- packages/geom-splines/CHANGELOG.md | 8 ++++++ packages/geom-splines/package.json | 10 ++++---- packages/geom-subdiv-curve/CHANGELOG.md | 8 ++++++ packages/geom-subdiv-curve/package.json | 6 ++--- packages/geom-tessellate/CHANGELOG.md | 8 ++++++ packages/geom-tessellate/package.json | 10 ++++---- packages/geom-voronoi/CHANGELOG.md | 8 ++++++ packages/geom-voronoi/package.json | 12 ++++----- packages/geom/CHANGELOG.md | 8 ++++++ packages/geom/package.json | 32 ++++++++++++------------ packages/hdom-canvas/CHANGELOG.md | 8 ++++++ packages/hdom-canvas/package.json | 6 ++--- packages/hiccup-markdown/CHANGELOG.md | 8 ++++++ packages/hiccup-markdown/package.json | 4 +-- packages/hiccup-svg/CHANGELOG.md | 8 ++++++ packages/hiccup-svg/package.json | 4 +-- packages/iges/CHANGELOG.md | 8 ++++++ packages/iges/package.json | 4 +-- packages/imgui/CHANGELOG.md | 8 ++++++ packages/imgui/package.json | 12 ++++----- packages/lsys/CHANGELOG.md | 8 ++++++ packages/lsys/package.json | 4 +-- packages/matrices/CHANGELOG.md | 8 ++++++ packages/matrices/package.json | 4 +-- packages/poisson/CHANGELOG.md | 8 ++++++ packages/poisson/package.json | 6 ++--- packages/ramp/CHANGELOG.md | 8 ++++++ packages/ramp/package.json | 4 +-- packages/scenegraph/CHANGELOG.md | 8 ++++++ packages/scenegraph/package.json | 6 ++--- packages/shader-ast-js/CHANGELOG.md | 8 ++++++ packages/shader-ast-js/package.json | 6 ++--- packages/soa/CHANGELOG.md | 8 ++++++ packages/soa/package.json | 4 +-- packages/text-canvas/CHANGELOG.md | 8 ++++++ packages/text-canvas/package.json | 4 +-- packages/vector-pools/CHANGELOG.md | 8 ++++++ packages/vector-pools/package.json | 4 +-- packages/vectors/CHANGELOG.md | 11 ++++++++ packages/vectors/package.json | 2 +- packages/webgl-msdf/CHANGELOG.md | 8 ++++++ packages/webgl-msdf/package.json | 8 +++--- packages/webgl-shadertoy/CHANGELOG.md | 8 ++++++ packages/webgl-shadertoy/package.json | 4 +-- packages/webgl/CHANGELOG.md | 8 ++++++ packages/webgl/package.json | 8 +++--- 74 files changed, 420 insertions(+), 121 deletions(-) diff --git a/packages/adjacency/CHANGELOG.md b/packages/adjacency/CHANGELOG.md index c1d9156593..f452d35138 100644 --- a/packages/adjacency/CHANGELOG.md +++ b/packages/adjacency/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/adjacency@0.1.39...@thi.ng/adjacency@0.1.40) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/adjacency + + + + + ## [0.1.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.38...@thi.ng/adjacency@0.1.39) (2020-04-23) **Note:** Version bump only for package @thi.ng/adjacency diff --git a/packages/adjacency/package.json b/packages/adjacency/package.json index f37204de6c..bb2fced5be 100644 --- a/packages/adjacency/package.json +++ b/packages/adjacency/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/adjacency", - "version": "0.1.39", + "version": "0.1.40", "description": "Sparse & bitwise adjacency matrices and related functions for directed & undirected graphs", "module": "./index.js", "main": "./lib/index.js", @@ -29,7 +29,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.7.8", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "@types/mocha": "^7.0.1", "@types/node": "^13.7.4", "mocha": "^7.1.1", diff --git a/packages/color/CHANGELOG.md b/packages/color/CHANGELOG.md index 8342d203dd..3ed76d07c4 100644 --- a/packages/color/CHANGELOG.md +++ b/packages/color/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.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.1.16...@thi.ng/color@1.1.17) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/color + + + + + ## [1.1.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.1.15...@thi.ng/color@1.1.16) (2020-04-23) **Note:** Version bump only for package @thi.ng/color diff --git a/packages/color/package.json b/packages/color/package.json index 08b29c4f57..fc614e0a76 100644 --- a/packages/color/package.json +++ b/packages/color/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/color", - "version": "1.1.16", + "version": "1.1.17", "description": "Array-based color ops, conversions, multi-color gradients, presets", "module": "./index.js", "main": "./lib/index.js", @@ -46,7 +46,7 @@ "@thi.ng/math": "^1.7.6", "@thi.ng/strings": "^1.8.4", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-accel/CHANGELOG.md b/packages/geom-accel/CHANGELOG.md index 34d4b529e0..9a4d632fef 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.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.0...@thi.ng/geom-accel@2.1.1) (2020-04-23) + +**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 38f701a0dc..36718c6e91 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.0", + "version": "2.1.1", "description": "n-D spatial indexing data structures with a shared ES6 Map/Set-like API", "module": "./index.js", "main": "./lib/index.js", @@ -43,12 +43,12 @@ "@thi.ng/arrays": "^0.6.3", "@thi.ng/checks": "^2.6.2", "@thi.ng/equiv": "^1.0.19", - "@thi.ng/geom-api": "^1.0.12", - "@thi.ng/geom-isec": "^0.4.12", + "@thi.ng/geom-api": "^1.0.13", + "@thi.ng/geom-isec": "^0.4.13", "@thi.ng/heaps": "^1.2.10", "@thi.ng/math": "^1.7.6", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-api/CHANGELOG.md b/packages/geom-api/CHANGELOG.md index e009eabc2e..05f0c0db14 100644 --- a/packages/geom-api/CHANGELOG.md +++ b/packages/geom-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. +## [1.0.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.12...@thi.ng/geom-api@1.0.13) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-api + + + + + ## [1.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.11...@thi.ng/geom-api@1.0.12) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-api diff --git a/packages/geom-api/package.json b/packages/geom-api/package.json index 7cac644d00..f7adfbb64d 100644 --- a/packages/geom-api/package.json +++ b/packages/geom-api/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-api", - "version": "1.0.12", + "version": "1.0.13", "description": "Shared type & interface declarations for @thi.ng/geom packages", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-arc/CHANGELOG.md b/packages/geom-arc/CHANGELOG.md index a586c1757f..e7637e8c43 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.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.2.23...@thi.ng/geom-arc@0.2.24) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-arc + + + + + ## [0.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.2.22...@thi.ng/geom-arc@0.2.23) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-arc diff --git a/packages/geom-arc/package.json b/packages/geom-arc/package.json index 692e449cba..d3314c7ae0 100644 --- a/packages/geom-arc/package.json +++ b/packages/geom-arc/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-arc", - "version": "0.2.23", + "version": "0.2.24", "description": "2D circular / elliptic arc operations", "module": "./index.js", "main": "./lib/index.js", @@ -39,10 +39,10 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.12", - "@thi.ng/geom-resample": "^0.2.23", + "@thi.ng/geom-api": "^1.0.13", + "@thi.ng/geom-resample": "^0.2.24", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-clip-line/CHANGELOG.md b/packages/geom-clip-line/CHANGELOG.md index 3a8103a6c3..f62108145f 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.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.0.10...@thi.ng/geom-clip-line@1.0.11) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-clip-line + + + + + ## [1.0.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.0.9...@thi.ng/geom-clip-line@1.0.10) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-clip-line diff --git a/packages/geom-clip-line/package.json b/packages/geom-clip-line/package.json index 2607613013..1a9b79d6a2 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.0.10", + "version": "1.0.11", "description": "2D line clipping (Liang-Barsky)", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-clip-poly/CHANGELOG.md b/packages/geom-clip-poly/CHANGELOG.md index 21367f6a1c..0259522e1c 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.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.10...@thi.ng/geom-clip-poly@1.0.11) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-clip-poly + + + + + ## [1.0.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.9...@thi.ng/geom-clip-poly@1.0.10) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-clip-poly diff --git a/packages/geom-clip-poly/package.json b/packages/geom-clip-poly/package.json index 6a517b2f30..668890ab30 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.10", + "version": "1.0.11", "description": "2D convex polygon clipping (Sutherland-Hodgeman)", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/geom-isec": "^0.4.12", - "@thi.ng/geom-poly-utils": "^0.1.41", + "@thi.ng/geom-isec": "^0.4.13", + "@thi.ng/geom-poly-utils": "^0.1.42", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-closest-point/CHANGELOG.md b/packages/geom-closest-point/CHANGELOG.md index d061364077..ca8b813fc1 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.3.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.3.23...@thi.ng/geom-closest-point@0.3.24) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-closest-point + + + + + ## [0.3.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.3.22...@thi.ng/geom-closest-point@0.3.23) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-closest-point diff --git a/packages/geom-closest-point/package.json b/packages/geom-closest-point/package.json index cacf22908a..05327f198a 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.3.23", + "version": "0.3.24", "description": "2D / 3D closest point / proximity helpers", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-hull/CHANGELOG.md b/packages/geom-hull/CHANGELOG.md index cbd155efc7..664339ae8f 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.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.43...@thi.ng/geom-hull@0.0.44) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-hull + + + + + ## [0.0.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.42...@thi.ng/geom-hull@0.0.43) (2020-04-23) **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 6beec03b19..c145e8ca39 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.43", + "version": "0.0.44", "description": "Fast 2D convex hull (Graham Scan)", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-io-obj/CHANGELOG.md b/packages/geom-io-obj/CHANGELOG.md index 0741073a80..15b165f6d9 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.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.1...@thi.ng/geom-io-obj@0.1.2) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-io-obj + + + + + ## [0.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.0...@thi.ng/geom-io-obj@0.1.1) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-io-obj diff --git a/packages/geom-io-obj/package.json b/packages/geom-io-obj/package.json index 02c88c3b1b..751abe5929 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.1", + "version": "0.1.2", "description": "Wavefront OBJ parser (& exporter soon)", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/vectors": "^4.3.0" + "@thi.ng/vectors": "^4.3.1" }, "files": [ "*.js", diff --git a/packages/geom-isec/CHANGELOG.md b/packages/geom-isec/CHANGELOG.md index b627036af8..2d2c09f283 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.4.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.4.12...@thi.ng/geom-isec@0.4.13) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-isec + + + + + ## [0.4.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.4.11...@thi.ng/geom-isec@0.4.12) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-isec diff --git a/packages/geom-isec/package.json b/packages/geom-isec/package.json index 85029591a0..1973184c21 100644 --- a/packages/geom-isec/package.json +++ b/packages/geom-isec/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-isec", - "version": "0.4.12", + "version": "0.4.13", "description": "2D/3D shape intersection checks", "module": "./index.js", "main": "./lib/index.js", @@ -39,10 +39,10 @@ }, "dependencies": { "@thi.ng/api": "^6.10.1", - "@thi.ng/geom-api": "^1.0.12", - "@thi.ng/geom-closest-point": "^0.3.23", + "@thi.ng/geom-api": "^1.0.13", + "@thi.ng/geom-closest-point": "^0.3.24", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-isoline/CHANGELOG.md b/packages/geom-isoline/CHANGELOG.md index cc99686087..130423c529 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.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.41...@thi.ng/geom-isoline@0.1.42) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-isoline + + + + + ## [0.1.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.40...@thi.ng/geom-isoline@0.1.41) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-isoline diff --git a/packages/geom-isoline/package.json b/packages/geom-isoline/package.json index d6b2ebda87..585965d20c 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.41", + "version": "0.1.42", "description": "Fast 2D contour line extraction / generation", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-poly-utils/CHANGELOG.md b/packages/geom-poly-utils/CHANGELOG.md index 3f2182e68f..3a87017fc3 100644 --- a/packages/geom-poly-utils/CHANGELOG.md +++ b/packages/geom-poly-utils/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/geom-poly-utils@0.1.41...@thi.ng/geom-poly-utils@0.1.42) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-poly-utils + + + + + ## [0.1.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.40...@thi.ng/geom-poly-utils@0.1.41) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-poly-utils diff --git a/packages/geom-poly-utils/package.json b/packages/geom-poly-utils/package.json index 7dfe18b17e..b5c3713753 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.1.41", + "version": "0.1.42", "description": "2D polygon / triangle analysis & processing utilities", "module": "./index.js", "main": "./lib/index.js", @@ -39,9 +39,9 @@ }, "dependencies": { "@thi.ng/errors": "^1.2.10", - "@thi.ng/geom-api": "^1.0.12", + "@thi.ng/geom-api": "^1.0.13", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-resample/CHANGELOG.md b/packages/geom-resample/CHANGELOG.md index b72966bb34..d2ec5d5774 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.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.23...@thi.ng/geom-resample@0.2.24) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-resample + + + + + ## [0.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.22...@thi.ng/geom-resample@0.2.23) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-resample diff --git a/packages/geom-resample/package.json b/packages/geom-resample/package.json index 1e127580e9..30f154be55 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.23", + "version": "0.2.24", "description": "Customizable nD polyline interpolation, re-sampling, splitting & nearest point computation", "module": "./index.js", "main": "./lib/index.js", @@ -39,10 +39,10 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.12", - "@thi.ng/geom-closest-point": "^0.3.23", + "@thi.ng/geom-api": "^1.0.13", + "@thi.ng/geom-closest-point": "^0.3.24", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-splines/CHANGELOG.md b/packages/geom-splines/CHANGELOG.md index f79bfce08a..4441d64f77 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.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.10...@thi.ng/geom-splines@0.5.11) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-splines + + + + + ## [0.5.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.9...@thi.ng/geom-splines@0.5.10) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-splines diff --git a/packages/geom-splines/package.json b/packages/geom-splines/package.json index 57deb57fad..91470f839e 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.10", + "version": "0.5.11", "description": "nD cubic & quadratic curve analysis, conversion, interpolation, splitting", "module": "./index.js", "main": "./lib/index.js", @@ -39,11 +39,11 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.12", - "@thi.ng/geom-arc": "^0.2.23", - "@thi.ng/geom-resample": "^0.2.23", + "@thi.ng/geom-api": "^1.0.13", + "@thi.ng/geom-arc": "^0.2.24", + "@thi.ng/geom-resample": "^0.2.24", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-subdiv-curve/CHANGELOG.md b/packages/geom-subdiv-curve/CHANGELOG.md index 1e2fe33850..34fe5b5fd9 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.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.40...@thi.ng/geom-subdiv-curve@0.1.41) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-subdiv-curve + + + + + ## [0.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.39...@thi.ng/geom-subdiv-curve@0.1.40) (2020-04-23) **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 87cf0f16ef..51ea7cfc50 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.40", + "version": "0.1.41", "description": "Freely customizable, iterative nD subdivision curves for open / closed geometries", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/geom-api": "^1.0.12", + "@thi.ng/geom-api": "^1.0.13", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-tessellate/CHANGELOG.md b/packages/geom-tessellate/CHANGELOG.md index 53e3d2a012..55f9feb5cc 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.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.23...@thi.ng/geom-tessellate@0.2.24) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-tessellate + + + + + ## [0.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.22...@thi.ng/geom-tessellate@0.2.23) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-tessellate diff --git a/packages/geom-tessellate/package.json b/packages/geom-tessellate/package.json index 05367a91ca..c37e8e5ea9 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.23", + "version": "0.2.24", "description": "2D/3D convex polygon tessellators", "module": "./index.js", "main": "./lib/index.js", @@ -39,11 +39,11 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.12", - "@thi.ng/geom-isec": "^0.4.12", - "@thi.ng/geom-poly-utils": "^0.1.41", + "@thi.ng/geom-api": "^1.0.13", + "@thi.ng/geom-isec": "^0.4.13", + "@thi.ng/geom-poly-utils": "^0.1.42", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-voronoi/CHANGELOG.md b/packages/geom-voronoi/CHANGELOG.md index 3139ca6a87..90f57335bc 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.1.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.1.41...@thi.ng/geom-voronoi@0.1.42) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom-voronoi + + + + + ## [0.1.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.1.40...@thi.ng/geom-voronoi@0.1.41) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-voronoi diff --git a/packages/geom-voronoi/package.json b/packages/geom-voronoi/package.json index ea316a2df1..34ac10e8d9 100644 --- a/packages/geom-voronoi/package.json +++ b/packages/geom-voronoi/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-voronoi", - "version": "0.1.41", + "version": "0.1.42", "description": "Fast, incremental 2D Delaunay & Voronoi mesh implementation", "module": "./index.js", "main": "./lib/index.js", @@ -40,13 +40,13 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-clip-line": "^1.0.10", - "@thi.ng/geom-clip-poly": "^1.0.10", - "@thi.ng/geom-isec": "^0.4.12", - "@thi.ng/geom-poly-utils": "^0.1.41", + "@thi.ng/geom-clip-line": "^1.0.11", + "@thi.ng/geom-clip-poly": "^1.0.11", + "@thi.ng/geom-isec": "^0.4.13", + "@thi.ng/geom-poly-utils": "^0.1.42", "@thi.ng/math": "^1.7.6", "@thi.ng/quad-edge": "^0.2.12", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom/CHANGELOG.md b/packages/geom/CHANGELOG.md index 65ff0b5201..eea4ccfd3d 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.8.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.8.11...@thi.ng/geom@1.8.12) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/geom + + + + + ## [1.8.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.8.10...@thi.ng/geom@1.8.11) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom diff --git a/packages/geom/package.json b/packages/geom/package.json index c28560af69..2058d6954f 100644 --- a/packages/geom/package.json +++ b/packages/geom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom", - "version": "1.8.11", + "version": "1.8.12", "description": "Functional, polymorphic API for 2D geometry types & SVG generation", "module": "./index.js", "main": "./lib/index.js", @@ -45,25 +45,25 @@ "@thi.ng/defmulti": "^1.2.11", "@thi.ng/equiv": "^1.0.19", "@thi.ng/errors": "^1.2.10", - "@thi.ng/geom-api": "^1.0.12", - "@thi.ng/geom-arc": "^0.2.23", - "@thi.ng/geom-clip-line": "^1.0.10", - "@thi.ng/geom-clip-poly": "^1.0.10", - "@thi.ng/geom-closest-point": "^0.3.23", - "@thi.ng/geom-hull": "^0.0.43", - "@thi.ng/geom-isec": "^0.4.12", - "@thi.ng/geom-poly-utils": "^0.1.41", - "@thi.ng/geom-resample": "^0.2.23", - "@thi.ng/geom-splines": "^0.5.10", - "@thi.ng/geom-subdiv-curve": "^0.1.40", - "@thi.ng/geom-tessellate": "^0.2.23", + "@thi.ng/geom-api": "^1.0.13", + "@thi.ng/geom-arc": "^0.2.24", + "@thi.ng/geom-clip-line": "^1.0.11", + "@thi.ng/geom-clip-poly": "^1.0.11", + "@thi.ng/geom-closest-point": "^0.3.24", + "@thi.ng/geom-hull": "^0.0.44", + "@thi.ng/geom-isec": "^0.4.13", + "@thi.ng/geom-poly-utils": "^0.1.42", + "@thi.ng/geom-resample": "^0.2.24", + "@thi.ng/geom-splines": "^0.5.11", + "@thi.ng/geom-subdiv-curve": "^0.1.41", + "@thi.ng/geom-tessellate": "^0.2.24", "@thi.ng/hiccup": "^3.2.18", - "@thi.ng/hiccup-svg": "^3.4.13", + "@thi.ng/hiccup-svg": "^3.4.14", "@thi.ng/math": "^1.7.6", - "@thi.ng/matrices": "^0.6.10", + "@thi.ng/matrices": "^0.6.11", "@thi.ng/random": "^1.4.5", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hdom-canvas/CHANGELOG.md b/packages/hdom-canvas/CHANGELOG.md index b5edfc0e7c..081bd2558b 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. +## [2.4.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@2.4.16...@thi.ng/hdom-canvas@2.4.17) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/hdom-canvas + + + + + ## [2.4.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@2.4.15...@thi.ng/hdom-canvas@2.4.16) (2020-04-23) **Note:** Version bump only for package @thi.ng/hdom-canvas diff --git a/packages/hdom-canvas/package.json b/packages/hdom-canvas/package.json index 44553e5204..ad5b50576b 100644 --- a/packages/hdom-canvas/package.json +++ b/packages/hdom-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom-canvas", - "version": "2.4.16", + "version": "2.4.17", "description": "Declarative canvas scenegraph & visualization for @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -40,11 +40,11 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", - "@thi.ng/color": "^1.1.16", + "@thi.ng/color": "^1.1.17", "@thi.ng/diff": "^3.2.16", "@thi.ng/hdom": "^8.0.20", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hiccup-markdown/CHANGELOG.md b/packages/hiccup-markdown/CHANGELOG.md index 0d5374b283..776b7c0745 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.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.6...@thi.ng/hiccup-markdown@1.2.7) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/hiccup-markdown + + + + + ## [1.2.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.5...@thi.ng/hiccup-markdown@1.2.6) (2020-04-23) **Note:** Version bump only for package @thi.ng/hiccup-markdown diff --git a/packages/hiccup-markdown/package.json b/packages/hiccup-markdown/package.json index 54941529e2..f071517481 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.6", + "version": "1.2.7", "description": "Markdown parser & serializer from/to Hiccup format", "module": "./index.js", "main": "./lib/index.js", @@ -45,7 +45,7 @@ "@thi.ng/fsm": "^2.4.5", "@thi.ng/hiccup": "^3.2.18", "@thi.ng/strings": "^1.8.4", - "@thi.ng/text-canvas": "^0.2.7", + "@thi.ng/text-canvas": "^0.2.8", "@thi.ng/transducers": "^6.4.6", "tslib": "^1.11.1" }, diff --git a/packages/hiccup-svg/CHANGELOG.md b/packages/hiccup-svg/CHANGELOG.md index a7630a30cb..036103317d 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.4.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.4.13...@thi.ng/hiccup-svg@3.4.14) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/hiccup-svg + + + + + ## [3.4.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.4.12...@thi.ng/hiccup-svg@3.4.13) (2020-04-23) **Note:** Version bump only for package @thi.ng/hiccup-svg diff --git a/packages/hiccup-svg/package.json b/packages/hiccup-svg/package.json index bb60d49e87..b19e1d685f 100644 --- a/packages/hiccup-svg/package.json +++ b/packages/hiccup-svg/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-svg", - "version": "3.4.13", + "version": "3.4.14", "description": "SVG element functions for @thi.ng/hiccup & @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -39,7 +39,7 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/color": "^1.1.16", + "@thi.ng/color": "^1.1.17", "@thi.ng/hiccup": "^3.2.18", "tslib": "^1.11.1" }, diff --git a/packages/iges/CHANGELOG.md b/packages/iges/CHANGELOG.md index c46b842bf6..a431fa87e4 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.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.25...@thi.ng/iges@1.1.26) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/iges + + + + + ## [1.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.24...@thi.ng/iges@1.1.25) (2020-04-23) **Note:** Version bump only for package @thi.ng/iges diff --git a/packages/iges/package.json b/packages/iges/package.json index c7b663beab..20789c413b 100644 --- a/packages/iges/package.json +++ b/packages/iges/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/iges", - "version": "1.1.25", + "version": "1.1.26", "description": "IGES 5.3 serializer for (currently only) polygonal geometry, both open & closed", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "@thi.ng/defmulti": "^1.2.11", "@thi.ng/strings": "^1.8.4", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/imgui/CHANGELOG.md b/packages/imgui/CHANGELOG.md index 44fb646406..7a734b2084 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.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.11...@thi.ng/imgui@0.2.12) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/imgui + + + + + ## [0.2.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.10...@thi.ng/imgui@0.2.11) (2020-04-23) **Note:** Version bump only for package @thi.ng/imgui diff --git a/packages/imgui/package.json b/packages/imgui/package.json index 931cd45cf0..53ab528cbc 100644 --- a/packages/imgui/package.json +++ b/packages/imgui/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/imgui", - "version": "0.2.11", + "version": "0.2.12", "description": "Immediate mode GUI with flexible state handling & data only shape output", "module": "./index.js", "main": "./lib/index.js", @@ -40,14 +40,14 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom": "^1.8.11", - "@thi.ng/geom-api": "^1.0.12", - "@thi.ng/geom-isec": "^0.4.12", - "@thi.ng/geom-tessellate": "^0.2.23", + "@thi.ng/geom": "^1.8.12", + "@thi.ng/geom-api": "^1.0.13", + "@thi.ng/geom-isec": "^0.4.13", + "@thi.ng/geom-tessellate": "^0.2.24", "@thi.ng/layout": "^0.1.7", "@thi.ng/math": "^1.7.6", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/lsys/CHANGELOG.md b/packages/lsys/CHANGELOG.md index 6b012d6249..925deaa253 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.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.38...@thi.ng/lsys@0.2.39) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/lsys + + + + + ## [0.2.38](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.37...@thi.ng/lsys@0.2.38) (2020-04-23) **Note:** Version bump only for package @thi.ng/lsys diff --git a/packages/lsys/package.json b/packages/lsys/package.json index b1046aefe6..3bd44bcf48 100644 --- a/packages/lsys/package.json +++ b/packages/lsys/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/lsys", - "version": "0.2.38", + "version": "0.2.39", "description": "Functional, extensible L-System architecture w/ support for probabilistic rules", "module": "./index.js", "main": "./lib/index.js", @@ -44,7 +44,7 @@ "@thi.ng/math": "^1.7.6", "@thi.ng/random": "^1.4.5", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/matrices/CHANGELOG.md b/packages/matrices/CHANGELOG.md index 7461fbd01c..a603ff524d 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.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.10...@thi.ng/matrices@0.6.11) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/matrices + + + + + ## [0.6.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.9...@thi.ng/matrices@0.6.10) (2020-04-23) **Note:** Version bump only for package @thi.ng/matrices diff --git a/packages/matrices/package.json b/packages/matrices/package.json index ce346c8327..f7989a5e96 100644 --- a/packages/matrices/package.json +++ b/packages/matrices/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/matrices", - "version": "0.6.10", + "version": "0.6.11", "description": "Matrix & quaternion operations for 2D/3D geometry processing", "module": "./index.js", "main": "./lib/index.js", @@ -41,7 +41,7 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/poisson/CHANGELOG.md b/packages/poisson/CHANGELOG.md index 7c2fb45cb1..b2a7768696 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.0.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.0.12...@thi.ng/poisson@1.0.13) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/poisson + + + + + ## [1.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.0.11...@thi.ng/poisson@1.0.12) (2020-04-23) **Note:** Version bump only for package @thi.ng/poisson diff --git a/packages/poisson/package.json b/packages/poisson/package.json index 6826824f8e..627491237e 100644 --- a/packages/poisson/package.json +++ b/packages/poisson/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/poisson", - "version": "1.0.12", + "version": "1.0.13", "description": "nD Poisson-disc sampling w/ support for spatial density functions and custom PRNGs", "module": "./index.js", "main": "./lib/index.js", @@ -39,9 +39,9 @@ }, "dependencies": { "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.12", + "@thi.ng/geom-api": "^1.0.13", "@thi.ng/random": "^1.4.5", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/ramp/CHANGELOG.md b/packages/ramp/CHANGELOG.md index 363f456492..88c64a3536 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.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.12...@thi.ng/ramp@0.1.13) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/ramp + + + + + ## [0.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.11...@thi.ng/ramp@0.1.12) (2020-04-23) **Note:** Version bump only for package @thi.ng/ramp diff --git a/packages/ramp/package.json b/packages/ramp/package.json index 8f2db35f0e..a31d8b2550 100644 --- a/packages/ramp/package.json +++ b/packages/ramp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/ramp", - "version": "0.1.12", + "version": "0.1.13", "description": "Parametric interpolated 1D lookup tables for remapping values", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "@thi.ng/compare": "^1.3.2", "@thi.ng/math": "^1.7.6", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/scenegraph/CHANGELOG.md b/packages/scenegraph/CHANGELOG.md index 9c0a233440..0c093b8e38 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.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.1.13...@thi.ng/scenegraph@0.1.14) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/scenegraph + + + + + ## [0.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.1.12...@thi.ng/scenegraph@0.1.13) (2020-04-23) **Note:** Version bump only for package @thi.ng/scenegraph diff --git a/packages/scenegraph/package.json b/packages/scenegraph/package.json index cc8b76588b..c059901f06 100644 --- a/packages/scenegraph/package.json +++ b/packages/scenegraph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/scenegraph", - "version": "0.1.13", + "version": "0.1.14", "description": "Extensible 2D/3D scene graph with @thi.ng/hdom-canvas support", "module": "./index.js", "main": "./lib/index.js", @@ -40,8 +40,8 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/checks": "^2.6.2", - "@thi.ng/matrices": "^0.6.10", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/matrices": "^0.6.11", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/shader-ast-js/CHANGELOG.md b/packages/shader-ast-js/CHANGELOG.md index 101b5b1648..f6607ef120 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.4.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.4.16...@thi.ng/shader-ast-js@0.4.17) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/shader-ast-js + + + + + ## [0.4.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.4.15...@thi.ng/shader-ast-js@0.4.16) (2020-04-23) **Note:** Version bump only for package @thi.ng/shader-ast-js diff --git a/packages/shader-ast-js/package.json b/packages/shader-ast-js/package.json index 775b450e1d..04a75b74ce 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.4.16", + "version": "0.4.17", "description": "Customizable JS code generator, compiler & runtime for @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -42,10 +42,10 @@ "@thi.ng/checks": "^2.6.2", "@thi.ng/errors": "^1.2.10", "@thi.ng/math": "^1.7.6", - "@thi.ng/matrices": "^0.6.10", + "@thi.ng/matrices": "^0.6.11", "@thi.ng/pixel": "^0.1.16", "@thi.ng/shader-ast": "^0.3.16", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/soa/CHANGELOG.md b/packages/soa/CHANGELOG.md index 7d5b8b3342..75cf7f28e2 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.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.14...@thi.ng/soa@0.1.15) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/soa + + + + + ## [0.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.13...@thi.ng/soa@0.1.14) (2020-04-23) **Note:** Version bump only for package @thi.ng/soa diff --git a/packages/soa/package.json b/packages/soa/package.json index 7f37d1b317..6bb0632888 100644 --- a/packages/soa/package.json +++ b/packages/soa/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/soa", - "version": "0.1.14", + "version": "0.1.15", "description": "SOA & AOS memory mapped structured views with optional & extensible serialization", "module": "./index.js", "main": "./lib/index.js", @@ -42,7 +42,7 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/binary": "^2.0.3", "@thi.ng/transducers-binary": "^0.5.9", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/text-canvas/CHANGELOG.md b/packages/text-canvas/CHANGELOG.md index eed68605e0..c79a2897a1 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.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.7...@thi.ng/text-canvas@0.2.8) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/text-canvas + + + + + ## [0.2.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.6...@thi.ng/text-canvas@0.2.7) (2020-04-23) **Note:** Version bump only for package @thi.ng/text-canvas diff --git a/packages/text-canvas/package.json b/packages/text-canvas/package.json index 9ec7b7249d..b531709486 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.7", + "version": "0.2.8", "description": "Text based canvas, drawing, tables with arbitrary formatting (incl. ANSI/HTML)", "module": "./index.js", "main": "./lib/index.js", @@ -41,7 +41,7 @@ "dependencies": { "@thi.ng/api": "^6.10.1", "@thi.ng/arrays": "^0.6.3", - "@thi.ng/geom-clip-line": "^1.0.10", + "@thi.ng/geom-clip-line": "^1.0.11", "@thi.ng/math": "^1.7.6", "@thi.ng/memoize": "^2.0.7", "@thi.ng/transducers": "^6.4.6", diff --git a/packages/vector-pools/CHANGELOG.md b/packages/vector-pools/CHANGELOG.md index 647584e843..ee557db6ca 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.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.23...@thi.ng/vector-pools@1.0.24) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/vector-pools + + + + + ## [1.0.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.22...@thi.ng/vector-pools@1.0.23) (2020-04-23) **Note:** Version bump only for package @thi.ng/vector-pools diff --git a/packages/vector-pools/package.json b/packages/vector-pools/package.json index 3c5dff06ad..66e170bf5f 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.23", + "version": "1.0.24", "description": "Data structures for managing & working with strided, memory mapped vectors", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "@thi.ng/checks": "^2.6.2", "@thi.ng/malloc": "^4.1.11", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/vectors/CHANGELOG.md b/packages/vectors/CHANGELOG.md index c037b5198f..297edef09e 100644 --- a/packages/vectors/CHANGELOG.md +++ b/packages/vectors/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. +## [4.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.3.0...@thi.ng/vectors@4.3.1) (2020-04-23) + + +### Bug Fixes + +* **vectors:** add missing equals2/3/4 exports ([041f590](https://github.com/thi-ng/umbrella/commit/041f590f6c1c29efd01fccc26cbbb2c0992e1147)) + + + + + # [4.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.2.6...@thi.ng/vectors@4.3.0) (2020-04-23) diff --git a/packages/vectors/package.json b/packages/vectors/package.json index 76859c0ee5..6f6ae37372 100644 --- a/packages/vectors/package.json +++ b/packages/vectors/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/vectors", - "version": "4.3.0", + "version": "4.3.1", "description": "Optimized 2d/3d/4d and arbitrary length vector operations", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/webgl-msdf/CHANGELOG.md b/packages/webgl-msdf/CHANGELOG.md index 0685f6ad50..63268ae8ba 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.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.26...@thi.ng/webgl-msdf@0.1.27) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/webgl-msdf + + + + + ## [0.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.25...@thi.ng/webgl-msdf@0.1.26) (2020-04-23) **Note:** Version bump only for package @thi.ng/webgl-msdf diff --git a/packages/webgl-msdf/package.json b/packages/webgl-msdf/package.json index cbe08448a2..770f08ef9a 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.26", + "version": "0.1.27", "description": "Multi-channel SDF font rendering & basic text layout for WebGL", "module": "./index.js", "main": "./lib/index.js", @@ -41,9 +41,9 @@ "@thi.ng/api": "^6.10.1", "@thi.ng/shader-ast": "^0.3.16", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vector-pools": "^1.0.23", - "@thi.ng/vectors": "^4.3.0", - "@thi.ng/webgl": "^1.0.8", + "@thi.ng/vector-pools": "^1.0.24", + "@thi.ng/vectors": "^4.3.1", + "@thi.ng/webgl": "^1.0.9", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/webgl-shadertoy/CHANGELOG.md b/packages/webgl-shadertoy/CHANGELOG.md index fa1f1d93af..f9a28be4d7 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.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.13...@thi.ng/webgl-shadertoy@0.2.14) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/webgl-shadertoy + + + + + ## [0.2.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.12...@thi.ng/webgl-shadertoy@0.2.13) (2020-04-23) **Note:** Version bump only for package @thi.ng/webgl-shadertoy diff --git a/packages/webgl-shadertoy/package.json b/packages/webgl-shadertoy/package.json index b0eaa90e66..dc86f3fa9a 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.13", + "version": "0.2.14", "description": "Basic WebGL scaffolding for running interactive fragment shaders via @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -42,7 +42,7 @@ "@thi.ng/shader-ast": "^0.3.16", "@thi.ng/shader-ast-glsl": "^0.1.22", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/webgl": "^1.0.8", + "@thi.ng/webgl": "^1.0.9", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/webgl/CHANGELOG.md b/packages/webgl/CHANGELOG.md index 4aa0f240b1..a040d00fff 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. +## [1.0.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@1.0.8...@thi.ng/webgl@1.0.9) (2020-04-23) + +**Note:** Version bump only for package @thi.ng/webgl + + + + + ## [1.0.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@1.0.7...@thi.ng/webgl@1.0.8) (2020-04-23) **Note:** Version bump only for package @thi.ng/webgl diff --git a/packages/webgl/package.json b/packages/webgl/package.json index a1e6d3881f..e27dc7e6dc 100644 --- a/packages/webgl/package.json +++ b/packages/webgl/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/webgl", - "version": "1.0.8", + "version": "1.0.9", "description": "WebGL & GLSL abstraction layer", "module": "./index.js", "main": "./lib/index.js", @@ -44,14 +44,14 @@ "@thi.ng/checks": "^2.6.2", "@thi.ng/equiv": "^1.0.19", "@thi.ng/errors": "^1.2.10", - "@thi.ng/matrices": "^0.6.10", + "@thi.ng/matrices": "^0.6.11", "@thi.ng/pixel": "^0.1.16", "@thi.ng/shader-ast": "^0.3.16", "@thi.ng/shader-ast-glsl": "^0.1.22", "@thi.ng/shader-ast-stdlib": "^0.3.15", "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vector-pools": "^1.0.23", - "@thi.ng/vectors": "^4.3.0", + "@thi.ng/vector-pools": "^1.0.24", + "@thi.ng/vectors": "^4.3.1", "tslib": "^1.11.1" }, "files": [ From d8594c074682500fe670a9b8bc8b457cf47c7ec2 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 23 Apr 2020 14:11:43 +0100 Subject: [PATCH 69/78] build: update upload-docs script (html minifier) --- scripts/upload-docs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/upload-docs b/scripts/upload-docs index b9224ad21b..e94560f175 100755 --- a/scripts/upload-docs +++ b/scripts/upload-docs @@ -1,5 +1,7 @@ #!/bin/sh +readonly OPTS='--file-ext html --collapse-whitespace --remove-comments --remove-optional-tags --remove-redundant-attributes --remove-script-type-attributes --remove-tag-whitespace --use-short-doctype --minify-css true' + if [ $# = 1 ]; then modules="packages/$1/" else @@ -10,6 +12,8 @@ for m in $modules; do name=$(echo "$m" | cut -d '/' -f 2) echo "sanitizing: $name" find "$m"/doc -name "*.html" -exec sed -i '' -E "s/\/([a-zA-Z_0-9\/-]+)\/node_modules\///g" '{}' \; + echo "minifying..." + html-minifier-terser $OPTS --input-dir $m/doc --output-dir $m/doc echo "syncing..." aws s3 sync "$m"/doc s3://docs.thi.ng/umbrella/"$name" --profile toxi-s3 --acl public-read done From ef68a2703aab83cf1b520a832a6b1c8268759a3b Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 24 Apr 2020 17:19:41 +0100 Subject: [PATCH 70/78] feat(geom): add transformVertices() op --- packages/geom/src/index.ts | 1 + .../geom/src/internal/transform-points.ts | 58 ++++++++-- packages/geom/src/ops/transform-vertices.ts | 105 ++++++++++++++++++ 3 files changed, 152 insertions(+), 12 deletions(-) create mode 100644 packages/geom/src/ops/transform-vertices.ts diff --git a/packages/geom/src/index.ts b/packages/geom/src/index.ts index d36ccba5a6..a3787ca6e8 100644 --- a/packages/geom/src/index.ts +++ b/packages/geom/src/index.ts @@ -69,6 +69,7 @@ export * from "./ops/subdiv-curve"; export * from "./ops/tangent-at"; export * from "./ops/tessellate"; export * from "./ops/transform"; +export * from "./ops/transform-vertices"; export * from "./ops/translate"; export * from "./ops/union"; export * from "./ops/unmap-point"; diff --git a/packages/geom/src/internal/transform-points.ts b/packages/geom/src/internal/transform-points.ts index 60c33e5d59..1a97e44416 100644 --- a/packages/geom/src/internal/transform-points.ts +++ b/packages/geom/src/internal/transform-points.ts @@ -1,28 +1,62 @@ -import { mulV, mulV344, ReadonlyMat } from "@thi.ng/matrices"; -import { copyAttribs } from "./copy-attribs"; +import type { Fn } from "@thi.ng/api"; import type { PCLike, PCLikeConstructor } from "@thi.ng/geom-api"; +import { MatOpMV, mulV, mulV344, ReadonlyMat } from "@thi.ng/matrices"; import type { ReadonlyVec } from "@thi.ng/vectors"; +import { copyAttribs } from "./copy-attribs"; -export const transformPoints = (pts: ReadonlyVec[], mat: ReadonlyMat) => ( - pts.forEach((p) => mulV(null, mat, p)), pts -); +export const transformPoints = ( + pts: ReadonlyVec[], + mat: ReadonlyMat, + op: MatOpMV = mulV +) => (pts.forEach((p) => op(null, mat, p)), pts); -export const transformedPoints = (pts: ReadonlyVec[], mat: ReadonlyMat) => - pts.map((p) => mulV([], mat, p)); +export const transformedPoints = ( + pts: ReadonlyVec[], + mat: ReadonlyMat, + op: MatOpMV = mulV +) => pts.map((p) => op([], mat, p)); -export const transformPoints3 = (pts: ReadonlyVec[], mat: ReadonlyMat) => ( - pts.forEach((p) => mulV344(null, mat, p)!), pts -); +export const transformPointsWith = ( + pts: ReadonlyVec[], + fn: Fn, + op: MatOpMV = mulV +) => (pts.forEach((p) => op(null, fn(p), p)!), pts); -export const transformedPoints3 = (pts: ReadonlyVec[], mat: ReadonlyMat) => - pts.map((p) => mulV344([], mat, p)!); +export const transformedPointsWith = ( + pts: ReadonlyVec[], + fn: Fn, + op: MatOpMV = mulV +) => pts.map((p) => op([], fn(p), p)!); export const transformedShape = (ctor: PCLikeConstructor) => ( $: PCLike, mat: ReadonlyMat ) => new ctor(transformedPoints($.points, mat), copyAttribs($)); +export const transformedShapePoints = (ctor: PCLikeConstructor) => ( + $: PCLike, + fn: Fn +) => new ctor(transformedPointsWith($.points, fn), copyAttribs($)); + +// 3d versions + +export const transformPoints3 = (pts: ReadonlyVec[], mat: ReadonlyMat) => + transformPoints(pts, mat, mulV344); + +export const transformedPoints3 = (pts: ReadonlyVec[], mat: ReadonlyMat) => + transformedPoints(pts, mat, mulV344); + +export const transformedPointsWith3 = ( + pts: ReadonlyVec[], + fn: Fn +) => transformedPointsWith(pts, fn, mulV344); + export const transformedShape3 = (ctor: PCLikeConstructor) => ( $: PCLike, mat: ReadonlyMat ) => new ctor(transformedPoints3($.points, mat), copyAttribs($)); + +export const transformedShapePoints3 = (ctor: PCLikeConstructor) => ( + $: PCLike, + fn: Fn +) => new ctor(transformedPointsWith3($.points, fn), copyAttribs($)); diff --git a/packages/geom/src/ops/transform-vertices.ts b/packages/geom/src/ops/transform-vertices.ts new file mode 100644 index 0000000000..0c7dec3fa4 --- /dev/null +++ b/packages/geom/src/ops/transform-vertices.ts @@ -0,0 +1,105 @@ +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 { mulV, ReadonlyMat } from "@thi.ng/matrices"; +import { map } from "@thi.ng/transducers"; +import { ReadonlyVec } from "@thi.ng/vectors"; +import { Cubic } from "../api/cubic"; +import { Group } from "../api/group"; +import { Line } from "../api/line"; +import { Path } from "../api/path"; +import { Points, Points3 } from "../api/points"; +import { Polygon } from "../api/polygon"; +import { Polyline } from "../api/polyline"; +import { Quad } from "../api/quad"; +import { Quadratic } from "../api/quadratic"; +import { Rect } from "../api/rect"; +import { Triangle } from "../api/triangle"; +import { copyAttribs } from "../internal/copy-attribs"; +import { dispatch } from "../internal/dispatch"; +import { + transformedShapePoints as tx, + transformedShapePoints3 as tx3, +} from "../internal/transform-points"; +import { asPolygon } from "./as-polygon"; +import { asPolyline } from "./as-polyline"; + +/** + * Transforms vertices of given shape with provided function, which is + * being called for each vertex individually and should produce a + * transformation matrix. Some shape types will be automatically + * converted to other types prior to transformation because they cannot + * be reliably represented in their original type anymore, this + * includes: + * + * - Arc => Path (cubics) + * - Circle => Path (cubics) + * - Ellipse => Path (cubics) + * - Rect => Polygon + */ +export const transformVertices = defmulti< + IShape, + Fn, + IShape +>(dispatch); + +transformVertices.addAll(< + IObjectOf, IShape>> +>{ + [Type.ARC]: ($: IShape, fn) => transformVertices(asPolyline($), fn), + + [Type.CUBIC]: tx(Cubic), + + [Type.GROUP]: ($: Group, fn) => + new Group( + copyAttribs($), + $.children.map((x) => transformVertices(x, fn)) + ), + + [Type.LINE]: tx(Line), + + [Type.PATH]: ($: Path, fn) => + new Path( + [ + ...map( + (s) => + s.type === SegmentType.MOVE + ? { + type: s.type, + point: mulV([], fn(s.point!), s.point!), + } + : { + type: s.type, + geo: transformVertices(s.geo!, fn), + }, + $.segments + ), + ], + copyAttribs($) + ), + + [Type.POINTS]: tx(Points), + + [Type.POINTS3]: tx3(Points3), + + [Type.POLYGON]: tx(Polygon), + + [Type.POLYLINE]: tx(Polyline), + + [Type.QUAD]: tx(Quad), + + [Type.QUADRATIC]: tx(Quadratic), + + [Type.RECT]: ($: Rect, fn) => transformVertices(asPolygon($), fn), + + [Type.TRIANGLE]: tx(Triangle), +}); + +transformVertices.isa(Type.CIRCLE, Type.RECT); +transformVertices.isa(Type.ELLIPSE, Type.CIRCLE); From cca85744377c9957af82695236230bc75a005473 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 24 Apr 2020 17:21:00 +0100 Subject: [PATCH 71/78] feat(geom): update asPolyline() impls - add arc & quadratic support --- packages/geom/src/ops/as-polyline.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/geom/src/ops/as-polyline.ts b/packages/geom/src/ops/as-polyline.ts index 204363c7c1..6d023d8cc8 100644 --- a/packages/geom/src/ops/as-polyline.ts +++ b/packages/geom/src/ops/as-polyline.ts @@ -1,3 +1,4 @@ +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 { Cubic } from "../api/cubic"; @@ -6,7 +7,6 @@ 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"; export const asPolyline: MultiFn1O< IShape, @@ -19,7 +19,7 @@ asPolyline.addAll(< Implementation1O, Polyline> > >{ - [Type.CUBIC]: ($:Cubic, opts) => new Polyline(vertices($, opts)), + [Type.CUBIC]: ($: Cubic, opts) => new Polyline(vertices($, opts)), [Type.POINTS]: ($: IShape, opts) => new Polyline(vertices($, opts), copyAttribs($)), @@ -35,13 +35,15 @@ asPolyline.addAll(< [Type.POLYGON]: ($: IShape, opts) => { const pts = vertices($, opts); return new Polyline(pts.concat([pts[0]]), 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); From a8cdbe86a96df0b63682d3f7628ff77f75f23ced Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 24 Apr 2020 18:22:55 +0100 Subject: [PATCH 72/78] feat(pointfree-lang): update grammar (add line comments) - update readme --- packages/pointfree-lang/README.md | 8 ++++++-- packages/pointfree-lang/src/grammar.pegjs | 11 ++++++++++- packages/pointfree-lang/src/index.ts | 2 +- packages/pointfree-lang/tpl.readme.md | 6 +++++- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/packages/pointfree-lang/README.md b/packages/pointfree-lang/README.md index cf3742d3d2..31a0f90a10 100644 --- a/packages/pointfree-lang/README.md +++ b/packages/pointfree-lang/README.md @@ -69,7 +69,7 @@ an ES6 embedded DSL for concatenative programming: yarn add @thi.ng/pointfree-lang ``` -Package sizes (gzipped, pre-treeshake): ESM: 5.06 KB / CJS: 5.05 KB / UMD: 4.97 KB +Package sizes (gzipped, pre-treeshake): ESM: 5.13 KB / CJS: 5.13 KB / UMD: 5.04 KB ## Dependencies @@ -317,7 +317,9 @@ comment](https://github.com/thi-ng/umbrella/tree/develop/packages/pointfree#abou in preparation for future tooling additions. Comments current cannot contain `(` or `)`, but can span multiple lines. -There's no special syntax for single line comments: + +Since v1.4.0 line comments are supported, use the standard JS `//` +prefix and extend until the next newline char. ``` ( multiline: @@ -331,6 +333,8 @@ ______ ____ |__| _____/ |__/ ____\______ ____ ____ ) 1 2 ( embedded single line ) 3 + +// single line comment ``` ### Identifiers diff --git a/packages/pointfree-lang/src/grammar.pegjs b/packages/pointfree-lang/src/grammar.pegjs index 3593919055..970abdad3c 100644 --- a/packages/pointfree-lang/src/grammar.pegjs +++ b/packages/pointfree-lang/src/grammar.pegjs @@ -32,6 +32,7 @@ NonWordExpr = _ expr:( LitQuote / Var + / LineComment / Comment / Array / Obj @@ -104,7 +105,7 @@ Sym } SymChars - = [*?$%&/\|~<>=_.+\-] + = [*?$%&#/\|~<>=_.+\-] Var = VarDeref @@ -138,6 +139,14 @@ Comment }; } +LineComment + = "//" body:$(!"\n" .)* "\n" { + return { + type: NodeType.COMMENT, + body: body.trim() + }; + } + String = "\"" body:$(!"\"" .)* "\"" { return {type: NodeType.STRING, body }; diff --git a/packages/pointfree-lang/src/index.ts b/packages/pointfree-lang/src/index.ts index c32e47a881..9e01343d87 100644 --- a/packages/pointfree-lang/src/index.ts +++ b/packages/pointfree-lang/src/index.ts @@ -181,7 +181,7 @@ const endvar = (id: string) => (ctx: pf.StackContext) => { * @param state - */ const visit = (node: ASTNode, ctx: pf.StackContext, state: VisitorState) => { - LOGGER.fine("visit", node.type, node, ctx[0].toString()); + LOGGER.fine("visit", NodeType[node.type], node, ctx[0].toString()); switch (node.type) { case NodeType.SYM: return visitSym(node, ctx, state); diff --git a/packages/pointfree-lang/tpl.readme.md b/packages/pointfree-lang/tpl.readme.md index de60bd967e..af193723ab 100644 --- a/packages/pointfree-lang/tpl.readme.md +++ b/packages/pointfree-lang/tpl.readme.md @@ -279,7 +279,9 @@ comment](https://github.com/thi-ng/umbrella/tree/develop/packages/pointfree#abou in preparation for future tooling additions. Comments current cannot contain `(` or `)`, but can span multiple lines. -There's no special syntax for single line comments: + +Since v1.4.0 line comments are supported, use the standard JS `//` +prefix and extend until the next newline char. ``` ( multiline: @@ -293,6 +295,8 @@ ______ ____ |__| _____/ |__/ ____\______ ____ ____ ) 1 2 ( embedded single line ) 3 + +// single line comment ``` ### Identifiers From fd93fd064e8fe4b16982e9318e70a97e9795c88e Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 24 Apr 2020 18:26:47 +0100 Subject: [PATCH 73/78] test(pointfree-lang): add test (line comment) --- packages/pointfree-lang/test/index.ts | 31 ++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/packages/pointfree-lang/test/index.ts b/packages/pointfree-lang/test/index.ts index 1e8e19e91e..9f1732d50b 100644 --- a/packages/pointfree-lang/test/index.ts +++ b/packages/pointfree-lang/test/index.ts @@ -10,7 +10,12 @@ describe("pointfree-lang", () => { }); it("number (hex)", () => { - assert.deepEqual(run(`0x1 0xa 0xff 0xdecafbad`)[0], [1, 10, 255, 0xdecafbad]); + assert.deepEqual(run(`0x1 0xa 0xff 0xdecafbad`)[0], [ + 1, + 10, + 255, + 0xdecafbad, + ]); }); it("number (decimal)", () => { @@ -30,7 +35,10 @@ describe("pointfree-lang", () => { }); it("var deref (quote)", () => { - assert.deepEqual(runU(`[@a [@a {@a: @a} {@a: [@a]}]]`, { a: 1 }), [1, [1, { 1: 1 }, { 1: [1] }]]); + assert.deepEqual(runU(`[@a [@a {@a: @a} {@a: [@a]}]]`, { a: 1 }), [ + 1, + [1, { 1: 1 }, { 1: [1] }], + ]); }); it("var deref (litquote)", () => { @@ -40,10 +48,23 @@ describe("pointfree-lang", () => { }); it("var deref (word)", () => { - assert.deepEqual(runU(`: foo [@a [@a {@a: @a} {@a: [@a]}]]; foo`, { a: 1 }), [1, [1, { 1: 1 }, { 1: [1] }]]); assert.deepEqual( - run(`: foo [@a [@a {@a: @a} {@a: [@a]}]]; foo 2 a! foo`, { a: 1 })[0], - [[1, [1, { 1: 1 }, { 1: [1] }]], [2, [2, { 2: 2 }, { 2: [2] }]]]); + runU(`: foo [@a [@a {@a: @a} {@a: [@a]}]]; foo`, { a: 1 }), + [1, [1, { 1: 1 }, { 1: [1] }]] + ); + assert.deepEqual( + run(`: foo [@a [@a {@a: @a} {@a: [@a]}]]; foo 2 a! foo`, { + a: 1, + })[0], + [ + [1, [1, { 1: 1 }, { 1: [1] }]], + [2, [2, { 2: 2 }, { 2: [2] }]], + ] + ); + }); + + it("line comment", () => { + assert.deepEqual(runU(`// comment\n: foo // ignore me\n42 ; foo`), 42); }); // setDebug(true); From 7343116d2e94191b468a37f8c21dc9ef08f0e49c Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 24 Apr 2020 22:16:56 +0100 Subject: [PATCH 74/78] feat(pointfree-lang): add word metadata - store word name, source loc, stack comment & arities in `__meta` key of compiled functions --- packages/pointfree-lang/src/api.ts | 9 ++++++++- packages/pointfree-lang/src/index.ts | 19 ++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/packages/pointfree-lang/src/api.ts b/packages/pointfree-lang/src/api.ts index c8d01566dd..8636432175 100644 --- a/packages/pointfree-lang/src/api.ts +++ b/packages/pointfree-lang/src/api.ts @@ -10,7 +10,14 @@ export interface ASTNode { } export interface VisitorState { - word: boolean; + word?: WordMeta; +} + +export interface WordMeta { + name: string; + loc: [number, number]; + arities?: number; + doc?: string; } export enum NodeType { diff --git a/packages/pointfree-lang/src/index.ts b/packages/pointfree-lang/src/index.ts index 9e01343d87..023773ccdb 100644 --- a/packages/pointfree-lang/src/index.ts +++ b/packages/pointfree-lang/src/index.ts @@ -201,6 +201,8 @@ const visit = (node: ASTNode, ctx: pf.StackContext, state: VisitorState) => { return visitStore(node, ctx, state); case NodeType.WORD: return visitWord(node, ctx, state); + case NodeType.STACK_COMMENT: + visitStackComment(node, state); default: LOGGER.fine("skipping node..."); } @@ -297,7 +299,7 @@ const visitWord = ( ); } let wctx = pf.ctx([], ctx[2]); - state.word = true; + state.word = { name: id, loc: node.loc }; if (node.locals) { for ( let l = node.locals, stack = wctx[0], i = l.length - 1; @@ -320,11 +322,22 @@ const visitWord = ( } } const w = pf.defWord(wctx[0]); + (w).__meta = state.word; ctx[2].__words[id] = w; - state.word = false; + state.word = undefined; return ctx; }; +const visitStackComment = (node: ASTNode, state: VisitorState) => { + if (state.word && !state.word.doc) { + state.word.doc = node.body.join(" -- "); + state.word.arities = node.body.map((x: string) => { + const args = x.split(" "); + return args[0] === "" ? 0 : args[0] === "?" ? -1 : args.length; + }); + } +}; + /** * ARRAY visitor for arrays/quotations. If `state.word` is true, pushes * call to {@link resolveArray} on temp word stack, else calls {@link resolveArray} @@ -455,7 +468,7 @@ const finalizeEnv = (ctx: pf.StackContext) => { */ export const run = (src: string, env?: pf.StackEnv, stack: pf.Stack = []) => { let ctx = pf.ctx(stack, ensureEnv(env)); - const state = { word: false }; + const state = {}; try { for (let node of parse(src)) { ctx = visit(node, ctx, state); From 3aeb5d720c3e7f5adfcd6005cd1daa9439163b78 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 24 Apr 2020 23:42:29 +0100 Subject: [PATCH 75/78] refactor(pointfree-lang): word metadata, tests & readme --- packages/pointfree-lang/README.md | 43 +++++++++++++++++++++++---- packages/pointfree-lang/src/api.ts | 3 +- packages/pointfree-lang/src/index.ts | 6 ++-- packages/pointfree-lang/test/index.ts | 26 ++++++++++++++++ packages/pointfree-lang/tpl.readme.md | 40 +++++++++++++++++++++---- 5 files changed, 103 insertions(+), 15 deletions(-) diff --git a/packages/pointfree-lang/README.md b/packages/pointfree-lang/README.md index 31a0f90a10..96f7c4cc67 100644 --- a/packages/pointfree-lang/README.md +++ b/packages/pointfree-lang/README.md @@ -22,6 +22,7 @@ This project is part of the - [Comments](#comments) - [Identifiers](#identifiers) - [Word definitions](#word-definitions) + - [Word metadata](#word-metadata) - [Hyperstatic words](#hyperstatic-words) - [Dynamic word creation from quotations](#dynamic-word-creation-from-quotations) - [Local variables](#local-variables) @@ -69,7 +70,7 @@ an ES6 embedded DSL for concatenative programming: yarn add @thi.ng/pointfree-lang ``` -Package sizes (gzipped, pre-treeshake): ESM: 5.13 KB / CJS: 5.13 KB / UMD: 5.04 KB +Package sizes (gzipped, pre-treeshake): ESM: 5.23 KB / CJS: 5.23 KB / UMD: 5.13 KB ## Dependencies @@ -291,7 +292,7 @@ to ES6 environments, the semantics and actual implementation differ drastically. In this DSL (and most aspects also in @thi.ng/pointfree): - words and programs are implemented as functional compositions of - vanilla JS functions, i.e. `1 2 +` => `add(push(1)(push(2)(ctx)))` + vanilla JS functions, i.e. `1 2 +` => `add(push(2)(push(1)(ctx)))` - therefore no user controlled context switch between immediate & compile modes, as in Forth - parsing of word definitions triggers compile mode automatically @@ -313,8 +314,9 @@ drastically. In this DSL (and most aspects also in @thi.ng/pointfree): As in Forth, comments are enclosed in `( ... )`. If the comment body includes the `--` string, it's marked as a [stack effect -comment](https://github.com/thi-ng/umbrella/tree/develop/packages/pointfree#about-stack-effects) -in preparation for future tooling additions. +comment](https://github.com/thi-ng/umbrella/tree/develop/packages/pointfree#about-stack-effects). +The first stack comment of a word is added to the [word's metadata](#word-metadata) in +preparation for future tooling additions. Comments current cannot contain `(` or `)`, but can span multiple lines. @@ -413,7 +415,36 @@ However, it's strongly encouraged to include [stack effect comments](https://github.com/thi-ng/umbrella/tree/develop/packages/pointfree#about-stack-effects) as shown in the examples above. -**Word definitions MUST be terminated with `;`.** +Word definitions MUST be terminated with `;`. + +#### Word metadata + +The following details are stored in the `__meta` property of each +compiled word. This metadata is not yet used, but stored in preparation +for future tooling additions. + +- `name` - word name +- `loc` - source location `[line, col]` +- `stack` - optional stack effect comment +- `arities` - optional input/output arities (numeric representation of + stack comment) +- `doc` - optional docstring (currently unused) + +Only the first stack comment in a word definition is kept. If either +side of the comment contains a `?`, the respective arity will be set to +-1 (i.e. unknown). For example: + +- `( -- ? )` - no inputs, unknown output(s) +- `( -- x )` - no inputs, one output +- `( a ? -- )` - unknown/flexible number of inputs, no outputs +- `( a b -- a )` - 2 inputs, 1 output + +```ts +const ctx = run(`: foo ( -- x ) 42;`); + +ctx[2].__words.foo.__meta +// { name: 'foo', loc: [ 1, 1 ], doc: ' -- x', arities: [ 0, 1 ] } +``` #### Hyperstatic words @@ -470,7 +501,7 @@ A word definition can include an optional declaration of local variables, which are automatically bound to stack values each time the word is invoked. The declarations are given via the form: -``` +```forth : wordname ^{ name1 name2 ... } ... ; ``` diff --git a/packages/pointfree-lang/src/api.ts b/packages/pointfree-lang/src/api.ts index 8636432175..db11bd3a97 100644 --- a/packages/pointfree-lang/src/api.ts +++ b/packages/pointfree-lang/src/api.ts @@ -16,8 +16,9 @@ export interface VisitorState { export interface WordMeta { name: string; loc: [number, number]; - arities?: number; doc?: string; + stack?: string; + arities?: number; } export enum NodeType { diff --git a/packages/pointfree-lang/src/index.ts b/packages/pointfree-lang/src/index.ts index 023773ccdb..bbdba93d54 100644 --- a/packages/pointfree-lang/src/index.ts +++ b/packages/pointfree-lang/src/index.ts @@ -329,11 +329,11 @@ const visitWord = ( }; const visitStackComment = (node: ASTNode, state: VisitorState) => { - if (state.word && !state.word.doc) { - state.word.doc = node.body.join(" -- "); + if (state.word && !state.word.stack) { + state.word.stack = node.body.join(" -- "); state.word.arities = node.body.map((x: string) => { const args = x.split(" "); - return args[0] === "" ? 0 : args[0] === "?" ? -1 : args.length; + return args[0] === "" ? 0 : x.indexOf("?") >= 0 ? -1 : args.length; }); } }; diff --git a/packages/pointfree-lang/test/index.ts b/packages/pointfree-lang/test/index.ts index 9f1732d50b..04aa4cabaa 100644 --- a/packages/pointfree-lang/test/index.ts +++ b/packages/pointfree-lang/test/index.ts @@ -67,6 +67,32 @@ describe("pointfree-lang", () => { assert.deepEqual(runU(`// comment\n: foo // ignore me\n42 ; foo`), 42); }); + it("word metadata", () => { + const ctx = run(` +: foo ( a b -- x ) 42 ( a -- ) 23 +; +: bar ( -- ?) 23 ; +: baz 11 ; +foo`); + assert.deepEqual(ctx[0], [65]); + const words = ctx[2].__words; + assert.deepEqual(words.foo.__meta, { + name: "foo", + loc: [1, 1], + stack: "a b -- x", + arities: [2, 1], + }); + assert.deepEqual(words.bar.__meta, { + name: "bar", + loc: [3, 1], + stack: " -- ?", + arities: [0, -1], + }); + assert.deepEqual(words.baz.__meta, { + name: "baz", + loc: [4, 1], + }); + }); + // setDebug(true); // console.log(run(`"result: " 1 2 + + .`)); diff --git a/packages/pointfree-lang/tpl.readme.md b/packages/pointfree-lang/tpl.readme.md index af193723ab..d15dc192d6 100644 --- a/packages/pointfree-lang/tpl.readme.md +++ b/packages/pointfree-lang/tpl.readme.md @@ -253,7 +253,7 @@ to ES6 environments, the semantics and actual implementation differ drastically. In this DSL (and most aspects also in @thi.ng/pointfree): - words and programs are implemented as functional compositions of - vanilla JS functions, i.e. `1 2 +` => `add(push(1)(push(2)(ctx)))` + vanilla JS functions, i.e. `1 2 +` => `add(push(2)(push(1)(ctx)))` - therefore no user controlled context switch between immediate & compile modes, as in Forth - parsing of word definitions triggers compile mode automatically @@ -275,8 +275,9 @@ drastically. In this DSL (and most aspects also in @thi.ng/pointfree): As in Forth, comments are enclosed in `( ... )`. If the comment body includes the `--` string, it's marked as a [stack effect -comment](https://github.com/thi-ng/umbrella/tree/develop/packages/pointfree#about-stack-effects) -in preparation for future tooling additions. +comment](https://github.com/thi-ng/umbrella/tree/develop/packages/pointfree#about-stack-effects). +The first stack comment of a word is added to the [word's metadata](#word-metadata) in +preparation for future tooling additions. Comments current cannot contain `(` or `)`, but can span multiple lines. @@ -375,7 +376,36 @@ However, it's strongly encouraged to include [stack effect comments](https://github.com/thi-ng/umbrella/tree/develop/packages/pointfree#about-stack-effects) as shown in the examples above. -**Word definitions MUST be terminated with `;`.** +Word definitions MUST be terminated with `;`. + +#### Word metadata + +The following details are stored in the `__meta` property of each +compiled word. This metadata is not yet used, but stored in preparation +for future tooling additions. + +- `name` - word name +- `loc` - source location `[line, col]` +- `stack` - optional stack effect comment +- `arities` - optional input/output arities (numeric representation of + stack comment) +- `doc` - optional docstring (currently unused) + +Only the first stack comment in a word definition is kept. If either +side of the comment contains a `?`, the respective arity will be set to +-1 (i.e. unknown). For example: + +- `( -- ? )` - no inputs, unknown output(s) +- `( -- x )` - no inputs, one output +- `( a ? -- )` - unknown/flexible number of inputs, no outputs +- `( a b -- a )` - 2 inputs, 1 output + +```ts +const ctx = run(`: foo ( -- x ) 42;`); + +ctx[2].__words.foo.__meta +// { name: 'foo', loc: [ 1, 1 ], doc: ' -- x', arities: [ 0, 1 ] } +``` #### Hyperstatic words @@ -432,7 +462,7 @@ A word definition can include an optional declaration of local variables, which are automatically bound to stack values each time the word is invoked. The declarations are given via the form: -``` +```forth : wordname ^{ name1 name2 ... } ... ; ``` From 2e6dd19d9b20bccfc915e98b28b796cddfc54eef Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 26 Apr 2020 13:27:05 +0100 Subject: [PATCH 76/78] docs(pointfree): minor update readme --- packages/pointfree/README.md | 3 +++ packages/pointfree/tpl.readme.md | 2 ++ 2 files changed, 5 insertions(+) diff --git a/packages/pointfree/README.md b/packages/pointfree/README.md index 8dcf353651..5dd1516332 100644 --- a/packages/pointfree/README.md +++ b/packages/pointfree/README.md @@ -10,6 +10,7 @@ This project is part of the [@thi.ng/umbrella](https://github.com/thi-ng/umbrella/) monorepo. - [About](#about) + - [Reading links](#reading-links) - [A brief comparison](#a-brief-comparison) - [Status](#status) - [Support packages](#support-packages) @@ -100,6 +101,8 @@ Current features: - stack comments & documentation for most ops/words - [over 330 test cases](https://github.com/thi-ng/umbrella/tree/develop/packages/pointfree/test/index.ts) +### Reading links + For a great overview & history of this type of this type of programming, please see: diff --git a/packages/pointfree/tpl.readme.md b/packages/pointfree/tpl.readme.md index 17f376d8f0..0a5ceeacf1 100644 --- a/packages/pointfree/tpl.readme.md +++ b/packages/pointfree/tpl.readme.md @@ -43,6 +43,8 @@ Current features: - stack comments & documentation for most ops/words - [over 330 test cases](https://github.com/thi-ng/umbrella/tree/develop/packages/pointfree/test/index.ts) +### Reading links + For a great overview & history of this type of this type of programming, please see: From b8cb6e760d3f1cfd4b48067eb3bb9fe09229f805 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 27 Apr 2020 12:55:44 +0100 Subject: [PATCH 77/78] build: temp disable isolatedModules --- tsconfig.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index f61be9c8b3..b9827fc83a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,8 +11,8 @@ "preserveConstEnums": true, "moduleResolution": "node", "strict": true, - "strictNullChecks": true, - "isolatedModules": true + "strictNullChecks": true + // "isolatedModules": true }, "exclude": ["./**/node_modules"] } From 9241bd0f7f20d33c16b505ddc2cf0cdba38d09f8 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 27 Apr 2020 13:02:29 +0100 Subject: [PATCH 78/78] Publish - @thi.ng/adjacency@0.1.41 - @thi.ng/api@6.10.2 - @thi.ng/arrays@0.6.4 - @thi.ng/associative@4.0.5 - @thi.ng/atom@4.1.4 - @thi.ng/bench@2.0.9 - @thi.ng/bencode@0.3.20 - @thi.ng/binary@2.0.4 - @thi.ng/bitfield@0.3.6 - @thi.ng/bitstream@1.1.14 - @thi.ng/cache@1.0.40 - @thi.ng/checks@2.6.3 - @thi.ng/color@1.1.18 - @thi.ng/compare@1.3.3 - @thi.ng/compose@1.4.4 - @thi.ng/csp@1.1.20 - @thi.ng/dcons@2.2.13 - @thi.ng/defmulti@1.2.12 - @thi.ng/dgraph-dot@0.1.5 - @thi.ng/dgraph@1.2.5 - @thi.ng/diff@3.2.17 - @thi.ng/dl-asset@0.3.6 - @thi.ng/dlogic@1.0.20 - @thi.ng/dot@1.2.4 - @thi.ng/dsp-io-wav@0.1.10 - @thi.ng/dsp@2.0.12 - @thi.ng/dynvar@0.1.10 - @thi.ng/ecs@0.3.12 - @thi.ng/equiv@1.0.20 - @thi.ng/errors@1.2.11 - @thi.ng/fsm@2.4.6 - @thi.ng/geom-accel@2.1.2 - @thi.ng/geom-api@1.0.14 - @thi.ng/geom-arc@0.2.25 - @thi.ng/geom-clip-line@1.0.12 - @thi.ng/geom-clip-poly@1.0.12 - @thi.ng/geom-closest-point@0.3.25 - @thi.ng/geom-hull@0.0.45 - @thi.ng/geom-io-obj@0.1.3 - @thi.ng/geom-isec@0.4.14 - @thi.ng/geom-isoline@0.1.43 - @thi.ng/geom-poly-utils@0.1.43 - @thi.ng/geom-resample@0.2.25 - @thi.ng/geom-splines@0.5.12 - @thi.ng/geom-subdiv-curve@0.1.42 - @thi.ng/geom-tessellate@0.2.25 - @thi.ng/geom-voronoi@0.1.43 - @thi.ng/geom@1.9.0 - @thi.ng/gp@0.1.13 - @thi.ng/grid-iterators@0.3.10 - @thi.ng/hdom-canvas@2.4.18 - @thi.ng/hdom-components@3.2.6 - @thi.ng/hdom-mock@1.1.21 - @thi.ng/hdom@8.0.21 - @thi.ng/heaps@1.2.11 - @thi.ng/hiccup-carbon-icons@1.0.34 - @thi.ng/hiccup-css@1.1.20 - @thi.ng/hiccup-markdown@1.2.8 - @thi.ng/hiccup-svg@3.4.15 - @thi.ng/hiccup@3.2.19 - @thi.ng/idgen@0.2.10 - @thi.ng/iges@1.1.27 - @thi.ng/imgui@0.2.13 - @thi.ng/interceptors@2.2.15 - @thi.ng/intervals@2.0.11 - @thi.ng/iterators@5.1.20 - @thi.ng/layout@0.1.8 - @thi.ng/leb128@1.0.14 - @thi.ng/lsys@0.2.40 - @thi.ng/malloc@4.1.12 - @thi.ng/math@1.7.7 - @thi.ng/matrices@0.6.12 - @thi.ng/memoize@2.0.8 - @thi.ng/mime@0.1.8 - @thi.ng/morton@2.0.10 - @thi.ng/parse@0.5.1 - @thi.ng/paths@4.0.3 - @thi.ng/pixel@0.1.17 - @thi.ng/pointfree-lang@1.4.0 - @thi.ng/pointfree@2.0.1 - @thi.ng/poisson@1.0.14 - @thi.ng/porter-duff@0.1.16 - @thi.ng/quad-edge@0.2.13 - @thi.ng/ramp@0.1.14 - @thi.ng/random@1.4.6 - @thi.ng/range-coder@1.0.40 - @thi.ng/resolve-map@4.1.20 - @thi.ng/rle-pack@2.1.14 - @thi.ng/router@2.0.18 - @thi.ng/rstream-csp@2.0.14 - @thi.ng/rstream-dot@1.1.21 - @thi.ng/rstream-gestures@2.0.13 - @thi.ng/rstream-graph@3.2.14 - @thi.ng/rstream-log-file@0.1.36 - @thi.ng/rstream-log@3.1.21 - @thi.ng/rstream-query@1.1.21 - @thi.ng/rstream@4.0.6 - @thi.ng/sax@1.1.20 - @thi.ng/scenegraph@0.1.15 - @thi.ng/seq@0.2.10 - @thi.ng/sexpr@0.2.13 - @thi.ng/shader-ast-glsl@0.1.23 - @thi.ng/shader-ast-js@0.4.18 - @thi.ng/shader-ast-stdlib@0.3.16 - @thi.ng/shader-ast@0.3.17 - @thi.ng/simd@0.1.14 - @thi.ng/soa@0.1.16 - @thi.ng/sparse@0.1.36 - @thi.ng/strings@1.8.5 - @thi.ng/system@0.2.5 - @thi.ng/text-canvas@0.2.9 - @thi.ng/transducers-binary@0.5.10 - @thi.ng/transducers-fsm@1.1.20 - @thi.ng/transducers-hdom@2.0.47 - @thi.ng/transducers-patch@0.1.10 - @thi.ng/transducers-stats@1.1.20 - @thi.ng/transducers@6.4.7 - @thi.ng/unionstruct@1.1.13 - @thi.ng/vector-pools@1.0.25 - @thi.ng/vectors@4.3.2 - @thi.ng/webgl-msdf@0.1.28 - @thi.ng/webgl-shadertoy@0.2.15 - @thi.ng/webgl@1.0.10 - @thi.ng/zipper@0.1.12 --- packages/adjacency/CHANGELOG.md | 8 ++++ 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 | 12 ++--- 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 | 2 +- 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 | 8 ++++ packages/color/package.json | 20 ++++----- 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/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 | 8 ++++ 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 | 2 +- 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 | 8 ++++ packages/dsp/package.json | 10 ++--- packages/dynvar/CHANGELOG.md | 8 ++++ packages/dynvar/package.json | 4 +- packages/ecs/CHANGELOG.md | 8 ++++ packages/ecs/package.json | 18 ++++---- 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/geom-accel/CHANGELOG.md | 8 ++++ packages/geom-accel/package.json | 22 ++++----- packages/geom-api/CHANGELOG.md | 8 ++++ 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 | 4 +- 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 | 6 +-- 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 | 6 +-- packages/geom-poly-utils/CHANGELOG.md | 8 ++++ packages/geom-poly-utils/package.json | 10 ++--- packages/geom-resample/CHANGELOG.md | 8 ++++ packages/geom-resample/package.json | 12 ++--- packages/geom-splines/CHANGELOG.md | 8 ++++ packages/geom-splines/package.json | 14 +++--- packages/geom-subdiv-curve/CHANGELOG.md | 8 ++++ packages/geom-subdiv-curve/package.json | 8 ++-- 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 | 12 +++++ packages/geom/package.json | 54 +++++++++++------------ packages/gp/CHANGELOG.md | 8 ++++ packages/gp/package.json | 12 ++--- packages/grid-iterators/CHANGELOG.md | 8 ++++ packages/grid-iterators/package.json | 12 ++--- packages/hdom-canvas/CHANGELOG.md | 8 ++++ packages/hdom-canvas/package.json | 16 +++---- packages/hdom-components/CHANGELOG.md | 8 ++++ packages/hdom-components/package.json | 12 ++--- packages/hdom-mock/CHANGELOG.md | 8 ++++ packages/hdom-mock/package.json | 8 ++-- packages/hdom/CHANGELOG.md | 8 ++++ packages/hdom/package.json | 16 +++---- packages/heaps/CHANGELOG.md | 8 ++++ packages/heaps/package.json | 6 +-- 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-markdown/CHANGELOG.md | 8 ++++ packages/hiccup-markdown/package.json | 20 ++++----- packages/hiccup-svg/CHANGELOG.md | 8 ++++ packages/hiccup-svg/package.json | 8 ++-- packages/hiccup/CHANGELOG.md | 8 ++++ packages/hiccup/package.json | 8 ++-- 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 | 6 +-- 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 | 8 ++++ packages/math/package.json | 2 +- 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/parse/CHANGELOG.md | 8 ++++ packages/parse/package.json | 12 ++--- packages/paths/CHANGELOG.md | 8 ++++ packages/paths/package.json | 6 +-- packages/pixel/CHANGELOG.md | 8 ++++ packages/pixel/package.json | 10 ++--- packages/pointfree-lang/CHANGELOG.md | 12 +++++ 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 | 10 ++--- packages/porter-duff/CHANGELOG.md | 8 ++++ packages/porter-duff/package.json | 6 +-- packages/quad-edge/CHANGELOG.md | 8 ++++ packages/quad-edge/package.json | 2 +- packages/ramp/CHANGELOG.md | 8 ++++ packages/ramp/package.json | 14 +++--- packages/random/CHANGELOG.md | 8 ++++ packages/random/package.json | 6 +-- packages/range-coder/CHANGELOG.md | 8 ++++ packages/range-coder/package.json | 6 +-- 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 | 8 ++++ packages/rstream-gestures/package.json | 12 ++--- packages/rstream-graph/CHANGELOG.md | 8 ++++ packages/rstream-graph/package.json | 16 +++---- 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 | 4 +- packages/shader-ast/CHANGELOG.md | 8 ++++ packages/shader-ast/package.json | 12 ++--- packages/simd/CHANGELOG.md | 8 ++++ packages/simd/package.json | 8 ++-- 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 | 8 ++-- packages/system/CHANGELOG.md | 8 ++++ packages/system/package.json | 6 +-- packages/text-canvas/CHANGELOG.md | 8 ++++ packages/text-canvas/package.json | 14 +++--- packages/transducers-binary/CHANGELOG.md | 8 ++++ packages/transducers-binary/package.json | 10 ++--- 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 | 8 ++++ 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 | 22 ++++----- packages/unionstruct/CHANGELOG.md | 8 ++++ packages/unionstruct/package.json | 2 +- packages/vector-pools/CHANGELOG.md | 8 ++++ packages/vector-pools/package.json | 14 +++--- packages/vectors/CHANGELOG.md | 8 ++++ packages/vectors/package.json | 20 ++++----- packages/webgl-msdf/CHANGELOG.md | 8 ++++ packages/webgl-msdf/package.json | 14 +++--- packages/webgl-shadertoy/CHANGELOG.md | 8 ++++ packages/webgl-shadertoy/package.json | 12 ++--- packages/webgl/CHANGELOG.md | 8 ++++ packages/webgl/package.json | 30 ++++++------- packages/zipper/CHANGELOG.md | 8 ++++ packages/zipper/package.json | 8 ++-- 248 files changed, 1636 insertions(+), 636 deletions(-) diff --git a/packages/adjacency/CHANGELOG.md b/packages/adjacency/CHANGELOG.md index f452d35138..48e939c00d 100644 --- a/packages/adjacency/CHANGELOG.md +++ b/packages/adjacency/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.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.40...@thi.ng/adjacency@0.1.41) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/adjacency + + + + + ## [0.1.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.39...@thi.ng/adjacency@0.1.40) (2020-04-23) **Note:** Version bump only for package @thi.ng/adjacency diff --git a/packages/adjacency/package.json b/packages/adjacency/package.json index bb2fced5be..a1b529cb20 100644 --- a/packages/adjacency/package.json +++ b/packages/adjacency/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/adjacency", - "version": "0.1.40", + "version": "0.1.41", "description": "Sparse & bitwise adjacency matrices and related functions for directed & undirected graphs", "module": "./index.js", "main": "./lib/index.js", @@ -29,7 +29,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.7.8", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/vectors": "^4.3.2", "@types/mocha": "^7.0.1", "@types/node": "^13.7.4", "mocha": "^7.1.1", @@ -39,12 +39,12 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/binary": "^2.0.3", - "@thi.ng/bitfield": "^0.3.5", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/dcons": "^2.2.12", - "@thi.ng/sparse": "^0.1.35", + "@thi.ng/api": "^6.10.2", + "@thi.ng/binary": "^2.0.4", + "@thi.ng/bitfield": "^0.3.6", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/dcons": "^2.2.13", + "@thi.ng/sparse": "^0.1.36", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index 666525639a..33902dab09 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.10.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.10.1...@thi.ng/api@6.10.2) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/api + + + + + ## [6.10.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.10.0...@thi.ng/api@6.10.1) (2020-04-11) **Note:** Version bump only for package @thi.ng/api diff --git a/packages/api/package.json b/packages/api/package.json index c19cb9fecb..aba7215dd3 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/api", - "version": "6.10.1", + "version": "6.10.2", "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 976ba56892..f74d996b4e 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.6.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/arrays@0.6.3...@thi.ng/arrays@0.6.4) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/arrays + + + + + ## [0.6.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/arrays@0.6.2...@thi.ng/arrays@0.6.3) (2020-04-11) **Note:** Version bump only for package @thi.ng/arrays diff --git a/packages/arrays/package.json b/packages/arrays/package.json index e1b3d9d9bb..c1a4ec4f4e 100644 --- a/packages/arrays/package.json +++ b/packages/arrays/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/arrays", - "version": "0.6.3", + "version": "0.6.4", "description": "Array / Arraylike utilities", "module": "./index.js", "main": "./lib/index.js", @@ -38,12 +38,12 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/compare": "^1.3.2", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/random": "^1.4.5", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/compare": "^1.3.3", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/random": "^1.4.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/associative/CHANGELOG.md b/packages/associative/CHANGELOG.md index ccbac79069..64b7c7e210 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. +## [4.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@4.0.4...@thi.ng/associative@4.0.5) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/associative + + + + + ## [4.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@4.0.3...@thi.ng/associative@4.0.4) (2020-04-20) **Note:** Version bump only for package @thi.ng/associative diff --git a/packages/associative/package.json b/packages/associative/package.json index 04b7fea9f0..745a1aebd7 100644 --- a/packages/associative/package.json +++ b/packages/associative/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/associative", - "version": "4.0.4", + "version": "4.0.5", "description": "Alternative Map and Set implementations with customizable equality semantics & supporting operations", "module": "./index.js", "main": "./lib/index.js", @@ -38,14 +38,14 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/binary": "^2.0.3", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/compare": "^1.3.2", - "@thi.ng/dcons": "^2.2.12", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/binary": "^2.0.4", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/compare": "^1.3.3", + "@thi.ng/dcons": "^2.2.13", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/atom/CHANGELOG.md b/packages/atom/CHANGELOG.md index 8e1b82775a..8404ef2b90 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.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.1.3...@thi.ng/atom@4.1.4) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/atom + + + + + ## [4.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.1.2...@thi.ng/atom@4.1.3) (2020-04-11) **Note:** Version bump only for package @thi.ng/atom diff --git a/packages/atom/package.json b/packages/atom/package.json index dcf08c86d3..630adf9124 100644 --- a/packages/atom/package.json +++ b/packages/atom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/atom", - "version": "4.1.3", + "version": "4.1.4", "description": "Mutable wrappers for nested immutable values with optional undo/redo history and transaction support", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/paths": "^4.0.2", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/paths": "^4.0.3", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/bench/CHANGELOG.md b/packages/bench/CHANGELOG.md index b5933626cc..b1b60b7151 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.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.8...@thi.ng/bench@2.0.9) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/bench + + + + + ## [2.0.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.7...@thi.ng/bench@2.0.8) (2020-04-11) **Note:** Version bump only for package @thi.ng/bench diff --git a/packages/bench/package.json b/packages/bench/package.json index ce220b23b2..4eda641601 100644 --- a/packages/bench/package.json +++ b/packages/bench/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bench", - "version": "2.0.8", + "version": "2.0.9", "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 47dcfcafce..ab71ee0234 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.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.19...@thi.ng/bencode@0.3.20) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/bencode + + + + + ## [0.3.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.18...@thi.ng/bencode@0.3.19) (2020-04-20) **Note:** Version bump only for package @thi.ng/bencode diff --git a/packages/bencode/package.json b/packages/bencode/package.json index d814f3abbb..cbc5473d29 100644 --- a/packages/bencode/package.json +++ b/packages/bencode/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bencode", - "version": "0.3.19", + "version": "0.3.20", "description": "Bencode binary encoder / decoder with optional UTF8 encoding & floating point support", "module": "./index.js", "main": "./lib/index.js", @@ -38,13 +38,13 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/arrays": "^0.6.3", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/defmulti": "^1.2.11", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/transducers-binary": "^0.5.9", + "@thi.ng/api": "^6.10.2", + "@thi.ng/arrays": "^0.6.4", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/defmulti": "^1.2.12", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/transducers-binary": "^0.5.10", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/binary/CHANGELOG.md b/packages/binary/CHANGELOG.md index 400fce9b2e..7529215372 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.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@2.0.3...@thi.ng/binary@2.0.4) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/binary + + + + + ## [2.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@2.0.2...@thi.ng/binary@2.0.3) (2020-04-11) **Note:** Version bump only for package @thi.ng/binary diff --git a/packages/binary/package.json b/packages/binary/package.json index 80fb62712c..12762d2c41 100644 --- a/packages/binary/package.json +++ b/packages/binary/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/binary", - "version": "2.0.3", + "version": "2.0.4", "description": "95+ assorted binary / bitwise operations, conversions, utilities", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/bitfield/CHANGELOG.md b/packages/bitfield/CHANGELOG.md index 5a062944d4..7a68e065d7 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.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.5...@thi.ng/bitfield@0.3.6) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/bitfield + + + + + ## [0.3.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.4...@thi.ng/bitfield@0.3.5) (2020-04-20) **Note:** Version bump only for package @thi.ng/bitfield diff --git a/packages/bitfield/package.json b/packages/bitfield/package.json index 3f118afed3..5efcc21aa5 100644 --- a/packages/bitfield/package.json +++ b/packages/bitfield/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bitfield", - "version": "0.3.5", + "version": "0.3.6", "description": "1D / 2D bit field implementations", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/binary": "^2.0.3", - "@thi.ng/strings": "^1.8.4", + "@thi.ng/api": "^6.10.2", + "@thi.ng/binary": "^2.0.4", + "@thi.ng/strings": "^1.8.5", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/bitstream/CHANGELOG.md b/packages/bitstream/CHANGELOG.md index 3520b47f0d..c8fd3cf8a3 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.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@1.1.13...@thi.ng/bitstream@1.1.14) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/bitstream + + + + + ## [1.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@1.1.12...@thi.ng/bitstream@1.1.13) (2020-04-11) **Note:** Version bump only for package @thi.ng/bitstream diff --git a/packages/bitstream/package.json b/packages/bitstream/package.json index fcc3d51412..2d922d99d0 100644 --- a/packages/bitstream/package.json +++ b/packages/bitstream/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bitstream", - "version": "1.1.13", + "version": "1.1.14", "description": "ES6 iterator based read/write bit streams with support for variable word widths", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/errors": "^1.2.10", + "@thi.ng/errors": "^1.2.11", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/cache/CHANGELOG.md b/packages/cache/CHANGELOG.md index e1624fe932..70d58484d6 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.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.39...@thi.ng/cache@1.0.40) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/cache + + + + + ## [1.0.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.38...@thi.ng/cache@1.0.39) (2020-04-20) **Note:** Version bump only for package @thi.ng/cache diff --git a/packages/cache/package.json b/packages/cache/package.json index 586e48e17d..92e11f010d 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/cache", - "version": "1.0.39", + "version": "1.0.40", "description": "In-memory cache implementations with ES6 Map-like API and different eviction strategies", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/dcons": "^2.2.12", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/dcons": "^2.2.13", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/checks/CHANGELOG.md b/packages/checks/CHANGELOG.md index 47fe07004b..100deb3c91 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.6.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@2.6.2...@thi.ng/checks@2.6.3) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/checks + + + + + ## [2.6.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@2.6.1...@thi.ng/checks@2.6.2) (2020-04-11) **Note:** Version bump only for package @thi.ng/checks diff --git a/packages/checks/package.json b/packages/checks/package.json index bbf7e8eee4..dc215eafe2 100644 --- a/packages/checks/package.json +++ b/packages/checks/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/checks", - "version": "2.6.2", + "version": "2.6.3", "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 3ed76d07c4..144f5bf17e 100644 --- a/packages/color/CHANGELOG.md +++ b/packages/color/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.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.1.17...@thi.ng/color@1.1.18) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/color + + + + + ## [1.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.1.16...@thi.ng/color@1.1.17) (2020-04-23) **Note:** Version bump only for package @thi.ng/color diff --git a/packages/color/package.json b/packages/color/package.json index fc614e0a76..f7016036e9 100644 --- a/packages/color/package.json +++ b/packages/color/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/color", - "version": "1.1.17", + "version": "1.1.18", "description": "Array-based color ops, conversions, multi-color gradients, presets", "module": "./index.js", "main": "./lib/index.js", @@ -38,15 +38,15 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/compose": "^1.4.3", - "@thi.ng/defmulti": "^1.2.11", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/math": "^1.7.6", - "@thi.ng/strings": "^1.8.4", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/compose": "^1.4.4", + "@thi.ng/defmulti": "^1.2.12", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/math": "^1.7.7", + "@thi.ng/strings": "^1.8.5", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/compare/CHANGELOG.md b/packages/compare/CHANGELOG.md index 7bbed1b49d..a0a2494872 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.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.3.2...@thi.ng/compare@1.3.3) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/compare + + + + + ## [1.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.3.1...@thi.ng/compare@1.3.2) (2020-04-11) **Note:** Version bump only for package @thi.ng/compare diff --git a/packages/compare/package.json b/packages/compare/package.json index 5c489fd234..bba064721c 100644 --- a/packages/compare/package.json +++ b/packages/compare/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/compare", - "version": "1.3.2", + "version": "1.3.3", "description": "Comparators with support for types implementing the @thi.ng/api/ICompare interface", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", + "@thi.ng/api": "^6.10.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/compose/CHANGELOG.md b/packages/compose/CHANGELOG.md index 7d6e3d59d5..ce7fe57def 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.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.4.3...@thi.ng/compose@1.4.4) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/compose + + + + + ## [1.4.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.4.2...@thi.ng/compose@1.4.3) (2020-04-11) **Note:** Version bump only for package @thi.ng/compose diff --git a/packages/compose/package.json b/packages/compose/package.json index 2e62cdac31..57a63b8b06 100644 --- a/packages/compose/package.json +++ b/packages/compose/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/compose", - "version": "1.4.3", + "version": "1.4.4", "description": "Optimized functional composition helpers", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/errors": "^1.2.10", + "@thi.ng/api": "^6.10.2", + "@thi.ng/errors": "^1.2.11", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/csp/CHANGELOG.md b/packages/csp/CHANGELOG.md index acdd3e7678..7d9f1f3f71 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.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.19...@thi.ng/csp@1.1.20) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/csp + + + + + ## [1.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.18...@thi.ng/csp@1.1.19) (2020-04-20) **Note:** Version bump only for package @thi.ng/csp diff --git a/packages/csp/package.json b/packages/csp/package.json index 78e464b477..a78589ec4b 100644 --- a/packages/csp/package.json +++ b/packages/csp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/csp", - "version": "1.1.19", + "version": "1.1.20", "description": "ES6 promise based CSP primitives & operations", "module": "./index.js", "main": "./lib/index.js", @@ -42,12 +42,12 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/arrays": "^0.6.3", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/dcons": "^2.2.12", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/arrays": "^0.6.4", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/dcons": "^2.2.13", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/dcons/CHANGELOG.md b/packages/dcons/CHANGELOG.md index d0dd5e18ac..4496e26771 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.2.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.2.12...@thi.ng/dcons@2.2.13) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/dcons + + + + + ## [2.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.2.11...@thi.ng/dcons@2.2.12) (2020-04-20) **Note:** Version bump only for package @thi.ng/dcons diff --git a/packages/dcons/package.json b/packages/dcons/package.json index 5254b2e756..5cd7ec5181 100644 --- a/packages/dcons/package.json +++ b/packages/dcons/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dcons", - "version": "2.2.12", + "version": "2.2.13", "description": "Double-linked list with comprehensive set of operations", "module": "./index.js", "main": "./lib/index.js", @@ -38,13 +38,13 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/compare": "^1.3.2", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/random": "^1.4.5", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/compare": "^1.3.3", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/random": "^1.4.6", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/defmulti/CHANGELOG.md b/packages/defmulti/CHANGELOG.md index 74bc8b71fa..3d0cda476e 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.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.2.11...@thi.ng/defmulti@1.2.12) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/defmulti + + + + + ## [1.2.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.2.10...@thi.ng/defmulti@1.2.11) (2020-04-11) **Note:** Version bump only for package @thi.ng/defmulti diff --git a/packages/defmulti/package.json b/packages/defmulti/package.json index aee368832a..917416045f 100644 --- a/packages/defmulti/package.json +++ b/packages/defmulti/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/defmulti", - "version": "1.2.11", + "version": "1.2.12", "description": "Dynamic, extensible multiple dispatch via user supplied dispatch function.", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/errors": "^1.2.10", + "@thi.ng/api": "^6.10.2", + "@thi.ng/errors": "^1.2.11", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/dgraph-dot/CHANGELOG.md b/packages/dgraph-dot/CHANGELOG.md index 55da8d4932..fd46256289 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.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.4...@thi.ng/dgraph-dot@0.1.5) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/dgraph-dot + + + + + ## [0.1.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.3...@thi.ng/dgraph-dot@0.1.4) (2020-04-20) **Note:** Version bump only for package @thi.ng/dgraph-dot diff --git a/packages/dgraph-dot/package.json b/packages/dgraph-dot/package.json index de43cfd20a..853c5d3993 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.4", + "version": "0.1.5", "description": "Customizable Graphviz DOT serialization for @thi.ng/dgraph", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/dgraph": "^1.2.4", - "@thi.ng/dot": "^1.2.3" + "@thi.ng/api": "^6.10.2", + "@thi.ng/dgraph": "^1.2.5", + "@thi.ng/dot": "^1.2.4" }, "files": [ "*.js", diff --git a/packages/dgraph/CHANGELOG.md b/packages/dgraph/CHANGELOG.md index 2bb68bad72..0a003b26e9 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.2.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.2.4...@thi.ng/dgraph@1.2.5) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/dgraph + + + + + ## [1.2.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.2.3...@thi.ng/dgraph@1.2.4) (2020-04-20) **Note:** Version bump only for package @thi.ng/dgraph diff --git a/packages/dgraph/package.json b/packages/dgraph/package.json index b0952e20dd..72fee2522b 100644 --- a/packages/dgraph/package.json +++ b/packages/dgraph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dgraph", - "version": "1.2.4", + "version": "1.2.5", "description": "Type-agnostic directed acyclic graph (DAG) & graph operations", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/associative": "^4.0.4", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/associative": "^4.0.5", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/diff/CHANGELOG.md b/packages/diff/CHANGELOG.md index 12259667f7..ceae5dcb76 100644 --- a/packages/diff/CHANGELOG.md +++ b/packages/diff/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.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.16...@thi.ng/diff@3.2.17) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/diff + + + + + ## [3.2.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.15...@thi.ng/diff@3.2.16) (2020-04-11) **Note:** Version bump only for package @thi.ng/diff diff --git a/packages/diff/package.json b/packages/diff/package.json index 59ba7ba47d..7114952fbc 100644 --- a/packages/diff/package.json +++ b/packages/diff/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/diff", - "version": "3.2.16", + "version": "3.2.17", "description": "Customizable diff implementations for arrays (sequential) & objects (associative), with or without linear edit logs", "module": "./index.js", "main": "./lib/index.js", @@ -37,8 +37,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/equiv": "^1.0.19", + "@thi.ng/api": "^6.10.2", + "@thi.ng/equiv": "^1.0.20", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/dl-asset/CHANGELOG.md b/packages/dl-asset/CHANGELOG.md index d0ecafe923..fa5b62b863 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.3.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.3.5...@thi.ng/dl-asset@0.3.6) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/dl-asset + + + + + ## [0.3.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.3.4...@thi.ng/dl-asset@0.3.5) (2020-04-11) **Note:** Version bump only for package @thi.ng/dl-asset diff --git a/packages/dl-asset/package.json b/packages/dl-asset/package.json index bfa4a9e600..751f1be977 100644 --- a/packages/dl-asset/package.json +++ b/packages/dl-asset/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dl-asset", - "version": "0.3.5", + "version": "0.3.6", "description": "Local asset download for web apps, with automatic MIME type detection", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/mime": "^0.1.7", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/mime": "^0.1.8", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/dlogic/CHANGELOG.md b/packages/dlogic/CHANGELOG.md index c6bead941e..9a972a69e1 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.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@1.0.19...@thi.ng/dlogic@1.0.20) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/dlogic + + + + + ## [1.0.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@1.0.18...@thi.ng/dlogic@1.0.19) (2020-04-11) **Note:** Version bump only for package @thi.ng/dlogic diff --git a/packages/dlogic/package.json b/packages/dlogic/package.json index b3549de5fe..834335508a 100644 --- a/packages/dlogic/package.json +++ b/packages/dlogic/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dlogic", - "version": "1.0.19", + "version": "1.0.20", "description": "Assorted digital logic ops / constructs", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/dot/CHANGELOG.md b/packages/dot/CHANGELOG.md index 099825527e..830454cf53 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.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.2.3...@thi.ng/dot@1.2.4) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/dot + + + + + ## [1.2.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.2.2...@thi.ng/dot@1.2.3) (2020-04-11) **Note:** Version bump only for package @thi.ng/dot diff --git a/packages/dot/package.json b/packages/dot/package.json index 427c11e41d..2a8b02fc73 100644 --- a/packages/dot/package.json +++ b/packages/dot/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dot", - "version": "1.2.3", + "version": "1.2.4", "description": "Graphviz document abstraction & serialization to DOT format", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/dsp-io-wav/CHANGELOG.md b/packages/dsp-io-wav/CHANGELOG.md index 6bd3ea30c5..1893f5663a 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.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.9...@thi.ng/dsp-io-wav@0.1.10) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/dsp-io-wav + + + + + ## [0.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.8...@thi.ng/dsp-io-wav@0.1.9) (2020-04-20) **Note:** Version bump only for package @thi.ng/dsp-io-wav diff --git a/packages/dsp-io-wav/package.json b/packages/dsp-io-wav/package.json index f73f8c85a9..29077b31a7 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.9", + "version": "0.1.10", "description": "WAV file format generation", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/binary": "^2.0.3", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/transducers-binary": "^0.5.9", + "@thi.ng/api": "^6.10.2", + "@thi.ng/binary": "^2.0.4", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/transducers-binary": "^0.5.10", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/dsp/CHANGELOG.md b/packages/dsp/CHANGELOG.md index 1cc15f7a9f..3995f98d2d 100644 --- a/packages/dsp/CHANGELOG.md +++ b/packages/dsp/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.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.0.11...@thi.ng/dsp@2.0.12) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/dsp + + + + + ## [2.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.0.10...@thi.ng/dsp@2.0.11) (2020-04-20) **Note:** Version bump only for package @thi.ng/dsp diff --git a/packages/dsp/package.json b/packages/dsp/package.json index a5e6437b59..81240756df 100644 --- a/packages/dsp/package.json +++ b/packages/dsp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dsp", - "version": "2.0.11", + "version": "2.0.12", "description": "Composable signal generators, oscillators, filters, FFT, spectrum, windowing & related DSP utils", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/math": "^1.7.6", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/math": "^1.7.7", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/dynvar/CHANGELOG.md b/packages/dynvar/CHANGELOG.md index 319e18f276..9914b8f348 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.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/dynvar@0.1.9...@thi.ng/dynvar@0.1.10) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/dynvar + + + + + ## [0.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/dynvar@0.1.8...@thi.ng/dynvar@0.1.9) (2020-04-11) **Note:** Version bump only for package @thi.ng/dynvar diff --git a/packages/dynvar/package.json b/packages/dynvar/package.json index 5ec605ecbc..10a82153a5 100644 --- a/packages/dynvar/package.json +++ b/packages/dynvar/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dynvar", - "version": "0.1.9", + "version": "0.1.10", "description": "Dynamically scoped variable bindings", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", + "@thi.ng/api": "^6.10.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/ecs/CHANGELOG.md b/packages/ecs/CHANGELOG.md index d4f62df15c..ebb4a5cff8 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.3.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.3.11...@thi.ng/ecs@0.3.12) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/ecs + + + + + ## [0.3.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.3.10...@thi.ng/ecs@0.3.11) (2020-04-20) **Note:** Version bump only for package @thi.ng/ecs diff --git a/packages/ecs/package.json b/packages/ecs/package.json index b61b06ee2e..b623df829e 100644 --- a/packages/ecs/package.json +++ b/packages/ecs/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/ecs", - "version": "0.3.11", + "version": "0.3.12", "description": "Entity Component System based around typed arrays & sparse sets", "module": "./index.js", "main": "./lib/index.js", @@ -29,7 +29,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.7.8", - "@thi.ng/equiv": "^1.0.19", + "@thi.ng/equiv": "^1.0.20", "@types/mocha": "^7.0.1", "@types/node": "^13.7.4", "mocha": "^7.1.1", @@ -39,13 +39,13 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/associative": "^4.0.4", - "@thi.ng/binary": "^2.0.3", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/dcons": "^2.2.12", - "@thi.ng/idgen": "^0.2.9", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/associative": "^4.0.5", + "@thi.ng/binary": "^2.0.4", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/dcons": "^2.2.13", + "@thi.ng/idgen": "^0.2.10", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/equiv/CHANGELOG.md b/packages/equiv/CHANGELOG.md index e83909047c..618977235b 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.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@1.0.19...@thi.ng/equiv@1.0.20) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/equiv + + + + + ## [1.0.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@1.0.18...@thi.ng/equiv@1.0.19) (2020-04-11) **Note:** Version bump only for package @thi.ng/equiv diff --git a/packages/equiv/package.json b/packages/equiv/package.json index 7938c87ab3..ed3bec21bd 100644 --- a/packages/equiv/package.json +++ b/packages/equiv/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/equiv", - "version": "1.0.19", + "version": "1.0.20", "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 ada7335baa..187e13ec2c 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.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/errors@1.2.10...@thi.ng/errors@1.2.11) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/errors + + + + + ## [1.2.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/errors@1.2.9...@thi.ng/errors@1.2.10) (2020-04-11) **Note:** Version bump only for package @thi.ng/errors diff --git a/packages/errors/package.json b/packages/errors/package.json index 4179f7a9ee..3b2b5156cd 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/errors", - "version": "1.2.10", + "version": "1.2.11", "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 f1e1d41ff5..6d8391c32e 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.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.5...@thi.ng/fsm@2.4.6) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/fsm + + + + + ## [2.4.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.4...@thi.ng/fsm@2.4.5) (2020-04-20) **Note:** Version bump only for package @thi.ng/fsm diff --git a/packages/fsm/package.json b/packages/fsm/package.json index b754f76188..eee50f3c8a 100644 --- a/packages/fsm/package.json +++ b/packages/fsm/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/fsm", - "version": "2.4.5", + "version": "2.4.6", "description": "Composable primitives for building declarative, transducer based Finite-State Machines & matchers for arbitrary data streams", "module": "./index.js", "main": "./lib/index.js", @@ -38,12 +38,12 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/arrays": "^0.6.3", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/strings": "^1.8.4", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/arrays": "^0.6.4", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/strings": "^1.8.5", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-accel/CHANGELOG.md b/packages/geom-accel/CHANGELOG.md index 9a4d632fef..083591e1e5 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.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.1...@thi.ng/geom-accel@2.1.2) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-accel + + + + + ## [2.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.0...@thi.ng/geom-accel@2.1.1) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-accel diff --git a/packages/geom-accel/package.json b/packages/geom-accel/package.json index 36718c6e91..da4cf59707 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.1", + "version": "2.1.2", "description": "n-D spatial indexing data structures with a shared ES6 Map/Set-like API", "module": "./index.js", "main": "./lib/index.js", @@ -39,16 +39,16 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/arrays": "^0.6.3", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/geom-api": "^1.0.13", - "@thi.ng/geom-isec": "^0.4.13", - "@thi.ng/heaps": "^1.2.10", - "@thi.ng/math": "^1.7.6", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/arrays": "^0.6.4", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/geom-api": "^1.0.14", + "@thi.ng/geom-isec": "^0.4.14", + "@thi.ng/heaps": "^1.2.11", + "@thi.ng/math": "^1.7.7", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-api/CHANGELOG.md b/packages/geom-api/CHANGELOG.md index 05f0c0db14..c160ed5f25 100644 --- a/packages/geom-api/CHANGELOG.md +++ b/packages/geom-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. +## [1.0.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.13...@thi.ng/geom-api@1.0.14) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-api + + + + + ## [1.0.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.12...@thi.ng/geom-api@1.0.13) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-api diff --git a/packages/geom-api/package.json b/packages/geom-api/package.json index f7adfbb64d..34447e91dd 100644 --- a/packages/geom-api/package.json +++ b/packages/geom-api/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-api", - "version": "1.0.13", + "version": "1.0.14", "description": "Shared type & interface declarations for @thi.ng/geom packages", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-arc/CHANGELOG.md b/packages/geom-arc/CHANGELOG.md index e7637e8c43..6b0e6a8e72 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.2.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.2.24...@thi.ng/geom-arc@0.2.25) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-arc + + + + + ## [0.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.2.23...@thi.ng/geom-arc@0.2.24) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-arc diff --git a/packages/geom-arc/package.json b/packages/geom-arc/package.json index d3314c7ae0..d2a810c41f 100644 --- a/packages/geom-arc/package.json +++ b/packages/geom-arc/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-arc", - "version": "0.2.24", + "version": "0.2.25", "description": "2D circular / elliptic arc operations", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.13", - "@thi.ng/geom-resample": "^0.2.24", - "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/geom-api": "^1.0.14", + "@thi.ng/geom-resample": "^0.2.25", + "@thi.ng/math": "^1.7.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-clip-line/CHANGELOG.md b/packages/geom-clip-line/CHANGELOG.md index f62108145f..b5f6e511ed 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.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.0.11...@thi.ng/geom-clip-line@1.0.12) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-clip-line + + + + + ## [1.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.0.10...@thi.ng/geom-clip-line@1.0.11) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-clip-line diff --git a/packages/geom-clip-line/package.json b/packages/geom-clip-line/package.json index 1a9b79d6a2..d2b26d8c54 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.0.11", + "version": "1.0.12", "description": "2D line clipping (Liang-Barsky)", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-clip-poly/CHANGELOG.md b/packages/geom-clip-poly/CHANGELOG.md index 0259522e1c..faad86b5e9 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.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.11...@thi.ng/geom-clip-poly@1.0.12) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-clip-poly + + + + + ## [1.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.10...@thi.ng/geom-clip-poly@1.0.11) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-clip-poly diff --git a/packages/geom-clip-poly/package.json b/packages/geom-clip-poly/package.json index 668890ab30..af87344288 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.11", + "version": "1.0.12", "description": "2D convex polygon clipping (Sutherland-Hodgeman)", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/geom-isec": "^0.4.13", - "@thi.ng/geom-poly-utils": "^0.1.42", - "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/geom-isec": "^0.4.14", + "@thi.ng/geom-poly-utils": "^0.1.43", + "@thi.ng/math": "^1.7.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-closest-point/CHANGELOG.md b/packages/geom-closest-point/CHANGELOG.md index ca8b813fc1..30e9aaaa71 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.3.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.3.24...@thi.ng/geom-closest-point@0.3.25) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-closest-point + + + + + ## [0.3.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.3.23...@thi.ng/geom-closest-point@0.3.24) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-closest-point diff --git a/packages/geom-closest-point/package.json b/packages/geom-closest-point/package.json index 05327f198a..48b84c58c2 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.3.24", + "version": "0.3.25", "description": "2D / 3D closest point / proximity helpers", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/math": "^1.7.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-hull/CHANGELOG.md b/packages/geom-hull/CHANGELOG.md index 664339ae8f..29f982dc4c 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.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.44...@thi.ng/geom-hull@0.0.45) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-hull + + + + + ## [0.0.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.43...@thi.ng/geom-hull@0.0.44) (2020-04-23) **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 c145e8ca39..39a65df413 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.44", + "version": "0.0.45", "description": "Fast 2D convex hull (Graham Scan)", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/math": "^1.7.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-io-obj/CHANGELOG.md b/packages/geom-io-obj/CHANGELOG.md index 15b165f6d9..dae2e1309b 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.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.2...@thi.ng/geom-io-obj@0.1.3) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-io-obj + + + + + ## [0.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.1...@thi.ng/geom-io-obj@0.1.2) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-io-obj diff --git a/packages/geom-io-obj/package.json b/packages/geom-io-obj/package.json index 751abe5929..b5b296cacd 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.2", + "version": "0.1.3", "description": "Wavefront OBJ parser (& exporter soon)", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/vectors": "^4.3.1" + "@thi.ng/api": "^6.10.2", + "@thi.ng/vectors": "^4.3.2" }, "files": [ "*.js", diff --git a/packages/geom-isec/CHANGELOG.md b/packages/geom-isec/CHANGELOG.md index 2d2c09f283..e1e2999375 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.4.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.4.13...@thi.ng/geom-isec@0.4.14) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-isec + + + + + ## [0.4.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.4.12...@thi.ng/geom-isec@0.4.13) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-isec diff --git a/packages/geom-isec/package.json b/packages/geom-isec/package.json index 1973184c21..5bfedaa7b9 100644 --- a/packages/geom-isec/package.json +++ b/packages/geom-isec/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-isec", - "version": "0.4.13", + "version": "0.4.14", "description": "2D/3D shape intersection checks", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/geom-api": "^1.0.13", - "@thi.ng/geom-closest-point": "^0.3.24", - "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/geom-api": "^1.0.14", + "@thi.ng/geom-closest-point": "^0.3.25", + "@thi.ng/math": "^1.7.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-isoline/CHANGELOG.md b/packages/geom-isoline/CHANGELOG.md index 130423c529..f0ef1a8f14 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.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.42...@thi.ng/geom-isoline@0.1.43) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-isoline + + + + + ## [0.1.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.41...@thi.ng/geom-isoline@0.1.42) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-isoline diff --git a/packages/geom-isoline/package.json b/packages/geom-isoline/package.json index 585965d20c..de2ec41b57 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.42", + "version": "0.1.43", "description": "Fast 2D contour line extraction / generation", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-poly-utils/CHANGELOG.md b/packages/geom-poly-utils/CHANGELOG.md index 3a87017fc3..d9c52ea3b5 100644 --- a/packages/geom-poly-utils/CHANGELOG.md +++ b/packages/geom-poly-utils/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.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.42...@thi.ng/geom-poly-utils@0.1.43) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-poly-utils + + + + + ## [0.1.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.41...@thi.ng/geom-poly-utils@0.1.42) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-poly-utils diff --git a/packages/geom-poly-utils/package.json b/packages/geom-poly-utils/package.json index b5c3713753..3124bfd15e 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.1.42", + "version": "0.1.43", "description": "2D polygon / triangle analysis & processing utilities", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/errors": "^1.2.10", - "@thi.ng/geom-api": "^1.0.13", - "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/geom-api": "^1.0.14", + "@thi.ng/math": "^1.7.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-resample/CHANGELOG.md b/packages/geom-resample/CHANGELOG.md index d2ec5d5774..bf395402bf 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.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.24...@thi.ng/geom-resample@0.2.25) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-resample + + + + + ## [0.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.23...@thi.ng/geom-resample@0.2.24) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-resample diff --git a/packages/geom-resample/package.json b/packages/geom-resample/package.json index 30f154be55..6b34da0220 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.24", + "version": "0.2.25", "description": "Customizable nD polyline interpolation, re-sampling, splitting & nearest point computation", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.13", - "@thi.ng/geom-closest-point": "^0.3.24", - "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/geom-api": "^1.0.14", + "@thi.ng/geom-closest-point": "^0.3.25", + "@thi.ng/math": "^1.7.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-splines/CHANGELOG.md b/packages/geom-splines/CHANGELOG.md index 4441d64f77..8e749c8dbd 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.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.11...@thi.ng/geom-splines@0.5.12) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-splines + + + + + ## [0.5.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.10...@thi.ng/geom-splines@0.5.11) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-splines diff --git a/packages/geom-splines/package.json b/packages/geom-splines/package.json index 91470f839e..3fe38aebc2 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.11", + "version": "0.5.12", "description": "nD cubic & quadratic curve analysis, conversion, interpolation, splitting", "module": "./index.js", "main": "./lib/index.js", @@ -38,12 +38,12 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.13", - "@thi.ng/geom-arc": "^0.2.24", - "@thi.ng/geom-resample": "^0.2.24", - "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/geom-api": "^1.0.14", + "@thi.ng/geom-arc": "^0.2.25", + "@thi.ng/geom-resample": "^0.2.25", + "@thi.ng/math": "^1.7.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-subdiv-curve/CHANGELOG.md b/packages/geom-subdiv-curve/CHANGELOG.md index 34fe5b5fd9..49b1d4383d 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.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.41...@thi.ng/geom-subdiv-curve@0.1.42) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-subdiv-curve + + + + + ## [0.1.41](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.40...@thi.ng/geom-subdiv-curve@0.1.41) (2020-04-23) **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 51ea7cfc50..f7705b61f5 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.41", + "version": "0.1.42", "description": "Freely customizable, iterative nD subdivision curves for open / closed geometries", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/geom-api": "^1.0.13", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/geom-api": "^1.0.14", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-tessellate/CHANGELOG.md b/packages/geom-tessellate/CHANGELOG.md index 55f9feb5cc..f33b0223c6 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.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.24...@thi.ng/geom-tessellate@0.2.25) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-tessellate + + + + + ## [0.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.23...@thi.ng/geom-tessellate@0.2.24) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-tessellate diff --git a/packages/geom-tessellate/package.json b/packages/geom-tessellate/package.json index c37e8e5ea9..22545bfee3 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.24", + "version": "0.2.25", "description": "2D/3D convex polygon tessellators", "module": "./index.js", "main": "./lib/index.js", @@ -38,12 +38,12 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.13", - "@thi.ng/geom-isec": "^0.4.13", - "@thi.ng/geom-poly-utils": "^0.1.42", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/geom-api": "^1.0.14", + "@thi.ng/geom-isec": "^0.4.14", + "@thi.ng/geom-poly-utils": "^0.1.43", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom-voronoi/CHANGELOG.md b/packages/geom-voronoi/CHANGELOG.md index 90f57335bc..9260dd926a 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.1.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.1.42...@thi.ng/geom-voronoi@0.1.43) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/geom-voronoi + + + + + ## [0.1.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.1.41...@thi.ng/geom-voronoi@0.1.42) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom-voronoi diff --git a/packages/geom-voronoi/package.json b/packages/geom-voronoi/package.json index 34ac10e8d9..cd47848dc7 100644 --- a/packages/geom-voronoi/package.json +++ b/packages/geom-voronoi/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-voronoi", - "version": "0.1.42", + "version": "0.1.43", "description": "Fast, incremental 2D Delaunay & Voronoi mesh implementation", "module": "./index.js", "main": "./lib/index.js", @@ -38,15 +38,15 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-clip-line": "^1.0.11", - "@thi.ng/geom-clip-poly": "^1.0.11", - "@thi.ng/geom-isec": "^0.4.13", - "@thi.ng/geom-poly-utils": "^0.1.42", - "@thi.ng/math": "^1.7.6", - "@thi.ng/quad-edge": "^0.2.12", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/geom-clip-line": "^1.0.12", + "@thi.ng/geom-clip-poly": "^1.0.12", + "@thi.ng/geom-isec": "^0.4.14", + "@thi.ng/geom-poly-utils": "^0.1.43", + "@thi.ng/math": "^1.7.7", + "@thi.ng/quad-edge": "^0.2.13", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/geom/CHANGELOG.md b/packages/geom/CHANGELOG.md index eea4ccfd3d..671af417f2 100644 --- a/packages/geom/CHANGELOG.md +++ b/packages/geom/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [1.9.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.8.12...@thi.ng/geom@1.9.0) (2020-04-27) + + +### Features + +* **geom:** add transformVertices() op ([ef68a27](https://github.com/thi-ng/umbrella/commit/ef68a2703aab83cf1b520a832a6b1c8268759a3b)) +* **geom:** update asPolyline() impls ([cca8574](https://github.com/thi-ng/umbrella/commit/cca85744377c9957af82695236230bc75a005473)) + + + + + ## [1.8.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.8.11...@thi.ng/geom@1.8.12) (2020-04-23) **Note:** Version bump only for package @thi.ng/geom diff --git a/packages/geom/package.json b/packages/geom/package.json index 2058d6954f..2350444660 100644 --- a/packages/geom/package.json +++ b/packages/geom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom", - "version": "1.8.12", + "version": "1.9.0", "description": "Functional, polymorphic API for 2D geometry types & SVG generation", "module": "./index.js", "main": "./lib/index.js", @@ -38,32 +38,32 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/arrays": "^0.6.3", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/compose": "^1.4.3", - "@thi.ng/defmulti": "^1.2.11", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/geom-api": "^1.0.13", - "@thi.ng/geom-arc": "^0.2.24", - "@thi.ng/geom-clip-line": "^1.0.11", - "@thi.ng/geom-clip-poly": "^1.0.11", - "@thi.ng/geom-closest-point": "^0.3.24", - "@thi.ng/geom-hull": "^0.0.44", - "@thi.ng/geom-isec": "^0.4.13", - "@thi.ng/geom-poly-utils": "^0.1.42", - "@thi.ng/geom-resample": "^0.2.24", - "@thi.ng/geom-splines": "^0.5.11", - "@thi.ng/geom-subdiv-curve": "^0.1.41", - "@thi.ng/geom-tessellate": "^0.2.24", - "@thi.ng/hiccup": "^3.2.18", - "@thi.ng/hiccup-svg": "^3.4.14", - "@thi.ng/math": "^1.7.6", - "@thi.ng/matrices": "^0.6.11", - "@thi.ng/random": "^1.4.5", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/arrays": "^0.6.4", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/compose": "^1.4.4", + "@thi.ng/defmulti": "^1.2.12", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/geom-api": "^1.0.14", + "@thi.ng/geom-arc": "^0.2.25", + "@thi.ng/geom-clip-line": "^1.0.12", + "@thi.ng/geom-clip-poly": "^1.0.12", + "@thi.ng/geom-closest-point": "^0.3.25", + "@thi.ng/geom-hull": "^0.0.45", + "@thi.ng/geom-isec": "^0.4.14", + "@thi.ng/geom-poly-utils": "^0.1.43", + "@thi.ng/geom-resample": "^0.2.25", + "@thi.ng/geom-splines": "^0.5.12", + "@thi.ng/geom-subdiv-curve": "^0.1.42", + "@thi.ng/geom-tessellate": "^0.2.25", + "@thi.ng/hiccup": "^3.2.19", + "@thi.ng/hiccup-svg": "^3.4.15", + "@thi.ng/math": "^1.7.7", + "@thi.ng/matrices": "^0.6.12", + "@thi.ng/random": "^1.4.6", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/gp/CHANGELOG.md b/packages/gp/CHANGELOG.md index 6684492594..1f1400ce86 100644 --- a/packages/gp/CHANGELOG.md +++ b/packages/gp/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.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.12...@thi.ng/gp@0.1.13) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/gp + + + + + ## [0.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.11...@thi.ng/gp@0.1.12) (2020-04-20) **Note:** Version bump only for package @thi.ng/gp diff --git a/packages/gp/package.json b/packages/gp/package.json index f543a35f79..b73078bce2 100644 --- a/packages/gp/package.json +++ b/packages/gp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/gp", - "version": "0.1.12", + "version": "0.1.13", "description": "Genetic programming helpers & strategies (tree based & multi-expression programming)", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/math": "^1.7.6", - "@thi.ng/random": "^1.4.5", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/zipper": "^0.1.11", + "@thi.ng/api": "^6.10.2", + "@thi.ng/math": "^1.7.7", + "@thi.ng/random": "^1.4.6", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/zipper": "^0.1.12", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/grid-iterators/CHANGELOG.md b/packages/grid-iterators/CHANGELOG.md index 01bd2190de..fe5447e3b2 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.3.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.3.9...@thi.ng/grid-iterators@0.3.10) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/grid-iterators + + + + + ## [0.3.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.3.8...@thi.ng/grid-iterators@0.3.9) (2020-04-20) **Note:** Version bump only for package @thi.ng/grid-iterators diff --git a/packages/grid-iterators/package.json b/packages/grid-iterators/package.json index 4a7353dc54..81571ea9b3 100644 --- a/packages/grid-iterators/package.json +++ b/packages/grid-iterators/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/grid-iterators", - "version": "0.3.9", + "version": "0.3.10", "description": "2D grid iterators w/ multiple orderings", "module": "./index.js", "main": "./lib/index.js", @@ -39,11 +39,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/arrays": "^0.6.3", - "@thi.ng/binary": "^2.0.3", - "@thi.ng/morton": "^2.0.9", - "@thi.ng/random": "^1.4.5", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/arrays": "^0.6.4", + "@thi.ng/binary": "^2.0.4", + "@thi.ng/morton": "^2.0.10", + "@thi.ng/random": "^1.4.6", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hdom-canvas/CHANGELOG.md b/packages/hdom-canvas/CHANGELOG.md index 081bd2558b..4237356967 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. +## [2.4.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@2.4.17...@thi.ng/hdom-canvas@2.4.18) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/hdom-canvas + + + + + ## [2.4.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@2.4.16...@thi.ng/hdom-canvas@2.4.17) (2020-04-23) **Note:** Version bump only for package @thi.ng/hdom-canvas diff --git a/packages/hdom-canvas/package.json b/packages/hdom-canvas/package.json index ad5b50576b..50767b7b28 100644 --- a/packages/hdom-canvas/package.json +++ b/packages/hdom-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom-canvas", - "version": "2.4.17", + "version": "2.4.18", "description": "Declarative canvas scenegraph & visualization for @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -38,13 +38,13 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/color": "^1.1.17", - "@thi.ng/diff": "^3.2.16", - "@thi.ng/hdom": "^8.0.20", - "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/color": "^1.1.18", + "@thi.ng/diff": "^3.2.17", + "@thi.ng/hdom": "^8.0.21", + "@thi.ng/math": "^1.7.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hdom-components/CHANGELOG.md b/packages/hdom-components/CHANGELOG.md index 82eb3125cf..c5da9eb86c 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. +## [3.2.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@3.2.5...@thi.ng/hdom-components@3.2.6) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/hdom-components + + + + + ## [3.2.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@3.2.4...@thi.ng/hdom-components@3.2.5) (2020-04-20) **Note:** Version bump only for package @thi.ng/hdom-components diff --git a/packages/hdom-components/package.json b/packages/hdom-components/package.json index 4373dc173a..4cdd7918a7 100644 --- a/packages/hdom-components/package.json +++ b/packages/hdom-components/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom-components", - "version": "3.2.5", + "version": "3.2.6", "description": "Raw, skinnable UI & SVG components for @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/math": "^1.7.6", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/transducers-stats": "^1.1.19", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/math": "^1.7.7", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/transducers-stats": "^1.1.20", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hdom-mock/CHANGELOG.md b/packages/hdom-mock/CHANGELOG.md index 7de0221c22..113d0e0845 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.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.1.20...@thi.ng/hdom-mock@1.1.21) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/hdom-mock + + + + + ## [1.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.1.19...@thi.ng/hdom-mock@1.1.20) (2020-04-11) **Note:** Version bump only for package @thi.ng/hdom-mock diff --git a/packages/hdom-mock/package.json b/packages/hdom-mock/package.json index b8c85ae5b8..87fc8adeeb 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.20", + "version": "1.1.21", "description": "Mock base implementation for @thi.ng/hdom API", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/hdom": "^8.0.20", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/hdom": "^8.0.21", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hdom/CHANGELOG.md b/packages/hdom/CHANGELOG.md index 009e28b6c6..67cd3d69b6 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.0.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.0.20...@thi.ng/hdom@8.0.21) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/hdom + + + + + ## [8.0.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.0.19...@thi.ng/hdom@8.0.20) (2020-04-11) **Note:** Version bump only for package @thi.ng/hdom diff --git a/packages/hdom/package.json b/packages/hdom/package.json index 355dd9535c..7d32aca44f 100644 --- a/packages/hdom/package.json +++ b/packages/hdom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom", - "version": "8.0.20", + "version": "8.0.21", "description": "Lightweight vanilla ES6 UI component trees with customizable branch-local behaviors", "module": "./index.js", "main": "./lib/index.js", @@ -29,7 +29,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.7.8", - "@thi.ng/atom": "^4.1.3", + "@thi.ng/atom": "^4.1.4", "@types/mocha": "^7.0.1", "@types/node": "^13.7.4", "mocha": "^7.1.1", @@ -39,12 +39,12 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/diff": "^3.2.16", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/hiccup": "^3.2.18", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/diff": "^3.2.17", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/hiccup": "^3.2.19", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/heaps/CHANGELOG.md b/packages/heaps/CHANGELOG.md index 886259fd84..f8b69b312f 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.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.2.10...@thi.ng/heaps@1.2.11) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/heaps + + + + + ## [1.2.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.2.9...@thi.ng/heaps@1.2.10) (2020-04-11) **Note:** Version bump only for package @thi.ng/heaps diff --git a/packages/heaps/package.json b/packages/heaps/package.json index e61d060f73..6e49b592bb 100644 --- a/packages/heaps/package.json +++ b/packages/heaps/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/heaps", - "version": "1.2.10", + "version": "1.2.11", "description": "Various heap implementations for arbitrary values and with customizable ordering", "module": "./index.js", "main": "./lib/index.js", @@ -39,8 +39,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/compare": "^1.3.2", + "@thi.ng/api": "^6.10.2", + "@thi.ng/compare": "^1.3.3", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hiccup-carbon-icons/CHANGELOG.md b/packages/hiccup-carbon-icons/CHANGELOG.md index 8cdef4b1f3..bc8c0c0d64 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. +## [1.0.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@1.0.33...@thi.ng/hiccup-carbon-icons@1.0.34) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/hiccup-carbon-icons + + + + + ## [1.0.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@1.0.32...@thi.ng/hiccup-carbon-icons@1.0.33) (2020-04-11) **Note:** Version bump only for package @thi.ng/hiccup-carbon-icons diff --git a/packages/hiccup-carbon-icons/package.json b/packages/hiccup-carbon-icons/package.json index 3bc59a0017..4f2231bf48 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": "1.0.33", + "version": "1.0.34", "description": "Full set of IBM's Carbon icons in hiccup format", "module": "./index.js", "main": "./lib/index.js", @@ -29,7 +29,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.7.8", - "@thi.ng/hiccup": "^3.2.18", + "@thi.ng/hiccup": "^3.2.19", "@types/mocha": "^7.0.1", "@types/node": "^13.7.4", "mocha": "^7.1.1", diff --git a/packages/hiccup-css/CHANGELOG.md b/packages/hiccup-css/CHANGELOG.md index 955c95d831..e40df379d1 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.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.19...@thi.ng/hiccup-css@1.1.20) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/hiccup-css + + + + + ## [1.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.18...@thi.ng/hiccup-css@1.1.19) (2020-04-20) **Note:** Version bump only for package @thi.ng/hiccup-css diff --git a/packages/hiccup-css/package.json b/packages/hiccup-css/package.json index 12b29df094..d6313f3231 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.19", + "version": "1.1.20", "description": "CSS from nested JS data structures", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hiccup-markdown/CHANGELOG.md b/packages/hiccup-markdown/CHANGELOG.md index 776b7c0745..97f9e84764 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.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.7...@thi.ng/hiccup-markdown@1.2.8) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/hiccup-markdown + + + + + ## [1.2.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.6...@thi.ng/hiccup-markdown@1.2.7) (2020-04-23) **Note:** Version bump only for package @thi.ng/hiccup-markdown diff --git a/packages/hiccup-markdown/package.json b/packages/hiccup-markdown/package.json index f071517481..098cac8992 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.7", + "version": "1.2.8", "description": "Markdown parser & serializer from/to Hiccup format", "module": "./index.js", "main": "./lib/index.js", @@ -38,15 +38,15 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/arrays": "^0.6.3", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/defmulti": "^1.2.11", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/fsm": "^2.4.5", - "@thi.ng/hiccup": "^3.2.18", - "@thi.ng/strings": "^1.8.4", - "@thi.ng/text-canvas": "^0.2.8", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/arrays": "^0.6.4", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/defmulti": "^1.2.12", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/fsm": "^2.4.6", + "@thi.ng/hiccup": "^3.2.19", + "@thi.ng/strings": "^1.8.5", + "@thi.ng/text-canvas": "^0.2.9", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hiccup-svg/CHANGELOG.md b/packages/hiccup-svg/CHANGELOG.md index 036103317d..068a38a86d 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.4.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.4.14...@thi.ng/hiccup-svg@3.4.15) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/hiccup-svg + + + + + ## [3.4.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.4.13...@thi.ng/hiccup-svg@3.4.14) (2020-04-23) **Note:** Version bump only for package @thi.ng/hiccup-svg diff --git a/packages/hiccup-svg/package.json b/packages/hiccup-svg/package.json index b19e1d685f..1d804a3e22 100644 --- a/packages/hiccup-svg/package.json +++ b/packages/hiccup-svg/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-svg", - "version": "3.4.14", + "version": "3.4.15", "description": "SVG element functions for @thi.ng/hiccup & @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/checks": "^2.6.2", - "@thi.ng/color": "^1.1.17", - "@thi.ng/hiccup": "^3.2.18", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/color": "^1.1.18", + "@thi.ng/hiccup": "^3.2.19", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/hiccup/CHANGELOG.md b/packages/hiccup/CHANGELOG.md index 7af7e2e015..d47a14984d 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.2.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.2.18...@thi.ng/hiccup@3.2.19) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/hiccup + + + + + ## [3.2.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.2.17...@thi.ng/hiccup@3.2.18) (2020-04-11) **Note:** Version bump only for package @thi.ng/hiccup diff --git a/packages/hiccup/package.json b/packages/hiccup/package.json index 054bbdd482..0ccc8c8ced 100644 --- a/packages/hiccup/package.json +++ b/packages/hiccup/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup", - "version": "3.2.18", + "version": "3.2.19", "description": "HTML/SVG/XML serialization of nested data structures, iterables & closures", "module": "./index.js", "main": "./lib/index.js", @@ -29,7 +29,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.7.8", - "@thi.ng/atom": "^4.1.3", + "@thi.ng/atom": "^4.1.4", "@types/mocha": "^7.0.1", "@types/node": "^13.7.4", "mocha": "^7.1.1", @@ -39,8 +39,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/checks": "^2.6.2", - "@thi.ng/errors": "^1.2.10", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/errors": "^1.2.11", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/idgen/CHANGELOG.md b/packages/idgen/CHANGELOG.md index 14a5ec5833..1a3c65da9a 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.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.2.9...@thi.ng/idgen@0.2.10) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/idgen + + + + + ## [0.2.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.2.8...@thi.ng/idgen@0.2.9) (2020-04-11) **Note:** Version bump only for package @thi.ng/idgen diff --git a/packages/idgen/package.json b/packages/idgen/package.json index abcc836615..b1bcf4659c 100644 --- a/packages/idgen/package.json +++ b/packages/idgen/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/idgen", - "version": "0.2.9", + "version": "0.2.10", "description": "Generator of opaque numeric identifiers with optional support for ID versioning and efficient re-use", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", + "@thi.ng/api": "^6.10.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/iges/CHANGELOG.md b/packages/iges/CHANGELOG.md index a431fa87e4..10465dcd30 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.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.26...@thi.ng/iges@1.1.27) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/iges + + + + + ## [1.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.25...@thi.ng/iges@1.1.26) (2020-04-23) **Note:** Version bump only for package @thi.ng/iges diff --git a/packages/iges/package.json b/packages/iges/package.json index 20789c413b..d836b99589 100644 --- a/packages/iges/package.json +++ b/packages/iges/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/iges", - "version": "1.1.26", + "version": "1.1.27", "description": "IGES 5.3 serializer for (currently only) polygonal geometry, both open & closed", "module": "./index.js", "main": "./lib/index.js", @@ -38,12 +38,12 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/defmulti": "^1.2.11", - "@thi.ng/strings": "^1.8.4", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/defmulti": "^1.2.12", + "@thi.ng/strings": "^1.8.5", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/imgui/CHANGELOG.md b/packages/imgui/CHANGELOG.md index 7a734b2084..fd4ba41cc6 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.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.12...@thi.ng/imgui@0.2.13) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/imgui + + + + + ## [0.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.11...@thi.ng/imgui@0.2.12) (2020-04-23) **Note:** Version bump only for package @thi.ng/imgui diff --git a/packages/imgui/package.json b/packages/imgui/package.json index 53ab528cbc..1d00b07abe 100644 --- a/packages/imgui/package.json +++ b/packages/imgui/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/imgui", - "version": "0.2.12", + "version": "0.2.13", "description": "Immediate mode GUI with flexible state handling & data only shape output", "module": "./index.js", "main": "./lib/index.js", @@ -38,16 +38,16 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom": "^1.8.12", - "@thi.ng/geom-api": "^1.0.13", - "@thi.ng/geom-isec": "^0.4.13", - "@thi.ng/geom-tessellate": "^0.2.24", - "@thi.ng/layout": "^0.1.7", - "@thi.ng/math": "^1.7.6", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/geom": "^1.9.0", + "@thi.ng/geom-api": "^1.0.14", + "@thi.ng/geom-isec": "^0.4.14", + "@thi.ng/geom-tessellate": "^0.2.25", + "@thi.ng/layout": "^0.1.8", + "@thi.ng/math": "^1.7.7", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/interceptors/CHANGELOG.md b/packages/interceptors/CHANGELOG.md index c2ca8624ba..eb2ca0f223 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.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.2.14...@thi.ng/interceptors@2.2.15) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/interceptors + + + + + ## [2.2.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.2.13...@thi.ng/interceptors@2.2.14) (2020-04-11) **Note:** Version bump only for package @thi.ng/interceptors diff --git a/packages/interceptors/package.json b/packages/interceptors/package.json index 547e8bbeec..b1d7358bd8 100644 --- a/packages/interceptors/package.json +++ b/packages/interceptors/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/interceptors", - "version": "2.2.14", + "version": "2.2.15", "description": "Interceptor based event bus, side effect & immutable state handling", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/atom": "^4.1.3", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/paths": "^4.0.2", + "@thi.ng/api": "^6.10.2", + "@thi.ng/atom": "^4.1.4", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/paths": "^4.0.3", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/intervals/CHANGELOG.md b/packages/intervals/CHANGELOG.md index 6891dbe3a6..7bb54b9d2a 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.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@2.0.10...@thi.ng/intervals@2.0.11) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/intervals + + + + + ## [2.0.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@2.0.9...@thi.ng/intervals@2.0.10) (2020-04-11) **Note:** Version bump only for package @thi.ng/intervals diff --git a/packages/intervals/package.json b/packages/intervals/package.json index 18e1f2aae0..c1de6dd992 100644 --- a/packages/intervals/package.json +++ b/packages/intervals/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/intervals", - "version": "2.0.10", + "version": "2.0.11", "description": "Closed/open/semi-open interval data type, queries & operations", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/dlogic": "^1.0.19", - "@thi.ng/errors": "^1.2.10", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/dlogic": "^1.0.20", + "@thi.ng/errors": "^1.2.11", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/iterators/CHANGELOG.md b/packages/iterators/CHANGELOG.md index 6954dc1f0d..e61d4cca74 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.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.19...@thi.ng/iterators@5.1.20) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/iterators + + + + + ## [5.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.18...@thi.ng/iterators@5.1.19) (2020-04-20) **Note:** Version bump only for package @thi.ng/iterators diff --git a/packages/iterators/package.json b/packages/iterators/package.json index f16fefc438..05ba27400d 100644 --- a/packages/iterators/package.json +++ b/packages/iterators/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/iterators", - "version": "5.1.19", + "version": "5.1.20", "description": "Clojure inspired, composable ES6 iterators & generators", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/dcons": "^2.2.12", - "@thi.ng/errors": "^1.2.10", + "@thi.ng/api": "^6.10.2", + "@thi.ng/dcons": "^2.2.13", + "@thi.ng/errors": "^1.2.11", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/layout/CHANGELOG.md b/packages/layout/CHANGELOG.md index 946a3be617..fda1cf75ed 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.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/layout@0.1.7...@thi.ng/layout@0.1.8) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/layout + + + + + ## [0.1.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/layout@0.1.6...@thi.ng/layout@0.1.7) (2020-04-11) **Note:** Version bump only for package @thi.ng/layout diff --git a/packages/layout/package.json b/packages/layout/package.json index 684cf95c70..eec660439f 100644 --- a/packages/layout/package.json +++ b/packages/layout/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/layout", - "version": "0.1.7", + "version": "0.1.8", "description": "TODO", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/leb128/CHANGELOG.md b/packages/leb128/CHANGELOG.md index 5b2aecc2e3..fd574f68a6 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.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.13...@thi.ng/leb128@1.0.14) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/leb128 + + + + + ## [1.0.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.12...@thi.ng/leb128@1.0.13) (2020-04-20) **Note:** Version bump only for package @thi.ng/leb128 diff --git a/packages/leb128/package.json b/packages/leb128/package.json index db2711a2ef..324df9f0f6 100644 --- a/packages/leb128/package.json +++ b/packages/leb128/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/leb128", - "version": "1.0.13", + "version": "1.0.14", "description": "WASM based LEB128 encoder / decoder (signed & unsigned)", "module": "./index.js", "main": "./lib/index.js", @@ -39,9 +39,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/checks": "^2.6.2", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/transducers-binary": "^0.5.9", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/transducers-binary": "^0.5.10", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/lsys/CHANGELOG.md b/packages/lsys/CHANGELOG.md index 925deaa253..708d7f74c9 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.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.39...@thi.ng/lsys@0.2.40) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/lsys + + + + + ## [0.2.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.38...@thi.ng/lsys@0.2.39) (2020-04-23) **Note:** Version bump only for package @thi.ng/lsys diff --git a/packages/lsys/package.json b/packages/lsys/package.json index 3bd44bcf48..9fa7eb28b9 100644 --- a/packages/lsys/package.json +++ b/packages/lsys/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/lsys", - "version": "0.2.39", + "version": "0.2.40", "description": "Functional, extensible L-System architecture w/ support for probabilistic rules", "module": "./index.js", "main": "./lib/index.js", @@ -38,13 +38,13 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/compose": "^1.4.3", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/math": "^1.7.6", - "@thi.ng/random": "^1.4.5", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/compose": "^1.4.4", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/math": "^1.7.7", + "@thi.ng/random": "^1.4.6", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/malloc/CHANGELOG.md b/packages/malloc/CHANGELOG.md index 924181d947..e6732826bb 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.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.1.11...@thi.ng/malloc@4.1.12) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/malloc + + + + + ## [4.1.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.1.10...@thi.ng/malloc@4.1.11) (2020-04-11) **Note:** Version bump only for package @thi.ng/malloc diff --git a/packages/malloc/package.json b/packages/malloc/package.json index 53621c20b0..5615a30046 100644 --- a/packages/malloc/package.json +++ b/packages/malloc/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/malloc", - "version": "4.1.11", + "version": "4.1.12", "description": "ArrayBuffer based malloc() impl for hybrid JS/WASM use cases, based on thi.ng/tinyalloc", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/binary": "^2.0.3", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/errors": "^1.2.10", + "@thi.ng/api": "^6.10.2", + "@thi.ng/binary": "^2.0.4", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/errors": "^1.2.11", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/math/CHANGELOG.md b/packages/math/CHANGELOG.md index ded308ac38..c8bece30ce 100644 --- a/packages/math/CHANGELOG.md +++ b/packages/math/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.7.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@1.7.6...@thi.ng/math@1.7.7) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/math + + + + + ## [1.7.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@1.7.5...@thi.ng/math@1.7.6) (2020-04-11) **Note:** Version bump only for package @thi.ng/math diff --git a/packages/math/package.json b/packages/math/package.json index 84574ab313..e81ab0afc2 100644 --- a/packages/math/package.json +++ b/packages/math/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/math", - "version": "1.7.6", + "version": "1.7.7", "description": "Assorted common math functions & utilities", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/matrices/CHANGELOG.md b/packages/matrices/CHANGELOG.md index a603ff524d..bb53c85370 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.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.11...@thi.ng/matrices@0.6.12) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/matrices + + + + + ## [0.6.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.10...@thi.ng/matrices@0.6.11) (2020-04-23) **Note:** Version bump only for package @thi.ng/matrices diff --git a/packages/matrices/package.json b/packages/matrices/package.json index f7989a5e96..8debd97bee 100644 --- a/packages/matrices/package.json +++ b/packages/matrices/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/matrices", - "version": "0.6.11", + "version": "0.6.12", "description": "Matrix & quaternion operations for 2D/3D geometry processing", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/math": "^1.7.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/math": "^1.7.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/memoize/CHANGELOG.md b/packages/memoize/CHANGELOG.md index f0d90db18e..ca09cee589 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.0.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.0.7...@thi.ng/memoize@2.0.8) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/memoize + + + + + ## [2.0.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.0.6...@thi.ng/memoize@2.0.7) (2020-04-11) **Note:** Version bump only for package @thi.ng/memoize diff --git a/packages/memoize/package.json b/packages/memoize/package.json index 747c74e785..3876466d4d 100644 --- a/packages/memoize/package.json +++ b/packages/memoize/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/memoize", - "version": "2.0.7", + "version": "2.0.8", "description": "Function memoization with configurable caching", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", + "@thi.ng/api": "^6.10.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/mime/CHANGELOG.md b/packages/mime/CHANGELOG.md index 4ae6b5aa6f..0bc660d0cd 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.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/mime@0.1.7...@thi.ng/mime@0.1.8) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/mime + + + + + ## [0.1.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/mime@0.1.6...@thi.ng/mime@0.1.7) (2020-04-11) **Note:** Version bump only for package @thi.ng/mime diff --git a/packages/mime/package.json b/packages/mime/package.json index 60049102d3..b1ddae5733 100644 --- a/packages/mime/package.json +++ b/packages/mime/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/mime", - "version": "0.1.7", + "version": "0.1.8", "description": "350+ file extension to MIME type mappings, based on mime-db", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", + "@thi.ng/api": "^6.10.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/morton/CHANGELOG.md b/packages/morton/CHANGELOG.md index a43617b8f7..dc9b3e178f 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.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@2.0.9...@thi.ng/morton@2.0.10) (2020-04-27) + +**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 ba6569d4f9..ee709ccbd4 100644 --- a/packages/morton/package.json +++ b/packages/morton/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/morton", - "version": "2.0.9", + "version": "2.0.10", "description": "Z-order curve / Morton encoding, decoding & range extraction for arbitrary dimensions", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/binary": "^2.0.3", - "@thi.ng/math": "^1.7.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/binary": "^2.0.4", + "@thi.ng/math": "^1.7.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/parse/CHANGELOG.md b/packages/parse/CHANGELOG.md index b4d4470a7a..ffc363bddc 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.5.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.5.0...@thi.ng/parse@0.5.1) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/parse + + + + + # [0.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.4.1...@thi.ng/parse@0.5.0) (2020-04-23) diff --git a/packages/parse/package.json b/packages/parse/package.json index 3d8091764e..7652914c0f 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/parse", - "version": "0.5.0", + "version": "0.5.1", "description": "Purely functional parser combinators & AST generation for generic inputs", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.0", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/defmulti": "^1.2.11", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/strings": "^1.8.4" + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/defmulti": "^1.2.12", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/strings": "^1.8.5" }, "files": [ "*.js", diff --git a/packages/paths/CHANGELOG.md b/packages/paths/CHANGELOG.md index 0d05bd8cae..b7b8a7bde6 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.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.0.2...@thi.ng/paths@4.0.3) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/paths + + + + + ## [4.0.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.0.1...@thi.ng/paths@4.0.2) (2020-04-11) **Note:** Version bump only for package @thi.ng/paths diff --git a/packages/paths/package.json b/packages/paths/package.json index 91df1311d9..16a00f3c0b 100644 --- a/packages/paths/package.json +++ b/packages/paths/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/paths", - "version": "4.0.2", + "version": "4.0.3", "description": "Immutable, optimized and optionally typed path-based object property / array accessors with structural sharing", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/checks": "^2.6.2", - "@thi.ng/errors": "^1.2.10", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/errors": "^1.2.11", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/pixel/CHANGELOG.md b/packages/pixel/CHANGELOG.md index ff89ce5f6d..fe98fe7496 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.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.1.16...@thi.ng/pixel@0.1.17) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/pixel + + + + + ## [0.1.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.1.15...@thi.ng/pixel@0.1.16) (2020-04-11) **Note:** Version bump only for package @thi.ng/pixel diff --git a/packages/pixel/package.json b/packages/pixel/package.json index ffba941531..a88c861983 100644 --- a/packages/pixel/package.json +++ b/packages/pixel/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pixel", - "version": "0.1.16", + "version": "0.1.17", "description": "Typed array backed, packed pixel buffer w/ customizable formats, blitting, conversions", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/math": "^1.7.6", - "@thi.ng/porter-duff": "^0.1.15", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/math": "^1.7.7", + "@thi.ng/porter-duff": "^0.1.16", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/pointfree-lang/CHANGELOG.md b/packages/pointfree-lang/CHANGELOG.md index e3aa02c3f7..f46b042dae 100644 --- a/packages/pointfree-lang/CHANGELOG.md +++ b/packages/pointfree-lang/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [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) + + +### Features + +* **pointfree-lang:** add word metadata ([7343116](https://github.com/thi-ng/umbrella/commit/7343116d2e94191b468a37f8c21dc9ef08f0e49c)) +* **pointfree-lang:** update grammar (add line comments) ([a8cdbe8](https://github.com/thi-ng/umbrella/commit/a8cdbe86a96df0b63682d3f7628ff77f75f23ced)) + + + + + # [1.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.2.3...@thi.ng/pointfree-lang@1.3.0) (2020-04-16) diff --git a/packages/pointfree-lang/package.json b/packages/pointfree-lang/package.json index 1828c26628..15a92cf84c 100644 --- a/packages/pointfree-lang/package.json +++ b/packages/pointfree-lang/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pointfree-lang", - "version": "1.3.0", + "version": "1.4.0", "description": "Forth style syntax layer/compiler & CLI for the @thi.ng/pointfree DSL", "module": "./index.js", "main": "./lib/index.js", @@ -42,10 +42,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/bench": "^2.0.8", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/pointfree": "^2.0.0", + "@thi.ng/api": "^6.10.2", + "@thi.ng/bench": "^2.0.9", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/pointfree": "^2.0.1", "commander": "^5.0.0", "tslib": "^1.11.1" }, diff --git a/packages/pointfree/CHANGELOG.md b/packages/pointfree/CHANGELOG.md index 21053f4aa7..696d18fc2a 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.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@2.0.0...@thi.ng/pointfree@2.0.1) (2020-04-27) + +**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 e4e3990a87..dc7ccf082e 100644 --- a/packages/pointfree/package.json +++ b/packages/pointfree/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pointfree", - "version": "2.0.0", + "version": "2.0.1", "description": "Pointfree functional composition / Forth style stack execution engine", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/compose": "^1.4.3", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/errors": "^1.2.10", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/compose": "^1.4.4", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/errors": "^1.2.11", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/poisson/CHANGELOG.md b/packages/poisson/CHANGELOG.md index b2a7768696..5ba119788d 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.0.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.0.13...@thi.ng/poisson@1.0.14) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/poisson + + + + + ## [1.0.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.0.12...@thi.ng/poisson@1.0.13) (2020-04-23) **Note:** Version bump only for package @thi.ng/poisson diff --git a/packages/poisson/package.json b/packages/poisson/package.json index 627491237e..9c601bf3d9 100644 --- a/packages/poisson/package.json +++ b/packages/poisson/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/poisson", - "version": "1.0.13", + "version": "1.0.14", "description": "nD Poisson-disc sampling w/ support for spatial density functions and custom PRNGs", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/checks": "^2.6.2", - "@thi.ng/geom-api": "^1.0.13", - "@thi.ng/random": "^1.4.5", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/geom-api": "^1.0.14", + "@thi.ng/random": "^1.4.6", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/porter-duff/CHANGELOG.md b/packages/porter-duff/CHANGELOG.md index 175a02ad23..db3f72f895 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.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/porter-duff@0.1.15...@thi.ng/porter-duff@0.1.16) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/porter-duff + + + + + ## [0.1.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/porter-duff@0.1.14...@thi.ng/porter-duff@0.1.15) (2020-04-11) **Note:** Version bump only for package @thi.ng/porter-duff diff --git a/packages/porter-duff/package.json b/packages/porter-duff/package.json index 6c87825565..8900d1c664 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.15", + "version": "0.1.16", "description": "Porter-Duff operators for packed ints & float-array alpha compositing", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/math": "^1.7.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/math": "^1.7.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/quad-edge/CHANGELOG.md b/packages/quad-edge/CHANGELOG.md index f22166a582..169d7366e6 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.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/quad-edge@0.2.12...@thi.ng/quad-edge@0.2.13) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/quad-edge + + + + + ## [0.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/quad-edge@0.2.11...@thi.ng/quad-edge@0.2.12) (2020-04-11) **Note:** Version bump only for package @thi.ng/quad-edge diff --git a/packages/quad-edge/package.json b/packages/quad-edge/package.json index 3721bb4aa9..3d20ee2924 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.12", + "version": "0.2.13", "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 88c64a3536..dea60f96d3 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.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.13...@thi.ng/ramp@0.1.14) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/ramp + + + + + ## [0.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.12...@thi.ng/ramp@0.1.13) (2020-04-23) **Note:** Version bump only for package @thi.ng/ramp diff --git a/packages/ramp/package.json b/packages/ramp/package.json index a31d8b2550..8e12efde78 100644 --- a/packages/ramp/package.json +++ b/packages/ramp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/ramp", - "version": "0.1.13", + "version": "0.1.14", "description": "Parametric interpolated 1D lookup tables for remapping values", "module": "./index.js", "main": "./lib/index.js", @@ -38,12 +38,12 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/arrays": "^0.6.3", - "@thi.ng/compare": "^1.3.2", - "@thi.ng/math": "^1.7.6", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/arrays": "^0.6.4", + "@thi.ng/compare": "^1.3.3", + "@thi.ng/math": "^1.7.7", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/random/CHANGELOG.md b/packages/random/CHANGELOG.md index 18e440ca76..8c8b5c5921 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. +## [1.4.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@1.4.5...@thi.ng/random@1.4.6) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/random + + + + + ## [1.4.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@1.4.4...@thi.ng/random@1.4.5) (2020-04-11) **Note:** Version bump only for package @thi.ng/random diff --git a/packages/random/package.json b/packages/random/package.json index 93c05c1cfd..ab76a4add6 100644 --- a/packages/random/package.json +++ b/packages/random/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/random", - "version": "1.4.5", + "version": "1.4.6", "description": "Pseudo-random number generators w/ unified API", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/range-coder/CHANGELOG.md b/packages/range-coder/CHANGELOG.md index 7d0310e759..ffd53a97ac 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.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.39...@thi.ng/range-coder@1.0.40) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/range-coder + + + + + ## [1.0.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.38...@thi.ng/range-coder@1.0.39) (2020-04-20) **Note:** Version bump only for package @thi.ng/range-coder diff --git a/packages/range-coder/package.json b/packages/range-coder/package.json index 3dffa8a09c..936c01ef15 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.39", + "version": "1.0.40", "description": "Binary data range encoder / decoder", "module": "./index.js", "main": "./lib/index.js", @@ -29,7 +29,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.7.8", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/transducers": "^6.4.7", "@types/mocha": "^7.0.1", "@types/node": "^13.7.4", "mocha": "^7.1.1", @@ -39,7 +39,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/bitstream": "^1.1.13", + "@thi.ng/bitstream": "^1.1.14", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/resolve-map/CHANGELOG.md b/packages/resolve-map/CHANGELOG.md index da6db7e79c..eb67682b17 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.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.1.19...@thi.ng/resolve-map@4.1.20) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/resolve-map + + + + + ## [4.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.1.18...@thi.ng/resolve-map@4.1.19) (2020-04-11) **Note:** Version bump only for package @thi.ng/resolve-map diff --git a/packages/resolve-map/package.json b/packages/resolve-map/package.json index d8c8087414..10e22a3061 100644 --- a/packages/resolve-map/package.json +++ b/packages/resolve-map/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/resolve-map", - "version": "4.1.19", + "version": "4.1.20", "description": "DAG resolution of vanilla objects & arrays with internally linked values", "module": "./index.js", "main": "./lib/index.js", @@ -37,10 +37,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/paths": "^4.0.2", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/paths": "^4.0.3", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rle-pack/CHANGELOG.md b/packages/rle-pack/CHANGELOG.md index bc9e732e43..46c17d548a 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.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@2.1.13...@thi.ng/rle-pack@2.1.14) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/rle-pack + + + + + ## [2.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@2.1.12...@thi.ng/rle-pack@2.1.13) (2020-04-11) **Note:** Version bump only for package @thi.ng/rle-pack diff --git a/packages/rle-pack/package.json b/packages/rle-pack/package.json index 082a7faa26..3d13fe6776 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.13", + "version": "2.1.14", "description": "Binary run-length encoding packer w/ flexible repeat bit widths", "module": "./index.js", "main": "./lib/index.js", @@ -39,8 +39,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/bitstream": "^1.1.13", - "@thi.ng/errors": "^1.2.10", + "@thi.ng/bitstream": "^1.1.14", + "@thi.ng/errors": "^1.2.11", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md index 533f3c376e..e5443ce007 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.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@2.0.17...@thi.ng/router@2.0.18) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/router + + + + + ## [2.0.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@2.0.16...@thi.ng/router@2.0.17) (2020-04-11) **Note:** Version bump only for package @thi.ng/router diff --git a/packages/router/package.json b/packages/router/package.json index 1b75a8ca9a..2dc4d6ec10 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/router", - "version": "2.0.17", + "version": "2.0.18", "description": "Generic router for browser & non-browser based applications", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/errors": "^1.2.10", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/errors": "^1.2.11", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream-csp/CHANGELOG.md b/packages/rstream-csp/CHANGELOG.md index 5e4b85f4ac..80c64a1c27 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.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.13...@thi.ng/rstream-csp@2.0.14) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/rstream-csp + + + + + ## [2.0.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.12...@thi.ng/rstream-csp@2.0.13) (2020-04-20) **Note:** Version bump only for package @thi.ng/rstream-csp diff --git a/packages/rstream-csp/package.json b/packages/rstream-csp/package.json index d0ba6e5345..55d57cb8e7 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.13", + "version": "2.0.14", "description": "@thi.ng/csp bridge module for @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/csp": "^1.1.19", - "@thi.ng/rstream": "^4.0.5", + "@thi.ng/csp": "^1.1.20", + "@thi.ng/rstream": "^4.0.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream-dot/CHANGELOG.md b/packages/rstream-dot/CHANGELOG.md index 8e97e23d3a..d6e75ee5ca 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.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.20...@thi.ng/rstream-dot@1.1.21) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/rstream-dot + + + + + ## [1.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.19...@thi.ng/rstream-dot@1.1.20) (2020-04-20) **Note:** Version bump only for package @thi.ng/rstream-dot diff --git a/packages/rstream-dot/package.json b/packages/rstream-dot/package.json index 32c0a499c9..78adaf7dc5 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.20", + "version": "1.1.21", "description": "Graphviz DOT conversion of @thi.ng/rstream dataflow graph topologies", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/rstream": "^4.0.5", + "@thi.ng/rstream": "^4.0.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream-gestures/CHANGELOG.md b/packages/rstream-gestures/CHANGELOG.md index c7055872ca..76c5070e6e 100644 --- a/packages/rstream-gestures/CHANGELOG.md +++ b/packages/rstream-gestures/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.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.12...@thi.ng/rstream-gestures@2.0.13) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/rstream-gestures + + + + + ## [2.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.11...@thi.ng/rstream-gestures@2.0.12) (2020-04-20) **Note:** Version bump only for package @thi.ng/rstream-gestures diff --git a/packages/rstream-gestures/package.json b/packages/rstream-gestures/package.json index 9f7151f62d..6e4c280555 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.12", + "version": "2.0.13", "description": "Unified mouse, mouse wheel & multi-touch event stream abstraction", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/math": "^1.7.6", - "@thi.ng/rstream": "^4.0.5", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/math": "^1.7.7", + "@thi.ng/rstream": "^4.0.6", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream-graph/CHANGELOG.md b/packages/rstream-graph/CHANGELOG.md index f57ed5a4d2..891b7733c4 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.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.13...@thi.ng/rstream-graph@3.2.14) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/rstream-graph + + + + + ## [3.2.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.12...@thi.ng/rstream-graph@3.2.13) (2020-04-20) **Note:** Version bump only for package @thi.ng/rstream-graph diff --git a/packages/rstream-graph/package.json b/packages/rstream-graph/package.json index f91a9081a6..c4aeed2f49 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.13", + "version": "3.2.14", "description": "Declarative dataflow graph construction for @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -38,13 +38,13 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/paths": "^4.0.2", - "@thi.ng/resolve-map": "^4.1.19", - "@thi.ng/rstream": "^4.0.5", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/paths": "^4.0.3", + "@thi.ng/resolve-map": "^4.1.20", + "@thi.ng/rstream": "^4.0.6", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream-log-file/CHANGELOG.md b/packages/rstream-log-file/CHANGELOG.md index 3e45a19e5c..2ac357058c 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.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.35...@thi.ng/rstream-log-file@0.1.36) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/rstream-log-file + + + + + ## [0.1.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.34...@thi.ng/rstream-log-file@0.1.35) (2020-04-20) **Note:** Version bump only for package @thi.ng/rstream-log-file diff --git a/packages/rstream-log-file/package.json b/packages/rstream-log-file/package.json index 4c1b2c759b..030e3adb9c 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.35", + "version": "0.1.36", "description": "File output handler for structured, multilevel & hierarchical loggers based on @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/rstream": "^4.0.5", + "@thi.ng/rstream": "^4.0.6", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream-log/CHANGELOG.md b/packages/rstream-log/CHANGELOG.md index 225bed0f43..be443b944c 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.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.20...@thi.ng/rstream-log@3.1.21) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/rstream-log + + + + + ## [3.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.19...@thi.ng/rstream-log@3.1.20) (2020-04-20) **Note:** Version bump only for package @thi.ng/rstream-log diff --git a/packages/rstream-log/package.json b/packages/rstream-log/package.json index 825e8485aa..2a0e6ddcce 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.20", + "version": "3.1.21", "description": "Structured, multilevel & hierarchical loggers based on @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/rstream": "^4.0.5", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/rstream": "^4.0.6", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream-query/CHANGELOG.md b/packages/rstream-query/CHANGELOG.md index 4bedf70afd..be9bfcaaf8 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.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.20...@thi.ng/rstream-query@1.1.21) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/rstream-query + + + + + ## [1.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.19...@thi.ng/rstream-query@1.1.20) (2020-04-20) **Note:** Version bump only for package @thi.ng/rstream-query diff --git a/packages/rstream-query/package.json b/packages/rstream-query/package.json index 2acf6f45ac..bde3550dc2 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.20", + "version": "1.1.21", "description": "@thi.ng/rstream based triple store & reactive query engine", "module": "./index.js", "main": "./lib/index.js", @@ -38,15 +38,15 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/associative": "^4.0.4", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/math": "^1.7.6", - "@thi.ng/rstream": "^4.0.5", - "@thi.ng/rstream-dot": "^1.1.20", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/associative": "^4.0.5", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/math": "^1.7.7", + "@thi.ng/rstream": "^4.0.6", + "@thi.ng/rstream-dot": "^1.1.21", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/rstream/CHANGELOG.md b/packages/rstream/CHANGELOG.md index 2615fd6a54..06fc983fc4 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. +## [4.0.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@4.0.5...@thi.ng/rstream@4.0.6) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/rstream + + + + + ## [4.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@4.0.4...@thi.ng/rstream@4.0.5) (2020-04-20) **Note:** Version bump only for package @thi.ng/rstream diff --git a/packages/rstream/package.json b/packages/rstream/package.json index c5c8aa3fa7..7475c87323 100644 --- a/packages/rstream/package.json +++ b/packages/rstream/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream", - "version": "4.0.5", + "version": "4.0.6", "description": "Reactive streams & subscription primitives for constructing dataflow graphs / pipelines", "module": "./index.js", "main": "./lib/index.js", @@ -38,13 +38,13 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/associative": "^4.0.4", - "@thi.ng/atom": "^4.1.3", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/paths": "^4.0.2", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/associative": "^4.0.5", + "@thi.ng/atom": "^4.1.4", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/paths": "^4.0.3", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/sax/CHANGELOG.md b/packages/sax/CHANGELOG.md index 61156c0f08..b7cd3fcb45 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.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.19...@thi.ng/sax@1.1.20) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/sax + + + + + ## [1.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.18...@thi.ng/sax@1.1.19) (2020-04-20) **Note:** Version bump only for package @thi.ng/sax diff --git a/packages/sax/package.json b/packages/sax/package.json index 855c36a3a7..f202e9fdf8 100644 --- a/packages/sax/package.json +++ b/packages/sax/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sax", - "version": "1.1.19", + "version": "1.1.20", "description": "Transducer-based, SAX-like, non-validating, speedy & tiny XML parser", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/transducers-fsm": "^1.1.19", + "@thi.ng/api": "^6.10.2", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/transducers-fsm": "^1.1.20", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/scenegraph/CHANGELOG.md b/packages/scenegraph/CHANGELOG.md index 0c093b8e38..624e485178 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.1.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.1.14...@thi.ng/scenegraph@0.1.15) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/scenegraph + + + + + ## [0.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.1.13...@thi.ng/scenegraph@0.1.14) (2020-04-23) **Note:** Version bump only for package @thi.ng/scenegraph diff --git a/packages/scenegraph/package.json b/packages/scenegraph/package.json index c059901f06..1dead0d899 100644 --- a/packages/scenegraph/package.json +++ b/packages/scenegraph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/scenegraph", - "version": "0.1.14", + "version": "0.1.15", "description": "Extensible 2D/3D scene graph with @thi.ng/hdom-canvas support", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/matrices": "^0.6.11", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/matrices": "^0.6.12", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/seq/CHANGELOG.md b/packages/seq/CHANGELOG.md index 587a9f2359..f4c23ba508 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.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.2.9...@thi.ng/seq@0.2.10) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/seq + + + + + ## [0.2.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.2.8...@thi.ng/seq@0.2.9) (2020-04-11) **Note:** Version bump only for package @thi.ng/seq diff --git a/packages/seq/package.json b/packages/seq/package.json index 0bbc3573e8..e0fae31b81 100644 --- a/packages/seq/package.json +++ b/packages/seq/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/seq", - "version": "0.2.9", + "version": "0.2.10", "description": "Various implementations of the @thi.ng/api `ISeq` interface / sequence abstraction", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/sexpr/CHANGELOG.md b/packages/sexpr/CHANGELOG.md index 408ed1d0a9..20c90d7ab5 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.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.2.12...@thi.ng/sexpr@0.2.13) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/sexpr + + + + + ## [0.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.2.11...@thi.ng/sexpr@0.2.12) (2020-04-11) **Note:** Version bump only for package @thi.ng/sexpr diff --git a/packages/sexpr/package.json b/packages/sexpr/package.json index bfa19998c8..e77946d9fa 100644 --- a/packages/sexpr/package.json +++ b/packages/sexpr/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sexpr", - "version": "0.2.12", + "version": "0.2.13", "description": "Extensible S-Expression parser & runtime infrastructure", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/defmulti": "^1.2.11", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/defmulti": "^1.2.12", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/shader-ast-glsl/CHANGELOG.md b/packages/shader-ast-glsl/CHANGELOG.md index 82001a5cd0..c0197874b9 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.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.1.22...@thi.ng/shader-ast-glsl@0.1.23) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/shader-ast-glsl + + + + + ## [0.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.1.21...@thi.ng/shader-ast-glsl@0.1.22) (2020-04-20) **Note:** Version bump only for package @thi.ng/shader-ast-glsl diff --git a/packages/shader-ast-glsl/package.json b/packages/shader-ast-glsl/package.json index 41b2e9fd76..6984f0e3d6 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.1.22", + "version": "0.1.23", "description": "Customizable GLSL code generator for @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/shader-ast": "^0.3.16", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/shader-ast": "^0.3.17", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/shader-ast-js/CHANGELOG.md b/packages/shader-ast-js/CHANGELOG.md index f6607ef120..42ddbb3330 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.4.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.4.17...@thi.ng/shader-ast-js@0.4.18) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/shader-ast-js + + + + + ## [0.4.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.4.16...@thi.ng/shader-ast-js@0.4.17) (2020-04-23) **Note:** Version bump only for package @thi.ng/shader-ast-js diff --git a/packages/shader-ast-js/package.json b/packages/shader-ast-js/package.json index 04a75b74ce..2651da9c34 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.4.17", + "version": "0.4.18", "description": "Customizable JS code generator, compiler & runtime for @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -38,14 +38,14 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/math": "^1.7.6", - "@thi.ng/matrices": "^0.6.11", - "@thi.ng/pixel": "^0.1.16", - "@thi.ng/shader-ast": "^0.3.16", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/math": "^1.7.7", + "@thi.ng/matrices": "^0.6.12", + "@thi.ng/pixel": "^0.1.17", + "@thi.ng/shader-ast": "^0.3.17", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/shader-ast-stdlib/CHANGELOG.md b/packages/shader-ast-stdlib/CHANGELOG.md index 9d1d0a25cf..1b110e9e52 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.3.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.3.15...@thi.ng/shader-ast-stdlib@0.3.16) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/shader-ast-stdlib + + + + + ## [0.3.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.3.14...@thi.ng/shader-ast-stdlib@0.3.15) (2020-04-20) **Note:** Version bump only for package @thi.ng/shader-ast-stdlib diff --git a/packages/shader-ast-stdlib/package.json b/packages/shader-ast-stdlib/package.json index a445f8939d..c81d375984 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.3.15", + "version": "0.3.16", "description": "Function collection for modular GPGPU / shader programming with @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -38,7 +38,7 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/shader-ast": "^0.3.16", + "@thi.ng/shader-ast": "^0.3.17", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/shader-ast/CHANGELOG.md b/packages/shader-ast/CHANGELOG.md index 274caa6965..efa5ba9e0b 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.3.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.3.16...@thi.ng/shader-ast@0.3.17) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/shader-ast + + + + + ## [0.3.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.3.15...@thi.ng/shader-ast@0.3.16) (2020-04-20) **Note:** Version bump only for package @thi.ng/shader-ast diff --git a/packages/shader-ast/package.json b/packages/shader-ast/package.json index 69c45ce87e..cf06455df5 100644 --- a/packages/shader-ast/package.json +++ b/packages/shader-ast/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/shader-ast", - "version": "0.3.16", + "version": "0.3.17", "description": "DSL to define shader code in TypeScript and cross-compile to GLSL, JS and other targets", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/defmulti": "^1.2.11", - "@thi.ng/dgraph": "^1.2.4", - "@thi.ng/errors": "^1.2.10", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/defmulti": "^1.2.12", + "@thi.ng/dgraph": "^1.2.5", + "@thi.ng/errors": "^1.2.11", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/simd/CHANGELOG.md b/packages/simd/CHANGELOG.md index 67335a2d61..04c7410712 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.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.1.13...@thi.ng/simd@0.1.14) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/simd + + + + + ## [0.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.1.12...@thi.ng/simd@0.1.13) (2020-04-20) **Note:** Version bump only for package @thi.ng/simd diff --git a/packages/simd/package.json b/packages/simd/package.json index 4ecf667ff6..932d495c23 100644 --- a/packages/simd/package.json +++ b/packages/simd/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/simd", - "version": "0.1.13", + "version": "0.1.14", "description": "WASM based SIMD vector operations for batch processing", "module": "./index.js", "main": "./lib/index.js", @@ -41,9 +41,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/checks": "^2.6.2", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/transducers-binary": "^0.5.9", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/transducers-binary": "^0.5.10", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/soa/CHANGELOG.md b/packages/soa/CHANGELOG.md index 75cf7f28e2..47e75dbd43 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.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.15...@thi.ng/soa@0.1.16) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/soa + + + + + ## [0.1.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.14...@thi.ng/soa@0.1.15) (2020-04-23) **Note:** Version bump only for package @thi.ng/soa diff --git a/packages/soa/package.json b/packages/soa/package.json index 6bb0632888..7351d9af8b 100644 --- a/packages/soa/package.json +++ b/packages/soa/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/soa", - "version": "0.1.15", + "version": "0.1.16", "description": "SOA & AOS memory mapped structured views with optional & extensible serialization", "module": "./index.js", "main": "./lib/index.js", @@ -29,7 +29,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.7.8", - "@thi.ng/equiv": "^1.0.19", + "@thi.ng/equiv": "^1.0.20", "@types/mocha": "^7.0.1", "@types/node": "^13.7.4", "mocha": "^7.1.1", @@ -39,10 +39,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/binary": "^2.0.3", - "@thi.ng/transducers-binary": "^0.5.9", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/binary": "^2.0.4", + "@thi.ng/transducers-binary": "^0.5.10", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/sparse/CHANGELOG.md b/packages/sparse/CHANGELOG.md index 0361cb14a7..dbdc759afb 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.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.35...@thi.ng/sparse@0.1.36) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/sparse + + + + + ## [0.1.35](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.34...@thi.ng/sparse@0.1.35) (2020-04-20) **Note:** Version bump only for package @thi.ng/sparse diff --git a/packages/sparse/package.json b/packages/sparse/package.json index 32669d55fb..2108ba698a 100644 --- a/packages/sparse/package.json +++ b/packages/sparse/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sparse", - "version": "0.1.35", + "version": "0.1.36", "description": "Sparse vector & matrix implementations", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/strings/CHANGELOG.md b/packages/strings/CHANGELOG.md index 13a5d3a8c0..8e4e0fe28c 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.8.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.8.4...@thi.ng/strings@1.8.5) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/strings + + + + + ## [1.8.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.8.3...@thi.ng/strings@1.8.4) (2020-04-20) **Note:** Version bump only for package @thi.ng/strings diff --git a/packages/strings/package.json b/packages/strings/package.json index b5f909de07..2522df64cf 100644 --- a/packages/strings/package.json +++ b/packages/strings/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/strings", - "version": "1.8.4", + "version": "1.8.5", "description": "Various string formatting & utility functions", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/memoize": "^2.0.7", + "@thi.ng/api": "^6.10.2", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/memoize": "^2.0.8", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/system/CHANGELOG.md b/packages/system/CHANGELOG.md index dd9b640e12..1d1907e3a4 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.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.4...@thi.ng/system@0.2.5) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/system + + + + + ## [0.2.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.3...@thi.ng/system@0.2.4) (2020-04-20) **Note:** Version bump only for package @thi.ng/system diff --git a/packages/system/package.json b/packages/system/package.json index 0bcf80c8a1..d1330a9c39 100644 --- a/packages/system/package.json +++ b/packages/system/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/system", - "version": "0.2.4", + "version": "0.2.5", "description": "Minimal DI / life cycle container for stateful app components", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/dgraph": "^1.2.4", + "@thi.ng/api": "^6.10.2", + "@thi.ng/dgraph": "^1.2.5", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/text-canvas/CHANGELOG.md b/packages/text-canvas/CHANGELOG.md index c79a2897a1..d63abe1a9b 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.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.8...@thi.ng/text-canvas@0.2.9) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/text-canvas + + + + + ## [0.2.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.7...@thi.ng/text-canvas@0.2.8) (2020-04-23) **Note:** Version bump only for package @thi.ng/text-canvas diff --git a/packages/text-canvas/package.json b/packages/text-canvas/package.json index b531709486..d5731a10e7 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.8", + "version": "0.2.9", "description": "Text based canvas, drawing, tables with arbitrary formatting (incl. ANSI/HTML)", "module": "./index.js", "main": "./lib/index.js", @@ -39,12 +39,12 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/arrays": "^0.6.3", - "@thi.ng/geom-clip-line": "^1.0.11", - "@thi.ng/math": "^1.7.6", - "@thi.ng/memoize": "^2.0.7", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/arrays": "^0.6.4", + "@thi.ng/geom-clip-line": "^1.0.12", + "@thi.ng/math": "^1.7.7", + "@thi.ng/memoize": "^2.0.8", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/transducers-binary/CHANGELOG.md b/packages/transducers-binary/CHANGELOG.md index b1f037b611..de09a23bba 100644 --- a/packages/transducers-binary/CHANGELOG.md +++ b/packages/transducers-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. +## [0.5.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.9...@thi.ng/transducers-binary@0.5.10) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/transducers-binary + + + + + ## [0.5.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.8...@thi.ng/transducers-binary@0.5.9) (2020-04-20) **Note:** Version bump only for package @thi.ng/transducers-binary diff --git a/packages/transducers-binary/package.json b/packages/transducers-binary/package.json index c481901b07..60078d78b5 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.9", + "version": "0.5.10", "description": "Binary data related transducers & reducers", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/compose": "^1.4.3", - "@thi.ng/random": "^1.4.5", - "@thi.ng/strings": "^1.8.4", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/compose": "^1.4.4", + "@thi.ng/random": "^1.4.6", + "@thi.ng/strings": "^1.8.5", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/transducers-fsm/CHANGELOG.md b/packages/transducers-fsm/CHANGELOG.md index 79b800fe85..1390a04c99 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.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.19...@thi.ng/transducers-fsm@1.1.20) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/transducers-fsm + + + + + ## [1.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.18...@thi.ng/transducers-fsm@1.1.19) (2020-04-20) **Note:** Version bump only for package @thi.ng/transducers-fsm diff --git a/packages/transducers-fsm/package.json b/packages/transducers-fsm/package.json index fe8c49b7ff..6a6d1bbdc0 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.19", + "version": "1.1.20", "description": "Transducer-based Finite State Machine transformer", "module": "./index.js", "main": "./lib/index.js", @@ -38,8 +38,8 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/transducers-hdom/CHANGELOG.md b/packages/transducers-hdom/CHANGELOG.md index 613e9c4670..24888fbd8e 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.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.46...@thi.ng/transducers-hdom@2.0.47) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/transducers-hdom + + + + + ## [2.0.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.45...@thi.ng/transducers-hdom@2.0.46) (2020-04-20) **Note:** Version bump only for package @thi.ng/transducers-hdom diff --git a/packages/transducers-hdom/package.json b/packages/transducers-hdom/package.json index 55ce330025..dddbb6bc70 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.46", + "version": "2.0.47", "description": "Transducer based UI updater for @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/hdom": "^8.0.20", - "@thi.ng/hiccup": "^3.2.18", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/hdom": "^8.0.21", + "@thi.ng/hiccup": "^3.2.19", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/transducers-patch/CHANGELOG.md b/packages/transducers-patch/CHANGELOG.md index 0e6bb28b0c..eb0c843ad8 100644 --- a/packages/transducers-patch/CHANGELOG.md +++ b/packages/transducers-patch/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.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.9...@thi.ng/transducers-patch@0.1.10) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/transducers-patch + + + + + ## [0.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.8...@thi.ng/transducers-patch@0.1.9) (2020-04-20) **Note:** Version bump only for package @thi.ng/transducers-patch diff --git a/packages/transducers-patch/package.json b/packages/transducers-patch/package.json index bafc04f2c6..41b5fdccad 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.9", + "version": "0.1.10", "description": "Reducers for patch-based, immutable-by-default array & object editing", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/paths": "^4.0.2", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/paths": "^4.0.3", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/transducers-stats/CHANGELOG.md b/packages/transducers-stats/CHANGELOG.md index 6b19ebcc73..aa30439c88 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.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.19...@thi.ng/transducers-stats@1.1.20) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/transducers-stats + + + + + ## [1.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.18...@thi.ng/transducers-stats@1.1.19) (2020-04-20) **Note:** Version bump only for package @thi.ng/transducers-stats diff --git a/packages/transducers-stats/package.json b/packages/transducers-stats/package.json index 18fe56f687..0d11330ffc 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.19", + "version": "1.1.20", "description": "Transducers for statistical / technical analysis", "module": "./index.js", "main": "./lib/index.js", @@ -38,10 +38,10 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/checks": "^2.6.2", - "@thi.ng/dcons": "^2.2.12", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/dcons": "^2.2.13", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/transducers/CHANGELOG.md b/packages/transducers/CHANGELOG.md index a58e0a0104..3d20a1ad3b 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. +## [6.4.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@6.4.6...@thi.ng/transducers@6.4.7) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/transducers + + + + + ## [6.4.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@6.4.5...@thi.ng/transducers@6.4.6) (2020-04-20) **Note:** Version bump only for package @thi.ng/transducers diff --git a/packages/transducers/package.json b/packages/transducers/package.json index a3481e8100..bb3d4ef5ed 100644 --- a/packages/transducers/package.json +++ b/packages/transducers/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers", - "version": "6.4.6", + "version": "6.4.7", "description": "Lightweight transducer implementations for ES6 / TypeScript", "module": "./index.js", "main": "./lib/index.js", @@ -38,16 +38,16 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/arrays": "^0.6.3", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/compare": "^1.3.2", - "@thi.ng/compose": "^1.4.3", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/math": "^1.7.6", - "@thi.ng/random": "^1.4.5", - "@thi.ng/strings": "^1.8.4", + "@thi.ng/api": "^6.10.2", + "@thi.ng/arrays": "^0.6.4", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/compare": "^1.3.3", + "@thi.ng/compose": "^1.4.4", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/math": "^1.7.7", + "@thi.ng/random": "^1.4.6", + "@thi.ng/strings": "^1.8.5", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/unionstruct/CHANGELOG.md b/packages/unionstruct/CHANGELOG.md index b464c4ea1d..f5cfa89dea 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.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@1.1.12...@thi.ng/unionstruct@1.1.13) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/unionstruct + + + + + ## [1.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@1.1.11...@thi.ng/unionstruct@1.1.12) (2020-04-11) **Note:** Version bump only for package @thi.ng/unionstruct diff --git a/packages/unionstruct/package.json b/packages/unionstruct/package.json index 6ff4586423..44223aca7e 100644 --- a/packages/unionstruct/package.json +++ b/packages/unionstruct/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/unionstruct", - "version": "1.1.12", + "version": "1.1.13", "description": "C-style struct, union and bitfield read/write views of ArrayBuffers", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/vector-pools/CHANGELOG.md b/packages/vector-pools/CHANGELOG.md index ee557db6ca..3918fb0714 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.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.24...@thi.ng/vector-pools@1.0.25) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/vector-pools + + + + + ## [1.0.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.23...@thi.ng/vector-pools@1.0.24) (2020-04-23) **Note:** Version bump only for package @thi.ng/vector-pools diff --git a/packages/vector-pools/package.json b/packages/vector-pools/package.json index 66e170bf5f..52aabef122 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.24", + "version": "1.0.25", "description": "Data structures for managing & working with strided, memory mapped vectors", "module": "./index.js", "main": "./lib/index.js", @@ -38,12 +38,12 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/binary": "^2.0.3", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/malloc": "^4.1.11", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/binary": "^2.0.4", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/malloc": "^4.1.12", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/vectors/CHANGELOG.md b/packages/vectors/CHANGELOG.md index 297edef09e..49c7959b50 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.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.3.1...@thi.ng/vectors@4.3.2) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/vectors + + + + + ## [4.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.3.0...@thi.ng/vectors@4.3.1) (2020-04-23) diff --git a/packages/vectors/package.json b/packages/vectors/package.json index 6f6ae37372..48389d5169 100644 --- a/packages/vectors/package.json +++ b/packages/vectors/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/vectors", - "version": "4.3.1", + "version": "4.3.2", "description": "Optimized 2d/3d/4d and arbitrary length vector operations", "module": "./index.js", "main": "./lib/index.js", @@ -38,15 +38,15 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/binary": "^2.0.3", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/math": "^1.7.6", - "@thi.ng/memoize": "^2.0.7", - "@thi.ng/random": "^1.4.5", - "@thi.ng/transducers": "^6.4.6", + "@thi.ng/api": "^6.10.2", + "@thi.ng/binary": "^2.0.4", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/math": "^1.7.7", + "@thi.ng/memoize": "^2.0.8", + "@thi.ng/random": "^1.4.6", + "@thi.ng/transducers": "^6.4.7", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/webgl-msdf/CHANGELOG.md b/packages/webgl-msdf/CHANGELOG.md index 63268ae8ba..797e1f16ef 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.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.27...@thi.ng/webgl-msdf@0.1.28) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/webgl-msdf + + + + + ## [0.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.26...@thi.ng/webgl-msdf@0.1.27) (2020-04-23) **Note:** Version bump only for package @thi.ng/webgl-msdf diff --git a/packages/webgl-msdf/package.json b/packages/webgl-msdf/package.json index 770f08ef9a..6059913253 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.27", + "version": "0.1.28", "description": "Multi-channel SDF font rendering & basic text layout for WebGL", "module": "./index.js", "main": "./lib/index.js", @@ -38,12 +38,12 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/shader-ast": "^0.3.16", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vector-pools": "^1.0.24", - "@thi.ng/vectors": "^4.3.1", - "@thi.ng/webgl": "^1.0.9", + "@thi.ng/api": "^6.10.2", + "@thi.ng/shader-ast": "^0.3.17", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/vector-pools": "^1.0.25", + "@thi.ng/vectors": "^4.3.2", + "@thi.ng/webgl": "^1.0.10", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/webgl-shadertoy/CHANGELOG.md b/packages/webgl-shadertoy/CHANGELOG.md index f9a28be4d7..2a2af81895 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.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.14...@thi.ng/webgl-shadertoy@0.2.15) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/webgl-shadertoy + + + + + ## [0.2.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.13...@thi.ng/webgl-shadertoy@0.2.14) (2020-04-23) **Note:** Version bump only for package @thi.ng/webgl-shadertoy diff --git a/packages/webgl-shadertoy/package.json b/packages/webgl-shadertoy/package.json index dc86f3fa9a..ed81542870 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.14", + "version": "0.2.15", "description": "Basic WebGL scaffolding for running interactive fragment shaders via @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -38,11 +38,11 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/shader-ast": "^0.3.16", - "@thi.ng/shader-ast-glsl": "^0.1.22", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/webgl": "^1.0.9", + "@thi.ng/api": "^6.10.2", + "@thi.ng/shader-ast": "^0.3.17", + "@thi.ng/shader-ast-glsl": "^0.1.23", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/webgl": "^1.0.10", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/webgl/CHANGELOG.md b/packages/webgl/CHANGELOG.md index a040d00fff..9e322a94d1 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. +## [1.0.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@1.0.9...@thi.ng/webgl@1.0.10) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/webgl + + + + + ## [1.0.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@1.0.8...@thi.ng/webgl@1.0.9) (2020-04-23) **Note:** Version bump only for package @thi.ng/webgl diff --git a/packages/webgl/package.json b/packages/webgl/package.json index e27dc7e6dc..f7cb9f6dc0 100644 --- a/packages/webgl/package.json +++ b/packages/webgl/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/webgl", - "version": "1.0.9", + "version": "1.0.10", "description": "WebGL & GLSL abstraction layer", "module": "./index.js", "main": "./lib/index.js", @@ -38,20 +38,20 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/associative": "^4.0.4", - "@thi.ng/binary": "^2.0.3", - "@thi.ng/checks": "^2.6.2", - "@thi.ng/equiv": "^1.0.19", - "@thi.ng/errors": "^1.2.10", - "@thi.ng/matrices": "^0.6.11", - "@thi.ng/pixel": "^0.1.16", - "@thi.ng/shader-ast": "^0.3.16", - "@thi.ng/shader-ast-glsl": "^0.1.22", - "@thi.ng/shader-ast-stdlib": "^0.3.15", - "@thi.ng/transducers": "^6.4.6", - "@thi.ng/vector-pools": "^1.0.24", - "@thi.ng/vectors": "^4.3.1", + "@thi.ng/api": "^6.10.2", + "@thi.ng/associative": "^4.0.5", + "@thi.ng/binary": "^2.0.4", + "@thi.ng/checks": "^2.6.3", + "@thi.ng/equiv": "^1.0.20", + "@thi.ng/errors": "^1.2.11", + "@thi.ng/matrices": "^0.6.12", + "@thi.ng/pixel": "^0.1.17", + "@thi.ng/shader-ast": "^0.3.17", + "@thi.ng/shader-ast-glsl": "^0.1.23", + "@thi.ng/shader-ast-stdlib": "^0.3.16", + "@thi.ng/transducers": "^6.4.7", + "@thi.ng/vector-pools": "^1.0.25", + "@thi.ng/vectors": "^4.3.2", "tslib": "^1.11.1" }, "files": [ diff --git a/packages/zipper/CHANGELOG.md b/packages/zipper/CHANGELOG.md index eb57615554..372a4f252c 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.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/zipper@0.1.11...@thi.ng/zipper@0.1.12) (2020-04-27) + +**Note:** Version bump only for package @thi.ng/zipper + + + + + ## [0.1.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/zipper@0.1.10...@thi.ng/zipper@0.1.11) (2020-04-11) **Note:** Version bump only for package @thi.ng/zipper diff --git a/packages/zipper/package.json b/packages/zipper/package.json index fba2ae88e5..422715184f 100644 --- a/packages/zipper/package.json +++ b/packages/zipper/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/zipper", - "version": "0.1.11", + "version": "0.1.12", "description": "Functional tree editing, manipulation & navigation", "module": "./index.js", "main": "./lib/index.js", @@ -38,9 +38,9 @@ "typescript": "^3.8.3" }, "dependencies": { - "@thi.ng/api": "^6.10.1", - "@thi.ng/arrays": "^0.6.3", - "@thi.ng/checks": "^2.6.2", + "@thi.ng/api": "^6.10.2", + "@thi.ng/arrays": "^0.6.4", + "@thi.ng/checks": "^2.6.3", "tslib": "^1.11.1" }, "files": [