From 0e4662d1c1ee325c8e6ca163abe9c38515e8e0f6 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 18 Jun 2018 04:07:22 +0100 Subject: [PATCH 01/21] fix(sax): correct docs in readme --- packages/sax/README.md | 72 +++++++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 32 deletions(-) diff --git a/packages/sax/README.md b/packages/sax/README.md index bc2349411a..41954c4a57 100644 --- a/packages/sax/README.md +++ b/packages/sax/README.md @@ -43,42 +43,50 @@ src=` doc = [...tx.iterator(sax.parse(), src)] -// [ { id: 'proc', value: { tag: 'xml', attribs: { version: '1.0', encoding: 'utf-8' } } }, -// { id: 'doctype', value: 'foo bar' }, -// { id: 'elem', value: { tag: 'a', attribs: {} } }, -// { id: 'body', value: { tag: 'a', body: '\n ' } }, -// { id: 'elem', value: { tag: 'b1', attribs: {} } }, -// { id: 'body', value: { tag: 'b1', body: '\n ' } }, -// { id: 'elem', value: { tag: 'c', attribs: { x: '23', y: '42' } } }, -// { id: 'body', value: { tag: 'c', body: 'ccc\n ' } }, -// { id: 'elem', value: { tag: 'd', attribs: {} } }, -// { id: 'body', value: { tag: 'd', body: 'dd' } }, -// { id: 'end', -// value: { tag: 'd', attribs: {}, children: [], body: 'dd' } }, -// { id: 'end', -// value: -// { tag: 'c', -// attribs: { x: '23', y: '42' }, -// children: [ { tag: 'd', attribs: {}, children: [], body: 'dd' } ], -// body: 'ccc\n ' } }, -// { id: 'end', -// value: -// { tag: 'b1', attribs: {}, children: [Array], body: '\n ' } }, -// { id: 'elem', value: { tag: 'b2', attribs: [Object] } }, -// { id: 'end', -// value: { tag: 'a', attribs: {}, children: [Array], body: '\n ' } } ] +// [ { type: 0, +// tag: 'xml', +// attribs: { version: '1.0', encoding: 'utf-8' } }, +// { type: 1, body: 'foo bar' }, +// { type: 3, tag: 'a', attribs: {} }, +// { type: 5, tag: 'a', body: '\n ' }, +// { type: 3, tag: 'b1', attribs: {} }, +// { type: 5, tag: 'b1', body: '\n ' }, +// { type: 3, tag: 'c', attribs: { x: '23', y: '42' } }, +// { type: 5, tag: 'c', body: 'ccc\n ' }, +// { type: 3, tag: 'd', attribs: {} }, +// { type: 5, tag: 'd', body: 'dd' }, +// { type: 4, tag: 'd', attribs: {}, children: [], body: 'dd' }, +// { type: 4, +// tag: 'c', +// attribs: { x: '23', y: '42' }, +// children: [ { tag: 'd', attribs: {}, children: [], body: 'dd' } ], +// body: 'ccc\n ' }, +// { type: 4, +// tag: 'b1', +// attribs: {}, +// children: [ [Object] ], +// body: '\n ' }, +// { type: 4, tag: 'b2', attribs: { foo: 'bar' } }, +// { type: 4, +// tag: 'a', +// attribs: {}, +// children: [ [Object], [Object] ], +// body: '\n ' } ] ``` ## Emitted result type IDs -| ID | Description | -|-----------|-----------------------------------------------| -| `body` | Element text body | -| `doctype` | Doctype declaration | -| `elem` | Element start incl. attributes | -| `end` | Element end incl. attributes, body & children | -| `proc` | Processing instruction incl. attribs | -| `error` | Parse error incl. description | +The `type` key in each emitted result object is a TypeScript enum with the following values: + +| ID | Enum | Description | +|----|-------------------|-----------------------------------------------| +| 0 | `Type.PROC` | Processing instruction incl. attribs | +| 1 | `Type.DOCTYPE` | Doctype declaration body | +| 2 | `Type.COMMENT` | Comment body | +| 3 | `Type.ELEM_START` | Element start incl. attributes | +| 4 | `Type.ELEM_END` | Element end incl. attributes, body & children | +| 5 | `Type.ELEM_BODY` | Element text body | +| 6 | `Type.ERROR` | Parse error description | ## Authors From cc11ade578413a8a3e7d3a6174e404185ccb710b Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 18 Jun 2018 04:08:01 +0100 Subject: [PATCH 02/21] Publish - @thi.ng/sax@0.1.1 --- packages/sax/CHANGELOG.md | 11 +++++++++++ packages/sax/package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/sax/CHANGELOG.md b/packages/sax/CHANGELOG.md index 15657bc197..5820404dcb 100644 --- a/packages/sax/CHANGELOG.md +++ b/packages/sax/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.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@0.1.0...@thi.ng/sax@0.1.1) (2018-06-18) + + +### Bug Fixes + +* **sax:** correct docs in readme ([0e4662d](https://github.com/thi-ng/umbrella/commit/0e4662d)) + + + + # 0.1.0 (2018-06-18) diff --git a/packages/sax/package.json b/packages/sax/package.json index fb7f176a27..817f937fb0 100644 --- a/packages/sax/package.json +++ b/packages/sax/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sax", - "version": "0.1.0", + "version": "0.1.1", "description": "Transducer-based, SAX-like, non-validating, speedy & tiny XML parser", "main": "./index.js", "typings": "./index.d.ts", From 30811ce5ba3909b4c769df066d89d16587488b60 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 18 Jun 2018 14:24:54 +0100 Subject: [PATCH 03/21] docs(transducers-fsm): update package keywords --- packages/transducers-fsm/package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/transducers-fsm/package.json b/packages/transducers-fsm/package.json index 6d0a54cb75..1a50e53ace 100644 --- a/packages/transducers-fsm/package.json +++ b/packages/transducers-fsm/package.json @@ -29,9 +29,12 @@ }, "keywords": [ "ES6", + "finite state machine", + "FSM", + "transducers", "typescript" ], "publishConfig": { "access": "public" } -} +} \ No newline at end of file From 4e7fca56eccfdb78d782ecc16b64584c2fa9a02f Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 18 Jun 2018 14:26:28 +0100 Subject: [PATCH 04/21] chore: update make-module script --- scripts/make-module | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/make-module b/scripts/make-module index ce9b426676..a4ac63719b 100755 --- a/scripts/make-module +++ b/scripts/make-module @@ -51,7 +51,7 @@ cat << EOF > $MODULE/package.json "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.2" + "@thi.ng/api": "^4.0.3" }, "keywords": [ "ES6", From e824b6bb0fe20eb17b8a81409774b060c3536a7b Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 19 Jun 2018 20:36:56 +0100 Subject: [PATCH 05/21] feat(sax): add support for escape seqs, minor optimizations --- packages/sax/src/index.ts | 98 ++++++++++++++++++++++++++++----------- 1 file changed, 70 insertions(+), 28 deletions(-) diff --git a/packages/sax/src/index.ts b/packages/sax/src/index.ts index 017450f7d0..15c7f961cb 100644 --- a/packages/sax/src/index.ts +++ b/packages/sax/src/index.ts @@ -59,6 +59,8 @@ enum State { DOCTYPE, PROC_DECL, PROC_END, + // H_CHAR, + // U_CHAR, } const ENTITIES = { @@ -71,6 +73,18 @@ const ENTITIES = { const ENTITY_RE = new RegExp(`(${Object.keys(ENTITIES).join("|")})`, "g"); +const ESCAPE_SEQS = { + "n": "\n", + "r": "\r", + "t": "\t", + "v": "\v", + "f": "\f", + "b": "\b", + "\"": "\"", + "'": "'", + "\\": "\\" +}; + export const parse = (opts: Partial = {}): Transducer => fsm.fsm({ states: PARSER, @@ -83,22 +97,32 @@ export const parse = (opts: Partial = {}): Transducer - x == " " || x == "\t" || x == "\n" || x == "\r"; +const isWS = (x: string) => { + const c = x.charCodeAt(0); + return c === 0x20 || + c === 0x09 || + c === 0x0a || + c === 0x0d; +}; -const isTagChar = (x: string) => - (x >= "A" && x <= "Z") || - (x >= "a" && x <= "z") || - (x >= "0" && x <= "9") || - x == "-" || - x == "_" || - x == ":"; +const isTagChar = (x: string) => { + const c = x.charCodeAt(0); + return (c >= 0x41 && c <= 0x5a) || // A-Z + (c >= 0x61 && c <= 0x7a) || // a-z + (c >= 0x30 && c <= 0x39) || // 0-9 + c == 0x2d || // - + c == 0x5f || // _ + c == 0x3a; // : +}; const error = (s: ParseState, body: string) => { s.state = State.ERROR; return { type: Type.ERROR, body }; }; +const illegalEscape = (s: ParseState, ch: string) => + error(s, `illegal escape sequence: \\${ch} @ pos ${s.pos - 1}`); + const unexpected = (s: ParseState, x: string) => error(s, `unexpected char: '${x}' @ pos ${s.pos}`); @@ -150,11 +174,10 @@ const PARSER: fsm.FSMStateMap = { } else if (isWS(ch)) { state.state = State.MAYBE_ATTRIB; } else if (ch === ">") { - const res = { type: Type.ELEM_START, tag: state.tag, attribs: state.attribs }; state.state = State.ELEM_BODY; state.scope.push({ tag: state.tag, attribs: state.attribs, children: [] }); state.body = ""; - return res; + return { type: Type.ELEM_START, tag: state.tag, attribs: state.attribs }; } else if (ch === "/") { state.state = State.ELEM_SINGLE; } else { @@ -167,12 +190,12 @@ const PARSER: fsm.FSMStateMap = { if (isTagChar(ch)) { state.tag += ch; } else if (ch === ">") { - const n = state.scope.length; - if (n > 0 && state.tag === state.scope[n - 1].tag) { - const res = state.scope[n - 1]; - state.scope.pop(); + const scope = state.scope; + const n = scope.length; + if (n > 0 && state.tag === scope[n - 1].tag) { + const res = scope.pop(); if (n > 1) { - state.scope[n - 2].children.push(res); + scope[n - 2].children.push(res); } state.state = State.WAIT; return { type: Type.ELEM_END, ...res }; @@ -199,19 +222,29 @@ const PARSER: fsm.FSMStateMap = { [State.ELEM_BODY]: (state, ch) => { state.pos++; + let b = state.body; if (ch === "<") { let res; - if (state.body.length > 0) { + if (b.length > 0) { if (state.opts.entities) { - state.body = replaceEntities(state.body); + b = replaceEntities(b); } - state.scope[state.scope.length - 1].body = state.body; - res = { type: Type.ELEM_BODY, tag: state.tag, body: state.body }; + state.scope[state.scope.length - 1].body = b; + res = { type: Type.ELEM_BODY, tag: state.tag, body: b }; } state.state = State.MAYBE_ELEM; state.tag = ""; return res; } else { + if (b.charAt(b.length - 1) === "\\") { + const e = ESCAPE_SEQS[ch]; + if (e !== undefined) { + state.body = b.substr(0, b.length - 1) + e; + return; + } else { + return illegalEscape(state, ch); + } + } state.body += ch; } }, @@ -231,11 +264,10 @@ const PARSER: fsm.FSMStateMap = { } } else { if (ch === ">") { - const res = { type: Type.ELEM_START, tag: state.tag, attribs: state.attribs }; state.state = State.ELEM_BODY; state.scope.push({ tag: state.tag, attribs: state.attribs, children: [] }); state.body = ""; - return res; + return { type: Type.ELEM_START, tag: state.tag, attribs: state.attribs }; } else if (ch === "/") { state.state = State.ELEM_SINGLE; } else if (!isWS(ch)) { @@ -268,15 +300,25 @@ const PARSER: fsm.FSMStateMap = { [State.ATTRIB_VALUE]: (state, ch) => { state.pos++; - if (ch === state.quote) { - if (state.opts.entities) { - state.val = replaceEntities(state.val); + let v = state.val; + if (v.charAt(v.length - 1) == "\\") { + const e = ESCAPE_SEQS[ch]; + if (e !== undefined) { + state.val = v.substr(0, v.length - 1) + e; + return; + } else { + return illegalEscape(state, ch); } - state.attribs[state.name] = state.val; - state.state = State.MAYBE_ATTRIB; - } else { + } + if (ch !== state.quote) { state.val += ch; + return; + } + if (state.opts.entities) { + v = replaceEntities(v); } + state.attribs[state.name] = v; + state.state = State.MAYBE_ATTRIB; }, [State.MAYBE_INSTRUCTION]: (state, ch) => { From bc261e578784439997b56c9dffcff7a0812c8a9f Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 19 Jun 2018 21:35:01 +0100 Subject: [PATCH 06/21] feat(transducers): add matchFirst()/matchLast() xforms, update readme --- packages/transducers/README.md | 8 +++++++- packages/transducers/src/index.ts | 2 ++ packages/transducers/src/xform/match-first.ts | 20 +++++++++++++++++++ packages/transducers/src/xform/match-last.ts | 19 ++++++++++++++++++ 4 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 packages/transducers/src/xform/match-first.ts create mode 100644 packages/transducers/src/xform/match-last.ts diff --git a/packages/transducers/README.md b/packages/transducers/README.md index 7e8cadbff0..7bca74279f 100644 --- a/packages/transducers/README.md +++ b/packages/transducers/README.md @@ -8,7 +8,7 @@ This project is part of the ## About Lightweight transducer and supporting generators / iterator -implementations for ES6 / TypeScript (~8.4KB gzipped, full lib). +implementations for ES6 / TypeScript (~8.5KB gzipped, full lib). ## TOC @@ -38,6 +38,8 @@ highly useful operators have been added. See full list below. - [@thi.ng/csp](https://github.com/thi-ng/umbrella/tree/master/packages/csp) - [@thi.ng/rstream](https://github.com/thi-ng/umbrella/tree/master/packages/rstream) +- [@thi.ng/rstream-graph](https://github.com/thi-ng/umbrella/tree/master/packages/rstream-graph) +- [@thi.ng/rstream-log](https://github.com/thi-ng/umbrella/tree/master/packages/rstream-log) - [@thi.ng/sax](https://github.com/thi-ng/umbrella/tree/master/packages/sax) - [@thi.ng/transducers-fsm](https://github.com/thi-ng/umbrella/tree/master/packages/transducers-fsm) @@ -675,6 +677,10 @@ itself. Returns nothing. #### `mapVals(fn: (v: A) => B, copy = true): Transducer, IObjectOf>` +#### `matchFirst(pred: Predicate): Transducer` + +#### `matchLast(pred: Predicate): Transducer` + #### `movingAverage(n: number): Transducer` #### `movingMedian(n: number, key?: ((x: A) => B), cmp?: Comparator): Transducer` diff --git a/packages/transducers/src/index.ts b/packages/transducers/src/index.ts index ec66127ecc..f6682ae689 100644 --- a/packages/transducers/src/index.ts +++ b/packages/transducers/src/index.ts @@ -59,6 +59,8 @@ export * from "./xform/map-nth"; export * from "./xform/map-vals"; export * from "./xform/map"; export * from "./xform/mapcat"; +export * from "./xform/match-first"; +export * from "./xform/match-last"; export * from "./xform/moving-average"; export * from "./xform/moving-median"; export * from "./xform/multiplex"; diff --git a/packages/transducers/src/xform/match-first.ts b/packages/transducers/src/xform/match-first.ts new file mode 100644 index 0000000000..d12e256640 --- /dev/null +++ b/packages/transducers/src/xform/match-first.ts @@ -0,0 +1,20 @@ +import { Predicate } from "@thi.ng/api"; + +import { Transducer } from "../api"; +import { comp } from "../func/comp"; +import { filter } from "./filter"; +import { take } from "./take"; + +/** + * Transducer composition / syntax sugar for: + * + * comp(filter(pred), take(1)) + * + * Yields none or only the first value which passed the predicate check + * and then causes early termination. + * + * @param pred + */ +export function matchFirst(pred: Predicate): Transducer { + return comp(filter(pred), take(1)); +} diff --git a/packages/transducers/src/xform/match-last.ts b/packages/transducers/src/xform/match-last.ts new file mode 100644 index 0000000000..d6c6ad06ff --- /dev/null +++ b/packages/transducers/src/xform/match-last.ts @@ -0,0 +1,19 @@ +import { Predicate } from "@thi.ng/api"; + +import { Transducer } from "../api"; +import { comp } from "../func/comp"; +import { filter } from "./filter"; +import { takeLast } from "./take-last"; + +/** + * Transducer composition / syntax sugar for: + * + * comp(filter(pred), takeLast(1)) + * + * Yields none or only the last value which passed the predicate check. + * + * @param pred + */ +export function matchLast(pred: Predicate): Transducer { + return comp(filter(pred), takeLast(1)); +} From bbd3b4ba38e6fc634506236e3935c01b78a03838 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 19 Jun 2018 21:36:24 +0100 Subject: [PATCH 07/21] docs(transducers-fsm): update readme, whitespace --- packages/transducers-fsm/README.md | 4 ++++ packages/transducers-fsm/src/index.ts | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/transducers-fsm/README.md b/packages/transducers-fsm/README.md index ec39afc278..2e224b43f4 100644 --- a/packages/transducers-fsm/README.md +++ b/packages/transducers-fsm/README.md @@ -19,6 +19,10 @@ transformation pipeline. yarn add @thi.ng/transducers-fsm ``` +## Dependencies + +- [@thi.ng/transducers](https://github.com/thi-ng/umbrella/tree/master/packages/transducers) + ## Usage examples For a real world example, the diff --git a/packages/transducers-fsm/src/index.ts b/packages/transducers-fsm/src/index.ts index bc2047e65a..05f6111d80 100644 --- a/packages/transducers-fsm/src/index.ts +++ b/packages/transducers-fsm/src/index.ts @@ -76,7 +76,7 @@ export interface FSMOpts { * // [ 5, 6, 7, 8, 9, 15, 16, 17, 18, 19 ] * * // as part of composed transducers... - * + * * [...tx.iterator( * tx.comp(tx.takeNth(2), fsm.fsm(testFSM)), * tx.range(100))] From 8959b93820d80a306219a4dc20a98bbe32654d21 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 19 Jun 2018 21:37:15 +0100 Subject: [PATCH 08/21] docs(sax): update readme (add SVG example) --- packages/sax/README.md | 54 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/packages/sax/README.md b/packages/sax/README.md index 41954c4a57..3467c1e091 100644 --- a/packages/sax/README.md +++ b/packages/sax/README.md @@ -24,6 +24,11 @@ transform element / attribute values. yarn add @thi.ng/sax ``` +## Dependencies + +- [@thi.ng/transducers](https://github.com/thi-ng/umbrella/tree/master/packages/transducers) +- [@thi.ng/transducers-fsm](https://github.com/thi-ng/umbrella/tree/master/packages/transducers-fsm) + ## Usage examples ```ts @@ -74,6 +79,55 @@ doc = [...tx.iterator(sax.parse(), src)] // body: '\n ' } ] ``` +### Result post-processing + +As mentioned earlier, the transducer nature of this parser allows for +its easy integration into larger transformation pipelines. The next +example parses an SVG file, then extracts and selectively applies +transformations to only the `` elements in the first group +(``) element. + +```ts +svg=` + + + + + + + + + + + + +`; + +[...tx.iterator( + tx.comp( + // transform into parse events + sax.parse(), + // match 1st group end + tx.matchFirst((e) => e.type == sax.Type.ELEM_END && e.tag == "g"), + // extract group's children + tx.mapcat((e) => e.children), + // select circles only + tx.filter((e) => e.tag == "circle"), + // transform attributes + tx.map((e)=> [e.tag, { + ...e.attribs, + cx: parseFloat(e.attribs.cy), + cy: parseFloat(e.attribs.cy), + r: parseFloat(e.attribs.r), + }]) + ), + svg +)] +// [ [ 'circle', { cx: 150, cy: 150, r: 50 } ], +// [ 'circle', { cx: 150, cy: 150, r: 50 } ], +// [ 'circle', { cx: 150, cy: 150, fill: 'rgba(0,255,255,0.25)', r: 100, stroke: '#ff0000' } ] ] +``` + ## Emitted result type IDs The `type` key in each emitted result object is a TypeScript enum with the following values: From a9ca13515d2b5cb65131a0871c755b525d8c0525 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 19 Jun 2018 22:22:07 +0100 Subject: [PATCH 09/21] feat(transducers-fsm): support multiple results, add tests, update readme --- packages/transducers-fsm/README.md | 44 ++++++++++++----------- packages/transducers-fsm/src/index.ts | 47 +++++++++++++----------- packages/transducers-fsm/test/index.ts | 50 ++++++++++++++++++++++++-- 3 files changed, 97 insertions(+), 44 deletions(-) diff --git a/packages/transducers-fsm/README.md b/packages/transducers-fsm/README.md index 2e224b43f4..f4266c82d3 100644 --- a/packages/transducers-fsm/README.md +++ b/packages/transducers-fsm/README.md @@ -32,7 +32,7 @@ provided here. ### 3-state FSM -The following simple example defines a FSM with 3 states: +The following example defines a simple FSM with 3 states: - `skip` - `take` @@ -42,8 +42,8 @@ The FSM always starts in the `skip` state. The FSM alternates between skipping or consuming (passing through) 5 inputs as long as each input is < 20. Once an input is >= 20, the FSM -switches into the `done` state, which has been declared as a "terminal" -state and once entered will terminate processing (also see API +switches into the `done` state, which has been declared as a *terminal* +state and once entered will cause processing to terminate (also see API description further below). ```ts @@ -54,7 +54,7 @@ const testFSM = fsm.fsm({ init: () => ({ state: "skip", count: 0 }), // terminal state ID - terminal: "done", + terminate: "done", // individual state handlers states: { @@ -114,27 +114,29 @@ const testFSM = fsm.fsm({ ## API -### `fsm(opts: FSMOpts): Transducer` +### `fsm(opts: FSMOpts): Transducer` -The `fsm()` function takes an FSM configuration object and returns a -transducer, which processes inputs using the provided state handler -functions. +Finite State Machine transducer. Takes an FSM configuration object and +returns a transducer, which processes inputs using the provided state +handler functions, which in turn can produce any number of outputs per +consumed input. Before processing the first input, the FSM state is initialized by calling the user provided `init()` function, which MUST return a state -object with at least a `state` key, whose value is used for dynamic (i.e. -stateful) dispatch during input processing. This state object is passed -with each input value to the current state handler, which is expected to -mutate this object, e.g. to cause state changes based on given inputs. - -Any values (apart from `undefined`) returned by a state handler are -passed on to the next reducer in the chain and so can be used to emit -results for downstream processing. If a state handler returns nothing -(or `undefined`), further downstream processing of the current input is -skipped. - -Regardless of return value, if a state handler has changed the state ID -to the configured `terminal` state, processing is terminated (by calling +object with at least a `state` key, whose value is used for dynamic +(i.e. stateful) dispatch during input processing. This state object is +passed with each input value to the current state handler, which is +expected to mutate this object, e.g. to cause state changes based on +given inputs. + +If a state handler needs to "emit" results for downstream processing, it +can return an array of values. Any such values are passed on +(individually, not as array) to the next reducer in the chain. If a +state handler returns `null` or `undefined`, further downstream +processing of the current input is skipped. + +Regardless of return value, if a state handler has caused a state change +to the configured `terminate` state, processing is terminated (by calling `ensureReduced()`) and no further inputs will be consumed. ## Authors diff --git a/packages/transducers-fsm/src/index.ts b/packages/transducers-fsm/src/index.ts index 05f6111d80..08cef2db2d 100644 --- a/packages/transducers-fsm/src/index.ts +++ b/packages/transducers-fsm/src/index.ts @@ -1,15 +1,15 @@ import { IObjectOf } from "@thi.ng/api/api"; - import { Reducer, Transducer } from "@thi.ng/transducers/api"; +import { comp } from "@thi.ng/transducers/func/comp"; import { compR } from "@thi.ng/transducers/func/compr"; -import { ensureReduced } from "@thi.ng/transducers/reduced"; +import { ensureReduced, isReduced } from "@thi.ng/transducers/reduced"; export interface FSMState { state: PropertyKey; } export type FSMStateMap = IObjectOf>; -export type FSMHandler = (state: T, input: A) => B | void; +export type FSMHandler = (state: T, input: A) => B | null | void; export interface FSMOpts { states: FSMStateMap; @@ -20,7 +20,8 @@ export interface FSMOpts { /** * Finite State Machine transducer. Takes an FSM configuration object * and returns a transducer, which processes inputs using the provided - * state handler functions. + * state handler functions, which in turn can return any number of + * outputs per consumed input. * * Before processing the first input, the FSM state is initialized by * calling the user provided `init()` function, which MUST return a @@ -30,15 +31,16 @@ export interface FSMOpts { * which is expected to mutate this object, e.g. to cause state changes * based on given inputs. * - * Any values (apart from `undefined`) returned by a state handler are - * passed on to the next reducer in the chain and so can be used to emit - * results for downstream processing. If a state handler returns nothing - * (or `undefined`), further downstream processing of the current input - * is skipped. + * If a state handler needs to "emit" results for downstream processing, + * it can return an array of values. Any such values are passed on + * (individually, not as array) to the next reducer in the chain. If a + * state handler returns `null` or `undefined`, further downstream + * processing of the current input is skipped. * - * Regardless of return value, if a state handler has changed the state - * ID to the configured `terminal` state, processing is terminated (by - * calling `ensureReduced()`) and no further inputs will be consumed. + * Regardless of return value, if a state handler has caused a state + * change to the configured `terminal` state, processing is terminated + * (by calling `ensureReduced()`) and no further inputs will be + * consumed. * * ``` * testFSM = { @@ -48,7 +50,7 @@ export interface FSMOpts { * if (++state.count > 5) { * state.state = "take"; * state.count = 1; - * return x; + * return [x]; * } * } else { * state.state = "done"; @@ -60,7 +62,7 @@ export interface FSMOpts { * state.state = "skip"; * state.count = 1; * } else { - * return x; + * return [x]; * } * } else { * state.state = "done"; @@ -68,7 +70,7 @@ export interface FSMOpts { * }, * done: () => { }, * }, - * terminal: "done", + * terminate: "done", * init: () => ({ state: "skip", count: 0 }) * } * @@ -90,21 +92,26 @@ export interface FSMOpts { * * @param opts */ -export function fsm(opts: FSMOpts): Transducer { - return (rfn: Reducer) => { +export function fsm(opts: FSMOpts): Transducer { + return comp((rfn: Reducer) => { const states = opts.states; const state = opts.init(); const r = rfn[2]; return compR(rfn, (acc, x) => { const res = states[state.state](state, x); - if (res !== undefined) { - acc = r(acc, res); + if (res != null) { + for (let i = 0, n = (res).length; i < n; i++) { + acc = r(acc, res[i]); + if (isReduced(acc)) { + break; + } + } } if (state.state === opts.terminate) { return ensureReduced(acc); } return acc; }); - } + }); } diff --git a/packages/transducers-fsm/test/index.ts b/packages/transducers-fsm/test/index.ts index 5ea048babf..83054b548a 100644 --- a/packages/transducers-fsm/test/index.ts +++ b/packages/transducers-fsm/test/index.ts @@ -1,6 +1,50 @@ -// import * as assert from "assert"; -// import * as transducers-fsm from "../src/index"; +import * as assert from "assert"; +import * as tx from "@thi.ng/transducers"; +import { fsm } from "../src/index"; describe("transducers-fsm", () => { - it("tests pending"); + it("readme example", () => { + const testFSM = fsm({ + states: { + skip: (state, x) => { + if (x < 20) { + if (++state.count > 5) { + state.state = "take"; + state.count = 1; + return [x]; + } + } else { + state.state = "done"; + } + }, + take: (state, x) => { + if (x < 20) { + if (++state.count > 5) { + state.state = "skip"; + state.count = 1; + } else { + return [x]; + } + } else { + state.state = "done"; + } + }, + done: () => { }, + }, + terminate: "done", + init: () => ({ state: "skip", count: 0 }) + }); + assert.deepEqual( + [...tx.iterator(testFSM, tx.range(100))], + [5, 6, 7, 8, 9, 15, 16, 17, 18, 19] + ); + assert.deepEqual( + [...tx.iterator(tx.comp(tx.takeNth(2), testFSM), tx.range(100))], + [10, 12, 14, 16, 18] + ); + assert.deepEqual( + [...tx.iterator(tx.comp(testFSM, tx.map((x: number) => x * 10)), tx.range(100))], + [50, 60, 70, 80, 90, 150, 160, 170, 180, 190] + ); + }); }); From 343e07f167e19dbc05678d212b266483dae5c272 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 19 Jun 2018 22:26:30 +0100 Subject: [PATCH 10/21] refactor(sax): wrap FSM handler results as arrays, update ELEM_SINGLE - ELEM_SINGLE handler now emits both ELEM_START & ELEM_END events --- packages/sax/src/index.ts | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/sax/src/index.ts b/packages/sax/src/index.ts index 15c7f961cb..563c8aa18c 100644 --- a/packages/sax/src/index.ts +++ b/packages/sax/src/index.ts @@ -117,7 +117,7 @@ const isTagChar = (x: string) => { const error = (s: ParseState, body: string) => { s.state = State.ERROR; - return { type: Type.ERROR, body }; + return [{ type: Type.ERROR, body }]; }; const illegalEscape = (s: ParseState, ch: string) => @@ -128,7 +128,7 @@ const unexpected = (s: ParseState, x: string) => const replaceEntities = (x: string) => x.replace(ENTITY_RE, (y) => ENTITIES[y]); -const PARSER: fsm.FSMStateMap = { +const PARSER: fsm.FSMStateMap = { [State.ERROR]: () => { }, @@ -177,7 +177,7 @@ const PARSER: fsm.FSMStateMap = { state.state = State.ELEM_BODY; state.scope.push({ tag: state.tag, attribs: state.attribs, children: [] }); state.body = ""; - return { type: Type.ELEM_START, tag: state.tag, attribs: state.attribs }; + return [{ type: Type.ELEM_START, tag: state.tag, attribs: state.attribs }]; } else if (ch === "/") { state.state = State.ELEM_SINGLE; } else { @@ -198,7 +198,7 @@ const PARSER: fsm.FSMStateMap = { scope[n - 2].children.push(res); } state.state = State.WAIT; - return { type: Type.ELEM_END, ...res }; + return [{ type: Type.ELEM_END, ...res }]; } else { error(state, state.tag); } @@ -214,7 +214,10 @@ const PARSER: fsm.FSMStateMap = { if (n > 0) { state.scope[n - 1].children.push(res); } - return { type: Type.ELEM_END, ...res }; + return [ + { type: Type.ELEM_START, ...res }, + { type: Type.ELEM_END, ...res } + ]; } else { return unexpected(state, ch); } @@ -230,7 +233,7 @@ const PARSER: fsm.FSMStateMap = { b = replaceEntities(b); } state.scope[state.scope.length - 1].body = b; - res = { type: Type.ELEM_BODY, tag: state.tag, body: b }; + res = [{ type: Type.ELEM_BODY, tag: state.tag, body: b }]; } state.state = State.MAYBE_ELEM; state.tag = ""; @@ -267,7 +270,7 @@ const PARSER: fsm.FSMStateMap = { state.state = State.ELEM_BODY; state.scope.push({ tag: state.tag, attribs: state.attribs, children: [] }); state.body = ""; - return { type: Type.ELEM_START, tag: state.tag, attribs: state.attribs }; + return [{ type: Type.ELEM_START, tag: state.tag, attribs: state.attribs }]; } else if (ch === "/") { state.state = State.ELEM_SINGLE; } else if (!isWS(ch)) { @@ -352,7 +355,7 @@ const PARSER: fsm.FSMStateMap = { return unexpected(state, ch); } state.state = State.WAIT; - return { type: Type.COMMENT, body: state.body.substr(0, n - 2) }; + return [{ type: Type.COMMENT, body: state.body.substr(0, n - 2) }]; } else { state.body += ch; } @@ -368,7 +371,7 @@ const PARSER: fsm.FSMStateMap = { } } else if (ch === ">") { state.state = State.WAIT; - return { type: Type.DOCTYPE, body: state.body.trim() }; + return [{ type: Type.DOCTYPE, body: state.body.trim() }]; } else { state.body += ch; } @@ -392,7 +395,7 @@ const PARSER: fsm.FSMStateMap = { if (ch === ">") { state.state = State.WAIT; state.isProc = false; - return { type: Type.PROC, tag: state.tag, attribs: state.attribs }; + return [{ type: Type.PROC, tag: state.tag, attribs: state.attribs }]; } else { return unexpected(state, ch); } From eed50b8182f5d4bc9c70356f4113da6a420b7417 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 19 Jun 2018 22:39:12 +0100 Subject: [PATCH 11/21] docs: update main readme --- README.md | 99 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 50 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 740510f055..857e540d7d 100644 --- a/README.md +++ b/README.md @@ -5,23 +5,22 @@ [![Discord chat](https://img.shields.io/discord/445761008837984256.svg)](https://discord.gg/JhYcmBw) Mono-repository for thi.ng TypeScript/ES6 projects, a collection of largely -data / transformation oriented packages and building blocks reactive -applications, components (not just UI related), dataflow. +data / transformation oriented packages and building blocks for reactive +applications, dataflow graphs, components (not just UI related). -All/most packages: +Most packages: - have detailed, individual README files w/ small usage examples - versioned independently -- distributed as ES6 (CommonJS modules) with bundled TypeScript typings - & changelogs +- distributed as ES6 (CommonJS modules) with doc comments (incl. example + code snippets), bundled TypeScript typings & changelogs - highly modular with largely only a few closely related functions / single class per file to help w/ tree shaking - provide re-exports of all their publics for full library imports -- have either none or only @thi.ng internal runtime dependencies (see - graph below) +- have either none or only @thi.ng internal runtime dependencies - declare public interfaces, enums & types in an `src/api.ts` file (larger packages only) -- autogenerated online documentation at [docs.thi.ng](http://docs.thi.ng) +- auto-generated online documentation at [docs.thi.ng](http://docs.thi.ng) - licensed under Apache Software License 2.0 There's a steadily growing number of standalone examples (different @@ -30,47 +29,49 @@ difficulties, many combining functionality from several packages) in the ## Projects -| Projects | Version | Changelog | Description | -|----|----|----|----| -| [`@thi.ng/api`](./packages/api) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/api.svg)](https://www.npmjs.com/package/@thi.ng/api) | [changelog](./packages/api/CHANGELOG.md) | Common types, decorators, mixins | -| [`@thi.ng/associative`](./packages/associative) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/associative.svg)](https://www.npmjs.com/package/@thi.ng/associative) | [changelog](./packages/associative/CHANGELOG.md) | Alt Set & Map implementations | -| [`@thi.ng/atom`](./packages/atom) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/atom.svg)](https://www.npmjs.com/package/@thi.ng/atom) | [changelog](./packages/atom/CHANGELOG.md) | Immutable value wrappers, views, history | -| [`@thi.ng/bench`](./packages/bench) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/bench.svg)](https://www.npmjs.com/package/@thi.ng/bench) | [changelog](./packages/bench/CHANGELOG.md) | Basic benchmarking helpers | -| [`@thi.ng/bitstream`](./packages/bitstream) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/bitstream.svg)](https://www.npmjs.com/package/@thi.ng/bitstream) | [changelog](./packages/bitstream/CHANGELOG.md) | Bitwise input / output streams | -| [`@thi.ng/cache`](./packages/cache) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/cache.svg)](https://www.npmjs.com/package/@thi.ng/cache) | [changelog](./packages/cache/CHANGELOG.md) | In-memory caches / strategies | -| [`@thi.ng/checks`](./packages/checks) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/checks.svg)](https://www.npmjs.com/package/@thi.ng/checks) | [changelog](./packages/checks/CHANGELOG.md) | Type & value checks | -| [`@thi.ng/compare`](./packages/compare) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/compare.svg)](https://www.npmjs.com/package/@thi.ng/compare) | [changelog](./packages/compare/CHANGELOG.md) | Comparator | -| [`@thi.ng/csp`](./packages/csp) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/csp.svg)](https://www.npmjs.com/package/@thi.ng/csp) | [changelog](./packages/csp/CHANGELOG.md) | Channel based async ops | -| [`@thi.ng/dcons`](./packages/dcons) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/dcons.svg)](https://www.npmjs.com/package/@thi.ng/dcons) | [changelog](./packages/dcons/CHANGELOG.md) | Doubly-linked list | -| [`@thi.ng/defmulti`](./packages/defmulti) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/defmulti.svg)](https://www.npmjs.com/package/@thi.ng/defmulti) | [changelog](./packages/defmulti/CHANGELOG.md) | Dynamic multiple dispatch | -| [`@thi.ng/dgraph`](./packages/dgraph) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/dgraph.svg)](https://www.npmjs.com/package/@thi.ng/dgraph) | [changelog](./packages/dgraph/CHANGELOG.md) | Dependency graph | -| [`@thi.ng/diff`](./packages/diff) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/diff.svg)](https://www.npmjs.com/package/@thi.ng/diff) | [changelog](./packages/diff/CHANGELOG.md) | Array & object diffing | -| [`@thi.ng/dot`](./packages/dot) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/dot.svg)](https://www.npmjs.com/package/@thi.ng/dot) | [changelog](./packages/dot/CHANGELOG.md) | Graphviz DOM & export | -| [`@thi.ng/equiv`](./packages/equiv) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/equiv.svg)](https://www.npmjs.com/package/@thi.ng/equiv) | [changelog](./packages/equiv/CHANGELOG.md) | Deep value equivalence checking | -| [`@thi.ng/errors`](./packages/errors) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/errors.svg)](https://www.npmjs.com/package/@thi.ng/errors) | [changelog](./packages/errors/CHANGELOG.md) | Custom error types | -| [`@thi.ng/hdom`](./packages/hdom) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/hdom.svg)](https://www.npmjs.com/package/@thi.ng/hdom) | [changelog](./packages/hdom/CHANGELOG.md) | Hiccup based VDOM & diffing | -| [`@thi.ng/hdom-components`](./packages/hdom-components) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/hdom-components.svg)](https://www.npmjs.com/package/@thi.ng/hdom-components) | [changelog](./packages/hdom-components/CHANGELOG.md) | hdom based UI components | -| [`@thi.ng/heaps`](./packages/heaps) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/heaps.svg)](https://www.npmjs.com/package/@thi.ng/heaps) | [changelog](./packages/heaps/CHANGELOG.md) | Binary & d-ary heap impls | -| [`@thi.ng/hiccup`](./packages/hiccup) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/hiccup.svg)](https://www.npmjs.com/package/@thi.ng/hiccup) | [changelog](./packages/hiccup/CHANGELOG.md) | S-expression based HTML/XML serialization | -| [`@thi.ng/hiccup-css`](./packages/hiccup-css) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/hiccup-css.svg)](https://www.npmjs.com/package/@thi.ng/hiccup-css) | [changelog](./packages/hiccup-css/CHANGELOG.md) | CSS from nested JS data structures | -| [`@thi.ng/hiccup-svg`](./packages/hiccup-svg) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/hiccup-svg.svg)](https://www.npmjs.com/package/@thi.ng/hiccup-svg) | [changelog](./packages/hiccup-svg/CHANGELOG.md) | hiccup based SVG vocab | -| [`@thi.ng/interceptors`](./packages/interceptors) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/interceptors.svg)](https://www.npmjs.com/package/@thi.ng/interceptors) | [changelog](./packages/interceptors/CHANGELOG.md) | Composable event handlers & processor | -| [`@thi.ng/iterators`](./packages/iterators) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/iterators.svg)](https://www.npmjs.com/package/@thi.ng/iterators) | [changelog](./packages/iterators/CHANGELOG.md) | ES6 generators / iterators | -| [`@thi.ng/paths`](./packages/paths) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/paths.svg)](https://www.npmjs.com/package/@thi.ng/paths) | [changelog](./packages/paths/CHANGELOG.md) | Immutable nested object accessors | -| [`@thi.ng/pointfree`](./packages/pointfree) | [![npm (scoped)](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) | [![npm (scoped)](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/rle-pack`](./packages/rle-pack) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/rle-pack.svg)](https://www.npmjs.com/package/@thi.ng/rle-pack) | [changelog](./packages/rle-pack/CHANGELOG.md) | Run-length encoding data compression | -| [`@thi.ng/resolve-map`](./packages/resolve-map) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/resolve-map.svg)](https://www.npmjs.com/package/@thi.ng/resolve-map) | [changelog](./packages/resolve-map/CHANGELOG.md) | DAG computations & value resolution | -| [`@thi.ng/router`](./packages/router) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/router.svg)](https://www.npmjs.com/package/@thi.ng/router) | [changelog](./packages/router/CHANGELOG.md) | Customizable browser & non-browser router | -| [`@thi.ng/rstream`](./packages/rstream) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/rstream.svg)](https://www.npmjs.com/package/@thi.ng/rstream) | [changelog](./packages/rstream/CHANGELOG.md) | Push-based, reactive event stream primitves | -| [`@thi.ng/rstream-csp`](./packages/rstream-csp) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/rstream-csp.svg)](https://www.npmjs.com/package/@thi.ng/rstream-csp) | [changelog](./packages/rstream-csp/CHANGELOG.md) | Adapter bridge CSP -> rstream | -| [`@thi.ng/rstream-dot`](./packages/rstream-dot) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/rstream-dot.svg)](https://www.npmjs.com/package/@thi.ng/rstream-dot) | [changelog](./packages/rstream-dot/CHANGELOG.md) | Graphviz visualization of rstream topologies | -| [`@thi.ng/rstream-gestures`](./packages/rstream-gestures) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/rstream-gestures.svg)](https://www.npmjs.com/package/@thi.ng/rstream-gestures) | [changelog](./packages/rstream-gestures/CHANGELOG.md) | Mouse & touch event stream abstraction | -| [`@thi.ng/rstream-graph`](./packages/rstream-graph) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/rstream-graph.svg)](https://www.npmjs.com/package/@thi.ng/rstream-graph) | [changelog](./packages/rstream-graph/CHANGELOG.md) | Declarative dataflow graph construction | -| [`@thi.ng/rstream-log`](./packages/rstream-log) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/rstream-log.svg)](https://www.npmjs.com/package/@thi.ng/rstream-log) | [changelog](./packages/rstream-log/CHANGELOG.md) | Hierarchical structured data logging | -| [`@thi.ng/rstream-query`](./packages/rstream-query) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/rstream-query.svg)](https://www.npmjs.com/package/@thi.ng/rstream-query) | [changelog](./packages/rstream-query/CHANGELOG.md) | Triple store & query engine | -| [`@thi.ng/transducers`](./packages/transducers) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/transducers.svg)](https://www.npmjs.com/package/@thi.ng/transducers) | [changelog](./packages/transducers/CHANGELOG.md) | Composable data transformations | -| [`@thi.ng/unionstruct`](./packages/unionstruct) | [![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/unionstruct.svg)](https://www.npmjs.com/package/@thi.ng/unionstruct) | [changelog](./packages/unionstruct/CHANGELOG.md) | Wrapper for C-like structs / unions | +| Projects | Version | Changelog | Description | +|-----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|-----------------------------------------------| +| [`@thi.ng/api`](./packages/api) | [![version](https://img.shields.io/npm/v/@thi.ng/api.svg)](https://www.npmjs.com/package/@thi.ng/api) | [changelog](./packages/api/CHANGELOG.md) | Common types, decorators, mixins | +| [`@thi.ng/associative`](./packages/associative) | [![version](https://img.shields.io/npm/v/@thi.ng/associative.svg)](https://www.npmjs.com/package/@thi.ng/associative) | [changelog](./packages/associative/CHANGELOG.md) | Alt Set & Map implementations | +| [`@thi.ng/atom`](./packages/atom) | [![version](https://img.shields.io/npm/v/@thi.ng/atom.svg)](https://www.npmjs.com/package/@thi.ng/atom) | [changelog](./packages/atom/CHANGELOG.md) | Immutable value wrappers, views, history | +| [`@thi.ng/bench`](./packages/bench) | [![version](https://img.shields.io/npm/v/@thi.ng/bench.svg)](https://www.npmjs.com/package/@thi.ng/bench) | [changelog](./packages/bench/CHANGELOG.md) | Basic benchmarking helpers | +| [`@thi.ng/bitstream`](./packages/bitstream) | [![version](https://img.shields.io/npm/v/@thi.ng/bitstream.svg)](https://www.npmjs.com/package/@thi.ng/bitstream) | [changelog](./packages/bitstream/CHANGELOG.md) | Bitwise input / output streams | +| [`@thi.ng/cache`](./packages/cache) | [![version](https://img.shields.io/npm/v/@thi.ng/cache.svg)](https://www.npmjs.com/package/@thi.ng/cache) | [changelog](./packages/cache/CHANGELOG.md) | In-memory caches / strategies | +| [`@thi.ng/checks`](./packages/checks) | [![version](https://img.shields.io/npm/v/@thi.ng/checks.svg)](https://www.npmjs.com/package/@thi.ng/checks) | [changelog](./packages/checks/CHANGELOG.md) | Type & value checks | +| [`@thi.ng/compare`](./packages/compare) | [![version](https://img.shields.io/npm/v/@thi.ng/compare.svg)](https://www.npmjs.com/package/@thi.ng/compare) | [changelog](./packages/compare/CHANGELOG.md) | Comparator | +| [`@thi.ng/csp`](./packages/csp) | [![version](https://img.shields.io/npm/v/@thi.ng/csp.svg)](https://www.npmjs.com/package/@thi.ng/csp) | [changelog](./packages/csp/CHANGELOG.md) | Channel based async ops | +| [`@thi.ng/dcons`](./packages/dcons) | [![version](https://img.shields.io/npm/v/@thi.ng/dcons.svg)](https://www.npmjs.com/package/@thi.ng/dcons) | [changelog](./packages/dcons/CHANGELOG.md) | Doubly-linked list | +| [`@thi.ng/defmulti`](./packages/defmulti) | [![version](https://img.shields.io/npm/v/@thi.ng/defmulti.svg)](https://www.npmjs.com/package/@thi.ng/defmulti) | [changelog](./packages/defmulti/CHANGELOG.md) | Dynamic multiple dispatch | +| [`@thi.ng/dgraph`](./packages/dgraph) | [![version](https://img.shields.io/npm/v/@thi.ng/dgraph.svg)](https://www.npmjs.com/package/@thi.ng/dgraph) | [changelog](./packages/dgraph/CHANGELOG.md) | Dependency graph | +| [`@thi.ng/diff`](./packages/diff) | [![version](https://img.shields.io/npm/v/@thi.ng/diff.svg)](https://www.npmjs.com/package/@thi.ng/diff) | [changelog](./packages/diff/CHANGELOG.md) | Array & object diffing | +| [`@thi.ng/dot`](./packages/dot) | [![version](https://img.shields.io/npm/v/@thi.ng/dot.svg)](https://www.npmjs.com/package/@thi.ng/dot) | [changelog](./packages/dot/CHANGELOG.md) | Graphviz DOM & export | +| [`@thi.ng/equiv`](./packages/equiv) | [![version](https://img.shields.io/npm/v/@thi.ng/equiv.svg)](https://www.npmjs.com/package/@thi.ng/equiv) | [changelog](./packages/equiv/CHANGELOG.md) | Deep value equivalence checking | +| [`@thi.ng/errors`](./packages/errors) | [![version](https://img.shields.io/npm/v/@thi.ng/errors.svg)](https://www.npmjs.com/package/@thi.ng/errors) | [changelog](./packages/errors/CHANGELOG.md) | Custom error types | +| [`@thi.ng/hdom`](./packages/hdom) | [![version](https://img.shields.io/npm/v/@thi.ng/hdom.svg)](https://www.npmjs.com/package/@thi.ng/hdom) | [changelog](./packages/hdom/CHANGELOG.md) | Hiccup based VDOM & diffing | +| [`@thi.ng/hdom-components`](./packages/hdom-components) | [![version](https://img.shields.io/npm/v/@thi.ng/hdom-components.svg)](https://www.npmjs.com/package/@thi.ng/hdom-components) | [changelog](./packages/hdom-components/CHANGELOG.md) | hdom based UI components | +| [`@thi.ng/heaps`](./packages/heaps) | [![version](https://img.shields.io/npm/v/@thi.ng/heaps.svg)](https://www.npmjs.com/package/@thi.ng/heaps) | [changelog](./packages/heaps/CHANGELOG.md) | Binary & d-ary heap impls | +| [`@thi.ng/hiccup`](./packages/hiccup) | [![version](https://img.shields.io/npm/v/@thi.ng/hiccup.svg)](https://www.npmjs.com/package/@thi.ng/hiccup) | [changelog](./packages/hiccup/CHANGELOG.md) | S-expression based HTML/XML serialization | +| [`@thi.ng/hiccup-css`](./packages/hiccup-css) | [![version](https://img.shields.io/npm/v/@thi.ng/hiccup-css.svg)](https://www.npmjs.com/package/@thi.ng/hiccup-css) | [changelog](./packages/hiccup-css/CHANGELOG.md) | CSS from nested JS data structures | +| [`@thi.ng/hiccup-svg`](./packages/hiccup-svg) | [![version](https://img.shields.io/npm/v/@thi.ng/hiccup-svg.svg)](https://www.npmjs.com/package/@thi.ng/hiccup-svg) | [changelog](./packages/hiccup-svg/CHANGELOG.md) | hiccup based SVG vocab | +| [`@thi.ng/interceptors`](./packages/interceptors) | [![version](https://img.shields.io/npm/v/@thi.ng/interceptors.svg)](https://www.npmjs.com/package/@thi.ng/interceptors) | [changelog](./packages/interceptors/CHANGELOG.md) | Composable event handlers & processor | +| [`@thi.ng/iterators`](./packages/iterators) | [![version](https://img.shields.io/npm/v/@thi.ng/iterators.svg)](https://www.npmjs.com/package/@thi.ng/iterators) | [changelog](./packages/iterators/CHANGELOG.md) | ES6 generators / iterators | +| [`@thi.ng/paths`](./packages/paths) | [![version](https://img.shields.io/npm/v/@thi.ng/paths.svg)](https://www.npmjs.com/package/@thi.ng/paths) | [changelog](./packages/paths/CHANGELOG.md) | Immutable nested object accessors | +| [`@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/rle-pack`](./packages/rle-pack) | [![version](https://img.shields.io/npm/v/@thi.ng/rle-pack.svg)](https://www.npmjs.com/package/@thi.ng/rle-pack) | [changelog](./packages/rle-pack/CHANGELOG.md) | Run-length encoding data compression | +| [`@thi.ng/resolve-map`](./packages/resolve-map) | [![version](https://img.shields.io/npm/v/@thi.ng/resolve-map.svg)](https://www.npmjs.com/package/@thi.ng/resolve-map) | [changelog](./packages/resolve-map/CHANGELOG.md) | DAG computations & value resolution | +| [`@thi.ng/router`](./packages/router) | [![version](https://img.shields.io/npm/v/@thi.ng/router.svg)](https://www.npmjs.com/package/@thi.ng/router) | [changelog](./packages/router/CHANGELOG.md) | Customizable browser & non-browser router | +| [`@thi.ng/rstream`](./packages/rstream) | [![version](https://img.shields.io/npm/v/@thi.ng/rstream.svg)](https://www.npmjs.com/package/@thi.ng/rstream) | [changelog](./packages/rstream/CHANGELOG.md) | Push-based, reactive event stream primitves | +| [`@thi.ng/rstream-csp`](./packages/rstream-csp) | [![version](https://img.shields.io/npm/v/@thi.ng/rstream-csp.svg)](https://www.npmjs.com/package/@thi.ng/rstream-csp) | [changelog](./packages/rstream-csp/CHANGELOG.md) | Adapter bridge CSP -> rstream | +| [`@thi.ng/rstream-dot`](./packages/rstream-dot) | [![version](https://img.shields.io/npm/v/@thi.ng/rstream-dot.svg)](https://www.npmjs.com/package/@thi.ng/rstream-dot) | [changelog](./packages/rstream-dot/CHANGELOG.md) | Graphviz visualization of rstream topologies | +| [`@thi.ng/rstream-gestures`](./packages/rstream-gestures) | [![version](https://img.shields.io/npm/v/@thi.ng/rstream-gestures.svg)](https://www.npmjs.com/package/@thi.ng/rstream-gestures) | [changelog](./packages/rstream-gestures/CHANGELOG.md) | Mouse & touch event stream abstraction | +| [`@thi.ng/rstream-graph`](./packages/rstream-graph) | [![version](https://img.shields.io/npm/v/@thi.ng/rstream-graph.svg)](https://www.npmjs.com/package/@thi.ng/rstream-graph) | [changelog](./packages/rstream-graph/CHANGELOG.md) | Declarative dataflow graph construction | +| [`@thi.ng/rstream-log`](./packages/rstream-log) | [![version](https://img.shields.io/npm/v/@thi.ng/rstream-log.svg)](https://www.npmjs.com/package/@thi.ng/rstream-log) | [changelog](./packages/rstream-log/CHANGELOG.md) | Hierarchical structured data logging | +| [`@thi.ng/rstream-query`](./packages/rstream-query) | [![version](https://img.shields.io/npm/v/@thi.ng/rstream-query.svg)](https://www.npmjs.com/package/@thi.ng/rstream-query) | [changelog](./packages/rstream-query/CHANGELOG.md) | Triple store & query engine | +| [`@thi.ng/sax`](./packages/sax) | [![version](https://img.shields.io/npm/v/@thi.ng/sax.svg)](https://www.npmjs.com/package/@thi.ng/sax) | [changelog](./packages/sax/CHANGELOG.md) | SAX-like XML parser / transducer | +| [`@thi.ng/transducers`](./packages/transducers) | [![version](https://img.shields.io/npm/v/@thi.ng/transducers.svg)](https://www.npmjs.com/package/@thi.ng/transducers) | [changelog](./packages/transducers/CHANGELOG.md) | Composable data transformations | +| [`@thi.ng/transducers-fsm`](./packages/transducers-fsm) | [![version](https://img.shields.io/npm/v/@thi.ng/transducers-fsm.svg)](https://www.npmjs.com/package/@thi.ng/transducers-fsm) | [changelog](./packages/transducers-fsm/CHANGELOG.md) | Finite State Machine | +| [`@thi.ng/unionstruct`](./packages/unionstruct) | [![version](https://img.shields.io/npm/v/@thi.ng/unionstruct.svg)](https://www.npmjs.com/package/@thi.ng/unionstruct) | [changelog](./packages/unionstruct/CHANGELOG.md) | Wrapper for C-like structs / unions | ## Dependency graph From 6cf0d915f16086a01f3e1e16ac7dd514f856cc80 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Tue, 19 Jun 2018 22:39:55 +0100 Subject: [PATCH 12/21] Publish - @thi.ng/csp@0.3.44 - @thi.ng/hiccup-css@0.2.2 - @thi.ng/rstream-csp@0.1.77 - @thi.ng/rstream-dot@0.2.16 - @thi.ng/rstream-gestures@0.3.13 - @thi.ng/rstream-graph@2.0.3 - @thi.ng/rstream-log@1.0.28 - @thi.ng/rstream-query@0.3.15 - @thi.ng/rstream@1.7.3 - @thi.ng/sax@0.2.0 - @thi.ng/transducers-fsm@0.2.0 - @thi.ng/transducers@1.11.0 --- packages/csp/CHANGELOG.md | 8 ++++++++ packages/csp/package.json | 4 ++-- packages/hiccup-css/CHANGELOG.md | 8 ++++++++ packages/hiccup-css/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/CHANGELOG.md | 8 ++++++++ packages/rstream-log/package.json | 6 +++--- packages/rstream-query/CHANGELOG.md | 8 ++++++++ packages/rstream-query/package.json | 8 ++++---- packages/rstream/CHANGELOG.md | 8 ++++++++ packages/rstream/package.json | 4 ++-- packages/sax/CHANGELOG.md | 11 +++++++++++ packages/sax/package.json | 6 +++--- packages/transducers-fsm/CHANGELOG.md | 11 +++++++++++ packages/transducers-fsm/package.json | 6 +++--- packages/transducers/CHANGELOG.md | 11 +++++++++++ packages/transducers/package.json | 2 +- 24 files changed, 136 insertions(+), 31 deletions(-) diff --git a/packages/csp/CHANGELOG.md b/packages/csp/CHANGELOG.md index 204bf97479..3448611ffc 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. + +## [0.3.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@0.3.43...@thi.ng/csp@0.3.44) (2018-06-19) + + + + +**Note:** Version bump only for package @thi.ng/csp + ## [0.3.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@0.3.42...@thi.ng/csp@0.3.43) (2018-06-18) diff --git a/packages/csp/package.json b/packages/csp/package.json index 95672725ca..a382355086 100644 --- a/packages/csp/package.json +++ b/packages/csp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/csp", - "version": "0.3.43", + "version": "0.3.44", "description": "ES6 promise based CSP implementation", "main": "./index.js", "typings": "./index.d.ts", @@ -32,7 +32,7 @@ "@thi.ng/checks": "^1.5.4", "@thi.ng/dcons": "^1.0.4", "@thi.ng/errors": "^0.1.3", - "@thi.ng/transducers": "^1.10.3" + "@thi.ng/transducers": "^1.11.0" }, "keywords": [ "async", diff --git a/packages/hiccup-css/CHANGELOG.md b/packages/hiccup-css/CHANGELOG.md index bd620fec9e..8804f22a35 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. + +## [0.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@0.2.1...@thi.ng/hiccup-css@0.2.2) (2018-06-19) + + + + +**Note:** Version bump only for package @thi.ng/hiccup-css + ## [0.2.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@0.2.0...@thi.ng/hiccup-css@0.2.1) (2018-06-18) diff --git a/packages/hiccup-css/package.json b/packages/hiccup-css/package.json index 70e33f66a9..af9a085ed1 100644 --- a/packages/hiccup-css/package.json +++ b/packages/hiccup-css/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-css", - "version": "0.2.1", + "version": "0.2.2", "description": "CSS from nested JS data structures", "main": "./index.js", "typings": "./index.d.ts", @@ -27,7 +27,7 @@ "@thi.ng/api": "^4.0.3", "@thi.ng/checks": "^1.5.4", "@thi.ng/errors": "^0.1.3", - "@thi.ng/transducers": "^1.10.3" + "@thi.ng/transducers": "^1.11.0" }, "keywords": [ "clojure", diff --git a/packages/rstream-csp/CHANGELOG.md b/packages/rstream-csp/CHANGELOG.md index db903e4ad2..1d47d44143 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. + +## [0.1.77](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@0.1.76...@thi.ng/rstream-csp@0.1.77) (2018-06-19) + + + + +**Note:** Version bump only for package @thi.ng/rstream-csp + ## [0.1.76](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@0.1.75...@thi.ng/rstream-csp@0.1.76) (2018-06-18) diff --git a/packages/rstream-csp/package.json b/packages/rstream-csp/package.json index 141a2a6cb8..ade6fad55c 100644 --- a/packages/rstream-csp/package.json +++ b/packages/rstream-csp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-csp", - "version": "0.1.76", + "version": "0.1.77", "description": "@thi.ng/csp bridge module for @thi.ng/rstream", "main": "./index.js", "typings": "./index.d.ts", @@ -24,8 +24,8 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/csp": "^0.3.43", - "@thi.ng/rstream": "^1.7.2" + "@thi.ng/csp": "^0.3.44", + "@thi.ng/rstream": "^1.7.3" }, "keywords": [ "bridge", diff --git a/packages/rstream-dot/CHANGELOG.md b/packages/rstream-dot/CHANGELOG.md index 24f68764f5..5b243355aa 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. + +## [0.2.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@0.2.15...@thi.ng/rstream-dot@0.2.16) (2018-06-19) + + + + +**Note:** Version bump only for package @thi.ng/rstream-dot + ## [0.2.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@0.2.14...@thi.ng/rstream-dot@0.2.15) (2018-06-18) diff --git a/packages/rstream-dot/package.json b/packages/rstream-dot/package.json index ff2c8a7e30..24e020fe09 100644 --- a/packages/rstream-dot/package.json +++ b/packages/rstream-dot/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-dot", - "version": "0.2.15", + "version": "0.2.16", "description": "Graphviz DOT conversion of @thi.ng/rstream dataflow graph topologies", "main": "./index.js", "typings": "./index.d.ts", @@ -24,7 +24,7 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/rstream": "^1.7.2" + "@thi.ng/rstream": "^1.7.3" }, "keywords": [ "conversion", diff --git a/packages/rstream-gestures/CHANGELOG.md b/packages/rstream-gestures/CHANGELOG.md index cec0cff08f..222c8da4f6 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. + +## [0.3.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@0.3.12...@thi.ng/rstream-gestures@0.3.13) (2018-06-19) + + + + +**Note:** Version bump only for package @thi.ng/rstream-gestures + ## [0.3.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@0.3.11...@thi.ng/rstream-gestures@0.3.12) (2018-06-18) diff --git a/packages/rstream-gestures/package.json b/packages/rstream-gestures/package.json index 39b6260ca4..779077230a 100644 --- a/packages/rstream-gestures/package.json +++ b/packages/rstream-gestures/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-gestures", - "version": "0.3.12", + "version": "0.3.13", "description": "Unified mouse, mouse wheel & single-touch event stream abstraction", "main": "./index.js", "typings": "./index.d.ts", @@ -25,8 +25,8 @@ }, "dependencies": { "@thi.ng/api": "^4.0.3", - "@thi.ng/rstream": "^1.7.2", - "@thi.ng/transducers": "^1.10.3" + "@thi.ng/rstream": "^1.7.3", + "@thi.ng/transducers": "^1.11.0" }, "keywords": [ "dataflow", diff --git a/packages/rstream-graph/CHANGELOG.md b/packages/rstream-graph/CHANGELOG.md index 2e33832cce..4a3e46ed05 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. + +## [2.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@2.0.2...@thi.ng/rstream-graph@2.0.3) (2018-06-19) + + + + +**Note:** Version bump only for package @thi.ng/rstream-graph + ## [2.0.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@2.0.1...@thi.ng/rstream-graph@2.0.2) (2018-06-18) diff --git a/packages/rstream-graph/package.json b/packages/rstream-graph/package.json index e54549aad2..a02f6cecd3 100644 --- a/packages/rstream-graph/package.json +++ b/packages/rstream-graph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-graph", - "version": "2.0.2", + "version": "2.0.3", "description": "Declarative dataflow graph construction for @thi.ng/rstream", "main": "./index.js", "typings": "./index.d.ts", @@ -29,8 +29,8 @@ "@thi.ng/errors": "^0.1.3", "@thi.ng/paths": "^1.3.9", "@thi.ng/resolve-map": "^3.0.1", - "@thi.ng/rstream": "^1.7.2", - "@thi.ng/transducers": "^1.10.3" + "@thi.ng/rstream": "^1.7.3", + "@thi.ng/transducers": "^1.11.0" }, "keywords": [ "compute", diff --git a/packages/rstream-log/CHANGELOG.md b/packages/rstream-log/CHANGELOG.md index 3320cd0b1f..7a11b241fd 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. + +## [1.0.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@1.0.27...@thi.ng/rstream-log@1.0.28) (2018-06-19) + + + + +**Note:** Version bump only for package @thi.ng/rstream-log + ## [1.0.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@1.0.26...@thi.ng/rstream-log@1.0.27) (2018-06-18) diff --git a/packages/rstream-log/package.json b/packages/rstream-log/package.json index 022928d7c4..50ddb4eaad 100644 --- a/packages/rstream-log/package.json +++ b/packages/rstream-log/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-log", - "version": "1.0.27", + "version": "1.0.28", "description": "Structured, multilevel & hierarchical loggers based on @thi.ng/rstream", "main": "./index.js", "typings": "./index.d.ts", @@ -27,8 +27,8 @@ "@thi.ng/api": "^4.0.3", "@thi.ng/checks": "^1.5.4", "@thi.ng/errors": "^0.1.3", - "@thi.ng/rstream": "^1.7.2", - "@thi.ng/transducers": "^1.10.3" + "@thi.ng/rstream": "^1.7.3", + "@thi.ng/transducers": "^1.11.0" }, "keywords": [ "ES6", diff --git a/packages/rstream-query/CHANGELOG.md b/packages/rstream-query/CHANGELOG.md index 095f98c465..8e46677a53 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. + +## [0.3.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@0.3.14...@thi.ng/rstream-query@0.3.15) (2018-06-19) + + + + +**Note:** Version bump only for package @thi.ng/rstream-query + ## [0.3.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@0.3.13...@thi.ng/rstream-query@0.3.14) (2018-06-18) diff --git a/packages/rstream-query/package.json b/packages/rstream-query/package.json index 18869bc531..215f17e500 100644 --- a/packages/rstream-query/package.json +++ b/packages/rstream-query/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-query", - "version": "0.3.14", + "version": "0.3.15", "description": "@thi.ng/rstream based triple store & reactive query engine", "main": "./index.js", "typings": "./index.d.ts", @@ -29,9 +29,9 @@ "@thi.ng/checks": "^1.5.4", "@thi.ng/equiv": "^0.1.4", "@thi.ng/errors": "^0.1.3", - "@thi.ng/rstream": "^1.7.2", - "@thi.ng/rstream-dot": "^0.2.15", - "@thi.ng/transducers": "^1.10.3" + "@thi.ng/rstream": "^1.7.3", + "@thi.ng/rstream-dot": "^0.2.16", + "@thi.ng/transducers": "^1.11.0" }, "keywords": [ "dataflow", diff --git a/packages/rstream/CHANGELOG.md b/packages/rstream/CHANGELOG.md index 1fa0e19d7f..43cdb53e96 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. + +## [1.7.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@1.7.2...@thi.ng/rstream@1.7.3) (2018-06-19) + + + + +**Note:** Version bump only for package @thi.ng/rstream + ## [1.7.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@1.7.1...@thi.ng/rstream@1.7.2) (2018-06-18) diff --git a/packages/rstream/package.json b/packages/rstream/package.json index bd86f94a18..d49065a41d 100644 --- a/packages/rstream/package.json +++ b/packages/rstream/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream", - "version": "1.7.2", + "version": "1.7.3", "description": "Reactive multi-tap streams, dataflow & transformation pipeline constructs", "main": "./index.js", "typings": "./index.d.ts", @@ -30,7 +30,7 @@ "@thi.ng/checks": "^1.5.4", "@thi.ng/errors": "^0.1.3", "@thi.ng/paths": "^1.3.9", - "@thi.ng/transducers": "^1.10.3" + "@thi.ng/transducers": "^1.11.0" }, "keywords": [ "datastructure", diff --git a/packages/sax/CHANGELOG.md b/packages/sax/CHANGELOG.md index 5820404dcb..26cc42cc94 100644 --- a/packages/sax/CHANGELOG.md +++ b/packages/sax/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.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@0.1.1...@thi.ng/sax@0.2.0) (2018-06-19) + + +### Features + +* **sax:** add support for escape seqs, minor optimizations ([e824b6b](https://github.com/thi-ng/umbrella/commit/e824b6b)) + + + + ## [0.1.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@0.1.0...@thi.ng/sax@0.1.1) (2018-06-18) diff --git a/packages/sax/package.json b/packages/sax/package.json index 817f937fb0..ec98737b42 100644 --- a/packages/sax/package.json +++ b/packages/sax/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sax", - "version": "0.1.1", + "version": "0.2.0", "description": "Transducer-based, SAX-like, non-validating, speedy & tiny XML parser", "main": "./index.js", "typings": "./index.d.ts", @@ -25,8 +25,8 @@ }, "dependencies": { "@thi.ng/api": "^4.0.3", - "@thi.ng/transducers": "^1.10.3", - "@thi.ng/transducers-fsm": "^0.1.0" + "@thi.ng/transducers": "^1.11.0", + "@thi.ng/transducers-fsm": "^0.2.0" }, "keywords": [ "ES6", diff --git a/packages/transducers-fsm/CHANGELOG.md b/packages/transducers-fsm/CHANGELOG.md index 4c6bec89fc..9df5281e2b 100644 --- a/packages/transducers-fsm/CHANGELOG.md +++ b/packages/transducers-fsm/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.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@0.1.0...@thi.ng/transducers-fsm@0.2.0) (2018-06-19) + + +### Features + +* **transducers-fsm:** support multiple results, add tests, update readme ([a9ca135](https://github.com/thi-ng/umbrella/commit/a9ca135)) + + + + # 0.1.0 (2018-06-18) diff --git a/packages/transducers-fsm/package.json b/packages/transducers-fsm/package.json index 1a50e53ace..e971a6150e 100644 --- a/packages/transducers-fsm/package.json +++ b/packages/transducers-fsm/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers-fsm", - "version": "0.1.0", + "version": "0.2.0", "description": "Transducer-based Finite State Machine transformer", "main": "./index.js", "typings": "./index.d.ts", @@ -25,7 +25,7 @@ }, "dependencies": { "@thi.ng/api": "^4.0.3", - "@thi.ng/transducers": "^1.10.3" + "@thi.ng/transducers": "^1.11.0" }, "keywords": [ "ES6", @@ -37,4 +37,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/transducers/CHANGELOG.md b/packages/transducers/CHANGELOG.md index 5bda6cc0a3..d8a258a633 100644 --- a/packages/transducers/CHANGELOG.md +++ b/packages/transducers/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.11.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@1.10.3...@thi.ng/transducers@1.11.0) (2018-06-19) + + +### Features + +* **transducers:** add matchFirst()/matchLast() xforms, update readme ([bc261e5](https://github.com/thi-ng/umbrella/commit/bc261e5)) + + + + ## [1.10.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@1.10.2...@thi.ng/transducers@1.10.3) (2018-06-18) diff --git a/packages/transducers/package.json b/packages/transducers/package.json index 06c7529152..e8e914edbd 100644 --- a/packages/transducers/package.json +++ b/packages/transducers/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers", - "version": "1.10.3", + "version": "1.11.0", "description": "Lightweight transducer implementations for ES6 / TypeScript", "main": "./index.js", "typings": "./index.d.ts", From 882f394950ec683ad6fc75e9a360c4d7d7366bd6 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 20 Jun 2018 01:38:22 +0100 Subject: [PATCH 13/21] feat(sax): add children & trim opts, add CDATA support - add docs - update readme - add/update examples --- packages/sax/README.md | 85 ++++++++++++++++------ packages/sax/src/index.ts | 149 ++++++++++++++++++++++++++++++++------ 2 files changed, 188 insertions(+), 46 deletions(-) diff --git a/packages/sax/README.md b/packages/sax/README.md index 3467c1e091..871d632f45 100644 --- a/packages/sax/README.md +++ b/packages/sax/README.md @@ -9,14 +9,16 @@ This project is part of the [@thi.ng/transducers](https://github.com/thi-ng/umbrella/tree/master/packages/transducers)-based, [SAX](https://en.wikipedia.org/wiki/Simple_API_for_XML)-like, -non-validating, speedy & tiny XML parser (1.4KB gzipped). +non-validating, [configurable](#parser-options), speedy & tiny XML +parser (~1.8KB gzipped). Unlike the classic event-driven approach of SAX, this parser is -implemented as a transducer function transforming an XML input into a +implemented as a transducer function, transforming an XML input into a stream of SAX-event-like objects. Being a transducer, the parser can be used in novel ways as part of a larger processing pipeline and can be composed with other pre or post-processing steps, e.g. to filter or -transform element / attribute values. +transform element / attribute values or only do partial parsing with +early termination based on some condition. ## Installation @@ -37,6 +39,7 @@ import * as tx from "@thi.ng/transducers"; src=` + ccc @@ -48,38 +51,42 @@ src=` doc = [...tx.iterator(sax.parse(), src)] +// (see description of `type` values further below) + // [ { type: 0, // tag: 'xml', // attribs: { version: '1.0', encoding: 'utf-8' } }, // { type: 1, body: 'foo bar' }, -// { type: 3, tag: 'a', attribs: {} }, -// { type: 5, tag: 'a', body: '\n ' }, -// { type: 3, tag: 'b1', attribs: {} }, -// { type: 5, tag: 'b1', body: '\n ' }, -// { type: 3, tag: 'c', attribs: { x: '23', y: '42' } }, -// { type: 5, tag: 'c', body: 'ccc\n ' }, -// { type: 3, tag: 'd', attribs: {} }, -// { type: 5, tag: 'd', body: 'dd' }, -// { type: 4, tag: 'd', attribs: {}, children: [], body: 'dd' }, -// { type: 4, +// { type: 2, body: ' comment ' }, +// { type: 4, tag: 'a', attribs: {} }, +// { type: 6, tag: 'a', body: '\n ' }, +// { type: 4, tag: 'b1', attribs: {} }, +// { type: 6, tag: 'b1', body: '\n ' }, +// { type: 4, tag: 'c', attribs: { x: '23', y: '42' } }, +// { type: 6, tag: 'c', body: 'ccc\n ' }, +// { type: 4, tag: 'd', attribs: {} }, +// { type: 6, tag: 'd', body: 'dd' }, +// { type: 5, tag: 'd', attribs: {}, children: [], body: 'dd' }, +// { type: 5, // tag: 'c', // attribs: { x: '23', y: '42' }, -// children: [ { tag: 'd', attribs: {}, children: [], body: 'dd' } ], +// children: [ [Object] ], // body: 'ccc\n ' }, -// { type: 4, +// { type: 5, // tag: 'b1', // attribs: {}, // children: [ [Object] ], // body: '\n ' }, // { type: 4, tag: 'b2', attribs: { foo: 'bar' } }, -// { type: 4, +// { type: 5, tag: 'b2', attribs: { foo: 'bar' } }, +// { type: 5, // tag: 'a', // attribs: {}, // children: [ [Object], [Object] ], // body: '\n ' } ] ``` -### Result post-processing +### Partial parsing & result post-processing As mentioned earlier, the transducer nature of this parser allows for its easy integration into larger transformation pipelines. The next @@ -87,6 +94,11 @@ example parses an SVG file, then extracts and selectively applies transformations to only the `` elements in the first group (``) element. +Given the composed transducer below, parsing stops immediately after the +first `` element is complete. This is because the `matchFirst()` +transducer will cause early termination once that element has been +processed. + ```ts svg=` @@ -105,8 +117,8 @@ svg=` [...tx.iterator( tx.comp( - // transform into parse events - sax.parse(), + // transform into parse events (see parser options below) + sax.parse({ children: true }), // match 1st group end tx.matchFirst((e) => e.type == sax.Type.ELEM_END && e.tag == "g"), // extract group's children @@ -118,7 +130,7 @@ svg=` ...e.attribs, cx: parseFloat(e.attribs.cy), cy: parseFloat(e.attribs.cy), - r: parseFloat(e.attribs.r), + r: parseFloat(e.attribs.r), }]) ), svg @@ -128,6 +140,22 @@ svg=` // [ 'circle', { cx: 150, cy: 150, fill: 'rgba(0,255,255,0.25)', r: 100, stroke: '#ff0000' } ] ] ``` +### Error handling + +If the parser encounters a syntax error, an error event value incl. a +description and input position will be produced (but no JS error will be +thrown) and the entire transducer pipeline stopped. + +```ts +[...tx.iterator(sax.parse(), `a`)] +// [ { type: 7, body: 'unexpected char: \'a\' @ pos 1' } ] + +[...tx.iterator(sax.parse(), ``)] +// [ { type: 4, tag: 'a', attribs: {} }, +// { type: 4, tag: 'b', attribs: {} }, +// { type: 7, body: 'unmatched tag: c @ pos 7' } ] +``` + ## Emitted result type IDs The `type` key in each emitted result object is a TypeScript enum with the following values: @@ -137,10 +165,19 @@ The `type` key in each emitted result object is a TypeScript enum with the follo | 0 | `Type.PROC` | Processing instruction incl. attribs | | 1 | `Type.DOCTYPE` | Doctype declaration body | | 2 | `Type.COMMENT` | Comment body | -| 3 | `Type.ELEM_START` | Element start incl. attributes | -| 4 | `Type.ELEM_END` | Element end incl. attributes, body & children | -| 5 | `Type.ELEM_BODY` | Element text body | -| 6 | `Type.ERROR` | Parse error description | +| 3 | `Type.CDATA` | CDATA content | +| 4 | `Type.ELEM_START` | Element start incl. attributes | +| 5 | `Type.ELEM_END` | Element end incl. attributes, body & children | +| 6 | `Type.ELEM_BODY` | Element text body | +| 7 | `Type.ERROR` | Parse error description | + +## Parser options + +| Option | Type | Default | Description | +|------------|-----------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `children` | `boolean` | `true` | If `true`, recursively includes children elements in `ELEM_END` events. For very large documents, this should be disabled to save (or even fit into) memory. | +| `entities` | `boolean` | `false` | If `true`, unescape standard XML entities in body text and attrib values. | +| `trim` | `boolean` | `false` | If `true`, trims element body, comments and CDATA content. If the remaining string is empty, no event will be generated for this value. | ## Authors diff --git a/packages/sax/src/index.ts b/packages/sax/src/index.ts index 563c8aa18c..38accfcc61 100644 --- a/packages/sax/src/index.ts +++ b/packages/sax/src/index.ts @@ -1,9 +1,31 @@ import { IObjectOf } from "@thi.ng/api"; -import * as fsm from "@thi.ng/transducers-fsm"; +import { fsm, FSMState, FSMStateMap } from "@thi.ng/transducers-fsm"; import { Transducer } from "@thi.ng/transducers/api"; export interface ParseOpts { + /** + * If `true`, unescape standard XML entities in body text and attrib + * values. + * + * Default: false + */ entities: boolean; + /** + * If `true`, include children tags in `ELEM_END` events. For very + * large documents, this should be disabled to save (or even fit + * into) memory. + * + * Default: true + */ + children: boolean; + /** + * If `true`, trims element body, comments and CDATA content. If the + * remaining string is empty, no event will be generated for this + * value. + * + * Default: false + */ + trim: boolean; } export interface ParseElement { @@ -18,16 +40,41 @@ export interface ParseEvent extends Partial { } export enum Type { + /** + * XML processing instruction event + */ PROC, + /** + * XML Doctype element event + */ DOCTYPE, + /** + * XML comment element event + */ COMMENT, + /** + * XML CDATA content event + */ + CDATA, + /** + * XML element start (incl. attribs) event + */ ELEM_START, + /** + * XML element end event (possibly incl. already parsed children) + */ ELEM_END, + /** + * XML element body (text) event + */ ELEM_BODY, + /** + * Parser error event + */ ERROR, } -interface ParseState extends fsm.FSMState { +interface ParseState extends FSMState { scope: any[]; tag: string; attribs: any; @@ -59,6 +106,7 @@ enum State { DOCTYPE, PROC_DECL, PROC_END, + CDATA, // H_CHAR, // U_CHAR, } @@ -85,34 +133,45 @@ const ESCAPE_SEQS = { "\\": "\\" }; -export const parse = (opts: Partial = {}): Transducer => - fsm.fsm({ +/** + * Returns XML parser transducer, optionally configured with given + * options. + * + * @param opts + */ +export const parse = (opts?: Partial): Transducer => + fsm({ states: PARSER, init: () => ({ state: State.WAIT, scope: [], pos: 0, - opts, + opts: { + children: true, + entities: false, + trim: false, + ...opts + }, }), terminate: State.ERROR }); const isWS = (x: string) => { const c = x.charCodeAt(0); - return c === 0x20 || - c === 0x09 || - c === 0x0a || - c === 0x0d; + return c === 0x20 || // space + c === 0x09 || // tab + c === 0x0a || // LF + c === 0x0d; // CR }; const isTagChar = (x: string) => { const c = x.charCodeAt(0); return (c >= 0x41 && c <= 0x5a) || // A-Z - (c >= 0x61 && c <= 0x7a) || // a-z - (c >= 0x30 && c <= 0x39) || // 0-9 - c == 0x2d || // - - c == 0x5f || // _ - c == 0x3a; // : + (c >= 0x61 && c <= 0x7a) || // a-z + (c >= 0x30 && c <= 0x39) || // 0-9 + c == 0x2d || // - + c == 0x5f || // _ + c == 0x3a; // : }; const error = (s: ParseState, body: string) => { @@ -128,7 +187,7 @@ const unexpected = (s: ParseState, x: string) => const replaceEntities = (x: string) => x.replace(ENTITY_RE, (y) => ENTITIES[y]); -const PARSER: fsm.FSMStateMap = { +const PARSER: FSMStateMap = { [State.ERROR]: () => { }, @@ -194,13 +253,13 @@ const PARSER: fsm.FSMStateMap = { const n = scope.length; if (n > 0 && state.tag === scope[n - 1].tag) { const res = scope.pop(); - if (n > 1) { + if (n > 1 && state.opts.children) { scope[n - 2].children.push(res); } state.state = State.WAIT; return [{ type: Type.ELEM_END, ...res }]; } else { - error(state, state.tag); + return error(state, `unmatched tag: '${state.tag}' @ pos ${state.pos - state.tag.length - 2}`); } } }, @@ -211,7 +270,7 @@ const PARSER: fsm.FSMStateMap = { state.state = State.WAIT; const n = state.scope.length; const res = { tag: state.tag, attribs: state.attribs }; - if (n > 0) { + if (n > 0 && state.opts.children) { state.scope[n - 1].children.push(res); } return [ @@ -228,15 +287,22 @@ const PARSER: fsm.FSMStateMap = { let b = state.body; if (ch === "<") { let res; + const t = state.tag; + state.state = State.MAYBE_ELEM; + state.tag = ""; if (b.length > 0) { + if (state.opts.trim) { + b = b.trim(); + if (!b.length) { + return; + } + } if (state.opts.entities) { b = replaceEntities(b); } state.scope[state.scope.length - 1].body = b; - res = [{ type: Type.ELEM_BODY, tag: state.tag, body: b }]; + res = [{ type: Type.ELEM_BODY, tag: t, body: b }]; } - state.state = State.MAYBE_ELEM; - state.tag = ""; return res; } else { if (b.charAt(b.length - 1) === "\\") { @@ -332,6 +398,10 @@ const PARSER: fsm.FSMStateMap = { state.state = State.DOCTYPE; state.phase = 1; state.body = ""; + } else if (ch === "[") { + state.state = State.CDATA; + state.phase = 1; + state.body = ""; } else { return unexpected(state, ch); } @@ -355,7 +425,14 @@ const PARSER: fsm.FSMStateMap = { return unexpected(state, ch); } state.state = State.WAIT; - return [{ type: Type.COMMENT, body: state.body.substr(0, n - 2) }]; + let b = state.body.substr(0, n - 2); + if (state.opts.trim) { + b = b.trim(); + if (!b.length) { + return; + } + } + return [{ type: Type.COMMENT, body: b }]; } else { state.body += ch; } @@ -377,6 +454,34 @@ const PARSER: fsm.FSMStateMap = { } }, + [State.CDATA]: (state, ch) => { + state.pos++; + if (state.phase < 7) { + if (ch === "[CDATA["[state.phase]) { + state.phase++; + } else { + return unexpected(state, ch); + } + } else if (ch === ">") { + const n = state.body.length; + if (state.body.substr(n - 2) !== "]]") { + state.body += ch; + return; + } + state.state = State.WAIT; + let b = state.body.substr(0, n - 2); + if (state.opts.trim) { + b = b.trim(); + if (!b.length) { + return; + } + } + return [{ type: Type.CDATA, body: b }]; + } else { + state.body += ch; + } + }, + [State.PROC_DECL]: (state, ch) => { state.pos++; if (isTagChar(ch)) { From 60dca8ee95c515f9aa8342cc75d1c2131b9c1009 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 20 Jun 2018 01:40:06 +0100 Subject: [PATCH 14/21] Publish - @thi.ng/sax@0.3.0 --- packages/sax/CHANGELOG.md | 11 +++++++++++ packages/sax/package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/sax/CHANGELOG.md b/packages/sax/CHANGELOG.md index 26cc42cc94..4b5b678dd4 100644 --- a/packages/sax/CHANGELOG.md +++ b/packages/sax/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@0.2.0...@thi.ng/sax@0.3.0) (2018-06-20) + + +### Features + +* **sax:** add children & trim opts, add CDATA support ([882f394](https://github.com/thi-ng/umbrella/commit/882f394)) + + + + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@0.1.1...@thi.ng/sax@0.2.0) (2018-06-19) diff --git a/packages/sax/package.json b/packages/sax/package.json index ec98737b42..5790688fc3 100644 --- a/packages/sax/package.json +++ b/packages/sax/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sax", - "version": "0.2.0", + "version": "0.3.0", "description": "Transducer-based, SAX-like, non-validating, speedy & tiny XML parser", "main": "./index.js", "typings": "./index.d.ts", From cd863214ca61321960552d67cc9233e8f8cac286 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 20 Jun 2018 14:22:31 +0100 Subject: [PATCH 15/21] docs(transducers-fsm): fix readme (example) --- packages/transducers-fsm/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/transducers-fsm/README.md b/packages/transducers-fsm/README.md index f4266c82d3..50b081d0fc 100644 --- a/packages/transducers-fsm/README.md +++ b/packages/transducers-fsm/README.md @@ -64,7 +64,7 @@ const testFSM = fsm.fsm({ if (++state.count > 5) { state.state = "take"; state.count = 1; - return x; + return [x]; } } else { state.state = "done"; @@ -78,7 +78,7 @@ const testFSM = fsm.fsm({ state.state = "skip"; state.count = 1; } else { - return x; + return [x]; } } else { state.state = "done"; From a3b245c8d729d40cd4372d7a5671330d11650412 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 20 Jun 2018 14:22:59 +0100 Subject: [PATCH 16/21] Publish - @thi.ng/sax@0.3.1 - @thi.ng/transducers-fsm@0.2.1 --- packages/sax/CHANGELOG.md | 8 ++++++++ packages/sax/package.json | 4 ++-- packages/transducers-fsm/CHANGELOG.md | 8 ++++++++ packages/transducers-fsm/package.json | 2 +- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/sax/CHANGELOG.md b/packages/sax/CHANGELOG.md index 4b5b678dd4..ae4a28677c 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. + +## [0.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@0.3.0...@thi.ng/sax@0.3.1) (2018-06-20) + + + + +**Note:** Version bump only for package @thi.ng/sax + # [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@0.2.0...@thi.ng/sax@0.3.0) (2018-06-20) diff --git a/packages/sax/package.json b/packages/sax/package.json index 5790688fc3..1976f39afa 100644 --- a/packages/sax/package.json +++ b/packages/sax/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sax", - "version": "0.3.0", + "version": "0.3.1", "description": "Transducer-based, SAX-like, non-validating, speedy & tiny XML parser", "main": "./index.js", "typings": "./index.d.ts", @@ -26,7 +26,7 @@ "dependencies": { "@thi.ng/api": "^4.0.3", "@thi.ng/transducers": "^1.11.0", - "@thi.ng/transducers-fsm": "^0.2.0" + "@thi.ng/transducers-fsm": "^0.2.1" }, "keywords": [ "ES6", diff --git a/packages/transducers-fsm/CHANGELOG.md b/packages/transducers-fsm/CHANGELOG.md index 9df5281e2b..c0a49596e9 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. + +## [0.2.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@0.2.0...@thi.ng/transducers-fsm@0.2.1) (2018-06-20) + + + + +**Note:** Version bump only for package @thi.ng/transducers-fsm + # [0.2.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@0.1.0...@thi.ng/transducers-fsm@0.2.0) (2018-06-19) diff --git a/packages/transducers-fsm/package.json b/packages/transducers-fsm/package.json index e971a6150e..4d849debb6 100644 --- a/packages/transducers-fsm/package.json +++ b/packages/transducers-fsm/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers-fsm", - "version": "0.2.0", + "version": "0.2.1", "description": "Transducer-based Finite State Machine transformer", "main": "./index.js", "typings": "./index.d.ts", From 2223bded6163a3cc9e2b3f5d580fc60739b60659 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 21 Jun 2018 12:27:06 +0100 Subject: [PATCH 17/21] docs: fix package links in readmes --- packages/associative/README.md | 6 +++--- packages/atom/README.md | 2 +- packages/cache/README.md | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/associative/README.md b/packages/associative/README.md index a228908913..3c9a6e9e9b 100644 --- a/packages/associative/README.md +++ b/packages/associative/README.md @@ -142,7 +142,7 @@ interface, an extension of the native ES6 Set API. ### ArraySet Simple array based `Set` implementation which by default uses -[@thi.ng/api/equiv](https://github.com/thi-ng/umbrella/tree/master/packages/api/src/equiv.ts) +[@thi.ng/equiv](https://github.com/thi-ng/umbrella/tree/master/packages/equiv/src/index.ts) for value equivalence checking. ### LLSet @@ -161,8 +161,8 @@ canonical keys. By default uses `ArraySet` for this purpose. Alternative implementation of the ES6 Map API using a Skip list as backing store and support for configurable key equality and sorting -semantics. Like with sets, uses @thi.ng/api/equiv & @thi.ng/api/compare -by default. +semantics. Like with sets, uses @thi.ng/equiv & @thi.ng/compare by +default. William Pugh's (creator of this data structure) description: diff --git a/packages/atom/README.md b/packages/atom/README.md index 30eae4a003..552b25d978 100644 --- a/packages/atom/README.md +++ b/packages/atom/README.md @@ -227,7 +227,7 @@ value change (in contrast to normal watches, which execute with each update, regardless of value change). Related, the actual value change predicate can be customized. If not -given, the default `@thi.ng/api/equiv` will be used. +given, the default `@thi.ng/equiv` will be used. ```typescript let x; diff --git a/packages/cache/README.md b/packages/cache/README.md index 9adc4c5464..8d71d93c9b 100644 --- a/packages/cache/README.md +++ b/packages/cache/README.md @@ -21,7 +21,7 @@ strategies available are: - ES6 Map-like API (with minor differences) - Supports any types for both keys & values - Customizable cache limits (no. of items / actual size) -- Customizable key equality checks (@thi.ng/api/equiv by default) +- Customizable key equality checks (@thi.ng/equiv by default) - Optional item release callbacks (to clean up resources when value is expunged) ## Installation @@ -34,6 +34,7 @@ yarn add @thi.ng/cache - [@thi.ng/api](https://github.com/thi-ng/umbrella/tree/master/packages/api) - [@thi.ng/dcons](https://github.com/thi-ng/umbrella/tree/master/packages/dcons) +- [@thi.ng/equiv](https://github.com/thi-ng/umbrella/tree/master/packages/equiv) - [@thi.ng/iterators](https://github.com/thi-ng/umbrella/tree/master/packages/iterators) ## Usage examples From 4611e8e08b914a37ad0505e153c6840b0e9c4fc3 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 21 Jun 2018 12:52:59 +0100 Subject: [PATCH 18/21] chore: update repo & homepage fields in all packages --- packages/api/package.json | 8 ++++++-- packages/associative/package.json | 8 ++++++-- packages/atom/package.json | 8 ++++++-- packages/bench/package.json | 8 ++++++-- packages/bitstream/package.json | 8 ++++++-- packages/cache/package.json | 8 ++++++-- packages/checks/package.json | 8 ++++++-- packages/compare/package.json | 8 ++++++-- packages/csp/package.json | 8 ++++++-- packages/dcons/package.json | 9 +++++++-- packages/defmulti/package.json | 8 ++++++-- packages/dgraph/package.json | 8 ++++++-- packages/diff/package.json | 8 ++++++-- packages/dot/package.json | 8 ++++++-- packages/equiv/package.json | 8 ++++++-- packages/errors/package.json | 8 ++++++-- packages/hdom-components/package.json | 8 ++++++-- packages/hdom/package.json | 8 ++++++-- packages/heaps/package.json | 8 ++++++-- packages/hiccup-css/package.json | 8 ++++++-- packages/hiccup-svg/package.json | 8 ++++++-- packages/hiccup/package.json | 8 ++++++-- packages/interceptors/package.json | 8 ++++++-- packages/iterators/package.json | 8 ++++++-- packages/paths/package.json | 8 ++++++-- packages/pointfree-lang/package.json | 8 ++++++-- packages/pointfree/package.json | 8 ++++++-- packages/resolve-map/package.json | 8 ++++++-- packages/rle-pack/package.json | 8 ++++++-- packages/router/package.json | 8 ++++++-- packages/rstream-csp/package.json | 8 ++++++-- packages/rstream-dot/package.json | 8 ++++++-- packages/rstream-gestures/package.json | 8 ++++++-- packages/rstream-graph/package.json | 8 ++++++-- packages/rstream-log/package.json | 8 ++++++-- packages/rstream-query/package.json | 8 ++++++-- packages/rstream/package.json | 8 ++++++-- packages/sax/package.json | 8 ++++++-- packages/transducers-fsm/package.json | 8 ++++++-- packages/transducers/package.json | 8 ++++++-- packages/unionstruct/package.json | 8 ++++++-- scripts/make-module | 6 +++++- 42 files changed, 252 insertions(+), 83 deletions(-) diff --git a/packages/api/package.json b/packages/api/package.json index 5186e740be..0c829a9454 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -4,7 +4,11 @@ "description": "Common, generic types & interfaces for thi.ng projects", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/api", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -39,4 +43,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/associative/package.json b/packages/associative/package.json index e60fdd9c7f..057d77c90a 100644 --- a/packages/associative/package.json +++ b/packages/associative/package.json @@ -4,7 +4,11 @@ "description": "Alternative Set & Map data type implementations with customizable equality semantics & supporting operations", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/associative", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -50,4 +54,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/atom/package.json b/packages/atom/package.json index 5dd2972363..80ecf564d3 100644 --- a/packages/atom/package.json +++ b/packages/atom/package.json @@ -4,7 +4,11 @@ "description": "Mutable wrapper for immutable values", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/atom", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -42,4 +46,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/bench/package.json b/packages/bench/package.json index ede26a14c9..b6222dcba0 100644 --- a/packages/bench/package.json +++ b/packages/bench/package.json @@ -4,7 +4,11 @@ "description": "Basic benchmarking helpers", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/bench", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -32,4 +36,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/bitstream/package.json b/packages/bitstream/package.json index 9903acc15d..e7d441cd81 100644 --- a/packages/bitstream/package.json +++ b/packages/bitstream/package.json @@ -4,7 +4,11 @@ "description": "ES6 iterator based read/write bit streams & support for variable word widths", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/bitstream", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -38,4 +42,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/cache/package.json b/packages/cache/package.json index 82c6d13469..c03615eec6 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -4,7 +4,11 @@ "description": "In-memory cache implementations with ES6 Map-like API and different eviction strategies", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/cache", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -42,4 +46,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/checks/package.json b/packages/checks/package.json index 8a1646b8f3..82922321f7 100644 --- a/packages/checks/package.json +++ b/packages/checks/package.json @@ -4,7 +4,11 @@ "description": "Single-function sub-modules for type, feature & value checks", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/checks", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -36,4 +40,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/compare/package.json b/packages/compare/package.json index b9fd942a3f..444e605323 100644 --- a/packages/compare/package.json +++ b/packages/compare/package.json @@ -4,7 +4,11 @@ "description": "Comparator with optional delegation for types implementing @thi.ng/api/ICompare interface", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/compare", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -31,4 +35,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/csp/package.json b/packages/csp/package.json index a382355086..1e32449c16 100644 --- a/packages/csp/package.json +++ b/packages/csp/package.json @@ -4,7 +4,11 @@ "description": "ES6 promise based CSP implementation", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/csp", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -50,4 +54,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/dcons/package.json b/packages/dcons/package.json index 7b6795d267..d223fcbd08 100644 --- a/packages/dcons/package.json +++ b/packages/dcons/package.json @@ -4,7 +4,11 @@ "description": "Comprehensive doubly linked list structure w/ iterator support", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/dcons", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -36,6 +40,7 @@ "ES6", "iterators", "linkedlist", + "list", "queue", "stack", "typescript" @@ -43,4 +48,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/defmulti/package.json b/packages/defmulti/package.json index ad66f89e3d..002dbff766 100644 --- a/packages/defmulti/package.json +++ b/packages/defmulti/package.json @@ -4,7 +4,11 @@ "description": "Dynamically extensible multiple dispatch via user supplied dispatch function.", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/defmulti", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -34,4 +38,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/dgraph/package.json b/packages/dgraph/package.json index 55d7f10401..9aea111a12 100644 --- a/packages/dgraph/package.json +++ b/packages/dgraph/package.json @@ -4,7 +4,11 @@ "description": "Type-agnostic directed acyclic graph (DAG) & graph operations", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/dgraph", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -41,4 +45,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/diff/package.json b/packages/diff/package.json index b1262aed67..a87538e0b2 100644 --- a/packages/diff/package.json +++ b/packages/diff/package.json @@ -4,7 +4,11 @@ "description": "Array & object Diff", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/diff", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -36,4 +40,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/dot/package.json b/packages/dot/package.json index b6690e90d6..747792fff8 100644 --- a/packages/dot/package.json +++ b/packages/dot/package.json @@ -4,7 +4,11 @@ "description": "Graphviz DOM abstraction as vanilla JS objects & serialization to DOT format", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/dot", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -34,4 +38,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/equiv/package.json b/packages/equiv/package.json index 2d96a8334d..c61bffdcd8 100644 --- a/packages/equiv/package.json +++ b/packages/equiv/package.json @@ -4,7 +4,11 @@ "description": "Extensible deep equivalence checking for any data types", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/equiv", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -35,4 +39,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/errors/package.json b/packages/errors/package.json index c58f22fc85..6b5e6a4c92 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -4,7 +4,11 @@ "description": "Custom error types and helper fns.", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/errors", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -31,4 +35,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/hdom-components/package.json b/packages/hdom-components/package.json index 62a9f397cd..4589291b63 100644 --- a/packages/hdom-components/package.json +++ b/packages/hdom-components/package.json @@ -4,7 +4,11 @@ "description": "Raw, skinnable UI & SVG components for @thi.ng/hdom", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/hdom-components", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -36,4 +40,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/hdom/package.json b/packages/hdom/package.json index 788cef9be0..923144f330 100644 --- a/packages/hdom/package.json +++ b/packages/hdom/package.json @@ -4,7 +4,11 @@ "description": "Lightweight vanilla ES6 UI component & virtual DOM system", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/hdom", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -45,4 +49,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/heaps/package.json b/packages/heaps/package.json index 9249794969..80f2829341 100644 --- a/packages/heaps/package.json +++ b/packages/heaps/package.json @@ -4,7 +4,11 @@ "description": "Generic binary heap & d-ary heap implementations with customizable ordering", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/heaps", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -39,4 +43,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/hiccup-css/package.json b/packages/hiccup-css/package.json index af9a085ed1..4351120dc5 100644 --- a/packages/hiccup-css/package.json +++ b/packages/hiccup-css/package.json @@ -4,7 +4,11 @@ "description": "CSS from nested JS data structures", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/hiccup-css", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -46,4 +50,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/hiccup-svg/package.json b/packages/hiccup-svg/package.json index 001861dd6a..37883e296c 100644 --- a/packages/hiccup-svg/package.json +++ b/packages/hiccup-svg/package.json @@ -4,7 +4,11 @@ "description": "SVG element functions for @thi.ng/hiccup & @thi.ng/hdom", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/hiccup-svg", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -39,4 +43,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/hiccup/package.json b/packages/hiccup/package.json index 6a9d8238ff..f23aad8247 100644 --- a/packages/hiccup/package.json +++ b/packages/hiccup/package.json @@ -4,7 +4,11 @@ "description": "HTML/SVG/XML serialization of nested data structures, iterables & closures", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/hiccup", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -45,4 +49,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/interceptors/package.json b/packages/interceptors/package.json index de0270d0c4..a156ed5f7f 100644 --- a/packages/interceptors/package.json +++ b/packages/interceptors/package.json @@ -4,7 +4,11 @@ "description": "Interceptor based event bus, side effect & immutable state handling", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/interceptors", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -37,4 +41,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/iterators/package.json b/packages/iterators/package.json index cc797b7291..7abc65efba 100644 --- a/packages/iterators/package.json +++ b/packages/iterators/package.json @@ -4,7 +4,11 @@ "description": "clojure.core inspired, composable ES6 iterators & generators", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/iterators", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -42,4 +46,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/paths/package.json b/packages/paths/package.json index 8c135828ee..f99f9227b1 100644 --- a/packages/paths/package.json +++ b/packages/paths/package.json @@ -4,7 +4,11 @@ "description": "immutable, optimized path-based object property / array accessors", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/paths", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -43,4 +47,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/pointfree-lang/package.json b/packages/pointfree-lang/package.json index c0b14ff29b..7cf369021e 100644 --- a/packages/pointfree-lang/package.json +++ b/packages/pointfree-lang/package.json @@ -4,7 +4,11 @@ "description": "Forth style syntax layer/compiler for the @thi.ng/pointfree DSL", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/pointfree-lang", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -46,4 +50,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/pointfree/package.json b/packages/pointfree/package.json index 5727b6435c..6d87e6a89b 100644 --- a/packages/pointfree/package.json +++ b/packages/pointfree/package.json @@ -4,7 +4,11 @@ "description": "Pointfree functional composition / Forth style stack execution engine", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/pointfree", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -46,4 +50,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/resolve-map/package.json b/packages/resolve-map/package.json index 7d81bf1d2a..38084b44ea 100644 --- a/packages/resolve-map/package.json +++ b/packages/resolve-map/package.json @@ -4,7 +4,11 @@ "description": "DAG resolution of vanilla objects & arrays with internally linked values", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/resolve-map", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -38,4 +42,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/rle-pack/package.json b/packages/rle-pack/package.json index 675483c4d3..d994b67632 100644 --- a/packages/rle-pack/package.json +++ b/packages/rle-pack/package.json @@ -4,7 +4,11 @@ "description": "Binary run-length encoding packer w/ flexible repeat bit widths", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/rle-pack", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -38,4 +42,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/router/package.json b/packages/router/package.json index 6b09daadad..c43288a8d7 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -4,7 +4,11 @@ "description": "Generic router for browser & non-browser based applications", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/router", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -41,4 +45,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/rstream-csp/package.json b/packages/rstream-csp/package.json index ade6fad55c..0551be241a 100644 --- a/packages/rstream-csp/package.json +++ b/packages/rstream-csp/package.json @@ -4,7 +4,11 @@ "description": "@thi.ng/csp bridge module for @thi.ng/rstream", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/rstream-csp", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -38,4 +42,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/rstream-dot/package.json b/packages/rstream-dot/package.json index 24e020fe09..67c0d038dd 100644 --- a/packages/rstream-dot/package.json +++ b/packages/rstream-dot/package.json @@ -4,7 +4,11 @@ "description": "Graphviz DOT conversion of @thi.ng/rstream dataflow graph topologies", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/rstream-dot", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -41,4 +45,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/rstream-gestures/package.json b/packages/rstream-gestures/package.json index 779077230a..5955ecfabe 100644 --- a/packages/rstream-gestures/package.json +++ b/packages/rstream-gestures/package.json @@ -4,7 +4,11 @@ "description": "Unified mouse, mouse wheel & single-touch event stream abstraction", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/rstream-gestures", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -42,4 +46,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/rstream-graph/package.json b/packages/rstream-graph/package.json index a02f6cecd3..c5e6716dfd 100644 --- a/packages/rstream-graph/package.json +++ b/packages/rstream-graph/package.json @@ -4,7 +4,11 @@ "description": "Declarative dataflow graph construction for @thi.ng/rstream", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/rstream-graph", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -44,4 +48,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/rstream-log/package.json b/packages/rstream-log/package.json index 50ddb4eaad..001e8b2987 100644 --- a/packages/rstream-log/package.json +++ b/packages/rstream-log/package.json @@ -4,7 +4,11 @@ "description": "Structured, multilevel & hierarchical loggers based on @thi.ng/rstream", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/rstream-log", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -44,4 +48,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/rstream-query/package.json b/packages/rstream-query/package.json index 215f17e500..a01214848b 100644 --- a/packages/rstream-query/package.json +++ b/packages/rstream-query/package.json @@ -4,7 +4,11 @@ "description": "@thi.ng/rstream based triple store & reactive query engine", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/rstream-query", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -50,4 +54,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/rstream/package.json b/packages/rstream/package.json index d49065a41d..776711d69b 100644 --- a/packages/rstream/package.json +++ b/packages/rstream/package.json @@ -4,7 +4,11 @@ "description": "Reactive multi-tap streams, dataflow & transformation pipeline constructs", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/rstream", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -47,4 +51,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/sax/package.json b/packages/sax/package.json index 1976f39afa..a56a8176f7 100644 --- a/packages/sax/package.json +++ b/packages/sax/package.json @@ -4,7 +4,11 @@ "description": "Transducer-based, SAX-like, non-validating, speedy & tiny XML parser", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/sax", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -40,4 +44,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/transducers-fsm/package.json b/packages/transducers-fsm/package.json index 4d849debb6..e0594c080b 100644 --- a/packages/transducers-fsm/package.json +++ b/packages/transducers-fsm/package.json @@ -4,7 +4,11 @@ "description": "Transducer-based Finite State Machine transformer", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/transducers-fsm", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -37,4 +41,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/transducers/package.json b/packages/transducers/package.json index e8e914edbd..2bb15288be 100644 --- a/packages/transducers/package.json +++ b/packages/transducers/package.json @@ -4,7 +4,11 @@ "description": "Lightweight transducer implementations for ES6 / TypeScript", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/transducers", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -44,4 +48,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/unionstruct/package.json b/packages/unionstruct/package.json index 1d1097e59c..614c2960e9 100644 --- a/packages/unionstruct/package.json +++ b/packages/unionstruct/package.json @@ -4,7 +4,11 @@ "description": "C-style struct, union and bitfield views of ArrayBuffers", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/unionstruct", "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { @@ -37,4 +41,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/scripts/make-module b/scripts/make-module index a4ac63719b..9351d03d4a 100755 --- a/scripts/make-module +++ b/scripts/make-module @@ -31,7 +31,11 @@ cat << EOF > $MODULE/package.json "description": "TODO", "main": "./index.js", "typings": "./index.d.ts", - "repository": "https://github.com/thi-ng/umbrella", + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/$1", "author": "$AUTHOR <$EMAIL>", "license": "Apache-2.0", "scripts": { From cc5b7367c8a8c9ea75959e04dbbdeb9d37eca368 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 21 Jun 2018 13:54:02 +0100 Subject: [PATCH 19/21] feat(rstream): option to avoid auto-closing `fromInterval()`, add docs --- packages/rstream/src/from/interval.ts | 9 ++++++++ packages/rstream/src/from/iterable.ts | 30 +++++++++++++++++++++++---- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/packages/rstream/src/from/interval.ts b/packages/rstream/src/from/interval.ts index 381e35f5ec..f1dc1106f3 100644 --- a/packages/rstream/src/from/interval.ts +++ b/packages/rstream/src/from/interval.ts @@ -1,5 +1,14 @@ import { Stream } from "../stream"; +/** + * Returns a new `Stream` which emits a monotonically increasing counter + * value at given `delay` interval, up to an optionally defined max + * value (default: ∞), after which the stream is closed. The stream only + * starts when the first subscriber becomes available. + * + * @param delay + * @param count + */ export function fromInterval(delay: number, count = Number.POSITIVE_INFINITY) { return new Stream((stream) => { let i = 0; diff --git a/packages/rstream/src/from/iterable.ts b/packages/rstream/src/from/iterable.ts index 2126bdedbf..ea839f13a6 100644 --- a/packages/rstream/src/from/iterable.ts +++ b/packages/rstream/src/from/iterable.ts @@ -1,6 +1,18 @@ import { Stream } from "../stream"; -export function fromIterable(src: Iterable, delay = 0) { +/** + * Creates a new `Stream` of given iterable which asynchronously calls + * `.next()` for each item of the iterable when the first (and in this + * case the only one) subscriber becomes available. The values are + * processed via `setInterval()` using the given `delay` value (default: + * 0). Once the iterable is exhausted (if finite), then calls `.done()` + * by default, but can be avoided by passing `false` as last argument. + * + * @param src + * @param delay + * @param close + */ +export function fromIterable(src: Iterable, delay = 0, close = true) { return new Stream( (stream) => { const iter = src[Symbol.iterator](); @@ -8,7 +20,7 @@ export function fromIterable(src: Iterable, delay = 0) { let val: IteratorResult; if ((val = iter.next()).done) { clearInterval(id); - stream.done(); + close && stream.done(); } else { stream.next(val.value); } @@ -19,13 +31,23 @@ export function fromIterable(src: Iterable, delay = 0) { ); } -export function fromIterableSync(src: Iterable) { +/** + * Creates a new `Stream` of given iterable which synchronously calls + * `.next()` for each item of the iterable when the first (and in this + * case the only one) subscriber becomes available. Once the iterable is + * exhausted (MUST be finite!), then calls `.done()` by default, but can + * be avoided by passing `false` as last argument. + * + * @param src + * @param close + */ +export function fromIterableSync(src: Iterable, close = true) { return new Stream( (stream) => { for (let s of src) { stream.next(s); } - stream.done(); + close && stream.done(); return null; }, `iterable-${Stream.NEXT_ID++}` From d0b1e5c4c3fd01ba4d20702ed07950da698a97be Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 21 Jun 2018 13:55:42 +0100 Subject: [PATCH 20/21] feat(rstream-graph): add stop(), fix `const` inputs, update docs/readme --- packages/rstream-graph/README.md | 93 +++++++++++++++++++++++++++-- packages/rstream-graph/src/api.ts | 17 +++--- packages/rstream-graph/src/graph.ts | 14 ++++- 3 files changed, 110 insertions(+), 14 deletions(-) diff --git a/packages/rstream-graph/README.md b/packages/rstream-graph/README.md index 3a0a9dbe67..7823a7c973 100644 --- a/packages/rstream-graph/README.md +++ b/packages/rstream-graph/README.md @@ -9,13 +9,17 @@ This project is part of the Declarative, reactive dataflow graph construction using [@thi.ng/rstream](https://github.com/thi-ng/umbrella/tree/master/packages/rstream), -[@thi.ng/atom](https://github.com/thi-ng/umbrella/tree/master/packages/atom) and [@thi.ng/transducers](https://github.com/thi-ng/umbrella/tree/master/packages/transducers) +[@thi.ng/atom](https://github.com/thi-ng/umbrella/tree/master/packages/atom) +and +[@thi.ng/transducers](https://github.com/thi-ng/umbrella/tree/master/packages/transducers) primitives. Stream subscription types act as graph nodes and attached transducers as graph edges, transforming data for downstream consumers / nodes. Theoretically, allows cycles and is not restricted to DAG topologies, -but care must be taken to avoid CPU hogging (user's responsibility). +but care must be taken to avoid CPU hogging if those cycles are causing +synchronous computation loops (it the user's responsibility to avoid +these). ## Installation @@ -90,8 +94,89 @@ setTimeout(() => state.resetIn("a", 10), 1000); // result: 360 ``` -Please see documentation in the source code & test cases for further -details. +## Graph specification + +A dataflow graph spec is a plain object where keys are node names and +their values are `NodeSpec`s, defining a node's inputs, outputs and the +operation to be applied to produce one or more result streams. + +```ts +interface NodeSpec { + fn: NodeFactory; + ins: IObjectOf; + outs?: IObjectOf; +} +``` + +Specification for a single "node" in the dataflow graph. Nodes here are +actually just wrappers of streams / subscriptions (or generally any form +of +[@thi.ng/rstream](https://github.com/thi-ng/umbrella/tree/master/packages/rstream) +`ISubscribable`), usually with an associated transducer to transform / +combine the inputs and produce values for the node's result stream. + +The `fn` function is responsible to produce such a stream transformer +construct and the library provides several general purpose helpers for +that purpose. The keys used to specify inputs in the `ins` object are +dictated by the actual node `fn` used. Most node functions with multiple +inputs will be implemented as +[`StreamSync`](https://github.com/thi-ng/umbrella/tree/master/packages/rstream/src/stream-sync.ts) +instances and the input IDs are used to locally rename input streams +within the `StreamSync` container. Alo see `initGraph` and +`nodeFromSpec` (in +[`/src/nodes.ts`](https://github.com/thi-ng/umbrella/tree/master/packages/rstream-graph/src/nodes.ts) +for more details how these specs are compiled into stream constructs. + +Specification for a single input, which can be given in different ways: + +1) Create a stream of value changes at given path in state + [Atom](https://github.com/thi-ng/umbrella/e/master/packages/atom) + (passed to `initGraph`): + +```ts +{ path: "nested.src.path" } +{ path: ["nested", "src", "path"] } +``` + +2) Reference path to another node's output in the GraphSpec object. See + [@thi.ng/resolve-map](https://github.com/thi-ng/umbrella/tree/master/packages/resolve-map) + for details. + +```ts +{ stream: "/node-id/node" } // main node output +{ stream: "/node-id/outs/foo" } // specific output +``` + +3) Reference another node indirectly. The passed in `resolve` function + can be used to lookup other nodes, with the same logic as above. E.g. + the following spec looks up the main output of node "abc" and adds a + transformed subscription, which is then used as input for current + node. + +```ts +{ stream: (resolve) => + resolve("/abc/node").subscribe(map(x => x * 10)) } +``` + +4) Provide an external input stream: + +```ts +{ stream: () => fromIterable([1,2,3], 500) } +``` + +5) Single value input stream: + +```ts +{ const: 1 } +{ const: () => 1 } +``` + +If the optional `xform` key is given, a subscription with the given +transducer is added to the input and then used as input instead. This is +allows for further pre-processing of inputs. + +Please see detailed documentation in the source code & test cases for +further details. ## Authors diff --git a/packages/rstream-graph/src/api.ts b/packages/rstream-graph/src/api.ts index 811802b26e..bda295f8ba 100644 --- a/packages/rstream-graph/src/api.ts +++ b/packages/rstream-graph/src/api.ts @@ -21,10 +21,9 @@ export interface Node { /** * A dataflow graph spec is simply an object where keys are node names - * and their values are either pre-existing @thi.ng/rstream - * `ISubscribable`s, functions returning `ISubscribable`s or - * `NodeSpec`s, defining a node's inputs, outputs and the operation to - * be applied to produce one or more result streams. + * and their values are `NodeSpec`s, defining a node's inputs, outputs + * and the operation to be applied to produce one or more result + * streams. */ export type GraphSpec = IObjectOf< NodeSpec | @@ -33,15 +32,15 @@ export type GraphSpec = IObjectOf< /** * Specification for a single "node" in the dataflow graph. Nodes here - * are actually streams / qsubscriptions (or just generally any form of - * @thi.ng/rstream `ISubscribable`), usually with an associated - * transducer to transform / combine the inputs and produce values for - * the node's result stream. + * are actually just wrappers of streams / subscriptions (or generally + * any form of thi.ng/rstream `ISubscribable`), usually with an + * associated transducer to transform / combine the inputs and produce + * values for the node's result stream. * * The `fn` function is responsible to produce such a stream transformer * construct. The keys used to specify inputs in the `ins` object are * dictated by the actual node `fn` used. Most node functions with - * multiple inputs are implemented as `StreamSync` instances and the + * multiple inputs will be implemented as `StreamSync` instances and the * input IDs are used to locally rename input streams within the * `StreamSync` container. * diff --git a/packages/rstream-graph/src/graph.ts b/packages/rstream-graph/src/graph.ts index a934e34579..c263043a02 100644 --- a/packages/rstream-graph/src/graph.ts +++ b/packages/rstream-graph/src/graph.ts @@ -116,7 +116,7 @@ const prepareNodeInputs = (ins: IObjectOf, state: IAtom, res s = isString(i.stream) ? resolve(i.stream) : i.stream(resolve); } else if (i.const) { - s = fromIterableSync([isFunction(i.const) ? i.const(resolve) : i.const]); + s = fromIterableSync([isFunction(i.const) ? i.const(resolve) : i.const], false); } else { illegalArgs(`invalid node input: ${id}`); @@ -189,6 +189,18 @@ export const removeNode = (graph: Graph, id: string) => { return false; }; +/** + * Calls `.unsubscribe()` on all nodes in the graph, causing all related + * streams & subscriptions to terminate. + * + * @param graph + */ +export const stop = (graph: Graph) => { + for (let id in graph) { + graph[id].node.unsubscribe(); + } +}; + /** * Higher order node / stream creator. Takes a transducer and (optional) * required input stream IDs. The returned function takes an object of From eb2015df26e33d21e18eb1cbc06d019621c456de Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Thu, 21 Jun 2018 13:58:26 +0100 Subject: [PATCH 21/21] Publish - @thi.ng/api@4.0.4 - @thi.ng/associative@0.5.8 - @thi.ng/atom@1.4.2 - @thi.ng/bench@0.1.3 - @thi.ng/bitstream@0.4.13 - @thi.ng/cache@0.2.13 - @thi.ng/checks@1.5.5 - @thi.ng/compare@0.1.4 - @thi.ng/csp@0.3.45 - @thi.ng/dcons@1.0.5 - @thi.ng/defmulti@0.3.5 - @thi.ng/dgraph@0.2.8 - @thi.ng/diff@1.0.19 - @thi.ng/dot@0.1.8 - @thi.ng/equiv@0.1.5 - @thi.ng/errors@0.1.4 - @thi.ng/hdom-components@2.1.8 - @thi.ng/hdom@3.0.26 - @thi.ng/heaps@0.2.13 - @thi.ng/hiccup-css@0.2.3 - @thi.ng/hiccup-svg@1.0.5 - @thi.ng/hiccup@2.0.5 - @thi.ng/interceptors@1.8.5 - @thi.ng/iterators@4.1.18 - @thi.ng/paths@1.3.10 - @thi.ng/pointfree-lang@0.2.15 - @thi.ng/pointfree@0.8.4 - @thi.ng/resolve-map@3.0.2 - @thi.ng/rle-pack@0.2.22 - @thi.ng/router@0.1.18 - @thi.ng/rstream-csp@0.1.78 - @thi.ng/rstream-dot@0.2.17 - @thi.ng/rstream-gestures@0.3.14 - @thi.ng/rstream-graph@2.1.0 - @thi.ng/rstream-log@1.0.29 - @thi.ng/rstream-query@0.3.16 - @thi.ng/rstream@1.8.0 - @thi.ng/sax@0.3.2 - @thi.ng/transducers-fsm@0.2.2 - @thi.ng/transducers@1.11.1 - @thi.ng/unionstruct@0.1.11 --- packages/api/CHANGELOG.md | 8 ++++++++ packages/api/package.json | 6 +++--- packages/associative/CHANGELOG.md | 8 ++++++++ packages/associative/package.json | 18 +++++++++--------- packages/atom/CHANGELOG.md | 8 ++++++++ packages/atom/package.json | 14 +++++++------- packages/bench/CHANGELOG.md | 8 ++++++++ packages/bench/package.json | 4 ++-- packages/bitstream/CHANGELOG.md | 8 ++++++++ packages/bitstream/package.json | 6 +++--- packages/cache/CHANGELOG.md | 8 ++++++++ packages/cache/package.json | 10 +++++----- packages/checks/CHANGELOG.md | 8 ++++++++ packages/checks/package.json | 4 ++-- packages/compare/CHANGELOG.md | 8 ++++++++ packages/compare/package.json | 4 ++-- packages/csp/CHANGELOG.md | 8 ++++++++ packages/csp/package.json | 14 +++++++------- packages/dcons/CHANGELOG.md | 8 ++++++++ packages/dcons/package.json | 14 +++++++------- packages/defmulti/CHANGELOG.md | 8 ++++++++ packages/defmulti/package.json | 8 ++++---- packages/dgraph/CHANGELOG.md | 8 ++++++++ packages/dgraph/package.json | 14 +++++++------- packages/diff/CHANGELOG.md | 8 ++++++++ packages/diff/package.json | 8 ++++---- packages/dot/CHANGELOG.md | 8 ++++++++ packages/dot/package.json | 8 ++++---- packages/equiv/CHANGELOG.md | 8 ++++++++ packages/equiv/package.json | 6 +++--- packages/errors/CHANGELOG.md | 8 ++++++++ packages/errors/package.json | 4 ++-- packages/hdom-components/CHANGELOG.md | 8 ++++++++ packages/hdom-components/package.json | 10 +++++----- packages/hdom/CHANGELOG.md | 8 ++++++++ packages/hdom/package.json | 18 +++++++++--------- packages/heaps/CHANGELOG.md | 8 ++++++++ packages/heaps/package.json | 8 ++++---- packages/hiccup-css/CHANGELOG.md | 8 ++++++++ packages/hiccup-css/package.json | 12 ++++++------ packages/hiccup-svg/CHANGELOG.md | 8 ++++++++ packages/hiccup-svg/package.json | 6 +++--- packages/hiccup/CHANGELOG.md | 8 ++++++++ packages/hiccup/package.json | 10 +++++----- packages/interceptors/CHANGELOG.md | 8 ++++++++ packages/interceptors/package.json | 14 +++++++------- packages/iterators/CHANGELOG.md | 8 ++++++++ packages/iterators/package.json | 10 +++++----- packages/paths/CHANGELOG.md | 8 ++++++++ packages/paths/package.json | 8 ++++---- packages/pointfree-lang/CHANGELOG.md | 8 ++++++++ packages/pointfree-lang/package.json | 10 +++++----- packages/pointfree/CHANGELOG.md | 8 ++++++++ packages/pointfree/package.json | 12 ++++++------ packages/resolve-map/CHANGELOG.md | 12 ++++++++++-- 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 | 12 ++++++------ packages/rstream-csp/CHANGELOG.md | 8 ++++++++ packages/rstream-csp/package.json | 8 ++++---- packages/rstream-dot/CHANGELOG.md | 8 ++++++++ packages/rstream-dot/package.json | 6 +++--- packages/rstream-gestures/CHANGELOG.md | 8 ++++++++ packages/rstream-gestures/package.json | 10 +++++----- packages/rstream-graph/CHANGELOG.md | 11 +++++++++++ packages/rstream-graph/package.json | 18 +++++++++--------- packages/rstream-log/CHANGELOG.md | 8 ++++++++ packages/rstream-log/package.json | 14 +++++++------- packages/rstream-query/CHANGELOG.md | 8 ++++++++ packages/rstream-query/package.json | 20 ++++++++++---------- packages/rstream/CHANGELOG.md | 11 +++++++++++ packages/rstream/package.json | 18 +++++++++--------- packages/sax/CHANGELOG.md | 8 ++++++++ packages/sax/package.json | 10 +++++----- packages/transducers-fsm/CHANGELOG.md | 8 ++++++++ packages/transducers-fsm/package.json | 8 ++++---- packages/transducers/CHANGELOG.md | 8 ++++++++ packages/transducers/package.json | 14 +++++++------- packages/unionstruct/CHANGELOG.md | 8 ++++++++ packages/unionstruct/package.json | 4 ++-- 82 files changed, 545 insertions(+), 211 deletions(-) diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index f33bb19a5d..0b588ebc99 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. + +## [4.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@4.0.3...@thi.ng/api@4.0.4) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/api + ## [4.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@4.0.2...@thi.ng/api@4.0.3) (2018-05-14) diff --git a/packages/api/package.json b/packages/api/package.json index 0c829a9454..618face072 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/api", - "version": "4.0.3", + "version": "4.0.4", "description": "Common, generic types & interfaces for thi.ng projects", "main": "./index.js", "typings": "./index.d.ts", @@ -28,7 +28,7 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/errors": "^0.1.3" + "@thi.ng/errors": "^0.1.4" }, "keywords": [ "compare", @@ -43,4 +43,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/associative/CHANGELOG.md b/packages/associative/CHANGELOG.md index c2ed93ebd4..27879e058d 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. + +## [0.5.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@0.5.7...@thi.ng/associative@0.5.8) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/associative + ## [0.5.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@0.5.6...@thi.ng/associative@0.5.7) (2018-06-18) diff --git a/packages/associative/package.json b/packages/associative/package.json index 057d77c90a..aeb5d6ecdb 100644 --- a/packages/associative/package.json +++ b/packages/associative/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/associative", - "version": "0.5.7", + "version": "0.5.8", "description": "Alternative Set & Map data type implementations with customizable equality semantics & supporting operations", "main": "./index.js", "typings": "./index.d.ts", @@ -28,13 +28,13 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/compare": "^0.1.3", - "@thi.ng/dcons": "^1.0.4", - "@thi.ng/equiv": "^0.1.4", - "@thi.ng/errors": "^0.1.3", - "@thi.ng/iterators": "^4.1.17" + "@thi.ng/api": "^4.0.4", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/compare": "^0.1.4", + "@thi.ng/dcons": "^1.0.5", + "@thi.ng/equiv": "^0.1.5", + "@thi.ng/errors": "^0.1.4", + "@thi.ng/iterators": "^4.1.18" }, "keywords": [ "data structures", @@ -54,4 +54,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/atom/CHANGELOG.md b/packages/atom/CHANGELOG.md index a58ab17008..823f6e2fc3 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. + +## [1.4.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@1.4.1...@thi.ng/atom@1.4.2) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/atom + ## [1.4.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@1.4.0...@thi.ng/atom@1.4.1) (2018-06-18) diff --git a/packages/atom/package.json b/packages/atom/package.json index 80ecf564d3..82475b9ed7 100644 --- a/packages/atom/package.json +++ b/packages/atom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/atom", - "version": "1.4.1", + "version": "1.4.2", "description": "Mutable wrapper for immutable values", "main": "./index.js", "typings": "./index.d.ts", @@ -28,11 +28,11 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/equiv": "^0.1.4", - "@thi.ng/errors": "^0.1.3", - "@thi.ng/paths": "^1.3.9" + "@thi.ng/api": "^4.0.4", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/equiv": "^0.1.5", + "@thi.ng/errors": "^0.1.4", + "@thi.ng/paths": "^1.3.10" }, "keywords": [ "cursor", @@ -46,4 +46,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/bench/CHANGELOG.md b/packages/bench/CHANGELOG.md index 5cad05bc54..beceb0fa00 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. + +## [0.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@0.1.2...@thi.ng/bench@0.1.3) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/bench + ## [0.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@0.1.1...@thi.ng/bench@0.1.2) (2018-06-18) diff --git a/packages/bench/package.json b/packages/bench/package.json index b6222dcba0..6de3c242ee 100644 --- a/packages/bench/package.json +++ b/packages/bench/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bench", - "version": "0.1.2", + "version": "0.1.3", "description": "Basic benchmarking helpers", "main": "./index.js", "typings": "./index.d.ts", @@ -36,4 +36,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/bitstream/CHANGELOG.md b/packages/bitstream/CHANGELOG.md index 4cf46f5115..dd7e09712e 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. + +## [0.4.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@0.4.12...@thi.ng/bitstream@0.4.13) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/bitstream + ## [0.4.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@0.4.11...@thi.ng/bitstream@0.4.12) (2018-05-14) diff --git a/packages/bitstream/package.json b/packages/bitstream/package.json index e7d441cd81..3a5af6218d 100644 --- a/packages/bitstream/package.json +++ b/packages/bitstream/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bitstream", - "version": "0.4.12", + "version": "0.4.13", "description": "ES6 iterator based read/write bit streams & support for variable word widths", "main": "./index.js", "typings": "./index.d.ts", @@ -20,7 +20,7 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "dependencies": { - "@thi.ng/errors": "^0.1.3" + "@thi.ng/errors": "^0.1.4" }, "devDependencies": { "@types/mocha": "^5.2.0", @@ -42,4 +42,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/cache/CHANGELOG.md b/packages/cache/CHANGELOG.md index a58eed2566..5dfcb11ab1 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. + +## [0.2.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@0.2.12...@thi.ng/cache@0.2.13) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/cache + ## [0.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@0.2.11...@thi.ng/cache@0.2.12) (2018-06-18) diff --git a/packages/cache/package.json b/packages/cache/package.json index c03615eec6..c39f4f6a89 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/cache", - "version": "0.2.12", + "version": "0.2.13", "description": "In-memory cache implementations with ES6 Map-like API and different eviction strategies", "main": "./index.js", "typings": "./index.d.ts", @@ -28,9 +28,9 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/dcons": "^1.0.4", - "@thi.ng/iterators": "^4.1.17" + "@thi.ng/api": "^4.0.4", + "@thi.ng/dcons": "^1.0.5", + "@thi.ng/iterators": "^4.1.18" }, "keywords": [ "cache", @@ -46,4 +46,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/checks/CHANGELOG.md b/packages/checks/CHANGELOG.md index 039f4eaf1a..54d23f58f4 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. + +## [1.5.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@1.5.4...@thi.ng/checks@1.5.5) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/checks + ## [1.5.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@1.5.3...@thi.ng/checks@1.5.4) (2018-06-18) diff --git a/packages/checks/package.json b/packages/checks/package.json index 82922321f7..62c40bffd1 100644 --- a/packages/checks/package.json +++ b/packages/checks/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/checks", - "version": "1.5.4", + "version": "1.5.5", "description": "Single-function sub-modules for type, feature & value checks", "main": "./index.js", "typings": "./index.d.ts", @@ -40,4 +40,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/compare/CHANGELOG.md b/packages/compare/CHANGELOG.md index acc3755417..664386f43f 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. + +## [0.1.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@0.1.3...@thi.ng/compare@0.1.4) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/compare + ## [0.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@0.1.2...@thi.ng/compare@0.1.3) (2018-05-14) diff --git a/packages/compare/package.json b/packages/compare/package.json index 444e605323..2775241220 100644 --- a/packages/compare/package.json +++ b/packages/compare/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/compare", - "version": "0.1.3", + "version": "0.1.4", "description": "Comparator with optional delegation for types implementing @thi.ng/api/ICompare interface", "main": "./index.js", "typings": "./index.d.ts", @@ -35,4 +35,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/csp/CHANGELOG.md b/packages/csp/CHANGELOG.md index 3448611ffc..460d8e1287 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. + +## [0.3.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@0.3.44...@thi.ng/csp@0.3.45) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/csp + ## [0.3.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@0.3.43...@thi.ng/csp@0.3.44) (2018-06-19) diff --git a/packages/csp/package.json b/packages/csp/package.json index 1e32449c16..36e0c11d82 100644 --- a/packages/csp/package.json +++ b/packages/csp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/csp", - "version": "0.3.44", + "version": "0.3.45", "description": "ES6 promise based CSP implementation", "main": "./index.js", "typings": "./index.d.ts", @@ -32,11 +32,11 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/dcons": "^1.0.4", - "@thi.ng/errors": "^0.1.3", - "@thi.ng/transducers": "^1.11.0" + "@thi.ng/api": "^4.0.4", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/dcons": "^1.0.5", + "@thi.ng/errors": "^0.1.4", + "@thi.ng/transducers": "^1.11.1" }, "keywords": [ "async", @@ -54,4 +54,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/dcons/CHANGELOG.md b/packages/dcons/CHANGELOG.md index fa96111cc2..e4997a4552 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. + +## [1.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@1.0.4...@thi.ng/dcons@1.0.5) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/dcons + ## [1.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@1.0.3...@thi.ng/dcons@1.0.4) (2018-06-18) diff --git a/packages/dcons/package.json b/packages/dcons/package.json index d223fcbd08..c11ddcf3be 100644 --- a/packages/dcons/package.json +++ b/packages/dcons/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dcons", - "version": "1.0.4", + "version": "1.0.5", "description": "Comprehensive doubly linked list structure w/ iterator support", "main": "./index.js", "typings": "./index.d.ts", @@ -28,11 +28,11 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/compare": "^0.1.3", - "@thi.ng/equiv": "^0.1.4", - "@thi.ng/errors": "^0.1.3" + "@thi.ng/api": "^4.0.4", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/compare": "^0.1.4", + "@thi.ng/equiv": "^0.1.5", + "@thi.ng/errors": "^0.1.4" }, "keywords": [ "datastructure", @@ -48,4 +48,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/defmulti/CHANGELOG.md b/packages/defmulti/CHANGELOG.md index a44f24f00d..58dd8076dd 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. + +## [0.3.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@0.3.4...@thi.ng/defmulti@0.3.5) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/defmulti + ## [0.3.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@0.3.3...@thi.ng/defmulti@0.3.4) (2018-05-14) diff --git a/packages/defmulti/package.json b/packages/defmulti/package.json index 002dbff766..fa1ffe5c95 100644 --- a/packages/defmulti/package.json +++ b/packages/defmulti/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/defmulti", - "version": "0.3.4", + "version": "0.3.5", "description": "Dynamically extensible multiple dispatch via user supplied dispatch function.", "main": "./index.js", "typings": "./index.d.ts", @@ -28,8 +28,8 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/errors": "^0.1.3" + "@thi.ng/api": "^4.0.4", + "@thi.ng/errors": "^0.1.4" }, "keywords": [ "ES6", @@ -38,4 +38,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/dgraph/CHANGELOG.md b/packages/dgraph/CHANGELOG.md index 221a59a5ce..b189365a50 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. + +## [0.2.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@0.2.7...@thi.ng/dgraph@0.2.8) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/dgraph + ## [0.2.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@0.2.6...@thi.ng/dgraph@0.2.7) (2018-06-18) diff --git a/packages/dgraph/package.json b/packages/dgraph/package.json index 9aea111a12..2512297c86 100644 --- a/packages/dgraph/package.json +++ b/packages/dgraph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dgraph", - "version": "0.2.7", + "version": "0.2.8", "description": "Type-agnostic directed acyclic graph (DAG) & graph operations", "main": "./index.js", "typings": "./index.d.ts", @@ -28,11 +28,11 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/associative": "^0.5.7", - "@thi.ng/equiv": "^0.1.4", - "@thi.ng/errors": "^0.1.3", - "@thi.ng/iterators": "^4.1.17" + "@thi.ng/api": "^4.0.4", + "@thi.ng/associative": "^0.5.8", + "@thi.ng/equiv": "^0.1.5", + "@thi.ng/errors": "^0.1.4", + "@thi.ng/iterators": "^4.1.18" }, "keywords": [ "data structure", @@ -45,4 +45,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/diff/CHANGELOG.md b/packages/diff/CHANGELOG.md index f04d924c25..fad4861c8a 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. + +## [1.0.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@1.0.18...@thi.ng/diff@1.0.19) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/diff + ## [1.0.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@1.0.17...@thi.ng/diff@1.0.18) (2018-06-18) diff --git a/packages/diff/package.json b/packages/diff/package.json index a87538e0b2..b562bb7e9a 100644 --- a/packages/diff/package.json +++ b/packages/diff/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/diff", - "version": "1.0.18", + "version": "1.0.19", "description": "Array & object Diff", "main": "./index.js", "typings": "./index.d.ts", @@ -26,8 +26,8 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/equiv": "^0.1.4" + "@thi.ng/api": "^4.0.4", + "@thi.ng/equiv": "^0.1.5" }, "keywords": [ "array", @@ -40,4 +40,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/dot/CHANGELOG.md b/packages/dot/CHANGELOG.md index 696b358cbc..b7f5194b75 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. + +## [0.1.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@0.1.7...@thi.ng/dot@0.1.8) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/dot + ## [0.1.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@0.1.6...@thi.ng/dot@0.1.7) (2018-06-18) diff --git a/packages/dot/package.json b/packages/dot/package.json index 747792fff8..2ffd61f490 100644 --- a/packages/dot/package.json +++ b/packages/dot/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dot", - "version": "0.1.7", + "version": "0.1.8", "description": "Graphviz DOM abstraction as vanilla JS objects & serialization to DOT format", "main": "./index.js", "typings": "./index.d.ts", @@ -28,8 +28,8 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/checks": "^1.5.4" + "@thi.ng/api": "^4.0.4", + "@thi.ng/checks": "^1.5.5" }, "keywords": [ "ES6", @@ -38,4 +38,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/equiv/CHANGELOG.md b/packages/equiv/CHANGELOG.md index a3a508bec9..eece6af9dd 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. + +## [0.1.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@0.1.4...@thi.ng/equiv@0.1.5) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/equiv + ## [0.1.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@0.1.3...@thi.ng/equiv@0.1.4) (2018-06-18) diff --git a/packages/equiv/package.json b/packages/equiv/package.json index c61bffdcd8..58e1148a41 100644 --- a/packages/equiv/package.json +++ b/packages/equiv/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/equiv", - "version": "0.1.4", + "version": "0.1.5", "description": "Extensible deep equivalence checking for any data types", "main": "./index.js", "typings": "./index.d.ts", @@ -28,7 +28,7 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/checks": "^1.5.4" + "@thi.ng/checks": "^1.5.5" }, "keywords": [ "deep", @@ -39,4 +39,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/errors/CHANGELOG.md b/packages/errors/CHANGELOG.md index 4aecca8f2d..cddd89c9ea 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. + +## [0.1.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/errors@0.1.3...@thi.ng/errors@0.1.4) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/errors + ## [0.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/errors@0.1.2...@thi.ng/errors@0.1.3) (2018-05-14) diff --git a/packages/errors/package.json b/packages/errors/package.json index 6b5e6a4c92..cd858f1431 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/errors", - "version": "0.1.3", + "version": "0.1.4", "description": "Custom error types and helper fns.", "main": "./index.js", "typings": "./index.d.ts", @@ -35,4 +35,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/hdom-components/CHANGELOG.md b/packages/hdom-components/CHANGELOG.md index 0f060f870f..6db3b12c04 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. + +## [2.1.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@2.1.7...@thi.ng/hdom-components@2.1.8) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/hdom-components + ## [2.1.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@2.1.6...@thi.ng/hdom-components@2.1.7) (2018-06-18) diff --git a/packages/hdom-components/package.json b/packages/hdom-components/package.json index 4589291b63..ff485ef6a2 100644 --- a/packages/hdom-components/package.json +++ b/packages/hdom-components/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom-components", - "version": "2.1.7", + "version": "2.1.8", "description": "Raw, skinnable UI & SVG components for @thi.ng/hdom", "main": "./index.js", "typings": "./index.d.ts", @@ -28,9 +28,9 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/iterators": "^4.1.17", + "@thi.ng/api": "^4.0.4", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/iterators": "^4.1.18", "@types/webgl2": "^0.0.3" }, "keywords": [ @@ -40,4 +40,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/hdom/CHANGELOG.md b/packages/hdom/CHANGELOG.md index fe16c20dff..d64a23749d 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. + +## [3.0.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.25...@thi.ng/hdom@3.0.26) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/hdom + ## [3.0.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.24...@thi.ng/hdom@3.0.25) (2018-06-18) diff --git a/packages/hdom/package.json b/packages/hdom/package.json index 923144f330..898ff4eef2 100644 --- a/packages/hdom/package.json +++ b/packages/hdom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom", - "version": "3.0.25", + "version": "3.0.26", "description": "Lightweight vanilla ES6 UI component & virtual DOM system", "main": "./index.js", "typings": "./index.d.ts", @@ -20,7 +20,7 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@thi.ng/atom": "^1.4.1", + "@thi.ng/atom": "^1.4.2", "@types/mocha": "^5.2.0", "@types/node": "^10.0.6", "mocha": "^5.1.1", @@ -29,12 +29,12 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/diff": "^1.0.18", - "@thi.ng/equiv": "^0.1.4", - "@thi.ng/hiccup": "^2.0.4", - "@thi.ng/iterators": "^4.1.17" + "@thi.ng/api": "^4.0.4", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/diff": "^1.0.19", + "@thi.ng/equiv": "^0.1.5", + "@thi.ng/hiccup": "^2.0.5", + "@thi.ng/iterators": "^4.1.18" }, "keywords": [ "browser", @@ -49,4 +49,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/heaps/CHANGELOG.md b/packages/heaps/CHANGELOG.md index 5c3602bc3f..8f0b924c04 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. + +## [0.2.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@0.2.12...@thi.ng/heaps@0.2.13) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/heaps + ## [0.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@0.2.11...@thi.ng/heaps@0.2.12) (2018-05-14) diff --git a/packages/heaps/package.json b/packages/heaps/package.json index 80f2829341..65d0c50058 100644 --- a/packages/heaps/package.json +++ b/packages/heaps/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/heaps", - "version": "0.2.12", + "version": "0.2.13", "description": "Generic binary heap & d-ary heap implementations with customizable ordering", "main": "./index.js", "typings": "./index.d.ts", @@ -28,8 +28,8 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/compare": "^0.1.3" + "@thi.ng/api": "^4.0.4", + "@thi.ng/compare": "^0.1.4" }, "keywords": [ "data structure", @@ -43,4 +43,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/hiccup-css/CHANGELOG.md b/packages/hiccup-css/CHANGELOG.md index 8804f22a35..db432a47f9 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. + +## [0.2.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@0.2.2...@thi.ng/hiccup-css@0.2.3) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/hiccup-css + ## [0.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@0.2.1...@thi.ng/hiccup-css@0.2.2) (2018-06-19) diff --git a/packages/hiccup-css/package.json b/packages/hiccup-css/package.json index 4351120dc5..f2d4aa488e 100644 --- a/packages/hiccup-css/package.json +++ b/packages/hiccup-css/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-css", - "version": "0.2.2", + "version": "0.2.3", "description": "CSS from nested JS data structures", "main": "./index.js", "typings": "./index.d.ts", @@ -28,10 +28,10 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/errors": "^0.1.3", - "@thi.ng/transducers": "^1.11.0" + "@thi.ng/api": "^4.0.4", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/errors": "^0.1.4", + "@thi.ng/transducers": "^1.11.1" }, "keywords": [ "clojure", @@ -50,4 +50,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/hiccup-svg/CHANGELOG.md b/packages/hiccup-svg/CHANGELOG.md index 64cff12bcb..f3a5f6e1a9 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. + +## [1.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@1.0.4...@thi.ng/hiccup-svg@1.0.5) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/hiccup-svg + ## [1.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@1.0.3...@thi.ng/hiccup-svg@1.0.4) (2018-06-18) diff --git a/packages/hiccup-svg/package.json b/packages/hiccup-svg/package.json index 37883e296c..36e355af77 100644 --- a/packages/hiccup-svg/package.json +++ b/packages/hiccup-svg/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-svg", - "version": "1.0.4", + "version": "1.0.5", "description": "SVG element functions for @thi.ng/hiccup & @thi.ng/hdom", "main": "./index.js", "typings": "./index.d.ts", @@ -28,7 +28,7 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/hiccup": "^2.0.4" + "@thi.ng/hiccup": "^2.0.5" }, "keywords": [ "components", @@ -43,4 +43,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/hiccup/CHANGELOG.md b/packages/hiccup/CHANGELOG.md index 9ca647facc..bb61d95af7 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. + +## [2.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@2.0.4...@thi.ng/hiccup@2.0.5) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/hiccup + ## [2.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@2.0.3...@thi.ng/hiccup@2.0.4) (2018-06-18) diff --git a/packages/hiccup/package.json b/packages/hiccup/package.json index f23aad8247..4ab7e21972 100644 --- a/packages/hiccup/package.json +++ b/packages/hiccup/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup", - "version": "2.0.4", + "version": "2.0.5", "description": "HTML/SVG/XML serialization of nested data structures, iterables & closures", "main": "./index.js", "typings": "./index.d.ts", @@ -20,7 +20,7 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@thi.ng/atom": "^1.4.1", + "@thi.ng/atom": "^1.4.2", "@types/mocha": "^5.2.0", "@types/node": "^10.0.6", "mocha": "^5.1.1", @@ -29,8 +29,8 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/checks": "^1.5.4", - "@thi.ng/errors": "^0.1.3" + "@thi.ng/checks": "^1.5.5", + "@thi.ng/errors": "^0.1.4" }, "keywords": [ "clojure", @@ -49,4 +49,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/interceptors/CHANGELOG.md b/packages/interceptors/CHANGELOG.md index 4503b87d3c..99bf1a63ee 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. + +## [1.8.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@1.8.4...@thi.ng/interceptors@1.8.5) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/interceptors + ## [1.8.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@1.8.3...@thi.ng/interceptors@1.8.4) (2018-06-18) diff --git a/packages/interceptors/package.json b/packages/interceptors/package.json index a156ed5f7f..b275e0adbc 100644 --- a/packages/interceptors/package.json +++ b/packages/interceptors/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/interceptors", - "version": "1.8.4", + "version": "1.8.5", "description": "Interceptor based event bus, side effect & immutable state handling", "main": "./index.js", "typings": "./index.d.ts", @@ -28,11 +28,11 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/atom": "^1.4.1", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/errors": "^0.1.3", - "@thi.ng/paths": "^1.3.9" + "@thi.ng/api": "^4.0.4", + "@thi.ng/atom": "^1.4.2", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/errors": "^0.1.4", + "@thi.ng/paths": "^1.3.10" }, "keywords": [ "ES6", @@ -41,4 +41,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/iterators/CHANGELOG.md b/packages/iterators/CHANGELOG.md index 977ac41499..8b4c629542 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. + +## [4.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@4.1.17...@thi.ng/iterators@4.1.18) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/iterators + ## [4.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@4.1.16...@thi.ng/iterators@4.1.17) (2018-06-18) diff --git a/packages/iterators/package.json b/packages/iterators/package.json index 7abc65efba..4389886040 100644 --- a/packages/iterators/package.json +++ b/packages/iterators/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/iterators", - "version": "4.1.17", + "version": "4.1.18", "description": "clojure.core inspired, composable ES6 iterators & generators", "main": "./index.js", "typings": "./index.d.ts", @@ -28,9 +28,9 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/dcons": "^1.0.4", - "@thi.ng/errors": "^0.1.3" + "@thi.ng/api": "^4.0.4", + "@thi.ng/dcons": "^1.0.5", + "@thi.ng/errors": "^0.1.4" }, "keywords": [ "clojure", @@ -46,4 +46,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/paths/CHANGELOG.md b/packages/paths/CHANGELOG.md index a1bf43a635..ef99e390be 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. + +## [1.3.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@1.3.9...@thi.ng/paths@1.3.10) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/paths + ## [1.3.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@1.3.8...@thi.ng/paths@1.3.9) (2018-06-18) diff --git a/packages/paths/package.json b/packages/paths/package.json index f99f9227b1..1974edc056 100644 --- a/packages/paths/package.json +++ b/packages/paths/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/paths", - "version": "1.3.9", + "version": "1.3.10", "description": "immutable, optimized path-based object property / array accessors", "main": "./index.js", "typings": "./index.d.ts", @@ -28,8 +28,8 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/checks": "^1.5.4", - "@thi.ng/errors": "^0.1.3" + "@thi.ng/checks": "^1.5.5", + "@thi.ng/errors": "^0.1.4" }, "keywords": [ "accessors", @@ -47,4 +47,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/pointfree-lang/CHANGELOG.md b/packages/pointfree-lang/CHANGELOG.md index 6c97e1441a..68a37d1fac 100644 --- a/packages/pointfree-lang/CHANGELOG.md +++ b/packages/pointfree-lang/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.2.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@0.2.14...@thi.ng/pointfree-lang@0.2.15) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/pointfree-lang + ## [0.2.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@0.2.13...@thi.ng/pointfree-lang@0.2.14) (2018-06-18) diff --git a/packages/pointfree-lang/package.json b/packages/pointfree-lang/package.json index 7cf369021e..71482737d6 100644 --- a/packages/pointfree-lang/package.json +++ b/packages/pointfree-lang/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pointfree-lang", - "version": "0.2.14", + "version": "0.2.15", "description": "Forth style syntax layer/compiler for the @thi.ng/pointfree DSL", "main": "./index.js", "typings": "./index.d.ts", @@ -30,9 +30,9 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/errors": "^0.1.3", - "@thi.ng/pointfree": "^0.8.3" + "@thi.ng/api": "^4.0.4", + "@thi.ng/errors": "^0.1.4", + "@thi.ng/pointfree": "^0.8.4" }, "keywords": [ "concatenative", @@ -50,4 +50,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/pointfree/CHANGELOG.md b/packages/pointfree/CHANGELOG.md index d18370bb31..424ca22d1d 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. + +## [0.8.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@0.8.3...@thi.ng/pointfree@0.8.4) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/pointfree + ## [0.8.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@0.8.2...@thi.ng/pointfree@0.8.3) (2018-06-18) diff --git a/packages/pointfree/package.json b/packages/pointfree/package.json index 6d87e6a89b..0dd7a77c04 100644 --- a/packages/pointfree/package.json +++ b/packages/pointfree/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pointfree", - "version": "0.8.3", + "version": "0.8.4", "description": "Pointfree functional composition / Forth style stack execution engine", "main": "./index.js", "typings": "./index.d.ts", @@ -28,10 +28,10 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/equiv": "^0.1.4", - "@thi.ng/errors": "^0.1.3" + "@thi.ng/api": "^4.0.4", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/equiv": "^0.1.5", + "@thi.ng/errors": "^0.1.4" }, "keywords": [ "composition", @@ -50,4 +50,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/resolve-map/CHANGELOG.md b/packages/resolve-map/CHANGELOG.md index c3bf8b568a..160d8fde2b 100644 --- a/packages/resolve-map/CHANGELOG.md +++ b/packages/resolve-map/CHANGELOG.md @@ -3,7 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - + +## [3.0.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@3.0.1...@thi.ng/resolve-map@3.0.2) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/resolve-map + + ## [3.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@3.0.0...@thi.ng/resolve-map@3.0.1) (2018-06-18) @@ -11,7 +19,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline **Note:** Version bump only for package @thi.ng/resolve-map - + # [3.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@2.0.6...@thi.ng/resolve-map@3.0.0) (2018-06-07) diff --git a/packages/resolve-map/package.json b/packages/resolve-map/package.json index 38084b44ea..b819cd5cac 100644 --- a/packages/resolve-map/package.json +++ b/packages/resolve-map/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/resolve-map", - "version": "3.0.1", + "version": "3.0.2", "description": "DAG resolution of vanilla objects & arrays with internally linked values", "main": "./index.js", "typings": "./index.d.ts", @@ -26,9 +26,9 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/checks": "^1.5.4", - "@thi.ng/errors": "^0.1.3", - "@thi.ng/paths": "^1.3.9" + "@thi.ng/checks": "^1.5.5", + "@thi.ng/errors": "^0.1.4", + "@thi.ng/paths": "^1.3.10" }, "keywords": [ "configuration", @@ -42,4 +42,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/rle-pack/CHANGELOG.md b/packages/rle-pack/CHANGELOG.md index 6c3f62c1c2..05bcead5ec 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. + +## [0.2.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@0.2.21...@thi.ng/rle-pack@0.2.22) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/rle-pack + ## [0.2.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@0.2.20...@thi.ng/rle-pack@0.2.21) (2018-05-14) diff --git a/packages/rle-pack/package.json b/packages/rle-pack/package.json index d994b67632..9d4d4bd616 100644 --- a/packages/rle-pack/package.json +++ b/packages/rle-pack/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rle-pack", - "version": "0.2.21", + "version": "0.2.22", "description": "Binary run-length encoding packer w/ flexible repeat bit widths", "main": "./index.js", "typings": "./index.d.ts", @@ -29,7 +29,7 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/bitstream": "^0.4.12" + "@thi.ng/bitstream": "^0.4.13" }, "keywords": [ "binary", @@ -42,4 +42,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md index 1f514d90f7..38dee7deb6 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. + +## [0.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@0.1.17...@thi.ng/router@0.1.18) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/router + ## [0.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@0.1.16...@thi.ng/router@0.1.17) (2018-06-18) diff --git a/packages/router/package.json b/packages/router/package.json index c43288a8d7..10e98f14bc 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/router", - "version": "0.1.17", + "version": "0.1.18", "description": "Generic router for browser & non-browser based applications", "main": "./index.js", "typings": "./index.d.ts", @@ -27,10 +27,10 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/equiv": "^0.1.4", - "@thi.ng/errors": "^0.1.3" + "@thi.ng/api": "^4.0.4", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/equiv": "^0.1.5", + "@thi.ng/errors": "^0.1.4" }, "keywords": [ "declarative", @@ -45,4 +45,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/rstream-csp/CHANGELOG.md b/packages/rstream-csp/CHANGELOG.md index 1d47d44143..b9c95246e3 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. + +## [0.1.78](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@0.1.77...@thi.ng/rstream-csp@0.1.78) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/rstream-csp + ## [0.1.77](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@0.1.76...@thi.ng/rstream-csp@0.1.77) (2018-06-19) diff --git a/packages/rstream-csp/package.json b/packages/rstream-csp/package.json index 0551be241a..b1e6bbc0b1 100644 --- a/packages/rstream-csp/package.json +++ b/packages/rstream-csp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-csp", - "version": "0.1.77", + "version": "0.1.78", "description": "@thi.ng/csp bridge module for @thi.ng/rstream", "main": "./index.js", "typings": "./index.d.ts", @@ -28,8 +28,8 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/csp": "^0.3.44", - "@thi.ng/rstream": "^1.7.3" + "@thi.ng/csp": "^0.3.45", + "@thi.ng/rstream": "^1.8.0" }, "keywords": [ "bridge", @@ -42,4 +42,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/rstream-dot/CHANGELOG.md b/packages/rstream-dot/CHANGELOG.md index 5b243355aa..280414f472 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. + +## [0.2.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@0.2.16...@thi.ng/rstream-dot@0.2.17) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/rstream-dot + ## [0.2.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@0.2.15...@thi.ng/rstream-dot@0.2.16) (2018-06-19) diff --git a/packages/rstream-dot/package.json b/packages/rstream-dot/package.json index 67c0d038dd..6f97d99720 100644 --- a/packages/rstream-dot/package.json +++ b/packages/rstream-dot/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-dot", - "version": "0.2.16", + "version": "0.2.17", "description": "Graphviz DOT conversion of @thi.ng/rstream dataflow graph topologies", "main": "./index.js", "typings": "./index.d.ts", @@ -28,7 +28,7 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/rstream": "^1.7.3" + "@thi.ng/rstream": "^1.8.0" }, "keywords": [ "conversion", @@ -45,4 +45,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/rstream-gestures/CHANGELOG.md b/packages/rstream-gestures/CHANGELOG.md index 222c8da4f6..e7e2db6ff8 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. + +## [0.3.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@0.3.13...@thi.ng/rstream-gestures@0.3.14) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/rstream-gestures + ## [0.3.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@0.3.12...@thi.ng/rstream-gestures@0.3.13) (2018-06-19) diff --git a/packages/rstream-gestures/package.json b/packages/rstream-gestures/package.json index 5955ecfabe..734843895d 100644 --- a/packages/rstream-gestures/package.json +++ b/packages/rstream-gestures/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-gestures", - "version": "0.3.13", + "version": "0.3.14", "description": "Unified mouse, mouse wheel & single-touch event stream abstraction", "main": "./index.js", "typings": "./index.d.ts", @@ -28,9 +28,9 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/rstream": "^1.7.3", - "@thi.ng/transducers": "^1.11.0" + "@thi.ng/api": "^4.0.4", + "@thi.ng/rstream": "^1.8.0", + "@thi.ng/transducers": "^1.11.1" }, "keywords": [ "dataflow", @@ -46,4 +46,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/rstream-graph/CHANGELOG.md b/packages/rstream-graph/CHANGELOG.md index 4a3e46ed05..28006105c3 100644 --- a/packages/rstream-graph/CHANGELOG.md +++ b/packages/rstream-graph/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/rstream-graph@2.0.3...@thi.ng/rstream-graph@2.1.0) (2018-06-21) + + +### Features + +* **rstream-graph:** add stop(), fix `const` inputs, update docs/readme ([d0b1e5c](https://github.com/thi-ng/umbrella/commit/d0b1e5c)) + + + + ## [2.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@2.0.2...@thi.ng/rstream-graph@2.0.3) (2018-06-19) diff --git a/packages/rstream-graph/package.json b/packages/rstream-graph/package.json index c5e6716dfd..db7129c991 100644 --- a/packages/rstream-graph/package.json +++ b/packages/rstream-graph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-graph", - "version": "2.0.3", + "version": "2.1.0", "description": "Declarative dataflow graph construction for @thi.ng/rstream", "main": "./index.js", "typings": "./index.d.ts", @@ -28,13 +28,13 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/errors": "^0.1.3", - "@thi.ng/paths": "^1.3.9", - "@thi.ng/resolve-map": "^3.0.1", - "@thi.ng/rstream": "^1.7.3", - "@thi.ng/transducers": "^1.11.0" + "@thi.ng/api": "^4.0.4", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/errors": "^0.1.4", + "@thi.ng/paths": "^1.3.10", + "@thi.ng/resolve-map": "^3.0.2", + "@thi.ng/rstream": "^1.8.0", + "@thi.ng/transducers": "^1.11.1" }, "keywords": [ "compute", @@ -48,4 +48,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/rstream-log/CHANGELOG.md b/packages/rstream-log/CHANGELOG.md index 7a11b241fd..1323c200db 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. + +## [1.0.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@1.0.28...@thi.ng/rstream-log@1.0.29) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/rstream-log + ## [1.0.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@1.0.27...@thi.ng/rstream-log@1.0.28) (2018-06-19) diff --git a/packages/rstream-log/package.json b/packages/rstream-log/package.json index 001e8b2987..9bb9fd48a1 100644 --- a/packages/rstream-log/package.json +++ b/packages/rstream-log/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-log", - "version": "1.0.28", + "version": "1.0.29", "description": "Structured, multilevel & hierarchical loggers based on @thi.ng/rstream", "main": "./index.js", "typings": "./index.d.ts", @@ -28,11 +28,11 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/errors": "^0.1.3", - "@thi.ng/rstream": "^1.7.3", - "@thi.ng/transducers": "^1.11.0" + "@thi.ng/api": "^4.0.4", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/errors": "^0.1.4", + "@thi.ng/rstream": "^1.8.0", + "@thi.ng/transducers": "^1.11.1" }, "keywords": [ "ES6", @@ -48,4 +48,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/rstream-query/CHANGELOG.md b/packages/rstream-query/CHANGELOG.md index 8e46677a53..bbbf69808f 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. + +## [0.3.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@0.3.15...@thi.ng/rstream-query@0.3.16) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/rstream-query + ## [0.3.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@0.3.14...@thi.ng/rstream-query@0.3.15) (2018-06-19) diff --git a/packages/rstream-query/package.json b/packages/rstream-query/package.json index a01214848b..87e495caeb 100644 --- a/packages/rstream-query/package.json +++ b/packages/rstream-query/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-query", - "version": "0.3.15", + "version": "0.3.16", "description": "@thi.ng/rstream based triple store & reactive query engine", "main": "./index.js", "typings": "./index.d.ts", @@ -28,14 +28,14 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/associative": "^0.5.7", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/equiv": "^0.1.4", - "@thi.ng/errors": "^0.1.3", - "@thi.ng/rstream": "^1.7.3", - "@thi.ng/rstream-dot": "^0.2.16", - "@thi.ng/transducers": "^1.11.0" + "@thi.ng/api": "^4.0.4", + "@thi.ng/associative": "^0.5.8", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/equiv": "^0.1.5", + "@thi.ng/errors": "^0.1.4", + "@thi.ng/rstream": "^1.8.0", + "@thi.ng/rstream-dot": "^0.2.17", + "@thi.ng/transducers": "^1.11.1" }, "keywords": [ "dataflow", @@ -54,4 +54,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/rstream/CHANGELOG.md b/packages/rstream/CHANGELOG.md index 43cdb53e96..49df2db48b 100644 --- a/packages/rstream/CHANGELOG.md +++ b/packages/rstream/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.8.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@1.7.3...@thi.ng/rstream@1.8.0) (2018-06-21) + + +### Features + +* **rstream:** option to avoid auto-closing `fromInterval()`, add docs ([cc5b736](https://github.com/thi-ng/umbrella/commit/cc5b736)) + + + + ## [1.7.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@1.7.2...@thi.ng/rstream@1.7.3) (2018-06-19) diff --git a/packages/rstream/package.json b/packages/rstream/package.json index 776711d69b..98754347b2 100644 --- a/packages/rstream/package.json +++ b/packages/rstream/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream", - "version": "1.7.3", + "version": "1.8.0", "description": "Reactive multi-tap streams, dataflow & transformation pipeline constructs", "main": "./index.js", "typings": "./index.d.ts", @@ -28,13 +28,13 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/associative": "^0.5.7", - "@thi.ng/atom": "^1.4.1", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/errors": "^0.1.3", - "@thi.ng/paths": "^1.3.9", - "@thi.ng/transducers": "^1.11.0" + "@thi.ng/api": "^4.0.4", + "@thi.ng/associative": "^0.5.8", + "@thi.ng/atom": "^1.4.2", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/errors": "^0.1.4", + "@thi.ng/paths": "^1.3.10", + "@thi.ng/transducers": "^1.11.1" }, "keywords": [ "datastructure", @@ -51,4 +51,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/sax/CHANGELOG.md b/packages/sax/CHANGELOG.md index ae4a28677c..ed94deaafc 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. + +## [0.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@0.3.1...@thi.ng/sax@0.3.2) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/sax + ## [0.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@0.3.0...@thi.ng/sax@0.3.1) (2018-06-20) diff --git a/packages/sax/package.json b/packages/sax/package.json index a56a8176f7..2af5e9092b 100644 --- a/packages/sax/package.json +++ b/packages/sax/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sax", - "version": "0.3.1", + "version": "0.3.2", "description": "Transducer-based, SAX-like, non-validating, speedy & tiny XML parser", "main": "./index.js", "typings": "./index.d.ts", @@ -28,9 +28,9 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/transducers": "^1.11.0", - "@thi.ng/transducers-fsm": "^0.2.1" + "@thi.ng/api": "^4.0.4", + "@thi.ng/transducers": "^1.11.1", + "@thi.ng/transducers-fsm": "^0.2.2" }, "keywords": [ "ES6", @@ -44,4 +44,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/transducers-fsm/CHANGELOG.md b/packages/transducers-fsm/CHANGELOG.md index c0a49596e9..81bcfffe27 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. + +## [0.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@0.2.1...@thi.ng/transducers-fsm@0.2.2) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/transducers-fsm + ## [0.2.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@0.2.0...@thi.ng/transducers-fsm@0.2.1) (2018-06-20) diff --git a/packages/transducers-fsm/package.json b/packages/transducers-fsm/package.json index e0594c080b..b825ef6d81 100644 --- a/packages/transducers-fsm/package.json +++ b/packages/transducers-fsm/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers-fsm", - "version": "0.2.1", + "version": "0.2.2", "description": "Transducer-based Finite State Machine transformer", "main": "./index.js", "typings": "./index.d.ts", @@ -28,8 +28,8 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/transducers": "^1.11.0" + "@thi.ng/api": "^4.0.4", + "@thi.ng/transducers": "^1.11.1" }, "keywords": [ "ES6", @@ -41,4 +41,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/transducers/CHANGELOG.md b/packages/transducers/CHANGELOG.md index d8a258a633..954027b8dd 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. + +## [1.11.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@1.11.0...@thi.ng/transducers@1.11.1) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/transducers + # [1.11.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@1.10.3...@thi.ng/transducers@1.11.0) (2018-06-19) diff --git a/packages/transducers/package.json b/packages/transducers/package.json index 2bb15288be..98645a96f0 100644 --- a/packages/transducers/package.json +++ b/packages/transducers/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers", - "version": "1.11.0", + "version": "1.11.1", "description": "Lightweight transducer implementations for ES6 / TypeScript", "main": "./index.js", "typings": "./index.d.ts", @@ -28,11 +28,11 @@ "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^4.0.3", - "@thi.ng/checks": "^1.5.4", - "@thi.ng/compare": "^0.1.3", - "@thi.ng/equiv": "^0.1.4", - "@thi.ng/errors": "^0.1.3" + "@thi.ng/api": "^4.0.4", + "@thi.ng/checks": "^1.5.5", + "@thi.ng/compare": "^0.1.4", + "@thi.ng/equiv": "^0.1.5", + "@thi.ng/errors": "^0.1.4" }, "keywords": [ "ES6", @@ -48,4 +48,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/unionstruct/CHANGELOG.md b/packages/unionstruct/CHANGELOG.md index 58e03e42df..069c12b95e 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. + +## [0.1.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@0.1.10...@thi.ng/unionstruct@0.1.11) (2018-06-21) + + + + +**Note:** Version bump only for package @thi.ng/unionstruct + ## [0.1.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@0.1.9...@thi.ng/unionstruct@0.1.10) (2018-05-13) diff --git a/packages/unionstruct/package.json b/packages/unionstruct/package.json index 614c2960e9..de288bc28e 100644 --- a/packages/unionstruct/package.json +++ b/packages/unionstruct/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/unionstruct", - "version": "0.1.10", + "version": "0.1.11", "description": "C-style struct, union and bitfield views of ArrayBuffers", "main": "./index.js", "typings": "./index.d.ts", @@ -41,4 +41,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +}