From 4e4495161d1ca97219cd97ed7831983853348c38 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 7 Jun 2020 16:55:31 +0100 Subject: [PATCH 01/29] docs: update pkg list in main readme --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bec56c68da..ead452cc61 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ > the composer of. Geared towards versatility, not any specific type of music." > — [@loganpowell](https://twitter.com/logantpowell/status/1186334119812304901) via Twitter -Mono-repository for ~125 thi.ng TypeScript/ES6 projects, a wide +Mono-repository for 126 thi.ng TypeScript/ES6 projects, a wide collection of largely data transformation oriented packages and building blocks for: @@ -197,10 +197,11 @@ fairly detailed overview for contributors here: |-----------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------| | [`@thi.ng/dl-asset`](./packages/dl-asset) | [![version](https://img.shields.io/npm/v/@thi.ng/dl-asset.svg)](https://www.npmjs.com/package/@thi.ng/dl-asset) | [changelog](./packages/download/CHANGELOG.md) | Asset download trigger helper | | [`@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-canvas`](./packages/hdom-canvas) | [![version](https://img.shields.io/npm/v/@thi.ng/hdom-canvas.svg)](https://www.npmjs.com/package/@thi.ng/hdom-canvas) | [changelog](./packages/hdom-canvas/CHANGELOG.md) | hdom based declarative canvas drawing | +| [`@thi.ng/hdom-canvas`](./packages/hdom-canvas) | [![version](https://img.shields.io/npm/v/@thi.ng/hdom-canvas.svg)](https://www.npmjs.com/package/@thi.ng/hdom-canvas) | [changelog](./packages/hdom-canvas/CHANGELOG.md) | hdom adapter for hiccup-canvas | | [`@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/hdom-mock`](./packages/hdom-mock) | [![version](https://img.shields.io/npm/v/@thi.ng/hdom-mock.svg)](https://www.npmjs.com/package/@thi.ng/hdom-mock) | [changelog](./packages/hdom-mock/CHANGELOG.md) | hdom mock implementation (testing / prototyping) | | [`@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-canvas`](./packages/hiccup-canvas) | [![version](https://img.shields.io/npm/v/@thi.ng/hiccup-canvas.svg)](https://www.npmjs.com/package/@thi.ng/hiccup-canvas) | [changelog](./packages/hiccup-canvas/CHANGELOG.md) | hiccup interpreter for canvas api | | [`@thi.ng/hiccup-carbon-icons`](./packages/hiccup-carbon-icons) | [![version](https://img.shields.io/npm/v/@thi.ng/hiccup-carbon-icons.svg)](https://www.npmjs.com/package/@thi.ng/hiccup-carbon-icons) | [changelog](./packages/hiccup-carbon-icons/CHANGELOG.md) | IBM Carbon icons in hiccup format | | [`@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-markdown`](./packages/hiccup-markdown) | [![version](https://img.shields.io/npm/v/@thi.ng/hiccup-markdown.svg)](https://www.npmjs.com/package/@thi.ng/hiccup-markdown) | [changelog](./packages/hiccup-markdown/CHANGELOG.md) | Hiccup-to-Markdown serialization | @@ -214,6 +215,7 @@ fairly detailed overview for contributors here: | Project | Version | Changelog | Description | |---------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|------------------------------------------| +| [`@thi.ng/adapt-dpi`](./packages/adapt-dpi) | [![version](https://img.shields.io/npm/v/@thi.ng/adapt-dpi.svg)](https://www.npmjs.com/package/@thi.ng/adapt-dpi) | [changelog](./packages/adapt-dpi/CHANGELOG.md) | HDPI canvas adaptation / styling util | | [`@thi.ng/color`](./packages/color) | [![version](https://img.shields.io/npm/v/@thi.ng/color.svg)](https://www.npmjs.com/package/@thi.ng/color) | [changelog](./packages/color/CHANGELOG.md) | Color conversions, gradients | | [`@thi.ng/dgraph-dot`](./packages/dgraph-dot) | [![version](https://img.shields.io/npm/v/@thi.ng/dgraph-dot.svg)](https://www.npmjs.com/package/@thi.ng/dgraph-dot) | [changelog](./packages/dgraph-dot/CHANGELOG.md) | Dependency graph -> Graphviz | | [`@thi.ng/dot`](./packages/dot) | [![version](https://img.shields.io/npm/v/@thi.ng/dot.svg)](https://www.npmjs.com/package/@thi.ng/dot) | [changelog](./packages/dot/CHANGELOG.md) | Graphviz DOM & export | From 1d26ff4c4fdc5e6f27ace793428eb6d6b3a59d92 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 8 Jun 2020 15:06:25 +0100 Subject: [PATCH 02/29] style: re-apply prettier to all pkgs / source files --- packages/adjacency/test/binary.ts | 16 +- packages/adjacency/test/mst.ts | 12 +- packages/adjacency/test/sparse.ts | 19 +- packages/api/src/decorators/configurable.ts | 2 +- packages/api/src/decorators/deprecated.ts | 4 +- packages/api/src/logger.ts | 2 +- packages/api/src/mixin.ts | 6 +- packages/api/src/mixins/ienable.ts | 2 +- packages/api/src/mixins/inotify.ts | 2 +- packages/api/src/mixins/iterable.ts | 2 +- packages/api/src/mixins/iwatch.ts | 2 +- packages/api/test/mixins.ts | 8 +- packages/arrays/src/levenshtein.ts | 2 +- packages/arrays/test/binary-search.ts | 9 +- .../associative/src/internal/xform-setop.ts | 2 +- packages/associative/test/join.ts | 44 +- packages/associative/test/merge.ts | 15 +- packages/associative/test/sparse-set.ts | 7 +- packages/associative/test/union.ts | 1 - packages/atom/test/atom.ts | 26 +- packages/atom/test/cursor.ts | 7 +- packages/bench/src/benchmark.ts | 2 +- packages/bencode/src/index.ts | 14 +- packages/binary/src/float.ts | 2 +- packages/binary/src/logic.ts | 2 +- packages/binary/src/swizzle.ts | 7 +- packages/bitfield/src/bitfield.ts | 8 +- packages/bitfield/src/bitmatrix.ts | 8 +- packages/bitstream/src/input.ts | 2 +- packages/bitstream/test/index.ts | 4 +- packages/cache/src/api.ts | 2 +- packages/cache/src/lru.ts | 2 +- packages/cache/src/tlru.ts | 2 +- packages/cache/test/lru.ts | 10 +- packages/cache/test/mru.ts | 10 +- packages/cache/test/tlru.ts | 44 +- packages/checks/src/is-mobile.ts | 4 +- packages/checks/test/index.ts | 9 +- packages/color/src/convert.ts | 11 +- packages/color/src/internal/matrix-ops.ts | 2 +- packages/color/src/kelvin-rgba.ts | 2 +- packages/color/src/names.ts | 2 +- packages/color/src/parse-css.ts | 4 +- packages/color/src/rgba-hcva.ts | 2 +- packages/color/src/rgba-hcya.ts | 2 +- packages/color/src/rgba-hsia.ts | 7 +- packages/compose/src/complement.ts | 2 +- packages/compose/src/partial.ts | 2 +- packages/compose/test/delay.ts | 1 - packages/compose/test/juxt.ts | 25 +- packages/csp/src/api.ts | 7 +- packages/csp/test/graph.ts | 2 +- packages/csp/test/node.ts | 8 +- packages/dcons/src/index.ts | 4 +- packages/defmulti/src/api.ts | 2 +- packages/defmulti/src/constants.ts | 2 +- packages/defmulti/src/defmulti.ts | 2 +- packages/defmulti/test/index.ts | 2 +- packages/dgraph/test/index.ts | 34 +- packages/diff/test/array.ts | 16 +- packages/dl-asset/src/index.ts | 8 +- packages/dlogic/src/index.ts | 6 +- packages/dsp-io-wav/src/write.ts | 29 +- packages/dsp-io-wav/test/index.ts | 2 +- packages/dsp/src/comp/mapg.ts | 8 +- packages/dsp/src/fft/fft.ts | 2 +- packages/dsp/src/gen/adsr.ts | 4 +- packages/dsp/src/proc/biquad.ts | 9 +- packages/dsp/src/proc/delay.ts | 7 +- packages/dsp/src/proc/onepole.ts | 2 +- packages/dsp/test/fft.ts | 10 +- packages/dynvar/src/index.ts | 7 +- packages/ecs/src/api.ts | 2 +- packages/ecs/src/components/acomponent.ts | 8 +- .../ecs/src/components/object-component.ts | 7 +- packages/ecs/src/ecs.ts | 11 +- packages/ecs/src/groups/group.ts | 13 +- packages/ecs/test/component.ts | 16 +- packages/ecs/test/group.ts | 4 +- packages/equiv/test/index.ts | 15 +- packages/fsm/src/alts.ts | 2 +- packages/fsm/src/fsm.ts | 9 +- packages/fsm/src/lit.ts | 7 +- packages/fsm/src/not.ts | 13 +- packages/fsm/src/range.ts | 6 +- packages/fsm/src/repeat.ts | 7 +- packages/fsm/src/seq.ts | 7 +- packages/fsm/src/str.ts | 7 +- packages/geom-accel/test/quadtree.ts | 4 +- packages/geom-api/src/accel.ts | 7 +- packages/geom-arc/src/bounds.ts | 2 +- packages/geom-arc/src/from-endpoints.ts | 6 +- packages/geom-clip-line/src/index.ts | 4 +- packages/geom-closest-point/src/index.ts | 2 +- packages/geom-isec/src/api.ts | 2 +- packages/geom-isec/src/circle-circle.ts | 4 +- packages/geom-isec/src/line-line.ts | 6 +- packages/geom-isec/src/plane-plane.ts | 12 +- packages/geom-isec/src/point.ts | 2 +- packages/geom-isec/src/ray-circle.ts | 8 +- packages/geom-isec/src/ray-line.ts | 2 +- packages/geom-isec/src/ray-plane.ts | 13 +- packages/geom-isec/src/ray-poly.ts | 4 +- packages/geom-isec/src/ray-rect.ts | 6 +- packages/geom-poly-utils/src/barycentric.ts | 2 +- packages/geom-poly-utils/src/bounds.ts | 7 +- packages/geom-poly-utils/src/equilateral.ts | 2 +- packages/geom-resample/src/sampler.ts | 2 +- packages/geom-splines/src/cubic-arc.ts | 12 +- .../geom-splines/src/cubic-closest-point.ts | 7 +- .../src/cubic-from-breakpoints.ts | 4 +- .../src/cubic-from-controlpoints.ts | 4 +- packages/geom-splines/src/cubic-line.ts | 2 +- packages/geom-splines/src/cubic-quadratic.ts | 2 +- packages/geom-splines/src/cubic-split.ts | 5 +- packages/geom-splines/src/cubic-tangent.ts | 7 +- packages/geom-splines/src/internal/sample.ts | 8 +- .../src/quadratic-closest-point.ts | 7 +- packages/geom-splines/src/quadratic-line.ts | 2 +- packages/geom-splines/src/quadratic-split.ts | 5 +- .../geom-splines/src/quadratic-tangent.ts | 8 +- packages/geom-subdiv-curve/src/api.ts | 16 +- packages/geom-subdiv-curve/src/kernels.ts | 8 +- packages/geom-subdiv-curve/src/subdivide.ts | 2 +- packages/geom-tessellate/src/edge-split.ts | 7 +- packages/geom-tessellate/src/inset.ts | 7 +- packages/geom-tessellate/src/quad-fan.ts | 2 +- packages/geom-tessellate/src/rim-tris.ts | 12 +- packages/geom-tessellate/src/tessellate.ts | 2 +- packages/geom-tessellate/src/tri-fan.ts | 7 +- packages/geom-voronoi/src/index.ts | 12 +- packages/geom/src/api/arc.ts | 13 +- packages/geom/src/api/cubic.ts | 2 +- packages/geom/src/api/group.ts | 7 +- packages/geom/src/api/line.ts | 6 +- packages/geom/src/api/quadratic.ts | 2 +- packages/geom/src/api/ray.ts | 2 +- packages/geom/src/api/rect.ts | 7 +- packages/geom/src/ctors/aabb.ts | 2 +- packages/geom/src/ctors/circle.ts | 7 +- packages/geom/src/ctors/cubic.ts | 6 +- packages/geom/src/ctors/path-builder.ts | 28 +- packages/geom/src/ctors/path-from-svg.ts | 2 +- packages/geom/src/ctors/path.ts | 2 +- packages/geom/src/ctors/plane.ts | 2 +- packages/geom/src/ctors/polygon.ts | 2 +- packages/geom/src/ctors/quad.ts | 16 +- packages/geom/src/ctors/rect.ts | 2 +- packages/geom/src/ctors/sphere.ts | 7 +- packages/geom/src/internal/args.ts | 4 +- packages/geom/src/internal/collate.ts | 2 +- packages/geom/src/internal/split.ts | 5 +- packages/geom/src/internal/union-bounds.ts | 9 +- packages/geom/src/ops/arc-length.ts | 2 +- packages/geom/src/ops/area.ts | 4 +- packages/geom/src/ops/as-cubic.ts | 16 +- packages/geom/src/ops/as-polygon.ts | 2 +- packages/geom/src/ops/as-svg.ts | 2 +- packages/geom/src/ops/bounds.ts | 21 +- packages/geom/src/ops/center.ts | 13 +- packages/geom/src/ops/centroid.ts | 22 +- packages/geom/src/ops/classify-point.ts | 7 +- packages/geom/src/ops/clip-convex.ts | 2 +- packages/geom/src/ops/closest-point.ts | 11 +- packages/geom/src/ops/convex-hull.ts | 2 +- packages/geom/src/ops/edges.ts | 4 +- packages/geom/src/ops/fit-into-bounds.ts | 2 +- packages/geom/src/ops/flip.ts | 2 +- packages/geom/src/ops/intersects.ts | 10 +- packages/geom/src/ops/map-point.ts | 15 +- packages/geom/src/ops/point-at.ts | 4 +- packages/geom/src/ops/point-inside.ts | 4 +- packages/geom/src/ops/resample.ts | 9 +- packages/geom/src/ops/simplify.ts | 13 +- packages/geom/src/ops/split-at.ts | 4 +- packages/geom/src/ops/split-near.ts | 7 +- packages/geom/src/ops/subdiv-curve.ts | 2 +- packages/geom/src/ops/tangent-at.ts | 2 +- packages/geom/src/ops/transform.ts | 15 +- packages/geom/src/ops/translate.ts | 14 +- packages/geom/src/ops/union.ts | 6 +- packages/geom/src/ops/unmap-point.ts | 15 +- packages/geom/src/ops/vertices.ts | 22 +- packages/geom/src/ops/volume.ts | 2 +- packages/gp/src/ast.ts | 22 +- packages/gp/src/mep.ts | 10 +- packages/gp/src/utils.ts | 13 +- packages/gp/test/ast.ts | 26 +- packages/gp/test/mep.ts | 184 ++-- packages/hdom-components/src/button-group.ts | 4 +- packages/hdom-components/src/button.ts | 10 +- packages/hdom-components/src/dropdown.ts | 4 +- packages/hdom-components/src/fps-counter.ts | 10 +- packages/hdom-components/src/link.ts | 6 +- packages/hdom-components/src/notification.ts | 2 +- packages/hdom-components/src/sparkline.ts | 16 +- packages/hdom-components/src/title.ts | 4 +- packages/hdom-components/src/toggle.ts | 22 +- packages/hdom-mock/src/index.ts | 2 +- packages/hdom-mock/test/index.ts | 20 +- packages/hdom/src/default.ts | 4 +- packages/heaps/src/heap.ts | 2 +- packages/heaps/src/pairing.ts | 4 +- packages/heaps/test/dheap.ts | 4 +- packages/heaps/test/heap.ts | 4 +- .../hiccup-carbon-icons/src/add-outline.ts | 16 +- packages/hiccup-carbon-icons/src/add-solid.ts | 19 +- packages/hiccup-carbon-icons/src/add.ts | 18 +- packages/hiccup-carbon-icons/src/api.ts | 25 +- .../hiccup-carbon-icons/src/app-services.ts | 33 +- .../hiccup-carbon-icons/src/applications.ts | 17 +- packages/hiccup-carbon-icons/src/apps.ts | 17 +- .../hiccup-carbon-icons/src/arrow-down.ts | 19 +- .../hiccup-carbon-icons/src/arrow-left.ts | 19 +- .../hiccup-carbon-icons/src/arrow-right.ts | 19 +- packages/hiccup-carbon-icons/src/arrow-up.ts | 19 +- packages/hiccup-carbon-icons/src/arrows.ts | 19 +- packages/hiccup-carbon-icons/src/asleep.ts | 19 +- .../hiccup-carbon-icons/src/attachment.ts | 19 +- packages/hiccup-carbon-icons/src/awake.ts | 19 +- .../hiccup-carbon-icons/src/back-to-top.ts | 19 +- .../hiccup-carbon-icons/src/block-chain.ts | 17 +- packages/hiccup-carbon-icons/src/calendar.ts | 19 +- .../hiccup-carbon-icons/src/caret-down.ts | 18 +- .../hiccup-carbon-icons/src/caret-left.ts | 18 +- .../hiccup-carbon-icons/src/caret-right.ts | 18 +- packages/hiccup-carbon-icons/src/caret-up.ts | 18 +- packages/hiccup-carbon-icons/src/cf-apps.ts | 25 +- packages/hiccup-carbon-icons/src/chat.ts | 16 +- .../src/checkmark-outline.ts | 16 +- .../src/checkmark-solid.ts | 19 +- packages/hiccup-carbon-icons/src/checkmark.ts | 18 +- .../hiccup-carbon-icons/src/chevron-down.ts | 18 +- .../hiccup-carbon-icons/src/chevron-left.ts | 18 +- .../hiccup-carbon-icons/src/chevron-right.ts | 18 +- .../hiccup-carbon-icons/src/chevron-up.ts | 18 +- .../hiccup-carbon-icons/src/close-outline.ts | 22 +- .../hiccup-carbon-icons/src/close-solid.ts | 19 +- packages/hiccup-carbon-icons/src/close.ts | 19 +- .../hiccup-carbon-icons/src/cloud-foundry.ts | 25 +- packages/hiccup-carbon-icons/src/code.ts | 19 +- packages/hiccup-carbon-icons/src/console.ts | 17 +- .../hiccup-carbon-icons/src/containers.ts | 14 +- packages/hiccup-carbon-icons/src/copy.ts | 16 +- packages/hiccup-carbon-icons/src/crash.ts | 19 +- packages/hiccup-carbon-icons/src/dashboard.ts | 17 +- packages/hiccup-carbon-icons/src/data.ts | 17 +- packages/hiccup-carbon-icons/src/delete.ts | 16 +- packages/hiccup-carbon-icons/src/devices.ts | 41 +- packages/hiccup-carbon-icons/src/devops.ts | 17 +- packages/hiccup-carbon-icons/src/document.ts | 26 +- packages/hiccup-carbon-icons/src/dollars.ts | 19 +- packages/hiccup-carbon-icons/src/download.ts | 14 +- packages/hiccup-carbon-icons/src/draggable.ts | 19 +- packages/hiccup-carbon-icons/src/edit.ts | 19 +- packages/hiccup-carbon-icons/src/email.ts | 19 +- .../hiccup-carbon-icons/src/error-outline.ts | 19 +- .../hiccup-carbon-icons/src/error-solid.ts | 19 +- packages/hiccup-carbon-icons/src/error.ts | 19 +- .../src/favorite-outline.ts | 17 +- .../hiccup-carbon-icons/src/favorite-solid.ts | 17 +- packages/hiccup-carbon-icons/src/favorite.ts | 17 +- packages/hiccup-carbon-icons/src/filter.ts | 19 +- packages/hiccup-carbon-icons/src/finance.ts | 14 +- packages/hiccup-carbon-icons/src/financial.ts | 14 +- .../hiccup-carbon-icons/src/folder-add.ts | 19 +- packages/hiccup-carbon-icons/src/folder.ts | 19 +- packages/hiccup-carbon-icons/src/forum.ts | 16 +- packages/hiccup-carbon-icons/src/functions.ts | 22 +- packages/hiccup-carbon-icons/src/grid.ts | 19 +- .../hiccup-carbon-icons/src/header-avatar.ts | 22 +- .../hiccup-carbon-icons/src/header-chevron.ts | 19 +- .../hiccup-carbon-icons/src/header-close.ts | 19 +- .../hiccup-carbon-icons/src/header-contact.ts | 17 +- .../hiccup-carbon-icons/src/header-docs.ts | 26 +- .../src/header-hamburger.ts | 13 +- .../hiccup-carbon-icons/src/header-help.ts | 46 +- .../src/header-notification.ts | 19 +- .../hiccup-carbon-icons/src/header-search.ts | 19 +- .../hiccup-carbon-icons/src/header-ticket.ts | 17 +- .../hiccup-carbon-icons/src/header-user.ts | 19 +- .../hiccup-carbon-icons/src/help-outline.ts | 51 +- .../hiccup-carbon-icons/src/help-solid.ts | 19 +- packages/hiccup-carbon-icons/src/help.ts | 25 +- .../hiccup-carbon-icons/src/hpa-stress.ts | 19 +- packages/hiccup-carbon-icons/src/hpa.ts | 19 +- packages/hiccup-carbon-icons/src/index.ts | 288 +++---- .../hiccup-carbon-icons/src/info-outline.ts | 50 +- .../hiccup-carbon-icons/src/info-solid.ts | 19 +- packages/hiccup-carbon-icons/src/info.ts | 33 +- .../hiccup-carbon-icons/src/infrastructure.ts | 22 +- .../hiccup-carbon-icons/src/integration.ts | 17 +- packages/hiccup-carbon-icons/src/iot.ts | 25 +- packages/hiccup-carbon-icons/src/launch.ts | 18 +- packages/hiccup-carbon-icons/src/light.ts | 39 +- packages/hiccup-carbon-icons/src/link.ts | 22 +- packages/hiccup-carbon-icons/src/list.ts | 51 +- packages/hiccup-carbon-icons/src/locked.ts | 19 +- packages/hiccup-carbon-icons/src/maximize.ts | 19 +- packages/hiccup-carbon-icons/src/menu.ts | 15 +- packages/hiccup-carbon-icons/src/minimize.ts | 19 +- packages/hiccup-carbon-icons/src/mobile.ts | 64 +- packages/hiccup-carbon-icons/src/network.ts | 17 +- packages/hiccup-carbon-icons/src/new-tab.ts | 19 +- .../src/notification-off.ts | 32 +- .../src/notification-on.ts | 19 +- .../hiccup-carbon-icons/src/open-whisk.ts | 25 +- .../hiccup-carbon-icons/src/overflow-menu.ts | 53 +- packages/hiccup-carbon-icons/src/pa-stress.ts | 19 +- packages/hiccup-carbon-icons/src/pa.ts | 19 +- .../hiccup-carbon-icons/src/pause-outline.ts | 26 +- .../hiccup-carbon-icons/src/pause-solid.ts | 18 +- packages/hiccup-carbon-icons/src/pause.ts | 8 +- .../hiccup-carbon-icons/src/play-outline.ts | 22 +- .../hiccup-carbon-icons/src/play-solid.ts | 19 +- packages/hiccup-carbon-icons/src/play.ts | 8 +- packages/hiccup-carbon-icons/src/portfolio.ts | 19 +- packages/hiccup-carbon-icons/src/power.ts | 26 +- .../hiccup-carbon-icons/src/predictive.ts | 19 +- packages/hiccup-carbon-icons/src/purchase.ts | 16 +- packages/hiccup-carbon-icons/src/restart.ts | 19 +- packages/hiccup-carbon-icons/src/save.ts | 19 +- .../hiccup-carbon-icons/src/schematics.ts | 25 +- packages/hiccup-carbon-icons/src/search.ts | 19 +- packages/hiccup-carbon-icons/src/security.ts | 25 +- packages/hiccup-carbon-icons/src/services.ts | 25 +- packages/hiccup-carbon-icons/src/settings.ts | 22 +- .../hiccup-carbon-icons/src/star-outline.ts | 14 +- .../hiccup-carbon-icons/src/star-solid.ts | 19 +- .../hiccup-carbon-icons/src/start-outline.ts | 19 +- packages/hiccup-carbon-icons/src/start.ts | 8 +- .../hiccup-carbon-icons/src/stop-outline.ts | 22 +- .../hiccup-carbon-icons/src/stop-solid.ts | 19 +- packages/hiccup-carbon-icons/src/stop.ts | 8 +- packages/hiccup-carbon-icons/src/storage.ts | 17 +- .../src/subtract-outline.ts | 26 +- .../hiccup-carbon-icons/src/subtract-solid.ts | 18 +- packages/hiccup-carbon-icons/src/terminal.ts | 16 +- packages/hiccup-carbon-icons/src/unlock.ts | 19 +- packages/hiccup-carbon-icons/src/unlocked.ts | 17 +- packages/hiccup-carbon-icons/src/upload.ts | 17 +- packages/hiccup-carbon-icons/src/user.ts | 22 +- .../src/utils/with-size.ts | 12 +- .../hiccup-carbon-icons/src/visibility-off.ts | 19 +- .../hiccup-carbon-icons/src/visibility-on.ts | 22 +- .../src/warning-outline.ts | 40 +- .../hiccup-carbon-icons/src/warning-solid.ts | 19 +- packages/hiccup-carbon-icons/src/warning.ts | 27 +- packages/hiccup-carbon-icons/src/watson.ts | 14 +- packages/hiccup-carbon-icons/src/whisk.ts | 25 +- .../hiccup-carbon-icons/test/contact-sheet.ts | 4 +- packages/hiccup-css/src/animation.ts | 6 +- packages/hiccup-css/src/api.ts | 4 +- packages/hiccup-css/src/css.ts | 4 +- packages/hiccup-css/src/impl.ts | 6 +- packages/hiccup-css/src/keyframes.ts | 2 +- packages/hiccup-css/src/quoted-functions.ts | 2 +- packages/hiccup-css/test/index.ts | 24 +- packages/hiccup-markdown/src/parse.ts | 32 +- packages/hiccup-markdown/src/serialize.ts | 12 +- packages/hiccup-markdown/test/parse.ts | 50 +- packages/hiccup-markdown/test/serialize.ts | 28 +- packages/hiccup-svg/src/circle.ts | 4 +- packages/hiccup-svg/src/convert.ts | 8 +- packages/hiccup-svg/src/ellipse.ts | 4 +- packages/hiccup-svg/src/gradients.ts | 6 +- packages/hiccup-svg/src/group.ts | 2 +- packages/hiccup-svg/src/image.ts | 4 +- packages/hiccup-svg/src/line.ts | 4 +- packages/hiccup-svg/src/path.ts | 9 +- packages/hiccup-svg/src/points.ts | 8 +- packages/hiccup-svg/src/polygon.ts | 4 +- packages/hiccup-svg/src/polyline.ts | 4 +- packages/hiccup-svg/src/rect.ts | 2 +- packages/hiccup-svg/src/svg.ts | 4 +- packages/hiccup-svg/src/text.ts | 4 +- packages/hiccup/src/api.ts | 6 +- packages/hiccup/src/serialize.ts | 9 +- packages/hiccup/test/index.ts | 26 +- packages/idgen/src/index.ts | 2 +- packages/iges/src/index.ts | 41 +- packages/iges/test/index.ts | 4 +- packages/imgui/src/behaviors/slider.ts | 7 +- packages/imgui/src/components/button.ts | 2 +- packages/imgui/src/components/dial.ts | 7 +- packages/imgui/src/components/dropdown.ts | 15 +- packages/imgui/src/components/icon-button.ts | 4 +- packages/imgui/src/components/radial-menu.ts | 12 +- packages/imgui/src/components/radio.ts | 7 +- packages/imgui/src/components/ring.ts | 16 +- packages/imgui/src/components/sliderh.ts | 6 +- packages/imgui/src/components/sliderv.ts | 8 +- packages/imgui/src/components/textfield.ts | 2 +- packages/imgui/src/components/textlabel.ts | 2 +- packages/imgui/src/components/toggle.ts | 2 +- packages/imgui/src/components/tooltip.ts | 2 +- packages/imgui/src/components/xypad.ts | 12 +- packages/imgui/src/events.ts | 2 +- packages/imgui/src/gui.ts | 4 +- packages/iterators/src/cached.ts | 4 +- packages/iterators/src/fork.ts | 4 +- packages/iterators/src/walk.ts | 2 +- packages/iterators/test/index.ts | 798 +++++++++++++++--- packages/layout/src/grid-layout.ts | 4 +- packages/leb128/test/index.ts | 2 +- packages/lsys/src/index.ts | 11 +- packages/lsys/test/examples.ts | 10 +- packages/lsys/test/tree.ts | 4 +- packages/malloc/src/pool.ts | 15 +- packages/malloc/test/index.ts | 14 +- packages/math/src/angle.ts | 13 +- packages/math/src/solve.ts | 2 +- packages/matrices/src/alignment-quat.ts | 2 +- packages/matrices/src/api.ts | 7 +- packages/matrices/src/column.ts | 7 +- packages/matrices/src/determinant.ts | 4 +- packages/matrices/src/diag.ts | 7 +- packages/matrices/src/frustum.ts | 2 +- packages/matrices/src/identity.ts | 7 +- packages/matrices/src/internal/codegen.ts | 2 +- packages/matrices/src/invert.ts | 4 +- packages/matrices/src/lookat.ts | 2 +- packages/matrices/src/matn.ts | 7 +- packages/matrices/src/matv.ts | 7 +- packages/matrices/src/mixq.ts | 9 +- packages/matrices/src/mulm.ts | 10 +- packages/matrices/src/mulv.ts | 2 +- packages/matrices/src/mulvm.ts | 2 +- packages/matrices/src/outer-product.ts | 8 +- packages/matrices/src/quat-euler.ts | 2 +- packages/matrices/src/row.ts | 7 +- packages/matrices/src/scale.ts | 7 +- packages/matrices/src/set.ts | 7 +- packages/matrices/src/shear.ts | 7 +- packages/matrices/src/skew.ts | 2 +- packages/matrices/test/index.ts | 2 - packages/memoize/src/memoize.ts | 8 +- packages/memoize/src/memoizej.ts | 9 +- packages/memoize/test/index.ts | 25 +- packages/mime/src/index.ts | 18 +- packages/morton/src/mux.ts | 13 +- packages/morton/src/scaled.ts | 2 +- packages/morton/src/zcurve.ts | 4 +- packages/morton/test/zcurve.ts | 8 +- packages/pixel/test/index.ts | 6 +- packages/pointfree-lang/test/readme.ts | 2 +- packages/pointfree/src/context.ts | 2 +- packages/porter-duff/src/porter-duff.ts | 2 +- packages/ramp/src/aramp.ts | 2 +- packages/ramp/src/hermite.ts | 11 +- packages/random/src/constants.ts | 2 +- packages/random/src/smush32.ts | 2 +- packages/random/src/xsadd.ts | 2 +- packages/range-coder/test/index.ts | 2 +- packages/resolve-map/src/index.ts | 7 +- packages/resolve-map/test/index.ts | 24 +- packages/router/src/basic.ts | 11 +- packages/router/src/history.ts | 4 +- packages/rstream-csp/test/index.ts | 5 +- packages/rstream-dot/src/index.ts | 21 +- .../rstream-gestures/src/gesture-stream.ts | 16 +- packages/rstream-log-file/src/index.ts | 2 +- packages/rstream-log/src/logger.ts | 7 +- packages/rstream-log/src/xform/format.ts | 9 +- packages/rstream-log/test/index.ts | 4 +- packages/rstream-query/src/store.ts | 27 +- packages/rstream-query/src/xforms.ts | 10 +- packages/rstream-query/test/example.ts | 14 +- packages/rstream-query/test/index.ts | 15 +- packages/rstream/src/forkjoin.ts | 13 +- packages/rstream/src/stream-merge.ts | 9 +- packages/rstream/src/stream.ts | 2 +- packages/rstream/src/subs/post-worker.ts | 2 +- .../rstream/src/subs/sidechain-partition.ts | 2 +- packages/rstream/src/subs/sidechain-toggle.ts | 2 +- packages/rstream/src/subs/trace.ts | 2 +- packages/rstream/src/subs/transduce.ts | 2 +- packages/rstream/src/tween.ts | 4 +- packages/rstream/test/bisect.ts | 7 +- packages/rstream/test/from-iterable.ts | 17 +- packages/rstream/test/from-promise.ts | 15 +- packages/rstream/test/sidechain-partition.ts | 17 +- packages/rstream/test/sidechain-toggle.ts | 9 +- packages/rstream/test/stream-merge.ts | 16 +- packages/rstream/test/timeout.ts | 16 +- packages/rstream/test/transducers.ts | 19 +- packages/sax/src/index.ts | 26 +- packages/sax/test/index.ts | 47 +- packages/scenegraph/src/node2.ts | 9 +- packages/scenegraph/src/node3.ts | 9 +- packages/seq/src/array.ts | 4 +- packages/seq/src/concat.ts | 4 +- packages/seq/src/cons.ts | 2 +- packages/seq/src/lazyseq.ts | 2 +- packages/seq/test/concat.ts | 10 +- packages/seq/test/cons.ts | 14 +- packages/seq/test/custom.ts | 2 +- packages/sexpr/src/constants.ts | 2 +- packages/sexpr/src/parse.ts | 10 +- packages/sexpr/src/tokenize.ts | 4 +- packages/sexpr/test/index.ts | 54 +- packages/shader-ast-glsl/src/target.ts | 16 +- packages/shader-ast-glsl/test/index.ts | 28 +- packages/shader-ast-js/src/api.ts | 9 +- packages/shader-ast-js/src/env.ts | 8 +- packages/shader-ast-js/src/env/float.ts | 4 +- packages/shader-ast-js/src/env/int.ts | 2 +- packages/shader-ast-js/src/env/ivec2.ts | 4 +- packages/shader-ast-js/src/env/ivec3.ts | 4 +- packages/shader-ast-js/src/env/ivec4.ts | 4 +- packages/shader-ast-js/src/env/mat2.ts | 4 +- packages/shader-ast-js/src/env/mat3.ts | 4 +- packages/shader-ast-js/src/env/mat4.ts | 4 +- packages/shader-ast-js/src/env/uint.ts | 2 +- packages/shader-ast-js/src/env/uvec2.ts | 4 +- packages/shader-ast-js/src/env/uvec3.ts | 4 +- packages/shader-ast-js/src/env/uvec4.ts | 4 +- packages/shader-ast-js/src/env/vec2.ts | 4 +- packages/shader-ast-js/src/env/vec3.ts | 4 +- packages/shader-ast-js/src/env/vec4.ts | 4 +- packages/shader-ast-js/src/target.ts | 12 +- .../src/color/linear-srgb.ts | 4 +- .../src/color/porter-duff.ts | 4 +- packages/shader-ast-stdlib/src/fog/exp.ts | 10 +- packages/shader-ast-stdlib/src/fog/exp2.ts | 14 +- .../shader-ast-stdlib/src/light/lambert.ts | 2 +- .../shader-ast-stdlib/src/light/trilight.ts | 4 +- .../shader-ast-stdlib/src/math/additive.ts | 6 +- .../shader-ast-stdlib/src/math/cartesian.ts | 4 +- packages/shader-ast-stdlib/src/math/clamp.ts | 2 +- packages/shader-ast-stdlib/src/math/cross2.ts | 9 +- .../src/math/dist-chebyshev.ts | 2 +- .../src/math/dist-manhattan.ts | 2 +- packages/shader-ast-stdlib/src/math/fit.ts | 2 +- packages/shader-ast-stdlib/src/math/magsq.ts | 6 +- .../shader-ast-stdlib/src/math/maxcomp.ts | 2 +- .../shader-ast-stdlib/src/math/mincomp.ts | 2 +- .../shader-ast-stdlib/src/math/orthogonal.ts | 4 +- packages/shader-ast-stdlib/src/math/polar.ts | 6 +- packages/shader-ast-stdlib/src/math/sincos.ts | 7 +- .../shader-ast-stdlib/src/matrix/convert.ts | 6 +- .../shader-ast-stdlib/src/matrix/lookat.ts | 4 +- packages/shader-ast-stdlib/src/matrix/mvp.ts | 8 +- .../shader-ast-stdlib/src/matrix/normal.ts | 2 +- .../shader-ast-stdlib/src/matrix/rotation.ts | 16 +- packages/shader-ast-stdlib/src/noise/curl3.ts | 4 +- packages/shader-ast-stdlib/src/noise/hash.ts | 32 +- .../shader-ast-stdlib/src/noise/permute.ts | 4 +- .../shader-ast-stdlib/src/noise/simplex2.ts | 4 +- .../shader-ast-stdlib/src/noise/simplex3.ts | 6 +- .../shader-ast-stdlib/src/noise/voronoi2.ts | 8 +- .../shader-ast-stdlib/src/noise/worley2.ts | 4 +- packages/shader-ast-stdlib/src/raymarch/ao.ts | 6 +- .../src/raymarch/direction.ts | 4 +- .../shader-ast-stdlib/src/raymarch/normal.ts | 4 +- .../src/raymarch/point-at.ts | 9 +- .../shader-ast-stdlib/src/raymarch/scene.ts | 10 +- packages/shader-ast-stdlib/src/screen/uv.ts | 4 +- packages/shader-ast-stdlib/src/sdf/box.ts | 40 +- .../shader-ast-stdlib/src/sdf/cylinder.ts | 4 +- packages/shader-ast-stdlib/src/sdf/line.ts | 4 +- packages/shader-ast-stdlib/src/sdf/plane.ts | 7 +- packages/shader-ast-stdlib/src/sdf/repeat.ts | 9 +- .../shader-ast-stdlib/src/sdf/smooth-isec.ts | 4 +- .../shader-ast-stdlib/src/sdf/smooth-sub.ts | 4 +- .../shader-ast-stdlib/src/sdf/smooth-union.ts | 4 +- packages/shader-ast-stdlib/src/sdf/sphere.ts | 7 +- packages/shader-ast-stdlib/src/sdf/torus.ts | 12 +- packages/shader-ast-stdlib/src/sdf/tri.ts | 4 +- packages/shader-ast-stdlib/src/tex/blur.ts | 8 +- .../shader-ast-stdlib/src/tex/index-coord.ts | 2 +- .../shader-ast-stdlib/src/tex/index-uv.ts | 6 +- .../shader-ast-stdlib/src/tex/read-index.ts | 2 +- packages/shader-ast/src/api/function.ts | 12 +- packages/shader-ast/src/api/nodes.ts | 9 +- packages/shader-ast/src/api/target.ts | 2 +- packages/shader-ast/src/api/types.ts | 7 +- packages/shader-ast/src/ast/assign.ts | 2 +- packages/shader-ast/src/ast/controlflow.ts | 12 +- packages/shader-ast/src/ast/function.ts | 17 +- packages/shader-ast/src/ast/indexed.ts | 6 +- packages/shader-ast/src/ast/item.ts | 20 +- packages/shader-ast/src/ast/lit.ts | 6 +- packages/shader-ast/src/ast/ops.ts | 17 +- packages/shader-ast/src/ast/scope.ts | 6 +- packages/shader-ast/src/ast/swizzle.ts | 14 +- packages/shader-ast/src/ast/sym.ts | 6 +- packages/shader-ast/src/builtin/math.ts | 2 +- packages/shader-ast/src/builtin/texture.ts | 9 +- packages/shader-ast/src/optimize.ts | 9 +- packages/shader-ast/test/index.ts | 14 +- packages/simd/src/index.ts | 6 +- packages/soa/src/serialize.ts | 10 +- packages/soa/src/soa.ts | 2 +- packages/soa/test/aos.ts | 11 +- packages/soa/test/serialize.ts | 9 +- packages/soa/test/soa.ts | 10 +- packages/sparse/src/csc.ts | 7 +- packages/sparse/src/csr.ts | 8 +- packages/strings/src/float.ts | 18 +- packages/strings/src/slugify.ts | 2 +- packages/strings/src/splice.ts | 4 +- packages/strings/src/units.ts | 12 +- packages/strings/src/uuid.ts | 2 +- packages/strings/src/wrap.ts | 6 +- packages/strings/test/splice.ts | 2 +- packages/text-canvas/src/ansi.ts | 2 +- packages/text-canvas/src/canvas.ts | 9 +- packages/text-canvas/src/html.ts | 12 +- packages/text-canvas/src/image.ts | 11 +- packages/text-canvas/src/style.ts | 4 +- packages/text-canvas/src/table.ts | 6 +- packages/text-canvas/src/text.ts | 10 +- packages/transducers-binary/src/base64.ts | 4 +- packages/transducers-binary/src/bits.ts | 2 +- packages/transducers-binary/src/bytes.ts | 32 +- packages/transducers-binary/src/hex-dump.ts | 2 +- .../transducers-binary/src/partition-bits.ts | 10 +- packages/transducers-binary/src/utf8.ts | 10 +- .../transducers-binary/test/partition-bits.ts | 30 +- packages/transducers-fsm/src/index.ts | 2 +- packages/transducers-fsm/test/index.ts | 11 +- packages/transducers-hdom/src/index.ts | 4 +- packages/transducers-patch/test/index.ts | 8 +- packages/transducers-stats/src/bollinger.ts | 2 +- packages/transducers-stats/src/donchian.ts | 2 +- packages/transducers-stats/src/ema.ts | 7 +- packages/transducers-stats/src/hma.ts | 2 +- packages/transducers-stats/src/macd.ts | 10 +- packages/transducers-stats/src/momentum.ts | 7 +- packages/transducers-stats/src/roc.ts | 7 +- packages/transducers-stats/src/rsi.ts | 2 +- packages/transducers-stats/src/sd.ts | 2 +- packages/transducers-stats/src/sma.ts | 7 +- packages/transducers-stats/src/stochastic.ts | 8 +- packages/transducers-stats/src/wma.ts | 2 +- packages/transducers/src/func/juxtr.ts | 10 +- .../transducers/src/internal/group-opts.ts | 2 +- .../transducers/src/internal/sort-opts.ts | 2 +- packages/transducers/src/rfn/count.ts | 5 +- packages/transducers/src/rfn/div.ts | 5 +- packages/transducers/src/rfn/group-binary.ts | 4 +- packages/transducers/src/rfn/group-by-map.ts | 2 +- packages/transducers/src/rfn/group-by-obj.ts | 2 +- packages/transducers/src/rfn/max.ts | 5 +- packages/transducers/src/rfn/mean.ts | 2 +- packages/transducers/src/rfn/min.ts | 5 +- packages/transducers/src/rfn/push-copy.ts | 5 +- packages/transducers/src/rfn/push-sort.ts | 2 +- packages/transducers/src/rfn/push.ts | 5 +- packages/transducers/src/rfn/reductions.ts | 2 +- packages/transducers/src/transduce.ts | 7 +- packages/transducers/src/xform/drop-while.ts | 5 +- packages/transducers/src/xform/drop.ts | 7 +- packages/transducers/src/xform/pad-last.ts | 2 +- .../transducers/src/xform/partition-by.ts | 2 +- packages/transducers/src/xform/partition.ts | 2 +- packages/transducers/src/xform/scan.ts | 2 +- .../transducers/src/xform/stream-shuffle.ts | 2 +- packages/transducers/src/xform/stream-sort.ts | 2 +- packages/transducers/src/xform/take-last.ts | 2 +- packages/transducers/src/xform/toggle.ts | 2 +- packages/transducers/src/xform/word-wrap.ts | 2 +- packages/transducers/test/fuzzy.ts | 34 +- packages/transducers/test/juxtr.ts | 67 +- packages/transducers/test/map-deep.ts | 70 +- packages/transducers/test/pad-last.ts | 20 +- packages/transducers/test/permutations.ts | 62 +- packages/unionstruct/src/index.ts | 8 +- packages/unionstruct/test/index.ts | 67 +- packages/vector-pools/src/api.ts | 2 +- packages/vector-pools/src/attrib-pool.ts | 6 +- packages/vector-pools/src/convert.ts | 7 +- packages/vector-pools/test/attribs.ts | 33 +- packages/vectors/src/addns.ts | 7 +- packages/vectors/src/api.ts | 2 +- packages/vectors/src/atan.ts | 7 +- packages/vectors/src/buffer.ts | 9 +- packages/vectors/src/cartesian.ts | 7 +- packages/vectors/src/clamp.ts | 6 +- packages/vectors/src/compare.ts | 28 +- packages/vectors/src/convert.ts | 2 +- packages/vectors/src/divns.ts | 7 +- packages/vectors/src/fit.ts | 7 +- packages/vectors/src/gvec.ts | 8 +- packages/vectors/src/hash.ts | 2 +- packages/vectors/src/internal/accessors.ts | 16 +- packages/vectors/src/internal/codegen.ts | 16 +- packages/vectors/src/logic-and.ts | 7 +- packages/vectors/src/logic-or.ts | 7 +- packages/vectors/src/map.ts | 9 +- packages/vectors/src/mulns.ts | 7 +- packages/vectors/src/random.ts | 7 +- packages/vectors/src/randoms.ts | 7 +- packages/vectors/src/setvv.ts | 7 +- packages/vectors/src/subns.ts | 7 +- packages/vectors/src/vec2.ts | 2 +- packages/vectors/src/vec3.ts | 2 +- packages/vectors/src/vec4.ts | 2 +- packages/webgl-msdf/src/convert.ts | 4 +- packages/webgl-msdf/src/shader.ts | 26 +- packages/webgl-msdf/src/text.ts | 38 +- packages/webgl-shadertoy/src/api.ts | 7 +- packages/webgl/src/api/ext.ts | 6 +- packages/webgl/src/api/multipass.ts | 2 +- packages/webgl/src/api/shader.ts | 4 +- packages/webgl/src/material.ts | 4 +- packages/webgl/src/matrices.ts | 7 +- packages/webgl/src/shaders/lambert.ts | 22 +- packages/webgl/src/shaders/phong.ts | 23 +- packages/webgl/src/shaders/pipeline.ts | 16 +- packages/webgl/src/syntax.ts | 16 +- packages/webgl/src/textures/checkerboard.ts | 2 +- packages/webgl/src/textures/stripes.ts | 2 +- packages/webgl/src/uniforms.ts | 23 +- packages/webgl/src/utils.ts | 7 +- packages/zipper/src/zipper.ts | 8 +- packages/zipper/test/custom.ts | 38 +- 718 files changed, 5070 insertions(+), 3917 deletions(-) diff --git a/packages/adjacency/test/binary.ts b/packages/adjacency/test/binary.ts index 411d2cf6fe..353dc68e9b 100644 --- a/packages/adjacency/test/binary.ts +++ b/packages/adjacency/test/binary.ts @@ -2,7 +2,12 @@ import { Pair } from "@thi.ng/api"; import * as assert from "assert"; import { AdjacencyBitMatrix } from "../src/index"; -const edges: Pair[] = [[2, 3], [0, 1], [5, 4], [2, 0]]; +const edges: Pair[] = [ + [2, 3], + [0, 1], + [5, 4], + [2, 0], +]; describe("adjacency (bitmatrix)", () => { it("fromEdges, undirected", () => { @@ -15,14 +20,19 @@ describe("adjacency (bitmatrix)", () => { 2415919104, 536870912, 67108864, - 134217728 + 134217728, ], "data" ); assert.equal(m.numEdges(), 4, "numEdges"); assert.deepEqual( [...m.edges()], - [[4, 5], [2, 3], [0, 1], [0, 2]], + [ + [4, 5], + [2, 3], + [0, 1], + [0, 2], + ], "edges" ); }); diff --git a/packages/adjacency/test/mst.ts b/packages/adjacency/test/mst.ts index c37114bfc2..6a9f9e9123 100644 --- a/packages/adjacency/test/mst.ts +++ b/packages/adjacency/test/mst.ts @@ -28,7 +28,7 @@ describe("unionfind", () => { [5, 6], [6, 7], [6, 8], - [7, 8] + [7, 8], ]; assert.deepEqual( @@ -39,8 +39,14 @@ describe("unionfind", () => { ([a, b]) => [a, b] ).sort(comparator2(0, 1)), [ - [0, 1], [1, 2], [2, 3], [2, 4], - [4, 5], [5, 6], [6, 8], [7, 8] + [0, 1], + [1, 2], + [2, 3], + [2, 4], + [4, 5], + [5, 6], + [6, 8], + [7, 8], ] ); }); diff --git a/packages/adjacency/test/sparse.ts b/packages/adjacency/test/sparse.ts index cfa3ee7a9c..df88c24a20 100644 --- a/packages/adjacency/test/sparse.ts +++ b/packages/adjacency/test/sparse.ts @@ -12,20 +12,17 @@ const edges: Pair[] = [ describe("adjacency (sparse)", () => { it("fromEdges, undirected", () => { const m = AdjacencyMatrix.fromEdges(6, edges, true); - assert.deepEqual( - m.rows, - [0, 2, 3, 5, 6, 7, 8], - "rows" - ); - assert.deepEqual( - m.cols, - [1, 2, 0, 0, 3, 2, 5, 4], - "cols" - ); + assert.deepEqual(m.rows, [0, 2, 3, 5, 6, 7, 8], "rows"); + assert.deepEqual(m.cols, [1, 2, 0, 0, 3, 2, 5, 4], "cols"); assert.equal(m.numEdges(), 4, "numEdges"); assert.deepEqual( [...m.edges()], - [[0, 1], [0, 2], [2, 3], [4, 5]], + [ + [0, 1], + [0, 2], + [2, 3], + [4, 5], + ], "edges" ); }); diff --git a/packages/api/src/decorators/configurable.ts b/packages/api/src/decorators/configurable.ts index d46ffa697d..1d5c876d95 100644 --- a/packages/api/src/decorators/configurable.ts +++ b/packages/api/src/decorators/configurable.ts @@ -5,6 +5,6 @@ * @param state - true, if propoerty is configurable */ export const configurable = (state: boolean): MethodDecorator => - function(_: any, __: string | symbol, descriptor: PropertyDescriptor) { + function (_: any, __: string | symbol, descriptor: PropertyDescriptor) { descriptor.configurable = state; }; diff --git a/packages/api/src/decorators/deprecated.ts b/packages/api/src/decorators/deprecated.ts index b45bc5f098..53ce8394f8 100644 --- a/packages/api/src/decorators/deprecated.ts +++ b/packages/api/src/decorators/deprecated.ts @@ -9,7 +9,7 @@ import { assert } from "../assert"; * @param msg - deprecation message */ export const deprecated = (msg?: string, log = console.log): MethodDecorator => - function( + function ( target: any, prop: string | symbol, descriptor: PropertyDescriptor @@ -17,7 +17,7 @@ export const deprecated = (msg?: string, log = console.log): MethodDecorator => const signature = `${target.constructor.name}#${prop.toString()}`; const fn = descriptor.value; assert(typeof fn === "function", `${signature} is not a function`); - descriptor.value = function() { + descriptor.value = function () { log(`DEPRECATED ${signature}: ${msg || "will be removed soon"}`); return fn.apply(this, arguments); }; diff --git a/packages/api/src/logger.ts b/packages/api/src/logger.ts index a1a9b8404c..a389bee89b 100644 --- a/packages/api/src/logger.ts +++ b/packages/api/src/logger.ts @@ -7,7 +7,7 @@ export const NULL_LOGGER: ILogger = Object.freeze({ debug() {}, info() {}, warn() {}, - severe() {} + severe() {}, }); export class ConsoleLogger implements ILogger { diff --git a/packages/api/src/mixin.ts b/packages/api/src/mixin.ts index aa2bd137f7..4df95452c4 100644 --- a/packages/api/src/mixin.ts +++ b/packages/api/src/mixin.ts @@ -24,7 +24,7 @@ export const mixin = (behaviour: any, sharedBehaviour: any = {}) => { if (!existing || existing.configurable) { Object.defineProperty(clazz.prototype, key, { value: behaviour[key], - writable: true + writable: true, }); } else { console.log(`not patching: ${clazz.name}.${key.toString()}`); @@ -37,12 +37,12 @@ export const mixin = (behaviour: any, sharedBehaviour: any = {}) => { for (let key of sharedKeys) { Object.defineProperty(_mixin, key, { value: sharedBehaviour[key], - enumerable: sharedBehaviour.propertyIsEnumerable(key) + enumerable: sharedBehaviour.propertyIsEnumerable(key), }); } Object.defineProperty(_mixin, Symbol.hasInstance, { - value: (x: any) => !!x[typeTag] + value: (x: any) => !!x[typeTag], }); return _mixin; diff --git a/packages/api/src/mixins/ienable.ts b/packages/api/src/mixins/ienable.ts index 4d312bd77a..80743ce5cb 100644 --- a/packages/api/src/mixins/ienable.ts +++ b/packages/api/src/mixins/ienable.ts @@ -39,5 +39,5 @@ export const IEnableMixin = mixin(>{ toggle(this: _IEnable) { this._enabled ? this.disable() : this.enable(); return this._enabled; - } + }, }); diff --git a/packages/api/src/mixins/inotify.ts b/packages/api/src/mixins/inotify.ts index bcc2d60318..ac990c7884 100644 --- a/packages/api/src/mixins/inotify.ts +++ b/packages/api/src/mixins/inotify.ts @@ -67,5 +67,5 @@ export const INotifyMixin = mixin({ } } return i; - } + }, }); diff --git a/packages/api/src/mixins/iterable.ts b/packages/api/src/mixins/iterable.ts index e9829da601..945e90e0ee 100644 --- a/packages/api/src/mixins/iterable.ts +++ b/packages/api/src/mixins/iterable.ts @@ -4,5 +4,5 @@ export const iterable = (prop: PropertyKey) => mixin({ *[Symbol.iterator]() { yield* this[prop]; - } + }, }); diff --git a/packages/api/src/mixins/iwatch.ts b/packages/api/src/mixins/iwatch.ts index 49ea635278..3b6933a837 100644 --- a/packages/api/src/mixins/iwatch.ts +++ b/packages/api/src/mixins/iwatch.ts @@ -31,5 +31,5 @@ export const IWatchMixin = mixin(>{ for (let id in w) { w[id](id, oldState, newState); } - } + }, }); diff --git a/packages/api/test/mixins.ts b/packages/api/test/mixins.ts index da5592a2e3..a0c2bf97e8 100644 --- a/packages/api/test/mixins.ts +++ b/packages/api/test/mixins.ts @@ -1,11 +1,5 @@ import * as assert from "assert"; -import { - Event, - EVENT_ALL, - INotify, - INotifyMixin, - Listener -} from "../src"; +import { Event, EVENT_ALL, INotify, INotifyMixin, Listener } from "../src"; describe("mixins", () => { it("INotify", () => { diff --git a/packages/arrays/src/levenshtein.ts b/packages/arrays/src/levenshtein.ts index d2d6638801..dc7b933ff8 100644 --- a/packages/arrays/src/levenshtein.ts +++ b/packages/arrays/src/levenshtein.ts @@ -14,7 +14,7 @@ const eqStrict = (a: any, b: any) => a === b; * Based on: * - https://en.wikipedia.org/wiki/Levenshtein_distance * - https://en.wikipedia.org/wiki/Wagner%E2%80%93Fischer_algorithm - * - https://github.com/gustf/js-levenshtein/blob/master/index.js + * - https://github.com/gustf/js-levenshtein/blob/develop/index.js * * @example * ```ts diff --git a/packages/arrays/test/binary-search.ts b/packages/arrays/test/binary-search.ts index 6fc68676d5..c210e93617 100644 --- a/packages/arrays/test/binary-search.ts +++ b/packages/arrays/test/binary-search.ts @@ -1,13 +1,6 @@ import { FnO } from "@thi.ng/api"; import * as assert from "assert"; -import { - binarySearch, - bsEQ, - bsGE, - bsGT, - bsLE, - bsLT -} from "../src"; +import { binarySearch, bsEQ, bsGE, bsGT, bsLE, bsLT } from "../src"; const src = [10, 20, 30, 40]; const tests = [5, 10, 15, 20, 25, 45]; diff --git a/packages/associative/src/internal/xform-setop.ts b/packages/associative/src/internal/xform-setop.ts index caa7e629aa..ad5525674b 100644 --- a/packages/associative/src/internal/xform-setop.ts +++ b/packages/associative/src/internal/xform-setop.ts @@ -12,5 +12,5 @@ export const xformSetOp = ( : , Iterable>>[ () => null, (acc) => acc || new Set(), - (acc, x) => (!acc ? ensureSet(x) : op(acc, ensureSet(x))) + (acc, x) => (!acc ? ensureSet(x) : op(acc, ensureSet(x))), ]; diff --git a/packages/associative/test/join.ts b/packages/associative/test/join.ts index a94e1ee602..932e1a769d 100644 --- a/packages/associative/test/join.ts +++ b/packages/associative/test/join.ts @@ -7,30 +7,56 @@ describe("join", () => { it("simple", () => { const a = new ArraySet([{ a: 1 }, { a: 2 }]); const b = new ArraySet([{ b: 1 }, { b: 2 }]); - assert.deepEqual(join(a, b), new ArraySet([{ a: 1, b: 1 }, { a: 2, b: 1 }, { a: 1, b: 2 }, { a: 2, b: 2 }])); + assert.deepEqual( + join(a, b), + new ArraySet([ + { a: 1, b: 1 }, + { a: 2, b: 1 }, + { a: 1, b: 2 }, + { a: 2, b: 2 }, + ]) + ); }); it("simple isec", () => { - const a = new ArraySet([{ id: "a", type: 1 }, { id: "b", type: 1 }, { id: "c", type: 2 }]); - const b = new ArraySet([{ type: 1, label: "foo" }, { type: 2, label: "bar" }, { type: 3, label: "baz" }]); + const a = new ArraySet([ + { id: "a", type: 1 }, + { id: "b", type: 1 }, + { id: "c", type: 2 }, + ]); + const b = new ArraySet([ + { type: 1, label: "foo" }, + { type: 2, label: "bar" }, + { type: 3, label: "baz" }, + ]); assert.deepEqual( join(a, b), new ArraySet([ { id: "a", type: 1, label: "foo" }, { id: "b", type: 1, label: "foo" }, - { id: "c", type: 2, label: "bar" } - ])); + { id: "c", type: 2, label: "bar" }, + ]) + ); }); it("joinWith", () => { - const a = new ArraySet([{ id: "a", type: 1 }, { id: "b", type: 1 }, { id: "c", type: 2 }]); - const b = new ArraySet([{ xyz: 1, label: "foo" }, { xyz: 2, label: "bar" }, { xyz: 3, label: "baz" }]); + const a = new ArraySet([ + { id: "a", type: 1 }, + { id: "b", type: 1 }, + { id: "c", type: 2 }, + ]); + const b = new ArraySet([ + { xyz: 1, label: "foo" }, + { xyz: 2, label: "bar" }, + { xyz: 3, label: "baz" }, + ]); assert.deepEqual( joinWith(a, b, { type: "xyz" }), new ArraySet([ { id: "a", type: 1, xyz: 1, label: "foo" }, { id: "b", type: 1, xyz: 1, label: "foo" }, - { id: "c", type: 2, xyz: 2, label: "bar" } - ])); + { id: "c", type: 2, xyz: 2, label: "bar" }, + ]) + ); }); }); diff --git a/packages/associative/test/merge.ts b/packages/associative/test/merge.ts index 5561cd49aa..f2bf8e0c84 100644 --- a/packages/associative/test/merge.ts +++ b/packages/associative/test/merge.ts @@ -6,14 +6,23 @@ describe("mergeApply", () => { it("map", () => { assert.deepEqual( mergeApplyMap( - new Map([["a", 1], ["b", 2], ["c", 3]]), + new Map([ + ["a", 1], + ["b", 2], + ["c", 3], + ]), new Map>([ ["a", (x) => x + 10], ["b", 20], - ["d", 40] + ["d", 40], ]) ), - new Map([["a", 11], ["b", 20], ["c", 3], ["d", 40]]) + new Map([ + ["a", 11], + ["b", 20], + ["c", 3], + ["d", 40], + ]) ); }); it("object", () => { diff --git a/packages/associative/test/sparse-set.ts b/packages/associative/test/sparse-set.ts index af5d6b882f..163ec5c792 100644 --- a/packages/associative/test/sparse-set.ts +++ b/packages/associative/test/sparse-set.ts @@ -1,12 +1,7 @@ import { isSet } from "@thi.ng/checks"; import { equiv } from "@thi.ng/equiv"; import * as assert from "assert"; -import { - defSparseSet, - SparseSet16, - SparseSet32, - SparseSet8 -} from "../src"; +import { defSparseSet, SparseSet16, SparseSet32, SparseSet8 } from "../src"; describe("SparseSet", () => { let set: SparseSet8; diff --git a/packages/associative/test/union.ts b/packages/associative/test/union.ts index 558db36e0a..c09b3315ed 100644 --- a/packages/associative/test/union.ts +++ b/packages/associative/test/union.ts @@ -2,7 +2,6 @@ import * as assert from "assert"; import { ArraySet } from "../src/array-set"; import { union } from "../src/union"; - describe("union", () => { it("native (numbers)", () => { const a = new Set([1, 2, 3, 4]); diff --git a/packages/atom/test/atom.ts b/packages/atom/test/atom.ts index c81ff901bb..6d8fe159cd 100644 --- a/packages/atom/test/atom.ts +++ b/packages/atom/test/atom.ts @@ -3,7 +3,6 @@ import * as assert from "assert"; import { Atom } from "../src/index"; describe("atom", function () { - let a: Atom; beforeEach(() => { @@ -25,15 +24,24 @@ describe("atom", function () { }); it("can be swapped", () => { - assert.equal(a.swap((x) => x + 1), 24); + assert.equal( + a.swap((x) => x + 1), + 24 + ); assert.equal(a.deref(), 24); }); it("can add & remove watch", () => { - assert.ok(a.addWatch("foo", () => { }), "can't add watch"); + assert.ok( + a.addWatch("foo", () => {}), + "can't add watch" + ); assert.ok((a)._watches && (a)._watches.foo, "watch missing"); assert.ok(a.removeWatch("foo"), "can't remove watch"); - assert.ok(!a.removeWatch("foo"), "should fail to remove invalid watch id"); + assert.ok( + !a.removeWatch("foo"), + "should fail to remove invalid watch id" + ); }); it("can be watched", () => { @@ -51,7 +59,13 @@ describe("atom", function () { assert.equal(a.reset(2), 2); assert.equal(a.reset("3"), 2); assert.equal(a.reset(null), 2); - assert.equal(a.swap(() => "3"), 2); - assert.equal(a.swap(() => null), 2); + assert.equal( + a.swap(() => "3"), + 2 + ); + assert.equal( + a.swap(() => null), + 2 + ); }); }); diff --git a/packages/atom/test/cursor.ts b/packages/atom/test/cursor.ts index caf7c13c2d..5e8002fb3e 100644 --- a/packages/atom/test/cursor.ts +++ b/packages/atom/test/cursor.ts @@ -1,11 +1,6 @@ import { isNumber } from "@thi.ng/checks"; import * as assert from "assert"; -import { - Atom, - Cursor, - defAtom, - defCursor -} from "../src/index"; +import { Atom, Cursor, defAtom, defCursor } from "../src/index"; interface State { a: { diff --git a/packages/bench/src/benchmark.ts b/packages/bench/src/benchmark.ts index b7690c6c49..34a909bb9d 100644 --- a/packages/bench/src/benchmark.ts +++ b/packages/bench/src/benchmark.ts @@ -49,6 +49,6 @@ export const benchmark = ( max, q1, q3, - sd + sd, }; }; diff --git a/packages/bencode/src/index.ts b/packages/bencode/src/index.ts index a6ab6d0231..24ce5421af 100644 --- a/packages/bencode/src/index.ts +++ b/packages/bencode/src/index.ts @@ -6,7 +6,7 @@ import { isBoolean, isNumber, isPlainObject, - isString + isString, } from "@thi.ng/checks"; import { defmulti } from "@thi.ng/defmulti"; import { illegalState, unsupported } from "@thi.ng/errors"; @@ -18,7 +18,7 @@ import { u8, u8array, utf8Decode, - utf8Length + utf8Length, } from "@thi.ng/transducers-binary"; const enum Type { @@ -27,7 +27,7 @@ const enum Type { STR, BINARY, DICT, - LIST + LIST, } const enum Lit { @@ -40,7 +40,7 @@ const enum Lit { END = 0x65, FLOAT = 0x66, INT = 0x69, - LIST = 0x6c + LIST = 0x6c, } const FLOAT_RE = /^[0-9.-]+$/; @@ -84,7 +84,7 @@ encodeBin.addAll({ [Type.LIST]: (x: Iterable) => [ u8(0x6c), ...mapcat(encodeBin, x), - u8(0x65) + u8(0x65), ], [Type.DICT]: (x: any) => [ @@ -93,8 +93,8 @@ encodeBin.addAll({ (k: string) => encodeBin(k).concat(encodeBin(x[k])), Object.keys(x).sort() ), - u8(0x65) - ] + u8(0x65), + ], }); export const decode = (buf: Iterable, utf8 = true) => { diff --git a/packages/binary/src/float.ts b/packages/binary/src/float.ts index 2a332b3e60..a7b65f057d 100644 --- a/packages/binary/src/float.ts +++ b/packages/binary/src/float.ts @@ -62,7 +62,7 @@ export const uintBitsToFloat64 = (hi: number, lo: number) => { * Converts given float (f32) into a sortable integer representation, * using raw bitwise conversion via {@link floatToIntBits}. * - * {@link https://github.com/tzaeschke/phtree/blob/master/PhTreeRevisited.pdf} + * {@link https://github.com/tzaeschke/phtree/blob/develop/PhTreeRevisited.pdf} * (page 3) * * @param x - value to convert diff --git a/packages/binary/src/logic.ts b/packages/binary/src/logic.ts index 0bbed88efd..ef53027dfa 100644 --- a/packages/binary/src/logic.ts +++ b/packages/binary/src/logic.ts @@ -31,7 +31,7 @@ export const bitMux = (a: number, b: number, s: number) => export const bitDemux = (a: number, b: number, s: number): [number, number] => [ (a & ~s) >>> 0, - (b & s) >>> 0 + (b & s) >>> 0, ]; export const bitNotM = (n: number, x: number) => maskL(n, ~x); diff --git a/packages/binary/src/swizzle.ts b/packages/binary/src/swizzle.ts index e3af89bb32..ee8fd51023 100644 --- a/packages/binary/src/swizzle.ts +++ b/packages/binary/src/swizzle.ts @@ -1,9 +1,4 @@ -import type { - Lane16, - Lane2, - Lane4, - Lane8 -} from "./api"; +import type { Lane16, Lane2, Lane4, Lane8 } from "./api"; /** * Extracts 16-bit lane from given 32bit uint and returns as unsigned diff --git a/packages/bitfield/src/bitfield.ts b/packages/bitfield/src/bitfield.ts index b7c174ff41..0c36f1a211 100644 --- a/packages/bitfield/src/bitfield.ts +++ b/packages/bitfield/src/bitfield.ts @@ -1,11 +1,5 @@ import { assert } from "@thi.ng/api"; -import { - align, - bitAnd, - bitNot, - bitOr, - bitXor -} from "@thi.ng/binary"; +import { align, bitAnd, bitNot, bitOr, bitXor } from "@thi.ng/binary"; import { binOp, toString } from "./util"; import type { Fn2, IClear, ICopy } from "@thi.ng/api"; diff --git a/packages/bitfield/src/bitmatrix.ts b/packages/bitfield/src/bitmatrix.ts index e3e4289709..729f5a8613 100644 --- a/packages/bitfield/src/bitmatrix.ts +++ b/packages/bitfield/src/bitmatrix.ts @@ -1,11 +1,5 @@ import { assert } from "@thi.ng/api"; -import { - align, - bitAnd, - bitNot, - bitOr, - bitXor -} from "@thi.ng/binary"; +import { align, bitAnd, bitNot, bitOr, bitXor } from "@thi.ng/binary"; import { binOp, toString } from "./util"; import type { Fn2, IClear, ICopy } from "@thi.ng/api"; diff --git a/packages/bitstream/src/input.ts b/packages/bitstream/src/input.ts index 7c0c67aa22..e810431a10 100644 --- a/packages/bitstream/src/input.ts +++ b/packages/bitstream/src/input.ts @@ -81,7 +81,7 @@ export class BitInputStream { return out; } - readStruct(fields: ([string, number])[]) { + readStruct(fields: [string, number][]) { return fields.reduce((acc: any, [id, word]) => { return (acc[id] = this.read(word)), acc; }, {}); diff --git a/packages/bitstream/test/index.ts b/packages/bitstream/test/index.ts index a16f075801..776d2d2698 100644 --- a/packages/bitstream/test/index.ts +++ b/packages/bitstream/test/index.ts @@ -1,7 +1,7 @@ import * as assert from "assert"; import * as bits from "../src/index"; -describe("BitInputStream", function() { +describe("BitInputStream", function () { let src = new Uint8Array([ 0xbe, 0xef, @@ -11,7 +11,7 @@ describe("BitInputStream", function() { 0xad, 0xf0, 0x0b, - 0xaa + 0xaa, ]); it("iterator", () => { assert.equal( diff --git a/packages/cache/src/api.ts b/packages/cache/src/api.ts index f05b32d054..341cda53fa 100644 --- a/packages/cache/src/api.ts +++ b/packages/cache/src/api.ts @@ -5,7 +5,7 @@ import type { ICopy, IEmpty, ILength, - IRelease + IRelease, } from "@thi.ng/api"; export interface ICache diff --git a/packages/cache/src/lru.ts b/packages/cache/src/lru.ts index 27043447f9..cee49f212f 100644 --- a/packages/cache/src/lru.ts +++ b/packages/cache/src/lru.ts @@ -19,7 +19,7 @@ export class LRUCache implements ICache { maxsize: Infinity, map: () => new Map(), ksize: () => 0, - vsize: () => 0 + vsize: () => 0, }, opts ); diff --git a/packages/cache/src/tlru.ts b/packages/cache/src/tlru.ts index 64d3cce591..2a6533153a 100644 --- a/packages/cache/src/tlru.ts +++ b/packages/cache/src/tlru.ts @@ -73,7 +73,7 @@ export class TLRUCache extends LRUCache { k: key, v: value, s: size, - t + t, }); this.map.set(key, this.items.tail!); } diff --git a/packages/cache/test/lru.ts b/packages/cache/test/lru.ts index 48a54124f9..ad9c86fb76 100644 --- a/packages/cache/test/lru.ts +++ b/packages/cache/test/lru.ts @@ -2,17 +2,20 @@ import * as assert from "assert"; import { LRUCache } from "../src/index"; describe("LRU", () => { - let c: LRUCache; let evicts: any[]; beforeEach(() => { evicts = []; c = new LRUCache( - [["a", 1], ["b", 2], ["c", 3]], + [ + ["a", 1], + ["b", 2], + ["c", 3], + ], { maxlen: 4, - release: (k, v) => evicts.push([k, v]) + release: (k, v) => evicts.push([k, v]), } ); }); @@ -37,5 +40,4 @@ describe("LRU", () => { assert.deepEqual([...c.values()], [1, 2, 4, 5]); assert.deepEqual(evicts, [["c", 3]]); }); - }); diff --git a/packages/cache/test/mru.ts b/packages/cache/test/mru.ts index 3a6105caa5..b16cee9e70 100644 --- a/packages/cache/test/mru.ts +++ b/packages/cache/test/mru.ts @@ -2,17 +2,20 @@ import * as assert from "assert"; import { MRUCache } from "../src/index"; describe("MRU", () => { - let c: MRUCache; let evicts: any[]; beforeEach(() => { evicts = []; c = new MRUCache( - [["a", 1], ["b", 2], ["c", 3]], + [ + ["a", 1], + ["b", 2], + ["c", 3], + ], { maxlen: 4, - release: (k, v) => evicts.push([k, v]) + release: (k, v) => evicts.push([k, v]), } ); }); @@ -37,5 +40,4 @@ describe("MRU", () => { assert.deepEqual([...c.values()], [5, 2, 1, 3]); assert.deepEqual(evicts, [["d", 4]]); }); - }); diff --git a/packages/cache/test/tlru.ts b/packages/cache/test/tlru.ts index 708439da18..a3476f9ba9 100644 --- a/packages/cache/test/tlru.ts +++ b/packages/cache/test/tlru.ts @@ -2,18 +2,21 @@ import * as assert from "assert"; import { TLRUCache } from "../src/index"; describe("TLRU", () => { - let c: TLRUCache; let evicts: any[]; beforeEach(() => { evicts = []; c = new TLRUCache( - [["a", 1], ["b", 2], ["c", 3]], + [ + ["a", 1], + ["b", 2], + ["c", 3], + ], { maxlen: 4, ttl: 10, - release: (k, v) => evicts.push([k, v]) + release: (k, v) => evicts.push([k, v]), } ); }); @@ -44,7 +47,10 @@ describe("TLRU", () => { setTimeout(() => { assert(!c.has("b")); assert(!c.has("c")); - assert.deepEqual(evicts, [["b", 2], ["c", 3]]); + assert.deepEqual(evicts, [ + ["b", 2], + ["c", 3], + ]); assert.deepEqual([...c.keys()], ["a"]); done(); }, 20); @@ -52,16 +58,24 @@ describe("TLRU", () => { it("getSet ttl", (done) => { setTimeout(() => { - c.getSet("a", () => Promise.resolve(10)).then(v => { - assert.equal(v, 10); - assert(!c.has("b")); - assert(!c.has("c")); - assert.deepEqual([...evicts], [["a", 1], ["b", 2], ["c", 3]]); - assert.deepEqual([...c.keys()], ["a"]); - assert.deepEqual([...c.values()], [10]); - done(); - }).catch(done) - }, 20) + c.getSet("a", () => Promise.resolve(10)) + .then((v) => { + assert.equal(v, 10); + assert(!c.has("b")); + assert(!c.has("c")); + assert.deepEqual( + [...evicts], + [ + ["a", 1], + ["b", 2], + ["c", 3], + ] + ); + assert.deepEqual([...c.keys()], ["a"]); + assert.deepEqual([...c.values()], [10]); + done(); + }) + .catch(done); + }, 20); }); - }); diff --git a/packages/checks/src/is-mobile.ts b/packages/checks/src/is-mobile.ts index 3568663ff2..a54d48b107 100644 --- a/packages/checks/src/is-mobile.ts +++ b/packages/checks/src/is-mobile.ts @@ -1,3 +1,5 @@ export const isMobile = () => typeof navigator !== "undefined" && - /mobile|tablet|ip(ad|hone|od)|android|silk|crios/i.test(navigator.userAgent); + /mobile|tablet|ip(ad|hone|od)|android|silk|crios/i.test( + navigator.userAgent + ); diff --git a/packages/checks/test/index.ts b/packages/checks/test/index.ts index 56af44064a..c05f58de51 100644 --- a/packages/checks/test/index.ts +++ b/packages/checks/test/index.ts @@ -14,7 +14,7 @@ import { isTypedArray } from "../src/is-typedarray"; import { isNil } from "../src/is-nil"; import { isHexColor } from "../src/is-hex-color"; -describe("checks", function() { +describe("checks", function () { it("existsAndNotNull", () => { assert.ok(existsAndNotNull([]), "empty array"); assert.ok(existsAndNotNull(new Uint8Array(1)), "typedarray"); @@ -90,7 +90,7 @@ describe("checks", function() { assert.ok(isPlainObject(new Object()), "obj ctor"); assert.ok(!isPlainObject(Foo), "fn"); assert.ok( - !isPlainObject((function*(): IterableIterator {})()), + !isPlainObject((function* (): IterableIterator {})()), "generator" ); assert.ok(!isPlainObject(new Foo()), "class"); @@ -116,7 +116,10 @@ describe("checks", function() { }); it("isFunction", () => { - assert.ok(isFunction((_: any) => {}), "fn"); + assert.ok( + isFunction((_: any) => {}), + "fn" + ); assert.ok(isFunction(Uint8Array), "ctor"); assert.ok(isFunction("a".toString), "toString"); assert.ok(!isFunction("a"), "empty string"); diff --git a/packages/color/src/convert.ts b/packages/color/src/convert.ts index f7d136190a..d1b74c494c 100644 --- a/packages/color/src/convert.ts +++ b/packages/color/src/convert.ts @@ -23,12 +23,7 @@ import { rgbaYcbcra } from "./rgba-ycbcra"; import { xyzaRgba } from "./xyza-rgba"; import { ycbcraRgba } from "./ycbcra-rgba"; import type { Implementation2O, MultiFn2O } from "@thi.ng/defmulti"; -import type { - Color, - ColorConversion, - IColor, - ReadonlyColor -} from "./api"; +import type { Color, ColorConversion, IColor, ReadonlyColor } from "./api"; export const convert: MultiFn2O< string | number | ReadonlyColor | IColor, @@ -155,7 +150,7 @@ defConversion(ColorMode.RGBA, ColorMode.CSS, (x: any) => parseCss(x)); ColorMode.HSVA, ColorMode.INT32, ColorMode.XYZA, - ColorMode.YCBCRA + ColorMode.YCBCRA, ].forEach((id) => defConversion(id, ColorMode.CSS, (x: any) => convert(parseCss(x), id, ColorMode.RGBA) @@ -244,7 +239,7 @@ defConversion(ColorMode.HSLA, ColorMode.HSVA, (x: any) => hsvaHsla([], x)); [ColorMode.HSLA, rgbaHsla], [ColorMode.HSVA, rgbaHsva], [ColorMode.XYZA, rgbaXyza], - [ColorMode.YCBCRA, rgbaYcbcra] + [ColorMode.YCBCRA, rgbaYcbcra], ]).forEach(([id, fn]) => defConversion(id, ColorMode.RGBA, (x: any) => fn([], x)) ); diff --git a/packages/color/src/internal/matrix-ops.ts b/packages/color/src/internal/matrix-ops.ts index 9177d100af..60138f8b88 100644 --- a/packages/color/src/internal/matrix-ops.ts +++ b/packages/color/src/internal/matrix-ops.ts @@ -55,5 +55,5 @@ export const mulM45 = (a: ColorMatrix, b: ColorMatrix): ColorMatrix => [ dotS4(b, a, 15, 1, 1, 5), dotS4(b, a, 15, 2, 1, 5), dotS4(b, a, 15, 3, 1, 5), - dotS4(b, a, 15, 4, 1, 5) + b[19] + dotS4(b, a, 15, 4, 1, 5) + b[19], ]; diff --git a/packages/color/src/kelvin-rgba.ts b/packages/color/src/kelvin-rgba.ts index 2638e344b1..272cc1c774 100644 --- a/packages/color/src/kelvin-rgba.ts +++ b/packages/color/src/kelvin-rgba.ts @@ -17,7 +17,7 @@ const B3 = 0.453646839257496; /** * Based on: - * - {@link https://github.com/neilbartlett/color-temperature/blob/master/index.js} + * - {@link https://github.com/neilbartlett/color-temperature/blob/develop/index.js} * - {@link http://www.zombieprototypes.com/?p=210} * * Uses adjusted coefficients to produce normalized RGB values. diff --git a/packages/color/src/names.ts b/packages/color/src/names.ts index c7322eca42..4d3ec21eab 100644 --- a/packages/color/src/names.ts +++ b/packages/color/src/names.ts @@ -147,5 +147,5 @@ export const CSS_NAMES: IObjectOf = { white: "fff", whitesmoke: "f5f5f5", yellow: "ff0", - yellowgreen: "9acd32" + yellowgreen: "9acd32", }; diff --git a/packages/color/src/parse-css.ts b/packages/color/src/parse-css.ts index 2bd0fd628d..66413d0749 100644 --- a/packages/color/src/parse-css.ts +++ b/packages/color/src/parse-css.ts @@ -23,14 +23,14 @@ export const parseCss = (col: string | IDeref) => { parseChannel(match[2]), parseChannel(match[3]), parseChannel(match[4]), - maybeParseFloat(match[5], 1) + maybeParseFloat(match[5], 1), ]; } else { return hslaRgba(null, [ maybeParseFloat(match[2]) / 360, parseChannel(match[3]), parseChannel(match[4]), - maybeParseFloat(match[5], 1) + maybeParseFloat(match[5], 1), ]); } } else { diff --git a/packages/color/src/rgba-hcva.ts b/packages/color/src/rgba-hcva.ts index c95b947fe0..ee3cd23ff3 100644 --- a/packages/color/src/rgba-hcva.ts +++ b/packages/color/src/rgba-hcva.ts @@ -5,7 +5,7 @@ import type { ColorOp } from "./api"; /** * Based on: - * {@link https://github.com/tobspr/GLSL-Color-Spaces/blob/master/ColorSpaces.inc.glsl#L159} + * {@link https://github.com/tobspr/GLSL-Color-Spaces/blob/develop/ColorSpaces.inc.glsl#L159} * * @param out - result * @param src - source color diff --git a/packages/color/src/rgba-hcya.ts b/packages/color/src/rgba-hcya.ts index 8cb27bfedf..ba70ebb425 100644 --- a/packages/color/src/rgba-hcya.ts +++ b/packages/color/src/rgba-hcya.ts @@ -6,7 +6,7 @@ import type { ColorOp } from "./api"; /** * Ported from: - * {@link https://github.com/tobspr/GLSL-Color-Spaces/blob/master/ColorSpaces.inc.glsl#L226} + * {@link https://github.com/tobspr/GLSL-Color-Spaces/blob/develop/ColorSpaces.inc.glsl#L226} * * @param out - result * @param src - source color diff --git a/packages/color/src/rgba-hsia.ts b/packages/color/src/rgba-hsia.ts index 97f6f1bac8..cadb040c04 100644 --- a/packages/color/src/rgba-hsia.ts +++ b/packages/color/src/rgba-hsia.ts @@ -1,9 +1,4 @@ -import { - atan2Abs, - SQRT3, - TAU, - THIRD -} from "@thi.ng/math"; +import { atan2Abs, SQRT3, TAU, THIRD } from "@thi.ng/math"; import { setC3 } from "@thi.ng/vectors"; import { clamp } from "./clamp"; import type { ColorOp } from "./api"; diff --git a/packages/compose/src/complement.ts b/packages/compose/src/complement.ts index dfc1bd15e7..c37ff03617 100644 --- a/packages/compose/src/complement.ts +++ b/packages/compose/src/complement.ts @@ -8,7 +8,7 @@ import type { Fn6, Fn7, Fn8, - FnAny + FnAny, } from "@thi.ng/api"; export function complement(f: Fn0): Fn0; diff --git a/packages/compose/src/partial.ts b/packages/compose/src/partial.ts index 2de6b6249a..18960ccebf 100644 --- a/packages/compose/src/partial.ts +++ b/packages/compose/src/partial.ts @@ -8,7 +8,7 @@ import type { FnO5, FnO6, FnO7, - FnO8 + FnO8, } from "@thi.ng/api"; export function partial(fn: FnO, a: A): FnAny; diff --git a/packages/compose/test/delay.ts b/packages/compose/test/delay.ts index a03b216410..a24e4d299a 100644 --- a/packages/compose/test/delay.ts +++ b/packages/compose/test/delay.ts @@ -3,7 +3,6 @@ import { delay } from "../src"; import * as assert from "assert"; describe("delay", () => { - it("only executes once", () => { let num = 0; const a = delay(() => ++num); diff --git a/packages/compose/test/juxt.ts b/packages/compose/test/juxt.ts index 394cdb427b..bd81d6b34c 100644 --- a/packages/compose/test/juxt.ts +++ b/packages/compose/test/juxt.ts @@ -3,7 +3,6 @@ import { juxt } from "../src"; import * as assert from "assert"; describe("juxt", () => { - it("2-args", () => { const a = juxt( (x: number) => x + 1, @@ -26,7 +25,7 @@ describe("juxt", () => { (x: number) => x + 1, (x: number) => x * 10, (x: number) => "id-" + x, - (x: number) => [x, x], + (x: number) => [x, x] ); assert.deepEqual(a(1), [2, 10, "id-1", [1, 1]]); }); @@ -37,7 +36,7 @@ describe("juxt", () => { (x: number) => x * 10, (x: number) => "id-" + x, (x: number) => [x, x], - (x: number) => ({ a: x }), + (x: number) => ({ a: x }) ); assert.deepEqual(a(1), [2, 10, "id-1", [1, 1], { a: 1 }]); }); @@ -49,7 +48,7 @@ describe("juxt", () => { (x: number) => x * 10, (x: number) => "id-" + x, (x: number) => [x, x], - (x: number) => ({ a: x }), + (x: number) => ({ a: x }) ); assert.deepEqual(a(1), [2, 0, 10, "id-1", [1, 1], { a: 1 }]); }); @@ -62,7 +61,7 @@ describe("juxt", () => { (x: number) => x * 100, (x: number) => "id-" + x, (x: number) => [x, x], - (x: number) => ({ a: x }), + (x: number) => ({ a: x }) ); assert.deepEqual(a(1), [2, 0, 10, 100, "id-1", [1, 1], { a: 1 }]); }); @@ -76,7 +75,7 @@ describe("juxt", () => { (x: number) => x * 1000, (x: number) => "id-" + x, (x: number) => [x, x], - (x: number) => ({ a: x }), + (x: number) => ({ a: x }) ); assert.deepEqual(a(1), [2, 0, 10, 100, 1000, "id-1", [1, 1], { a: 1 }]); }); @@ -91,8 +90,18 @@ describe("juxt", () => { (x: number) => x * 10000, (x: number) => "id-" + x, (x: number) => [x, x], - (x: number) => ({ a: x }), + (x: number) => ({ a: x }) ); - assert.deepEqual(a(1), [2, 0, 10, 100, 1000, 10000, "id-1", [1, 1], { a: 1 }]); + assert.deepEqual(a(1), [ + 2, + 0, + 10, + 100, + 1000, + 10000, + "id-1", + [1, 1], + { a: 1 }, + ]); }); }); diff --git a/packages/csp/src/api.ts b/packages/csp/src/api.ts index 89ffd4af13..c281b8b2d2 100644 --- a/packages/csp/src/api.ts +++ b/packages/csp/src/api.ts @@ -1,10 +1,5 @@ import { Channel } from "./channel"; -import type { - Fn, - IID, - ILength, - IRelease -} from "@thi.ng/api"; +import type { Fn, IID, ILength, IRelease } from "@thi.ng/api"; export interface ChannelItem { value(): Promise; diff --git a/packages/csp/test/graph.ts b/packages/csp/test/graph.ts index 5cf0489d26..aad090c5da 100644 --- a/packages/csp/test/graph.ts +++ b/packages/csp/test/graph.ts @@ -20,7 +20,7 @@ export function node( const $: Node = { ins: >>{}, outs: >>{}, - state: init || {} + state: init || {}, }; for (let k of Object.keys(ins)) { const val = ins[k]; diff --git a/packages/csp/test/node.ts b/packages/csp/test/node.ts index 6efdb49145..fade9037f2 100644 --- a/packages/csp/test/node.ts +++ b/packages/csp/test/node.ts @@ -247,8 +247,8 @@ export function add(spec: Partial) { update: (n) => { const res = n.state.a + n.state.b; return n.outs.out.channel().write(res); - } - } + }, + }, }); } @@ -257,12 +257,12 @@ export const a = add({ id: "a", state: { b: 42 } }); export const b = add({ id: "b", ins: { a: { src: a.outs.out, tx: tx.map((x) => x * 1) } }, - state: { b: 100 } + state: { b: 100 }, }); export const c = add({ id: "c", ins: { a: b.outs.out, b: b.outs.out }, - outs: { out: res } + outs: { out: res }, }); // b.disable("b"); diff --git a/packages/dcons/src/index.ts b/packages/dcons/src/index.ts index c085675ffb..19e4af1096 100644 --- a/packages/dcons/src/index.ts +++ b/packages/dcons/src/index.ts @@ -18,7 +18,7 @@ import type { ISeq, ISeqable, IStack, - Predicate + Predicate, } from "@thi.ng/api"; import type { IRandom } from "@thi.ng/random"; import type { IReducible, ReductionFn } from "@thi.ng/transducers"; @@ -143,7 +143,7 @@ export class DCons }, next() { return cell !== last && cell.next ? $seq(cell.next) : undefined; - } + }, }); return cell ? $seq(cell) : undefined; } diff --git a/packages/defmulti/src/api.ts b/packages/defmulti/src/api.ts index c4ad206cff..22da8a38da 100644 --- a/packages/defmulti/src/api.ts +++ b/packages/defmulti/src/api.ts @@ -8,7 +8,7 @@ import type { Fn7, Fn8, FnAny, - IObjectOf + IObjectOf, } from "@thi.ng/api"; export type DispatchFn = FnAny; diff --git a/packages/defmulti/src/constants.ts b/packages/defmulti/src/constants.ts index 4df58875fd..bfb7e4b73d 100644 --- a/packages/defmulti/src/constants.ts +++ b/packages/defmulti/src/constants.ts @@ -9,4 +9,4 @@ export const DEFAULT: unique symbol = Symbol(); export let LOGGER: ILogger = NULL_LOGGER; -export const setLogger = (logger: ILogger) => (LOGGER = logger); \ No newline at end of file +export const setLogger = (logger: ILogger) => (LOGGER = logger); diff --git a/packages/defmulti/src/defmulti.ts b/packages/defmulti/src/defmulti.ts index b0527e70d6..1d0b2cb8c6 100644 --- a/packages/defmulti/src/defmulti.ts +++ b/packages/defmulti/src/defmulti.ts @@ -37,7 +37,7 @@ import type { MultiFn7, MultiFn7O, MultiFn8, - MultiFn8O + MultiFn8O, } from "./api"; /** diff --git a/packages/defmulti/test/index.ts b/packages/defmulti/test/index.ts index cbdc8305d2..86dbfd4c85 100644 --- a/packages/defmulti/test/index.ts +++ b/packages/defmulti/test/index.ts @@ -5,7 +5,7 @@ import { defmulti, defmultiN, implementations, - setLogger + setLogger, } from "../src/index"; // prettier-ignore diff --git a/packages/dgraph/test/index.ts b/packages/dgraph/test/index.ts index cd9d5b5a82..36ac3f800c 100644 --- a/packages/dgraph/test/index.ts +++ b/packages/dgraph/test/index.ts @@ -39,20 +39,41 @@ describe("dgraph", () => { }); it("sort", () => { - assert.deepEqual(g.sort(), [[30, 40], [3, 4], [10, 20], [1, 2]]); + assert.deepEqual(g.sort(), [ + [30, 40], + [3, 4], + [10, 20], + [1, 2], + ]); g.addDependency([30, 40], [50, 60]); assert.deepEqual(g.sort(), [ [50, 60], [30, 40], [3, 4], [10, 20], - [1, 2] + [1, 2], ]); }); it("iterator", () => { - assert.deepEqual([...g], [[30, 40], [3, 4], [10, 20], [1, 2]]); - assert.deepEqual([...g], [[30, 40], [3, 4], [10, 20], [1, 2]]); + assert.deepEqual( + [...g], + [ + [30, 40], + [3, 4], + [10, 20], + [1, 2], + ] + ); + assert.deepEqual( + [...g], + [ + [30, 40], + [3, 4], + [10, 20], + [1, 2], + ] + ); }); it("separate nodes", () => { @@ -60,6 +81,9 @@ describe("dgraph", () => { g.addNode([1, 2]); g.addNode([3, 4]); g.addNode([3, 4]); - assert.deepEqual(g.sort(), [[3, 4], [1, 2]]); + assert.deepEqual(g.sort(), [ + [3, 4], + [1, 2], + ]); }); }); diff --git a/packages/diff/test/array.ts b/packages/diff/test/array.ts index cf2335a32f..9814b0c54a 100644 --- a/packages/diff/test/array.ts +++ b/packages/diff/test/array.ts @@ -1,13 +1,13 @@ import * as assert from "assert"; import { ArrayDiff, diffArray, DiffMode } from "../src/index"; -describe("array", function() { +describe("array", function () { const state = >{ distance: 0, adds: {}, dels: {}, const: {}, - linear: [] + linear: [], }; it("simple (null,null)", () => { @@ -19,7 +19,7 @@ describe("array", function() { ...state, distance: 3, adds: { 0: 1, 1: 2, 2: 3 }, - linear: [1, 0, 1, 1, 1, 2, 1, 2, 3] + linear: [1, 0, 1, 1, 1, 2, 1, 2, 3], }); }); @@ -28,7 +28,7 @@ describe("array", function() { ...state, distance: 3, dels: { 0: 1, 1: 2, 2: 3 }, - linear: [-1, 0, 1, -1, 1, 2, -1, 2, 3] + linear: [-1, 0, 1, -1, 1, 2, -1, 2, 3], }); }); @@ -38,7 +38,7 @@ describe("array", function() { adds: { 2: 4 }, dels: { 2: 3 }, const: { 0: 1, 1: 2 }, - linear: [0, 0, 1, 0, 1, 2, -1, 2, 3, 1, 2, 4] + linear: [0, 0, 1, 0, 1, 2, -1, 2, 3, 1, 2, 4], }); }); @@ -50,7 +50,7 @@ describe("array", function() { adds: { 2: 5 }, dels: { 2: 3 }, const: { 0: 1, 1: 2, 3: 4 }, - linear: [0, 0, 1, 0, 1, 2, -1, 2, 3, 1, 2, 5, 0, 3, 4] + linear: [0, 0, 1, 0, 1, 2, -1, 2, 3, 1, 2, 5, 0, 3, 4], }); }); @@ -62,7 +62,7 @@ describe("array", function() { adds: { 3: 5 }, dels: {}, const: { 0: 1, 1: 2, 2: 3, 3: 4 }, - linear: [0, 0, 1, 0, 1, 2, 0, 2, 3, 1, 3, 5, 0, 3, 4] + linear: [0, 0, 1, 0, 1, 2, 0, 2, 3, 1, 3, 5, 0, 3, 4], }); }); @@ -78,7 +78,7 @@ describe("array", function() { adds: {}, dels: {}, const: {}, - linear: [1, 3, 5] + linear: [1, 3, 5], } ); }); diff --git a/packages/dl-asset/src/index.ts b/packages/dl-asset/src/index.ts index 09238d0f59..9049be605c 100644 --- a/packages/dl-asset/src/index.ts +++ b/packages/dl-asset/src/index.ts @@ -57,7 +57,7 @@ export const download = ( mime: undefined, expire: 1e4, utf8: false, - ...opts + ...opts, }; if (_opts.mime === undefined) { const match = /\.(\w+)$/.exec(name); @@ -65,12 +65,10 @@ export const download = ( } if (isString(src) && _opts.utf8) { src = new TextEncoder().encode(src); - _opts.mime+=";charset=UTF-8"; + _opts.mime += ";charset=UTF-8"; } const uri = URL.createObjectURL( - !(src instanceof Blob) - ? new Blob([src], { type: _opts.mime }) - : src + !(src instanceof Blob) ? new Blob([src], { type: _opts.mime }) : src ); const link = document.createElement("a"); link.setAttribute("download", name); diff --git a/packages/dlogic/src/index.ts b/packages/dlogic/src/index.ts index a9923b9083..50558b9c53 100644 --- a/packages/dlogic/src/index.ts +++ b/packages/dlogic/src/index.ts @@ -222,7 +222,7 @@ export const mux = (a: boolean, b: boolean, s: boolean) => */ export const demux = (i: boolean, s: boolean): [boolean, boolean] => [ i && !s, - i && s + i && s, ]; /** @@ -233,7 +233,7 @@ export const demux = (i: boolean, s: boolean): [boolean, boolean] => [ */ export const hadd1 = (a: boolean, b: boolean): Sum => ({ s: a !== b, - c: a && b + c: a && b, }); /** @@ -245,7 +245,7 @@ export const hadd1 = (a: boolean, b: boolean): Sum => ({ */ export const fadd1 = (a: boolean, b: boolean, c: boolean): Sum => ({ s: (a !== b) !== c, - c: (a !== b && c) || (a && b) + c: (a !== b && c) || (a && b), }); /** diff --git a/packages/dsp-io-wav/src/write.ts b/packages/dsp-io-wav/src/write.ts index 25a22a5507..254f0d45d3 100644 --- a/packages/dsp-io-wav/src/write.ts +++ b/packages/dsp-io-wav/src/write.ts @@ -1,26 +1,7 @@ import { assert } from "@thi.ng/api"; -import { - f32u16, - f32u24, - f32u32, - f32u8 -} from "@thi.ng/binary"; -import { - comp, - concat, - iterator, - map, - reduce, - take -} from "@thi.ng/transducers"; -import { - asBytes, - bytes, - u16, - u24, - u32, - u8 -} from "@thi.ng/transducers-binary"; +import { f32u16, f32u24, f32u32, f32u8 } from "@thi.ng/binary"; +import { comp, concat, iterator, map, reduce, take } from "@thi.ng/transducers"; +import { asBytes, bytes, u16, u24, u32, u8 } from "@thi.ng/transducers-binary"; import type { Fn, IObjectOf } from "@thi.ng/api"; import type { BinStructItem } from "@thi.ng/transducers-binary"; import type { WavSpec } from "./api"; @@ -31,7 +12,7 @@ const CONVERTERS: IObjectOf> = { 8: (x: number) => u8(f32u8(x)), 16: (x: number) => u16(f32u16(x), true), 24: (x: number) => u24(f32u24(x), true), - 32: (x: number) => u32(f32u32(x), true) + 32: (x: number) => u32(f32u32(x), true), }; export const wavHeader = (spec: WavSpec): BinStructItem[] => { @@ -51,7 +32,7 @@ export const wavHeader = (spec: WavSpec): BinStructItem[] => { u16(blockAlign, true), u16(spec.bits, true), u32(0x64617461, false), // 'data' - u32(dataLength, true) + u32(dataLength, true), ]; }; diff --git a/packages/dsp-io-wav/test/index.ts b/packages/dsp-io-wav/test/index.ts index dd7aefb394..1416486f99 100644 --- a/packages/dsp-io-wav/test/index.ts +++ b/packages/dsp-io-wav/test/index.ts @@ -8,7 +8,7 @@ describe("dsp-io-wav", () => { ...wavByteArray( { sampleRate: 48000, channels: 1, length: 4, bits: 16 }, [-1, -0.5, 0, 1] - ) + ), ], // prettier-ignore [ diff --git a/packages/dsp/src/comp/mapg.ts b/packages/dsp/src/comp/mapg.ts index 0021f38c02..94dcd7c7af 100644 --- a/packages/dsp/src/comp/mapg.ts +++ b/packages/dsp/src/comp/mapg.ts @@ -1,12 +1,6 @@ import { illegalArity } from "@thi.ng/errors"; import { AGen } from "../gen/agen"; -import type { - Fn2, - Fn3, - Fn4, - Fn5, - FnAny -} from "@thi.ng/api"; +import type { Fn2, Fn3, Fn4, Fn5, FnAny } from "@thi.ng/api"; import type { IGen } from "../api"; export function mapG(op: Fn2, a: IGen, init: T): IGen; diff --git a/packages/dsp/src/fft/fft.ts b/packages/dsp/src/fft/fft.ts index 893bdeb806..c99d857941 100644 --- a/packages/dsp/src/fft/fft.ts +++ b/packages/dsp/src/fft/fft.ts @@ -12,7 +12,7 @@ const PI = Math.PI; */ export const complexArray = (n: number): ComplexArray => [ new Float64Array(n), - new Float64Array(n) + new Float64Array(n), ]; /** diff --git a/packages/dsp/src/gen/adsr.ts b/packages/dsp/src/gen/adsr.ts index b88f9440bf..9e3340662d 100644 --- a/packages/dsp/src/gen/adsr.ts +++ b/packages/dsp/src/gen/adsr.ts @@ -10,7 +10,7 @@ const enum EnvPhase { DECAY, SUSTAIN, RELEASE, - IDLE + IDLE, } export interface ADSROpts { @@ -101,7 +101,7 @@ export class ADSR extends AGen implements IReset { dcurve: 0.001, slen: Infinity, gain: 1, - ...opts + ...opts, }; this.setAttack(opts.a!); this.setDecay(opts.d!); diff --git a/packages/dsp/src/proc/biquad.ts b/packages/dsp/src/proc/biquad.ts index 79734c250e..9690b1432f 100644 --- a/packages/dsp/src/proc/biquad.ts +++ b/packages/dsp/src/proc/biquad.ts @@ -1,10 +1,5 @@ import { unsupported } from "@thi.ng/errors"; -import { - clamp05, - PI, - SQRT2, - SQRT2_2 -} from "@thi.ng/math"; +import { clamp05, PI, SQRT2, SQRT2_2 } from "@thi.ng/math"; import { FilterType } from "../constants"; import { dbMag } from "../util/convert"; import { AProc } from "./aproc"; @@ -117,7 +112,7 @@ export class Biquad extends AProc implements IReset, IFilter { filterCoeffs(): FilterConfig { return { zeroes: [this._a0, this._a1, this._a2], - poles: [1, this._b1, this._b2] + poles: [1, this._b1, this._b2], }; } diff --git a/packages/dsp/src/proc/delay.ts b/packages/dsp/src/proc/delay.ts index 8be338d3dc..cf8fc3c866 100644 --- a/packages/dsp/src/proc/delay.ts +++ b/packages/dsp/src/proc/delay.ts @@ -1,12 +1,7 @@ import { isFunction } from "@thi.ng/checks"; import { wrap } from "@thi.ng/math"; import { AProc } from "./aproc"; -import type { - Fn0, - IClear, - ILength, - IReset -} from "@thi.ng/api"; +import type { Fn0, IClear, ILength, IReset } from "@thi.ng/api"; /** * Delay line of length `n` for numeric values. diff --git a/packages/dsp/src/proc/onepole.ts b/packages/dsp/src/proc/onepole.ts index 17e8ae05c2..5e6015adbf 100644 --- a/packages/dsp/src/proc/onepole.ts +++ b/packages/dsp/src/proc/onepole.ts @@ -50,7 +50,7 @@ export class OnePole extends AProc filterCoeffs(): FilterConfig { return { zeroes: [this._a0], - poles: [1, this._type === FilterType.LP ? this._b1 : -this._b1] + poles: [1, this._type === FilterType.LP ? this._b1 : -this._b1], }; } } diff --git a/packages/dsp/test/fft.ts b/packages/dsp/test/fft.ts index df98cdccca..39b4d6612c 100644 --- a/packages/dsp/test/fft.ts +++ b/packages/dsp/test/fft.ts @@ -7,7 +7,7 @@ import { ifft, normalizeFFT, spectrumPhase, - spectrumPow + spectrumPow, } from "../src"; const pulse8 = [-1, -1, -1, -1, 1, 1, 1, 1]; @@ -31,14 +31,14 @@ describe("fft", () => { assert.ok( deltaEqComplex(res, [ [0, -2, 0, -2, 0, -2, 0, -2], - [0, 4.828, 0, 0.828, 0, -0.828, 0, -4.828] + [0, 4.828, 0, 0.828, 0, -0.828, 0, -4.828], ]) ); assert.ok( deltaEqComplex(ifft(fft([...pulse8])), [ pulse8, - [0, 0, 0, 0, 0, 0, 0, 0] + [0, 0, 0, 0, 0, 0, 0, 0], ]) ); @@ -54,7 +54,7 @@ describe("fft", () => { assert.ok( deltaEqComplex(norm, [ [0, -0.707, 0, -0.707, 0, -0.707, 0, -0.707], - [0, 1.707, 0, 0.293, 0, -0.293, 0, -1.707] + [0, 1.707, 0, 0.293, 0, -0.293, 0, -1.707], ]) ); @@ -65,7 +65,7 @@ describe("fft", () => { -Infinity, -3.698, -Infinity, - -11.354 + -11.354, ]) ); diff --git a/packages/dynvar/src/index.ts b/packages/dynvar/src/index.ts index dfc8f3b351..e5f4061b55 100644 --- a/packages/dynvar/src/index.ts +++ b/packages/dynvar/src/index.ts @@ -1,10 +1,5 @@ import { assert } from "@thi.ng/api"; -import type { - Fn0, - IBind, - ICopy, - IDeref -} from "@thi.ng/api"; +import type { Fn0, IBind, ICopy, IDeref } from "@thi.ng/api"; /** * Hidden storage for bound value stacks diff --git a/packages/ecs/src/api.ts b/packages/ecs/src/api.ts index 6f06f0ba9a..ddedabf33d 100644 --- a/packages/ecs/src/api.ts +++ b/packages/ecs/src/api.ts @@ -7,7 +7,7 @@ import type { IRelease, Type, TypedArray, - UIntArray + UIntArray, } from "@thi.ng/api"; export type ComponentID = keyof S & string; diff --git a/packages/ecs/src/components/acomponent.ts b/packages/ecs/src/components/acomponent.ts index 6b7b44dc50..e154a3885c 100644 --- a/packages/ecs/src/components/acomponent.ts +++ b/packages/ecs/src/components/acomponent.ts @@ -1,13 +1,7 @@ import { INotifyMixin } from "@thi.ng/api"; import { isFunction } from "@thi.ng/checks"; import { EVENT_ADDED, EVENT_CHANGED, EVENT_PRE_DELETE } from "../constants"; -import type { - Event, - IID, - INotify, - Listener, - UIntArray -} from "@thi.ng/api"; +import type { Event, IID, INotify, Listener, UIntArray } from "@thi.ng/api"; import type { ComponentDefaultValue, IComponent } from "../api"; @INotifyMixin diff --git a/packages/ecs/src/components/object-component.ts b/packages/ecs/src/components/object-component.ts index 5fe5fdd19f..e710a4940b 100644 --- a/packages/ecs/src/components/object-component.ts +++ b/packages/ecs/src/components/object-component.ts @@ -1,9 +1,4 @@ -import { - assert, - INotifyMixin, - typedArray, - uintType -} from "@thi.ng/api"; +import { assert, INotifyMixin, typedArray, uintType } from "@thi.ng/api"; import { AComponent } from "./acomponent"; import type { UIntArray } from "@thi.ng/api"; import type { ObjectComponentOpts } from "../api"; diff --git a/packages/ecs/src/ecs.ts b/packages/ecs/src/ecs.ts index 8dc05c1366..81dce3361b 100644 --- a/packages/ecs/src/ecs.ts +++ b/packages/ecs/src/ecs.ts @@ -1,9 +1,4 @@ -import { - assert, - INotifyMixin, - typedArray, - uintType -} from "@thi.ng/api"; +import { assert, INotifyMixin, typedArray, uintType } from "@thi.ng/api"; import { bitSize } from "@thi.ng/binary"; import { isArray, isString } from "@thi.ng/checks"; import { IDGen } from "@thi.ng/idgen"; @@ -13,7 +8,7 @@ import { GroupOpts, IComponent, MemMappedComponentOpts, - ObjectComponentOpts + ObjectComponentOpts, } from "./api"; import { MemMappedComponent } from "./components/mem-component"; import { ObjectComponent } from "./components/object-component"; @@ -92,7 +87,7 @@ export class ECS implements INotify { ) { opts = { id: `group${NEXT_GROUP_ID++}`, - ...opts + ...opts, }; assert( !this.groups.has(opts.id!), diff --git a/packages/ecs/src/groups/group.ts b/packages/ecs/src/groups/group.ts index 86862cbb34..1d904ad13b 100644 --- a/packages/ecs/src/groups/group.ts +++ b/packages/ecs/src/groups/group.ts @@ -7,21 +7,16 @@ import { EVENT_ADDED, EVENT_CHANGED, EVENT_PRE_DELETE, - LOGGER + LOGGER, } from "../constants"; -import type { - Event, - FnO2, - FnO3, - IID -} from "@thi.ng/api"; +import type { Event, FnO2, FnO3, IID } from "@thi.ng/api"; import type { ComponentID, GroupInfo, GroupOpts, GroupTuple, ICache, - IComponent + IComponent, } from "../api"; export class Group> implements IID { @@ -50,7 +45,7 @@ export class Group> implements IID { acc[c.id] = { values: c.vals, size: c.size, - stride: c.stride + stride: c.stride, }; return acc; }, {}); diff --git a/packages/ecs/test/component.ts b/packages/ecs/test/component.ts index 040bd3baa9..b6db9cd362 100644 --- a/packages/ecs/test/component.ts +++ b/packages/ecs/test/component.ts @@ -41,7 +41,7 @@ describe("component", () => { id: "b", type: Type.F32, size: 3, - stride: 4 + stride: 4, }); assert.equal(b.vals.length, ecs.idgen.capacity * 4); assert.equal(b.size, 3); @@ -53,7 +53,7 @@ describe("component", () => { id: "a", type: Type.F32, size: 2, - default: [1, 2] + default: [1, 2], }); assert(a.add(8)); assert(a.add(9, [10, 20])); @@ -69,11 +69,19 @@ describe("component", () => { id: "a", type: Type.F32, size: 2, - default: [1, 2] + default: [1, 2], }); assert(a.add(8)); assert(a.add(9, [10, 20])); assert.deepEqual([...a.packedValues()], [1, 2, 10, 20]); - assert(equiv([...a.values()], [[10, 20], [1, 2]])); + assert( + equiv( + [...a.values()], + [ + [10, 20], + [1, 2], + ] + ) + ); }); }); diff --git a/packages/ecs/test/group.ts b/packages/ecs/test/group.ts index 887e28aa9a..3f289b11ff 100644 --- a/packages/ecs/test/group.ts +++ b/packages/ecs/test/group.ts @@ -30,7 +30,7 @@ describe("component", () => { equiv(collect(g), [ { a: "a", b: [0, 0], id: 0 }, { a: "aa", b: [1, 2], id: 1 }, - { a: "aaa", b: [3, 4], id: 2 } + { a: "aaa", b: [3, 4], id: 2 }, ]) ); @@ -38,7 +38,7 @@ describe("component", () => { assert.ok( equiv(collect(g), [ { a: "aa", b: [1, 2], id: 1 }, - { a: "aaa", b: [3, 4], id: 2 } + { a: "aaa", b: [3, 4], id: 2 }, ]) ); a.delete(2); diff --git a/packages/equiv/test/index.ts b/packages/equiv/test/index.ts index 4a7449b1e0..fe0faee710 100644 --- a/packages/equiv/test/index.ts +++ b/packages/equiv/test/index.ts @@ -85,7 +85,7 @@ describe("equiv", () => { equiv(1, { equiv(x: number) { return x === 1; - } + }, }) ); assert.ok( @@ -93,7 +93,7 @@ describe("equiv", () => { { equiv(x: number) { return x === 1; - } + }, }, 1 ) @@ -114,7 +114,16 @@ describe("equiv", () => { ); assert.ok(!equiv(a, new Set([3, 2, 0]))); assert.ok(!equiv(a, [3, 2, 0])); - assert.ok(!equiv(a, new Map([[3, 3], [2, 2], [1, 1]]))); + assert.ok( + !equiv( + a, + new Map([ + [3, 3], + [2, 2], + [1, 1], + ]) + ) + ); assert.ok(!equiv(a, null)); assert.ok(!equiv(null, a)); }); diff --git a/packages/fsm/src/alts.ts b/packages/fsm/src/alts.ts index d718cb458f..8ef1397cd7 100644 --- a/packages/fsm/src/alts.ts +++ b/packages/fsm/src/alts.ts @@ -5,7 +5,7 @@ import { Matcher, MatcherInst, MatchResult, - RES_PARTIAL + RES_PARTIAL, } from "./api"; import { result } from "./result"; diff --git a/packages/fsm/src/fsm.ts b/packages/fsm/src/fsm.ts index bd91940990..84f433f4e1 100644 --- a/packages/fsm/src/fsm.ts +++ b/packages/fsm/src/fsm.ts @@ -6,7 +6,7 @@ import { Reducer, ReductionFn, Transducer, - unreduced + unreduced, } from "@thi.ng/transducers"; import { Match, Matcher } from "./api"; import type { Fn2, IObjectOf } from "@thi.ng/api"; @@ -86,8 +86,9 @@ export function fsm( curr = next(); } else { illegalState( - `unknown tx: ${currID} -> ${body && - body[0]}` + `unknown tx: ${currID} -> ${ + body && body[0] + }` ); } if (res) { @@ -106,7 +107,7 @@ export function fsm( break; } return acc; - } + }, ]; }; } diff --git a/packages/fsm/src/lit.ts b/packages/fsm/src/lit.ts index f6d9c146d3..04105318f0 100644 --- a/packages/fsm/src/lit.ts +++ b/packages/fsm/src/lit.ts @@ -1,10 +1,5 @@ import { equiv as _equiv } from "@thi.ng/equiv"; -import { - Match, - Matcher, - RES_PARTIAL, - SeqCallback -} from "./api"; +import { Match, Matcher, RES_PARTIAL, SeqCallback } from "./api"; import { result } from "./result"; import type { Predicate2 } from "@thi.ng/api"; diff --git a/packages/fsm/src/not.ts b/packages/fsm/src/not.ts index af85a5e1a1..b18a0a01ff 100644 --- a/packages/fsm/src/not.ts +++ b/packages/fsm/src/not.ts @@ -1,9 +1,4 @@ -import { - Match, - Matcher, - RES_PARTIAL, - SeqCallback -} from "./api"; +import { Match, Matcher, RES_PARTIAL, SeqCallback } from "./api"; import { result } from "./result"; /** @@ -29,8 +24,8 @@ export const not = ( return type === Match.FAIL ? result(success && success(ctx, buf)) : type !== Match.PARTIAL - ? // TODO Match.FULL_NC handling? - result(fail && fail(ctx, buf), Match.FAIL) - : RES_PARTIAL; + ? // TODO Match.FULL_NC handling? + result(fail && fail(ctx, buf), Match.FAIL) + : RES_PARTIAL; }; }; diff --git a/packages/fsm/src/range.ts b/packages/fsm/src/range.ts index 1585753702..d4eea112d4 100644 --- a/packages/fsm/src/range.ts +++ b/packages/fsm/src/range.ts @@ -53,11 +53,7 @@ export const alpha = ( export const alphaNum = ( success?: LitCallback, fail?: LitCallback -): Matcher => altsLitObj( - { ...ALPHA, ...DIGITS }, - success, - fail -); +): Matcher => altsLitObj({ ...ALPHA, ...DIGITS }, success, fail); /** * Matcher for single whitespace characters. diff --git a/packages/fsm/src/repeat.ts b/packages/fsm/src/repeat.ts index 617028201a..315f708969 100644 --- a/packages/fsm/src/repeat.ts +++ b/packages/fsm/src/repeat.ts @@ -1,9 +1,4 @@ -import { - Match, - Matcher, - RES_PARTIAL, - SeqCallback -} from "./api"; +import { Match, Matcher, RES_PARTIAL, SeqCallback } from "./api"; import { result } from "./result"; /** diff --git a/packages/fsm/src/seq.ts b/packages/fsm/src/seq.ts index c3fbdaa033..5045fe6e1c 100644 --- a/packages/fsm/src/seq.ts +++ b/packages/fsm/src/seq.ts @@ -1,9 +1,4 @@ -import { - Match, - Matcher, - RES_PARTIAL, - SeqCallback -} from "./api"; +import { Match, Matcher, RES_PARTIAL, SeqCallback } from "./api"; import { result } from "./result"; /** diff --git a/packages/fsm/src/str.ts b/packages/fsm/src/str.ts index 87bb1cdad0..8f6bd6eb59 100644 --- a/packages/fsm/src/str.ts +++ b/packages/fsm/src/str.ts @@ -1,9 +1,4 @@ -import { - LitCallback, - Match, - Matcher, - RES_PARTIAL -} from "./api"; +import { LitCallback, Match, Matcher, RES_PARTIAL } from "./api"; import { result } from "./result"; /** diff --git a/packages/geom-accel/test/quadtree.ts b/packages/geom-accel/test/quadtree.ts index 8287fb2a1b..cdee989b2d 100644 --- a/packages/geom-accel/test/quadtree.ts +++ b/packages/geom-accel/test/quadtree.ts @@ -6,7 +6,7 @@ import { NdQuadtreeMap } from "../src"; const pts = new Set([ [10, 20, 30], [60, 70, 80], - [44, 55, 66] + [44, 55, 66], ]); const pairs = new Set(mapIndexed((i, p) => <[ReadonlyVec, number]>[p, i], pts)); @@ -54,7 +54,7 @@ describe("NdTree", () => { new Set(tree.queryKeys([50, 50, 50], 50, Infinity)), new Set([ [44, 55, 66], - [60, 70, 80] + [60, 70, 80], ]), "r=50" ); diff --git a/packages/geom-api/src/accel.ts b/packages/geom-api/src/accel.ts index fa18307b6d..64e8dd29c3 100644 --- a/packages/geom-api/src/accel.ts +++ b/packages/geom-api/src/accel.ts @@ -1,9 +1,4 @@ -import type { - IClear, - ICopy, - IEmpty, - Pair -} from "@thi.ng/api"; +import type { IClear, ICopy, IEmpty, Pair } from "@thi.ng/api"; export interface ISpatialMap extends Iterable>, diff --git a/packages/geom-arc/src/bounds.ts b/packages/geom-arc/src/bounds.ts index 03e8a63bb6..358e10ac38 100644 --- a/packages/geom-arc/src/bounds.ts +++ b/packages/geom-arc/src/bounds.ts @@ -7,7 +7,7 @@ import { ReadonlyVec, set2, Vec, - VecPair + VecPair, } from "@thi.ng/vectors"; import { pointAtTheta } from "./point-at"; diff --git a/packages/geom-arc/src/from-endpoints.ts b/packages/geom-arc/src/from-endpoints.ts index d41854e226..e4af8dd048 100644 --- a/packages/geom-arc/src/from-endpoints.ts +++ b/packages/geom-arc/src/from-endpoints.ts @@ -11,7 +11,7 @@ import { sub2, submN2, Vec, - X2 + X2, } from "@thi.ng/vectors"; /** @@ -64,7 +64,7 @@ export const fromEndPoints = ( // actual center const center: Vec = [ c * tc[0] - s * tc[1] + (a[0] + b[0]) / 2, - s * tc[0] + c * tc[1] + (a[1] + b[1]) / 2 + s * tc[0] + c * tc[1] + (a[1] + b[1]) / 2, ]; // transformed end points & angles const ta = div2(null, sub2([], tp, tc), r); @@ -85,6 +85,6 @@ export const fromEndPoints = ( start, end: start + sweep, xl, - cw + cw, }; }; diff --git a/packages/geom-clip-line/src/index.ts b/packages/geom-clip-line/src/index.ts index 3252112943..353e0c32ea 100644 --- a/packages/geom-clip-line/src/index.ts +++ b/packages/geom-clip-line/src/index.ts @@ -11,7 +11,7 @@ import type { Vec, ReadonlyVec } from "@thi.ng/vectors"; * outside the rect. * * - {@link https://en.wikipedia.org/wiki/Liang%E2%80%93Barsky_algorithm} - * - {@link https://github.com/thi-ng/c-thing/blob/master/src/geom/clip/liangbarsky.c} + * - {@link https://github.com/thi-ng/c-thing/blob/develop/src/geom/clip/liangbarsky.c} * * @param a - line endpoint * @param b - line endpoint @@ -108,7 +108,7 @@ export const liangBarsky2Raw = ( beta * dx + ax, beta * dy + ay, alpha, - beta + beta, ] : undefined; }; diff --git a/packages/geom-closest-point/src/index.ts b/packages/geom-closest-point/src/index.ts index 5f0ea87758..95434c9341 100644 --- a/packages/geom-closest-point/src/index.ts +++ b/packages/geom-closest-point/src/index.ts @@ -13,7 +13,7 @@ import { setC2, setC3, sub, - Vec + Vec, } from "@thi.ng/vectors"; /** diff --git a/packages/geom-isec/src/api.ts b/packages/geom-isec/src/api.ts index 1be0a5743b..3eefd8fac1 100644 --- a/packages/geom-isec/src/api.ts +++ b/packages/geom-isec/src/api.ts @@ -1,5 +1,5 @@ import { IntersectionResult, IntersectionType } from "@thi.ng/geom-api"; export const NONE: IntersectionResult = Object.freeze({ - type: IntersectionType.NONE + type: IntersectionType.NONE, }); diff --git a/packages/geom-isec/src/circle-circle.ts b/packages/geom-isec/src/circle-circle.ts index ca42567dd8..270cf99be6 100644 --- a/packages/geom-isec/src/circle-circle.ts +++ b/packages/geom-isec/src/circle-circle.ts @@ -8,7 +8,7 @@ import { mulN, perpendicularCCW, ReadonlyVec, - sub + sub, } from "@thi.ng/vectors"; import { NONE } from "./api"; @@ -31,7 +31,7 @@ export const intersectCircleCircle = ( const t = mulN(null, perpendicularCCW(null, delta), h / d); return { type: IntersectionType.INTERSECT, - isec: [add([], p, t), sub([], p, t)] + isec: [add([], p, t), sub([], p, t)], }; } return NONE; diff --git a/packages/geom-isec/src/line-line.ts b/packages/geom-isec/src/line-line.ts index ad541c512e..8dbe1894e7 100644 --- a/packages/geom-isec/src/line-line.ts +++ b/packages/geom-isec/src/line-line.ts @@ -28,7 +28,7 @@ export const intersectLineLine = ( type: isec ? IntersectionType.COINCIDENT : IntersectionType.COINCIDENT_NO_INTERSECT, - isec + isec, }; } return { type: IntersectionType.PARALLEL }; @@ -38,13 +38,13 @@ export const intersectLineLine = ( const ieps = 1 - eps; return { type: - eps < alpha && alpha < ieps && (eps < beta && beta < ieps) + eps < alpha && alpha < ieps && eps < beta && beta < ieps ? IntersectionType.INTERSECT : IntersectionType.INTERSECT_OUTSIDE, isec: mixN2([], a, b, alpha), alpha, beta, - det + det, }; }; diff --git a/packages/geom-isec/src/plane-plane.ts b/packages/geom-isec/src/plane-plane.ts index bcaa9c8af7..50cc9f3c59 100644 --- a/packages/geom-isec/src/plane-plane.ts +++ b/packages/geom-isec/src/plane-plane.ts @@ -1,12 +1,6 @@ import { IntersectionType } from "@thi.ng/geom-api"; import { eqDelta, eqDeltaFixed } from "@thi.ng/math"; -import { - add3, - cross3, - dot3, - mulN3, - ReadonlyVec -} from "@thi.ng/vectors"; +import { add3, cross3, dot3, mulN3, ReadonlyVec } from "@thi.ng/vectors"; import { NONE } from "./api"; export const intersectPlanePlane = ( @@ -26,7 +20,7 @@ export const intersectPlanePlane = ( type: IntersectionType.INTERSECT, isec: [ add3(null, mulN3([], na, da), mulN3([], nb, db)), - cross3([], na, nb) - ] + cross3([], na, nb), + ], }; }; diff --git a/packages/geom-isec/src/point.ts b/packages/geom-isec/src/point.ts index 06534d15d4..71ecd015e4 100644 --- a/packages/geom-isec/src/point.ts +++ b/packages/geom-isec/src/point.ts @@ -8,7 +8,7 @@ import { MultiVecOpImpl, ReadonlyVec, signedArea2, - vop + vop, } from "@thi.ng/vectors"; import type { Fn3 } from "@thi.ng/api"; diff --git a/packages/geom-isec/src/ray-circle.ts b/packages/geom-isec/src/ray-circle.ts index 0295a768b3..4ae7080dcf 100644 --- a/packages/geom-isec/src/ray-circle.ts +++ b/packages/geom-isec/src/ray-circle.ts @@ -1,11 +1,5 @@ import { IntersectionResult, IntersectionType } from "@thi.ng/geom-api"; -import { - dot, - maddN, - magSq, - ReadonlyVec, - sub -} from "@thi.ng/vectors"; +import { dot, maddN, magSq, ReadonlyVec, sub } from "@thi.ng/vectors"; import { NONE } from "./api"; export const intersectRayCircle = ( diff --git a/packages/geom-isec/src/ray-line.ts b/packages/geom-isec/src/ray-line.ts index 9430b43678..275be406a5 100644 --- a/packages/geom-isec/src/ray-line.ts +++ b/packages/geom-isec/src/ray-line.ts @@ -23,7 +23,7 @@ export const intersectRayLine = ( ? { type: IntersectionType.INTERSECT, isec: maddN([], dir, t, rpos), - alpha: t + alpha: t, } : NONE; }; diff --git a/packages/geom-isec/src/ray-plane.ts b/packages/geom-isec/src/ray-plane.ts index a46dbd7429..c06822c0c6 100644 --- a/packages/geom-isec/src/ray-plane.ts +++ b/packages/geom-isec/src/ray-plane.ts @@ -1,13 +1,6 @@ import { IntersectionType } from "@thi.ng/geom-api"; import { EPS, sign } from "@thi.ng/math"; -import { - copy, - dot, - maddN, - mulN, - ReadonlyVec, - sub -} from "@thi.ng/vectors"; +import { copy, dot, maddN, mulN, ReadonlyVec, sub } from "@thi.ng/vectors"; import { NONE } from "./api"; export const intersectRayPlane = ( @@ -25,13 +18,13 @@ export const intersectRayPlane = ( return { type: IntersectionType.INTERSECT, isec: maddN(isec, dir, alpha, rpos), - alpha + alpha, }; } return cp === 0 ? { type: IntersectionType.COINCIDENT, - isec: copy(rpos) + isec: copy(rpos), } : NONE; }; diff --git a/packages/geom-isec/src/ray-poly.ts b/packages/geom-isec/src/ray-poly.ts index efc89f7404..934524e2d0 100644 --- a/packages/geom-isec/src/ray-poly.ts +++ b/packages/geom-isec/src/ray-poly.ts @@ -32,7 +32,7 @@ export const intersectRayPolyline = ( type: IntersectionType.INTERSECT, isec: maddN2([], dir, minD, rpos), inside: !(cross & 1), - alpha: minD + alpha: minD, } : NONE; }; @@ -62,7 +62,7 @@ export const intersectRayPolylineAll = ( return res.length ? { type: IntersectionType.INTERSECT, - isec: res.sort((a, b) => a[0] - b[0]).map((x) => x[1]) + isec: res.sort((a, b) => a[0] - b[0]).map((x) => x[1]), } : NONE; }; diff --git a/packages/geom-isec/src/ray-rect.ts b/packages/geom-isec/src/ray-rect.ts index 2e93834606..b9602e8a5e 100644 --- a/packages/geom-isec/src/ray-rect.ts +++ b/packages/geom-isec/src/ray-rect.ts @@ -91,16 +91,16 @@ const intersectWith = ( type: IntersectionType.INTERSECT, inside, isec: [maddN([], dir, tmax, rpos)], - alpha: tmax + alpha: tmax, } : { type: IntersectionType.INTERSECT, isec: [ maddN([], dir, tmin, rpos), - maddN([], dir, tmax, rpos) + maddN([], dir, tmax, rpos), ], alpha: tmin, - beta: tmax + beta: tmax, } : NONE; }; diff --git a/packages/geom-poly-utils/src/barycentric.ts b/packages/geom-poly-utils/src/barycentric.ts index 6f27305e92..dd90bd37b7 100644 --- a/packages/geom-poly-utils/src/barycentric.ts +++ b/packages/geom-poly-utils/src/barycentric.ts @@ -5,7 +5,7 @@ import { ReadonlyVec, setC3, sub, - Vec + Vec, } from "@thi.ng/vectors"; export const toBarycentric = ( diff --git a/packages/geom-poly-utils/src/bounds.ts b/packages/geom-poly-utils/src/bounds.ts index ef2097306c..a7488b4c01 100644 --- a/packages/geom-poly-utils/src/bounds.ts +++ b/packages/geom-poly-utils/src/bounds.ts @@ -1,9 +1,4 @@ -import { - max, - min, - Vec, - VecPair -} from "@thi.ng/vectors"; +import { max, min, Vec, VecPair } from "@thi.ng/vectors"; /** * Computes the nD bounds of given vectors. `vmin` should be initialized diff --git a/packages/geom-poly-utils/src/equilateral.ts b/packages/geom-poly-utils/src/equilateral.ts index 53766a9251..6b6546f7d7 100644 --- a/packages/geom-poly-utils/src/equilateral.ts +++ b/packages/geom-poly-utils/src/equilateral.ts @@ -5,7 +5,7 @@ import { normalize, perpendicularCCW, sub2, - Vec + Vec, } from "@thi.ng/vectors"; export const equilateralTriangle2 = (a: Vec, b: Vec) => { diff --git a/packages/geom-resample/src/sampler.ts b/packages/geom-resample/src/sampler.ts index 05e78738e4..ccb15ff3c0 100644 --- a/packages/geom-resample/src/sampler.ts +++ b/packages/geom-resample/src/sampler.ts @@ -10,7 +10,7 @@ import { set, sub, Vec, - VecPair + VecPair, } from "@thi.ng/vectors"; export class Sampler { diff --git a/packages/geom-splines/src/cubic-arc.ts b/packages/geom-splines/src/cubic-arc.ts index f6ca6653e2..d0bb40e262 100644 --- a/packages/geom-splines/src/cubic-arc.ts +++ b/packages/geom-splines/src/cubic-arc.ts @@ -1,11 +1,5 @@ import { pointAtTheta } from "@thi.ng/geom-arc"; -import { - EPS, - HALF_PI, - PI, - roundEps, - sincos -} from "@thi.ng/math"; +import { EPS, HALF_PI, PI, roundEps, sincos } from "@thi.ng/math"; import { magSq2, ReadonlyVec, Vec } from "@thi.ng/vectors"; import { cubicFromLine } from "./cubic-line"; @@ -14,7 +8,7 @@ import { cubicFromLine } from "./cubic-line"; * arc's angle range. * * Partially based on: - * {@link https://github.com/chromium/chromium/blob/master/third_party/blink/renderer/core/svg/svg_path_parser.cc#L253} + * {@link https://github.com/chromium/chromium/blob/develop/third_party/blink/renderer/core/svg/svg_path_parser.cc#L253} * * @param pos - ellipse center * @param r - ellipse radii @@ -60,7 +54,7 @@ export const cubicFromArc = ( mapP(c1, s1), mapP(c1 - s1 * t, s1 + c1 * t), mapP(c2 + s2 * t, s2 - c2 * t), - mapP(c2, s2) + mapP(c2, s2), ]); } return res; diff --git a/packages/geom-splines/src/cubic-closest-point.ts b/packages/geom-splines/src/cubic-closest-point.ts index 05d21a22d6..c3ccdcd85e 100644 --- a/packages/geom-splines/src/cubic-closest-point.ts +++ b/packages/geom-splines/src/cubic-closest-point.ts @@ -1,10 +1,5 @@ import { minError } from "@thi.ng/math"; -import { - distSq, - mixCubic, - ReadonlyVec, - Vec -} from "@thi.ng/vectors"; +import { distSq, mixCubic, ReadonlyVec, Vec } from "@thi.ng/vectors"; /** * Performs recursive search for closest point to `p` on cubic curve diff --git a/packages/geom-splines/src/cubic-from-breakpoints.ts b/packages/geom-splines/src/cubic-from-breakpoints.ts index 12474c8854..833400ffee 100644 --- a/packages/geom-splines/src/cubic-from-breakpoints.ts +++ b/packages/geom-splines/src/cubic-from-breakpoints.ts @@ -8,7 +8,7 @@ import { perpendicularCW, ReadonlyVec, set, - Vec + Vec, } from "@thi.ng/vectors"; const buildSegments = (tangents: Vec[][], t: number, uniform: boolean) => { @@ -49,7 +49,7 @@ export const openCubicFromBreakPoints = ( uniform = false ) => { const tangents: Vec[][] = [ - [points[0], direction([], points[0], points[1])] + [points[0], direction([], points[0], points[1])], ]; const num = points.length - 1; for (let i = 1; i < num; i++) { diff --git a/packages/geom-splines/src/cubic-from-controlpoints.ts b/packages/geom-splines/src/cubic-from-controlpoints.ts index 98bf2fbf7d..e46fd2d464 100644 --- a/packages/geom-splines/src/cubic-from-controlpoints.ts +++ b/packages/geom-splines/src/cubic-from-controlpoints.ts @@ -5,7 +5,7 @@ import { mixN, ReadonlyVec, set, - Vec + Vec, } from "@thi.ng/vectors"; const buildUniform = (segments: Vec[], t: number) => { @@ -18,7 +18,7 @@ const buildUniform = (segments: Vec[], t: number) => { a, add(null, direction([], a, b, t), a), add(null, direction([], c, b, t), c), - c + c, ]); } return res; diff --git a/packages/geom-splines/src/cubic-line.ts b/packages/geom-splines/src/cubic-line.ts index 31f4022cbc..5aacb56b88 100644 --- a/packages/geom-splines/src/cubic-line.ts +++ b/packages/geom-splines/src/cubic-line.ts @@ -12,5 +12,5 @@ export const cubicFromLine = (a: Vec, b: Vec) => [ set([], a), mixN([], a, b, 1 / 3), mixN([], b, a, 1 / 3), - set([], b) + set([], b), ]; diff --git a/packages/geom-splines/src/cubic-quadratic.ts b/packages/geom-splines/src/cubic-quadratic.ts index 6946601373..820b63f6d7 100644 --- a/packages/geom-splines/src/cubic-quadratic.ts +++ b/packages/geom-splines/src/cubic-quadratic.ts @@ -4,5 +4,5 @@ export const cubicFromQuadratic = (a: Vec, b: Vec, c: Vec) => [ set([], a), mixN([], a, b, 2 / 3), mixN([], c, b, 2 / 3), - set([], c) + set([], c), ]; diff --git a/packages/geom-splines/src/cubic-split.ts b/packages/geom-splines/src/cubic-split.ts index de96d14acb..aa872a8fbc 100644 --- a/packages/geom-splines/src/cubic-split.ts +++ b/packages/geom-splines/src/cubic-split.ts @@ -20,7 +20,10 @@ export const cubicSplitAt = ( const abc = mixN([], ab, bc, t); const bcd = mixN([], bc, cd, t); const p = mixN([], abc, bcd, t); - return [[set([], a), ab, abc, set([], p)], [p, bcd, cd, set([], d)]]; + return [ + [set([], a), ab, abc, set([], p)], + [p, bcd, cd, set([], d)], + ]; }; export const splitCubicNearPoint = ( diff --git a/packages/geom-splines/src/cubic-tangent.ts b/packages/geom-splines/src/cubic-tangent.ts index eaef8099c5..3da5ec7be3 100644 --- a/packages/geom-splines/src/cubic-tangent.ts +++ b/packages/geom-splines/src/cubic-tangent.ts @@ -1,9 +1,4 @@ -import { - addW4, - normalize, - ReadonlyVec, - Vec -} from "@thi.ng/vectors"; +import { addW4, normalize, ReadonlyVec, Vec } from "@thi.ng/vectors"; export const cubicTangentAt = ( out: Vec, diff --git a/packages/geom-splines/src/internal/sample.ts b/packages/geom-splines/src/internal/sample.ts index beeb35cedb..55bdc947ce 100644 --- a/packages/geom-splines/src/internal/sample.ts +++ b/packages/geom-splines/src/internal/sample.ts @@ -20,11 +20,11 @@ export const __sample = (sample: Fn3) => opts = isNumber(opts) ? { num: opts, - last: true + last: true, } : { num: DEFAULT_SAMPLES, - ...opts + ...opts, }; const res: Vec[] = []; sample(res, pts, opts.num!); @@ -32,7 +32,9 @@ export const __sample = (sample: Fn3) => return res; }; -export const __sampleArray = (fn: Fn2, Vec[]>) => ( +export const __sampleArray = ( + fn: Fn2, Vec[]> +) => ( segments: ReadonlyVec[][], closed = false, opts: number | Partial diff --git a/packages/geom-splines/src/quadratic-closest-point.ts b/packages/geom-splines/src/quadratic-closest-point.ts index df507edc83..2dc30a0da8 100644 --- a/packages/geom-splines/src/quadratic-closest-point.ts +++ b/packages/geom-splines/src/quadratic-closest-point.ts @@ -1,10 +1,5 @@ import { minError } from "@thi.ng/math"; -import { - distSq, - mixQuadratic, - ReadonlyVec, - Vec -} from "@thi.ng/vectors"; +import { distSq, mixQuadratic, ReadonlyVec, Vec } from "@thi.ng/vectors"; /** * Performs recursive search for closest point to `p` on quadratic curve diff --git a/packages/geom-splines/src/quadratic-line.ts b/packages/geom-splines/src/quadratic-line.ts index ef94f4aeb2..0b3d9e8e44 100644 --- a/packages/geom-splines/src/quadratic-line.ts +++ b/packages/geom-splines/src/quadratic-line.ts @@ -3,5 +3,5 @@ import { addmN, ReadonlyVec, set } from "@thi.ng/vectors"; export const quadraticFromLine = (a: ReadonlyVec, b: ReadonlyVec) => [ set([], a), addmN([], a, b, 0.5), - set([], b) + set([], b), ]; diff --git a/packages/geom-splines/src/quadratic-split.ts b/packages/geom-splines/src/quadratic-split.ts index 46339eb616..ff6714bcaa 100644 --- a/packages/geom-splines/src/quadratic-split.ts +++ b/packages/geom-splines/src/quadratic-split.ts @@ -16,7 +16,10 @@ export const quadraticSplitAt = ( const ab = mixN([], a, b, t); const bc = mixN([], b, c, t); const p = mixN([], ab, bc, t); - return [[set([], a), ab, p], [p, bc, set([], c)]]; + return [ + [set([], a), ab, p], + [p, bc, set([], c)], + ]; }; export const quadraticSplitNearPoint = ( diff --git a/packages/geom-splines/src/quadratic-tangent.ts b/packages/geom-splines/src/quadratic-tangent.ts index 0676da2e3a..90abb1daaf 100644 --- a/packages/geom-splines/src/quadratic-tangent.ts +++ b/packages/geom-splines/src/quadratic-tangent.ts @@ -1,10 +1,4 @@ -import { - addW2, - normalize, - ReadonlyVec, - sub, - Vec -} from "@thi.ng/vectors"; +import { addW2, normalize, ReadonlyVec, sub, Vec } from "@thi.ng/vectors"; export const quadraticTangentAt = ( out: Vec, diff --git a/packages/geom-subdiv-curve/src/api.ts b/packages/geom-subdiv-curve/src/api.ts index 0a82470eeb..3478ee6bda 100644 --- a/packages/geom-subdiv-curve/src/api.ts +++ b/packages/geom-subdiv-curve/src/api.ts @@ -12,7 +12,7 @@ const MIDP = ([a, b]: ReadonlyVec[]) => [a, mixN([], a, b, 0.5)]; const THIRDS = ([a, b]: ReadonlyVec[]) => [ a, mixN([], a, b, 1 / 3), - mixN([], a, b, 2 / 3) + mixN([], a, b, 2 / 3), ]; const wrap2 = (pts: ReadonlyVec[]) => wrapSides(pts, 0, 1); @@ -24,7 +24,7 @@ const wrap3 = (pts: ReadonlyVec[]) => wrapSides(pts, 1, 1); */ export const SUBDIV_MID_OPEN: SubdivKernel = { fn: (pts, i, n) => (i < n - 2 ? MIDP(pts) : [...MIDP(pts), pts[1]]), - size: 2 + size: 2, }; /** @@ -34,7 +34,7 @@ export const SUBDIV_MID_OPEN: SubdivKernel = { export const SUBDIV_MID_CLOSED: SubdivKernel = { fn: MIDP, pre: wrap2, - size: 2 + size: 2, }; /** @@ -43,7 +43,7 @@ export const SUBDIV_MID_CLOSED: SubdivKernel = { */ export const SUBDIV_THIRDS_OPEN: SubdivKernel = { fn: (pts, i, n) => (i < n - 2 ? THIRDS(pts) : [...THIRDS(pts), pts[1]]), - size: 2 + size: 2, }; /** @@ -53,7 +53,7 @@ export const SUBDIV_THIRDS_OPEN: SubdivKernel = { export const SUBDIV_THIRDS_CLOSED: SubdivKernel = { fn: THIRDS, pre: wrap2, - size: 2 + size: 2, }; /** @@ -66,7 +66,7 @@ export const SUBDIV_CHAIKIN_OPEN: SubdivKernel = { : i === n - 3 ? [...CHAIKIN_LAST(pts), pts[2]] : CHAIKIN_MAIN(pts), - size: 3 + size: 3, }; /** @@ -75,7 +75,7 @@ export const SUBDIV_CHAIKIN_OPEN: SubdivKernel = { export const SUBDIV_CHAIKIN_CLOSED: SubdivKernel = { fn: CHAIKIN_MAIN, pre: wrap3, - size: 3 + size: 3, }; /** @@ -84,5 +84,5 @@ export const SUBDIV_CHAIKIN_CLOSED: SubdivKernel = { export const SUBDIV_CUBIC_CLOSED: SubdivKernel = { fn: CUBIC_MAIN, pre: wrap3, - size: 3 + size: 3, }; diff --git a/packages/geom-subdiv-curve/src/kernels.ts b/packages/geom-subdiv-curve/src/kernels.ts index 33e4ab9f5c..55ebe2cbdb 100644 --- a/packages/geom-subdiv-curve/src/kernels.ts +++ b/packages/geom-subdiv-curve/src/kernels.ts @@ -9,7 +9,7 @@ import { addW2, addW3, addW5, ReadonlyVec } from "@thi.ng/vectors"; */ export const kernel2 = ([ua, ub]: number[], [va, vb]: number[]) => ([ a, - b + b, ]: ReadonlyVec[]) => [addW2([], a, b, ua, ub), addW2([], a, b, va, vb)]; /** @@ -22,10 +22,10 @@ export const kernel2 = ([ua, ub]: number[], [va, vb]: number[]) => ([ export const kernel3 = ([ua, ub, uc]: number[], [va, vb, vc]: number[]) => ([ a, b, - c + c, ]: ReadonlyVec[]) => [ addW3([], a, b, c, ua, ub, uc), - addW3([], a, b, c, va, vb, vc) + addW3([], a, b, c, va, vb, vc), ]; /** @@ -40,5 +40,5 @@ export const kernel5 = ( [va, vb, vc, vd, ve]: number[] ) => ([a, b, c, d, e]: ReadonlyVec[]) => [ addW5([], a, b, c, d, e, ua, ub, uc, ud, ue), - addW5([], a, b, c, d, e, va, vb, vc, vd, ve) + addW5([], a, b, c, d, e, va, vb, vc, vd, ve), ]; diff --git a/packages/geom-subdiv-curve/src/subdivide.ts b/packages/geom-subdiv-curve/src/subdivide.ts index 141bdf5b24..04e9f3618e 100644 --- a/packages/geom-subdiv-curve/src/subdivide.ts +++ b/packages/geom-subdiv-curve/src/subdivide.ts @@ -4,7 +4,7 @@ import { mapcat, partition, push, - transduce + transduce, } from "@thi.ng/transducers"; import type { SubdivKernel } from "@thi.ng/geom-api"; import type { ReadonlyVec, Vec } from "@thi.ng/vectors"; diff --git a/packages/geom-tessellate/src/edge-split.ts b/packages/geom-tessellate/src/edge-split.ts index c8074321ae..ff2462216e 100644 --- a/packages/geom-tessellate/src/edge-split.ts +++ b/packages/geom-tessellate/src/edge-split.ts @@ -5,7 +5,7 @@ import { partition, push, transduce, - wrapSides + wrapSides, } from "@thi.ng/transducers"; import { mixN, ReadonlyVec, Vec } from "@thi.ng/vectors"; import type { Tessellator } from "@thi.ng/geom-api"; @@ -17,7 +17,10 @@ export const edgeSplit: Tessellator = (points: ReadonlyVec[]) => { partition(2, 1), mapcat(([a, b]) => { const m = mixN([], a, b, 0.5); - return [[a, m, c], [m, b, c]]; + return [ + [a, m, c], + [m, b, c], + ]; }) ), push(), diff --git a/packages/geom-tessellate/src/inset.ts b/packages/geom-tessellate/src/inset.ts index 3c2edf931b..0031a7fde1 100644 --- a/packages/geom-tessellate/src/inset.ts +++ b/packages/geom-tessellate/src/inset.ts @@ -6,7 +6,7 @@ import { push, transduce, wrapSides, - zip + zip, } from "@thi.ng/transducers"; import { mixN, ReadonlyVec, Vec } from "@thi.ng/vectors"; import type { Tessellator } from "@thi.ng/geom-api"; @@ -17,7 +17,10 @@ export const tesselInset = (inset = 0.5, keepInterior = false): Tessellator => ( const c = centroid(points); const inner = points.map((p) => mixN([], p, c, inset)); return transduce( - comp(partition(2, 1), map(([[a, b], [c, d]]) => [a, b, d, c])), + comp( + partition(2, 1), + map(([[a, b], [c, d]]) => [a, b, d, c]) + ), push(), keepInterior ? [inner] : [], wrapSides([...zip(points, inner)], 0, 1) diff --git a/packages/geom-tessellate/src/quad-fan.ts b/packages/geom-tessellate/src/quad-fan.ts index 58313fe870..846a26692e 100644 --- a/packages/geom-tessellate/src/quad-fan.ts +++ b/packages/geom-tessellate/src/quad-fan.ts @@ -5,7 +5,7 @@ import { partition, push, transduce, - wrapSides + wrapSides, } from "@thi.ng/transducers"; import { mixN, ReadonlyVec, Vec } from "@thi.ng/vectors"; import type { Tessellator } from "@thi.ng/geom-api"; diff --git a/packages/geom-tessellate/src/rim-tris.ts b/packages/geom-tessellate/src/rim-tris.ts index 3ad9950998..b91180785a 100644 --- a/packages/geom-tessellate/src/rim-tris.ts +++ b/packages/geom-tessellate/src/rim-tris.ts @@ -5,19 +5,25 @@ import { push, transduce, wrapSides, - zip + zip, } from "@thi.ng/transducers"; import { mixN, ReadonlyVec, Vec } from "@thi.ng/vectors"; import type { Tessellator } from "@thi.ng/geom-api"; export const rimTris: Tessellator = (points: ReadonlyVec[]) => { const edgeCentroids = transduce( - comp(partition(2, 1), map((e) => mixN([], e[0], e[1], 0.5))), + comp( + partition(2, 1), + map((e) => mixN([], e[0], e[1], 0.5)) + ), push(), wrapSides(points, 0, 1) ); return transduce( - comp(partition(2, 1), map((t) => [t[0][0], t[1][1], t[1][0]])), + comp( + partition(2, 1), + map((t) => [t[0][0], t[1][1], t[1][0]]) + ), push(), [edgeCentroids], wrapSides([...zip(edgeCentroids, points)], 1, 0) diff --git a/packages/geom-tessellate/src/tessellate.ts b/packages/geom-tessellate/src/tessellate.ts index e4f01835b2..9a8d9dc8fe 100644 --- a/packages/geom-tessellate/src/tessellate.ts +++ b/packages/geom-tessellate/src/tessellate.ts @@ -6,7 +6,7 @@ import { reducer, repeat, scan, - transduce + transduce, } from "@thi.ng/transducers"; import type { Tessellator } from "@thi.ng/geom-api"; import type { ReadonlyVec, Vec } from "@thi.ng/vectors"; diff --git a/packages/geom-tessellate/src/tri-fan.ts b/packages/geom-tessellate/src/tri-fan.ts index 4280ce2572..3396d5323a 100644 --- a/packages/geom-tessellate/src/tri-fan.ts +++ b/packages/geom-tessellate/src/tri-fan.ts @@ -5,7 +5,7 @@ import { partition, push, transduce, - wrapSides + wrapSides, } from "@thi.ng/transducers"; import type { Tessellator } from "@thi.ng/geom-api"; import type { ReadonlyVec, Vec } from "@thi.ng/vectors"; @@ -13,7 +13,10 @@ import type { ReadonlyVec, Vec } from "@thi.ng/vectors"; export const triFan: Tessellator = (points: ReadonlyVec[]) => { const c = centroid(points); return transduce( - comp(partition(2, 1), map(([a, b]) => [a, b, c])), + comp( + partition(2, 1), + map(([a, b]) => [a, b, c]) + ), push(), wrapSides(points, 0, 1) ); diff --git a/packages/geom-voronoi/src/index.ts b/packages/geom-voronoi/src/index.ts index b765d97835..0403de466b 100644 --- a/packages/geom-voronoi/src/index.ts +++ b/packages/geom-voronoi/src/index.ts @@ -1,7 +1,11 @@ import { isNumber } from "@thi.ng/checks"; import { liangBarsky2 } from "@thi.ng/geom-clip-line"; import { sutherlandHodgeman } from "@thi.ng/geom-clip-poly"; -import { pointInCircumCircle, pointInPolygon2, pointInSegment } from "@thi.ng/geom-isec"; +import { + pointInCircumCircle, + pointInPolygon2, + pointInSegment, +} from "@thi.ng/geom-isec"; import { centroid, circumCenter2 } from "@thi.ng/geom-poly-utils"; import { EPS } from "@thi.ng/math"; import { Edge } from "@thi.ng/quad-edge"; @@ -11,7 +15,7 @@ import { signedArea2, Vec, VecPair, - ZERO2 + ZERO2, } from "@thi.ng/vectors"; import type { IObjectOf, Pair } from "@thi.ng/api"; @@ -65,7 +69,7 @@ export class DVMesh { let base = Edge.create>(e.origin, { pos: p, id: this.nextID++, - val + val, }); base.splice(e); const first = base; @@ -156,7 +160,7 @@ export class DVMesh { const id = this.nextID++; e.origin = { pos: !isBounds ? circumCenter2(a, b, c)! : ZERO2, - id + id, }; visitedVerts[id] = true; } diff --git a/packages/geom/src/api/arc.ts b/packages/geom/src/api/arc.ts index 59400b7e53..2fcede0814 100644 --- a/packages/geom/src/api/arc.ts +++ b/packages/geom/src/api/arc.ts @@ -3,9 +3,12 @@ import { Attribs, IHiccupPathSegment, IHiccupShape, - Type + Type, } from "@thi.ng/geom-api"; -import { pointAt as arcPointAt, pointAtTheta as arcPointAtTheta } from "@thi.ng/geom-arc"; +import { + pointAt as arcPointAt, + pointAtTheta as arcPointAtTheta, +} from "@thi.ng/geom-arc"; import { set, Vec } from "@thi.ng/vectors"; import { copyAttribs } from "../internal/copy-attribs"; @@ -90,7 +93,7 @@ export class Arc implements IHiccupShape, IHiccupPathSegment { return [ "path", this.attribs, - [["M", this.pointAt(0)], ...this.toHiccupPathSegments()] + [["M", this.pointAt(0)], ...this.toHiccupPathSegments()], ]; } @@ -103,8 +106,8 @@ export class Arc implements IHiccupShape, IHiccupPathSegment { this.axis, this.xl, this.cw, - this.pointAt(1) - ] + this.pointAt(1), + ], ]; } } diff --git a/packages/geom/src/api/cubic.ts b/packages/geom/src/api/cubic.ts index 58e844f554..a3844efece 100644 --- a/packages/geom/src/api/cubic.ts +++ b/packages/geom/src/api/cubic.ts @@ -15,7 +15,7 @@ export class Cubic extends APC implements IHiccupPathSegment { return [ "path", this.attribs, - [["M", this.points[0]], ...this.toHiccupPathSegments()] + [["M", this.points[0]], ...this.toHiccupPathSegments()], ]; } diff --git a/packages/geom/src/api/group.ts b/packages/geom/src/api/group.ts index a60221eb75..db47898dbc 100644 --- a/packages/geom/src/api/group.ts +++ b/packages/geom/src/api/group.ts @@ -20,9 +20,10 @@ export class Group implements IHiccupShape { } copy(): Group { - return new Group(copyAttribs(this), ( - this.children.map((c) => c.copy()) - )); + return new Group( + copyAttribs(this), + this.children.map((c) => c.copy()) + ); } equiv(o: any) { diff --git a/packages/geom/src/api/line.ts b/packages/geom/src/api/line.ts index 25d6fb6f49..8439f25376 100644 --- a/packages/geom/src/api/line.ts +++ b/packages/geom/src/api/line.ts @@ -18,7 +18,11 @@ export class Line extends APC implements IHiccupShape, IHiccupPathSegment { toHiccupPathSegments() { const [a, b] = this.points; return [ - a[0] === b[0] ? ["V", b[1]] : a[1] === b[1] ? ["H", b[0]] : ["L", b] + a[0] === b[0] + ? ["V", b[1]] + : a[1] === b[1] + ? ["H", b[0]] + : ["L", b], ]; } } diff --git a/packages/geom/src/api/quadratic.ts b/packages/geom/src/api/quadratic.ts index b5ef14c09e..f3c5f63e2b 100644 --- a/packages/geom/src/api/quadratic.ts +++ b/packages/geom/src/api/quadratic.ts @@ -15,7 +15,7 @@ export class Quadratic extends APC implements IHiccupShape, IHiccupPathSegment { return [ "path", this.attribs, - [["M", this.points[0]], ...this.toHiccupPathSegments()] + [["M", this.points[0]], ...this.toHiccupPathSegments()], ]; } diff --git a/packages/geom/src/api/ray.ts b/packages/geom/src/api/ray.ts index 70e2380ea4..eab6fc0c7e 100644 --- a/packages/geom/src/api/ray.ts +++ b/packages/geom/src/api/ray.ts @@ -26,7 +26,7 @@ export class Ray implements IHiccupShape { "line", this.attribs, this.pos, - maddN2([], this.dir, 1e6, this.pos) + maddN2([], this.dir, 1e6, this.pos), ]; } } diff --git a/packages/geom/src/api/rect.ts b/packages/geom/src/api/rect.ts index 1f4985c1a5..2ad1e91d9d 100644 --- a/packages/geom/src/api/rect.ts +++ b/packages/geom/src/api/rect.ts @@ -1,10 +1,5 @@ import { isNumber } from "@thi.ng/checks"; -import { - AABBLike, - Attribs, - IHiccupShape, - Type -} from "@thi.ng/geom-api"; +import { AABBLike, Attribs, IHiccupShape, Type } from "@thi.ng/geom-api"; import { add2, set, Vec } from "@thi.ng/vectors"; import { copyAttribs } from "../internal/copy-attribs"; diff --git a/packages/geom/src/ctors/aabb.ts b/packages/geom/src/ctors/aabb.ts index f20a677c8f..5b5e0b7be8 100644 --- a/packages/geom/src/ctors/aabb.ts +++ b/packages/geom/src/ctors/aabb.ts @@ -7,7 +7,7 @@ import { sub3, subN3, Vec, - ZERO3 + ZERO3, } from "@thi.ng/vectors"; import { AABB } from "../api/aabb"; import { Sphere } from "../api/sphere"; diff --git a/packages/geom/src/ctors/circle.ts b/packages/geom/src/ctors/circle.ts index fcc98ccd66..25d0a954ea 100644 --- a/packages/geom/src/ctors/circle.ts +++ b/packages/geom/src/ctors/circle.ts @@ -1,10 +1,5 @@ import { circumCenter2 } from "@thi.ng/geom-poly-utils"; -import { - dist, - mixN2, - ReadonlyVec, - Vec -} from "@thi.ng/vectors"; +import { dist, mixN2, ReadonlyVec, Vec } from "@thi.ng/vectors"; import { Circle } from "../api/circle"; import { argsVN } from "../internal/args"; import type { Attribs } from "@thi.ng/geom-api"; diff --git a/packages/geom/src/ctors/cubic.ts b/packages/geom/src/ctors/cubic.ts index 987a992e22..29941e6217 100644 --- a/packages/geom/src/ctors/cubic.ts +++ b/packages/geom/src/ctors/cubic.ts @@ -1,4 +1,8 @@ -import { cubicFromArc as _arc, cubicFromLine as _line, cubicFromQuadratic as _quad } from "@thi.ng/geom-splines"; +import { + cubicFromArc as _arc, + cubicFromLine as _line, + cubicFromQuadratic as _quad, +} from "@thi.ng/geom-splines"; import { Arc } from "../api/arc"; import { Cubic } from "../api/cubic"; import { copyAttribs } from "../internal/copy-attribs"; diff --git a/packages/geom/src/ctors/path-builder.ts b/packages/geom/src/ctors/path-builder.ts index 11aa295d33..95a6286eac 100644 --- a/packages/geom/src/ctors/path-builder.ts +++ b/packages/geom/src/ctors/path-builder.ts @@ -1,15 +1,7 @@ import { peek } from "@thi.ng/arrays"; import { Attribs, SegmentType } from "@thi.ng/geom-api"; import { eqDelta } from "@thi.ng/math"; -import { - add2, - copy, - mulN2, - set2, - sub2, - Vec, - zeroes -} from "@thi.ng/vectors"; +import { add2, copy, mulN2, set2, sub2, Vec, zeroes } from "@thi.ng/vectors"; import { Cubic } from "../api/cubic"; import { Line } from "../api/line"; import { Path } from "../api/path"; @@ -56,7 +48,7 @@ export class PathBuilder { set2(this.bezierP, p); this.curr.add({ point: p, - type: SegmentType.MOVE + type: SegmentType.MOVE, }); return this; } @@ -64,7 +56,7 @@ export class PathBuilder { lineTo(p: Vec, relative = false): PathBuilder { this.curr.add({ geo: new Line([copy(this.currP), this.updateCurrent(p, relative)]), - type: SegmentType.LINE + type: SegmentType.LINE, }); set2(this.bezierP, this.currP); return this; @@ -131,7 +123,7 @@ export class PathBuilder { xl, clockwise ), - type: SegmentType.ARC + type: SegmentType.ARC, }); set2(this.bezierP, this.currP); return this; @@ -140,7 +132,7 @@ export class PathBuilder { closePath() { this.curr.add({ geo: new Line([copy(this.currP), copy(this.startP)]), - type: SegmentType.LINE + type: SegmentType.LINE, }); this.curr.closed = true; return this; @@ -161,7 +153,7 @@ export class PathBuilder { set2(this.bezierP, this.currP); this.curr.add({ geo: new Line([prev, copy(this.currP)]), - type: SegmentType.LINE + type: SegmentType.LINE, }); } @@ -173,9 +165,9 @@ export class PathBuilder { copy(this.currP), cp1, cp2, - this.updateCurrent(p, relative) + this.updateCurrent(p, relative), ]), - type: SegmentType.CUBIC + type: SegmentType.CUBIC, }); } @@ -185,9 +177,9 @@ export class PathBuilder { geo: new Quadratic([ copy(this.currP), cp, - this.updateCurrent(p, relative) + this.updateCurrent(p, relative), ]), - type: SegmentType.QUADRATIC + type: SegmentType.QUADRATIC, }); } } diff --git a/packages/geom/src/ctors/path-from-svg.ts b/packages/geom/src/ctors/path-from-svg.ts index 938f119755..2739799696 100644 --- a/packages/geom/src/ctors/path-from-svg.ts +++ b/packages/geom/src/ctors/path-from-svg.ts @@ -104,7 +104,7 @@ const readFlag = (src: string, i: number): [boolean, number] => { : c === "1" ? true : illegalState(`expected '0' or '1' @ pos: ${i}`), - i + 1 + i + 1, ]; }; diff --git a/packages/geom/src/ctors/path.ts b/packages/geom/src/ctors/path.ts index 0ddf79c8a9..1c7e6384e6 100644 --- a/packages/geom/src/ctors/path.ts +++ b/packages/geom/src/ctors/path.ts @@ -31,7 +31,7 @@ export const normalizedPath = (path: Path) => ) : [{ ...s }], path.segments - ) + ), ], path.attribs ); diff --git a/packages/geom/src/ctors/plane.ts b/packages/geom/src/ctors/plane.ts index 16482c1e14..3a1c7dc50f 100644 --- a/packages/geom/src/ctors/plane.ts +++ b/packages/geom/src/ctors/plane.ts @@ -3,7 +3,7 @@ import { normalize, orthoNormal3, ReadonlyVec, - Vec + Vec, } from "@thi.ng/vectors"; import { Plane } from "../api/plane"; import type { Attribs } from "@thi.ng/geom-api"; diff --git a/packages/geom/src/ctors/polygon.ts b/packages/geom/src/ctors/polygon.ts index 63074b7fda..425941f475 100644 --- a/packages/geom/src/ctors/polygon.ts +++ b/packages/geom/src/ctors/polygon.ts @@ -5,7 +5,7 @@ import { normRange, push, transduce, - zip + zip, } from "@thi.ng/transducers"; import { cartesian2, Vec } from "@thi.ng/vectors"; import { Polygon } from "../api/polygon"; diff --git a/packages/geom/src/ctors/quad.ts b/packages/geom/src/ctors/quad.ts index 86e5e3a140..e8791e1802 100644 --- a/packages/geom/src/ctors/quad.ts +++ b/packages/geom/src/ctors/quad.ts @@ -1,12 +1,7 @@ import { isNumber } from "@thi.ng/checks"; import { closestPointPlane } from "@thi.ng/geom-closest-point"; import { alignmentQuat, mulVQ } from "@thi.ng/matrices"; -import { - add3, - ReadonlyVec, - Vec, - Z3 -} from "@thi.ng/vectors"; +import { add3, ReadonlyVec, Vec, Z3 } from "@thi.ng/vectors"; import { Plane } from "../api/plane"; import { Quad } from "../api/quad"; import { Quad3 } from "../api/quad3"; @@ -37,9 +32,12 @@ export const quadOnPlane = ( const [w, h] = isNumber(size) ? [size, size] : size; const q = alignmentQuat(Z3, plane.normal); return new Quad3( - [[-w, -h, 0], [w, -h, 0], [w, h, 0], [-w, h, 0]].map((p) => - add3(null, mulVQ(null, q, p), pos) - ), + [ + [-w, -h, 0], + [w, -h, 0], + [w, h, 0], + [-w, h, 0], + ].map((p) => add3(null, mulVQ(null, q, p), pos)), attribs ); }; diff --git a/packages/geom/src/ctors/rect.ts b/packages/geom/src/ctors/rect.ts index 284e89372a..73e21c180d 100644 --- a/packages/geom/src/ctors/rect.ts +++ b/packages/geom/src/ctors/rect.ts @@ -9,7 +9,7 @@ import { sub2, subN2, Vec, - ZERO2 + ZERO2, } from "@thi.ng/vectors"; import { Circle } from "../api/circle"; import { Polygon } from "../api/polygon"; diff --git a/packages/geom/src/ctors/sphere.ts b/packages/geom/src/ctors/sphere.ts index 71dc47e998..e02aa0264d 100644 --- a/packages/geom/src/ctors/sphere.ts +++ b/packages/geom/src/ctors/sphere.ts @@ -1,9 +1,4 @@ -import { - dist, - mixN3, - ReadonlyVec, - Vec -} from "@thi.ng/vectors"; +import { dist, mixN3, ReadonlyVec, Vec } from "@thi.ng/vectors"; import { Sphere } from "../api/sphere"; import { argsVN } from "../internal/args"; import type { Attribs } from "@thi.ng/geom-api"; diff --git a/packages/geom/src/internal/args.ts b/packages/geom/src/internal/args.ts index e525b3af05..b4116c2934 100644 --- a/packages/geom/src/internal/args.ts +++ b/packages/geom/src/internal/args.ts @@ -44,7 +44,7 @@ export const argsVN = (args: any[]) => { ? args.length === 2 ? [args[0], args[1], attr] : isNumber(args[0]) - ? [undefined, args[0], attr] - : [args[0], undefined, attr] + ? [undefined, args[0], attr] + : [args[0], undefined, attr] : [undefined, undefined, attr]; }; diff --git a/packages/geom/src/internal/collate.ts b/packages/geom/src/internal/collate.ts index 12f9ba008c..246f836351 100644 --- a/packages/geom/src/internal/collate.ts +++ b/packages/geom/src/internal/collate.ts @@ -39,7 +39,7 @@ export const collateWith = ( start: 0, cstride: 1, estride: stride, - ...opts + ...opts, }; const { start, cstride, estride } = opts; return remap( diff --git a/packages/geom/src/internal/split.ts b/packages/geom/src/internal/split.ts index e61025c26a..3c8a12dddc 100644 --- a/packages/geom/src/internal/split.ts +++ b/packages/geom/src/internal/split.ts @@ -2,5 +2,8 @@ import { mixN, set, Vec, VecPair } from "@thi.ng/vectors"; export const splitLine = (a: Vec, b: Vec, t: number): [VecPair, VecPair] => { const p = mixN([], a, b, t); - return [[a, p], [set([], p), b]]; + return [ + [a, p], + [set([], p), b], + ]; }; diff --git a/packages/geom/src/internal/union-bounds.ts b/packages/geom/src/internal/union-bounds.ts index b185db511a..19b95575e1 100644 --- a/packages/geom/src/internal/union-bounds.ts +++ b/packages/geom/src/internal/union-bounds.ts @@ -1,11 +1,4 @@ -import { - add, - max, - min, - ReadonlyVec, - sub, - VecPair -} from "@thi.ng/vectors"; +import { add, max, min, ReadonlyVec, sub, VecPair } from "@thi.ng/vectors"; /** * Takes the position and size vectors of 2 diff --git a/packages/geom/src/ops/arc-length.ts b/packages/geom/src/ops/arc-length.ts index 62cfbeee20..b3ebf75cdb 100644 --- a/packages/geom/src/ops/arc-length.ts +++ b/packages/geom/src/ops/arc-length.ts @@ -56,7 +56,7 @@ arcLength.addAll(>>{ [Type.TRIANGLE]: ({ points }: Triangle) => dist(points[0], points[1]) + dist(points[1], points[2]) + - dist(points[2], points[0]) + dist(points[2], points[0]), }); arcLength.isa(Type.QUAD, Type.POLYGON); diff --git a/packages/geom/src/ops/area.ts b/packages/geom/src/ops/area.ts index 1fb24ca77b..d00393b8de 100644 --- a/packages/geom/src/ops/area.ts +++ b/packages/geom/src/ops/area.ts @@ -2,7 +2,7 @@ import { DEFAULT, defmulti, Implementation1O, - MultiFn1O + MultiFn1O, } from "@thi.ng/defmulti"; import { IShape, Type } from "@thi.ng/geom-api"; import { polyArea2 } from "@thi.ng/geom-poly-utils"; @@ -84,7 +84,7 @@ area.addAll(>>{ [Type.TRIANGLE]: ($: Triangle, signed?) => { const area = 0.5 * signedArea2(...(<[Vec, Vec, Vec]>$.points)); return signed ? area : Math.abs(area); - } + }, }); area.isa(Type.QUAD, Type.POLYGON); diff --git a/packages/geom/src/ops/as-cubic.ts b/packages/geom/src/ops/as-cubic.ts index 16991697b8..7fb3a30982 100644 --- a/packages/geom/src/ops/as-cubic.ts +++ b/packages/geom/src/ops/as-cubic.ts @@ -4,7 +4,7 @@ import { closedCubicFromBreakPoints, closedCubicFromControlPoints, openCubicFromBreakPoints, - openCubicFromControlPoints + openCubicFromControlPoints, } from "@thi.ng/geom-splines"; import { TAU } from "@thi.ng/math"; import { mapcat } from "@thi.ng/transducers"; @@ -18,7 +18,11 @@ import { Polyline } from "../api/polyline"; import { Quadratic } from "../api/quadratic"; import { Rect } from "../api/rect"; import { arc } from "../ctors/arc"; -import { cubicFromArc, cubicFromLine, cubicFromQuadratic } from "../ctors/cubic"; +import { + cubicFromArc, + cubicFromLine, + cubicFromQuadratic, +} from "../ctors/cubic"; import { copyAttribs } from "../internal/copy-attribs"; import { dispatch } from "../internal/dispatch"; import { asPolygon } from "./as-polygon"; @@ -39,11 +43,11 @@ asCubic.addAll(>>{ [Type.GROUP]: ($: Group) => [...mapcat(asCubic, $.children)], [Type.LINE]: ({ attribs, points }: Line) => [ - cubicFromLine(points[0], points[1], { ...attribs }) + cubicFromLine(points[0], points[1], { ...attribs }), ], [Type.PATH]: ($: Path) => [ - ...mapcat((s) => (s.geo ? asCubic(s.geo) : null), $.segments) + ...mapcat((s) => (s.geo ? asCubic(s.geo) : null), $.segments), ], [Type.POLYGON]: ($: Polygon, opts: Partial = {}) => { @@ -63,11 +67,11 @@ asCubic.addAll(>>{ }, [Type.QUADRATIC]: ({ attribs, points }: Quadratic) => [ - cubicFromQuadratic(points[0], points[1], points[2], { ...attribs }) + cubicFromQuadratic(points[0], points[1], points[2], { ...attribs }), ], [Type.RECT]: ($: Rect, opts?: Partial) => - asCubic(asPolygon($), opts) + asCubic(asPolygon($), opts), }); asCubic.isa(Type.ELLIPSE, Type.CIRCLE); diff --git a/packages/geom/src/ops/as-polygon.ts b/packages/geom/src/ops/as-polygon.ts index 8fb8d66a35..b991fc6ada 100644 --- a/packages/geom/src/ops/as-polygon.ts +++ b/packages/geom/src/ops/as-polygon.ts @@ -12,7 +12,7 @@ export const asPolygon: MultiFn1O< > = defmulti(dispatch); asPolygon.addAll({ - [Type.POINTS]: ($, opts) => new Polygon(vertices($, opts), copyAttribs($)) + [Type.POINTS]: ($, opts) => new Polygon(vertices($, opts), copyAttribs($)), }); asPolygon.isa(Type.CIRCLE, Type.POINTS); diff --git a/packages/geom/src/ops/as-svg.ts b/packages/geom/src/ops/as-svg.ts index be18d5111e..f6acd64196 100644 --- a/packages/geom/src/ops/as-svg.ts +++ b/packages/geom/src/ops/as-svg.ts @@ -17,7 +17,7 @@ export const svgDoc = (attribs: Attribs, ...xs: IShape[]) => { viewBox: `${ff(pos[0])} ${ff(pos[1])} ${ff(size[0])} ${ff( size[1] )}`, - ...attribs + ...attribs, }; } } diff --git a/packages/geom/src/ops/bounds.ts b/packages/geom/src/ops/bounds.ts index e6bb5194d1..8fe30e0e33 100644 --- a/packages/geom/src/ops/bounds.ts +++ b/packages/geom/src/ops/bounds.ts @@ -1,20 +1,9 @@ import { defmulti, Implementation1 } from "@thi.ng/defmulti"; -import { - AABBLike, - IShape, - PathSegment, - PCLike, - Type -} from "@thi.ng/geom-api"; +import { AABBLike, IShape, PathSegment, PCLike, Type } from "@thi.ng/geom-api"; import { bounds as arcBounds } from "@thi.ng/geom-arc"; import { bounds as _bounds } from "@thi.ng/geom-poly-utils"; import { cubicBounds, quadraticBounds } from "@thi.ng/geom-splines"; -import { - comp, - filter, - iterator1, - map -} from "@thi.ng/transducers"; +import { comp, filter, iterator1, map } from "@thi.ng/transducers"; import { max, MAX2, @@ -27,7 +16,7 @@ import { set2, set3, sub2, - subN2 + subN2, } from "@thi.ng/vectors"; import { Arc } from "../api/arc"; import { Circle } from "../api/circle"; @@ -78,7 +67,7 @@ bounds.addAll(>>{ filter((s) => !!s) ), path.segments - ) + ), ], bounds ); @@ -94,7 +83,7 @@ bounds.addAll(>>{ [Type.QUADRATIC]: ({ points }: Quadratic) => rectFromMinMax(...quadraticBounds(points[0], points[1], points[2])), - [Type.RECT]: ($: IShape) => $.copy() + [Type.RECT]: ($: IShape) => $.copy(), }); bounds.isa(Type.AABB, Type.RECT); diff --git a/packages/geom/src/ops/center.ts b/packages/geom/src/ops/center.ts index ee6a789506..0cf8383527 100644 --- a/packages/geom/src/ops/center.ts +++ b/packages/geom/src/ops/center.ts @@ -2,17 +2,10 @@ import { DEFAULT, defmulti, Implementation1O, - MultiFn1O + MultiFn1O, } from "@thi.ng/defmulti"; import { IShape, Type } from "@thi.ng/geom-api"; -import { - ReadonlyVec, - set2, - set3, - submN, - ZERO2, - ZERO3 -} from "@thi.ng/vectors"; +import { ReadonlyVec, set2, set3, submN, ZERO2, ZERO3 } from "@thi.ng/vectors"; import { Arc } from "../api/arc"; import { Circle } from "../api/circle"; import { Ellipse } from "../api/ellipse"; @@ -56,5 +49,5 @@ center.addAll(< new Ellipse(set2([], origin), set2([], $.r), copyAttribs($)), [Type.SPHERE]: ($: Sphere, origin = ZERO3) => - new Sphere(set3([], origin), $.r, copyAttribs($)) + new Sphere(set3([], origin), $.r, copyAttribs($)), }); diff --git a/packages/geom/src/ops/centroid.ts b/packages/geom/src/ops/centroid.ts index 7cfaf46237..4b027b712b 100644 --- a/packages/geom/src/ops/centroid.ts +++ b/packages/geom/src/ops/centroid.ts @@ -1,20 +1,10 @@ import { defmulti, Implementation1O, MultiFn1O } from "@thi.ng/defmulti"; +import { AABBLike, IShape, PCLike, Type } from "@thi.ng/geom-api"; import { - AABBLike, - IShape, - PCLike, - Type -} from "@thi.ng/geom-api"; -import { centerOfWeight2, centroid as _centroid } from "@thi.ng/geom-poly-utils"; -import { - add, - divN, - maddN, - mixN, - mulN, - set, - Vec -} from "@thi.ng/vectors"; + centerOfWeight2, + centroid as _centroid, +} from "@thi.ng/geom-poly-utils"; +import { add, divN, maddN, mixN, mulN, set, Vec } from "@thi.ng/vectors"; import { Circle } from "../api/circle"; import { Group } from "../api/group"; import { Line } from "../api/line"; @@ -53,7 +43,7 @@ centroid.addAll(>>{ null, add(null, add(out || [], points[0], points[1]), points[2]), 3 - ) + ), }); centroid.isa(Type.ARC, Type.CIRCLE); diff --git a/packages/geom/src/ops/classify-point.ts b/packages/geom/src/ops/classify-point.ts index afb23eb6d7..7081a3b7dd 100644 --- a/packages/geom/src/ops/classify-point.ts +++ b/packages/geom/src/ops/classify-point.ts @@ -1,6 +1,9 @@ import { defmulti, Implementation2O, MultiFn2O } from "@thi.ng/defmulti"; import { IShape, Type } from "@thi.ng/geom-api"; -import { classifyPointInCircle, classifyPointInTriangle2 } from "@thi.ng/geom-isec"; +import { + classifyPointInCircle, + classifyPointInTriangle2, +} from "@thi.ng/geom-isec"; import { EPS, sign } from "@thi.ng/math"; import { dot, ReadonlyVec } from "@thi.ng/vectors"; import { Circle } from "../api/circle"; @@ -25,7 +28,7 @@ classifyPoint.addAll(< [Type.PLANE]: ($: Plane, p, eps) => sign(dot($.normal, p) - $.w, eps), [Type.TRIANGLE]: ({ points }: Triangle, p: ReadonlyVec, eps = EPS) => - classifyPointInTriangle2(p, points[0], points[1], points[2], eps) + classifyPointInTriangle2(p, points[0], points[1], points[2], eps), }); classifyPoint.isa(Type.SPHERE, Type.CIRCLE); diff --git a/packages/geom/src/ops/clip-convex.ts b/packages/geom/src/ops/clip-convex.ts index 55de041ab8..882adc77e6 100644 --- a/packages/geom/src/ops/clip-convex.ts +++ b/packages/geom/src/ops/clip-convex.ts @@ -29,7 +29,7 @@ clipConvex.addAll(>>{ centroid(boundary) ), copyAttribs($) - ) + ), }); clipConvex.isa(Type.CIRCLE, Type.RECT); diff --git a/packages/geom/src/ops/closest-point.ts b/packages/geom/src/ops/closest-point.ts index b5d485f222..9d3a8e2dae 100644 --- a/packages/geom/src/ops/closest-point.ts +++ b/packages/geom/src/ops/closest-point.ts @@ -8,15 +8,10 @@ import { closestPointPlane, closestPointPolyline, closestPointRect, - closestPointSegment + closestPointSegment, } from "@thi.ng/geom-closest-point"; import { closestPointCubic, closestPointQuadratic } from "@thi.ng/geom-splines"; -import { - add2, - add3, - ReadonlyVec, - Vec -} from "@thi.ng/vectors"; +import { add2, add3, ReadonlyVec, Vec } from "@thi.ng/vectors"; import { AABB } from "../api/aabb"; import { Arc } from "../api/arc"; import { Circle } from "../api/circle"; @@ -68,7 +63,7 @@ closestPoint.addAll(< closestPointQuadratic(p, points[0], points[1], points[2], out), [Type.RECT]: ($: Rect, p, out) => - closestPointRect(p, $.pos, add2([], $.pos, $.size), out) + closestPointRect(p, $.pos, add2([], $.pos, $.size), out), }); closestPoint.isa(Type.QUAD, Type.POLYGON); diff --git a/packages/geom/src/ops/convex-hull.ts b/packages/geom/src/ops/convex-hull.ts index 0c5f725d65..4031011190 100644 --- a/packages/geom/src/ops/convex-hull.ts +++ b/packages/geom/src/ops/convex-hull.ts @@ -15,7 +15,7 @@ convexHull.addAll(>>{ [Type.POINTS]: ($: PCLike) => new Polygon(grahamScan2($.points), copyAttribs($)), - [Type.TRIANGLE]: ($: IShape) => $.copy() + [Type.TRIANGLE]: ($: IShape) => $.copy(), }); convexHull.isa(Type.CIRCLE, Type.TRIANGLE); diff --git a/packages/geom/src/ops/edges.ts b/packages/geom/src/ops/edges.ts index ad70277385..9d518eaa13 100644 --- a/packages/geom/src/ops/edges.ts +++ b/packages/geom/src/ops/edges.ts @@ -39,7 +39,7 @@ edges.addAll(< [a, e], [b, f], // left [c, g], - [d, h] // right + [d, h], // right ]; }, @@ -47,7 +47,7 @@ edges.addAll(< [Type.POLYLINE]: ($: Polyline) => edgeIterator($.points), - [Type.RECT]: ($: Rect) => edgeIterator(vertices($), true) + [Type.RECT]: ($: Rect) => edgeIterator(vertices($), true), }); edges.isa(Type.LINE, Type.POLYLINE); diff --git a/packages/geom/src/ops/fit-into-bounds.ts b/packages/geom/src/ops/fit-into-bounds.ts index c39d2674ad..e1e0653be4 100644 --- a/packages/geom/src/ops/fit-into-bounds.ts +++ b/packages/geom/src/ops/fit-into-bounds.ts @@ -4,7 +4,7 @@ import { scale23, scale44, translation23, - translation44 + translation44, } from "@thi.ng/matrices"; import { neg, ReadonlyVec, Vec } from "@thi.ng/vectors"; import { AABB } from "../api/aabb"; diff --git a/packages/geom/src/ops/flip.ts b/packages/geom/src/ops/flip.ts index 48f1d32036..f18e22a3a0 100644 --- a/packages/geom/src/ops/flip.ts +++ b/packages/geom/src/ops/flip.ts @@ -38,7 +38,7 @@ flip.addAll(>>{ [Type.RAY]: ($: Ray) => { $.dir = neg(null, $.dir); return $; - } + }, }); flip.isa(Type.CUBIC, Type.POINTS); diff --git a/packages/geom/src/ops/intersects.ts b/packages/geom/src/ops/intersects.ts index 9f028eb8e5..97aa2e9332 100644 --- a/packages/geom/src/ops/intersects.ts +++ b/packages/geom/src/ops/intersects.ts @@ -4,7 +4,7 @@ import { IntersectionType, IShape, PCLike, - Type + Type, } from "@thi.ng/geom-api"; import { intersectCircleCircle, @@ -16,7 +16,7 @@ import { intersectRayPolyline, intersectRayRect, testRectCircle, - testRectRect + testRectRect, } from "@thi.ng/geom-isec"; import { AABB } from "../api/aabb"; import { Circle } from "../api/circle"; @@ -68,14 +68,14 @@ intersects.addAll(< [`${Type.RECT}-${Type.CIRCLE}`]: (rect: Rect, circle: Circle) => ({ type: testRectCircle(rect.pos, rect.size, circle.pos, circle.r) ? IntersectionType.INTERSECT - : IntersectionType.NONE + : IntersectionType.NONE, }), [`${Type.RECT}-${Type.RECT}`]: (a: Rect, b: Rect) => ({ type: testRectRect(a.pos, a.size, b.pos, b.size) ? IntersectionType.INTERSECT - : IntersectionType.NONE - }) + : IntersectionType.NONE, + }), }); intersects.isa(`${Type.RAY}-${Type.SPHERE}`, `${Type.RAY}-${Type.CIRCLE}`); diff --git a/packages/geom/src/ops/map-point.ts b/packages/geom/src/ops/map-point.ts index 5c436fc34a..78839bb878 100644 --- a/packages/geom/src/ops/map-point.ts +++ b/packages/geom/src/ops/map-point.ts @@ -1,22 +1,17 @@ import { defmulti, Implementation2O, MultiFn2O } from "@thi.ng/defmulti"; import { IShape, Type } from "@thi.ng/geom-api"; -import { - div, - ReadonlyVec, - sub, - Vec -} from "@thi.ng/vectors"; +import { div, ReadonlyVec, sub, Vec } from "@thi.ng/vectors"; import { Rect } from "../api/rect"; import { dispatch } from "../internal/dispatch"; import type { IObjectOf } from "@thi.ng/api"; -export const mapPoint: MultiFn2O = defmulti(< - any ->dispatch); +export const mapPoint: MultiFn2O = defmulti( + dispatch +); mapPoint.addAll(>>{ [Type.RECT]: ($: Rect, p: ReadonlyVec, out: Vec = []) => - div(null, sub(out, p, $.pos), $.size) + div(null, sub(out, p, $.pos), $.size), }); mapPoint.isa(Type.AABB, Type.RECT); diff --git a/packages/geom/src/ops/point-at.ts b/packages/geom/src/ops/point-at.ts index 2e4acd3a94..4f21bcd0ea 100644 --- a/packages/geom/src/ops/point-at.ts +++ b/packages/geom/src/ops/point-at.ts @@ -9,7 +9,7 @@ import { mixCubic, mixN2, mixQuadratic, - Vec + Vec, } from "@thi.ng/vectors"; import { Arc } from "../api/arc"; import { Circle } from "../api/circle"; @@ -47,7 +47,7 @@ pointAt.addAll(>>{ [Type.RAY]: ($: Ray, t) => maddN([], $.dir, t, $.pos), - [Type.RECT]: ($: Rect, t) => new Sampler(vertices($), true).pointAt(t) + [Type.RECT]: ($: Rect, t) => new Sampler(vertices($), true).pointAt(t), }); pointAt.isa(Type.QUAD, Type.POLYGON); diff --git a/packages/geom/src/ops/point-inside.ts b/packages/geom/src/ops/point-inside.ts index 932e71fdab..6f6bb09488 100644 --- a/packages/geom/src/ops/point-inside.ts +++ b/packages/geom/src/ops/point-inside.ts @@ -6,7 +6,7 @@ import { pointInPolygon2, pointInRect, pointInSegment, - pointInTriangle2 + pointInTriangle2, } from "@thi.ng/geom-isec"; import { isInArray, ReadonlyVec, Vec } from "@thi.ng/vectors"; import { AABB } from "../api/aabb"; @@ -35,7 +35,7 @@ pointInside.addAll(>>{ [Type.RECT]: ($: Rect, p: ReadonlyVec) => pointInRect(p, $.pos, $.size), [Type.TRIANGLE]: (tri: Triangle, p: ReadonlyVec) => - pointInTriangle2(p, ...(<[Vec, Vec, Vec]>tri.points)) + pointInTriangle2(p, ...(<[Vec, Vec, Vec]>tri.points)), }); pointInside.isa(Type.POINTS3, Type.POINTS); diff --git a/packages/geom/src/ops/resample.ts b/packages/geom/src/ops/resample.ts index dbbadec61d..577df72323 100644 --- a/packages/geom/src/ops/resample.ts +++ b/packages/geom/src/ops/resample.ts @@ -1,10 +1,5 @@ import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { - IShape, - PCLike, - SamplingOpts, - Type -} from "@thi.ng/geom-api"; +import { IShape, PCLike, SamplingOpts, Type } from "@thi.ng/geom-api"; import { resample as _resample } from "@thi.ng/geom-resample"; import { Polygon } from "../api/polygon"; import { Polyline } from "../api/polyline"; @@ -28,7 +23,7 @@ resample.addAll(< new Polygon(_resample($.points, opts, true, true), copyAttribs($)), [Type.POLYLINE]: ($: PCLike, opts) => - new Polyline(_resample($.points, opts, false, true), copyAttribs($)) + new Polyline(_resample($.points, opts, false, true), copyAttribs($)), }); resample.isa(Type.ELLIPSE, Type.CIRCLE); diff --git a/packages/geom/src/ops/simplify.ts b/packages/geom/src/ops/simplify.ts index 8d83705afd..914d442afc 100644 --- a/packages/geom/src/ops/simplify.ts +++ b/packages/geom/src/ops/simplify.ts @@ -1,11 +1,6 @@ import { peek } from "@thi.ng/arrays"; import { defmulti, Implementation2 } from "@thi.ng/defmulti"; -import { - IShape, - PathSegment, - SegmentType, - Type -} from "@thi.ng/geom-api"; +import { IShape, PathSegment, SegmentType, Type } from "@thi.ng/geom-api"; import { simplify as _simplify } from "@thi.ng/geom-resample"; import { Path } from "../api/path"; import { Polygon } from "../api/polygon"; @@ -39,7 +34,7 @@ simplify.addAll(>>{ points.push(lastP); res.push({ geo: new Polyline(_simplify(points, eps)), - type: SegmentType.POLYLINE + type: SegmentType.POLYLINE, }); points = null; } else { @@ -50,7 +45,7 @@ simplify.addAll(>>{ points.push(lastP); res.push({ geo: new Polyline(points), - type: SegmentType.POLYLINE + type: SegmentType.POLYLINE, }); } return new Path(res, copyAttribs($)); @@ -60,5 +55,5 @@ simplify.addAll(>>{ new Polygon(_simplify($.points, eps, true), copyAttribs($)), [Type.POLYLINE]: ($: Polyline, eps = 0.1) => - new Polyline(_simplify($.points, eps), copyAttribs($)) + new Polyline(_simplify($.points, eps), copyAttribs($)), }); diff --git a/packages/geom/src/ops/split-at.ts b/packages/geom/src/ops/split-at.ts index ff8c1a4a94..44c442bff8 100644 --- a/packages/geom/src/ops/split-at.ts +++ b/packages/geom/src/ops/split-at.ts @@ -40,7 +40,7 @@ splitAt.addAll(>>{ $.xl, $.cw, copyAttribs($) - ) + ), ]; }, @@ -64,5 +64,5 @@ splitAt.addAll(>>{ [Type.QUADRATIC]: ({ attribs, points }: Quadratic, t: number) => quadraticSplitAt(points[0], points[1], points[2], t).map( (pts) => new Quadratic(pts, { ...attribs }) - ) + ), }); diff --git a/packages/geom/src/ops/split-near.ts b/packages/geom/src/ops/split-near.ts index 19d57f6a3a..f518241121 100644 --- a/packages/geom/src/ops/split-near.ts +++ b/packages/geom/src/ops/split-near.ts @@ -2,7 +2,10 @@ import { defmulti, Implementation2 } from "@thi.ng/defmulti"; import { IShape, Type } from "@thi.ng/geom-api"; import { closestT } from "@thi.ng/geom-closest-point"; import { Sampler } from "@thi.ng/geom-resample"; -import { quadraticSplitNearPoint, splitCubicNearPoint } from "@thi.ng/geom-splines"; +import { + quadraticSplitNearPoint, + splitCubicNearPoint, +} from "@thi.ng/geom-splines"; import { clamp01 } from "@thi.ng/math"; import { Cubic } from "../api/cubic"; import { Line } from "../api/line"; @@ -61,5 +64,5 @@ splitNearPoint.addAll(< [Type.QUADRATIC]: ({ points, attribs }: Quadratic, p) => quadraticSplitNearPoint(p, points[0], points[1], points[2]).map( (pts) => new Quadratic(pts, { ...attribs }) - ) + ), }); diff --git a/packages/geom/src/ops/subdiv-curve.ts b/packages/geom/src/ops/subdiv-curve.ts index 2b062c9a65..3f885748a8 100644 --- a/packages/geom/src/ops/subdiv-curve.ts +++ b/packages/geom/src/ops/subdiv-curve.ts @@ -21,5 +21,5 @@ subdivCurve.addAll(< new Polygon(subdivide($.points, kernel, iter), copyAttribs($)), [Type.POLYLINE]: ($: Polyline, kernel, iter = 1) => - new Polyline(subdivide($.points, kernel, iter), copyAttribs($)) + new Polyline(subdivide($.points, kernel, iter), copyAttribs($)), }); diff --git a/packages/geom/src/ops/tangent-at.ts b/packages/geom/src/ops/tangent-at.ts index 3dbe3644c7..7e3a9260f1 100644 --- a/packages/geom/src/ops/tangent-at.ts +++ b/packages/geom/src/ops/tangent-at.ts @@ -20,7 +20,7 @@ tangentAt.addAll(>>{ [Type.POLYLINE]: ($: PCLike, t) => new Sampler($.points).tangentAt(t), - [Type.RECT]: ($: Rect, t) => new Sampler(vertices($), true).tangentAt(t) + [Type.RECT]: ($: Rect, t) => new Sampler(vertices($), true).tangentAt(t), }); tangentAt.isa(Type.QUAD, Type.POLYGON); diff --git a/packages/geom/src/ops/transform.ts b/packages/geom/src/ops/transform.ts index 69e7a867dd..6abeaa6595 100644 --- a/packages/geom/src/ops/transform.ts +++ b/packages/geom/src/ops/transform.ts @@ -4,7 +4,7 @@ import { IShape, PathSegment, SegmentType, - Type + Type, } from "@thi.ng/geom-api"; import { mulV, ReadonlyMat } from "@thi.ng/matrices"; import { map } from "@thi.ng/transducers"; @@ -21,7 +21,10 @@ import { Rect } from "../api/rect"; import { Triangle } from "../api/triangle"; import { copyAttribs } from "../internal/copy-attribs"; import { dispatch } from "../internal/dispatch"; -import { transformedShape as tx, transformedShape3 as tx3 } from "../internal/transform-points"; +import { + transformedShape as tx, + transformedShape3 as tx3, +} from "../internal/transform-points"; import { asPath } from "./as-path"; import { asPolygon } from "./as-polygon"; import type { IObjectOf } from "@thi.ng/api"; @@ -60,14 +63,14 @@ transform.addAll(>>{ s.type === SegmentType.MOVE ? { type: s.type, - point: mulV([], mat, s.point!) + point: mulV([], mat, s.point!), } : { type: s.type, - geo: transform(s.geo!, mat) + geo: transform(s.geo!, mat), }, $.segments - ) + ), ], copyAttribs($) ), @@ -86,7 +89,7 @@ transform.addAll(>>{ [Type.RECT]: ($: Rect, mat) => transform(asPolygon($), mat), - [Type.TRIANGLE]: tx(Triangle) + [Type.TRIANGLE]: tx(Triangle), }); transform.isa(Type.CIRCLE, Type.ARC); diff --git a/packages/geom/src/ops/translate.ts b/packages/geom/src/ops/translate.ts index 8606568d7f..7baea5e840 100644 --- a/packages/geom/src/ops/translate.ts +++ b/packages/geom/src/ops/translate.ts @@ -1,12 +1,6 @@ import { defmulti, Implementation2 } from "@thi.ng/defmulti"; import { IHiccupShape, IShape, Type } from "@thi.ng/geom-api"; -import { - add2, - add3, - ReadonlyVec, - set2, - set3 -} from "@thi.ng/vectors"; +import { add2, add3, ReadonlyVec, set2, set3 } from "@thi.ng/vectors"; import { AABB } from "../api/aabb"; import { Arc } from "../api/arc"; import { Circle } from "../api/circle"; @@ -59,11 +53,11 @@ translate.addAll(>>{ s.geo ? { type: s.type, - geo: translate(s.geo, delta) + geo: translate(s.geo, delta), } : { type: s.type, - point: add2([], s.point!, delta) + point: add2([], s.point!, delta), } ), copyAttribs($) @@ -88,5 +82,5 @@ translate.addAll(>>{ [Type.SPHERE]: ($: Sphere, delta) => new Sphere(add3([], $.pos, delta), $.r, copyAttribs($)), - [Type.TRIANGLE]: tx(Triangle) + [Type.TRIANGLE]: tx(Triangle), }); diff --git a/packages/geom/src/ops/union.ts b/packages/geom/src/ops/union.ts index 004ec6813f..cf20255fc5 100644 --- a/packages/geom/src/ops/union.ts +++ b/packages/geom/src/ops/union.ts @@ -10,10 +10,10 @@ export const union = defmulti(dispatch); union.addAll(>>{ [Type.AABB]: (a: AABB, b: AABB) => [ - new AABB(...unionBounds(a.pos, a.size, b.pos, b.size)) + new AABB(...unionBounds(a.pos, a.size, b.pos, b.size)), ], [Type.RECT]: (a: Rect, b: Rect) => [ - new Rect(...unionBounds(a.pos, a.size, b.pos, b.size)) - ] + new Rect(...unionBounds(a.pos, a.size, b.pos, b.size)), + ], }); diff --git a/packages/geom/src/ops/unmap-point.ts b/packages/geom/src/ops/unmap-point.ts index 0185ac3ea1..9bd812df71 100644 --- a/packages/geom/src/ops/unmap-point.ts +++ b/packages/geom/src/ops/unmap-point.ts @@ -1,11 +1,6 @@ import { defmulti, Implementation2O, MultiFn2O } from "@thi.ng/defmulti"; import { IShape, Type } from "@thi.ng/geom-api"; -import { - madd, - mixBilinear, - ReadonlyVec, - Vec -} from "@thi.ng/vectors"; +import { madd, mixBilinear, ReadonlyVec, Vec } from "@thi.ng/vectors"; import { Quad } from "../api/quad"; import { Rect } from "../api/rect"; import { dispatch } from "../internal/dispatch"; @@ -27,9 +22,9 @@ import type { IObjectOf } from "@thi.ng/api"; * @param uv - point to map in UV space * @param out - result */ -export const unmapPoint: MultiFn2O = defmulti(< - any ->dispatch); +export const unmapPoint: MultiFn2O = defmulti( + dispatch +); unmapPoint.addAll(>>{ [Type.QUAD]: ({ points }: Quad, uv, out = []) => @@ -44,7 +39,7 @@ unmapPoint.addAll(>>{ ), [Type.RECT]: ($: Rect, uvw: ReadonlyVec, out = []) => - madd(out, $.size, uvw, $.pos) + madd(out, $.size, uvw, $.pos), }); unmapPoint.isa(Type.AABB, Type.RECT); diff --git a/packages/geom/src/ops/vertices.ts b/packages/geom/src/ops/vertices.ts index 2eb828105f..5dc6e57a99 100644 --- a/packages/geom/src/ops/vertices.ts +++ b/packages/geom/src/ops/vertices.ts @@ -1,23 +1,11 @@ import { isNumber } from "@thi.ng/checks"; import { defmulti, Implementation1O, MultiFn1O } from "@thi.ng/defmulti"; -import { - DEFAULT_SAMPLES, - IShape, - SamplingOpts, - Type -} from "@thi.ng/geom-api"; +import { DEFAULT_SAMPLES, IShape, SamplingOpts, Type } from "@thi.ng/geom-api"; import { sample as _arcVertices } from "@thi.ng/geom-arc"; import { resample } from "@thi.ng/geom-resample"; import { sampleCubic, sampleQuadratic } from "@thi.ng/geom-splines"; import { cossin, TAU } from "@thi.ng/math"; -import { - add2, - add3, - cartesian2, - madd2, - set2, - Vec -} from "@thi.ng/vectors"; +import { add2, add3, cartesian2, madd2, set2, Vec } from "@thi.ng/vectors"; import { AABB } from "../api/aabb"; import { Arc } from "../api/arc"; import { Circle } from "../api/circle"; @@ -61,7 +49,7 @@ vertices.addAll(< [px, qy, pz], // e [px, qy, qz], // f [qx, qy, qz], // g - [qx, qy, pz] // h + [qx, qy, pz], // h ]; }, @@ -128,7 +116,7 @@ vertices.addAll(< const q = add2([], p, $.size); const verts = [set2([], p), [q[0], p[1]], q, [p[0], q[1]]]; return opts != null ? vertices(new Polygon(verts), opts) : verts; - } + }, }); vertices.isa(Type.LINE, Type.POLYLINE); @@ -148,5 +136,5 @@ const circleOpts = ( : opts.dist ? Math.floor(TAU / (opts.dist / r)) : opts.num || DEFAULT_SAMPLES, - opts.last === true + opts.last === true, ]; diff --git a/packages/geom/src/ops/volume.ts b/packages/geom/src/ops/volume.ts index d24f574ccf..c59acc06b3 100644 --- a/packages/geom/src/ops/volume.ts +++ b/packages/geom/src/ops/volume.ts @@ -20,5 +20,5 @@ volume.add(DEFAULT, () => 0); volume.addAll(>>{ [Type.AABB]: ({ size }: AABB) => size[0] * size[1] * size[2], - [Type.SPHERE]: ($: Sphere) => (4 / 3) * PI * $.r ** 3 + [Type.SPHERE]: ($: Sphere) => (4 / 3) * PI * $.r ** 3, }); diff --git a/packages/gp/src/ast.ts b/packages/gp/src/ast.ts index 30eb3e05cf..b79cbbcc54 100644 --- a/packages/gp/src/ast.ts +++ b/packages/gp/src/ast.ts @@ -1,18 +1,8 @@ import { assert } from "@thi.ng/api"; import { SYSTEM } from "@thi.ng/random"; -import { - iterate, - iterator, - repeatedly, - takeWhile -} from "@thi.ng/transducers"; +import { iterate, iterator, repeatedly, takeWhile } from "@thi.ng/transducers"; import { Location, zipper } from "@thi.ng/zipper"; -import { - ASTNode, - ASTOpts, - GeneType, - OpGene -} from "./api"; +import { ASTNode, ASTOpts, GeneType, OpGene } from "./api"; import { opNode, probabilities, terminalNode } from "./utils"; export class AST { @@ -53,7 +43,7 @@ export class AST { ).root, this.selectRandomNode(parent2).replace( this.selectRandomNode(parent1).node - ).root + ).root, ]; } @@ -98,7 +88,7 @@ export class AST { ...iterator( takeWhile((x) => !!x), iterate((x) => x.next, this.asZipper(tree)) - ) + ), ]; } @@ -138,7 +128,7 @@ export class AST { return terminalNode(this.opts.terminal(rnd)); const op = this.opts.ops[geneID - 1]; const children = [ - ...repeatedly(() => this.randomASTNode(d + 1, maxDepth), op.arity) + ...repeatedly(() => this.randomASTNode(d + 1, maxDepth), op.arity), ]; return opNode(op.fn(rnd, children), children); } @@ -149,7 +139,7 @@ export class AST { branch: (x) => x.type === GeneType.OP, children: (x) => (>>x).args, factory: (n, args) => - opNode((>>n).op, args) + opNode((>>n).op, args), }, tree ); diff --git a/packages/gp/src/mep.ts b/packages/gp/src/mep.ts index e4bfc7a3b1..e33246b8c1 100644 --- a/packages/gp/src/mep.ts +++ b/packages/gp/src/mep.ts @@ -1,13 +1,7 @@ import { inRange } from "@thi.ng/math"; import { SYSTEM } from "@thi.ng/random"; import { repeatedly } from "@thi.ng/transducers"; -import { - ASTNode, - GeneType, - MEPChromosome, - MEPGene, - MEPOpts -} from "./api"; +import { ASTNode, GeneType, MEPChromosome, MEPGene, MEPOpts } from "./api"; import { opNode, probabilities, terminalNode } from "./utils"; export class MEP { @@ -88,7 +82,7 @@ export class MEP { Math.min(chromo1.length, chromo2.length); return [ chromo1.slice(0, cut).concat(chromo2.slice(cut)), - chromo2.slice(0, cut).concat(chromo1.slice(cut)) + chromo2.slice(0, cut).concat(chromo1.slice(cut)), ]; } diff --git a/packages/gp/src/utils.ts b/packages/gp/src/utils.ts index 31173cb1f2..7357937984 100644 --- a/packages/gp/src/utils.ts +++ b/packages/gp/src/utils.ts @@ -1,21 +1,16 @@ import { assert } from "@thi.ng/api"; import { add, choices, range } from "@thi.ng/transducers"; -import { - GeneType, - GPOpts, - OpGene, - TerminalGene -} from "./api"; +import { GeneType, GPOpts, OpGene, TerminalGene } from "./api"; export const terminalNode = (value: T): TerminalGene => ({ type: GeneType.TERMINAL, - value + value, }); export const opNode = (op: OP, args: A[]): OpGene => ({ type: GeneType.OP, op, - args + args, }); export const probabilities = (opts: GPOpts) => { @@ -28,6 +23,6 @@ export const probabilities = (opts: GPOpts) => { [1 - psum, ...probabilities], opts.rnd ), - probTerminal: 1 - psum + probTerminal: 1 - psum, }; }; diff --git a/packages/gp/test/ast.ts b/packages/gp/test/ast.ts index 25a8911ac3..4988d2d42e 100644 --- a/packages/gp/test/ast.ts +++ b/packages/gp/test/ast.ts @@ -12,12 +12,12 @@ describe("gp (ast)", () => { { fn: (rnd) => ["+", "-", "*", "/"][rnd.int() % 4], arity: 2, - prob: 0.9 - } + prob: 0.9, + }, ], maxDepth: 2, probMutate: 0.1, - rnd: new XsAdd(0x12345678) + rnd: new XsAdd(0x12345678), }); }); @@ -32,13 +32,13 @@ describe("gp (ast)", () => { args: [ { type: 0, - value: 5 + value: 5, }, { type: 0, - value: 1 - } - ] + value: 1, + }, + ], }, { type: 1, @@ -46,15 +46,15 @@ describe("gp (ast)", () => { args: [ { type: 0, - value: 8 + value: 8, }, { type: 0, - value: 3 - } - ] - } - ] + value: 3, + }, + ], + }, + ], }); }); }); diff --git a/packages/gp/test/mep.ts b/packages/gp/test/mep.ts index 28221b1eb2..dba0145afd 100644 --- a/packages/gp/test/mep.ts +++ b/packages/gp/test/mep.ts @@ -12,12 +12,12 @@ describe("gp (mep)", () => { { fn: (rnd) => ["+", "-", "*", "/"][rnd.int() % 4], arity: 2, - prob: 0.9 - } + prob: 0.9, + }, ], chromoSize: 10, probMutate: 0.8, - rnd: new XsAdd(0x12345678) + rnd: new XsAdd(0x12345678), }); }); @@ -32,7 +32,7 @@ describe("gp (mep)", () => { { type: 1, op: "*", args: [4, 0] }, { type: 1, op: "-", args: [2, 3] }, { type: 1, op: "/", args: [1, 4] }, - { type: 1, op: "-", args: [5, 0] } + { type: 1, op: "-", args: [5, 0] }, ]); }); @@ -45,8 +45,8 @@ describe("gp (mep)", () => { op: "*", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] + { type: 0, value: 5 }, + ], }, { type: 1, @@ -58,18 +58,18 @@ describe("gp (mep)", () => { op: "*", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] - } - ] + { type: 0, value: 5 }, + ], + }, + ], }, { type: 1, op: "-", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] + { type: 0, value: 5 }, + ], }, { type: 1, @@ -85,20 +85,20 @@ describe("gp (mep)", () => { op: "*", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] - } - ] + { type: 0, value: 5 }, + ], + }, + ], }, { type: 1, op: "-", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] - } - ] + { type: 0, value: 5 }, + ], + }, + ], }, { type: 1, @@ -109,11 +109,11 @@ describe("gp (mep)", () => { op: "-", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] + { type: 0, value: 5 }, + ], }, - { type: 0, value: 5 } - ] + { type: 0, value: 5 }, + ], }, { type: 1, @@ -124,8 +124,8 @@ describe("gp (mep)", () => { op: "*", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] + { type: 0, value: 5 }, + ], }, { type: 1, @@ -137,12 +137,12 @@ describe("gp (mep)", () => { op: "*", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] - } - ] - } - ] + { type: 0, value: 5 }, + ], + }, + ], + }, + ], }, { type: 1, @@ -154,10 +154,10 @@ describe("gp (mep)", () => { op: "-", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] - } - ] + { type: 0, value: 5 }, + ], + }, + ], }, { type: 1, @@ -177,24 +177,24 @@ describe("gp (mep)", () => { op: "*", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] - } - ] + { type: 0, value: 5 }, + ], + }, + ], }, { type: 1, op: "-", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] - } - ] + { type: 0, value: 5 }, + ], + }, + ], }, - { type: 0, value: 5 } - ] - } + { type: 0, value: 5 }, + ], + }, ]); }); @@ -210,10 +210,10 @@ describe("gp (mep)", () => { op: "*", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] - } - ] + { type: 0, value: 5 }, + ], + }, + ], }, { type: 1, @@ -229,20 +229,20 @@ describe("gp (mep)", () => { op: "*", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] - } - ] + { type: 0, value: 5 }, + ], + }, + ], }, { type: 1, op: "-", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] - } - ] + { type: 0, value: 5 }, + ], + }, + ], }, { type: 1, @@ -253,11 +253,11 @@ describe("gp (mep)", () => { op: "-", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] + { type: 0, value: 5 }, + ], }, - { type: 0, value: 5 } - ] + { type: 0, value: 5 }, + ], }, { type: 1, @@ -268,8 +268,8 @@ describe("gp (mep)", () => { op: "*", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] + { type: 0, value: 5 }, + ], }, { type: 1, @@ -281,12 +281,12 @@ describe("gp (mep)", () => { op: "*", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] - } - ] - } - ] + { type: 0, value: 5 }, + ], + }, + ], + }, + ], }, { type: 1, @@ -298,10 +298,10 @@ describe("gp (mep)", () => { op: "-", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] - } - ] + { type: 0, value: 5 }, + ], + }, + ], }, { type: 1, @@ -321,24 +321,24 @@ describe("gp (mep)", () => { op: "*", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] - } - ] + { type: 0, value: 5 }, + ], + }, + ], }, { type: 1, op: "-", args: [ { type: 0, value: 5 }, - { type: 0, value: 5 } - ] - } - ] + { type: 0, value: 5 }, + ], + }, + ], }, - { type: 0, value: 5 } - ] - } + { type: 0, value: 5 }, + ], + }, ]); }); @@ -353,7 +353,7 @@ describe("gp (mep)", () => { { type: 1, op: "/", args: [3, 1] }, { type: 1, op: "/", args: [4, 3] }, { type: 0, value: 5 }, - { type: 1, op: "/", args: [6, 4] } + { type: 1, op: "/", args: [6, 4] }, ]); }); @@ -370,7 +370,7 @@ describe("gp (mep)", () => { { type: 1, op: "-", args: [3, 2] }, { type: 1, op: "-", args: [2, 1] }, { type: 0, value: 1 }, - { type: 0, value: 6 } + { type: 0, value: 6 }, ]); assert.deepEqual(ast.crossoverSingle(a, b, 5), [ [ @@ -384,7 +384,7 @@ describe("gp (mep)", () => { { type: 1, op: "-", args: [3, 2] }, { type: 1, op: "-", args: [2, 1] }, { type: 0, value: 1 }, - { type: 0, value: 6 } + { type: 0, value: 6 }, ], [ { type: 0, value: 5 }, @@ -397,8 +397,8 @@ describe("gp (mep)", () => { { type: 1, op: "*", args: [4, 0] }, { type: 1, op: "-", args: [2, 3] }, { type: 1, op: "/", args: [1, 4] }, - { type: 1, op: "-", args: [5, 0] } - ] + { type: 1, op: "-", args: [5, 0] }, + ], ]); }); @@ -415,7 +415,7 @@ describe("gp (mep)", () => { { type: 1, op: "-", args: [3, 2] }, { type: 1, op: "-", args: [2, 1] }, { type: 0, value: 1 }, - { type: 1, op: "-", args: [5, 0] } + { type: 1, op: "-", args: [5, 0] }, ]); }); }); diff --git a/packages/hdom-components/src/button-group.ts b/packages/hdom-components/src/button-group.ts index 867c07fef5..db49883ca5 100644 --- a/packages/hdom-components/src/button-group.ts +++ b/packages/hdom-components/src/button-group.ts @@ -82,7 +82,7 @@ export const buttonGroup = (opts: ButtonGroupOpts): ButtonGroup => ( ) => [ "div", mergeAttribs(opts.attribs, args.attribs), - ...groupBody(opts, args.disabled, buttons) + ...groupBody(opts, args.disabled, buttons), ]; const groupBody = ( @@ -98,7 +98,7 @@ const groupBody = ( case 2: return [ bt(opts.first, disabled, buttons[0]), - bt(opts.last || opts.first, disabled, buttons[1]) + bt(opts.last || opts.first, disabled, buttons[1]), ]; default: { const res = [bt(opts.first, disabled, buttons[0])]; diff --git a/packages/hdom-components/src/button.ts b/packages/hdom-components/src/button.ts index 77b4d406e3..e5dba03a3f 100644 --- a/packages/hdom-components/src/button.ts +++ b/packages/hdom-components/src/button.ts @@ -60,7 +60,7 @@ export const button = (opts?: Partial): Button => { tagDisabled: "span", preventDefault: true, attribs: {}, - ...opts + ...opts, }; !opts.attribs.role && (opts.attribs.role = "button"); return (_: any, args: ButtonArgs, ...body: any[]) => @@ -69,9 +69,9 @@ export const button = (opts?: Partial): Button => { opts!.tagDisabled, { ...mergeAttribs(opts!.attribsDisabled, args.attribs), - disabled: true + disabled: true, }, - ...body + ...body, ] : [ opts!.tag, @@ -79,8 +79,8 @@ export const button = (opts?: Partial): Button => { ...mergeAttribs(opts!.attribs, args.attribs), onclick: opts!.preventDefault ? (e: Event) => (e.preventDefault(), args.onclick(e)) - : args.onclick + : args.onclick, }, - ...body + ...body, ]; }; diff --git a/packages/hdom-components/src/dropdown.ts b/packages/hdom-components/src/dropdown.ts index 5bd62b100c..024f2f4eb5 100644 --- a/packages/hdom-components/src/dropdown.ts +++ b/packages/hdom-components/src/dropdown.ts @@ -15,7 +15,7 @@ export const option = ( ) => [ "option", { value, disabled: !!disabled, selected: value === sel }, - label + label, ]; export const optgroup = ( @@ -25,7 +25,7 @@ export const optgroup = ( ) => [ "optgroup", { ...attribs, label: attribs.label || "--" }, - ...options.map((o) => option(o, sel)) + ...options.map((o) => option(o, sel)), ]; export const dropdown = ( diff --git a/packages/hdom-components/src/fps-counter.ts b/packages/hdom-components/src/fps-counter.ts index 1fbeafcd1a..bb7f2179fa 100644 --- a/packages/hdom-components/src/fps-counter.ts +++ b/packages/hdom-components/src/fps-counter.ts @@ -37,7 +37,7 @@ export const fpsCounter = (_opts?: Partial) => { smooth: 5, labelPeriod: 250, sparkline: {}, - ..._opts + ..._opts, }; return { init() { @@ -62,14 +62,14 @@ export const fpsCounter = (_opts?: Partial) => { [ sparkline, { min: 0, max: 65, ...opts.sparkline }, - this.buffer + this.buffer, ], [ "span", { __skip: !updateLabel }, - smoothFps ? smoothFps.toFixed(2) + " fps" : "" - ] + smoothFps ? smoothFps.toFixed(2) + " fps" : "", + ], ]; - } + }, }; }; diff --git a/packages/hdom-components/src/link.ts b/packages/hdom-components/src/link.ts index 0c88b98fa9..1f1158b34e 100644 --- a/packages/hdom-components/src/link.ts +++ b/packages/hdom-components/src/link.ts @@ -3,7 +3,7 @@ import { isString } from "@thi.ng/checks"; export const link = (attribs: any, body: any) => [ "a", isString(attribs) ? { href: attribs } : attribs, - body + body, ]; export const appLink = ( @@ -19,7 +19,7 @@ export const appLink = ( e.preventDefault(); onclick(e); }, - ...attribs + ...attribs, }, - body + body, ]; diff --git a/packages/hdom-components/src/notification.ts b/packages/hdom-components/src/notification.ts index 0eae75ee2b..c5a92b5073 100644 --- a/packages/hdom-components/src/notification.ts +++ b/packages/hdom-components/src/notification.ts @@ -63,6 +63,6 @@ export const notification = (opts: Partial = {}) => { body, opts.close && args.onclose ? [appLink, opts.attribsClose, args.onclose, opts.close] - : undefined + : undefined, ]; }; diff --git a/packages/hdom-components/src/sparkline.ts b/packages/hdom-components/src/sparkline.ts index 8a6acaeb3a..921bab6ca7 100644 --- a/packages/hdom-components/src/sparkline.ts +++ b/packages/hdom-components/src/sparkline.ts @@ -53,7 +53,7 @@ export const sparkline = ( height: 16, col: "red", r: 1.5, - ..._opts + ..._opts, }; const n = vals.length; const s = opts.width / n; @@ -65,7 +65,7 @@ export const sparkline = ( width: opts.width + 2 * r, height: opts.height, stroke: opts.col, - fill: "none" + fill: "none", }, [ "polyline", @@ -75,13 +75,13 @@ export const sparkline = ( mapIndexed( (i, y: number) => [ (i * s) | 0, - fitClamped(y, opts.min, opts.max, h, r) | 0 + fitClamped(y, opts.min, opts.max, h, r) | 0, ], 0, vals ) - ) - } + ), + }, ], [ "circle", @@ -89,8 +89,8 @@ export const sparkline = ( cx: ((n - 1) * s) | 0, cy: fitClamped(vals[n - 1], opts.min, opts.max, h, r) | 0, r, - fill: opts.col - } - ] + fill: opts.col, + }, + ], ]; }; diff --git a/packages/hdom-components/src/title.ts b/packages/hdom-components/src/title.ts index d05f5a6631..9974e5a99b 100644 --- a/packages/hdom-components/src/title.ts +++ b/packages/hdom-components/src/title.ts @@ -39,12 +39,12 @@ export const title = (_opts?: Partial) => { attribs: {}, subElement: "small", subAttribs: {}, - ..._opts + ..._opts, }; return (_: any, title: any, subtitle: any) => [ opts.element, opts.attribs, title, - subtitle ? [opts.subElement, opts.subAttribs, subtitle] : undefined + subtitle ? [opts.subElement, opts.subAttribs, subtitle] : undefined, ]; }; diff --git a/packages/hdom-components/src/toggle.ts b/packages/hdom-components/src/toggle.ts index a317c810a3..273181f650 100644 --- a/packages/hdom-components/src/toggle.ts +++ b/packages/hdom-components/src/toggle.ts @@ -26,14 +26,14 @@ const DEFAULT_OPTS: ToggleOpts = { bgOn: { fill: "#000" }, bgOff: { fill: "#999" }, fgOn: { fill: "#fff" }, - fgOff: { fill: "#fff" } + fgOff: { fill: "#fff" }, }; export const slideToggleDot = (opts: Partial = {}) => { const _opts: ToggleDotOpts = { r: 5, ...DEFAULT_OPTS, - ...opts + ...opts, }; const { r, pad, margin, vertical } = _opts; const m2 = margin * 2; @@ -53,25 +53,25 @@ export const slideToggleDot = (opts: Partial = {}) => { rx: br, ry: br, ...(vertical ? { width: height, height: width } : { width, height }), - ..._opts.bgOn + ..._opts.bgOn, }; const bgOff = { ...bgOn, ..._opts.bgOff }; const shapeOn: any = { ...(vertical ? { cx, cy: cx } : { cx: width + margin - br, cy: cx }), ..._opts.fgOn, style, - r + r, }; const shapeOff: any = { ...shapeOn, ...(vertical ? { cy: width + margin - br } : { cx }), - ..._opts.fgOff + ..._opts.fgOff, }; return (_: any, attribs: any, state: boolean) => [ "svg", { ...svgSize, ...attribs }, ["rect", state ? bgOn : bgOff], - ["circle", state ? shapeOn : shapeOff] + ["circle", state ? shapeOn : shapeOff], ]; }; @@ -80,7 +80,7 @@ export const slideToggleRect = (opts: Partial = {}) => { w: 10, h: 10, ...DEFAULT_OPTS, - ...opts + ...opts, }; const { w, h, pad, margin, vertical } = _opts; const m2 = margin * 2; @@ -94,7 +94,7 @@ export const slideToggleRect = (opts: Partial = {}) => { width, height, x: margin, - y: margin + y: margin, }; const bgOff = { ...bgOn, ..._opts.bgOff }; const shapeOn: any = { @@ -104,17 +104,17 @@ export const slideToggleRect = (opts: Partial = {}) => { ..._opts.fgOn, style, width: w, - height: h + height: h, }; const shapeOff: any = { ...shapeOn, ...(vertical ? { y: height + margin - pad - h } : { x: pm }), - ..._opts.fgOff + ..._opts.fgOff, }; return (_: any, attribs: any, state: boolean) => [ "svg", { ...svgSize, ...attribs }, ["rect", state ? bgOn : bgOff], - ["rect", state ? shapeOn : shapeOff] + ["rect", state ? shapeOn : shapeOff], ]; }; diff --git a/packages/hdom-mock/src/index.ts b/packages/hdom-mock/src/index.ts index 45da754dee..b56f0e0677 100644 --- a/packages/hdom-mock/src/index.ts +++ b/packages/hdom-mock/src/index.ts @@ -5,7 +5,7 @@ import { HDOMImplementation, HDOMOpts, hydrateTree, - normalizeTree + normalizeTree, } from "@thi.ng/hdom"; import type { IObjectOf } from "@thi.ng/api"; diff --git a/packages/hdom-mock/test/index.ts b/packages/hdom-mock/test/index.ts index d0b402a4f7..e3b6c65a1d 100644 --- a/packages/hdom-mock/test/index.ts +++ b/packages/hdom-mock/test/index.ts @@ -26,19 +26,19 @@ describe("hdom-mock", () => { const a = impl.normalizeTree(opts, (ctx: any) => [ "div#foo.bar", - ["button", { ...ctx.button }, "hi"] + ["button", { ...ctx.button }, "hi"], ]); const b = impl.normalizeTree(opts, [ "div#foo2.bar.baz", [ (ctx: any, label: any) => ["button", { ...ctx.button }, label], - "hello" + "hello", ], - ["div", "extra"] + ["div", "extra"], ]); const c = impl.normalizeTree(opts, [ "div#foo3.baz.bux", - ["div", "extra"] + ["div", "extra"], ]); step([], a, [ @@ -47,8 +47,8 @@ describe("hdom-mock", () => { [ "div", { id: "foo", class: "bar", key: "0" }, - ["button", { class: "bt", key: "0-0" }, "hi"] - ] + ["button", { class: "bt", key: "0-0" }, "hi"], + ], ]); step(a, b, [ @@ -58,8 +58,8 @@ describe("hdom-mock", () => { "div", { id: "foo2", class: "bar baz", key: "0" }, ["button", { class: "bt", key: "0-0" }, "hello"], - ["div", { key: "0-1" }, ["span", { key: "0-1-0" }, "extra"]] - ] + ["div", { key: "0-1" }, ["span", { key: "0-1-0" }, "extra"]], + ], ]); step(b, c, [ @@ -68,8 +68,8 @@ describe("hdom-mock", () => { [ "div", { id: "foo3", class: "baz bux", key: "0" }, - ["div", { key: "0-0" }, ["span", { key: "0-0-0" }, "extra"]] - ] + ["div", { key: "0-0" }, ["span", { key: "0-0-0" }, "extra"]], + ], ]); }); }); diff --git a/packages/hdom/src/default.ts b/packages/hdom/src/default.ts index 806ad4dc63..6973a037c1 100644 --- a/packages/hdom/src/default.ts +++ b/packages/hdom/src/default.ts @@ -9,7 +9,7 @@ import { removeChild, replaceChild, setAttrib, - setContent + setContent, } from "./dom"; import { normalizeTree } from "./normalize"; import type { HDOMImplementation } from "./api"; @@ -52,5 +52,5 @@ export const DEFAULT_IMPL: HDOMImplementation = { removeAttribs, - setAttrib + setAttrib, }; diff --git a/packages/heaps/src/heap.ts b/packages/heaps/src/heap.ts index 5939c7a24e..5466891690 100644 --- a/packages/heaps/src/heap.ts +++ b/packages/heaps/src/heap.ts @@ -5,7 +5,7 @@ import type { ICopy, IEmpty, ILength, - IStack + IStack, } from "@thi.ng/api"; import type { HeapOpts } from "./api"; diff --git a/packages/heaps/src/pairing.ts b/packages/heaps/src/pairing.ts index a2a6b89c20..90d9b33028 100644 --- a/packages/heaps/src/pairing.ts +++ b/packages/heaps/src/pairing.ts @@ -6,7 +6,7 @@ import type { ICopy, IEmpty, ILength, - IStack + IStack, } from "@thi.ng/api"; import type { HeapOpts } from "./api"; @@ -63,7 +63,7 @@ export class PairingHeap this.root = this.merge(this.root, { v, p: undefined, - c: [] + c: [], }); this._size++; return this; diff --git a/packages/heaps/test/dheap.ts b/packages/heaps/test/dheap.ts index 8dabf81280..5aa1827949 100644 --- a/packages/heaps/test/dheap.ts +++ b/packages/heaps/test/dheap.ts @@ -3,7 +3,6 @@ import { DHeap } from "../src/index"; import { compare } from "@thi.ng/compare"; describe("DHeap", () => { - const rcmp: (a: number, b: number) => number = (a, b) => b - a; const src = [5, 2, 10, 20, 15, 18, 23, 22, -1]; @@ -90,9 +89,8 @@ describe("DHeap", () => { function drain(h: DHeap) { const res = []; let x; - while (x = h.pop()) { + while ((x = h.pop())) { res.push(x); } return res; } - diff --git a/packages/heaps/test/heap.ts b/packages/heaps/test/heap.ts index 8a90c2ee7c..f2cd3a2f37 100644 --- a/packages/heaps/test/heap.ts +++ b/packages/heaps/test/heap.ts @@ -3,7 +3,6 @@ import { Heap } from "../src/index"; import { compare } from "@thi.ng/compare"; describe("Heap", () => { - const rcmp: (a: number, b: number) => number = (a, b) => b - a; const src = [5, 2, 10, 20, 15, 18, 23, 22, -1]; @@ -90,9 +89,8 @@ describe("Heap", () => { function drain(h: Heap) { const res = []; let x; - while (x = h.pop()) { + while ((x = h.pop())) { res.push(x); } return res; } - diff --git a/packages/hiccup-carbon-icons/src/add-outline.ts b/packages/hiccup-carbon-icons/src/add-outline.ts index 26620049ea..ebeca5fc48 100644 --- a/packages/hiccup-carbon-icons/src/add-outline.ts +++ b/packages/hiccup-carbon-icons/src/add-outline.ts @@ -1,4 +1,12 @@ -export const ADD_OUTLINE = - ["svg", { viewBox: "0 0 16 16" }, - ["path", { d: "M8 14.5c3.6 0 6.5-2.9 6.5-6.5S11.6 1.5 8 1.5 1.5 4.4 1.5 8s2.9 6.5 6.5 6.5zM8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z" }], - ["path", { d: "M7 7V4h2v3h3v2H9v3H7V9H4V7h3z" }]]; +export const ADD_OUTLINE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + d: + "M8 14.5c3.6 0 6.5-2.9 6.5-6.5S11.6 1.5 8 1.5 1.5 4.4 1.5 8s2.9 6.5 6.5 6.5zM8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z", + }, + ], + ["path", { d: "M7 7V4h2v3h3v2H9v3H7V9H4V7h3z" }], +]; diff --git a/packages/hiccup-carbon-icons/src/add-solid.ts b/packages/hiccup-carbon-icons/src/add-solid.ts index 34329c4473..52c5c560c6 100644 --- a/packages/hiccup-carbon-icons/src/add-solid.ts +++ b/packages/hiccup-carbon-icons/src/add-solid.ts @@ -1,7 +1,12 @@ -export const ADD_SOLID = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "evenodd", - d: "M7 7H4v2h3v3h2V9h3V7H9V4H7v3zm1 9A8 8 0 1 1 8 0a8 8 0 0 1 0 16z", - }]]; +export const ADD_SOLID = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M7 7H4v2h3v3h2V9h3V7H9V4H7v3zm1 9A8 8 0 1 1 8 0a8 8 0 0 1 0 16z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/add.ts b/packages/hiccup-carbon-icons/src/add.ts index 0116040994..92c4fc55e4 100644 --- a/packages/hiccup-carbon-icons/src/add.ts +++ b/packages/hiccup-carbon-icons/src/add.ts @@ -1,7 +1,11 @@ -export const ADD = - ["svg", { viewBox: "0 0 10 10" }, - ["path", - { - "fill-rule": "evenodd", - d: "M6 4h4v2H6v4H4V6H0V4h4V0h2v4z", - }]]; +export const ADD = [ + "svg", + { viewBox: "0 0 10 10" }, + [ + "path", + { + "fill-rule": "evenodd", + d: "M6 4h4v2H6v4H4V6H0V4h4V0h2v4z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/api.ts b/packages/hiccup-carbon-icons/src/api.ts index 021eb6f96d..ce7aad129a 100644 --- a/packages/hiccup-carbon-icons/src/api.ts +++ b/packages/hiccup-carbon-icons/src/api.ts @@ -1,8 +1,21 @@ -export const API = - ["svg", +export const API = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 25 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 25 24", + d: + "M23.4 24H.6c-.3 0-.6-.3-.6-.6s.3-.6.6-.6h22.8c.3 0 .6.3.6.6s-.3.6-.6.6zM9.5 9.7c0 .3.1.4.3.4H10.1v.8c-.2 0-.6.1-.8.1-.5 0-.8-.2-.9-.6-.4.4-1.1.6-1.7.6-.9 0-1.7-.5-1.7-1.5C5 8.3 6 8.1 6.9 8c.8-.2 1.5 0 1.5-.7 0-.6-.6-.7-1-.7-.6 0-1.1.3-1.1.8H5.2c.1-1.3 1.2-1.7 2.3-1.7 1 0 2 .4 2 1.5v2.5zM8.4 8.3c-.4.3-.9.3-1.4.3-.5.1-.9.3-.9.9 0 .5.6.6 1 .6.5 0 1.2-.3 1.2-1v-.8h.1zM11 6h1.1v.7c.3-.6.9-.8 1.6-.8 1.6 0 2.4 1.2 2.4 2.7 0 1.4-.7 2.6-2.2 2.6-.6 0-1.3-.2-1.7-.8v2.5H11V6zm2.5.8c-.9 0-1.4.7-1.4 1.8 0 1 .5 1.8 1.4 1.8 1 0 1.4-.9 1.4-1.8 0-1-.5-1.8-1.4-1.8zM17 4h1v1h-1V4zm0 2h1v5h-1V6z", }, - ["path", { d: "M23.4 24H.6c-.3 0-.6-.3-.6-.6s.3-.6.6-.6h22.8c.3 0 .6.3.6.6s-.3.6-.6.6zM9.5 9.7c0 .3.1.4.3.4H10.1v.8c-.2 0-.6.1-.8.1-.5 0-.8-.2-.9-.6-.4.4-1.1.6-1.7.6-.9 0-1.7-.5-1.7-1.5C5 8.3 6 8.1 6.9 8c.8-.2 1.5 0 1.5-.7 0-.6-.6-.7-1-.7-.6 0-1.1.3-1.1.8H5.2c.1-1.3 1.2-1.7 2.3-1.7 1 0 2 .4 2 1.5v2.5zM8.4 8.3c-.4.3-.9.3-1.4.3-.5.1-.9.3-.9.9 0 .5.6.6 1 .6.5 0 1.2-.3 1.2-1v-.8h.1zM11 6h1.1v.7c.3-.6.9-.8 1.6-.8 1.6 0 2.4 1.2 2.4 2.7 0 1.4-.7 2.6-2.2 2.6-.6 0-1.3-.2-1.7-.8v2.5H11V6zm2.5.8c-.9 0-1.4.7-1.4 1.8 0 1 .5 1.8 1.4 1.8 1 0 1.4-.9 1.4-1.8 0-1-.5-1.8-1.4-1.8zM17 4h1v1h-1V4zm0 2h1v5h-1V6z" }], - ["path", { d: "M22 1.2c.4 0 .8.3.8.8v14c0 .4-.3.8-.8.8H2c-.4 0-.8-.3-.8-.8V2c0-.4.3-.8.8-.8h20zM22 0H2C.9 0 0 .9 0 2v14c0 1.1.9 2 2 2h20c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2z" }]]; + ], + [ + "path", + { + d: + "M22 1.2c.4 0 .8.3.8.8v14c0 .4-.3.8-.8.8H2c-.4 0-.8-.3-.8-.8V2c0-.4.3-.8.8-.8h20zM22 0H2C.9 0 0 .9 0 2v14c0 1.1.9 2 2 2h20c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/app-services.ts b/packages/hiccup-carbon-icons/src/app-services.ts index a008048215..2d4a58d1aa 100644 --- a/packages/hiccup-carbon-icons/src/app-services.ts +++ b/packages/hiccup-carbon-icons/src/app-services.ts @@ -1,9 +1,28 @@ -export const APP_SERVICES = - ["svg", +export const APP_SERVICES = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 24", + d: + "M12 1.2l10.5 5.7L12 12.8 1.5 7.1 12 1.2zM12 0c-.2 0-.4.1-.6.2L.4 6.3c-.6.4-.6 1.2 0 1.5l11 6c.2.1.4.1.5.1.2 0 .4-.1.6-.2l11-6.1c.6-.4.6-1.2 0-1.6l-11-6H12z", }, - ["path", { d: "M12 1.2l10.5 5.7L12 12.8 1.5 7.1 12 1.2zM12 0c-.2 0-.4.1-.6.2L.4 6.3c-.6.4-.6 1.2 0 1.5l11 6c.2.1.4.1.5.1.2 0 .4-.1.6-.2l11-6.1c.6-.4.6-1.2 0-1.6l-11-6H12z" }], - ["path", { d: "M12.1 18.9c-.3 0-.5-.1-.8-.2L.7 12.8c-.5-.2-.7-.7-.7-1.1 0-.5.2-.9.7-1.2l.6-.4c.2-.2.5-.1.7.1.2.2.1.5-.1.7l-.6.4c-.3.1-.3.3-.3.4 0 .1 0 .2.2.3l10.6 5.9c.2.1.4.1.6 0l10.5-6c.2-.1.2-.3.2-.3 0-.1 0-.2-.2-.3l-.6-.3c-.2-.1-.4-.4-.2-.7.1-.2.4-.3.7-.2l.5.3c.5.3.7.7.7 1.2s-.2.9-.7 1.2l-10.5 6c-.2 0-.5.1-.7.1z" }], - ["path", { d: "M12.1 24c-.3 0-.5-.1-.8-.2L.7 17.9c-.5-.2-.7-.7-.7-1.2s.2-.9.7-1.2l.6-.4c.2-.2.5-.1.7.1.1.3 0 .6-.2.8l-.6.4c-.2.1-.2.3-.2.3 0 .1 0 .2.2.3l10.6 5.9c.2.1.4.1.6 0l10.5-6c.2-.1.2-.3.2-.3 0-.1 0-.2-.2-.3l-.6-.3c-.2-.1-.4-.4-.2-.7.1-.2.4-.3.7-.2l.5.3c.5.3.7.7.7 1.2s-.2.9-.7 1.2l-10.5 6c-.2.1-.5.2-.7.2z" }]]; + ], + [ + "path", + { + d: + "M12.1 18.9c-.3 0-.5-.1-.8-.2L.7 12.8c-.5-.2-.7-.7-.7-1.1 0-.5.2-.9.7-1.2l.6-.4c.2-.2.5-.1.7.1.2.2.1.5-.1.7l-.6.4c-.3.1-.3.3-.3.4 0 .1 0 .2.2.3l10.6 5.9c.2.1.4.1.6 0l10.5-6c.2-.1.2-.3.2-.3 0-.1 0-.2-.2-.3l-.6-.3c-.2-.1-.4-.4-.2-.7.1-.2.4-.3.7-.2l.5.3c.5.3.7.7.7 1.2s-.2.9-.7 1.2l-10.5 6c-.2 0-.5.1-.7.1z", + }, + ], + [ + "path", + { + d: + "M12.1 24c-.3 0-.5-.1-.8-.2L.7 17.9c-.5-.2-.7-.7-.7-1.2s.2-.9.7-1.2l.6-.4c.2-.2.5-.1.7.1.1.3 0 .6-.2.8l-.6.4c-.2.1-.2.3-.2.3 0 .1 0 .2.2.3l10.6 5.9c.2.1.4.1.6 0l10.5-6c.2-.1.2-.3.2-.3 0-.1 0-.2-.2-.3l-.6-.3c-.2-.1-.4-.4-.2-.7.1-.2.4-.3.7-.2l.5.3c.5.3.7.7.7 1.2s-.2.9-.7 1.2l-10.5 6c-.2.1-.5.2-.7.2z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/applications.ts b/packages/hiccup-carbon-icons/src/applications.ts index 019a44ae57..cbf6c2c1d5 100644 --- a/packages/hiccup-carbon-icons/src/applications.ts +++ b/packages/hiccup-carbon-icons/src/applications.ts @@ -1,7 +1,14 @@ -export const APPLICATIONS = - ["svg", +export const APPLICATIONS = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 23 23", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 23 23", + d: + "M5.8 1.2v4.7H1.2V1.2h4.6zM7 0H0v7h7V0zM13.8 1.2v4.7H9.2V1.2h4.6zM15 0H8v7h7V0zM21.8 1.2v4.7h-4.7V1.2h4.7zM23 0h-7v7h7V0zM5.8 9.2v4.7H1.2V9.2h4.6zM7 8H0v7h7V8zM13.8 9.2v4.7H9.2V9.2h4.6zM15 8H8v7h7V8zM21.8 9.2v4.7h-4.7V9.2h4.7zM23 8h-7v7h7V8zM5.8 17.2v4.7H1.2v-4.7h4.6zM7 16H0v7h7v-7zM13.8 17.2v4.7H9.2v-4.7h4.6zM15 16H8v7h7v-7zM21.8 17.2v4.7h-4.7v-4.7h4.7zM23 16h-7v7h7v-7z", }, - ["path", { d: "M5.8 1.2v4.7H1.2V1.2h4.6zM7 0H0v7h7V0zM13.8 1.2v4.7H9.2V1.2h4.6zM15 0H8v7h7V0zM21.8 1.2v4.7h-4.7V1.2h4.7zM23 0h-7v7h7V0zM5.8 9.2v4.7H1.2V9.2h4.6zM7 8H0v7h7V8zM13.8 9.2v4.7H9.2V9.2h4.6zM15 8H8v7h7V8zM21.8 9.2v4.7h-4.7V9.2h4.7zM23 8h-7v7h7V8zM5.8 17.2v4.7H1.2v-4.7h4.6zM7 16H0v7h7v-7zM13.8 17.2v4.7H9.2v-4.7h4.6zM15 16H8v7h7v-7zM21.8 17.2v4.7h-4.7v-4.7h4.7zM23 16h-7v7h7v-7z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/apps.ts b/packages/hiccup-carbon-icons/src/apps.ts index 01b61ec91c..4b37f2de9f 100644 --- a/packages/hiccup-carbon-icons/src/apps.ts +++ b/packages/hiccup-carbon-icons/src/apps.ts @@ -1,7 +1,14 @@ -export const APPS = - ["svg", +export const APPS = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 23 23", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 23 23", + d: + "M5.8 1.2v4.7H1.2V1.2h4.6zM7 0H0v7h7V0zM13.8 1.2v4.7H9.2V1.2h4.6zM15 0H8v7h7V0zM21.8 1.2v4.7h-4.7V1.2h4.7zM23 0h-7v7h7V0zM5.8 9.2v4.7H1.2V9.2h4.6zM7 8H0v7h7V8zM13.8 9.2v4.7H9.2V9.2h4.6zM15 8H8v7h7V8zM21.8 9.2v4.7h-4.7V9.2h4.7zM23 8h-7v7h7V8zM5.8 17.2v4.7H1.2v-4.7h4.6zM7 16H0v7h7v-7zM13.8 17.2v4.7H9.2v-4.7h4.6zM15 16H8v7h7v-7zM21.8 17.2v4.7h-4.7v-4.7h4.7zM23 16h-7v7h7v-7z", }, - ["path", { d: "M5.8 1.2v4.7H1.2V1.2h4.6zM7 0H0v7h7V0zM13.8 1.2v4.7H9.2V1.2h4.6zM15 0H8v7h7V0zM21.8 1.2v4.7h-4.7V1.2h4.7zM23 0h-7v7h7V0zM5.8 9.2v4.7H1.2V9.2h4.6zM7 8H0v7h7V8zM13.8 9.2v4.7H9.2V9.2h4.6zM15 8H8v7h7V8zM21.8 9.2v4.7h-4.7V9.2h4.7zM23 8h-7v7h7V8zM5.8 17.2v4.7H1.2v-4.7h4.6zM7 16H0v7h7v-7zM13.8 17.2v4.7H9.2v-4.7h4.6zM15 16H8v7h7v-7zM21.8 17.2v4.7h-4.7v-4.7h4.7zM23 16h-7v7h7v-7z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/arrow-down.ts b/packages/hiccup-carbon-icons/src/arrow-down.ts index 060cc20e63..111f423ccd 100644 --- a/packages/hiccup-carbon-icons/src/arrow-down.ts +++ b/packages/hiccup-carbon-icons/src/arrow-down.ts @@ -1,7 +1,12 @@ -export const ARROW_DOWN = - ["svg", { viewBox: "0 0 14 16" }, - ["path", - { - "fill-rule": "nonzero", - d: "M8 11.953l3.905-4.09 1.453 1.374L7 16 .635 9.238l1.452-1.376L6 11.954V0h2v11.953z", - }]]; +export const ARROW_DOWN = [ + "svg", + { viewBox: "0 0 14 16" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M8 11.953l3.905-4.09 1.453 1.374L7 16 .635 9.238l1.452-1.376L6 11.954V0h2v11.953z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/arrow-left.ts b/packages/hiccup-carbon-icons/src/arrow-left.ts index a611a962fd..ea88828bc8 100644 --- a/packages/hiccup-carbon-icons/src/arrow-left.ts +++ b/packages/hiccup-carbon-icons/src/arrow-left.ts @@ -1,7 +1,12 @@ -export const ARROW_LEFT = - ["svg", { viewBox: "0 0 16 14" }, - ["path", - { - "fill-rule": "nonzero", - d: "M4.044 8.003l4.09 3.905-1.374 1.453-6.763-6.356L6.759.639 8.135 2.09 4.043 6.003h11.954v2H4.044z", - }]]; +export const ARROW_LEFT = [ + "svg", + { viewBox: "0 0 16 14" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M4.044 8.003l4.09 3.905-1.374 1.453-6.763-6.356L6.759.639 8.135 2.09 4.043 6.003h11.954v2H4.044z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/arrow-right.ts b/packages/hiccup-carbon-icons/src/arrow-right.ts index 43dea70f1f..3aeb81fca0 100644 --- a/packages/hiccup-carbon-icons/src/arrow-right.ts +++ b/packages/hiccup-carbon-icons/src/arrow-right.ts @@ -1,7 +1,12 @@ -export const ARROW_RIGHT = - ["svg", { viewBox: "0 0 16 14" }, - ["path", - { - "fill-rule": "nonzero", - d: "M11.95 5.997L7.86 2.092 9.233.639l6.763 6.356-6.763 6.366L7.86 11.91l4.092-3.912H-.003v-2h11.952z", - }]]; +export const ARROW_RIGHT = [ + "svg", + { viewBox: "0 0 16 14" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M11.95 5.997L7.86 2.092 9.233.639l6.763 6.356-6.763 6.366L7.86 11.91l4.092-3.912H-.003v-2h11.952z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/arrow-up.ts b/packages/hiccup-carbon-icons/src/arrow-up.ts index c722d470bf..23d01c4a38 100644 --- a/packages/hiccup-carbon-icons/src/arrow-up.ts +++ b/packages/hiccup-carbon-icons/src/arrow-up.ts @@ -1,7 +1,12 @@ -export const ARROW_UP = - ["svg", { viewBox: "0 0 14 16" }, - ["path", - { - "fill-rule": "nonzero", - d: "M5.993 4.047l-3.905 4.09L.635 6.763 6.992 0l6.366 6.762-1.452 1.376-3.913-4.092V16h-2V4.047z", - }]]; +export const ARROW_UP = [ + "svg", + { viewBox: "0 0 14 16" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M5.993 4.047l-3.905 4.09L.635 6.763 6.992 0l6.366 6.762-1.452 1.376-3.913-4.092V16h-2V4.047z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/arrows.ts b/packages/hiccup-carbon-icons/src/arrows.ts index 323b732baa..19b9e14915 100644 --- a/packages/hiccup-carbon-icons/src/arrows.ts +++ b/packages/hiccup-carbon-icons/src/arrows.ts @@ -1,4 +1,15 @@ -export const ARROWS = - ["svg", { viewBox: "0 0 16 16" }, - ["g", { "fill-rule": "nonzero" }, - ["path", { d: "M12 14.186l2.724-2.477.686.726-3.875 3.524-3.875-3.524.686-.726L11 14.122V0h1v14.186zM5.038 1.805V16h-1V1.805L1.348 4.25l-.685-.727L4.538 0l3.875 3.523-.686.727-2.69-2.445z" }]]]; +export const ARROWS = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "g", + { "fill-rule": "nonzero" }, + [ + "path", + { + d: + "M12 14.186l2.724-2.477.686.726-3.875 3.524-3.875-3.524.686-.726L11 14.122V0h1v14.186zM5.038 1.805V16h-1V1.805L1.348 4.25l-.685-.727L4.538 0l3.875 3.523-.686.727-2.69-2.445z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/asleep.ts b/packages/hiccup-carbon-icons/src/asleep.ts index 80aea730f9..e0ad0a4347 100644 --- a/packages/hiccup-carbon-icons/src/asleep.ts +++ b/packages/hiccup-carbon-icons/src/asleep.ts @@ -1,7 +1,12 @@ -export const ASLEEP = - ["svg", { viewBox: "0 0 15 16" }, - ["path", - { - "fill-rule": "nonzero", - d: "M14 12c-3.8-.2-6.8-3.3-6.8-7.1 0-1.4.4-2.8 1.3-4V.8c.1-.1.1-.2.1-.3 0-.3-.2-.5-.5-.5H8C3.6 0 0 3.6 0 8s3.6 8 8 8c2.5 0 4.8-1.2 6.3-3.1.2-.2.2-.5.1-.7-.1-.1-.3-.2-.4-.2zm-6 3c-3.9 0-7-3.1-7-7 0-3.6 2.6-6.6 6.2-7-2.1 4-.6 8.9 3.3 11 .8.4 1.6.7 2.5.9-1.3 1.4-3.1 2.1-5 2.1z", - }]]; +export const ASLEEP = [ + "svg", + { viewBox: "0 0 15 16" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M14 12c-3.8-.2-6.8-3.3-6.8-7.1 0-1.4.4-2.8 1.3-4V.8c.1-.1.1-.2.1-.3 0-.3-.2-.5-.5-.5H8C3.6 0 0 3.6 0 8s3.6 8 8 8c2.5 0 4.8-1.2 6.3-3.1.2-.2.2-.5.1-.7-.1-.1-.3-.2-.4-.2zm-6 3c-3.9 0-7-3.1-7-7 0-3.6 2.6-6.6 6.2-7-2.1 4-.6 8.9 3.3 11 .8.4 1.6.7 2.5.9-1.3 1.4-3.1 2.1-5 2.1z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/attachment.ts b/packages/hiccup-carbon-icons/src/attachment.ts index 4acc3a994c..232bd646bd 100644 --- a/packages/hiccup-carbon-icons/src/attachment.ts +++ b/packages/hiccup-carbon-icons/src/attachment.ts @@ -1,7 +1,12 @@ -export const ATTACHMENT = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "nonzero", - d: "M3.498 7.54l-.707.706L1.124 6.58A3.858 3.858 0 1 1 6.58 1.123l8.31 8.311a3.838 3.838 0 0 1 0 5.429 3.883 3.883 0 0 1-5.484 0L6.17 11.625A2.599 2.599 0 0 1 9.845 7.95l1.484 1.484-.707.707-1.484-1.484a1.599 1.599 0 1 0-2.262 2.261l3.237 3.237a2.878 2.878 0 0 0 4.059.012 2.842 2.842 0 0 0 .011-4.026l-8.31-8.31A2.858 2.858 0 0 0 1.83 5.871L3.498 7.54z", - }]]; +export const ATTACHMENT = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M3.498 7.54l-.707.706L1.124 6.58A3.858 3.858 0 1 1 6.58 1.123l8.31 8.311a3.838 3.838 0 0 1 0 5.429 3.883 3.883 0 0 1-5.484 0L6.17 11.625A2.599 2.599 0 0 1 9.845 7.95l1.484 1.484-.707.707-1.484-1.484a1.599 1.599 0 1 0-2.262 2.261l3.237 3.237a2.878 2.878 0 0 0 4.059.012 2.842 2.842 0 0 0 .011-4.026l-8.31-8.31A2.858 2.858 0 0 0 1.83 5.871L3.498 7.54z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/awake.ts b/packages/hiccup-carbon-icons/src/awake.ts index 0d2d9e7102..408fdb6544 100644 --- a/packages/hiccup-carbon-icons/src/awake.ts +++ b/packages/hiccup-carbon-icons/src/awake.ts @@ -1,4 +1,15 @@ -export const AWAKE = - ["svg", { viewBox: "0 0 16 16" }, - ["g", { "fill-rule": "nonzero" }, - ["path", { d: "M7.5 0h1v3h-1zM7.5 13h1v3h-1zM16 7.5v1h-3v-1zM3 7.5v1H0v-1zM1.99 2.697l.707-.707 2.121 2.12-.707.708zM11.182 11.89l.707-.708 2.121 2.121-.707.707zM13.303 1.99l.707.707-2.12 2.121-.708-.707zM4.11 11.182l.708.707-2.121 2.121-.707-.707zM8 10.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm0 1a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7z" }]]]; +export const AWAKE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "g", + { "fill-rule": "nonzero" }, + [ + "path", + { + d: + "M7.5 0h1v3h-1zM7.5 13h1v3h-1zM16 7.5v1h-3v-1zM3 7.5v1H0v-1zM1.99 2.697l.707-.707 2.121 2.12-.707.708zM11.182 11.89l.707-.708 2.121 2.121-.707.707zM13.303 1.99l.707.707-2.12 2.121-.708-.707zM4.11 11.182l.708.707-2.121 2.121-.707-.707zM8 10.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm0 1a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/back-to-top.ts b/packages/hiccup-carbon-icons/src/back-to-top.ts index db76ac9182..4ee7112246 100644 --- a/packages/hiccup-carbon-icons/src/back-to-top.ts +++ b/packages/hiccup-carbon-icons/src/back-to-top.ts @@ -1,4 +1,15 @@ -export const BACK_TO_TOP = - ["svg", { viewBox: "0 0 11 16" }, - ["g", { "fill-rule": "nonzero" }, - ["path", { d: "M0 1V0h11v1zM5 4.984L.862 9.357.135 8.67 5.502 3l5.363 5.673-.727.687-4.137-4.376V16H5V4.984z" }]]]; +export const BACK_TO_TOP = [ + "svg", + { viewBox: "0 0 11 16" }, + [ + "g", + { "fill-rule": "nonzero" }, + [ + "path", + { + d: + "M0 1V0h11v1zM5 4.984L.862 9.357.135 8.67 5.502 3l5.363 5.673-.727.687-4.137-4.376V16H5V4.984z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/block-chain.ts b/packages/hiccup-carbon-icons/src/block-chain.ts index 1e2777e526..9e8a129406 100644 --- a/packages/hiccup-carbon-icons/src/block-chain.ts +++ b/packages/hiccup-carbon-icons/src/block-chain.ts @@ -1,7 +1,14 @@ -export const BLOCK_CHAIN = - ["svg", +export const BLOCK_CHAIN = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 21 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 21 24", + d: + "M9.5 1c.9 0 1.5.7 1.5 1.5S10.4 4 9.5 4C8.7 4 8 3.3 8 2.5S8.7 1 9.5 1zm0-1C8.2 0 7 1.1 7 2.5S8.2 5 9.5 5 12 3.9 12 2.5 10.9 0 9.5 0zM17 4l-3 1.7v2.4L10.3 6 5 9v3.6l-2-1.1-3 1.7v3.5l3 1.7 3-1.7v-1.1l4.5 2.4 5-3v-4.9l1.5.9 3-1.7V5.8L17 4zm-6.7 3.2l3.8 2.1-3.5 1.8-4-1.8 3.7-2.1zM5 16.1l-2 1.2-2-1.1v-2.3l2-1.2 2 1.1v2.3zm1-5.9l4 1.8v4.6l-4-2.2v-4.2zm5 6.3V12l3.5-1.8v4.2L11 16.5zm8-7.8l-2 1.2-2-1.2V6.3l2-1.2 2 1.2v2.4zM2.5 4C3.4 4 4 4.7 4 5.5S3.4 7 2.5 7 1 6.3 1 5.5 1.7 4 2.5 4zm0-1C1.1 3 0 4.1 0 5.5S1.1 8 2.5 8 5 6.9 5 5.5 3.9 3 2.5 3zM11.5 20c.8 0 1.5.7 1.5 1.5s-.6 1.5-1.5 1.5-1.5-.7-1.5-1.5.7-1.5 1.5-1.5zm0-1C10.1 19 9 20.1 9 21.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5-1.1-2.5-2.5-2.5zM18.5 16c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5.7-1.5 1.5-1.5zm0-1c-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5-1.1-2.5-2.5-2.5z", }, - ["path", { d: "M9.5 1c.9 0 1.5.7 1.5 1.5S10.4 4 9.5 4C8.7 4 8 3.3 8 2.5S8.7 1 9.5 1zm0-1C8.2 0 7 1.1 7 2.5S8.2 5 9.5 5 12 3.9 12 2.5 10.9 0 9.5 0zM17 4l-3 1.7v2.4L10.3 6 5 9v3.6l-2-1.1-3 1.7v3.5l3 1.7 3-1.7v-1.1l4.5 2.4 5-3v-4.9l1.5.9 3-1.7V5.8L17 4zm-6.7 3.2l3.8 2.1-3.5 1.8-4-1.8 3.7-2.1zM5 16.1l-2 1.2-2-1.1v-2.3l2-1.2 2 1.1v2.3zm1-5.9l4 1.8v4.6l-4-2.2v-4.2zm5 6.3V12l3.5-1.8v4.2L11 16.5zm8-7.8l-2 1.2-2-1.2V6.3l2-1.2 2 1.2v2.4zM2.5 4C3.4 4 4 4.7 4 5.5S3.4 7 2.5 7 1 6.3 1 5.5 1.7 4 2.5 4zm0-1C1.1 3 0 4.1 0 5.5S1.1 8 2.5 8 5 6.9 5 5.5 3.9 3 2.5 3zM11.5 20c.8 0 1.5.7 1.5 1.5s-.6 1.5-1.5 1.5-1.5-.7-1.5-1.5.7-1.5 1.5-1.5zm0-1C10.1 19 9 20.1 9 21.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5-1.1-2.5-2.5-2.5zM18.5 16c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5.7-1.5 1.5-1.5zm0-1c-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5-1.1-2.5-2.5-2.5z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/calendar.ts b/packages/hiccup-carbon-icons/src/calendar.ts index 17f00427e4..63eac35c39 100644 --- a/packages/hiccup-carbon-icons/src/calendar.ts +++ b/packages/hiccup-carbon-icons/src/calendar.ts @@ -1,7 +1,12 @@ -export const CALENDAR = - ["svg", { viewBox: "0 0 14 16" }, - ["path", - { - "fill-rule": "nonzero", - d: "M0 5h14v1H0V5zm3-5h1v4H3V0zm7 0h1v4h-1V0zM0 2.5A1.5 1.5 0 0 1 1.5 1h11A1.5 1.5 0 0 1 14 2.5v12a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 0 14.5v-12zm1 0v12a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5v-12a.5.5 0 0 0-.5-.5h-11a.5.5 0 0 0-.5.5z", - }]]; +export const CALENDAR = [ + "svg", + { viewBox: "0 0 14 16" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M0 5h14v1H0V5zm3-5h1v4H3V0zm7 0h1v4h-1V0zM0 2.5A1.5 1.5 0 0 1 1.5 1h11A1.5 1.5 0 0 1 14 2.5v12a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 0 14.5v-12zm1 0v12a.5.5 0 0 0 .5.5h11a.5.5 0 0 0 .5-.5v-12a.5.5 0 0 0-.5-.5h-11a.5.5 0 0 0-.5.5z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/caret-down.ts b/packages/hiccup-carbon-icons/src/caret-down.ts index f909160df4..39e9f0ac49 100644 --- a/packages/hiccup-carbon-icons/src/caret-down.ts +++ b/packages/hiccup-carbon-icons/src/caret-down.ts @@ -1,7 +1,11 @@ -export const CARET_DOWN = - ["svg", { viewBox: "0 0 10 5" }, - ["path", - { - "fill-rule": "evenodd", - d: "M0 0l5 4.998L10 0z", - }]]; +export const CARET_DOWN = [ + "svg", + { viewBox: "0 0 10 5" }, + [ + "path", + { + "fill-rule": "evenodd", + d: "M0 0l5 4.998L10 0z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/caret-left.ts b/packages/hiccup-carbon-icons/src/caret-left.ts index 927d52ce88..3837785826 100644 --- a/packages/hiccup-carbon-icons/src/caret-left.ts +++ b/packages/hiccup-carbon-icons/src/caret-left.ts @@ -1,7 +1,11 @@ -export const CARET_LEFT = - ["svg", { viewBox: "0 0 5 10" }, - ["path", - { - "fill-rule": "evenodd", - d: "M4.998 10L0 5l4.998-5z", - }]]; +export const CARET_LEFT = [ + "svg", + { viewBox: "0 0 5 10" }, + [ + "path", + { + "fill-rule": "evenodd", + d: "M4.998 10L0 5l4.998-5z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/caret-right.ts b/packages/hiccup-carbon-icons/src/caret-right.ts index dcecbb5275..6e9a8823a0 100644 --- a/packages/hiccup-carbon-icons/src/caret-right.ts +++ b/packages/hiccup-carbon-icons/src/caret-right.ts @@ -1,7 +1,11 @@ -export const CARET_RIGHT = - ["svg", { viewBox: "0 0 5 10" }, - ["path", - { - "fill-rule": "evenodd", - d: "M0 10l4.998-5L0 0z", - }]]; +export const CARET_RIGHT = [ + "svg", + { viewBox: "0 0 5 10" }, + [ + "path", + { + "fill-rule": "evenodd", + d: "M0 10l4.998-5L0 0z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/caret-up.ts b/packages/hiccup-carbon-icons/src/caret-up.ts index a03dbba3fb..eb34bf218d 100644 --- a/packages/hiccup-carbon-icons/src/caret-up.ts +++ b/packages/hiccup-carbon-icons/src/caret-up.ts @@ -1,7 +1,11 @@ -export const CARET_UP = - ["svg", { viewBox: "0 0 10 5" }, - ["path", - { - "fill-rule": "evenodd", - d: "M0 5L5 .002 10 5z", - }]]; +export const CARET_UP = [ + "svg", + { viewBox: "0 0 10 5" }, + [ + "path", + { + "fill-rule": "evenodd", + d: "M0 5L5 .002 10 5z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/cf-apps.ts b/packages/hiccup-carbon-icons/src/cf-apps.ts index 332682e8ff..9454660e4c 100644 --- a/packages/hiccup-carbon-icons/src/cf-apps.ts +++ b/packages/hiccup-carbon-icons/src/cf-apps.ts @@ -1,8 +1,21 @@ -export const CF_APPS = - ["svg", +export const CF_APPS = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 18", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 18", + d: + "M12.2 10.5c-.1-.5-.6-.9-1.2-.9-1.1 0-1.5.9-1.5 1.9 0 .9.4 1.8 1.5 1.8.7 0 1.1-.5 1.2-1.2h1.2c-.1 1.4-1 2.2-2.4 2.2-1.7 0-2.7-1.3-2.7-2.8 0-1.6 1-2.9 2.7-2.9 1.2 0 2.2.7 2.3 2h-1.1v-.1zM14.1 8.7h3.8v1h-2.6V11h2.3v.9h-2.3v2.2h-1.2V8.7z", }, - ["path", { d: "M12.2 10.5c-.1-.5-.6-.9-1.2-.9-1.1 0-1.5.9-1.5 1.9 0 .9.4 1.8 1.5 1.8.7 0 1.1-.5 1.2-1.2h1.2c-.1 1.4-1 2.2-2.4 2.2-1.7 0-2.7-1.3-2.7-2.8 0-1.6 1-2.9 2.7-2.9 1.2 0 2.2.7 2.3 2h-1.1v-.1zM14.1 8.7h3.8v1h-2.6V11h2.3v.9h-2.3v2.2h-1.2V8.7z" }], - ["path", { d: "M13.6 1.2c3 0 5.4 2.4 5.5 5.4v.8l.7.3c1.8.7 2.9 2.4 2.9 4.4 0 2.6-2 4.7-4.5 4.7H5.6c-2.5-.1-4.5-2.2-4.5-4.7 0-2.6 2.1-4.8 4.7-4.8.3 0 .6 0 .9.1l1.3.2.1-1.3c.3-2.9 2.6-5.1 5.5-5.1zm0-1.2c-3.5 0-6.4 2.7-6.7 6.2-.3-.1-.7-.1-1-.1C2.6 6.1 0 8.7 0 12c0 3.2 2.5 5.8 5.6 5.9h12.7c3.2 0 5.7-2.6 5.7-5.9 0-2.5-1.5-4.6-3.7-5.5-.1-3.6-3.1-6.5-6.7-6.5z" }]]; + ], + [ + "path", + { + d: + "M13.6 1.2c3 0 5.4 2.4 5.5 5.4v.8l.7.3c1.8.7 2.9 2.4 2.9 4.4 0 2.6-2 4.7-4.5 4.7H5.6c-2.5-.1-4.5-2.2-4.5-4.7 0-2.6 2.1-4.8 4.7-4.8.3 0 .6 0 .9.1l1.3.2.1-1.3c.3-2.9 2.6-5.1 5.5-5.1zm0-1.2c-3.5 0-6.4 2.7-6.7 6.2-.3-.1-.7-.1-1-.1C2.6 6.1 0 8.7 0 12c0 3.2 2.5 5.8 5.6 5.9h12.7c3.2 0 5.7-2.6 5.7-5.9 0-2.5-1.5-4.6-3.7-5.5-.1-3.6-3.1-6.5-6.7-6.5z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/chat.ts b/packages/hiccup-carbon-icons/src/chat.ts index 5aff7a9c04..a54e36009a 100644 --- a/packages/hiccup-carbon-icons/src/chat.ts +++ b/packages/hiccup-carbon-icons/src/chat.ts @@ -1,4 +1,12 @@ -export const CHAT = - ["svg", { viewBox: "0 0 16 16" }, - ["path", { d: "M3 8V7h6v1zM3 5V4h10v1z" }], - ["path", { d: "M11.7 12l-3.9 4-.7-.7 4.1-4.3H14c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1H2c-.6 0-1 .4-1 1v8c0 .6.4 1 1 1h5.5v1H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0h12c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2h-2.3z" }]]; +export const CHAT = [ + "svg", + { viewBox: "0 0 16 16" }, + ["path", { d: "M3 8V7h6v1zM3 5V4h10v1z" }], + [ + "path", + { + d: + "M11.7 12l-3.9 4-.7-.7 4.1-4.3H14c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1H2c-.6 0-1 .4-1 1v8c0 .6.4 1 1 1h5.5v1H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0h12c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2h-2.3z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/checkmark-outline.ts b/packages/hiccup-carbon-icons/src/checkmark-outline.ts index d5a616c851..eef9e4a0d1 100644 --- a/packages/hiccup-carbon-icons/src/checkmark-outline.ts +++ b/packages/hiccup-carbon-icons/src/checkmark-outline.ts @@ -1,4 +1,12 @@ -export const CHECKMARK_OUTLINE = - ["svg", { viewBox: "0 0 16 16" }, - ["path", { d: "M8 14.5c3.6 0 6.5-2.9 6.5-6.5S11.6 1.5 8 1.5 1.5 4.4 1.5 8s2.9 6.5 6.5 6.5zM8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z" }], - ["path", { d: "M11.3 4.7l1.4 1.4L6.8 12 3.3 8.6l1.4-1.4 2.1 2z" }]]; +export const CHECKMARK_OUTLINE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + d: + "M8 14.5c3.6 0 6.5-2.9 6.5-6.5S11.6 1.5 8 1.5 1.5 4.4 1.5 8s2.9 6.5 6.5 6.5zM8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z", + }, + ], + ["path", { d: "M11.3 4.7l1.4 1.4L6.8 12 3.3 8.6l1.4-1.4 2.1 2z" }], +]; diff --git a/packages/hiccup-carbon-icons/src/checkmark-solid.ts b/packages/hiccup-carbon-icons/src/checkmark-solid.ts index 8973eee644..ee51297f5b 100644 --- a/packages/hiccup-carbon-icons/src/checkmark-solid.ts +++ b/packages/hiccup-carbon-icons/src/checkmark-solid.ts @@ -1,7 +1,12 @@ -export const CHECKMARK_SOLID = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "evenodd", - d: "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zm3.293-11.332L6.75 9.21 4.707 7.168 3.293 8.582 6.75 12.04l5.957-5.957-1.414-1.414z", - }]]; +export const CHECKMARK_SOLID = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zm3.293-11.332L6.75 9.21 4.707 7.168 3.293 8.582 6.75 12.04l5.957-5.957-1.414-1.414z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/checkmark.ts b/packages/hiccup-carbon-icons/src/checkmark.ts index 1dcde4d8e8..0fce138302 100644 --- a/packages/hiccup-carbon-icons/src/checkmark.ts +++ b/packages/hiccup-carbon-icons/src/checkmark.ts @@ -1,7 +1,11 @@ -export const CHECKMARK = - ["svg", { viewBox: "0 0 10 8" }, - ["path", - { - d: "M8.498 0L10 1.502 3.672 7.83 0 4.158l1.502-1.502 2.17 2.17z", - "fill-rule": "nonzero", - }]]; +export const CHECKMARK = [ + "svg", + { viewBox: "0 0 10 8" }, + [ + "path", + { + d: "M8.498 0L10 1.502 3.672 7.83 0 4.158l1.502-1.502 2.17 2.17z", + "fill-rule": "nonzero", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/chevron-down.ts b/packages/hiccup-carbon-icons/src/chevron-down.ts index 75ebf21c0d..33c66369ca 100644 --- a/packages/hiccup-carbon-icons/src/chevron-down.ts +++ b/packages/hiccup-carbon-icons/src/chevron-down.ts @@ -1,7 +1,11 @@ -export const CHEVRON_DOWN = - ["svg", { viewBox: "0 0 12 7" }, - ["path", - { - d: "M6.002 5.55L11.27 0l.726.685L6.003 7 0 .685.726 0z", - "fill-rule": "nonzero", - }]]; +export const CHEVRON_DOWN = [ + "svg", + { viewBox: "0 0 12 7" }, + [ + "path", + { + d: "M6.002 5.55L11.27 0l.726.685L6.003 7 0 .685.726 0z", + "fill-rule": "nonzero", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/chevron-left.ts b/packages/hiccup-carbon-icons/src/chevron-left.ts index 31fda0c4e1..bd519e0c36 100644 --- a/packages/hiccup-carbon-icons/src/chevron-left.ts +++ b/packages/hiccup-carbon-icons/src/chevron-left.ts @@ -1,7 +1,11 @@ -export const CHEVRON_LEFT = - ["svg", { viewBox: "0 0 7 12" }, - ["path", - { - d: "M1.45 6.002L7 11.27l-.685.726L0 6.003 6.315 0 7 .726z", - "fill-rule": "nonzero", - }]]; +export const CHEVRON_LEFT = [ + "svg", + { viewBox: "0 0 7 12" }, + [ + "path", + { + d: "M1.45 6.002L7 11.27l-.685.726L0 6.003 6.315 0 7 .726z", + "fill-rule": "nonzero", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/chevron-right.ts b/packages/hiccup-carbon-icons/src/chevron-right.ts index de1ee6f446..33ed832dc2 100644 --- a/packages/hiccup-carbon-icons/src/chevron-right.ts +++ b/packages/hiccup-carbon-icons/src/chevron-right.ts @@ -1,7 +1,11 @@ -export const CHEVRON_RIGHT = - ["svg", { viewBox: "0 0 7 12" }, - ["path", - { - d: "M5.569 5.994L0 .726.687 0l6.336 5.994-6.335 6.002L0 11.27z", - "fill-rule": "nonzero", - }]]; +export const CHEVRON_RIGHT = [ + "svg", + { viewBox: "0 0 7 12" }, + [ + "path", + { + d: "M5.569 5.994L0 .726.687 0l6.336 5.994-6.335 6.002L0 11.27z", + "fill-rule": "nonzero", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/chevron-up.ts b/packages/hiccup-carbon-icons/src/chevron-up.ts index 8b5b34bd23..e0564fc650 100644 --- a/packages/hiccup-carbon-icons/src/chevron-up.ts +++ b/packages/hiccup-carbon-icons/src/chevron-up.ts @@ -1,7 +1,11 @@ -export const CHEVRON_UP = - ["svg", { viewBox: "0 0 12 7" }, - ["path", - { - d: "M5.994 1.45L.726 7 0 6.315 5.994 0l6.002 6.315L11.27 7z", - "fill-rule": "nonzero", - }]]; +export const CHEVRON_UP = [ + "svg", + { viewBox: "0 0 12 7" }, + [ + "path", + { + d: "M5.994 1.45L.726 7 0 6.315 5.994 0l6.002 6.315L11.27 7z", + "fill-rule": "nonzero", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/close-outline.ts b/packages/hiccup-carbon-icons/src/close-outline.ts index 07e553bdee..a8c8279743 100644 --- a/packages/hiccup-carbon-icons/src/close-outline.ts +++ b/packages/hiccup-carbon-icons/src/close-outline.ts @@ -1,4 +1,18 @@ -export const CLOSE_OUTLINE = - ["svg", { viewBox: "0 0 16 16" }, - ["path", { d: "M8 14.5c3.6 0 6.5-2.9 6.5-6.5S11.6 1.5 8 1.5 1.5 4.4 1.5 8s2.9 6.5 6.5 6.5zM8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z" }], - ["path", { d: "M8 6.6l2.1-2.1 1.4 1.4L9.4 8l2.1 2.1-1.4 1.4L8 9.4l-2.1 2.1-1.4-1.4L6.6 8 4.5 5.9l1.4-1.4L8 6.6z" }]]; +export const CLOSE_OUTLINE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + d: + "M8 14.5c3.6 0 6.5-2.9 6.5-6.5S11.6 1.5 8 1.5 1.5 4.4 1.5 8s2.9 6.5 6.5 6.5zM8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z", + }, + ], + [ + "path", + { + d: + "M8 6.6l2.1-2.1 1.4 1.4L9.4 8l2.1 2.1-1.4 1.4L8 9.4l-2.1 2.1-1.4-1.4L6.6 8 4.5 5.9l1.4-1.4L8 6.6z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/close-solid.ts b/packages/hiccup-carbon-icons/src/close-solid.ts index e8b743ba60..ae11263ad7 100644 --- a/packages/hiccup-carbon-icons/src/close-solid.ts +++ b/packages/hiccup-carbon-icons/src/close-solid.ts @@ -1,7 +1,12 @@ -export const CLOSE_SOLID = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "evenodd", - d: "M8 6.586L5.879 4.464 4.464 5.88 6.586 8l-2.122 2.121 1.415 1.415L8 9.414l2.121 2.122 1.415-1.415L9.414 8l2.122-2.121-1.415-1.415L8 6.586zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16z", - }]]; +export const CLOSE_SOLID = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M8 6.586L5.879 4.464 4.464 5.88 6.586 8l-2.122 2.121 1.415 1.415L8 9.414l2.121 2.122 1.415-1.415L9.414 8l2.122-2.121-1.415-1.415L8 6.586zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/close.ts b/packages/hiccup-carbon-icons/src/close.ts index 6c926820ec..f0a5a7b4f4 100644 --- a/packages/hiccup-carbon-icons/src/close.ts +++ b/packages/hiccup-carbon-icons/src/close.ts @@ -1,7 +1,12 @@ -export const CLOSE = - ["svg", { viewBox: "0 0 10 10" }, - ["path", - { - "fill-rule": "nonzero", - d: "M6.32 5L10 8.68 8.68 10 5 6.32 1.32 10 0 8.68 3.68 5 0 1.32 1.32 0 5 3.68 8.68 0 10 1.32 6.32 5z", - }]]; +export const CLOSE = [ + "svg", + { viewBox: "0 0 10 10" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M6.32 5L10 8.68 8.68 10 5 6.32 1.32 10 0 8.68 3.68 5 0 1.32 1.32 0 5 3.68 8.68 0 10 1.32 6.32 5z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/cloud-foundry.ts b/packages/hiccup-carbon-icons/src/cloud-foundry.ts index 0e0e7b018d..32a6001a51 100644 --- a/packages/hiccup-carbon-icons/src/cloud-foundry.ts +++ b/packages/hiccup-carbon-icons/src/cloud-foundry.ts @@ -1,8 +1,21 @@ -export const CLOUD_FOUNDRY = - ["svg", +export const CLOUD_FOUNDRY = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 18", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 18", + d: + "M12.2 10.5c-.1-.5-.6-.9-1.2-.9-1.1 0-1.5.9-1.5 1.9 0 .9.4 1.8 1.5 1.8.7 0 1.1-.5 1.2-1.2h1.2c-.1 1.4-1 2.2-2.4 2.2-1.7 0-2.7-1.3-2.7-2.8 0-1.6 1-2.9 2.7-2.9 1.2 0 2.2.7 2.3 2h-1.1v-.1zM14.1 8.7h3.8v1h-2.6V11h2.3v.9h-2.3v2.2h-1.2V8.7z", }, - ["path", { d: "M12.2 10.5c-.1-.5-.6-.9-1.2-.9-1.1 0-1.5.9-1.5 1.9 0 .9.4 1.8 1.5 1.8.7 0 1.1-.5 1.2-1.2h1.2c-.1 1.4-1 2.2-2.4 2.2-1.7 0-2.7-1.3-2.7-2.8 0-1.6 1-2.9 2.7-2.9 1.2 0 2.2.7 2.3 2h-1.1v-.1zM14.1 8.7h3.8v1h-2.6V11h2.3v.9h-2.3v2.2h-1.2V8.7z" }], - ["path", { d: "M13.6 1.2c3 0 5.4 2.4 5.5 5.4v.8l.7.3c1.8.7 2.9 2.4 2.9 4.4 0 2.6-2 4.7-4.5 4.7H5.6c-2.5-.1-4.5-2.2-4.5-4.7 0-2.6 2.1-4.8 4.7-4.8.3 0 .6 0 .9.1l1.3.2.1-1.3c.3-2.9 2.6-5.1 5.5-5.1zm0-1.2c-3.5 0-6.4 2.7-6.7 6.2-.3-.1-.7-.1-1-.1C2.6 6.1 0 8.7 0 12c0 3.2 2.5 5.8 5.6 5.9h12.7c3.2 0 5.7-2.6 5.7-5.9 0-2.5-1.5-4.6-3.7-5.5-.1-3.6-3.1-6.5-6.7-6.5z" }]]; + ], + [ + "path", + { + d: + "M13.6 1.2c3 0 5.4 2.4 5.5 5.4v.8l.7.3c1.8.7 2.9 2.4 2.9 4.4 0 2.6-2 4.7-4.5 4.7H5.6c-2.5-.1-4.5-2.2-4.5-4.7 0-2.6 2.1-4.8 4.7-4.8.3 0 .6 0 .9.1l1.3.2.1-1.3c.3-2.9 2.6-5.1 5.5-5.1zm0-1.2c-3.5 0-6.4 2.7-6.7 6.2-.3-.1-.7-.1-1-.1C2.6 6.1 0 8.7 0 12c0 3.2 2.5 5.8 5.6 5.9h12.7c3.2 0 5.7-2.6 5.7-5.9 0-2.5-1.5-4.6-3.7-5.5-.1-3.6-3.1-6.5-6.7-6.5z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/code.ts b/packages/hiccup-carbon-icons/src/code.ts index f62c82fd44..e0d95ff34b 100644 --- a/packages/hiccup-carbon-icons/src/code.ts +++ b/packages/hiccup-carbon-icons/src/code.ts @@ -1,4 +1,15 @@ -export const CODE = - ["svg", { viewBox: "0 0 16 10" }, - ["g", { "fill-rule": "nonzero" }, - ["path", { d: "M1.363 5.098l2.928 3.16-.733.68L0 5.098l3.558-3.84.733.68zM14.637 5.098l-2.928-3.16.733-.68L16 5.098l-3.558 3.84-.733-.68zM6.466 10l-.927-.388L9.56 0l.927.388z" }]]]; +export const CODE = [ + "svg", + { viewBox: "0 0 16 10" }, + [ + "g", + { "fill-rule": "nonzero" }, + [ + "path", + { + d: + "M1.363 5.098l2.928 3.16-.733.68L0 5.098l3.558-3.84.733.68zM14.637 5.098l-2.928-3.16.733-.68L16 5.098l-3.558 3.84-.733-.68zM6.466 10l-.927-.388L9.56 0l.927.388z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/console.ts b/packages/hiccup-carbon-icons/src/console.ts index e95ca9c7c4..f3d93f8066 100644 --- a/packages/hiccup-carbon-icons/src/console.ts +++ b/packages/hiccup-carbon-icons/src/console.ts @@ -1,7 +1,14 @@ -export const CONSOLE = - ["svg", +export const CONSOLE = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 24", + d: + "M0 0v24h24V0H0zm1 23V7h8v16H1zm22 0H10v-8h13v8zm0-9H10V7h13v7zM1 6V1h22v5H1z", }, - ["path", { d: "M0 0v24h24V0H0zm1 23V7h8v16H1zm22 0H10v-8h13v8zm0-9H10V7h13v7zM1 6V1h22v5H1z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/containers.ts b/packages/hiccup-carbon-icons/src/containers.ts index 012efabc75..618c3be50e 100644 --- a/packages/hiccup-carbon-icons/src/containers.ts +++ b/packages/hiccup-carbon-icons/src/containers.ts @@ -1,3 +1,11 @@ -export const CONTAINERS = - ["svg", { viewBox: "0 0 24 24" }, - ["path", { d: "M21.7 5.8L13.5.4c-.9-.6-2.2-.6-3.1 0L2.2 5.9c-.4.3-.7.6-.9 1.1 0 0-.3.6-.3 1.3v7.6c0 .9.5 1.7 1.3 2.2l8.2 5.4c.5.3 1 .5 1.5.5s1.1-.2 1.6-.5l8.2-5.4c.8-.5 1.2-1.3 1.2-2.2V8.3c0-.3.1-1.5-1.3-2.5zm-18.9.9L11 1.3c.6-.4 1.4-.4 1.9 0l8.2 5.4c.3.2.6.5.7.9L16 11.2l-.4.3L13 9.6c-.6-.4-1.3-.4-1.9 0l-2.6 1.7-6.3-3.8c.1-.3.3-.6.6-.8zm11.9 5.4l-2.3 1.5c-.2.1-.5.1-.7 0L9.4 12l2.3-1.5c.2-.1.5-.1.7 0l2.3 1.6zm7.3 3.8c0 .6-.3 1.1-.8 1.4L13 22.7c-.6.4-1.4.4-1.9 0l-8.3-5.4C2.3 17 2 16.5 2 16V8.6l6.2 3.8 2.9 2c.6.4 1.3.4 1.9 0l2.9-1.9L22 8.6v7.3z" }]]; +export const CONTAINERS = [ + "svg", + { viewBox: "0 0 24 24" }, + [ + "path", + { + d: + "M21.7 5.8L13.5.4c-.9-.6-2.2-.6-3.1 0L2.2 5.9c-.4.3-.7.6-.9 1.1 0 0-.3.6-.3 1.3v7.6c0 .9.5 1.7 1.3 2.2l8.2 5.4c.5.3 1 .5 1.5.5s1.1-.2 1.6-.5l8.2-5.4c.8-.5 1.2-1.3 1.2-2.2V8.3c0-.3.1-1.5-1.3-2.5zm-18.9.9L11 1.3c.6-.4 1.4-.4 1.9 0l8.2 5.4c.3.2.6.5.7.9L16 11.2l-.4.3L13 9.6c-.6-.4-1.3-.4-1.9 0l-2.6 1.7-6.3-3.8c.1-.3.3-.6.6-.8zm11.9 5.4l-2.3 1.5c-.2.1-.5.1-.7 0L9.4 12l2.3-1.5c.2-.1.5-.1.7 0l2.3 1.6zm7.3 3.8c0 .6-.3 1.1-.8 1.4L13 22.7c-.6.4-1.4.4-1.9 0l-8.3-5.4C2.3 17 2 16.5 2 16V8.6l6.2 3.8 2.9 2c.6.4 1.3.4 1.9 0l2.9-1.9L22 8.6v7.3z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/copy.ts b/packages/hiccup-carbon-icons/src/copy.ts index 9ac2997fec..77ed514f9a 100644 --- a/packages/hiccup-carbon-icons/src/copy.ts +++ b/packages/hiccup-carbon-icons/src/copy.ts @@ -1,4 +1,12 @@ -export const COPY = - ["svg", { viewBox: "0 0 16 16" }, - ["path", { d: "M1 10H0V2C0 .9.9 0 2 0h8v1H2c-.6 0-1 .5-1 1v8z" }], - ["path", { d: "M11 4.2V8h3.8L11 4.2zM15 9h-4c-.6 0-1-.4-1-1V4H4.5c-.3 0-.5.2-.5.5v10c0 .3.2.5.5.5h10c.3 0 .5-.2.5-.5V9zm-4-6c.1 0 .3.1.4.1l4.5 4.5c0 .1.1.3.1.4v6.5c0 .8-.7 1.5-1.5 1.5h-10c-.8 0-1.5-.7-1.5-1.5v-10C3 3.7 3.7 3 4.5 3H11z" }]]; +export const COPY = [ + "svg", + { viewBox: "0 0 16 16" }, + ["path", { d: "M1 10H0V2C0 .9.9 0 2 0h8v1H2c-.6 0-1 .5-1 1v8z" }], + [ + "path", + { + d: + "M11 4.2V8h3.8L11 4.2zM15 9h-4c-.6 0-1-.4-1-1V4H4.5c-.3 0-.5.2-.5.5v10c0 .3.2.5.5.5h10c.3 0 .5-.2.5-.5V9zm-4-6c.1 0 .3.1.4.1l4.5 4.5c0 .1.1.3.1.4v6.5c0 .8-.7 1.5-1.5 1.5h-10c-.8 0-1.5-.7-1.5-1.5v-10C3 3.7 3.7 3 4.5 3H11z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/crash.ts b/packages/hiccup-carbon-icons/src/crash.ts index babd892ba8..81c9a49fbf 100644 --- a/packages/hiccup-carbon-icons/src/crash.ts +++ b/packages/hiccup-carbon-icons/src/crash.ts @@ -1,7 +1,12 @@ -export const CRASH = - ["svg", { viewBox: "0 0 24 17" }, - ["path", - { - "fill-rule": "evenodd", - d: "M21 10l3 3-3 3v-2.5h-2.153A.986.986 0 0 1 18 14c-.086 0-.164-.028-.244-.05l-1.805 1.806c.022.08.05.158.05.244a1 1 0 1 1-2 0c0-.18.06-.342.145-.488L10.995 10a.988.988 0 0 1-.953-.792l-1.39-.464C8.475 8.898 8.25 9 8 9s-.476-.102-.65-.256l-1.392.464A.985.985 0 0 1 5 10a1 1 0 0 1-1-1c0-.038.018-.07.022-.108L1.392 6.92A1 1 0 1 1 2 6c0 .038-.018.07-.022.108l2.63 1.972a.978.978 0 0 1 1.042.176l1.392-.464A.985.985 0 0 1 8 7c.48 0 .86.343.958.792l1.39.464c.16-.14.36-.228.586-.242l3.24-6.482A.989.989 0 0 1 14 1a1 1 0 1 1 2 0c0 .14-.03.27-.08.393l1.97 2.627c.037-.002.07-.02.108-.02.366 0 .673.207.847.5H21V2l3 3-3 3V5.5h-2.153A.986.986 0 0 1 18 6a1 1 0 0 1-.92-1.393L15.108 1.98c-.014 0-.028.006-.043.006l-3.24 6.482c.1.156.175.332.175.532 0 .18-.06.342-.146.488L15.004 15c.086.002.16.03.24.05l1.805-1.806c-.022-.08-.05-.158-.05-.244a1 1 0 0 1 1-1c.366 0 .673.207.847.5H21V10z", - }]]; +export const CRASH = [ + "svg", + { viewBox: "0 0 24 17" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M21 10l3 3-3 3v-2.5h-2.153A.986.986 0 0 1 18 14c-.086 0-.164-.028-.244-.05l-1.805 1.806c.022.08.05.158.05.244a1 1 0 1 1-2 0c0-.18.06-.342.145-.488L10.995 10a.988.988 0 0 1-.953-.792l-1.39-.464C8.475 8.898 8.25 9 8 9s-.476-.102-.65-.256l-1.392.464A.985.985 0 0 1 5 10a1 1 0 0 1-1-1c0-.038.018-.07.022-.108L1.392 6.92A1 1 0 1 1 2 6c0 .038-.018.07-.022.108l2.63 1.972a.978.978 0 0 1 1.042.176l1.392-.464A.985.985 0 0 1 8 7c.48 0 .86.343.958.792l1.39.464c.16-.14.36-.228.586-.242l3.24-6.482A.989.989 0 0 1 14 1a1 1 0 1 1 2 0c0 .14-.03.27-.08.393l1.97 2.627c.037-.002.07-.02.108-.02.366 0 .673.207.847.5H21V2l3 3-3 3V5.5h-2.153A.986.986 0 0 1 18 6a1 1 0 0 1-.92-1.393L15.108 1.98c-.014 0-.028.006-.043.006l-3.24 6.482c.1.156.175.332.175.532 0 .18-.06.342-.146.488L15.004 15c.086.002.16.03.24.05l1.805-1.806c-.022-.08-.05-.158-.05-.244a1 1 0 0 1 1-1c.366 0 .673.207.847.5H21V10z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/dashboard.ts b/packages/hiccup-carbon-icons/src/dashboard.ts index 72f05d3473..7dc1096867 100644 --- a/packages/hiccup-carbon-icons/src/dashboard.ts +++ b/packages/hiccup-carbon-icons/src/dashboard.ts @@ -1,7 +1,14 @@ -export const DASHBOARD = - ["svg", +export const DASHBOARD = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 24", + d: + "M0 0v24h24V0H0zm1 23V7h8v16H1zm22 0H10v-8h13v8zm0-9H10V7h13v7zM1 6V1h22v5H1z", }, - ["path", { d: "M0 0v24h24V0H0zm1 23V7h8v16H1zm22 0H10v-8h13v8zm0-9H10V7h13v7zM1 6V1h22v5H1z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/data.ts b/packages/hiccup-carbon-icons/src/data.ts index 8092a5e049..0e48faea2b 100644 --- a/packages/hiccup-carbon-icons/src/data.ts +++ b/packages/hiccup-carbon-icons/src/data.ts @@ -1,7 +1,14 @@ -export const DATA = - ["svg", +export const DATA = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 24", + d: + "M0 0v24h24V0H0zm22.1 7l-7.2 8.9-9.2-3.8c-.2-.1-.4 0-.6.1L1 16.6V7h21.1zm.9 16H1v-4.9l4.6-5 9.2 3.8c.2.1.4 0 .6-.1L23 7.5V23zm0-17H1V1h22v5z", }, - ["path", { d: "M0 0v24h24V0H0zm22.1 7l-7.2 8.9-9.2-3.8c-.2-.1-.4 0-.6.1L1 16.6V7h21.1zm.9 16H1v-4.9l4.6-5 9.2 3.8c.2.1.4 0 .6-.1L23 7.5V23zm0-17H1V1h22v5z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/delete.ts b/packages/hiccup-carbon-icons/src/delete.ts index 6257420a6a..f3be7dd8f8 100644 --- a/packages/hiccup-carbon-icons/src/delete.ts +++ b/packages/hiccup-carbon-icons/src/delete.ts @@ -1,4 +1,12 @@ -export const DELETE = - ["svg", { viewBox: "0 0 12 16" }, - ["path", { d: "M11 4v11c0 .6-.4 1-1 1H2c-.6 0-1-.4-1-1V4H0V3h12v1h-1zM2 4v11h8V4H2z" }], - ["path", { d: "M4 6h1v7H4zM7 6h1v7H7zM3 1V0h6v1z" }]]; +export const DELETE = [ + "svg", + { viewBox: "0 0 12 16" }, + [ + "path", + { + d: + "M11 4v11c0 .6-.4 1-1 1H2c-.6 0-1-.4-1-1V4H0V3h12v1h-1zM2 4v11h8V4H2z", + }, + ], + ["path", { d: "M4 6h1v7H4zM7 6h1v7H7zM3 1V0h6v1z" }], +]; diff --git a/packages/hiccup-carbon-icons/src/devices.ts b/packages/hiccup-carbon-icons/src/devices.ts index 080e31339e..21b0f4aac3 100644 --- a/packages/hiccup-carbon-icons/src/devices.ts +++ b/packages/hiccup-carbon-icons/src/devices.ts @@ -1,10 +1,35 @@ -export const DEVICES = - ["svg", +export const DEVICES = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 23", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 23", + d: + "M20.5 17c1.4 0 2.5 1.1 2.5 2.5S21.9 22 20.5 22h-17C2.1 22 1 20.9 1 19.5S2.1 17 3.5 17h17zm0-1h-17C1.6 16 0 17.6 0 19.5S1.6 23 3.5 23h17c1.9 0 3.5-1.6 3.5-3.5S22.4 16 20.5 16z", }, - ["path", { d: "M20.5 17c1.4 0 2.5 1.1 2.5 2.5S21.9 22 20.5 22h-17C2.1 22 1 20.9 1 19.5S2.1 17 3.5 17h17zm0-1h-17C1.6 16 0 17.6 0 19.5S1.6 23 3.5 23h17c1.9 0 3.5-1.6 3.5-3.5S22.4 16 20.5 16z" }], - ["path", { d: "M19.5 20h-15c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h15c.3 0 .5.2.5.5s-.2.5-.5.5zM20.5 9c1.4 0 2.5 1.1 2.5 2.5S21.9 14 20.5 14h-17C2.1 14 1 12.9 1 11.5S2.1 9 3.5 9h17zm0-1h-17C1.6 8 0 9.6 0 11.5S1.6 15 3.5 15h17c1.9 0 3.5-1.6 3.5-3.5S22.4 8 20.5 8z" }], - ["path", { d: "M19.5 12h-15c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h15c.3 0 .5.2.5.5s-.2.5-.5.5zM20.5 1C21.9 1 23 2.1 23 3.5S21.9 6 20.5 6h-17C2.1 6 1 4.9 1 3.5S2.1 1 3.5 1h17zm0-1h-17C1.6 0 0 1.6 0 3.5S1.6 7 3.5 7h17C22.4 7 24 5.4 24 3.5S22.4 0 20.5 0z" }], - ["path", { d: "M19.5 4h-15c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h15c.3 0 .5.2.5.5s-.2.5-.5.5z" }]]; + ], + [ + "path", + { + d: + "M19.5 20h-15c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h15c.3 0 .5.2.5.5s-.2.5-.5.5zM20.5 9c1.4 0 2.5 1.1 2.5 2.5S21.9 14 20.5 14h-17C2.1 14 1 12.9 1 11.5S2.1 9 3.5 9h17zm0-1h-17C1.6 8 0 9.6 0 11.5S1.6 15 3.5 15h17c1.9 0 3.5-1.6 3.5-3.5S22.4 8 20.5 8z", + }, + ], + [ + "path", + { + d: + "M19.5 12h-15c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h15c.3 0 .5.2.5.5s-.2.5-.5.5zM20.5 1C21.9 1 23 2.1 23 3.5S21.9 6 20.5 6h-17C2.1 6 1 4.9 1 3.5S2.1 1 3.5 1h17zm0-1h-17C1.6 0 0 1.6 0 3.5S1.6 7 3.5 7h17C22.4 7 24 5.4 24 3.5S22.4 0 20.5 0z", + }, + ], + [ + "path", + { + d: + "M19.5 4h-15c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h15c.3 0 .5.2.5.5s-.2.5-.5.5z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/devops.ts b/packages/hiccup-carbon-icons/src/devops.ts index 7eed2683f2..c9a8b26795 100644 --- a/packages/hiccup-carbon-icons/src/devops.ts +++ b/packages/hiccup-carbon-icons/src/devops.ts @@ -1,7 +1,14 @@ -export const DEVOPS = - ["svg", +export const DEVOPS = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 24", + d: + "M21 13V3h-3v1h2v9h-3v11h7V13h-3zm2 10h-5v-9h5v9zM17 3.5L11 0v3H3v13h1V4h7v3l6-3.5zm-5-1.8l3 1.8-3 1.8V1.7zM16 20H6.4c-.3-1.4-1.6-2.5-3.2-2.5C1.4 17.5 0 19 0 20.7 0 22.5 1.5 24 3.2 24c1.7 0 3.1-1.3 3.2-3h9.5l.1-1zM3.2 23C2 23 1 22 1 20.7c0-1.2 1-2.2 2.2-2.2 1.2 0 2.2 1 2.2 2.2.1 1.3-.9 2.3-2.2 2.3z", }, - ["path", { d: "M21 13V3h-3v1h2v9h-3v11h7V13h-3zm2 10h-5v-9h5v9zM17 3.5L11 0v3H3v13h1V4h7v3l6-3.5zm-5-1.8l3 1.8-3 1.8V1.7zM16 20H6.4c-.3-1.4-1.6-2.5-3.2-2.5C1.4 17.5 0 19 0 20.7 0 22.5 1.5 24 3.2 24c1.7 0 3.1-1.3 3.2-3h9.5l.1-1zM3.2 23C2 23 1 22 1 20.7c0-1.2 1-2.2 2.2-2.2 1.2 0 2.2 1 2.2 2.2.1 1.3-.9 2.3-2.2 2.3z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/document.ts b/packages/hiccup-carbon-icons/src/document.ts index bca9917ca8..3cb3253a47 100644 --- a/packages/hiccup-carbon-icons/src/document.ts +++ b/packages/hiccup-carbon-icons/src/document.ts @@ -1,9 +1,17 @@ -export const DOCUMENT = - ["svg", { viewBox: "0 0 12 16" }, - ["g", { "fill-rule": "evenodd" }, - ["path", - { - "fill-rule": "nonzero", - d: "M10.581 3.996L8.014 1.429l.026 2.559 2.541.008zM7.011 1H1v14h10V4.997l-2.963-.01a1 1 0 0 1-.997-.99L7.01 1zM1 0h7l4 4v11a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1z", - }], - ["path", { d: "M3 9h6v1H3zM3 12h6v1H3z" }]]]; +export const DOCUMENT = [ + "svg", + { viewBox: "0 0 12 16" }, + [ + "g", + { "fill-rule": "evenodd" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M10.581 3.996L8.014 1.429l.026 2.559 2.541.008zM7.011 1H1v14h10V4.997l-2.963-.01a1 1 0 0 1-.997-.99L7.01 1zM1 0h7l4 4v11a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1z", + }, + ], + ["path", { d: "M3 9h6v1H3zM3 12h6v1H3z" }], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/dollars.ts b/packages/hiccup-carbon-icons/src/dollars.ts index e46abe58c6..4fa39e42af 100644 --- a/packages/hiccup-carbon-icons/src/dollars.ts +++ b/packages/hiccup-carbon-icons/src/dollars.ts @@ -1,7 +1,12 @@ -export const DOLLARS = - ["svg", { viewBox: "0 0 24 24" }, - ["path", - { - "fill-rule": "evenodd", - d: "M22.462 10.59l-3.404-9.04-6.834 2.61a1.745 1.745 0 0 0-1.002 2.243c.19.506.226 1.03.155 1.53a3.34 3.34 0 0 1 3.746 2.11c.655 1.742-.214 3.69-1.942 4.35l.502 1.332c.134-1.106.843-2.104 1.945-2.526l6.835-2.61zm-8.617 6.6c-.012-.032-.014-.062-.025-.09-.275.07-.553.12-.834.12a3.314 3.314 0 0 1-3.098-2.156c-.647-1.72.216-3.652 1.923-4.306L11.1 8.86a3.057 3.057 0 0 1-1.658 1.533l-7.9 3.02 3.4 9.038 7.903-3.02a1.742 1.742 0 0 0 1.002-2.24zm10.096-5.93a.673.673 0 0 1-.374.354l-7.46 2.852a1.712 1.712 0 0 0-.965.912 1.742 1.742 0 0 0-.038 1.33c.6 1.595-.2 3.383-1.783 3.988l-8.53 3.26a.658.658 0 0 1-.514-.016.672.672 0 0 1-.353-.376L.043 13.26a.682.682 0 0 1 .39-.874l8.53-3.26a1.744 1.744 0 0 0 1.003-2.24c-.6-1.597.2-3.385 1.782-3.99l7.46-2.852a.672.672 0 0 1 .868.393l3.88 10.303a.684.684 0 0 1-.015.52zM18.19 9.635a1.515 1.515 0 0 0 1.958.888 1.534 1.534 0 0 0 .88-1.973 1.515 1.515 0 0 0-1.958-.886 1.533 1.533 0 0 0-.88 1.972zm.178-3.838a.678.678 0 0 0 .39-.873l-.72-1.912a.675.675 0 0 0-.868-.393.682.682 0 0 0-.39.874l.72 1.91a.68.68 0 0 0 .63.438.69.69 0 0 0 .238-.044zM6.06 14.123a1.516 1.516 0 0 0-1.958-.888 1.53 1.53 0 0 0-.88 1.972 1.513 1.513 0 0 0 1.956.888 1.53 1.53 0 0 0 .88-1.972zm.912 5.995a.678.678 0 0 1-.628.918.674.674 0 0 1-.628-.436l-.72-1.912a.68.68 0 0 1 .39-.874.675.675 0 0 1 .866.392l.72 1.912z", - }]]; +export const DOLLARS = [ + "svg", + { viewBox: "0 0 24 24" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M22.462 10.59l-3.404-9.04-6.834 2.61a1.745 1.745 0 0 0-1.002 2.243c.19.506.226 1.03.155 1.53a3.34 3.34 0 0 1 3.746 2.11c.655 1.742-.214 3.69-1.942 4.35l.502 1.332c.134-1.106.843-2.104 1.945-2.526l6.835-2.61zm-8.617 6.6c-.012-.032-.014-.062-.025-.09-.275.07-.553.12-.834.12a3.314 3.314 0 0 1-3.098-2.156c-.647-1.72.216-3.652 1.923-4.306L11.1 8.86a3.057 3.057 0 0 1-1.658 1.533l-7.9 3.02 3.4 9.038 7.903-3.02a1.742 1.742 0 0 0 1.002-2.24zm10.096-5.93a.673.673 0 0 1-.374.354l-7.46 2.852a1.712 1.712 0 0 0-.965.912 1.742 1.742 0 0 0-.038 1.33c.6 1.595-.2 3.383-1.783 3.988l-8.53 3.26a.658.658 0 0 1-.514-.016.672.672 0 0 1-.353-.376L.043 13.26a.682.682 0 0 1 .39-.874l8.53-3.26a1.744 1.744 0 0 0 1.003-2.24c-.6-1.597.2-3.385 1.782-3.99l7.46-2.852a.672.672 0 0 1 .868.393l3.88 10.303a.684.684 0 0 1-.015.52zM18.19 9.635a1.515 1.515 0 0 0 1.958.888 1.534 1.534 0 0 0 .88-1.973 1.515 1.515 0 0 0-1.958-.886 1.533 1.533 0 0 0-.88 1.972zm.178-3.838a.678.678 0 0 0 .39-.873l-.72-1.912a.675.675 0 0 0-.868-.393.682.682 0 0 0-.39.874l.72 1.91a.68.68 0 0 0 .63.438.69.69 0 0 0 .238-.044zM6.06 14.123a1.516 1.516 0 0 0-1.958-.888 1.53 1.53 0 0 0-.88 1.972 1.513 1.513 0 0 0 1.956.888 1.53 1.53 0 0 0 .88-1.972zm.912 5.995a.678.678 0 0 1-.628.918.674.674 0 0 1-.628-.436l-.72-1.912a.68.68 0 0 1 .39-.874.675.675 0 0 1 .866.392l.72 1.912z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/download.ts b/packages/hiccup-carbon-icons/src/download.ts index 1579326c87..314a5c50af 100644 --- a/packages/hiccup-carbon-icons/src/download.ts +++ b/packages/hiccup-carbon-icons/src/download.ts @@ -1,3 +1,11 @@ -export const DOWNLOAD = - ["svg", { viewBox: "0 0 14 16" }, - ["path", { d: "M7.5 11l4.1-4.4.7.7L7 13 1.6 7.3l.7-.7L6.5 11V0h1v11zM13 15v-2h1v2c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1v-2h1v2h12z" }]]; +export const DOWNLOAD = [ + "svg", + { viewBox: "0 0 14 16" }, + [ + "path", + { + d: + "M7.5 11l4.1-4.4.7.7L7 13 1.6 7.3l.7-.7L6.5 11V0h1v11zM13 15v-2h1v2c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1v-2h1v2h12z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/draggable.ts b/packages/hiccup-carbon-icons/src/draggable.ts index 22ad8bc36e..f61d055199 100644 --- a/packages/hiccup-carbon-icons/src/draggable.ts +++ b/packages/hiccup-carbon-icons/src/draggable.ts @@ -1,4 +1,15 @@ -export const DRAGGABLE = - ["svg", { viewBox: "0 0 6 14" }, - ["g", { "fill-rule": "evenodd" }, - ["path", { d: "M0 0h2v2H0zM4 0h2v2H4zM0 6h2v2H0zM4 6h2v2H4zM0 12h2v2H0zM4 12h2v2H4z" }]]]; +export const DRAGGABLE = [ + "svg", + { viewBox: "0 0 6 14" }, + [ + "g", + { "fill-rule": "evenodd" }, + [ + "path", + { + d: + "M0 0h2v2H0zM4 0h2v2H4zM0 6h2v2H0zM4 6h2v2H4zM0 12h2v2H0zM4 12h2v2H4z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/edit.ts b/packages/hiccup-carbon-icons/src/edit.ts index b89e0ec5cb..a138ef51ab 100644 --- a/packages/hiccup-carbon-icons/src/edit.ts +++ b/packages/hiccup-carbon-icons/src/edit.ts @@ -1,4 +1,15 @@ -export const EDIT = - ["svg", { viewBox: "0 0 16 16" }, - ["g", { "fill-rule": "nonzero" }, - ["path", { d: "M7.926 3.38L1.002 9.72V12h2.304l6.926-6.316L7.926 3.38zm.738-.675l2.308 2.304 1.451-1.324-2.308-2.309-1.451 1.329zM.002 9.28L9.439.639a1 1 0 0 1 1.383.03l2.309 2.309a1 1 0 0 1-.034 1.446L3.694 13H.002V9.28zM0 16.013v-1h16v1z" }]]]; +export const EDIT = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "g", + { "fill-rule": "nonzero" }, + [ + "path", + { + d: + "M7.926 3.38L1.002 9.72V12h2.304l6.926-6.316L7.926 3.38zm.738-.675l2.308 2.304 1.451-1.324-2.308-2.309-1.451 1.329zM.002 9.28L9.439.639a1 1 0 0 1 1.383.03l2.309 2.309a1 1 0 0 1-.034 1.446L3.694 13H.002V9.28zM0 16.013v-1h16v1z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/email.ts b/packages/hiccup-carbon-icons/src/email.ts index f141fee693..4dfa19ccad 100644 --- a/packages/hiccup-carbon-icons/src/email.ts +++ b/packages/hiccup-carbon-icons/src/email.ts @@ -1,7 +1,12 @@ -export const EMAIL = - ["svg", { viewBox: "0 0 16 11" }, - ["path", - { - "fill-rule": "nonzero", - d: "M2.028 1l5.977 4.38L13.974 1H2.028zM15 1.487L8.3 6.403a.5.5 0 0 1-.59 0L1 1.486V10h14V1.487zM1 0h14a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1z", - }]]; +export const EMAIL = [ + "svg", + { viewBox: "0 0 16 11" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M2.028 1l5.977 4.38L13.974 1H2.028zM15 1.487L8.3 6.403a.5.5 0 0 1-.59 0L1 1.486V10h14V1.487zM1 0h14a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/error-outline.ts b/packages/hiccup-carbon-icons/src/error-outline.ts index 5a5f760bab..4400d87d82 100644 --- a/packages/hiccup-carbon-icons/src/error-outline.ts +++ b/packages/hiccup-carbon-icons/src/error-outline.ts @@ -1,7 +1,12 @@ -export const ERROR_OUTLINE = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "nonzero", - d: "M2.751 4.165a6.5 6.5 0 0 0 9.084 9.084L2.75 4.165zm1.414-1.414l9.084 9.084A6.5 6.5 0 0 0 4.165 2.75zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16z", - }]]; +export const ERROR_OUTLINE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M2.751 4.165a6.5 6.5 0 0 0 9.084 9.084L2.75 4.165zm1.414-1.414l9.084 9.084A6.5 6.5 0 0 0 4.165 2.75zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/error-solid.ts b/packages/hiccup-carbon-icons/src/error-solid.ts index 196b61ae9a..4976a21963 100644 --- a/packages/hiccup-carbon-icons/src/error-solid.ts +++ b/packages/hiccup-carbon-icons/src/error-solid.ts @@ -1,7 +1,12 @@ -export const ERROR_SOLID = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "evenodd", - d: "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zM3.293 4.707l8 8 1.414-1.414-8-8-1.414 1.414z", - }]]; +export const ERROR_SOLID = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zM3.293 4.707l8 8 1.414-1.414-8-8-1.414 1.414z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/error.ts b/packages/hiccup-carbon-icons/src/error.ts index c3cc9dc041..dbd5e5b6fc 100644 --- a/packages/hiccup-carbon-icons/src/error.ts +++ b/packages/hiccup-carbon-icons/src/error.ts @@ -1,7 +1,12 @@ -export const ERROR = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "evenodd", - d: "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zM4 4.65L11.35 12l.65-.65L4.65 4 4 4.65z", - }]]; +export const ERROR = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zM4 4.65L11.35 12l.65-.65L4.65 4 4 4.65z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/favorite-outline.ts b/packages/hiccup-carbon-icons/src/favorite-outline.ts index c27ca57b0a..68dc4080b7 100644 --- a/packages/hiccup-carbon-icons/src/favorite-outline.ts +++ b/packages/hiccup-carbon-icons/src/favorite-outline.ts @@ -1,7 +1,14 @@ -export const FAVORITE_OUTLINE = - ["svg", +export const FAVORITE_OUTLINE = [ + "svg", + { + viewBox: "0 0 16 14", + "data-name": "Layer 1", + }, + [ + "path", { - viewBox: "0 0 16 14", - "data-name": "Layer 1", + d: + "M11.58 1a3.41 3.41 0 0 1 2.21 6L8 12.49 2.15 7a3.42 3.42 0 1 1 5-4.55L8 3.54l.81-1.12A3.43 3.43 0 0 1 11.58 1m0-1A4.39 4.39 0 0 0 8 1.84a4.41 4.41 0 1 0-6.51 5.88L8 13.87l6.46-6.08A4.42 4.42 0 0 0 11.58 0z", }, - ["path", { d: "M11.58 1a3.41 3.41 0 0 1 2.21 6L8 12.49 2.15 7a3.42 3.42 0 1 1 5-4.55L8 3.54l.81-1.12A3.43 3.43 0 0 1 11.58 1m0-1A4.39 4.39 0 0 0 8 1.84a4.41 4.41 0 1 0-6.51 5.88L8 13.87l6.46-6.08A4.42 4.42 0 0 0 11.58 0z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/favorite-solid.ts b/packages/hiccup-carbon-icons/src/favorite-solid.ts index 501c30741c..df8c761088 100644 --- a/packages/hiccup-carbon-icons/src/favorite-solid.ts +++ b/packages/hiccup-carbon-icons/src/favorite-solid.ts @@ -1,7 +1,14 @@ -export const FAVORITE_SOLID = - ["svg", +export const FAVORITE_SOLID = [ + "svg", + { + viewBox: "0 0 16 14", + "data-name": "Layer 1", + }, + [ + "path", { - viewBox: "0 0 16 14", - "data-name": "Layer 1", + d: + "M1.49 7.72A4.41 4.41 0 1 1 8 1.84a4.42 4.42 0 1 1 6.44 6L8 13.87z", }, - ["path", { d: "M1.49 7.72A4.41 4.41 0 1 1 8 1.84a4.42 4.42 0 1 1 6.44 6L8 13.87z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/favorite.ts b/packages/hiccup-carbon-icons/src/favorite.ts index ef0ae74711..b79de5f95b 100644 --- a/packages/hiccup-carbon-icons/src/favorite.ts +++ b/packages/hiccup-carbon-icons/src/favorite.ts @@ -1,7 +1,14 @@ -export const FAVORITE = - ["svg", +export const FAVORITE = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 16 15", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 16 15", + d: + "M8.109 11.75l-4.5 3.2c-.2.1-.5 0-.4-.3l1.5-5.1-4.6-3.2c-.2-.2-.1-.5.1-.5l5.5-.5 2-5.2c.1-.2.4-.2.5 0l2 5.2 5.5.5c.2 0 .3.3.1.4l-4.5 3.3 1.5 5.1c.1.2-.2.4-.4.3l-4.3-3.2z", }, - ["path", { d: "M8.109 11.75l-4.5 3.2c-.2.1-.5 0-.4-.3l1.5-5.1-4.6-3.2c-.2-.2-.1-.5.1-.5l5.5-.5 2-5.2c.1-.2.4-.2.5 0l2 5.2 5.5.5c.2 0 .3.3.1.4l-4.5 3.3 1.5 5.1c.1.2-.2.4-.4.3l-4.3-3.2z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/filter.ts b/packages/hiccup-carbon-icons/src/filter.ts index 133a1e4e26..6c511bf74a 100644 --- a/packages/hiccup-carbon-icons/src/filter.ts +++ b/packages/hiccup-carbon-icons/src/filter.ts @@ -1,4 +1,15 @@ -export const FILTER = - ["svg", { viewBox: "0 0 16 12" }, - ["g", { "fill-rule": "nonzero" }, - ["path", { d: "M8.05 2a2.5 2.5 0 0 1 4.9 0H16v1h-3.05a2.5 2.5 0 0 1-4.9 0H0V2h8.05zm2.45 2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM3.05 9a2.5 2.5 0 0 1 4.9 0H16v1H7.95a2.5 2.5 0 0 1-4.9 0H0V9h3.05zm2.45 2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z" }]]]; +export const FILTER = [ + "svg", + { viewBox: "0 0 16 12" }, + [ + "g", + { "fill-rule": "nonzero" }, + [ + "path", + { + d: + "M8.05 2a2.5 2.5 0 0 1 4.9 0H16v1h-3.05a2.5 2.5 0 0 1-4.9 0H0V2h8.05zm2.45 2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM3.05 9a2.5 2.5 0 0 1 4.9 0H16v1H7.95a2.5 2.5 0 0 1-4.9 0H0V9h3.05zm2.45 2a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/finance.ts b/packages/hiccup-carbon-icons/src/finance.ts index e7150ed116..0651ea81ef 100644 --- a/packages/hiccup-carbon-icons/src/finance.ts +++ b/packages/hiccup-carbon-icons/src/finance.ts @@ -1,3 +1,11 @@ -export const FINANCE = - ["svg", { viewBox: "4 -4 24 24" }, - ["path", { d: "M21 14h1V4h-1v10zm3 0h1V4h-1v10zM27 .7L16-2.9 5 .7V2h22V.7zm1-.7v3H4V0l12-4 12 4zM5 19h22v-3H5v3zm23-3v3c0 .6-.4 1-1 1H5c-.6 0-1-.4-1-1v-3c0-.6.4-1 1-1h22c.6 0 1 .4 1 1zm-18-2h1V4h-1v10zm-3 0h1V4H7v10z" }]]; +export const FINANCE = [ + "svg", + { viewBox: "4 -4 24 24" }, + [ + "path", + { + d: + "M21 14h1V4h-1v10zm3 0h1V4h-1v10zM27 .7L16-2.9 5 .7V2h22V.7zm1-.7v3H4V0l12-4 12 4zM5 19h22v-3H5v3zm23-3v3c0 .6-.4 1-1 1H5c-.6 0-1-.4-1-1v-3c0-.6.4-1 1-1h22c.6 0 1 .4 1 1zm-18-2h1V4h-1v10zm-3 0h1V4H7v10z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/financial.ts b/packages/hiccup-carbon-icons/src/financial.ts index d0f088bf8e..df3a7fb13a 100644 --- a/packages/hiccup-carbon-icons/src/financial.ts +++ b/packages/hiccup-carbon-icons/src/financial.ts @@ -1,3 +1,11 @@ -export const FINANCIAL = - ["svg", { viewBox: "4 -4 24 24" }, - ["path", { d: "M21 14h1V4h-1v10zm3 0h1V4h-1v10zM27 .7L16-2.9 5 .7V2h22V.7zm1-.7v3H4V0l12-4 12 4zM5 19h22v-3H5v3zm23-3v3c0 .6-.4 1-1 1H5c-.6 0-1-.4-1-1v-3c0-.6.4-1 1-1h22c.6 0 1 .4 1 1zm-18-2h1V4h-1v10zm-3 0h1V4H7v10z" }]]; +export const FINANCIAL = [ + "svg", + { viewBox: "4 -4 24 24" }, + [ + "path", + { + d: + "M21 14h1V4h-1v10zm3 0h1V4h-1v10zM27 .7L16-2.9 5 .7V2h22V.7zm1-.7v3H4V0l12-4 12 4zM5 19h22v-3H5v3zm23-3v3c0 .6-.4 1-1 1H5c-.6 0-1-.4-1-1v-3c0-.6.4-1 1-1h22c.6 0 1 .4 1 1zm-18-2h1V4h-1v10zm-3 0h1V4H7v10z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/folder-add.ts b/packages/hiccup-carbon-icons/src/folder-add.ts index 9902b00191..19d4bb95f4 100644 --- a/packages/hiccup-carbon-icons/src/folder-add.ts +++ b/packages/hiccup-carbon-icons/src/folder-add.ts @@ -1,7 +1,12 @@ -export const FOLDER_ADD = - ["svg", { viewBox: "0 0 14 12" }, - ["path", - { - "fill-rule": "nonzero", - d: "M13 12H1a1 1 0 0 1-1-1V1.001a1 1 0 0 1 1.002-1l2.293.005a1 1 0 0 1 .704.291L5.707 2H13a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1zm0-9H5.707A1 1 0 0 1 5 2.708L3.293 1.006 1 1V11h12V3z", - }]]; +export const FOLDER_ADD = [ + "svg", + { viewBox: "0 0 14 12" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M13 12H1a1 1 0 0 1-1-1V1.001a1 1 0 0 1 1.002-1l2.293.005a1 1 0 0 1 .704.291L5.707 2H13a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1zm0-9H5.707A1 1 0 0 1 5 2.708L3.293 1.006 1 1V11h12V3z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/folder.ts b/packages/hiccup-carbon-icons/src/folder.ts index bc96e9cefa..510650c069 100644 --- a/packages/hiccup-carbon-icons/src/folder.ts +++ b/packages/hiccup-carbon-icons/src/folder.ts @@ -1,7 +1,12 @@ -export const FOLDER = - ["svg", { viewBox: "0 0 14 12" }, - ["path", - { - "fill-rule": "nonzero", - d: "M13 12H1a1 1 0 0 1-1-1V1.001a1 1 0 0 1 1.002-1l2.293.005a1 1 0 0 1 .704.291L5.707 2H13a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1zm0-9H5.707A1 1 0 0 1 5 2.708L3.293 1.006 1 1V11h12V3z", - }]]; +export const FOLDER = [ + "svg", + { viewBox: "0 0 14 12" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M13 12H1a1 1 0 0 1-1-1V1.001a1 1 0 0 1 1.002-1l2.293.005a1 1 0 0 1 .704.291L5.707 2H13a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1zm0-9H5.707A1 1 0 0 1 5 2.708L3.293 1.006 1 1V11h12V3z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/forum.ts b/packages/hiccup-carbon-icons/src/forum.ts index 5ca40847fe..f6c467f1c0 100644 --- a/packages/hiccup-carbon-icons/src/forum.ts +++ b/packages/hiccup-carbon-icons/src/forum.ts @@ -1,4 +1,12 @@ -export const FORUM = - ["svg", { viewBox: "0 0 16 15" }, - ["path", { d: "M11.7 12l-3 3-.7-.7 3.3-3.3h3.2c.3 0 .5-.2.5-.5v-6c0-.3-.2-.5-.5-.5h-10c-.3 0-.5.2-.5.5v6c0 .3.2.5.5.5H8v1H4.5c-.8 0-1.5-.7-1.5-1.5v-6C3 3.7 3.7 3 4.5 3h10c.8 0 1.5.7 1.5 1.5v6c0 .8-.7 1.5-1.5 1.5h-2.8z" }], - ["path", { d: "M1 8H0V1.5C0 .7.7 0 1.5 0H8v1H1.5c-.3 0-.5.2-.5.5V8z" }]]; +export const FORUM = [ + "svg", + { viewBox: "0 0 16 15" }, + [ + "path", + { + d: + "M11.7 12l-3 3-.7-.7 3.3-3.3h3.2c.3 0 .5-.2.5-.5v-6c0-.3-.2-.5-.5-.5h-10c-.3 0-.5.2-.5.5v6c0 .3.2.5.5.5H8v1H4.5c-.8 0-1.5-.7-1.5-1.5v-6C3 3.7 3.7 3 4.5 3h10c.8 0 1.5.7 1.5 1.5v6c0 .8-.7 1.5-1.5 1.5h-2.8z", + }, + ], + ["path", { d: "M1 8H0V1.5C0 .7.7 0 1.5 0H8v1H1.5c-.3 0-.5.2-.5.5V8z" }], +]; diff --git a/packages/hiccup-carbon-icons/src/functions.ts b/packages/hiccup-carbon-icons/src/functions.ts index 8c319f3812..11b13cb1aa 100644 --- a/packages/hiccup-carbon-icons/src/functions.ts +++ b/packages/hiccup-carbon-icons/src/functions.ts @@ -1,4 +1,18 @@ -export const FUNCTIONS = - ["svg", { viewBox: "0 0 25 25" }, - ["path", { d: "M14.3 24c-.2 0-.5-.2-.5-.4 0-.3.1-.5.4-.6 2.2-.4 4.2-1.4 5.8-3 4.1-4.1 4.2-10.6.4-14.9-.2-.2-.2-.5 0-.7.2-.2.5-.2.7 0 4.2 4.7 4 11.8-.5 16.2-1.6 1.8-3.8 3-6.3 3.4zM3.9 20.4c-.1 0-.3-.1-.4-.2C-.7 15.5-.5 8.4 4 4 5.8 2.2 8 1.1 10.5.7c.3 0 .5.1.6.4 0 .3-.1.5-.4.6-2.3.4-4.3 1.4-5.9 3-4.2 4-4.4 10.6-.6 14.8.2.2.2.5 0 .7-.1.1-.2.2-.3.2z" }], - ["path", { d: "M6.7 24.2c-.6 0-.9-.1-1-.1-.4-.1-.9-.4-.8-1.2.1-.8.5-1 1-1 2.6 0 3-2.8 3-9.3L6.2 12c-.9-.2-.9-1-.9-1.3 0-.4 0-1.2.9-1.4l2.9-.6C9.6 6 10.6 4 12.2 2.6 14.3.8 16.7.5 17.9.5c.6 0 1 .1 1 .1.5.1.8.5.7 1.2 0 .3-.1 1-.9 1-2 0-2.8 1.6-3 6l2.3.5c.9.2.9 1 .9 1.4 0 .4 0 1.2-.9 1.4l-2.4.5c0 4.4-1.1 7.6-3.4 9.6-1.8 1.7-4.3 2-5.5 2zM6 23.1c.5 0 3.4.3 5.8-1.8 2.1-1.8 3.1-4.9 3.1-9v-.6L18 11c.1-.1.1-.3.1-.4v-.4l-3.2-.6v-.4c.1-3.7.5-7.3 3.8-7.4v-.2H18c-1.1 0-3.3.2-5.1 1.8-1.5 1.3-2.5 3.3-2.9 5.9v.2l-3.6.8c-.1 0-.1.3-.1.4v.4l3.5.7v.8c0 5.2 0 10.2-4 10.3v.1c.1.1.1.1.2.1-.1 0-.1 0 0 0z" }]]; +export const FUNCTIONS = [ + "svg", + { viewBox: "0 0 25 25" }, + [ + "path", + { + d: + "M14.3 24c-.2 0-.5-.2-.5-.4 0-.3.1-.5.4-.6 2.2-.4 4.2-1.4 5.8-3 4.1-4.1 4.2-10.6.4-14.9-.2-.2-.2-.5 0-.7.2-.2.5-.2.7 0 4.2 4.7 4 11.8-.5 16.2-1.6 1.8-3.8 3-6.3 3.4zM3.9 20.4c-.1 0-.3-.1-.4-.2C-.7 15.5-.5 8.4 4 4 5.8 2.2 8 1.1 10.5.7c.3 0 .5.1.6.4 0 .3-.1.5-.4.6-2.3.4-4.3 1.4-5.9 3-4.2 4-4.4 10.6-.6 14.8.2.2.2.5 0 .7-.1.1-.2.2-.3.2z", + }, + ], + [ + "path", + { + d: + "M6.7 24.2c-.6 0-.9-.1-1-.1-.4-.1-.9-.4-.8-1.2.1-.8.5-1 1-1 2.6 0 3-2.8 3-9.3L6.2 12c-.9-.2-.9-1-.9-1.3 0-.4 0-1.2.9-1.4l2.9-.6C9.6 6 10.6 4 12.2 2.6 14.3.8 16.7.5 17.9.5c.6 0 1 .1 1 .1.5.1.8.5.7 1.2 0 .3-.1 1-.9 1-2 0-2.8 1.6-3 6l2.3.5c.9.2.9 1 .9 1.4 0 .4 0 1.2-.9 1.4l-2.4.5c0 4.4-1.1 7.6-3.4 9.6-1.8 1.7-4.3 2-5.5 2zM6 23.1c.5 0 3.4.3 5.8-1.8 2.1-1.8 3.1-4.9 3.1-9v-.6L18 11c.1-.1.1-.3.1-.4v-.4l-3.2-.6v-.4c.1-3.7.5-7.3 3.8-7.4v-.2H18c-1.1 0-3.3.2-5.1 1.8-1.5 1.3-2.5 3.3-2.9 5.9v.2l-3.6.8c-.1 0-.1.3-.1.4v.4l3.5.7v.8c0 5.2 0 10.2-4 10.3v.1c.1.1.1.1.2.1-.1 0-.1 0 0 0z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/grid.ts b/packages/hiccup-carbon-icons/src/grid.ts index c22b0f9aa9..795eaa8e4e 100644 --- a/packages/hiccup-carbon-icons/src/grid.ts +++ b/packages/hiccup-carbon-icons/src/grid.ts @@ -1,4 +1,15 @@ -export const GRID = - ["svg", { viewBox: "0 0 15 15" }, - ["g", { "fill-rule": "nonzero" }, - ["path", { d: "M1 1v4h4V1H1zm0-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1zM1 10v4h4v-4H1zm0-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1zM10 1v4h4V1h-4zm0-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1zM10 14h4v-4h-4v4zm0-5h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z" }]]]; +export const GRID = [ + "svg", + { viewBox: "0 0 15 15" }, + [ + "g", + { "fill-rule": "nonzero" }, + [ + "path", + { + d: + "M1 1v4h4V1H1zm0-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1zM1 10v4h4v-4H1zm0-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1zM10 1v4h4V1h-4zm0-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1zM10 14h4v-4h-4v4zm0-5h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/header-avatar.ts b/packages/hiccup-carbon-icons/src/header-avatar.ts index a519e76499..be6a73c8d0 100644 --- a/packages/hiccup-carbon-icons/src/header-avatar.ts +++ b/packages/hiccup-carbon-icons/src/header-avatar.ts @@ -1,4 +1,18 @@ -export const HEADER_AVATAR = - ["svg", { viewBox: "0 0 20 20" }, - ["path", { d: "M6 15.745A6.968 6.968 0 0 0 10 17a6.968 6.968 0 0 0 4-1.255V15.5a2.5 2.5 0 0 0-2.5-2.5h-3A2.5 2.5 0 0 0 6 15.5v.245zm-.956-.802A3.5 3.5 0 0 1 8.5 12h3a3.5 3.5 0 0 1 3.456 2.943 7 7 0 1 0-9.912 0zM10 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16z" }], - ["path", { d: "M10 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 1a3 3 0 1 1 0-6 3 3 0 0 1 0 6z" }]]; +export const HEADER_AVATAR = [ + "svg", + { viewBox: "0 0 20 20" }, + [ + "path", + { + d: + "M6 15.745A6.968 6.968 0 0 0 10 17a6.968 6.968 0 0 0 4-1.255V15.5a2.5 2.5 0 0 0-2.5-2.5h-3A2.5 2.5 0 0 0 6 15.5v.245zm-.956-.802A3.5 3.5 0 0 1 8.5 12h3a3.5 3.5 0 0 1 3.456 2.943 7 7 0 1 0-9.912 0zM10 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16z", + }, + ], + [ + "path", + { + d: + "M10 10a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm0 1a3 3 0 1 1 0-6 3 3 0 0 1 0 6z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/header-chevron.ts b/packages/hiccup-carbon-icons/src/header-chevron.ts index bfb1248e33..28911c3f7e 100644 --- a/packages/hiccup-carbon-icons/src/header-chevron.ts +++ b/packages/hiccup-carbon-icons/src/header-chevron.ts @@ -1,7 +1,12 @@ -export const HEADER_CHEVRON = - ["svg", { viewBox: "0 0 20 20" }, - ["path", - { - d: "M6.542 4.945l.707-.707 6.004 6.004-6.004 6.02-.708-.707 5.298-5.312z", - "fill-rule": "nonzero", - }]]; +export const HEADER_CHEVRON = [ + "svg", + { viewBox: "0 0 20 20" }, + [ + "path", + { + d: + "M6.542 4.945l.707-.707 6.004 6.004-6.004 6.02-.708-.707 5.298-5.312z", + "fill-rule": "nonzero", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/header-close.ts b/packages/hiccup-carbon-icons/src/header-close.ts index 08b3cf1f40..020ea19a24 100644 --- a/packages/hiccup-carbon-icons/src/header-close.ts +++ b/packages/hiccup-carbon-icons/src/header-close.ts @@ -1,7 +1,12 @@ -export const HEADER_CLOSE = - ["svg", { viewBox: "0 0 20 20" }, - ["path", - { - "fill-rule": "nonzero", - d: "M10 9.293l4.146-4.147.708.708L10.707 10l4.147 4.146-.708.708L10 10.707l-4.146 4.147-.708-.708L9.293 10 5.146 5.854l.708-.708L10 9.293z", - }]]; +export const HEADER_CLOSE = [ + "svg", + { viewBox: "0 0 20 20" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M10 9.293l4.146-4.147.708.708L10.707 10l4.147 4.146-.708.708L10 10.707l-4.146 4.147-.708-.708L9.293 10 5.146 5.854l.708-.708L10 9.293z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/header-contact.ts b/packages/hiccup-carbon-icons/src/header-contact.ts index 5687d9ff97..27cd938138 100644 --- a/packages/hiccup-carbon-icons/src/header-contact.ts +++ b/packages/hiccup-carbon-icons/src/header-contact.ts @@ -1,7 +1,14 @@ -export const HEADER_CONTACT = - ["svg", +export const HEADER_CONTACT = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 12 12", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 12 12", + d: + "M10.563 1.4c-1-.9-2.2-1.4-3.5-1.4-1.3 0-2.5.5-3.4 1.4-.9.9-1.3 2-1.4 3.2-.5.1-1 .4-1.4.8-1.2 1.2-1.1 3 0 4.2.5.7 2.1 2.4 2.1 2.4v-1.5c.8 0 1.5-.3 2.1-.9.1-.1.1-.2.2-.2.5.2 1 .3 1.4.4V12l3.8-3.7c2-1.9 2-5 .1-6.9zm-1.1 5.9c-.6.6-1.5 1-2.4 1-.4 0-.8-.1-1.2-.2.2-.9-.1-1.9-.8-2.6-.4-.4-.8-.6-1.3-.8.1-.8.4-1.6 1-2.1.6-.6 1.5-1 2.4-1 .9 0 1.7.4 2.4 1 .6.6 1 1.5 1 2.4-.1.8-.5 1.6-1.1 2.3z", }, - ["path", { d: "M10.563 1.4c-1-.9-2.2-1.4-3.5-1.4-1.3 0-2.5.5-3.4 1.4-.9.9-1.3 2-1.4 3.2-.5.1-1 .4-1.4.8-1.2 1.2-1.1 3 0 4.2.5.7 2.1 2.4 2.1 2.4v-1.5c.8 0 1.5-.3 2.1-.9.1-.1.1-.2.2-.2.5.2 1 .3 1.4.4V12l3.8-3.7c2-1.9 2-5 .1-6.9zm-1.1 5.9c-.6.6-1.5 1-2.4 1-.4 0-.8-.1-1.2-.2.2-.9-.1-1.9-.8-2.6-.4-.4-.8-.6-1.3-.8.1-.8.4-1.6 1-2.1.6-.6 1.5-1 2.4-1 .9 0 1.7.4 2.4 1 .6.6 1 1.5 1 2.4-.1.8-.5 1.6-1.1 2.3z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/header-docs.ts b/packages/hiccup-carbon-icons/src/header-docs.ts index e6d89c616c..72f231c4bb 100644 --- a/packages/hiccup-carbon-icons/src/header-docs.ts +++ b/packages/hiccup-carbon-icons/src/header-docs.ts @@ -1,9 +1,17 @@ -export const HEADER_DOCS = - ["svg", { viewBox: "0 0 20 20" }, - ["g", { "fill-rule": "evenodd" }, - ["path", - { - "fill-rule": "nonzero", - d: "M5 2h7l4 4v11a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm6.586 1H5v14h10V6.414L11.586 3zm3.41 2.997L16 7l-3.963-.012a1 1 0 0 1-.997-.99L11 2l1.01 1.01.03 2.978 2.957.009zM16 7l-3.963-.012a1 1 0 0 1-.997-.99L11 2l1.01 1.01.03 2.978 2.957.009L16 7z", - }], - ["path", { d: "M7 11h6v1H7zM7 14h6v1H7z" }]]]; +export const HEADER_DOCS = [ + "svg", + { viewBox: "0 0 20 20" }, + [ + "g", + { "fill-rule": "evenodd" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M5 2h7l4 4v11a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm6.586 1H5v14h10V6.414L11.586 3zm3.41 2.997L16 7l-3.963-.012a1 1 0 0 1-.997-.99L11 2l1.01 1.01.03 2.978 2.957.009zM16 7l-3.963-.012a1 1 0 0 1-.997-.99L11 2l1.01 1.01.03 2.978 2.957.009L16 7z", + }, + ], + ["path", { d: "M7 11h6v1H7zM7 14h6v1H7z" }], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/header-hamburger.ts b/packages/hiccup-carbon-icons/src/header-hamburger.ts index 5f1d28ee18..847aeac19d 100644 --- a/packages/hiccup-carbon-icons/src/header-hamburger.ts +++ b/packages/hiccup-carbon-icons/src/header-hamburger.ts @@ -1,4 +1,9 @@ -export const HEADER_HAMBURGER = - ["svg", { viewBox: "0 0 20 20" }, - ["g", { "fill-rule": "evenodd" }, - ["path", { d: "M3 4h14v1H3zM3 10h14v1H3zM3 16h14v1H3z" }]]]; +export const HEADER_HAMBURGER = [ + "svg", + { viewBox: "0 0 20 20" }, + [ + "g", + { "fill-rule": "evenodd" }, + ["path", { d: "M3 4h14v1H3zM3 10h14v1H3zM3 16h14v1H3z" }], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/header-help.ts b/packages/hiccup-carbon-icons/src/header-help.ts index 53dcdd5c9d..a407d64299 100644 --- a/packages/hiccup-carbon-icons/src/header-help.ts +++ b/packages/hiccup-carbon-icons/src/header-help.ts @@ -1,15 +1,31 @@ -export const HEADER_HELP = - ["svg", { viewBox: "0 0 20 20" }, - ["g", { "fill-rule": "evenodd" }, - ["path", - { - "fill-rule": "nonzero", - d: "M10 17a7 7 0 1 0 0-14 7 7 0 0 0 0 14zm0 1a8 8 0 1 1 0-16 8 8 0 0 1 0 16z", - }], - ["circle", - { - r: 1, - cy: 14, - cx: 10, - }], - ["path", { d: "M10.5 10.5V12h-1V9.5h1a1.5 1.5 0 0 0 0-3h-1A1.5 1.5 0 0 0 8 8H7a2.5 2.5 0 0 1 2.5-2.5h1a2.5 2.5 0 1 1 0 5z" }]]]; +export const HEADER_HELP = [ + "svg", + { viewBox: "0 0 20 20" }, + [ + "g", + { "fill-rule": "evenodd" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M10 17a7 7 0 1 0 0-14 7 7 0 0 0 0 14zm0 1a8 8 0 1 1 0-16 8 8 0 0 1 0 16z", + }, + ], + [ + "circle", + { + r: 1, + cy: 14, + cx: 10, + }, + ], + [ + "path", + { + d: + "M10.5 10.5V12h-1V9.5h1a1.5 1.5 0 0 0 0-3h-1A1.5 1.5 0 0 0 8 8H7a2.5 2.5 0 0 1 2.5-2.5h1a2.5 2.5 0 1 1 0 5z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/header-notification.ts b/packages/hiccup-carbon-icons/src/header-notification.ts index fe7f2ff587..c1c1143324 100644 --- a/packages/hiccup-carbon-icons/src/header-notification.ts +++ b/packages/hiccup-carbon-icons/src/header-notification.ts @@ -1,7 +1,12 @@ -export const HEADER_NOTIFICATION = - ["svg", { viewBox: "0 0 20 20" }, - ["path", - { - "fill-rule": "nonzero", - d: "M7.17 17H2.5a.5.5 0 0 1-.5-.5v-2a.5.5 0 0 1 .146-.354L4 12.293V9a6 6 0 0 1 5.5-5.98V1h1v2.02A6 6 0 0 1 16 9v3.293l1.854 1.853A.5.5 0 0 1 18 14.5v2a.5.5 0 0 1-.5.5h-4.67a3.001 3.001 0 0 1-5.66 0zm1.098 0a2 2 0 0 0 3.464 0H8.268zM13 16h4v-1.293l-1.854-1.853A.5.5 0 0 1 15 12.5V9A5 5 0 0 0 5 9v3.5a.5.5 0 0 1-.146.354L3 14.707V16h10z", - }]]; +export const HEADER_NOTIFICATION = [ + "svg", + { viewBox: "0 0 20 20" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M7.17 17H2.5a.5.5 0 0 1-.5-.5v-2a.5.5 0 0 1 .146-.354L4 12.293V9a6 6 0 0 1 5.5-5.98V1h1v2.02A6 6 0 0 1 16 9v3.293l1.854 1.853A.5.5 0 0 1 18 14.5v2a.5.5 0 0 1-.5.5h-4.67a3.001 3.001 0 0 1-5.66 0zm1.098 0a2 2 0 0 0 3.464 0H8.268zM13 16h4v-1.293l-1.854-1.853A.5.5 0 0 1 15 12.5V9A5 5 0 0 0 5 9v3.5a.5.5 0 0 1-.146.354L3 14.707V16h10z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/header-search.ts b/packages/hiccup-carbon-icons/src/header-search.ts index 319922aae3..1c7aa7bb2b 100644 --- a/packages/hiccup-carbon-icons/src/header-search.ts +++ b/packages/hiccup-carbon-icons/src/header-search.ts @@ -1,7 +1,12 @@ -export const HEADER_SEARCH = - ["svg", { viewBox: "0 0 20 20" }, - ["path", - { - "fill-rule": "nonzero", - d: "M8.5 14a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zm4.936-1.27l4.418 4.416-.708.708-4.417-4.418a6.5 6.5 0 1 1 .707-.707z", - }]]; +export const HEADER_SEARCH = [ + "svg", + { viewBox: "0 0 20 20" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M8.5 14a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zm4.936-1.27l4.418 4.416-.708.708-4.417-4.418a6.5 6.5 0 1 1 .707-.707z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/header-ticket.ts b/packages/hiccup-carbon-icons/src/header-ticket.ts index 2106b4bf19..6991c8c78f 100644 --- a/packages/hiccup-carbon-icons/src/header-ticket.ts +++ b/packages/hiccup-carbon-icons/src/header-ticket.ts @@ -1,7 +1,14 @@ -export const HEADER_TICKET = - ["svg", +export const HEADER_TICKET = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 14 14", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 14 14", + d: + "M5.5 3l3-3 1.4 1.4c-.8.8-.8 2 0 2.8.8.8 2 .8 2.8 0L14 5.6 5.6 14l-1.4-1.3c.8-.8.8-2 0-2.8-.8-.8-2-.8-2.8 0L0 8.5l5-5c0 .3.2.5.5.5s.5-.2.5-.5-.2-.5-.5-.5zm2 3c.3 0 .5-.2.5-.5S7.8 5 7.5 5s-.5.2-.5.5.2.5.5.5zm-1-1c.3 0 .5-.2.5-.5S6.8 4 6.5 4s-.5.2-.5.5.2.5.5.5zm2 2c.3 0 .5-.2.5-.5S8.8 6 8.5 6s-.5.2-.5.5.2.5.5.5zm1 1c.3 0 .5-.2.5-.5S9.8 7 9.5 7s-.5.2-.5.5.2.5.5.5zm1 1c.3 0 .5-.2.5-.5s-.2-.5-.5-.5-.5.2-.5.5.2.5.5.5z", }, - ["path", { d: "M5.5 3l3-3 1.4 1.4c-.8.8-.8 2 0 2.8.8.8 2 .8 2.8 0L14 5.6 5.6 14l-1.4-1.3c.8-.8.8-2 0-2.8-.8-.8-2-.8-2.8 0L0 8.5l5-5c0 .3.2.5.5.5s.5-.2.5-.5-.2-.5-.5-.5zm2 3c.3 0 .5-.2.5-.5S7.8 5 7.5 5s-.5.2-.5.5.2.5.5.5zm-1-1c.3 0 .5-.2.5-.5S6.8 4 6.5 4s-.5.2-.5.5.2.5.5.5zm2 2c.3 0 .5-.2.5-.5S8.8 6 8.5 6s-.5.2-.5.5.2.5.5.5zm1 1c.3 0 .5-.2.5-.5S9.8 7 9.5 7s-.5.2-.5.5.2.5.5.5zm1 1c.3 0 .5-.2.5-.5s-.2-.5-.5-.5-.5.2-.5.5.2.5.5.5z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/header-user.ts b/packages/hiccup-carbon-icons/src/header-user.ts index 5442d97d57..0e209b8659 100644 --- a/packages/hiccup-carbon-icons/src/header-user.ts +++ b/packages/hiccup-carbon-icons/src/header-user.ts @@ -1,4 +1,15 @@ -export const HEADER_USER = - ["svg", { viewBox: "0 0 20 20" }, - ["g", { "fill-rule": "nonzero" }, - ["path", { d: "M10 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 1a4 4 0 1 1 0-8 4 4 0 0 1 0 8zM5 18H4v-2.48a4.5 4.5 0 0 1 4.5-4.5l3.022.014a4.5 4.5 0 0 1 4.478 4.5V18h-1v-2.466a3.5 3.5 0 0 0-3.483-3.5l-3-.015A3.504 3.504 0 0 0 5 15.52V18z" }]]]; +export const HEADER_USER = [ + "svg", + { viewBox: "0 0 20 20" }, + [ + "g", + { "fill-rule": "nonzero" }, + [ + "path", + { + d: + "M10 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 1a4 4 0 1 1 0-8 4 4 0 0 1 0 8zM5 18H4v-2.48a4.5 4.5 0 0 1 4.5-4.5l3.022.014a4.5 4.5 0 0 1 4.478 4.5V18h-1v-2.466a3.5 3.5 0 0 0-3.483-3.5l-3-.015A3.504 3.504 0 0 0 5 15.52V18z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/help-outline.ts b/packages/hiccup-carbon-icons/src/help-outline.ts index 5398447ac7..9812c25b72 100644 --- a/packages/hiccup-carbon-icons/src/help-outline.ts +++ b/packages/hiccup-carbon-icons/src/help-outline.ts @@ -1,19 +1,32 @@ -export const HELP_OUTLINE = - ["svg", { viewBox: "0 0 16 16" }, - ["g", { "fill-rule": "evenodd" }, - ["path", - { - "fill-rule": "nonzero", - d: "M8 14.5a6.5 6.5 0 1 0 0-13 6.5 6.5 0 0 0 0 13zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16z", - }], - ["path", - { - "fill-rule": "nonzero", - d: "M8.75 9.364V10.5h-1.5V7.863h1.5A1.682 1.682 0 0 0 8.678 4.5h-.996C6.753 4.5 6 5.253 6 6.182H4.5A3.182 3.182 0 0 1 7.682 3h.996a3.182 3.182 0 0 1 .072 6.364z", - }], - ["circle", - { - r: 1, - cy: 13, - cx: 8, - }]]]; +export const HELP_OUTLINE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "g", + { "fill-rule": "evenodd" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M8 14.5a6.5 6.5 0 1 0 0-13 6.5 6.5 0 0 0 0 13zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16z", + }, + ], + [ + "path", + { + "fill-rule": "nonzero", + d: + "M8.75 9.364V10.5h-1.5V7.863h1.5A1.682 1.682 0 0 0 8.678 4.5h-.996C6.753 4.5 6 5.253 6 6.182H4.5A3.182 3.182 0 0 1 7.682 3h.996a3.182 3.182 0 0 1 .072 6.364z", + }, + ], + [ + "circle", + { + r: 1, + cy: 13, + cx: 8, + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/help-solid.ts b/packages/hiccup-carbon-icons/src/help-solid.ts index 37f4cf7e61..b7481d9e69 100644 --- a/packages/hiccup-carbon-icons/src/help-solid.ts +++ b/packages/hiccup-carbon-icons/src/help-solid.ts @@ -1,7 +1,12 @@ -export const HELP_SOLID = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "evenodd", - d: "M8.75 9.364A3.182 3.182 0 0 0 8.678 3h-.996A3.182 3.182 0 0 0 4.5 6.182H6C6 5.253 6.753 4.5 7.682 4.5h.996a1.682 1.682 0 0 1 .072 3.363h-1.5V10.5h1.5V9.364zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z", - }]]; +export const HELP_SOLID = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M8.75 9.364A3.182 3.182 0 0 0 8.678 3h-.996A3.182 3.182 0 0 0 4.5 6.182H6C6 5.253 6.753 4.5 7.682 4.5h.996a1.682 1.682 0 0 1 .072 3.363h-1.5V10.5h1.5V9.364zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zm0-2a1 1 0 1 0 0-2 1 1 0 0 0 0 2z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/help.ts b/packages/hiccup-carbon-icons/src/help.ts index 2b7b81ae00..d0173f6c4a 100644 --- a/packages/hiccup-carbon-icons/src/help.ts +++ b/packages/hiccup-carbon-icons/src/help.ts @@ -1,8 +1,21 @@ -export const HELP = - ["svg", +export const HELP = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 24", + d: + "M12 2c5.5 0 10 4.5 10 10s-4.5 10-10 10S2 17.5 2 12 6.5 2 12 2zm0-2C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.6 0 12 0z", }, - ["path", { d: "M12 2c5.5 0 10 4.5 10 10s-4.5 10-10 10S2 17.5 2 12 6.5 2 12 2zm0-2C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.6 0 12 0z" }], - ["path", { d: "M8.3 10c.2-2 1.5-3.5 3.7-3.5 2.8 0 3.7 1.8 3.7 2.9 0 2.9-2.5 2.5-2.7 4.3V15h-2v-1c.2-2.6 2.4-2.8 2.3-4.4 0-.9-.5-1.3-1.3-1.3-1 0-1.5.8-1.5 1.7H8.3zm2.7 6h2v2h-2v-2z" }]]; + ], + [ + "path", + { + d: + "M8.3 10c.2-2 1.5-3.5 3.7-3.5 2.8 0 3.7 1.8 3.7 2.9 0 2.9-2.5 2.5-2.7 4.3V15h-2v-1c.2-2.6 2.4-2.8 2.3-4.4 0-.9-.5-1.3-1.3-1.3-1 0-1.5.8-1.5 1.7H8.3zm2.7 6h2v2h-2v-2z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/hpa-stress.ts b/packages/hiccup-carbon-icons/src/hpa-stress.ts index 4a74523c98..0b6a865ee4 100644 --- a/packages/hiccup-carbon-icons/src/hpa-stress.ts +++ b/packages/hiccup-carbon-icons/src/hpa-stress.ts @@ -1,7 +1,12 @@ -export const HPA_STRESS = - ["svg", { viewBox: "0 0 24 22" }, - ["path", - { - "fill-rule": "evenodd", - d: "M18 20.975V16h4.975A5.5 5.5 0 0 1 18 20.975zm-4.02-9.7A5.499 5.499 0 0 1 22.975 15h-5.268l-3.726-3.725zM17 16v4.975a5.498 5.498 0 0 1-3.726-8.993L17 15.707V16zM6.9 17.973L10 11H7V5l-4 9h3v3.973H1.027V5H14v5.03a6.486 6.486 0 0 0-2.51 7.943H6.9zM15 5h5.973v5.012A6.462 6.462 0 0 0 17.5 9c-.887 0-1.73.18-2.5.5V5zm7 5.817V1a1 1 0 0 0-1-1H1a1 1 0 0 0-1 1v17a1 1 0 0 0 1 1h5v1l.444-1h5.584a6.498 6.498 0 0 0 6.618 2.902c2.63-.45 4.764-2.558 5.243-5.18a6.5 6.5 0 0 0-1.89-5.905z", - }]]; +export const HPA_STRESS = [ + "svg", + { viewBox: "0 0 24 22" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M18 20.975V16h4.975A5.5 5.5 0 0 1 18 20.975zm-4.02-9.7A5.499 5.499 0 0 1 22.975 15h-5.268l-3.726-3.725zM17 16v4.975a5.498 5.498 0 0 1-3.726-8.993L17 15.707V16zM6.9 17.973L10 11H7V5l-4 9h3v3.973H1.027V5H14v5.03a6.486 6.486 0 0 0-2.51 7.943H6.9zM15 5h5.973v5.012A6.462 6.462 0 0 0 17.5 9c-.887 0-1.73.18-2.5.5V5zm7 5.817V1a1 1 0 0 0-1-1H1a1 1 0 0 0-1 1v17a1 1 0 0 0 1 1h5v1l.444-1h5.584a6.498 6.498 0 0 0 6.618 2.902c2.63-.45 4.764-2.558 5.243-5.18a6.5 6.5 0 0 0-1.89-5.905z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/hpa.ts b/packages/hiccup-carbon-icons/src/hpa.ts index 4b73cf1cd1..1f67a3dec0 100644 --- a/packages/hiccup-carbon-icons/src/hpa.ts +++ b/packages/hiccup-carbon-icons/src/hpa.ts @@ -1,7 +1,12 @@ -export const HPA = - ["svg", { viewBox: "0 0 24 22" }, - ["path", - { - "fill-rule": "evenodd", - d: "M21.992 18.666l-.03.04a5.479 5.479 0 0 1-4 2.27V16.04L18 16h4.974c-.088.988-.44 1.9-.982 2.666zm-8.004-7.385c.015-.01.026-.027.04-.04.052-.04.11-.073.162-.112a5.458 5.458 0 0 1 3.31-1.128c1.293 0 2.467.463 3.405 1.21.138.11.277.217.403.34.11.104.206.22.307.336.113.13.23.254.33.392.566.78.94 1.71 1.03 2.722h-5.267l-3.72-3.72zM17 16v4.975a5.504 5.504 0 0 1-4.125-2.506c-.035-.058-.065-.117-.1-.175a5.463 5.463 0 0 1 .495-6.307l.005-.006L17 15.707V16zm-9 1.973V12h4.028a6.481 6.481 0 0 0-.538 5.973H8zM1.027 11H7V5H1.027v6zm0 6.973H7V12H1.027v5.973zM8 5h6v5.028c-.433.278-.83.603-1.184.972H8V5zm12.972 0v5.012A6.456 6.456 0 0 0 17.5 9a6.5 6.5 0 0 0-2.5.5V5h5.972zM22 10.816V1a1 1 0 0 0-1-1H1a1 1 0 0 0-1 1v17a1 1 0 0 0 1 1h11.028a6.494 6.494 0 0 0 6.618 2.9c2.63-.448 4.764-2.556 5.242-5.18A6.494 6.494 0 0 0 22 10.816z", - }]]; +export const HPA = [ + "svg", + { viewBox: "0 0 24 22" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M21.992 18.666l-.03.04a5.479 5.479 0 0 1-4 2.27V16.04L18 16h4.974c-.088.988-.44 1.9-.982 2.666zm-8.004-7.385c.015-.01.026-.027.04-.04.052-.04.11-.073.162-.112a5.458 5.458 0 0 1 3.31-1.128c1.293 0 2.467.463 3.405 1.21.138.11.277.217.403.34.11.104.206.22.307.336.113.13.23.254.33.392.566.78.94 1.71 1.03 2.722h-5.267l-3.72-3.72zM17 16v4.975a5.504 5.504 0 0 1-4.125-2.506c-.035-.058-.065-.117-.1-.175a5.463 5.463 0 0 1 .495-6.307l.005-.006L17 15.707V16zm-9 1.973V12h4.028a6.481 6.481 0 0 0-.538 5.973H8zM1.027 11H7V5H1.027v6zm0 6.973H7V12H1.027v5.973zM8 5h6v5.028c-.433.278-.83.603-1.184.972H8V5zm12.972 0v5.012A6.456 6.456 0 0 0 17.5 9a6.5 6.5 0 0 0-2.5.5V5h5.972zM22 10.816V1a1 1 0 0 0-1-1H1a1 1 0 0 0-1 1v17a1 1 0 0 0 1 1h11.028a6.494 6.494 0 0 0 6.618 2.9c2.63-.448 4.764-2.556 5.242-5.18A6.494 6.494 0 0 0 22 10.816z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/index.ts b/packages/hiccup-carbon-icons/src/index.ts index 39abc1c019..ff2b3f5a71 100644 --- a/packages/hiccup-carbon-icons/src/index.ts +++ b/packages/hiccup-carbon-icons/src/index.ts @@ -1,145 +1,145 @@ -export * from "./add-outline" -export * from "./add-solid" -export * from "./add" -export * from "./api" -export * from "./app-services" -export * from "./applications" -export * from "./apps" -export * from "./arrow-down" -export * from "./arrow-left" -export * from "./arrow-right" -export * from "./arrow-up" -export * from "./arrows" -export * from "./asleep" -export * from "./attachment" -export * from "./awake" -export * from "./back-to-top" -export * from "./block-chain" -export * from "./calendar" -export * from "./caret-down" -export * from "./caret-left" -export * from "./caret-right" -export * from "./caret-up" -export * from "./cf-apps" -export * from "./chat" -export * from "./checkmark-outline" -export * from "./checkmark-solid" -export * from "./checkmark" -export * from "./chevron-down" -export * from "./chevron-left" -export * from "./chevron-right" -export * from "./chevron-up" -export * from "./close-outline" -export * from "./close-solid" -export * from "./close" -export * from "./cloud-foundry" -export * from "./code" -export * from "./console" -export * from "./containers" -export * from "./copy" -export * from "./crash" -export * from "./dashboard" -export * from "./data" -export * from "./delete" -export * from "./devices" -export * from "./devops" -export * from "./document" -export * from "./dollars" -export * from "./download" -export * from "./draggable" -export * from "./edit" -export * from "./email" -export * from "./error-outline" -export * from "./error-solid" -export * from "./error" -export * from "./favorite-outline" -export * from "./favorite-solid" -export * from "./favorite" -export * from "./filter" -export * from "./finance" -export * from "./financial" -export * from "./folder-add" -export * from "./folder" -export * from "./forum" -export * from "./functions" -export * from "./grid" -export * from "./header-avatar" -export * from "./header-chevron" -export * from "./header-close" -export * from "./header-contact" -export * from "./header-docs" -export * from "./header-hamburger" -export * from "./header-help" -export * from "./header-notification" -export * from "./header-search" -export * from "./header-ticket" -export * from "./header-user" -export * from "./help-outline" -export * from "./help-solid" -export * from "./help" -export * from "./hpa-stress" -export * from "./hpa" -export * from "./info-outline" -export * from "./info-solid" -export * from "./info" -export * from "./infrastructure" -export * from "./integration" -export * from "./iot" -export * from "./launch" -export * from "./light" -export * from "./link" -export * from "./list" -export * from "./locked" -export * from "./maximize" -export * from "./menu" -export * from "./minimize" -export * from "./mobile" -export * from "./network" -export * from "./new-tab" -export * from "./notification-off" -export * from "./notification-on" -export * from "./open-whisk" -export * from "./overflow-menu" -export * from "./pa-stress" -export * from "./pa" -export * from "./pause-outline" -export * from "./pause-solid" -export * from "./pause" -export * from "./play-outline" -export * from "./play-solid" -export * from "./play" -export * from "./portfolio" -export * from "./power" -export * from "./predictive" -export * from "./purchase" -export * from "./restart" -export * from "./save" -export * from "./schematics" -export * from "./search" -export * from "./security" -export * from "./services" -export * from "./settings" -export * from "./star-outline" -export * from "./star-solid" -export * from "./start-outline" -export * from "./start" -export * from "./stop-outline" -export * from "./stop-solid" -export * from "./stop" -export * from "./storage" -export * from "./subtract-outline" -export * from "./subtract-solid" -export * from "./terminal" -export * from "./unlock" -export * from "./unlocked" -export * from "./upload" -export * from "./user" -export * from "./visibility-off" -export * from "./visibility-on" -export * from "./warning-outline" -export * from "./warning-solid" -export * from "./warning" -export * from "./watson" -export * from "./whisk" +export * from "./add-outline"; +export * from "./add-solid"; +export * from "./add"; +export * from "./api"; +export * from "./app-services"; +export * from "./applications"; +export * from "./apps"; +export * from "./arrow-down"; +export * from "./arrow-left"; +export * from "./arrow-right"; +export * from "./arrow-up"; +export * from "./arrows"; +export * from "./asleep"; +export * from "./attachment"; +export * from "./awake"; +export * from "./back-to-top"; +export * from "./block-chain"; +export * from "./calendar"; +export * from "./caret-down"; +export * from "./caret-left"; +export * from "./caret-right"; +export * from "./caret-up"; +export * from "./cf-apps"; +export * from "./chat"; +export * from "./checkmark-outline"; +export * from "./checkmark-solid"; +export * from "./checkmark"; +export * from "./chevron-down"; +export * from "./chevron-left"; +export * from "./chevron-right"; +export * from "./chevron-up"; +export * from "./close-outline"; +export * from "./close-solid"; +export * from "./close"; +export * from "./cloud-foundry"; +export * from "./code"; +export * from "./console"; +export * from "./containers"; +export * from "./copy"; +export * from "./crash"; +export * from "./dashboard"; +export * from "./data"; +export * from "./delete"; +export * from "./devices"; +export * from "./devops"; +export * from "./document"; +export * from "./dollars"; +export * from "./download"; +export * from "./draggable"; +export * from "./edit"; +export * from "./email"; +export * from "./error-outline"; +export * from "./error-solid"; +export * from "./error"; +export * from "./favorite-outline"; +export * from "./favorite-solid"; +export * from "./favorite"; +export * from "./filter"; +export * from "./finance"; +export * from "./financial"; +export * from "./folder-add"; +export * from "./folder"; +export * from "./forum"; +export * from "./functions"; +export * from "./grid"; +export * from "./header-avatar"; +export * from "./header-chevron"; +export * from "./header-close"; +export * from "./header-contact"; +export * from "./header-docs"; +export * from "./header-hamburger"; +export * from "./header-help"; +export * from "./header-notification"; +export * from "./header-search"; +export * from "./header-ticket"; +export * from "./header-user"; +export * from "./help-outline"; +export * from "./help-solid"; +export * from "./help"; +export * from "./hpa-stress"; +export * from "./hpa"; +export * from "./info-outline"; +export * from "./info-solid"; +export * from "./info"; +export * from "./infrastructure"; +export * from "./integration"; +export * from "./iot"; +export * from "./launch"; +export * from "./light"; +export * from "./link"; +export * from "./list"; +export * from "./locked"; +export * from "./maximize"; +export * from "./menu"; +export * from "./minimize"; +export * from "./mobile"; +export * from "./network"; +export * from "./new-tab"; +export * from "./notification-off"; +export * from "./notification-on"; +export * from "./open-whisk"; +export * from "./overflow-menu"; +export * from "./pa-stress"; +export * from "./pa"; +export * from "./pause-outline"; +export * from "./pause-solid"; +export * from "./pause"; +export * from "./play-outline"; +export * from "./play-solid"; +export * from "./play"; +export * from "./portfolio"; +export * from "./power"; +export * from "./predictive"; +export * from "./purchase"; +export * from "./restart"; +export * from "./save"; +export * from "./schematics"; +export * from "./search"; +export * from "./security"; +export * from "./services"; +export * from "./settings"; +export * from "./star-outline"; +export * from "./star-solid"; +export * from "./start-outline"; +export * from "./start"; +export * from "./stop-outline"; +export * from "./stop-solid"; +export * from "./stop"; +export * from "./storage"; +export * from "./subtract-outline"; +export * from "./subtract-solid"; +export * from "./terminal"; +export * from "./unlock"; +export * from "./unlocked"; +export * from "./upload"; +export * from "./user"; +export * from "./visibility-off"; +export * from "./visibility-on"; +export * from "./warning-outline"; +export * from "./warning-solid"; +export * from "./warning"; +export * from "./watson"; +export * from "./whisk"; -export * from "./utils/with-size" +export * from "./utils/with-size"; diff --git a/packages/hiccup-carbon-icons/src/info-outline.ts b/packages/hiccup-carbon-icons/src/info-outline.ts index 67a5dab2ff..3bd04f8fbf 100644 --- a/packages/hiccup-carbon-icons/src/info-outline.ts +++ b/packages/hiccup-carbon-icons/src/info-outline.ts @@ -1,19 +1,31 @@ -export const INFO_OUTLINE = - ["svg", { viewBox: "0 0 16 16" }, - ["g", { "fill-rule": "evenodd" }, - ["path", - { - "fill-rule": "nonzero", - d: "M8 14.5a6.5 6.5 0 1 0 0-13 6.5 6.5 0 0 0 0 13zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16z", - }], - ["path", - { - d: "M9 13H7V7h2z", - "fill-rule": "nonzero", - }], - ["circle", - { - r: 1, - cy: 4, - cx: 8, - }]]]; +export const INFO_OUTLINE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "g", + { "fill-rule": "evenodd" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M8 14.5a6.5 6.5 0 1 0 0-13 6.5 6.5 0 0 0 0 13zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16z", + }, + ], + [ + "path", + { + d: "M9 13H7V7h2z", + "fill-rule": "nonzero", + }, + ], + [ + "circle", + { + r: 1, + cy: 4, + cx: 8, + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/info-solid.ts b/packages/hiccup-carbon-icons/src/info-solid.ts index 0d1ee07e4f..f4d0da790e 100644 --- a/packages/hiccup-carbon-icons/src/info-solid.ts +++ b/packages/hiccup-carbon-icons/src/info-solid.ts @@ -1,7 +1,12 @@ -export const INFO_SOLID = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "evenodd", - d: "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zm1-3V7H7v6h2zM8 5a1 1 0 1 0 0-2 1 1 0 0 0 0 2z", - }]]; +export const INFO_SOLID = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zm1-3V7H7v6h2zM8 5a1 1 0 1 0 0-2 1 1 0 0 0 0 2z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/info.ts b/packages/hiccup-carbon-icons/src/info.ts index d25bfdaac8..e275524295 100644 --- a/packages/hiccup-carbon-icons/src/info.ts +++ b/packages/hiccup-carbon-icons/src/info.ts @@ -1,14 +1,23 @@ -export const INFO = - ["svg", +export const INFO = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 24", + d: + "M12 2c5.5 0 10 4.5 10 10s-4.5 10-10 10S2 17.5 2 12 6.5 2 12 2zm0-2C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.6 0 12 0z", }, - ["path", { d: "M12 2c5.5 0 10 4.5 10 10s-4.5 10-10 10S2 17.5 2 12 6.5 2 12 2zm0-2C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.6 0 12 0z" }], - ["path", { d: "M14 10H9v2h2v4H9v2h7v-2h-2z" }], - ["circle", - { - r: 1.5, - cy: 7.5, - cx: 12.5, - }]]; + ], + ["path", { d: "M14 10H9v2h2v4H9v2h7v-2h-2z" }], + [ + "circle", + { + r: 1.5, + cy: 7.5, + cx: 12.5, + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/infrastructure.ts b/packages/hiccup-carbon-icons/src/infrastructure.ts index d1b04b08b0..bf4c43536e 100644 --- a/packages/hiccup-carbon-icons/src/infrastructure.ts +++ b/packages/hiccup-carbon-icons/src/infrastructure.ts @@ -1,8 +1,18 @@ -export const INFRASTRUCTURE = - ["svg", +export const INFRASTRUCTURE = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 24", + }, + [ + "path", + { d: "M14 1v22H1V1h13zm1-1H0v24h15V0zM23 1v22h-5V1h5zm1-1h-7v24h7V0z" }, + ], + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 24", + d: + "M12 4v4H3V4h9zm1-1H2v6h11V3zM21 3v1h-1V3h1zm1-1h-3v3h3V2zM21 7v1h-1V7h1zm1-1h-3v3h3V6zM21 11v1h-1v-1h1zm1-1h-3v3h3v-3zM21 15v1h-1v-1h1zm1-1h-3v3h3v-3zM21 19v1h-1v-1h1zm1-1h-3v3h3v-3z", }, - ["path", { d: "M14 1v22H1V1h13zm1-1H0v24h15V0zM23 1v22h-5V1h5zm1-1h-7v24h7V0z" }], - ["path", { d: "M12 4v4H3V4h9zm1-1H2v6h11V3zM21 3v1h-1V3h1zm1-1h-3v3h3V2zM21 7v1h-1V7h1zm1-1h-3v3h3V6zM21 11v1h-1v-1h1zm1-1h-3v3h3v-3zM21 15v1h-1v-1h1zm1-1h-3v3h3v-3zM21 19v1h-1v-1h1zm1-1h-3v3h3v-3z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/integration.ts b/packages/hiccup-carbon-icons/src/integration.ts index 9b5f26e6cd..89ba3e5431 100644 --- a/packages/hiccup-carbon-icons/src/integration.ts +++ b/packages/hiccup-carbon-icons/src/integration.ts @@ -1,7 +1,14 @@ -export const INTEGRATION = - ["svg", +export const INTEGRATION = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 21", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 21", + d: + "M18 0H6L0 10.5 6 21h12l6-10.5L18 0zm4.5 10h-9.7l4.8-8.5 4.9 8.5zM6.3 19.4L1.4 11H11l-4.7 8.4zm5.6-7.8l4.8 8.4H7.2l4.7-8.4zm0-2.1L7 1h9.7l-4.8 8.5zM6.2 1.6L11 10H1.5l4.7-8.4zm11.5 18L12.8 11h9.8l-4.9 8.6z", }, - ["path", { d: "M18 0H6L0 10.5 6 21h12l6-10.5L18 0zm4.5 10h-9.7l4.8-8.5 4.9 8.5zM6.3 19.4L1.4 11H11l-4.7 8.4zm5.6-7.8l4.8 8.4H7.2l4.7-8.4zm0-2.1L7 1h9.7l-4.8 8.5zM6.2 1.6L11 10H1.5l4.7-8.4zm11.5 18L12.8 11h9.8l-4.9 8.6z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/iot.ts b/packages/hiccup-carbon-icons/src/iot.ts index 384d127a76..d84df7441a 100644 --- a/packages/hiccup-carbon-icons/src/iot.ts +++ b/packages/hiccup-carbon-icons/src/iot.ts @@ -1,8 +1,21 @@ -export const IOT = - ["svg", +export const IOT = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 24", + d: + "M12 10c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0-1c-1.6 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3z", }, - ["path", { d: "M12 10c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0-1c-1.6 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3z" }], - ["path", { d: "M17 7v10H7V7h10zm1-1H6v12h12V6zM11 5h-1V2.1C10 1.5 9.5 1 8.9 1c-.6 0-.9.6-.9 1.1V5H7V2.1C7 .9 7.8 0 8.9 0H9c1.1 0 2 1 2 2.1V5zM17 5h-1V2.1c0-.6-.5-1.1-1.1-1.1-.6 0-.9.6-.9 1.1V5h-1V2.1c0-1.2.8-2.1 1.9-2.1h.1c1.1 0 2 1 2 2.1V5zM15.1 24s-.1 0 0 0c-1.2 0-2.1-1-2.1-2.1V19h1v2.9c0 .6.5 1.1 1.1 1.1.7 0 .9-.6.9-1.1V19h1v2.9c0 1.2-.8 2.1-1.9 2.1zM9.1 24s-.1 0 0 0C7.9 24 7 23 7 21.9V19h1v2.9c0 .6.5 1.1 1.1 1.1.7 0 .9-.6.9-1.1V19h1v2.9c0 1.2-.8 2.1-1.9 2.1zM5 17H2.1C.9 17 0 16.2 0 15.1c0-1.1 1-2 2.1-2H5v1H2.1c-.6-.1-1.1.4-1.1 1s.6.9 1.1.9H5v1zM5 11H2.1C.9 11 0 10.2 0 9.1c0-1.1 1-2 2.1-2H5v1H2.1C1.5 8 1 8.5 1 9.1s.6.9 1.1.9H5v1zM21.9 11H19v-1h2.9c.6 0 1.1-.4 1.1-1 0-.7-.6-1-1.1-1H19V7h2.9c1.2 0 2.1.8 2.1 1.9 0 1.2-1 2.1-2.1 2.1zM21.9 17H19v-1h2.9c.6 0 1.1-.5 1.1-1.1 0-.7-.6-.9-1.1-.9H19v-1h2.9c1.2 0 2.1.8 2.1 1.9 0 1.2-1 2.1-2.1 2.1z" }]]; + ], + [ + "path", + { + d: + "M17 7v10H7V7h10zm1-1H6v12h12V6zM11 5h-1V2.1C10 1.5 9.5 1 8.9 1c-.6 0-.9.6-.9 1.1V5H7V2.1C7 .9 7.8 0 8.9 0H9c1.1 0 2 1 2 2.1V5zM17 5h-1V2.1c0-.6-.5-1.1-1.1-1.1-.6 0-.9.6-.9 1.1V5h-1V2.1c0-1.2.8-2.1 1.9-2.1h.1c1.1 0 2 1 2 2.1V5zM15.1 24s-.1 0 0 0c-1.2 0-2.1-1-2.1-2.1V19h1v2.9c0 .6.5 1.1 1.1 1.1.7 0 .9-.6.9-1.1V19h1v2.9c0 1.2-.8 2.1-1.9 2.1zM9.1 24s-.1 0 0 0C7.9 24 7 23 7 21.9V19h1v2.9c0 .6.5 1.1 1.1 1.1.7 0 .9-.6.9-1.1V19h1v2.9c0 1.2-.8 2.1-1.9 2.1zM5 17H2.1C.9 17 0 16.2 0 15.1c0-1.1 1-2 2.1-2H5v1H2.1c-.6-.1-1.1.4-1.1 1s.6.9 1.1.9H5v1zM5 11H2.1C.9 11 0 10.2 0 9.1c0-1.1 1-2 2.1-2H5v1H2.1C1.5 8 1 8.5 1 9.1s.6.9 1.1.9H5v1zM21.9 11H19v-1h2.9c.6 0 1.1-.4 1.1-1 0-.7-.6-1-1.1-1H19V7h2.9c1.2 0 2.1.8 2.1 1.9 0 1.2-1 2.1-2.1 2.1zM21.9 17H19v-1h2.9c.6 0 1.1-.5 1.1-1.1 0-.7-.6-.9-1.1-.9H19v-1h2.9c1.2 0 2.1.8 2.1 1.9 0 1.2-1 2.1-2.1 2.1z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/launch.ts b/packages/hiccup-carbon-icons/src/launch.ts index 4caf3586cb..05b26b5f21 100644 --- a/packages/hiccup-carbon-icons/src/launch.ts +++ b/packages/hiccup-carbon-icons/src/launch.ts @@ -1,5 +1,13 @@ -export const LAUNCH = - ["svg", { viewBox: "0 0 16 16" }, - ["path", { d: "M14.3 1h-3.8V0H16v5.5h-1V1.7L9.7 7 9 6.3 14.3 1z" }], - ["path", { d: "M14.3 1h-3.8V0H16v5.5h-1V1.7L9.7 7 9 6.3 14.3 1z" }], - ["path", { d: "M13 9h1v6c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1V3c0-.6.4-1 1-1h7v1H1v12h12V9z" }]]; +export const LAUNCH = [ + "svg", + { viewBox: "0 0 16 16" }, + ["path", { d: "M14.3 1h-3.8V0H16v5.5h-1V1.7L9.7 7 9 6.3 14.3 1z" }], + ["path", { d: "M14.3 1h-3.8V0H16v5.5h-1V1.7L9.7 7 9 6.3 14.3 1z" }], + [ + "path", + { + d: + "M13 9h1v6c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1V3c0-.6.4-1 1-1h7v1H1v12h12V9z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/light.ts b/packages/hiccup-carbon-icons/src/light.ts index b19c2dee5d..61c1658fb1 100644 --- a/packages/hiccup-carbon-icons/src/light.ts +++ b/packages/hiccup-carbon-icons/src/light.ts @@ -1,14 +1,29 @@ -export const LIGHT = - ["svg", +export const LIGHT = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 18 18", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 18 18", + d: + "M9 0c.3 0 .6.3.6.6v2.5c0 .3-.3.6-.6.6s-.6-.3-.6-.6V.6c0-.3.3-.6.6-.6zM9 14.4c.3 0 .6.3.6.6v2.5c0 .3-.3.6-.6.6s-.6-.3-.6-.6V15c0-.4.3-.6.6-.6z", }, - ["path", { d: "M9 0c.3 0 .6.3.6.6v2.5c0 .3-.3.6-.6.6s-.6-.3-.6-.6V.6c0-.3.3-.6.6-.6zM9 14.4c.3 0 .6.3.6.6v2.5c0 .3-.3.6-.6.6s-.6-.3-.6-.6V15c0-.4.3-.6.6-.6z" }], - ["circle", - { - r: 4, - cy: 9, - cx: 9, - }], - ["path", { d: "M14.4 9c0-.3.3-.6.6-.6h2.5c.2.1.5.3.5.6s-.3.6-.6.6h-2.5c-.3 0-.5-.3-.5-.6zM0 9c0-.3.3-.6.6-.6h2.5c.3 0 .6.3.6.6s-.3.6-.6.6H.6C.3 9.6 0 9.3 0 9zM2.1 2.4c.2-.2.6-.2.8 0l1.8 1.8c.2.2.2.6 0 .8-.2.2-.6.2-.8 0L2.1 3.2c-.2-.2-.2-.6 0-.8zM13.1 5c-.2-.2-.2-.6 0-.8l1.8-1.8c.2-.2.6-.2.8 0 .2.2.2.6 0 .8L13.9 5c-.2.2-.6.2-.8 0zM15.7 15.7c-.2.2-.6.2-.8 0l-1.8-1.8c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l1.8 1.8c.2.2.2.6 0 .8zM4.7 13.1c.2.2.2.6 0 .8l-1.8 1.8c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8l1.8-1.8c.2-.2.6-.2.8 0z" }]]; + ], + [ + "circle", + { + r: 4, + cy: 9, + cx: 9, + }, + ], + [ + "path", + { + d: + "M14.4 9c0-.3.3-.6.6-.6h2.5c.2.1.5.3.5.6s-.3.6-.6.6h-2.5c-.3 0-.5-.3-.5-.6zM0 9c0-.3.3-.6.6-.6h2.5c.3 0 .6.3.6.6s-.3.6-.6.6H.6C.3 9.6 0 9.3 0 9zM2.1 2.4c.2-.2.6-.2.8 0l1.8 1.8c.2.2.2.6 0 .8-.2.2-.6.2-.8 0L2.1 3.2c-.2-.2-.2-.6 0-.8zM13.1 5c-.2-.2-.2-.6 0-.8l1.8-1.8c.2-.2.6-.2.8 0 .2.2.2.6 0 .8L13.9 5c-.2.2-.6.2-.8 0zM15.7 15.7c-.2.2-.6.2-.8 0l-1.8-1.8c-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0l1.8 1.8c.2.2.2.6 0 .8zM4.7 13.1c.2.2.2.6 0 .8l-1.8 1.8c-.2.2-.6.2-.8 0-.2-.2-.2-.6 0-.8l1.8-1.8c.2-.2.6-.2.8 0z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/link.ts b/packages/hiccup-carbon-icons/src/link.ts index af925e2860..7ae80e6dc0 100644 --- a/packages/hiccup-carbon-icons/src/link.ts +++ b/packages/hiccup-carbon-icons/src/link.ts @@ -1,4 +1,18 @@ -export const LINK = - ["svg", { viewBox: "0 0 16 13" }, - ["path", { d: "M9.3 7.1l-.7-.7c.1-.1.2-.2.6-.5.9-.8.9-2.2.1-3l-.1-.1c-.8-.8-2.3-.8-3.1.1L1.6 7.3c-.9.9-.9 2.3 0 3.1l.2.2c.8.8 2 .8 2.8.1l.7.7c-1.2 1.1-3 1-4.2-.1l-.2-.2C-.3 9.9-.3 7.8.9 6.6l4.4-4.4C6.6.9 8.6.9 9.9 2.2l.1.1c1.2 1.3 1.1 3.2-.1 4.4-.3.2-.5.4-.6.4z" }], - ["path", { d: "M6.8 4.7l.7.7-.7.7c-.9.9-.9 2.3 0 3.2.9.9 2.3.9 3.1 0l4.5-4.5c.9-.9.9-2.3 0-3.1l-.1-.1c-.7-.7-1.9-.7-2.7 0l-.1.1-.8-.7.1-.1c1.1-1.1 3-1.1 4.1 0l.2.1c1.2 1.2 1.2 3.3 0 4.5L10.6 10c-1.2 1.2-3.3 1.2-4.5 0-1.3-1.3-1.3-3.3 0-4.5l.7-.8z" }]]; +export const LINK = [ + "svg", + { viewBox: "0 0 16 13" }, + [ + "path", + { + d: + "M9.3 7.1l-.7-.7c.1-.1.2-.2.6-.5.9-.8.9-2.2.1-3l-.1-.1c-.8-.8-2.3-.8-3.1.1L1.6 7.3c-.9.9-.9 2.3 0 3.1l.2.2c.8.8 2 .8 2.8.1l.7.7c-1.2 1.1-3 1-4.2-.1l-.2-.2C-.3 9.9-.3 7.8.9 6.6l4.4-4.4C6.6.9 8.6.9 9.9 2.2l.1.1c1.2 1.3 1.1 3.2-.1 4.4-.3.2-.5.4-.6.4z", + }, + ], + [ + "path", + { + d: + "M6.8 4.7l.7.7-.7.7c-.9.9-.9 2.3 0 3.2.9.9 2.3.9 3.1 0l4.5-4.5c.9-.9.9-2.3 0-3.1l-.1-.1c-.7-.7-1.9-.7-2.7 0l-.1.1-.8-.7.1-.1c1.1-1.1 3-1.1 4.1 0l.2.1c1.2 1.2 1.2 3.3 0 4.5L10.6 10c-1.2 1.2-3.3 1.2-4.5 0-1.3-1.3-1.3-3.3 0-4.5l.7-.8z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/list.ts b/packages/hiccup-carbon-icons/src/list.ts index 2fe0c9a035..b9b9a1baa7 100644 --- a/packages/hiccup-carbon-icons/src/list.ts +++ b/packages/hiccup-carbon-icons/src/list.ts @@ -1,20 +1,31 @@ -export const LIST = - ["svg", { viewBox: "0 0 16 10" }, - ["g", { "fill-rule": "evenodd" }, - ["path", - { - d: "M6 9V8h10v1zM6 2V1h10v1z", - "fill-rule": "nonzero", - }], - ["circle", - { - r: 1.5, - cy: 1.5, - cx: 1.5, - }], - ["circle", - { - r: 1.5, - cy: 8.5, - cx: 1.5, - }]]]; +export const LIST = [ + "svg", + { viewBox: "0 0 16 10" }, + [ + "g", + { "fill-rule": "evenodd" }, + [ + "path", + { + d: "M6 9V8h10v1zM6 2V1h10v1z", + "fill-rule": "nonzero", + }, + ], + [ + "circle", + { + r: 1.5, + cy: 1.5, + cx: 1.5, + }, + ], + [ + "circle", + { + r: 1.5, + cy: 8.5, + cx: 1.5, + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/locked.ts b/packages/hiccup-carbon-icons/src/locked.ts index 550ed4b381..c6fa46b952 100644 --- a/packages/hiccup-carbon-icons/src/locked.ts +++ b/packages/hiccup-carbon-icons/src/locked.ts @@ -1,7 +1,12 @@ -export const LOCKED = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "nonzero", - d: "M4.5 7V3.5a3.5 3.5 0 0 1 7 0V7h1A1.5 1.5 0 0 1 14 8.5v6a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 2 14.5v-6A1.5 1.5 0 0 1 3.5 7h1zm1 0h5V3.5a2.5 2.5 0 0 0-5 0V7zm-2 1a.5.5 0 0 0-.5.5v6a.5.5 0 0 0 .5.5h9a.5.5 0 0 0 .5-.5v-6a.5.5 0 0 0-.5-.5h-9z", - }]]; +export const LOCKED = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M4.5 7V3.5a3.5 3.5 0 0 1 7 0V7h1A1.5 1.5 0 0 1 14 8.5v6a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 2 14.5v-6A1.5 1.5 0 0 1 3.5 7h1zm1 0h5V3.5a2.5 2.5 0 0 0-5 0V7zm-2 1a.5.5 0 0 0-.5.5v6a.5.5 0 0 0 .5.5h9a.5.5 0 0 0 .5-.5v-6a.5.5 0 0 0-.5-.5h-9z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/maximize.ts b/packages/hiccup-carbon-icons/src/maximize.ts index 2bc26c6bdf..bb05c528c6 100644 --- a/packages/hiccup-carbon-icons/src/maximize.ts +++ b/packages/hiccup-carbon-icons/src/maximize.ts @@ -1,4 +1,15 @@ -export const MAXIMIZE = - ["svg", { viewBox: "0 0 16 16" }, - ["g", { "fill-rule": "nonzero" }, - ["path", { d: "M1.71 15H4v1H.003L0 12h1l.002 2.293 4.296-4.296.707.707L1.709 15zM14.998 1.668l-4.271 4.317-.711-.703L14.252 1H12V0h3.997L16 4h-1l-.002-2.332z" }]]]; +export const MAXIMIZE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "g", + { "fill-rule": "nonzero" }, + [ + "path", + { + d: + "M1.71 15H4v1H.003L0 12h1l.002 2.293 4.296-4.296.707.707L1.709 15zM14.998 1.668l-4.271 4.317-.711-.703L14.252 1H12V0h3.997L16 4h-1l-.002-2.332z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/menu.ts b/packages/hiccup-carbon-icons/src/menu.ts index 74f59106b9..1d3080e66b 100644 --- a/packages/hiccup-carbon-icons/src/menu.ts +++ b/packages/hiccup-carbon-icons/src/menu.ts @@ -1,7 +1,8 @@ -export const MENU = - ["svg", - { - "fill-rule": "evenodd", - viewBox: "0 0 20 14", - }, - ["path", { d: "M0 0h20v2H0zM0 6h20v2H0zM0 12h20v2H0z" }]]; +export const MENU = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 20 14", + }, + ["path", { d: "M0 0h20v2H0zM0 6h20v2H0zM0 12h20v2H0z" }], +]; diff --git a/packages/hiccup-carbon-icons/src/minimize.ts b/packages/hiccup-carbon-icons/src/minimize.ts index ba58b5d6cb..03d3c15acb 100644 --- a/packages/hiccup-carbon-icons/src/minimize.ts +++ b/packages/hiccup-carbon-icons/src/minimize.ts @@ -1,4 +1,15 @@ -export const MINIMIZE = - ["svg", { viewBox: "0 0 16 16" }, - ["g", { "fill-rule": "nonzero" }, - ["path", { d: "M4.998 11.709L.704 16.004l-.708-.708 4.274-4.273L1.995 11l.01-1 3.992.04L6 14H5l-.002-2.291zM11.707 5H14v1h-3.997L10 2h1l.002 2.291 4.291-4.29.707.706L11.707 5z" }]]]; +export const MINIMIZE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "g", + { "fill-rule": "nonzero" }, + [ + "path", + { + d: + "M4.998 11.709L.704 16.004l-.708-.708 4.274-4.273L1.995 11l.01-1 3.992.04L6 14H5l-.002-2.291zM11.707 5H14v1h-3.997L10 2h1l.002 2.291 4.291-4.29.707.706L11.707 5z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/mobile.ts b/packages/hiccup-carbon-icons/src/mobile.ts index c1c6d4ca84..ac78244dad 100644 --- a/packages/hiccup-carbon-icons/src/mobile.ts +++ b/packages/hiccup-carbon-icons/src/mobile.ts @@ -1,22 +1,42 @@ -export const MOBILE = - ["svg", { viewBox: "0 0 24 24" }, - ["path", { d: "M23 0H1C.5 0 0 .5 0 1v21c0 .6.5 1 1 1h22c.6 0 1-.5 1-1V1c0-.5-.5-1-1-1zM1 1h7v3H1V1zm22 21H1V5h22v17zm0-21v3H9V1h14z" }], - ["circle", - { - r: 0.5, - cy: 2.5, - cx: 2.5, - }], - ["circle", - { - r: 0.5, - cy: 2.5, - cx: 4.5, - }], - ["circle", - { - r: 0.5, - cy: 2.5, - cx: 6.5, - }], - ["path", { d: "M7.5 8h-5c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h5c.3 0 .5.2.5.5s-.2.5-.5.5zM10.5 11h-8c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h8c.3 0 .5.2.5.5s-.2.5-.5.5zM13.5 8h-4c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h4c.3 0 .5.2.5.5s-.2.5-.5.5zM14.5 11h-2c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h2c.3 0 .5.2.5.5s-.2.5-.5.5zM4.5 14h-2c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h2c.3 0 .5.2.5.5s-.2.5-.5.5zM8.5 14h-1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h1c.3 0 .5.2.5.5s-.2.5-.5.5zM19.5 11h-3c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h3c.3 0 .5.2.5.5s-.2.5-.5.5z" }]]; +export const MOBILE = [ + "svg", + { viewBox: "0 0 24 24" }, + [ + "path", + { + d: + "M23 0H1C.5 0 0 .5 0 1v21c0 .6.5 1 1 1h22c.6 0 1-.5 1-1V1c0-.5-.5-1-1-1zM1 1h7v3H1V1zm22 21H1V5h22v17zm0-21v3H9V1h14z", + }, + ], + [ + "circle", + { + r: 0.5, + cy: 2.5, + cx: 2.5, + }, + ], + [ + "circle", + { + r: 0.5, + cy: 2.5, + cx: 4.5, + }, + ], + [ + "circle", + { + r: 0.5, + cy: 2.5, + cx: 6.5, + }, + ], + [ + "path", + { + d: + "M7.5 8h-5c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h5c.3 0 .5.2.5.5s-.2.5-.5.5zM10.5 11h-8c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h8c.3 0 .5.2.5.5s-.2.5-.5.5zM13.5 8h-4c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h4c.3 0 .5.2.5.5s-.2.5-.5.5zM14.5 11h-2c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h2c.3 0 .5.2.5.5s-.2.5-.5.5zM4.5 14h-2c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h2c.3 0 .5.2.5.5s-.2.5-.5.5zM8.5 14h-1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h1c.3 0 .5.2.5.5s-.2.5-.5.5zM19.5 11h-3c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h3c.3 0 .5.2.5.5s-.2.5-.5.5z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/network.ts b/packages/hiccup-carbon-icons/src/network.ts index 775e9ab0ca..738595a328 100644 --- a/packages/hiccup-carbon-icons/src/network.ts +++ b/packages/hiccup-carbon-icons/src/network.ts @@ -1,7 +1,14 @@ -export const NETWORK = - ["svg", +export const NETWORK = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 23 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 23 24", + d: + "M20.5 18v-6h-9V5.9C12.9 5.7 14 4.5 14 3c0-1.7-1.3-3-3-3S8 1.3 8 3c0 1.5 1.1 2.7 2.5 2.9V12h-8v6.1C1.1 18.4 0 19.6 0 21c0 1.7 1.3 3 3 3s3-1.3 3-3c0-1.5-1.1-2.7-2.5-2.9V13h16v5.1c-1.4.2-2.5 1.5-2.5 2.9 0 1.7 1.3 3 3 3s3-1.3 3-3c0-1.5-1-2.8-2.5-3zM9 3c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zM5 21c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm15 2c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z", }, - ["path", { d: "M20.5 18v-6h-9V5.9C12.9 5.7 14 4.5 14 3c0-1.7-1.3-3-3-3S8 1.3 8 3c0 1.5 1.1 2.7 2.5 2.9V12h-8v6.1C1.1 18.4 0 19.6 0 21c0 1.7 1.3 3 3 3s3-1.3 3-3c0-1.5-1.1-2.7-2.5-2.9V13h16v5.1c-1.4.2-2.5 1.5-2.5 2.9 0 1.7 1.3 3 3 3s3-1.3 3-3c0-1.5-1-2.8-2.5-3zM9 3c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zM5 21c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm15 2c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/new-tab.ts b/packages/hiccup-carbon-icons/src/new-tab.ts index 5ef927612e..40a96bf8c6 100644 --- a/packages/hiccup-carbon-icons/src/new-tab.ts +++ b/packages/hiccup-carbon-icons/src/new-tab.ts @@ -1,4 +1,15 @@ -export const NEW_TAB = - ["svg", { viewBox: "0 0 16 15" }, - ["g", { "fill-rule": "nonzero" }, - ["path", { d: "M14 2h2v1h-2v2h-1V3h-2V2h2V0h1v2zM1 3h8V2H1a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V7.227h-1V14H1V3z" }]]]; +export const NEW_TAB = [ + "svg", + { viewBox: "0 0 16 15" }, + [ + "g", + { "fill-rule": "nonzero" }, + [ + "path", + { + d: + "M14 2h2v1h-2v2h-1V3h-2V2h2V0h1v2zM1 3h8V2H1a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V7.227h-1V14H1V3z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/notification-off.ts b/packages/hiccup-carbon-icons/src/notification-off.ts index 9b62243fa9..6fc9ce1630 100644 --- a/packages/hiccup-carbon-icons/src/notification-off.ts +++ b/packages/hiccup-carbon-icons/src/notification-off.ts @@ -1,9 +1,23 @@ -export const NOTIFICATION_OFF = - ["svg", { viewBox: "0 0 14 16" }, - ["g", { "fill-rule": "evenodd" }, - ["path", - { - "fill-rule": "nonzero", - d: "M1.501 13.987l-.876.702L0 13.908 13.33 3.24l.625.78-1.963 1.572v3.642l1.801 1.35a.5.5 0 0 1 .2.399l.008 2.516a.5.5 0 0 1-.5.501h-4.05a2.5 2.5 0 0 1-4.9 0h-3.05v-.013zM2.735 13H13l-.006-1.765-1.802-1.35a.5.5 0 0 1-.2-.4V6.391L2.735 13zm2.852 1a1.5 1.5 0 0 0 2.829 0h-2.83z", - }], - ["path", { d: "M7.501 1.248c.629.05 1.128.2 1.695.481.933.46 1.616 1.114 2.076 1.9l-.864.505a4.163 4.163 0 0 0-1.68-1.512c-.506-.25-1.148-.376-1.891-.376-.494 0-.875.05-1.366.293-1.429.708-2.324 1.814-2.474 3.475L2.941 9.74.797 11.434l-.62-.784 1.771-1.4.05-3.28c.106-1.968 1.41-3.724 3.071-4.347a5.207 5.207 0 0 1 1.432-.367V0h1v1.248z" }]]]; +export const NOTIFICATION_OFF = [ + "svg", + { viewBox: "0 0 14 16" }, + [ + "g", + { "fill-rule": "evenodd" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M1.501 13.987l-.876.702L0 13.908 13.33 3.24l.625.78-1.963 1.572v3.642l1.801 1.35a.5.5 0 0 1 .2.399l.008 2.516a.5.5 0 0 1-.5.501h-4.05a2.5 2.5 0 0 1-4.9 0h-3.05v-.013zM2.735 13H13l-.006-1.765-1.802-1.35a.5.5 0 0 1-.2-.4V6.391L2.735 13zm2.852 1a1.5 1.5 0 0 0 2.829 0h-2.83z", + }, + ], + [ + "path", + { + d: + "M7.501 1.248c.629.05 1.128.2 1.695.481.933.46 1.616 1.114 2.076 1.9l-.864.505a4.163 4.163 0 0 0-1.68-1.512c-.506-.25-1.148-.376-1.891-.376-.494 0-.875.05-1.366.293-1.429.708-2.324 1.814-2.474 3.475L2.941 9.74.797 11.434l-.62-.784 1.771-1.4.05-3.28c.106-1.968 1.41-3.724 3.071-4.347a5.207 5.207 0 0 1 1.432-.367V0h1v1.248z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/notification-on.ts b/packages/hiccup-carbon-icons/src/notification-on.ts index b9c9cc4086..4560bd09db 100644 --- a/packages/hiccup-carbon-icons/src/notification-on.ts +++ b/packages/hiccup-carbon-icons/src/notification-on.ts @@ -1,7 +1,12 @@ -export const NOTIFICATION_ON = - ["svg", { viewBox: "0 0 14 16" }, - ["path", - { - "fill-rule": "nonzero", - d: "M11.199 9.9a.5.5 0 0 1-.2-.4V6.23a4 4 0 0 0-3.99-4A3.989 3.989 0 0 0 3.01 6.206L3 9.52a.5.5 0 0 1-.202.4L1 11.252V13h12v-1.75L11.199 9.9zM4.55 14H.5a.5.5 0 0 1-.5-.5V11a.5.5 0 0 1 .202-.402l1.799-1.333.01-3.062A4.99 4.99 0 0 1 6.5 1.254V0h1v1.254a5 5 0 0 1 4.498 4.975v3.02L13.8 10.6A.5.5 0 0 1 14 11v2.5a.5.5 0 0 1-.5.5H9.45a2.5 2.5 0 0 1-4.9 0zm1.035 0a1.5 1.5 0 0 0 2.83 0h-2.83z", - }]]; +export const NOTIFICATION_ON = [ + "svg", + { viewBox: "0 0 14 16" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M11.199 9.9a.5.5 0 0 1-.2-.4V6.23a4 4 0 0 0-3.99-4A3.989 3.989 0 0 0 3.01 6.206L3 9.52a.5.5 0 0 1-.202.4L1 11.252V13h12v-1.75L11.199 9.9zM4.55 14H.5a.5.5 0 0 1-.5-.5V11a.5.5 0 0 1 .202-.402l1.799-1.333.01-3.062A4.99 4.99 0 0 1 6.5 1.254V0h1v1.254a5 5 0 0 1 4.498 4.975v3.02L13.8 10.6A.5.5 0 0 1 14 11v2.5a.5.5 0 0 1-.5.5H9.45a2.5 2.5 0 0 1-4.9 0zm1.035 0a1.5 1.5 0 0 0 2.83 0h-2.83z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/open-whisk.ts b/packages/hiccup-carbon-icons/src/open-whisk.ts index 094ba41648..dc5a9b1df9 100644 --- a/packages/hiccup-carbon-icons/src/open-whisk.ts +++ b/packages/hiccup-carbon-icons/src/open-whisk.ts @@ -1,8 +1,21 @@ -export const OPEN_WHISK = - ["svg", +export const OPEN_WHISK = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 25 16", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 25 16", + d: + "M9.9 9.7L4.5 0 0 8l4.5 8h8l.5-.8 3-5.5H9.9zm-4.7 5.1L1.4 8l3.1-5.5 6.9 12.3H5.2zm7.2-1.1l-1.6-2.8h3.1l-1.5 2.8z", }, - ["path", { d: "M9.9 9.7L4.5 0 0 8l4.5 8h8l.5-.8 3-5.5H9.9zm-4.7 5.1L1.4 8l3.1-5.5 6.9 12.3H5.2zm7.2-1.1l-1.6-2.8h3.1l-1.5 2.8z" }], - ["path", { d: "M19.5 0h-7.8l-.6 1.1-3 5.5h6l5.3 9.5L24 8l-4.5-8zm-9.3 5.3l1.5-2.8 1.6 2.8h-3.1zm2.4-4.1h6.2L22.6 8l-3.1 5.5-6.9-12.3z" }]]; + ], + [ + "path", + { + d: + "M19.5 0h-7.8l-.6 1.1-3 5.5h6l5.3 9.5L24 8l-4.5-8zm-9.3 5.3l1.5-2.8 1.6 2.8h-3.1zm2.4-4.1h6.2L22.6 8l-3.1 5.5-6.9-12.3z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/overflow-menu.ts b/packages/hiccup-carbon-icons/src/overflow-menu.ts index 29d0bed9a7..c1d9c7a6d3 100644 --- a/packages/hiccup-carbon-icons/src/overflow-menu.ts +++ b/packages/hiccup-carbon-icons/src/overflow-menu.ts @@ -1,21 +1,32 @@ -export const OVERFLOW_MENU = - ["svg", { viewBox: "0 0 3 15" }, - ["g", { "fill-rule": "evenodd" }, - ["circle", - { - r: 1.5, - cy: 1.5, - cx: 1.5, - }], - ["circle", - { - r: 1.5, - cy: 7.5, - cx: 1.5, - }], - ["circle", - { - r: 1.5, - cy: 13.5, - cx: 1.5, - }]]]; +export const OVERFLOW_MENU = [ + "svg", + { viewBox: "0 0 3 15" }, + [ + "g", + { "fill-rule": "evenodd" }, + [ + "circle", + { + r: 1.5, + cy: 1.5, + cx: 1.5, + }, + ], + [ + "circle", + { + r: 1.5, + cy: 7.5, + cx: 1.5, + }, + ], + [ + "circle", + { + r: 1.5, + cy: 13.5, + cx: 1.5, + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/pa-stress.ts b/packages/hiccup-carbon-icons/src/pa-stress.ts index 9441730042..a5711ee69a 100644 --- a/packages/hiccup-carbon-icons/src/pa-stress.ts +++ b/packages/hiccup-carbon-icons/src/pa-stress.ts @@ -1,7 +1,12 @@ -export const PA_STRESS = - ["svg", { viewBox: "0 0 24 24" }, - ["path", - { - "fill-rule": "evenodd", - d: "M22.588 12.982l-3.937-3.95L16 15V9h-3l1.733-3.898L10.643 1h-6.23L1 4.406v6.265l12.004 11.917 9.584-9.605zm1.412 0L13.008 24 0 11.087V3.99L4 0h7.058l4.11 4.123L17 0v5.96l.04.04H20l-.913 2.053L24 12.983zM9 7a2 2 0 1 1-4 0 2 2 0 0 1 4 0z", - }]]; +export const PA_STRESS = [ + "svg", + { viewBox: "0 0 24 24" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M22.588 12.982l-3.937-3.95L16 15V9h-3l1.733-3.898L10.643 1h-6.23L1 4.406v6.265l12.004 11.917 9.584-9.605zm1.412 0L13.008 24 0 11.087V3.99L4 0h7.058l4.11 4.123L17 0v5.96l.04.04H20l-.913 2.053L24 12.983zM9 7a2 2 0 1 1-4 0 2 2 0 0 1 4 0z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/pa.ts b/packages/hiccup-carbon-icons/src/pa.ts index f660916d13..c974d19225 100644 --- a/packages/hiccup-carbon-icons/src/pa.ts +++ b/packages/hiccup-carbon-icons/src/pa.ts @@ -1,7 +1,12 @@ -export const PA = - ["svg", { viewBox: "0 0 24 24" }, - ["path", - { - "fill-rule": "evenodd", - d: "M22.588 12.982L10.643 1h-6.23L1 4.406v6.265l12.004 11.917 9.584-9.605zm1.412 0L13.008 24 0 11.087V3.99L4 0h7.058L24 12.982zM9 7a2 2 0 1 1-4 0 2 2 0 0 1 4 0z", - }]]; +export const PA = [ + "svg", + { viewBox: "0 0 24 24" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M22.588 12.982L10.643 1h-6.23L1 4.406v6.265l12.004 11.917 9.584-9.605zm1.412 0L13.008 24 0 11.087V3.99L4 0h7.058L24 12.982zM9 7a2 2 0 1 1-4 0 2 2 0 0 1 4 0z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/pause-outline.ts b/packages/hiccup-carbon-icons/src/pause-outline.ts index 0267ca1a96..2f68e0c8c1 100644 --- a/packages/hiccup-carbon-icons/src/pause-outline.ts +++ b/packages/hiccup-carbon-icons/src/pause-outline.ts @@ -1,9 +1,17 @@ -export const PAUSE_OUTLINE = - ["svg", { viewBox: "0 0 16 16" }, - ["g", { "fill-rule": "evenodd" }, - ["path", { d: "M5 5h2v6H5zM9 5h2v6H9z" }], - ["path", - { - "fill-rule": "nonzero", - d: "M8 14.5a6.5 6.5 0 1 0 0-13 6.5 6.5 0 0 0 0 13zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16z", - }]]]; +export const PAUSE_OUTLINE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "g", + { "fill-rule": "evenodd" }, + ["path", { d: "M5 5h2v6H5zM9 5h2v6H9z" }], + [ + "path", + { + "fill-rule": "nonzero", + d: + "M8 14.5a6.5 6.5 0 1 0 0-13 6.5 6.5 0 0 0 0 13zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/pause-solid.ts b/packages/hiccup-carbon-icons/src/pause-solid.ts index eae48f9acf..b424da92a7 100644 --- a/packages/hiccup-carbon-icons/src/pause-solid.ts +++ b/packages/hiccup-carbon-icons/src/pause-solid.ts @@ -1,7 +1,11 @@ -export const PAUSE_SOLID = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "evenodd", - d: "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zM5 5v6h2V5H5zm4 0v6h2V5H9z", - }]]; +export const PAUSE_SOLID = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "evenodd", + d: "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zM5 5v6h2V5H5zm4 0v6h2V5H9z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/pause.ts b/packages/hiccup-carbon-icons/src/pause.ts index f180fbfa1f..88a60f212f 100644 --- a/packages/hiccup-carbon-icons/src/pause.ts +++ b/packages/hiccup-carbon-icons/src/pause.ts @@ -1,3 +1,5 @@ -export const PAUSE = - ["svg", { viewBox: "0 0 24 24" }, - ["path", { d: "M0 0h9v24H0zM15 0h9v24h-9z" }]]; +export const PAUSE = [ + "svg", + { viewBox: "0 0 24 24" }, + ["path", { d: "M0 0h9v24H0zM15 0h9v24h-9z" }], +]; diff --git a/packages/hiccup-carbon-icons/src/play-outline.ts b/packages/hiccup-carbon-icons/src/play-outline.ts index 4bc9183151..1aacca9998 100644 --- a/packages/hiccup-carbon-icons/src/play-outline.ts +++ b/packages/hiccup-carbon-icons/src/play-outline.ts @@ -1,4 +1,18 @@ -export const PLAY_OUTLINE = - ["svg", { viewBox: "0 0 16 16" }, - ["path", { d: "M8 14.5c3.6 0 6.5-2.9 6.5-6.5S11.6 1.5 8 1.5 1.5 4.4 1.5 8s2.9 6.5 6.5 6.5zM8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z" }], - ["path", { d: "M5 4.8c0-.2.1-.4.2-.6.3-.6 1.1-.8 1.7-.4L12.4 7c.2.1.3.3.4.4.3.6.2 1.4-.4 1.7l-5.5 3.2c-.2.1-.4.2-.6.2-.7 0-1.2-.6-1.2-1.2V4.8zm2 5.1L10.3 8 7 6.1v3.8z" }]]; +export const PLAY_OUTLINE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + d: + "M8 14.5c3.6 0 6.5-2.9 6.5-6.5S11.6 1.5 8 1.5 1.5 4.4 1.5 8s2.9 6.5 6.5 6.5zM8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z", + }, + ], + [ + "path", + { + d: + "M5 4.8c0-.2.1-.4.2-.6.3-.6 1.1-.8 1.7-.4L12.4 7c.2.1.3.3.4.4.3.6.2 1.4-.4 1.7l-5.5 3.2c-.2.1-.4.2-.6.2-.7 0-1.2-.6-1.2-1.2V4.8zm2 5.1L10.3 8 7 6.1v3.8z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/play-solid.ts b/packages/hiccup-carbon-icons/src/play-solid.ts index b48db0e54d..64ff0f1fdd 100644 --- a/packages/hiccup-carbon-icons/src/play-solid.ts +++ b/packages/hiccup-carbon-icons/src/play-solid.ts @@ -1,7 +1,12 @@ -export const PLAY_SOLID = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "evenodd", - d: "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zM5.497 4.776v6.456a.25.25 0 0 0 .377.216l5.498-3.232a.25.25 0 0 0 0-.431L5.874 4.56a.25.25 0 0 0-.377.215z", - }]]; +export const PLAY_SOLID = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zM5.497 4.776v6.456a.25.25 0 0 0 .377.216l5.498-3.232a.25.25 0 0 0 0-.431L5.874 4.56a.25.25 0 0 0-.377.215z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/play.ts b/packages/hiccup-carbon-icons/src/play.ts index 58e9faacd6..ac81468147 100644 --- a/packages/hiccup-carbon-icons/src/play.ts +++ b/packages/hiccup-carbon-icons/src/play.ts @@ -1,3 +1,5 @@ -export const PLAY = - ["svg", { viewBox: "0 0 21 24" }, - ["path", { d: "M0 24l21-12L0 0z" }]]; +export const PLAY = [ + "svg", + { viewBox: "0 0 21 24" }, + ["path", { d: "M0 24l21-12L0 0z" }], +]; diff --git a/packages/hiccup-carbon-icons/src/portfolio.ts b/packages/hiccup-carbon-icons/src/portfolio.ts index 206d10ee32..02f1aa7efa 100644 --- a/packages/hiccup-carbon-icons/src/portfolio.ts +++ b/packages/hiccup-carbon-icons/src/portfolio.ts @@ -1,7 +1,12 @@ -export const PORTFOLIO = - ["svg", { viewBox: "0 0 24 20" }, - ["path", - { - "fill-rule": "evenodd", - d: "M7 5H6V1a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v4h-1V1H7v4zM1 19h22V7H1v12zM23 6H1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1z", - }]]; +export const PORTFOLIO = [ + "svg", + { viewBox: "0 0 24 20" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M7 5H6V1a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v4h-1V1H7v4zM1 19h22V7H1v12zM23 6H1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/power.ts b/packages/hiccup-carbon-icons/src/power.ts index 2b468dd744..1551d16167 100644 --- a/packages/hiccup-carbon-icons/src/power.ts +++ b/packages/hiccup-carbon-icons/src/power.ts @@ -1,9 +1,17 @@ -export const POWER = - ["svg", { viewBox: "0 0 15 16" }, - ["g", { "fill-rule": "evenodd" }, - ["path", { d: "M7 0h1v8H7z" }], - ["path", - { - "fill-rule": "nonzero", - d: "M10.74 1.735a7.5 7.5 0 1 1-8.45 1.371c.627-.605 1.62-1.186 2.086-1.398l.414.91c-.52.236-1.356.774-1.805 1.208a6.5 6.5 0 1 0 7.323-1.189l.432-.902z", - }]]]; +export const POWER = [ + "svg", + { viewBox: "0 0 15 16" }, + [ + "g", + { "fill-rule": "evenodd" }, + ["path", { d: "M7 0h1v8H7z" }], + [ + "path", + { + "fill-rule": "nonzero", + d: + "M10.74 1.735a7.5 7.5 0 1 1-8.45 1.371c.627-.605 1.62-1.186 2.086-1.398l.414.91c-.52.236-1.356.774-1.805 1.208a6.5 6.5 0 1 0 7.323-1.189l.432-.902z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/predictive.ts b/packages/hiccup-carbon-icons/src/predictive.ts index 9dba9633b9..0d968a2ec5 100644 --- a/packages/hiccup-carbon-icons/src/predictive.ts +++ b/packages/hiccup-carbon-icons/src/predictive.ts @@ -1,7 +1,12 @@ -export const PREDICTIVE = - ["svg", { viewBox: "0 0 24 18" }, - ["path", - { - "fill-rule": "evenodd", - d: "M6 9h1V8H6v1zM4 9h1V8H4v1zm-1-.5a1.5 1.5 0 1 1-2.999.001A1.5 1.5 0 0 1 3 8.5zM13 12a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm9.5-5c-.652 0-1.2.42-1.408 1h-4.234a3.968 3.968 0 0 0-.85-1.61l2.274-3.41c.072.008.144.02.218.02A1.5 1.5 0 1 0 17 1.5c0 .39.152.74.395 1.007l-2.132 3.198A3.978 3.978 0 0 0 13 5a3.988 3.988 0 0 0-3.858 3H8v1h1a3.999 3.999 0 0 0 6.263 3.295l2.132 3.198A1.49 1.49 0 0 0 17 16.5a1.5 1.5 0 1 0 1.5-1.5c-.074 0-.146.012-.218.02l-2.274-3.41c.61-.702.992-1.607.992-2.61h4.092c.207.58.756 1 1.408 1a1.5 1.5 0 0 0 0-3z", - }]]; +export const PREDICTIVE = [ + "svg", + { viewBox: "0 0 24 18" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M6 9h1V8H6v1zM4 9h1V8H4v1zm-1-.5a1.5 1.5 0 1 1-2.999.001A1.5 1.5 0 0 1 3 8.5zM13 12a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm9.5-5c-.652 0-1.2.42-1.408 1h-4.234a3.968 3.968 0 0 0-.85-1.61l2.274-3.41c.072.008.144.02.218.02A1.5 1.5 0 1 0 17 1.5c0 .39.152.74.395 1.007l-2.132 3.198A3.978 3.978 0 0 0 13 5a3.988 3.988 0 0 0-3.858 3H8v1h1a3.999 3.999 0 0 0 6.263 3.295l2.132 3.198A1.49 1.49 0 0 0 17 16.5a1.5 1.5 0 1 0 1.5-1.5c-.074 0-.146.012-.218.02l-2.274-3.41c.61-.702.992-1.607.992-2.61h4.092c.207.58.756 1 1.408 1a1.5 1.5 0 0 0 0-3z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/purchase.ts b/packages/hiccup-carbon-icons/src/purchase.ts index 562e6a7889..61021733f8 100644 --- a/packages/hiccup-carbon-icons/src/purchase.ts +++ b/packages/hiccup-carbon-icons/src/purchase.ts @@ -1,4 +1,12 @@ -export const PURCHASE = - ["svg", { viewBox: "0 0 16 11" }, - ["path", { d: "M15 3V1H1v2h14zm0 1H1v6h14V4zM.8 0h14.5c.4 0 .7.3.7.8v9.5c0 .4-.3.8-.8.8H.8c-.5-.1-.8-.4-.8-.9V.8C0 .3.3 0 .8 0z" }], - ["path", { d: "M2 9V8h5v1z" }]]; +export const PURCHASE = [ + "svg", + { viewBox: "0 0 16 11" }, + [ + "path", + { + d: + "M15 3V1H1v2h14zm0 1H1v6h14V4zM.8 0h14.5c.4 0 .7.3.7.8v9.5c0 .4-.3.8-.8.8H.8c-.5-.1-.8-.4-.8-.9V.8C0 .3.3 0 .8 0z", + }, + ], + ["path", { d: "M2 9V8h5v1z" }], +]; diff --git a/packages/hiccup-carbon-icons/src/restart.ts b/packages/hiccup-carbon-icons/src/restart.ts index a90da58434..e1b3a75c48 100644 --- a/packages/hiccup-carbon-icons/src/restart.ts +++ b/packages/hiccup-carbon-icons/src/restart.ts @@ -1,7 +1,12 @@ -export const RESTART = - ["svg", { viewBox: "0 0 13 16" }, - ["path", - { - "fill-rule": "nonzero", - d: "M10.948 3L8.542.727 9.23 0 13 3.564 9.228 7.108l-.685-.729L11.075 4H6.5A5.5 5.5 0 1 0 12 9.5h1A6.5 6.5 0 1 1 6.5 3h4.448z", - }]]; +export const RESTART = [ + "svg", + { viewBox: "0 0 13 16" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M10.948 3L8.542.727 9.23 0 13 3.564 9.228 7.108l-.685-.729L11.075 4H6.5A5.5 5.5 0 1 0 12 9.5h1A6.5 6.5 0 1 1 6.5 3h4.448z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/save.ts b/packages/hiccup-carbon-icons/src/save.ts index dca8b0a138..7d546b22ec 100644 --- a/packages/hiccup-carbon-icons/src/save.ts +++ b/packages/hiccup-carbon-icons/src/save.ts @@ -1,7 +1,12 @@ -export const SAVE = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "nonzero", - d: "M12 1.597v2.406a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V1H1v14h3V9a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v6h3V4.702l-3-3.105zM1 0h10.848L16 4.298V15a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1zm10 9H5v5.992l6 .007V9zM5 1v3.003h6V1H5z", - }]]; +export const SAVE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M12 1.597v2.406a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V1H1v14h3V9a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v6h3V4.702l-3-3.105zM1 0h10.848L16 4.298V15a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1zm10 9H5v5.992l6 .007V9zM5 1v3.003h6V1H5z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/schematics.ts b/packages/hiccup-carbon-icons/src/schematics.ts index ba9ba61f3b..3c5f4c7a95 100644 --- a/packages/hiccup-carbon-icons/src/schematics.ts +++ b/packages/hiccup-carbon-icons/src/schematics.ts @@ -1,8 +1,21 @@ -export const SCHEMATICS = - ["svg", +export const SCHEMATICS = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 24", + d: + "M22.259 11.576L19.2 9.694c1.882-1.082 3.53-2.023 3.67-2.118a.494.494 0 0 0 .236-.423.494.494 0 0 0-.235-.424A2472.813 2472.813 0 0 0 12.988.706c-.047-.047-.047-.047-.094-.047C12.471.424 12 .424 11.53.565c-.376.14-.705.33-.988.517-.141.047-6.117 3.765-8.094 4.989l-.659.423a2.054 2.054 0 0 0-.612.424c-.847.94-.894 2.682-.517 4 .188.517.423 1.035.706 1.411.376.424.753.706 1.176.942l.094.047c.283.188 8.941 5.082 9.318 5.27.047.047.659.424.659 1.883 0 .282.188.47.47.47.283 0 .47-.188.47-.47 0-2.024-1.034-2.636-1.128-2.683-3.106-1.74-9.083-5.13-9.318-5.27l-.094-.047c-.33-.236-.66-.424-.847-.753-.236-.283-.377-.66-.518-1.083-.282-1.035-.282-2.447.33-3.106.094-.094.188-.14.329-.235l.659-.423c7.106-4.377 8.047-4.989 8.094-4.989.235-.188.47-.33.753-.423.282-.094.47-.047.706.047h.047c.47.33 5.788 3.53 9.176 5.553-2.259 1.317-9.317 5.317-9.553 5.459a.539.539 0 0 1-.47 0c-.236-.142-6.024-3.483-8.236-4.753-.235-.094-.517-.047-.658.188-.142.188-.048.518.14.612.33.188 8 4.611 8.33 4.847.424.235.941.235 1.365 0 .188-.094 3.012-1.741 5.647-3.247l3.53 2.164c.093.047 1.27.706 1.27 2.26 0 1.693-.47 2.023-1.224 2.635-.047 0-1.223.752-8.47 5.223l-.33.188c-.33.236-.847.518-1.082.424-.235-.141-4.047-2.494-10.024-6.118l1.6-.988a.507.507 0 0 0 .142-.659c-.142-.235-.424-.33-.66-.188L.8 16.47a.562.562 0 0 0-.235.423c0 .188.094.33.235.424l.141.094c10.4 6.353 10.588 6.447 10.635 6.494.142.094.33.094.518.094.518 0 1.082-.282 1.459-.47l.33-.189c8.47-5.27 8.47-5.27 8.517-5.27.847-.66 1.6-1.224 1.6-3.389 0-2.117-1.6-3.011-1.741-3.106z", }, - ["path", { d: "M22.259 11.576L19.2 9.694c1.882-1.082 3.53-2.023 3.67-2.118a.494.494 0 0 0 .236-.423.494.494 0 0 0-.235-.424A2472.813 2472.813 0 0 0 12.988.706c-.047-.047-.047-.047-.094-.047C12.471.424 12 .424 11.53.565c-.376.14-.705.33-.988.517-.141.047-6.117 3.765-8.094 4.989l-.659.423a2.054 2.054 0 0 0-.612.424c-.847.94-.894 2.682-.517 4 .188.517.423 1.035.706 1.411.376.424.753.706 1.176.942l.094.047c.283.188 8.941 5.082 9.318 5.27.047.047.659.424.659 1.883 0 .282.188.47.47.47.283 0 .47-.188.47-.47 0-2.024-1.034-2.636-1.128-2.683-3.106-1.74-9.083-5.13-9.318-5.27l-.094-.047c-.33-.236-.66-.424-.847-.753-.236-.283-.377-.66-.518-1.083-.282-1.035-.282-2.447.33-3.106.094-.094.188-.14.329-.235l.659-.423c7.106-4.377 8.047-4.989 8.094-4.989.235-.188.47-.33.753-.423.282-.094.47-.047.706.047h.047c.47.33 5.788 3.53 9.176 5.553-2.259 1.317-9.317 5.317-9.553 5.459a.539.539 0 0 1-.47 0c-.236-.142-6.024-3.483-8.236-4.753-.235-.094-.517-.047-.658.188-.142.188-.048.518.14.612.33.188 8 4.611 8.33 4.847.424.235.941.235 1.365 0 .188-.094 3.012-1.741 5.647-3.247l3.53 2.164c.093.047 1.27.706 1.27 2.26 0 1.693-.47 2.023-1.224 2.635-.047 0-1.223.752-8.47 5.223l-.33.188c-.33.236-.847.518-1.082.424-.235-.141-4.047-2.494-10.024-6.118l1.6-.988a.507.507 0 0 0 .142-.659c-.142-.235-.424-.33-.66-.188L.8 16.47a.562.562 0 0 0-.235.423c0 .188.094.33.235.424l.141.094c10.4 6.353 10.588 6.447 10.635 6.494.142.094.33.094.518.094.518 0 1.082-.282 1.459-.47l.33-.189c8.47-5.27 8.47-5.27 8.517-5.27.847-.66 1.6-1.224 1.6-3.389 0-2.117-1.6-3.011-1.741-3.106z" }], - ["path", { d: "M5.694 7.247a.488.488 0 0 0 .565.377l4.612-.753-1.036 2.588c-.094.235.047.517.283.612.047.047.14.047.188.047.188 0 .376-.142.423-.283l1.695-4.188L6.07 6.682c-.236.047-.424.33-.377.565zm12.47-1.082a.507.507 0 0 0-.658-.141l-3.012 1.835a.507.507 0 0 0-.141.659c.047.094.141.14.235.188.141.047.33 0 .424-.047l3.012-1.835a.507.507 0 0 0 .14-.66z" }]]; + ], + [ + "path", + { + d: + "M5.694 7.247a.488.488 0 0 0 .565.377l4.612-.753-1.036 2.588c-.094.235.047.517.283.612.047.047.14.047.188.047.188 0 .376-.142.423-.283l1.695-4.188L6.07 6.682c-.236.047-.424.33-.377.565zm12.47-1.082a.507.507 0 0 0-.658-.141l-3.012 1.835a.507.507 0 0 0-.141.659c.047.094.141.14.235.188.141.047.33 0 .424-.047l3.012-1.835a.507.507 0 0 0 .14-.66z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/search.ts b/packages/hiccup-carbon-icons/src/search.ts index ac9910ee51..17a12bafbb 100644 --- a/packages/hiccup-carbon-icons/src/search.ts +++ b/packages/hiccup-carbon-icons/src/search.ts @@ -1,7 +1,12 @@ -export const SEARCH = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "nonzero", - d: "M6.5 12a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zm4.936-1.27l4.563 4.557-.707.708-4.563-4.558a6.5 6.5 0 1 1 .707-.707z", - }]]; +export const SEARCH = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M6.5 12a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zm4.936-1.27l4.563 4.557-.707.708-4.563-4.558a6.5 6.5 0 1 1 .707-.707z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/security.ts b/packages/hiccup-carbon-icons/src/security.ts index b96c477daa..df0c144b18 100644 --- a/packages/hiccup-carbon-icons/src/security.ts +++ b/packages/hiccup-carbon-icons/src/security.ts @@ -1,8 +1,21 @@ -export const SECURITY = - ["svg", +export const SECURITY = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 16 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 16 24", + d: + "M13 9.8V5c0-2.8-2.2-5-5-5S3 2.2 3 5v4.8c-1.8 1.5-3 3.7-3 6.2 0 4.4 3.6 8 8 8s8-3.6 8-8c0-2.5-1.2-4.8-3-6.2zM4 5c0-2.2 1.8-4 4-4s4 1.8 4 4v4.1C10.8 8.4 9.5 8 8 8s-2.8.4-4 1.1V5zm4 18c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7z", }, - ["path", { d: "M13 9.8V5c0-2.8-2.2-5-5-5S3 2.2 3 5v4.8c-1.8 1.5-3 3.7-3 6.2 0 4.4 3.6 8 8 8s8-3.6 8-8c0-2.5-1.2-4.8-3-6.2zM4 5c0-2.2 1.8-4 4-4s4 1.8 4 4v4.1C10.8 8.4 9.5 8 8 8s-2.8.4-4 1.1V5zm4 18c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7z" }], - ["path", { d: "M9.6 14.4c0-.9-.7-1.6-1.6-1.6-.9 0-1.6.7-1.6 1.6 0 .5.2.9.6 1.2V18c0 .6.4 1 1 1s1-.5 1-1v-2.4c.3-.2.6-.7.6-1.2z" }]]; + ], + [ + "path", + { + d: + "M9.6 14.4c0-.9-.7-1.6-1.6-1.6-.9 0-1.6.7-1.6 1.6 0 .5.2.9.6 1.2V18c0 .6.4 1 1 1s1-.5 1-1v-2.4c.3-.2.6-.7.6-1.2z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/services.ts b/packages/hiccup-carbon-icons/src/services.ts index fd24cbc5d8..c753917534 100644 --- a/packages/hiccup-carbon-icons/src/services.ts +++ b/packages/hiccup-carbon-icons/src/services.ts @@ -1,8 +1,21 @@ -export const SERVICES = - ["svg", +export const SERVICES = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 23 23", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 23 23", + d: + "M20.5 9c-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5S21.9 9 20.5 9zm0 4c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5c0 .9-.7 1.5-1.5 1.5zM5 11.5C5 10.1 3.9 9 2.5 9S0 10.1 0 11.5 1.1 14 2.5 14 5 12.9 5 11.5zM2.5 13c-.8 0-1.5-.6-1.5-1.5 0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5c0 .9-.7 1.5-1.5 1.5zM12 18v-4c1.1-.2 2-1.2 2-2.5 0-1.2-.9-2.2-2-2.5V5c1.1-.2 2-1.2 2-2.5C14 1.1 12.9 0 11.5 0S9 1.1 9 2.5c0 1.2.9 2.2 2 2.5v4c-1.1.2-2 1.2-2 2.5 0 1.2.9 2.2 2 2.5v4c-1.1.2-2 1.2-2 2.5 0 1.4 1.1 2.5 2.5 2.5s2.5-1.1 2.5-2.5c0-1.2-.8-2.2-2-2.5zM10 2.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5S12.3 4 11.5 4 10 3.3 10 2.5zm0 9c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5zM11.5 22c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5z", }, - ["path", { d: "M20.5 9c-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5S21.9 9 20.5 9zm0 4c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5c0 .9-.7 1.5-1.5 1.5zM5 11.5C5 10.1 3.9 9 2.5 9S0 10.1 0 11.5 1.1 14 2.5 14 5 12.9 5 11.5zM2.5 13c-.8 0-1.5-.6-1.5-1.5 0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5c0 .9-.7 1.5-1.5 1.5zM12 18v-4c1.1-.2 2-1.2 2-2.5 0-1.2-.9-2.2-2-2.5V5c1.1-.2 2-1.2 2-2.5C14 1.1 12.9 0 11.5 0S9 1.1 9 2.5c0 1.2.9 2.2 2 2.5v4c-1.1.2-2 1.2-2 2.5 0 1.2.9 2.2 2 2.5v4c-1.1.2-2 1.2-2 2.5 0 1.4 1.1 2.5 2.5 2.5s2.5-1.1 2.5-2.5c0-1.2-.8-2.2-2-2.5zM10 2.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5S12.3 4 11.5 4 10 3.3 10 2.5zm0 9c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5zM11.5 22c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5z" }], - ["path", { d: "M9 6.5C9 5.1 7.9 4 6.5 4S4 5.1 4 6.5c0 1.2.9 2.2 2 2.5v5.1c-1.1.2-2 1.2-2 2.5S5.1 19 6.5 19 9 17.9 9 16.5c0-1.2-.9-2.2-2-2.5V8.9c1.1-.2 2-1.2 2-2.4zm-4 0C5 5.7 5.7 5 6.5 5S8 5.7 8 6.5 7.3 8 6.5 8 5 7.3 5 6.5zm3 10c0 .9-.7 1.5-1.5 1.5S5 17.4 5 16.5 5.7 15 6.5 15s1.5.7 1.5 1.5zM17 14.1V8.9c1.1-.2 2-1.2 2-2.5S17.9 4 16.5 4 14 5.1 14 6.5c0 1.2.9 2.2 2 2.5v5.1c-1.1.2-2 1.2-2 2.5 0 1.4 1.1 2.5 2.5 2.5S19 18 19 16.6c0-1.3-.8-2.3-2-2.5zm-2-7.6c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5S17.3 8 16.5 8 15 7.3 15 6.5zM16.5 18c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5z" }]]; + ], + [ + "path", + { + d: + "M9 6.5C9 5.1 7.9 4 6.5 4S4 5.1 4 6.5c0 1.2.9 2.2 2 2.5v5.1c-1.1.2-2 1.2-2 2.5S5.1 19 6.5 19 9 17.9 9 16.5c0-1.2-.9-2.2-2-2.5V8.9c1.1-.2 2-1.2 2-2.4zm-4 0C5 5.7 5.7 5 6.5 5S8 5.7 8 6.5 7.3 8 6.5 8 5 7.3 5 6.5zm3 10c0 .9-.7 1.5-1.5 1.5S5 17.4 5 16.5 5.7 15 6.5 15s1.5.7 1.5 1.5zM17 14.1V8.9c1.1-.2 2-1.2 2-2.5S17.9 4 16.5 4 14 5.1 14 6.5c0 1.2.9 2.2 2 2.5v5.1c-1.1.2-2 1.2-2 2.5 0 1.4 1.1 2.5 2.5 2.5S19 18 19 16.6c0-1.3-.8-2.3-2-2.5zm-2-7.6c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5S17.3 8 16.5 8 15 7.3 15 6.5zM16.5 18c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/settings.ts b/packages/hiccup-carbon-icons/src/settings.ts index 99c6bce650..df635b6dc6 100644 --- a/packages/hiccup-carbon-icons/src/settings.ts +++ b/packages/hiccup-carbon-icons/src/settings.ts @@ -1,4 +1,18 @@ -export const SETTINGS = - ["svg", { viewBox: "0 0 15 16" }, - ["path", { d: "M7.5 10.5C8.9 10.5 10 9.4 10 8S8.9 5.5 7.5 5.5 5 6.6 5 8s1.2 2.5 2.5 2.5zm0 1C5.6 11.5 4 9.9 4 8s1.6-3.5 3.5-3.5S11 6.1 11 8s-1.5 3.5-3.5 3.5z" }], - ["path", { d: "M6.3 2.6l-.3.1c-.7.2-1.3.5-1.9 1l-.2.2-1.4-.8-1.3 1.8L2.4 6l-.1.2C2.1 6.8 2 7.4 2 8c0 .3 0 .7.1 1l.1.3-1.2 1L2.2 12l1.1-.6.3.3c.6.8 1.4 1.3 2.4 1.6l.3.1.2 1.6h2.1l.2-1.6.3-.1c.8-.2 1.6-.7 2.2-1.3l.3-.2 1.1.6 1.2-1.7-1.1-1 .1-.3c.1-.5.1-1 .1-1.4 0-.5-.1-1.1-.2-1.6l-.1-.3 1.2-1-1.2-1.7-1.4.6-.3-.2c-.6-.5-1.3-.9-2-1.1l-.2-.1L8.6 1H6.5l-.2 1.6zM5.5.9c0-.5.5-.9 1-.9h2.1c.5 0 .9.4 1 .9l.1 1c.6.2 1.2.5 1.8 1l.7-.4c.4-.2 1-.1 1.3.3l1.2 1.7c.3.4.2 1-.1 1.3l-.7.6c.1.5.1 1.1.1 1.6 0 .4 0 .8-.1 1.3l.6.6c.4.3.4.9.1 1.3l-1.2 1.7c-.3.4-.8.5-1.3.3l-.4-.2c-.6.5-1.3.9-2 1.2l-.1 1c-.1.5-.5.9-1 .9H6.5c-.5 0-.9-.4-1-.9l-.1-1c-.8-.3-1.6-.8-2.3-1.4l-.4.2c-.4.2-1 .1-1.3-.3L.2 11c-.3-.4-.2-1 .1-1.3l.8-.7c0-.4-.1-.7-.1-1 0-.6.1-1.2.2-1.8l-.6-.6C.2 5.3.1 4.7.4 4.3l1.2-1.7c.3-.5.9-.6 1.3-.4l.9.5c.5-.3 1-.6 1.6-.8l.1-1z" }]]; +export const SETTINGS = [ + "svg", + { viewBox: "0 0 15 16" }, + [ + "path", + { + d: + "M7.5 10.5C8.9 10.5 10 9.4 10 8S8.9 5.5 7.5 5.5 5 6.6 5 8s1.2 2.5 2.5 2.5zm0 1C5.6 11.5 4 9.9 4 8s1.6-3.5 3.5-3.5S11 6.1 11 8s-1.5 3.5-3.5 3.5z", + }, + ], + [ + "path", + { + d: + "M6.3 2.6l-.3.1c-.7.2-1.3.5-1.9 1l-.2.2-1.4-.8-1.3 1.8L2.4 6l-.1.2C2.1 6.8 2 7.4 2 8c0 .3 0 .7.1 1l.1.3-1.2 1L2.2 12l1.1-.6.3.3c.6.8 1.4 1.3 2.4 1.6l.3.1.2 1.6h2.1l.2-1.6.3-.1c.8-.2 1.6-.7 2.2-1.3l.3-.2 1.1.6 1.2-1.7-1.1-1 .1-.3c.1-.5.1-1 .1-1.4 0-.5-.1-1.1-.2-1.6l-.1-.3 1.2-1-1.2-1.7-1.4.6-.3-.2c-.6-.5-1.3-.9-2-1.1l-.2-.1L8.6 1H6.5l-.2 1.6zM5.5.9c0-.5.5-.9 1-.9h2.1c.5 0 .9.4 1 .9l.1 1c.6.2 1.2.5 1.8 1l.7-.4c.4-.2 1-.1 1.3.3l1.2 1.7c.3.4.2 1-.1 1.3l-.7.6c.1.5.1 1.1.1 1.6 0 .4 0 .8-.1 1.3l.6.6c.4.3.4.9.1 1.3l-1.2 1.7c-.3.4-.8.5-1.3.3l-.4-.2c-.6.5-1.3.9-2 1.2l-.1 1c-.1.5-.5.9-1 .9H6.5c-.5 0-.9-.4-1-.9l-.1-1c-.8-.3-1.6-.8-2.3-1.4l-.4.2c-.4.2-1 .1-1.3-.3L.2 11c-.3-.4-.2-1 .1-1.3l.8-.7c0-.4-.1-.7-.1-1 0-.6.1-1.2.2-1.8l-.6-.6C.2 5.3.1 4.7.4 4.3l1.2-1.7c.3-.5.9-.6 1.3-.4l.9.5c.5-.3 1-.6 1.6-.8l.1-1z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/star-outline.ts b/packages/hiccup-carbon-icons/src/star-outline.ts index 23345bbfdd..866a2bfe73 100644 --- a/packages/hiccup-carbon-icons/src/star-outline.ts +++ b/packages/hiccup-carbon-icons/src/star-outline.ts @@ -1,3 +1,11 @@ -export const STAR_OUTLINE = - ["svg", { viewBox: "0 0 16 15" }, - ["path", { d: "M3 15l1-5.2-4-4L5.5 5 8 0l2.5 5 5.5.7-4 4 1 5.2-5-2.5L3 15zm5-3.6l3.6 1.8-.7-3.8 2.9-3-4-.5L8 2.2 6.2 5.9l-4 .5 2.9 2.9-.7 3.8L8 11.4z" }]]; +export const STAR_OUTLINE = [ + "svg", + { viewBox: "0 0 16 15" }, + [ + "path", + { + d: + "M3 15l1-5.2-4-4L5.5 5 8 0l2.5 5 5.5.7-4 4 1 5.2-5-2.5L3 15zm5-3.6l3.6 1.8-.7-3.8 2.9-3-4-.5L8 2.2 6.2 5.9l-4 .5 2.9 2.9-.7 3.8L8 11.4z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/star-solid.ts b/packages/hiccup-carbon-icons/src/star-solid.ts index def7732fac..99141c77ff 100644 --- a/packages/hiccup-carbon-icons/src/star-solid.ts +++ b/packages/hiccup-carbon-icons/src/star-solid.ts @@ -1,7 +1,12 @@ -export const STAR_SOLID = - ["svg", { viewBox: "0 0 16 15" }, - ["path", - { - "fill-rule": "evenodd", - d: "M7.998 0L5.5 5 0 5.75l4 4L3 15l4.998-2.5L13 15l-1-5.25 4-4.005L10.5 5z", - }]]; +export const STAR_SOLID = [ + "svg", + { viewBox: "0 0 16 15" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M7.998 0L5.5 5 0 5.75l4 4L3 15l4.998-2.5L13 15l-1-5.25 4-4.005L10.5 5z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/start-outline.ts b/packages/hiccup-carbon-icons/src/start-outline.ts index e3de1325a6..bd1622a1e5 100644 --- a/packages/hiccup-carbon-icons/src/start-outline.ts +++ b/packages/hiccup-carbon-icons/src/start-outline.ts @@ -1,8 +1,15 @@ -export const START_OUTLINE = - ["svg", +export const START_OUTLINE = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 24", + }, + ["path", { d: "M8 17l9-5-9-5z" }], + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 24", + d: + "M12 2c5.5 0 10 4.5 10 10s-4.5 10-10 10S2 17.5 2 12 6.5 2 12 2zm0-2C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.6 0 12 0z", }, - ["path", { d: "M8 17l9-5-9-5z" }], - ["path", { d: "M12 2c5.5 0 10 4.5 10 10s-4.5 10-10 10S2 17.5 2 12 6.5 2 12 2zm0-2C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.6 0 12 0z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/start.ts b/packages/hiccup-carbon-icons/src/start.ts index b82b5b2b3a..c301e1843f 100644 --- a/packages/hiccup-carbon-icons/src/start.ts +++ b/packages/hiccup-carbon-icons/src/start.ts @@ -1,3 +1,5 @@ -export const START = - ["svg", { viewBox: "0 0 21 24" }, - ["path", { d: "M0 24l21-12L0 0z" }]]; +export const START = [ + "svg", + { viewBox: "0 0 21 24" }, + ["path", { d: "M0 24l21-12L0 0z" }], +]; diff --git a/packages/hiccup-carbon-icons/src/stop-outline.ts b/packages/hiccup-carbon-icons/src/stop-outline.ts index 4f24a8f986..d45c545750 100644 --- a/packages/hiccup-carbon-icons/src/stop-outline.ts +++ b/packages/hiccup-carbon-icons/src/stop-outline.ts @@ -1,4 +1,18 @@ -export const STOP_OUTLINE = - ["svg", { viewBox: "0 0 16 16" }, - ["path", { d: "M8 14.5c3.6 0 6.5-2.9 6.5-6.5S11.6 1.5 8 1.5 1.5 4.4 1.5 8s2.9 6.5 6.5 6.5zM8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z" }], - ["path", { d: "M6 6v4h4V6H6zM5 4h6c.6 0 1 .4 1 1v6c0 .6-.4 1-1 1H5c-.6 0-1-.4-1-1V5c0-.6.4-1 1-1z" }]]; +export const STOP_OUTLINE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + d: + "M8 14.5c3.6 0 6.5-2.9 6.5-6.5S11.6 1.5 8 1.5 1.5 4.4 1.5 8s2.9 6.5 6.5 6.5zM8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z", + }, + ], + [ + "path", + { + d: + "M6 6v4h4V6H6zM5 4h6c.6 0 1 .4 1 1v6c0 .6-.4 1-1 1H5c-.6 0-1-.4-1-1V5c0-.6.4-1 1-1z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/stop-solid.ts b/packages/hiccup-carbon-icons/src/stop-solid.ts index 7c451e72dc..6f5a347aa0 100644 --- a/packages/hiccup-carbon-icons/src/stop-solid.ts +++ b/packages/hiccup-carbon-icons/src/stop-solid.ts @@ -1,7 +1,12 @@ -export const STOP_SOLID = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "evenodd", - d: "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zM6 5a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1H6z", - }]]; +export const STOP_SOLID = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "evenodd", + d: + "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zM6 5a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1H6z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/stop.ts b/packages/hiccup-carbon-icons/src/stop.ts index f17ef74b4f..c4d7a79a94 100644 --- a/packages/hiccup-carbon-icons/src/stop.ts +++ b/packages/hiccup-carbon-icons/src/stop.ts @@ -1,3 +1,5 @@ -export const STOP = - ["svg", { viewBox: "0 0 24 24" }, - ["path", { d: "M0 0h24v24H0z" }]]; +export const STOP = [ + "svg", + { viewBox: "0 0 24 24" }, + ["path", { d: "M0 0h24v24H0z" }], +]; diff --git a/packages/hiccup-carbon-icons/src/storage.ts b/packages/hiccup-carbon-icons/src/storage.ts index 9fbb6e290f..ff5e371f0c 100644 --- a/packages/hiccup-carbon-icons/src/storage.ts +++ b/packages/hiccup-carbon-icons/src/storage.ts @@ -1,7 +1,14 @@ -export const STORAGE = - ["svg", +export const STORAGE = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 24 24", + d: + "M11.9 1.3c5.4 0 9.3 1 10.6 1.7-1.3.7-4.9 1.6-10.6 1.6-5.6 0-9.1-1-10.3-1.6 1.1-.7 4.7-1.7 10.3-1.7zm0-1.3C5.1 0 0 1.4 0 3s5.1 3 11.9 3C18.7 6 24 4.6 24 3s-5.4-3-12.1-3zM12 18c-4.5 0-12-.7-12-3.2V12h1.2v2.9c0 .5 3.3 2 10.8 2 7.1 0 10.8-1.4 10.8-2V12H24v2.9c0 2.4-7.5 3.1-12 3.1zM12 24c-4.5 0-12-.7-12-3.2V18h1.2v2.8c0 .5 3.3 2 10.8 2 7.1 0 10.8-1.4 10.8-2V18H24v2.8c0 2.5-7.5 3.2-12 3.2zM12 12c-4.4 0-12-.7-12-3.2V6h1.2v2.8c0 .5 3.3 2 10.8 2 7.5 0 10.8-1.4 10.8-2V6H24v2.8c0 2.5-7.5 3.2-12 3.2z", }, - ["path", { d: "M11.9 1.3c5.4 0 9.3 1 10.6 1.7-1.3.7-4.9 1.6-10.6 1.6-5.6 0-9.1-1-10.3-1.6 1.1-.7 4.7-1.7 10.3-1.7zm0-1.3C5.1 0 0 1.4 0 3s5.1 3 11.9 3C18.7 6 24 4.6 24 3s-5.4-3-12.1-3zM12 18c-4.5 0-12-.7-12-3.2V12h1.2v2.9c0 .5 3.3 2 10.8 2 7.1 0 10.8-1.4 10.8-2V12H24v2.9c0 2.4-7.5 3.1-12 3.1zM12 24c-4.5 0-12-.7-12-3.2V18h1.2v2.8c0 .5 3.3 2 10.8 2 7.1 0 10.8-1.4 10.8-2V18H24v2.8c0 2.5-7.5 3.2-12 3.2zM12 12c-4.4 0-12-.7-12-3.2V6h1.2v2.8c0 .5 3.3 2 10.8 2 7.5 0 10.8-1.4 10.8-2V6H24v2.8c0 2.5-7.5 3.2-12 3.2z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/subtract-outline.ts b/packages/hiccup-carbon-icons/src/subtract-outline.ts index 1193da6173..ed4c30e2d4 100644 --- a/packages/hiccup-carbon-icons/src/subtract-outline.ts +++ b/packages/hiccup-carbon-icons/src/subtract-outline.ts @@ -1,9 +1,17 @@ -export const SUBTRACT_OUTLINE = - ["svg", { viewBox: "0 0 16 16" }, - ["g", { "fill-rule": "evenodd" }, - ["path", - { - "fill-rule": "nonzero", - d: "M8 14.5a6.5 6.5 0 1 0 0-13 6.5 6.5 0 0 0 0 13zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16z", - }], - ["path", { d: "M4 7h8v2H4z" }]]]; +export const SUBTRACT_OUTLINE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "g", + { "fill-rule": "evenodd" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M8 14.5a6.5 6.5 0 1 0 0-13 6.5 6.5 0 0 0 0 13zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16z", + }, + ], + ["path", { d: "M4 7h8v2H4z" }], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/subtract-solid.ts b/packages/hiccup-carbon-icons/src/subtract-solid.ts index 340ab1307b..0e561fd469 100644 --- a/packages/hiccup-carbon-icons/src/subtract-solid.ts +++ b/packages/hiccup-carbon-icons/src/subtract-solid.ts @@ -1,7 +1,11 @@ -export const SUBTRACT_SOLID = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "evenodd", - d: "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zM4 7v2h8V7H4z", - }]]; +export const SUBTRACT_SOLID = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "evenodd", + d: "M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zM4 7v2h8V7H4z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/terminal.ts b/packages/hiccup-carbon-icons/src/terminal.ts index 854340d00d..8059b13bbb 100644 --- a/packages/hiccup-carbon-icons/src/terminal.ts +++ b/packages/hiccup-carbon-icons/src/terminal.ts @@ -1,4 +1,12 @@ -export const TERMINAL = - ["svg", { viewBox: "0 0 16 16" }, - ["path", { d: "M16 4.5V15c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1V1c0-.6.4-1 1-1h14c.6 0 1 .4 1 1v3.5zM15 4V1H1v3h14zm0 1H1v10h14V5z" }], - ["path", { d: "M3 8.4l.7-.8L6 9.9l-2.3 2.3-.7-.7 1.6-1.6z" }]]; +export const TERMINAL = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + d: + "M16 4.5V15c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1V1c0-.6.4-1 1-1h14c.6 0 1 .4 1 1v3.5zM15 4V1H1v3h14zm0 1H1v10h14V5z", + }, + ], + ["path", { d: "M3 8.4l.7-.8L6 9.9l-2.3 2.3-.7-.7 1.6-1.6z" }], +]; diff --git a/packages/hiccup-carbon-icons/src/unlock.ts b/packages/hiccup-carbon-icons/src/unlock.ts index a776396d72..8d096954c5 100644 --- a/packages/hiccup-carbon-icons/src/unlock.ts +++ b/packages/hiccup-carbon-icons/src/unlock.ts @@ -1,7 +1,12 @@ -export const UNLOCK = - ["svg", { viewBox: "0 0 12 16" }, - ["path", - { - "fill-rule": "nonzero", - d: "M2.5 7V3.5a3.5 3.5 0 0 1 7 0V4h-1v-.5a2.5 2.5 0 0 0-5 0V7h7A1.5 1.5 0 0 1 12 8.5v6a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 0 14.5v-6A1.5 1.5 0 0 1 1.5 7h1zm-1 1a.5.5 0 0 0-.5.5v6a.5.5 0 0 0 .5.5h9a.5.5 0 0 0 .5-.5v-6a.5.5 0 0 0-.5-.5h-9z", - }]]; +export const UNLOCK = [ + "svg", + { viewBox: "0 0 12 16" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M2.5 7V3.5a3.5 3.5 0 0 1 7 0V4h-1v-.5a2.5 2.5 0 0 0-5 0V7h7A1.5 1.5 0 0 1 12 8.5v6a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 0 14.5v-6A1.5 1.5 0 0 1 1.5 7h1zm-1 1a.5.5 0 0 0-.5.5v6a.5.5 0 0 0 .5.5h9a.5.5 0 0 0 .5-.5v-6a.5.5 0 0 0-.5-.5h-9z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/unlocked.ts b/packages/hiccup-carbon-icons/src/unlocked.ts index 574b77feb9..1d826a392b 100644 --- a/packages/hiccup-carbon-icons/src/unlocked.ts +++ b/packages/hiccup-carbon-icons/src/unlocked.ts @@ -1,7 +1,14 @@ -export const UNLOCKED = - ["svg", +export const UNLOCKED = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 18 24", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 18 24", + d: + "M9 6.5c-1.6 0-3.1.4-4.4 1.2V6.5c0-2.3 2-4.4 4.4-4.4 1.2 0 2.3.5 3.1 1.3l1.5-1.5C12.4.8 10.8 0 9 0 5.5 0 2.5 3 2.5 6.5v3C1.1 11 .3 13 .3 15.3.3 20.1 4.2 24 9 24c4.8 0 8.7-3.9 8.7-8.7 0-4.8-3.9-8.8-8.7-8.8zm4 11.3l-1.5 1.5L9 16.8l-2.5 2.5L5 17.8l2.5-2.5L5 12.8l1.5-1.5L9 13.7l2.5-2.5 1.5 1.6-2.5 2.5 2.5 2.5z", }, - ["path", { d: "M9 6.5c-1.6 0-3.1.4-4.4 1.2V6.5c0-2.3 2-4.4 4.4-4.4 1.2 0 2.3.5 3.1 1.3l1.5-1.5C12.4.8 10.8 0 9 0 5.5 0 2.5 3 2.5 6.5v3C1.1 11 .3 13 .3 15.3.3 20.1 4.2 24 9 24c4.8 0 8.7-3.9 8.7-8.7 0-4.8-3.9-8.8-8.7-8.8zm4 11.3l-1.5 1.5L9 16.8l-2.5 2.5L5 17.8l2.5-2.5L5 12.8l1.5-1.5L9 13.7l2.5-2.5 1.5 1.6-2.5 2.5 2.5 2.5z" }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/upload.ts b/packages/hiccup-carbon-icons/src/upload.ts index f8187a2d94..7bc67223ab 100644 --- a/packages/hiccup-carbon-icons/src/upload.ts +++ b/packages/hiccup-carbon-icons/src/upload.ts @@ -1,8 +1,9 @@ -export const UPLOAD = - ["svg", - { - "fill-rule": "evenodd", - viewBox: "0 0 24 24", - }, - ["path", { d: "M5 6.6l1.2 1.1L11 3v13h2V3l4.8 4.7L19 6.6 12 0z" }], - ["path", { d: "M22 14v6H2v-6H0v10H24V14z" }]]; +export const UPLOAD = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 24", + }, + ["path", { d: "M5 6.6l1.2 1.1L11 3v13h2V3l4.8 4.7L19 6.6 12 0z" }], + ["path", { d: "M22 14v6H2v-6H0v10H24V14z" }], +]; diff --git a/packages/hiccup-carbon-icons/src/user.ts b/packages/hiccup-carbon-icons/src/user.ts index 0294463880..259f7f8bb0 100644 --- a/packages/hiccup-carbon-icons/src/user.ts +++ b/packages/hiccup-carbon-icons/src/user.ts @@ -1,4 +1,18 @@ -export const USER = - ["svg", { viewBox: "0 0 16 16" }, - ["path", { d: "M4 13.7c1.1.8 2.5 1.3 4 1.3s2.9-.5 4-1.3v-1.2c0-.8-.7-1.5-1.5-1.5h-5c-.8 0-1.5.7-1.5 1.5v1.2zm-1-.8v-.4C3 11.1 4.1 10 5.5 10h5c1.4 0 2.5 1.1 2.5 2.5v.4c1.2-1.3 2-3 2-4.9 0-3.9-3.1-7-7-7S1 4.1 1 8c0 1.9.8 3.6 2 4.9zM8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z" }], - ["path", { d: "M8 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 1C6.3 9 5 7.7 5 6s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z" }]]; +export const USER = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + d: + "M4 13.7c1.1.8 2.5 1.3 4 1.3s2.9-.5 4-1.3v-1.2c0-.8-.7-1.5-1.5-1.5h-5c-.8 0-1.5.7-1.5 1.5v1.2zm-1-.8v-.4C3 11.1 4.1 10 5.5 10h5c1.4 0 2.5 1.1 2.5 2.5v.4c1.2-1.3 2-3 2-4.9 0-3.9-3.1-7-7-7S1 4.1 1 8c0 1.9.8 3.6 2 4.9zM8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z", + }, + ], + [ + "path", + { + d: + "M8 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 1C6.3 9 5 7.7 5 6s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/utils/with-size.ts b/packages/hiccup-carbon-icons/src/utils/with-size.ts index dec4eae945..cfe29c53a5 100644 --- a/packages/hiccup-carbon-icons/src/utils/with-size.ts +++ b/packages/hiccup-carbon-icons/src/utils/with-size.ts @@ -1,7 +1,5 @@ -export const withSize = - (icon: any[], size: string) => - [ - icon[0], - { ...icon[1], width: size, height: size }, - ...icon.slice(2) - ]; +export const withSize = (icon: any[], size: string) => [ + icon[0], + { ...icon[1], width: size, height: size }, + ...icon.slice(2), +]; diff --git a/packages/hiccup-carbon-icons/src/visibility-off.ts b/packages/hiccup-carbon-icons/src/visibility-off.ts index b99c2891ad..50cf27942a 100644 --- a/packages/hiccup-carbon-icons/src/visibility-off.ts +++ b/packages/hiccup-carbon-icons/src/visibility-off.ts @@ -1,7 +1,12 @@ -export const VISIBILITY_OFF = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "nonzero", - d: "M11.846 3.45L15.293.007 16 .714l-3.284 3.281c1.261.902 2.377 2.212 3.347 3.93C14.02 11.642 11.333 13.5 8 13.5c-1.392 0-2.667-.324-3.822-.973L.703 16l-.706-.708 3.323-3.32C2.071 11.042.976 9.694.035 7.924 2.012 4.308 4.667 2.5 8 2.5c1.395 0 2.677.317 3.846.95zm-6.928 8.338c.944.477 1.97.712 3.082.712 2.795 0 5.076-1.483 6.907-4.568-.866-1.417-1.833-2.486-2.91-3.219l-1.55 1.55a3 3 0 0 1-4.185 4.182l-1.344 1.343zm-.882-.533l1.518-1.517A3 3 0 0 1 9.74 5.556l1.364-1.363C10.148 3.73 9.115 3.5 8 3.5c-2.798 0-5.047 1.439-6.819 4.432.842 1.465 1.792 2.568 2.855 3.323zm2.948-1.532a2 2 0 0 0 2.74-2.738l-2.74 2.738zm-.707-.707l2.74-2.738a2 2 0 0 0-2.74 2.738z", - }]]; +export const VISIBILITY_OFF = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M11.846 3.45L15.293.007 16 .714l-3.284 3.281c1.261.902 2.377 2.212 3.347 3.93C14.02 11.642 11.333 13.5 8 13.5c-1.392 0-2.667-.324-3.822-.973L.703 16l-.706-.708 3.323-3.32C2.071 11.042.976 9.694.035 7.924 2.012 4.308 4.667 2.5 8 2.5c1.395 0 2.677.317 3.846.95zm-6.928 8.338c.944.477 1.97.712 3.082.712 2.795 0 5.076-1.483 6.907-4.568-.866-1.417-1.833-2.486-2.91-3.219l-1.55 1.55a3 3 0 0 1-4.185 4.182l-1.344 1.343zm-.882-.533l1.518-1.517A3 3 0 0 1 9.74 5.556l1.364-1.363C10.148 3.73 9.115 3.5 8 3.5c-2.798 0-5.047 1.439-6.819 4.432.842 1.465 1.792 2.568 2.855 3.323zm2.948-1.532a2 2 0 0 0 2.74-2.738l-2.74 2.738zm-.707-.707l2.74-2.738a2 2 0 0 0-2.74 2.738z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/visibility-on.ts b/packages/hiccup-carbon-icons/src/visibility-on.ts index 6b67a5bf71..a3e4049ed4 100644 --- a/packages/hiccup-carbon-icons/src/visibility-on.ts +++ b/packages/hiccup-carbon-icons/src/visibility-on.ts @@ -1,4 +1,18 @@ -export const VISIBILITY_ON = - ["svg", { viewBox: "0 0 16 11" }, - ["path", { d: "M8 7.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 1c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z" }], - ["path", { d: "M8 10c2.8 0 5.1-1.5 6.9-4.6C13.1 2.5 10.8 1 8 1 5.2 1 3 2.4 1.2 5.4 2.9 8.6 5.2 10 8 10zM8 0c3.3 0 6 1.8 8.1 5.4C14 9.2 11.3 11 8 11S2 9.2 0 5.5C2 1.9 4.6 0 8 0z" }]]; +export const VISIBILITY_ON = [ + "svg", + { viewBox: "0 0 16 11" }, + [ + "path", + { + d: + "M8 7.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 1c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z", + }, + ], + [ + "path", + { + d: + "M8 10c2.8 0 5.1-1.5 6.9-4.6C13.1 2.5 10.8 1 8 1 5.2 1 3 2.4 1.2 5.4 2.9 8.6 5.2 10 8 10zM8 0c3.3 0 6 1.8 8.1 5.4C14 9.2 11.3 11 8 11S2 9.2 0 5.5C2 1.9 4.6 0 8 0z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/warning-outline.ts b/packages/hiccup-carbon-icons/src/warning-outline.ts index c50bc9fa28..1ac1e5fd30 100644 --- a/packages/hiccup-carbon-icons/src/warning-outline.ts +++ b/packages/hiccup-carbon-icons/src/warning-outline.ts @@ -1,15 +1,25 @@ -export const WARNING_OUTLINE = - ["svg", { viewBox: "0 0 16 16" }, - ["g", { "fill-rule": "evenodd" }, - ["path", { d: "M7.25 6h1.5v5h-1.5z" }], - ["circle", - { - r: 1, - cy: 12.75, - cx: 8, - }], - ["path", - { - "fill-rule": "nonzero", - d: "M.75 16a.75.75 0 0 1-.67-1.085L7.33.415a.75.75 0 0 1 1.34 0l7.25 14.5A.75.75 0 0 1 15.25 16H.75zm1.214-1.5h12.072L8 2.427 1.964 14.5z", - }]]]; +export const WARNING_OUTLINE = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "g", + { "fill-rule": "evenodd" }, + ["path", { d: "M7.25 6h1.5v5h-1.5z" }], + [ + "circle", + { + r: 1, + cy: 12.75, + cx: 8, + }, + ], + [ + "path", + { + "fill-rule": "nonzero", + d: + "M.75 16a.75.75 0 0 1-.67-1.085L7.33.415a.75.75 0 0 1 1.34 0l7.25 14.5A.75.75 0 0 1 15.25 16H.75zm1.214-1.5h12.072L8 2.427 1.964 14.5z", + }, + ], + ], +]; diff --git a/packages/hiccup-carbon-icons/src/warning-solid.ts b/packages/hiccup-carbon-icons/src/warning-solid.ts index 2195a4fbe8..1f5d882f9f 100644 --- a/packages/hiccup-carbon-icons/src/warning-solid.ts +++ b/packages/hiccup-carbon-icons/src/warning-solid.ts @@ -1,7 +1,12 @@ -export const WARNING_SOLID = - ["svg", { viewBox: "0 0 16 16" }, - ["path", - { - "fill-rule": "nonzero", - d: "M.75 16a.75.75 0 0 1-.67-1.085L7.33.415a.75.75 0 0 1 1.34 0l7.25 14.5A.75.75 0 0 1 15.25 16H.75zm6.5-10v5h1.5V6h-1.5zM8 13.5A.75.75 0 1 0 8 12a.75.75 0 0 0 0 1.5z", - }]]; +export const WARNING_SOLID = [ + "svg", + { viewBox: "0 0 16 16" }, + [ + "path", + { + "fill-rule": "nonzero", + d: + "M.75 16a.75.75 0 0 1-.67-1.085L7.33.415a.75.75 0 0 1 1.34 0l7.25 14.5A.75.75 0 0 1 15.25 16H.75zm6.5-10v5h1.5V6h-1.5zM8 13.5A.75.75 0 1 0 8 12a.75.75 0 0 0 0 1.5z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/warning.ts b/packages/hiccup-carbon-icons/src/warning.ts index c1ced4836d..5ba5641d9c 100644 --- a/packages/hiccup-carbon-icons/src/warning.ts +++ b/packages/hiccup-carbon-icons/src/warning.ts @@ -1,14 +1,17 @@ -export const WARNING = - ["svg", +export const WARNING = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 24 21", + }, + ["path", { d: "M12 0L0 21h24L12 0zm0 3l9 16H3l9-16z" }], + ["path", { d: "M11.2 8.4V10l.4 4h.8l.4-4V8.4z" }], + [ + "circle", { - "fill-rule": "evenodd", - viewBox: "0 0 24 21", + r: 0.8, + cy: 16, + cx: 12, }, - ["path", { d: "M12 0L0 21h24L12 0zm0 3l9 16H3l9-16z" }], - ["path", { d: "M11.2 8.4V10l.4 4h.8l.4-4V8.4z" }], - ["circle", - { - r: 0.8, - cy: 16, - cx: 12, - }]]; + ], +]; diff --git a/packages/hiccup-carbon-icons/src/watson.ts b/packages/hiccup-carbon-icons/src/watson.ts index 56d11dbdd2..5b342ea0c4 100644 --- a/packages/hiccup-carbon-icons/src/watson.ts +++ b/packages/hiccup-carbon-icons/src/watson.ts @@ -1,3 +1,11 @@ -export const WATSON = - ["svg", { viewBox: "0 0 24 22" }, - ["path", { d: "M16.3 5.9c-2-1.1-4.3-1.5-6.5-.9-.3.1-.5.5-.4.8.1.3.4.5.8.4 1-.3 2.1-.3 3.1-.1-1.6.8-3.4 2.7-4.9 5.2-.5.9-1 1.9-1.3 2.9-.4-.4-.7-.8-1-1.2-.8-1.3-.9-2.4-.5-3.2.5-.8 1.6-1.3 3.2-1.2.3 0 .6-.3.7-.6 0-.3-.3-.6-.6-.7-2.1-.2-3.6.5-4.4 1.8-.7 1.2-.5 2.8.5 4.4.4.7 1 1.3 1.6 2-.1.5-.2 1-.3 1.4V18c-.7-.9-1.2-1.9-1.5-3-.1-.3-.4-.5-.8-.5-.3.1-.5.4-.5.8.6 2.3 2 4.3 4.1 5.5C9 21.6 10.5 22 12 22c3 0 5.9-1.5 7.5-4.3 2.4-4.1.9-9.4-3.2-11.8zm-6.9 6c2.2-3.8 5-5.6 6.2-4.9 3.5 2 4.7 6.6 2.7 10.1-1 1.7-4.8 1.5-8.3-.5-.8-.4-1.5-1-2.1-1.5.5-1 .9-2.1 1.5-3.2zm-1.1 7.9c-.6-.3-.9-1.3-.7-2.7 0-.2.1-.4.1-.6l1.8 1.2c2.1 1.2 4.2 1.8 6 1.8h.6c-2.2 1.5-5.3 1.7-7.8.3zM3.2 7.6L.9 6.3c-.3-.2-.6-.1-.8.2-.2.3-.1.7.2.8l2.3 1.3c.1.1.2.1.3.1.2 0 .4-.1.5-.3.2-.3.1-.7-.2-.8zM12 3.5c.3 0 .6-.3.6-.6V.6c0-.3-.3-.6-.6-.6s-.6.3-.6.6v2.2c0 .4.3.7.6.7zM17 4.8c.1.1.2.1.3.1.2 0 .4-.1.5-.3l1.2-2c.2-.3.1-.7-.2-.8-.3-.2-.7-.1-.9.2l-1.2 2c-.1.2 0 .6.3.8zM7 4.8c-.1 0-.2.1-.3.1-.2 0-.4-.1-.5-.3L5 2.6c-.1-.3 0-.7.3-.9.3-.2.7-.1.9.2l1.2 2c0 .3-.1.7-.4.9zM23.9 6.5c-.2-.3-.6-.4-.9-.2l-2.3 1.3c-.3.2-.4.6-.2.9.1.2.3.3.5.3.1 0 .2 0 .3-.1l2.3-1.3c.4-.2.5-.6.3-.9z" }]]; +export const WATSON = [ + "svg", + { viewBox: "0 0 24 22" }, + [ + "path", + { + d: + "M16.3 5.9c-2-1.1-4.3-1.5-6.5-.9-.3.1-.5.5-.4.8.1.3.4.5.8.4 1-.3 2.1-.3 3.1-.1-1.6.8-3.4 2.7-4.9 5.2-.5.9-1 1.9-1.3 2.9-.4-.4-.7-.8-1-1.2-.8-1.3-.9-2.4-.5-3.2.5-.8 1.6-1.3 3.2-1.2.3 0 .6-.3.7-.6 0-.3-.3-.6-.6-.7-2.1-.2-3.6.5-4.4 1.8-.7 1.2-.5 2.8.5 4.4.4.7 1 1.3 1.6 2-.1.5-.2 1-.3 1.4V18c-.7-.9-1.2-1.9-1.5-3-.1-.3-.4-.5-.8-.5-.3.1-.5.4-.5.8.6 2.3 2 4.3 4.1 5.5C9 21.6 10.5 22 12 22c3 0 5.9-1.5 7.5-4.3 2.4-4.1.9-9.4-3.2-11.8zm-6.9 6c2.2-3.8 5-5.6 6.2-4.9 3.5 2 4.7 6.6 2.7 10.1-1 1.7-4.8 1.5-8.3-.5-.8-.4-1.5-1-2.1-1.5.5-1 .9-2.1 1.5-3.2zm-1.1 7.9c-.6-.3-.9-1.3-.7-2.7 0-.2.1-.4.1-.6l1.8 1.2c2.1 1.2 4.2 1.8 6 1.8h.6c-2.2 1.5-5.3 1.7-7.8.3zM3.2 7.6L.9 6.3c-.3-.2-.6-.1-.8.2-.2.3-.1.7.2.8l2.3 1.3c.1.1.2.1.3.1.2 0 .4-.1.5-.3.2-.3.1-.7-.2-.8zM12 3.5c.3 0 .6-.3.6-.6V.6c0-.3-.3-.6-.6-.6s-.6.3-.6.6v2.2c0 .4.3.7.6.7zM17 4.8c.1.1.2.1.3.1.2 0 .4-.1.5-.3l1.2-2c.2-.3.1-.7-.2-.8-.3-.2-.7-.1-.9.2l-1.2 2c-.1.2 0 .6.3.8zM7 4.8c-.1 0-.2.1-.3.1-.2 0-.4-.1-.5-.3L5 2.6c-.1-.3 0-.7.3-.9.3-.2.7-.1.9.2l1.2 2c0 .3-.1.7-.4.9zM23.9 6.5c-.2-.3-.6-.4-.9-.2l-2.3 1.3c-.3.2-.4.6-.2.9.1.2.3.3.5.3.1 0 .2 0 .3-.1l2.3-1.3c.4-.2.5-.6.3-.9z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/src/whisk.ts b/packages/hiccup-carbon-icons/src/whisk.ts index 0e0c1be36a..461922addb 100644 --- a/packages/hiccup-carbon-icons/src/whisk.ts +++ b/packages/hiccup-carbon-icons/src/whisk.ts @@ -1,8 +1,21 @@ -export const WHISK = - ["svg", +export const WHISK = [ + "svg", + { + "fill-rule": "evenodd", + viewBox: "0 0 25 16", + }, + [ + "path", { - "fill-rule": "evenodd", - viewBox: "0 0 25 16", + d: + "M9.9 9.7L4.5 0 0 8l4.5 8h8l.5-.8 3-5.5H9.9zm-4.7 5.1L1.4 8l3.1-5.5 6.9 12.3H5.2zm7.2-1.1l-1.6-2.8h3.1l-1.5 2.8z", }, - ["path", { d: "M9.9 9.7L4.5 0 0 8l4.5 8h8l.5-.8 3-5.5H9.9zm-4.7 5.1L1.4 8l3.1-5.5 6.9 12.3H5.2zm7.2-1.1l-1.6-2.8h3.1l-1.5 2.8z" }], - ["path", { d: "M19.5 0h-7.8l-.6 1.1-3 5.5h6l5.3 9.5L24 8l-4.5-8zm-9.3 5.3l1.5-2.8 1.6 2.8h-3.1zm2.4-4.1h6.2L22.6 8l-3.1 5.5-6.9-12.3z" }]]; + ], + [ + "path", + { + d: + "M19.5 0h-7.8l-.6 1.1-3 5.5h6l5.3 9.5L24 8l-4.5-8zm-9.3 5.3l1.5-2.8 1.6 2.8h-3.1zm2.4-4.1h6.2L22.6 8l-3.1 5.5-6.9-12.3z", + }, + ], +]; diff --git a/packages/hiccup-carbon-icons/test/contact-sheet.ts b/packages/hiccup-carbon-icons/test/contact-sheet.ts index 404e83ae18..f37f8da530 100644 --- a/packages/hiccup-carbon-icons/test/contact-sheet.ts +++ b/packages/hiccup-carbon-icons/test/contact-sheet.ts @@ -3,9 +3,7 @@ import { execSync } from "child_process"; import * as fs from "fs"; import * as icons from "../src/index"; -const REV = execSync('git log --pretty="%h %cI" -1') - .toString() - .trim(); +const REV = execSync('git log --pretty="%h %cI" -1').toString().trim(); // prettier-ignore fs.writeFileSync( diff --git a/packages/hiccup-css/src/animation.ts b/packages/hiccup-css/src/animation.ts index a442dbc7ac..0c0610dae7 100644 --- a/packages/hiccup-css/src/animation.ts +++ b/packages/hiccup-css/src/animation.ts @@ -63,7 +63,7 @@ export const animation = ( opts = { duration: "250ms", name: id, - ...opts + ...opts, }; return [ at_keyframes.apply(null, [id, ...keyframes]), @@ -74,7 +74,7 @@ export const animation = ( (acc[`animation-${k}`] = (opts)[k]), acc ), {} - ) - ] + ), + ], ]; }; diff --git a/packages/hiccup-css/src/api.ts b/packages/hiccup-css/src/api.ts index c926636d4a..9f864142c1 100644 --- a/packages/hiccup-css/src/api.ts +++ b/packages/hiccup-css/src/api.ts @@ -83,7 +83,7 @@ export const COMPACT: Format = { declStart: "{", declEnd: "}", indent: "", - comments: false + comments: false, }; /** @@ -98,5 +98,5 @@ export const PRETTY: Format = { declStart: " {\n", declEnd: "}\n", indent: " ", - comments: true + comments: true, }; diff --git a/packages/hiccup-css/src/css.ts b/packages/hiccup-css/src/css.ts index 5c65ce78ad..4a3be72337 100644 --- a/packages/hiccup-css/src/css.ts +++ b/packages/hiccup-css/src/css.ts @@ -3,7 +3,7 @@ import { isFunction, isIterable, isPlainObject, - isString + isString, } from "@thi.ng/checks"; import { COMPACT, CSSOpts, DEFAULT_VENDORS } from "./api"; import { expand, formatDecls } from "./impl"; @@ -14,7 +14,7 @@ export const css = (rules: any, opts?: Partial) => { vendors: DEFAULT_VENDORS, fns: {}, depth: 0, - ...opts + ...opts, }; if (isPlainObject(rules)) { return formatDecls(rules, opts); diff --git a/packages/hiccup-css/src/impl.ts b/packages/hiccup-css/src/impl.ts index 0a1dbf6a35..e003f29aca 100644 --- a/packages/hiccup-css/src/impl.ts +++ b/packages/hiccup-css/src/impl.ts @@ -3,7 +3,7 @@ import { isFunction, isIterable, isPlainObject, - isString + isString, } from "@thi.ng/checks"; import { illegalArgs } from "@thi.ng/errors"; import { @@ -14,7 +14,7 @@ import { repeat, str, transduce, - Transducer + Transducer, } from "@thi.ng/transducers"; import type { FnAny } from "@thi.ng/api"; import type { CSSOpts, RuleFn } from "./api"; @@ -98,7 +98,7 @@ const formatRule = (parent: any[], sel: any[], curr: any, opts: CSSOpts) => { f.declStart, formatDecls(curr, opts), space, - f.declEnd + f.declEnd, ].join(""); }; diff --git a/packages/hiccup-css/src/keyframes.ts b/packages/hiccup-css/src/keyframes.ts index 33ea22acb9..e4128a9798 100644 --- a/packages/hiccup-css/src/keyframes.ts +++ b/packages/hiccup-css/src/keyframes.ts @@ -63,7 +63,7 @@ export function at_keyframes(id: string, ...args: any[]): RuleFn { opts.format.declStart, formatDecls(stops[s], opts), inner, - opts.format.declEnd + opts.format.declEnd, ].join("") ); } diff --git a/packages/hiccup-css/src/quoted-functions.ts b/packages/hiccup-css/src/quoted-functions.ts index b43eea0f93..56ae860d30 100644 --- a/packages/hiccup-css/src/quoted-functions.ts +++ b/packages/hiccup-css/src/quoted-functions.ts @@ -12,5 +12,5 @@ export const QUOTED_FNS = { "@keyframes": at_keyframes, "@media": at_media, "@namespace": at_namespace, - "@supports": at_supports + "@supports": at_supports, }; diff --git a/packages/hiccup-css/test/index.ts b/packages/hiccup-css/test/index.ts index ba70a2b7a5..86da1396ac 100644 --- a/packages/hiccup-css/test/index.ts +++ b/packages/hiccup-css/test/index.ts @@ -5,15 +5,14 @@ import { at_keyframes, at_media, css, - PRETTY + PRETTY, } from "../src"; - const rules = { a: { color: "red" }, b: { border: 0 }, c: { font: [["14px", "Inconsolata"], "monospace"] }, - f: { foo: (rules: any) => rules.bar, bar: 1 } + f: { foo: (rules: any) => rules.bar, bar: 1 }, }; describe("hiccup-css", () => { @@ -30,7 +29,10 @@ describe("hiccup-css", () => { assert.equal(css(["a"]), ""); assert.equal(css(["a", rules.a]), "a{color:red;}"); assert.equal( - css([["a", rules.a], ["b", rules.b]]), + css([ + ["a", rules.a], + ["b", rules.b], + ]), "a{color:red;}b{border:0;}" ); assert.equal( @@ -52,7 +54,7 @@ describe("hiccup-css", () => { css([ "#id", ["h1", {}, {}], - ["h2", "h3", ["div", {}], ["[attr]", ["span", rules.a]]] + ["h2", "h3", ["div", {}], ["[attr]", ["span", rules.a]]], ]), "#id h1{}#id h2 div,#id h3 div{}#id h2[attr] span,#id h3[attr] span{color:red;}" ); @@ -68,8 +70,8 @@ describe("hiccup-css", () => { "h2", "h3", ["div", rules.b], - ["[attr]", ["span", rules.a]] - ] + ["[attr]", ["span", rules.a]], + ], ], { format: PRETTY } ), @@ -98,7 +100,7 @@ describe("hiccup-css", () => { css( at_keyframes("fadein", { 0: { opacity: 0 }, - 100: { opacity: 1 } + 100: { opacity: 1 }, }) ), "@keyframes fadein{0%{opacity:0;}100%{opacity:1;}}" @@ -134,9 +136,9 @@ describe("hiccup-css", () => { [ at_media({ print: true, "max-width": "20rem" }, [ "div", - rules.b - ]) - ] + rules.b, + ]), + ], ]) ), "@media screen and print{div .foo{color:red;}@media print and (max-width:20rem){div{border:0;}}}" diff --git a/packages/hiccup-markdown/src/parse.ts b/packages/hiccup-markdown/src/parse.ts index 7d9ec5560e..62670bd6f1 100644 --- a/packages/hiccup-markdown/src/parse.ts +++ b/packages/hiccup-markdown/src/parse.ts @@ -8,7 +8,7 @@ import { seq, str, untilStr, - whitespace + whitespace, } from "@thi.ng/fsm"; import { comp, filter } from "@thi.ng/transducers"; import type { Fn, Fn2 } from "@thi.ng/api"; @@ -38,7 +38,7 @@ const enum State { START_CODEBLOCK, STRIKE, STRONG, - TABLE + TABLE, } /** @@ -74,7 +74,7 @@ const DEFAULT_TAGS: TagFactories = { strike: (body) => ["del", body], table: (rows) => ["table", ["tbody", ...rows]], td: (_, xs) => ["td", ...xs], - tr: (_, xs) => ["tr", ...xs] + tr: (_, xs) => ["tr", ...xs], }; const BQUOTE = ">"; @@ -185,7 +185,7 @@ const matchInline = (id: State) => [ str(STRIKE, push(id, State.STRIKE)), str(STRONG, push(id, State.STRONG)), str(EM, push(id, State.EMPHASIS)), - str(CODE, push(id, State.CODE)) + str(CODE, push(id, State.CODE)), ]; const matchLink = (result: Fn2) => @@ -199,7 +199,7 @@ const matchLink = (result: Fn2) => untilStr( LINK_HREF_END, (ctx, body) => ((ctx.href = body), undefined) - ) + ), ], pop((ctx: FSMCtx) => result(ctx.href!, ctx.title!)) ); @@ -208,7 +208,7 @@ const matchPara = (id: State, next: State) => alts( [ ...matchInline(id), - str(NL, (ctx: FSMCtx) => ((ctx.body += " "), [next])) + str(NL, (ctx: FSMCtx) => ((ctx.body += " "), [next])), ], collect(id) ); @@ -257,21 +257,21 @@ export const parse = (_tags?: Partial) => { alts( [ seq([str(CODE), not(str(CODE))], newParaCode), - str(CODEBLOCK, () => [State.START_CODEBLOCK]) + str(CODEBLOCK, () => [State.START_CODEBLOCK]), ], undefined, (_, next) => next ), seq([repeat(str(HR), 3, Infinity), str(NL)], () => [ State.START, - [tags.hr()] + [tags.hr()], ]), str(IMG, newParaInline(State.IMG)), str(LINK_LABEL, newParaInline(State.LINK)), str(STRONG, newParaInline(State.STRONG)), str(STRIKE, newParaInline(State.STRIKE)), str(EM, newParaInline(State.EMPHASIS)), - str(TD, newTable) + str(TD, newTable), ], newPara ), @@ -281,7 +281,7 @@ export const parse = (_tags?: Partial) => { [State.END_PARA]: alts( [ ...matchInline(State.PARA), - str(NL, collectAndRestart(tags.paragraph)) + str(NL, collectAndRestart(tags.paragraph)), ], collect(State.PARA) ), @@ -295,7 +295,7 @@ export const parse = (_tags?: Partial) => { [ ...matchInline(State.BLOCKQUOTE), str(BQUOTE, collectBlockQuote), - str(NL, collectAndRestart(tags.blockquote)) + str(NL, collectAndRestart(tags.blockquote)), ], collect(State.BLOCKQUOTE) ), @@ -305,7 +305,7 @@ export const parse = (_tags?: Partial) => { [State.END_HEADING]: alts( [ ...matchInline(State.HEADING), - str(NL, collectHeading(tags.heading)) + str(NL, collectHeading(tags.heading)), ], collect(State.HEADING) ), @@ -331,7 +331,7 @@ export const parse = (_tags?: Partial) => { collectLi(ctx, tags.li), transition(ctx, State.LI) ) - ) + ), ], collect(State.LI) ), @@ -352,15 +352,15 @@ export const parse = (_tags?: Partial) => { [ ...matchInline(State.TABLE), str(TD, collectTD(tags.td)), - str(NL, collectTR(tags.tr)) + str(NL, collectTR(tags.tr)), ], collect(State.TABLE) ), [State.END_TABLE]: alts([ str(NL, collectTable(tags.table)), - str(TD, () => [State.TABLE]) - ]) + str(TD, () => [State.TABLE]), + ]), }, { stack: [] }, State.START diff --git a/packages/hiccup-markdown/src/serialize.ts b/packages/hiccup-markdown/src/serialize.ts index af4af020ad..61523fe7b6 100644 --- a/packages/hiccup-markdown/src/serialize.ts +++ b/packages/hiccup-markdown/src/serialize.ts @@ -2,7 +2,7 @@ import { implementsFunction, isFunction, isNotStringAndIterable, - isString + isString, } from "@thi.ng/checks"; import { DEFAULT, defmulti, MultiFn3 } from "@thi.ng/defmulti"; import { illegalArgs } from "@thi.ng/errors"; @@ -122,7 +122,7 @@ serializeElement.addAll({ `\n\`\`\`${el[1].lang || ""}\n${body(el, ctx, { ...state, pre: true, - sep: "\n" + sep: "\n", })}\n\`\`\`\n`, code: (el, ctx, state) => @@ -132,7 +132,7 @@ serializeElement.addAll({ const cstate: SerializeState = { ...state, indent: state.indent + 4, - sep: "\n" + sep: "\n", }; return wrap(state.indent === 0 ? "\n" : "")(body(el, ctx, cstate)); }, @@ -142,7 +142,7 @@ serializeElement.addAll({ ...state, indent: state.indent + 4, id: 0, - sep: "\n" + sep: "\n", }; return wrap(state.indent === 0 ? "\n" : "")(body(el, ctx, cstate)); }, @@ -197,7 +197,7 @@ serializeElement.addAll({ { cols: colWidths.map((width) => ({ width })), padding: [1, 0], - border: Border.V + border: Border.V, }, [...thead, colWidths.map((w) => repeat("-", w)), ...tbody] ) @@ -206,7 +206,7 @@ serializeElement.addAll({ caption + "\n" ); - } + }, }); serializeElement.isa("th", "strong"); diff --git a/packages/hiccup-markdown/test/parse.ts b/packages/hiccup-markdown/test/parse.ts index 9ac5fdf940..e58db6cb81 100644 --- a/packages/hiccup-markdown/test/parse.ts +++ b/packages/hiccup-markdown/test/parse.ts @@ -9,7 +9,7 @@ describe("parse", () => { it("CRLF", () => { check(`# hello\r\n\r\nworld\r\n\r\n`, [ ["h1", " hello "], - ["p", "world "] + ["p", "world "], ]); }); @@ -23,75 +23,75 @@ describe("parse", () => { ["br"], " two ", ["em", "lines"], - ". " - ] + ". ", + ], ]); }); it("code", () => { check("inline `const example = 'indeed!'` code\n\n", [ - ["p", "inline ", ["code", "const example = 'indeed!'"], " code "] + ["p", "inline ", ["code", "const example = 'indeed!'"], " code "], ]); }); it("code_block", () => { check("```js\nconst code = () => 'indeed!'\n```\n", [ - ["pre", { lang: "js" }, "const code = () => 'indeed!'"] + ["pre", { lang: "js" }, "const code = () => 'indeed!'"], ]); }); it("em", () => { check(`some _emphasized_ text\n\n`, [ - ["p", "some ", ["em", "emphasized"], " text "] + ["p", "some ", ["em", "emphasized"], " text "], ]); }); it("h1", () => { check(`# Heading One\n\nbody\n\n`, [ ["h1", " Heading One "], - ["p", "body "] + ["p", "body "], ]); }); it("h2", () => { check(`## Heading Two\n\nbody\n\n`, [ ["h2", " Heading Two "], - ["p", "body "] + ["p", "body "], ]); }); it("h3", () => { check(`### Heading Three\n\nbody\n\n`, [ ["h3", " Heading Three "], - ["p", "body "] + ["p", "body "], ]); }); it("h4", () => { check(`#### Heading Four\n\nbody\n\n`, [ ["h4", " Heading Four "], - ["p", "body "] + ["p", "body "], ]); }); it("h5", () => { check(`##### Heading Five\n\nbody\n\n`, [ ["h5", " Heading Five "], - ["p", "body "] + ["p", "body "], ]); }); it("h6", () => { check(`###### Heading Six\n\nbody\n\n`, [ ["h6", " Heading Six "], - ["p", "body "] + ["p", "body "], ]); }); it("h7", () => { check(`####### Heading Seven\n\nbody\n\n`, [ ["p", " Heading Seven "], - ["p", "body "] + ["p", "body "], ]); }); @@ -110,18 +110,18 @@ describe("parse", () => { { src: "https://media.giphy.com/media/f6qMGmXuOdkwU/giphy.gif", - alt: "thi.ng" - } + alt: "thi.ng", + }, ], - " " - ] + " ", + ], ] ); }); it("li", () => { check(`- an item\n- another\n\n`, [ - ["ul", ["li", "an item "], ["li", "another "]] + ["ul", ["li", "an item "], ["li", "another "]], ]); }); @@ -131,20 +131,20 @@ describe("parse", () => { "p", "come ", ["a", { href: "http://thi.ng/umbrella" }, "to"], - " the light " - ] + " the light ", + ], ]); }); it("strike", () => { check(`I ~~am amazing~~ messed up\n\n`, [ - ["p", "I ", ["del", "am amazing"], " messed up "] + ["p", "I ", ["del", "am amazing"], " messed up "], ]); }); it("strong", () => { check(`I **really** meant that\n\n`, [ - ["p", "I ", ["strong", "really"], " meant that "] + ["p", "I ", ["strong", "really"], " meant that "], ]); }); @@ -155,9 +155,9 @@ describe("parse", () => { [ "tbody", ["tr", ["td", " col1 "], ["td", " col2 "]], - ["tr", ["td", " row1 "], ["td", " row2 "]] - ] - ] + ["tr", ["td", " row1 "], ["td", " row2 "]], + ], + ], ]); }); }); diff --git a/packages/hiccup-markdown/test/serialize.ts b/packages/hiccup-markdown/test/serialize.ts index 64e529d67d..b918b6f678 100644 --- a/packages/hiccup-markdown/test/serialize.ts +++ b/packages/hiccup-markdown/test/serialize.ts @@ -10,21 +10,21 @@ describe("hiccup-markdown", () => { // rest args are converted to list items const list = (_: any, type: string, ...xs: any[]) => [ type, - ...xs.map((x) => (Array.isArray(x) ? x : ["li", x])) + ...xs.map((x) => (Array.isArray(x) ? x : ["li", x])), ]; // code block component w/ lang hint const codeblock = (_: any, lang: string, body: any[]) => [ "pre", { lang }, - ["code", body] + ["code", body], ]; // link component for thi.ng URLs const thingLink = (_: any, id: string, label: any) => [ "a", { href: `http://thi.ng/${id}` }, - label + label, ]; // Note: the same hiccup tree can be serialized to HTML via @thi.ng/hiccup or @@ -38,7 +38,7 @@ describe("hiccup-markdown", () => { "p", "This is a test: ", ["strong", "I am strong and ", ["em", "italic"]], - "..." + "...", ], // anon component fn to demo context lookup [(ctx: any) => ["p", `My magic number is: ${ctx.magic}`]], @@ -46,7 +46,7 @@ describe("hiccup-markdown", () => { [ codeblock, "ts", - `import { serialize } from "@thi.ng/hiccup-markdown";` + `import { serialize } from "@thi.ng/hiccup-markdown";`, ], // nested lists [ @@ -55,7 +55,7 @@ describe("hiccup-markdown", () => { "foo", "bar", [list, "ol", "b1", "b2", "b3"], - "baz" + "baz", ], ["blockquote", "So long and thanks for all the fish."], [ @@ -67,8 +67,8 @@ describe("hiccup-markdown", () => { "tr", ["th", "ID"], ["th", "Name"], - ["th", "Comment"] - ] + ["th", "Comment"], + ], ], [ "tbody", @@ -76,22 +76,22 @@ describe("hiccup-markdown", () => { "tr", ["th", 1], ["td", ["code", "map()"]], - ["td", "Transform"] + ["td", "Transform"], ], [ "tr", ["th", 2], ["td", ["code", "filter()"]], - ["td", "Predicate"] - ] - ] + ["td", "Predicate"], + ], + ], ], [ "p", "More info ", [thingLink, "hiccup-markdown", "here"], - "." - ] + ".", + ], ], // optional context object passed to all component functions { magic: 42 } diff --git a/packages/hiccup-svg/src/circle.ts b/packages/hiccup-svg/src/circle.ts index cb32544ca3..468ed95572 100644 --- a/packages/hiccup-svg/src/circle.ts +++ b/packages/hiccup-svg/src/circle.ts @@ -7,6 +7,6 @@ export const circle = (p: Vec2Like, r: number, attribs?: any): any[] => [ ...attribs, cx: ff(p[0]), cy: ff(p[1]), - r: ff(r) - }) + r: ff(r), + }), ]; diff --git a/packages/hiccup-svg/src/convert.ts b/packages/hiccup-svg/src/convert.ts index 19a90b19ea..10308a71d4 100644 --- a/packages/hiccup-svg/src/convert.ts +++ b/packages/hiccup-svg/src/convert.ts @@ -19,7 +19,7 @@ const ATTRIB_ALIASES: { [id: string]: string } = { lineCap: "stroke-linecap", lineJoin: "stroke-linejoin", miterLimit: "stroke-miterlimit", - weight: "stroke-width" + weight: "stroke-width", }; const TEXT_ALIGN: { [id: string]: string } = { @@ -27,7 +27,7 @@ const TEXT_ALIGN: { [id: string]: string } = { right: "end", center: "middle", start: "start", - end: "end" + end: "end", }; /** @@ -68,7 +68,7 @@ export const convertTree = (tree: any): any[] => { tree[2], { gradientUnits: attribs.gradientUnits || "userSpaceOnUse", - gradientTransform: attribs.gradientTransform + gradientTransform: attribs.gradientTransform, } ); case "radialGradient": @@ -81,7 +81,7 @@ export const convertTree = (tree: any): any[] => { tree[2], { gradientUnits: attribs.gradientUnits || "userSpaceOnUse", - gradientTransform: attribs.gradientTransform + gradientTransform: attribs.gradientTransform, } ); case "circle": diff --git a/packages/hiccup-svg/src/ellipse.ts b/packages/hiccup-svg/src/ellipse.ts index 745c59c6a9..375c7ffbed 100644 --- a/packages/hiccup-svg/src/ellipse.ts +++ b/packages/hiccup-svg/src/ellipse.ts @@ -13,6 +13,6 @@ export const ellipse = ( cx: ff(p[0]), cy: ff(p[1]), rx: ff(rx), - ry: ff(ry) - }) + ry: ff(ry), + }), ]; diff --git a/packages/hiccup-svg/src/gradients.ts b/packages/hiccup-svg/src/gradients.ts index a63b9d957c..fa51803132 100644 --- a/packages/hiccup-svg/src/gradients.ts +++ b/packages/hiccup-svg/src/gradients.ts @@ -6,7 +6,7 @@ const RE_ALPHA_COLOR = /(rgb|hsl)a\(([a-z0-9.-]+),([0-9.%]+),([0-9.%]+),([0-9.]+ const gradient = (type: string, attribs: any, stops: GradientStop[]): any[] => [ type, fattribs(attribs), - ...stops.map(gradientStop) + ...stops.map(gradientStop), ]; const gradientStop = ([offset, col]: GradientStop) => { @@ -37,7 +37,7 @@ export const linearGradient = ( x1: ff(from[0]), y1: ff(from[1]), x2: ff(to[0]), - y2: ff(to[1]) + y2: ff(to[1]), }, stops ); @@ -61,7 +61,7 @@ export const radialGradient = ( cx: ff(to[0]), cy: ff(to[1]), fr: ff(fr), - r: ff(r) + r: ff(r), }, stops ); diff --git a/packages/hiccup-svg/src/group.ts b/packages/hiccup-svg/src/group.ts index 38f10c0c7c..2abfb1bb35 100644 --- a/packages/hiccup-svg/src/group.ts +++ b/packages/hiccup-svg/src/group.ts @@ -3,5 +3,5 @@ import { fattribs } from "./format"; export const group = (attribs: any, ...body: any[]): any[] => [ "g", fattribs({ ...attribs }), - ...body + ...body, ]; diff --git a/packages/hiccup-svg/src/image.ts b/packages/hiccup-svg/src/image.ts index 4b3ce5c7ee..ac2ff423cf 100644 --- a/packages/hiccup-svg/src/image.ts +++ b/packages/hiccup-svg/src/image.ts @@ -8,6 +8,6 @@ export const image = (pos: Vec2Like, url: string, attribs?: any): any[] => [ // TODO replace w/ SVG2 `href` once Safari supports it "xlink:href": url, x: ff(pos[0]), - y: ff(pos[1]) - }) + y: ff(pos[1]), + }), ]; diff --git a/packages/hiccup-svg/src/line.ts b/packages/hiccup-svg/src/line.ts index bde46d8519..007e86d77a 100644 --- a/packages/hiccup-svg/src/line.ts +++ b/packages/hiccup-svg/src/line.ts @@ -8,8 +8,8 @@ export const line = (a: Vec2Like, b: Vec2Like, attribs?: any): any[] => [ x1: ff(a[0]), y1: ff(a[1]), x2: ff(b[0]), - y2: ff(b[1]) - }) + y2: ff(b[1]), + }), ]; export const hline = (y: number, attribs?: any) => diff --git a/packages/hiccup-svg/src/path.ts b/packages/hiccup-svg/src/path.ts index 6ade8848e1..509643476c 100644 --- a/packages/hiccup-svg/src/path.ts +++ b/packages/hiccup-svg/src/path.ts @@ -1,9 +1,4 @@ -import { - fattribs, - ff, - fpoint, - fpoints -} from "./format"; +import { fattribs, ff, fpoint, fpoints } from "./format"; import type { PathSegment } from "./api"; const DEG = 180 / Math.PI; @@ -28,7 +23,7 @@ export const path = (segments: PathSegment[], attribs?: any): any[] => { seg[5] ? 1 : 0, // target xy ff(seg[6]![0]), - ff(seg[6]![1]) + ff(seg[6]![1]), ].join(",") ); break; diff --git a/packages/hiccup-svg/src/points.ts b/packages/hiccup-svg/src/points.ts index 563ef2bf23..1009bb11d3 100644 --- a/packages/hiccup-svg/src/points.ts +++ b/packages/hiccup-svg/src/points.ts @@ -24,7 +24,7 @@ export const points = ( ): any[] => { const group = [ "g", - fattribs(withoutKeys(attribs, new Set(["shape", "size"]))) + fattribs(withoutKeys(attribs, new Set(["shape", "size"]))), ]; const href = buildSymbol(group, shape, size); for (let p of pts) { @@ -62,7 +62,7 @@ export const packedPoints = ( start: 0, cstride: 1, estride: 2, - ...attribs + ...attribs, }; const { start, cstride, estride } = attribs; let num = @@ -76,14 +76,14 @@ export const packedPoints = ( attribs, new Set(["start", "cstride", "estride", "shape", "size", "num"]) ) - ) + ), ]; const href = buildSymbol(group, shape, size); for (let i = start; --num >= 0; i += estride) { // TODO replace w/ SVG2 `href` once Safari supports it group.push([ "use", - { "xlink:href": href, x: ff(pts[i]), y: ff(pts[i + cstride]) } + { "xlink:href": href, x: ff(pts[i]), y: ff(pts[i + cstride]) }, ]); } return group; diff --git a/packages/hiccup-svg/src/polygon.ts b/packages/hiccup-svg/src/polygon.ts index e5d0603cae..81a48f1a0f 100644 --- a/packages/hiccup-svg/src/polygon.ts +++ b/packages/hiccup-svg/src/polygon.ts @@ -5,6 +5,6 @@ export const polygon = (pts: Vec2Like[], attribs?: any): any[] => [ "polygon", fattribs({ ...attribs, - points: fpoints(pts) - }) + points: fpoints(pts), + }), ]; diff --git a/packages/hiccup-svg/src/polyline.ts b/packages/hiccup-svg/src/polyline.ts index 8090b49051..923188f48b 100644 --- a/packages/hiccup-svg/src/polyline.ts +++ b/packages/hiccup-svg/src/polyline.ts @@ -6,6 +6,6 @@ export const polyline = (pts: Vec2Like[], attribs?: any): any[] => [ fattribs({ fill: "none", points: fpoints(pts), - ...attribs - }) + ...attribs, + }), ]; diff --git a/packages/hiccup-svg/src/rect.ts b/packages/hiccup-svg/src/rect.ts index ce9d20793c..e0093efa61 100644 --- a/packages/hiccup-svg/src/rect.ts +++ b/packages/hiccup-svg/src/rect.ts @@ -21,7 +21,7 @@ export const roundedRect = ( x: ff(p[0]), y: ff(p[1]), width: ff(width), - height: ff(height) + height: ff(height), }); if (rx > 0 || ry > 0) { attribs.rx = ff(rx); diff --git a/packages/hiccup-svg/src/svg.ts b/packages/hiccup-svg/src/svg.ts index 17db84799b..890c01fb17 100644 --- a/packages/hiccup-svg/src/svg.ts +++ b/packages/hiccup-svg/src/svg.ts @@ -15,7 +15,7 @@ export const svg = (attribs: any, ...body: any[]): any[] => [ version: "1.1", xmlns: SVG_NS, "xmlns:xlink": XLINK_NS, - ...attribs + ...attribs, }), - ...body + ...body, ]; diff --git a/packages/hiccup-svg/src/text.ts b/packages/hiccup-svg/src/text.ts index ad12d2fba7..3bd282be8f 100644 --- a/packages/hiccup-svg/src/text.ts +++ b/packages/hiccup-svg/src/text.ts @@ -6,7 +6,7 @@ export const text = (p: Vec2Like, body: string, attribs?: any): any[] => [ fattribs({ ...attribs, x: ff(p[0]), - y: ff(p[1]) + y: ff(p[1]), }), - body + body, ]; diff --git a/packages/hiccup/src/api.ts b/packages/hiccup/src/api.ts index 2a4c42f198..a6c1c0cb65 100644 --- a/packages/hiccup/src/api.ts +++ b/packages/hiccup/src/api.ts @@ -8,7 +8,7 @@ export const PROC_TAGS: { [id: string]: string } = { "!DOCTYPE": ">\n", "!ENTITY": ">\n", "!ELEMENT": ">\n", - "!ATTLIST": ">\n" + "!ATTLIST": ">\n", }; /** @internal */ @@ -17,7 +17,7 @@ export const ENTITIES: { [id: string]: string } = { "<": "<", ">": ">", '"': """, - "'": "'" + "'": "'", }; /** @internal */ @@ -35,7 +35,7 @@ export const NO_SPANS: { button: 1, option: 1, text: 1, - textarea: 1 + textarea: 1, }; const tagMap = ( diff --git a/packages/hiccup/src/serialize.ts b/packages/hiccup/src/serialize.ts index ce5427a2d0..22499ff5b4 100644 --- a/packages/hiccup/src/serialize.ts +++ b/packages/hiccup/src/serialize.ts @@ -2,15 +2,10 @@ import { implementsFunction, isFunction, isNotStringAndIterable, - isString + isString, } from "@thi.ng/checks"; import { illegalArgs } from "@thi.ng/errors"; -import { - COMMENT, - NO_SPANS, - PROC_TAGS, - VOID_TAGS -} from "./api"; +import { COMMENT, NO_SPANS, PROC_TAGS, VOID_TAGS } from "./api"; import { escape } from "./escape"; import { normalize } from "./normalize"; diff --git a/packages/hiccup/test/index.ts b/packages/hiccup/test/index.ts index 0593057ee7..87d317abfe 100644 --- a/packages/hiccup/test/index.ts +++ b/packages/hiccup/test/index.ts @@ -114,7 +114,7 @@ describe("serialize", () => { [ "div", ["h1.title", "foo"], - ["p", ["span.small", "hello"], ["br"], "bye"] + ["p", ["span.small", "hello"], ["br"], "bye"], ], `

foo

hello
bye

` ); @@ -144,9 +144,9 @@ describe("serialize", () => { [ (_: any, id: string, body: any) => ["div#" + id, body], "foo", - "bar" + "bar", ], - "bar2" + "bar2", ], `
bar
bar2
` ); @@ -156,7 +156,7 @@ describe("serialize", () => { [ "div", [(_: any, [id, body]: any) => ["div#" + id, body], ["foo", "bar"]], - "bar2" + "bar2", ], `
bar
bar2
` ); @@ -168,21 +168,27 @@ describe("serialize", () => { ); it("components nested", () => { - const dlItem = ([def, desc]: any) => [["dt", def], ["dd", desc]]; + const dlItem = ([def, desc]: any) => [ + ["dt", def], + ["dd", desc], + ]; const ulItem = (i: any) => ["li", i]; const list = (_: any, f: any, items: any[]) => items.map(f); const dlList = (_: any, attribs: any, items: any[]) => [ "dl", attribs, - [list, dlItem, items] + [list, dlItem, items], ]; const ulList = (_: any, attribs: any, items: any[]) => [ "ul", attribs, - [list, ulItem, items] + [list, ulItem, items], ]; - const items = [["a", "foo"], ["b", "bar"]]; + const items = [ + ["a", "foo"], + ["b", "bar"], + ]; const widget1 = [dlList, { id: "foo" }, items]; const widget2 = [ulList, { id: "foo" }, items.map((i) => i[1])]; @@ -199,7 +205,7 @@ describe("serialize", () => { const bar = { render: (_: any, id: any) => [foo, id] }; assert.equal( serialize(["section", [bar, "a"], [bar, "b"]], { - foo: { class: "foo" } + foo: { class: "foo" }, }), `
a
b
` ); @@ -209,7 +215,7 @@ describe("serialize", () => { "iterators", [ "ul", - [(_: any, items: any[]) => items.map((i) => ["li", i]), ["a", "b"]] + [(_: any, items: any[]) => items.map((i) => ["li", i]), ["a", "b"]], ], `
  • a
  • b
` ); diff --git a/packages/idgen/src/index.ts b/packages/idgen/src/index.ts index 0f02155b90..fe728ec219 100644 --- a/packages/idgen/src/index.ts +++ b/packages/idgen/src/index.ts @@ -4,7 +4,7 @@ import { IClear, INotify, INotifyMixin, - Listener + Listener, } from "@thi.ng/api"; export const EVENT_ADDED = "added"; diff --git a/packages/iges/src/index.ts b/packages/iges/src/index.ts index 0c68f63afa..cbbb72dfe5 100644 --- a/packages/iges/src/index.ts +++ b/packages/iges/src/index.ts @@ -1,11 +1,6 @@ import { isArray } from "@thi.ng/checks"; import { defmulti } from "@thi.ng/defmulti"; -import { - float, - hstr, - padLeft, - padRight -} from "@thi.ng/strings"; +import { float, hstr, padLeft, padRight } from "@thi.ng/strings"; import { comp, map, @@ -15,7 +10,7 @@ import { push, transduce, wordWrap, - wrapSides + wrapSides, } from "@thi.ng/transducers"; import { BooleanNode, @@ -31,7 +26,7 @@ import { PolylineMode, SectionType, Type, - Unit + Unit, } from "./api"; import type { ReadonlyVec } from "@thi.ng/vectors"; @@ -57,7 +52,7 @@ const $DATE = (d: Date) => ".", $Z2(d.getUTCHours()), $Z2(d.getUTCMinutes()), - $Z2(d.getUTCSeconds()) + $Z2(d.getUTCSeconds()), ].join("") ); @@ -84,10 +79,10 @@ export const newDocument = ( S: 0, G: 0, P: 1, - D: 0 + D: 0, }, $FF, - $PARAM + $PARAM, }; }; @@ -97,7 +92,7 @@ export const serialize = (doc: IGESDocument) => ...formatGlobals(doc), ...doc.dict, ...doc.param, - formatTerminate(doc) + formatTerminate(doc), ].join("\n"); const formatLine = (body: string, type: SectionType, i: number) => @@ -105,7 +100,7 @@ const formatLine = (body: string, type: SectionType, i: number) => const formatStart = (doc: IGESDocument) => { const res = [ - ...mapIndexed((i, x: string) => formatLine(x, "S", i), doc.start) + ...mapIndexed((i, x: string) => formatLine(x, "S", i), doc.start), ]; doc.offsets.S += res.length; return res; @@ -140,7 +135,7 @@ const formatGlobals = (doc: IGESDocument) => { [g.authorOrg, Type.HSTR], [g.specVersion, Type.INT], [g.draftVersion, Type.INT], - [g.modified || new Date(), Type.DATE] + [g.modified || new Date(), Type.DATE], ], (body, i) => `${$BODY(body)}G${$SEQ(i + 1)}`, LINEWIDTH_GLOBALS @@ -193,7 +188,7 @@ const formatDictEntry = (e: DictEntry) => 0, 0, e.label || "", - e.subscript || 0 + e.subscript || 0, ] ); @@ -246,7 +241,7 @@ const addEntity = ( param: pid, index: did, lineCount: fparams.length, - ...entry + ...entry, }) ); doc.param.push(...fparams); @@ -262,21 +257,21 @@ export const addPolyline = ( const is2D = pts[0].length == 2; const params: Param[] = [ [is2D ? 1 : 2, Type.INT], - [pts.length + (form === PolylineMode.CLOSED ? 1 : 0), Type.INT] + [pts.length + (form === PolylineMode.CLOSED ? 1 : 0), Type.INT], ]; is2D && params.push([0, Type.FLOAT]); return addEntity( doc, EntityType.POLYLINE, { - form: form === PolylineMode.FILLED ? 63 : 11 + form: form === PolylineMode.FILLED ? 63 : 11, }, [ ...params, ...mapcat( (p) => map((x) => [x, Type.FLOAT], p), form === PolylineMode.CLOSED ? wrapSides(pts, 0, 1) : pts - ) + ), ], opts ); @@ -301,7 +296,7 @@ export const addPoint = ( [p[0], Type.FLOAT], [p[1], Type.FLOAT], [p[2] || 0, Type.FLOAT], - [0, Type.POINTER] + [0, Type.POINTER], ], opts ); @@ -322,7 +317,7 @@ export const addLine = ( [a[2] || 0, Type.FLOAT], [b[0], Type.FLOAT], [b[1], Type.FLOAT], - [b[2] || 0, Type.FLOAT] + [b[2] || 0, Type.FLOAT], ], opts ); @@ -377,7 +372,7 @@ export const addCSGBox = ( [xaxis[2], Type.FLOAT], [zaxis[0], Type.FLOAT], [zaxis[1], Type.FLOAT], - [zaxis[2], Type.FLOAT] + [zaxis[2], Type.FLOAT], ], opts ); @@ -402,7 +397,7 @@ export const addCSGCylinder = ( [normal[1], Type.FLOAT], [normal[2], Type.FLOAT], [radius, Type.FLOAT], - [height, Type.FLOAT] + [height, Type.FLOAT], ], opts ); diff --git a/packages/iges/test/index.ts b/packages/iges/test/index.ts index 243d941d87..3377c1ca97 100644 --- a/packages/iges/test/index.ts +++ b/packages/iges/test/index.ts @@ -9,7 +9,7 @@ describe("iges", () => { author: "toxi", authorOrg: "thi.ng", created: new Date(123456789), - modified: new Date(123456789) + modified: new Date(123456789), }); doc.start = ["Example file for @thi.ng/iges"]; @@ -23,7 +23,7 @@ describe("iges", () => { [100, 0], [0, 0], [100, 100], - [100, 0] + [100, 0], ]); assert.equal( diff --git a/packages/imgui/src/behaviors/slider.ts b/packages/imgui/src/behaviors/slider.ts index b81c5a0fb7..c3696485dc 100644 --- a/packages/imgui/src/behaviors/slider.ts +++ b/packages/imgui/src/behaviors/slider.ts @@ -1,11 +1,6 @@ import { pointInside } from "@thi.ng/geom"; import { clamp, roundTo } from "@thi.ng/math"; -import { - add2, - clamp2, - round2, - Vec -} from "@thi.ng/vectors"; +import { add2, clamp2, round2, Vec } from "@thi.ng/vectors"; import { Key } from "../api"; import { IMGUI } from "../gui"; import type { IShape } from "@thi.ng/geom-api"; diff --git a/packages/imgui/src/components/button.ts b/packages/imgui/src/components/button.ts index 98088152d6..b96d83e3c6 100644 --- a/packages/imgui/src/components/button.ts +++ b/packages/imgui/src/components/button.ts @@ -109,7 +109,7 @@ export const buttonRaw = ( if (draw) { shape.attribs = { fill: hover ? gui.fgColor(true) : gui.bgColor(focused), - stroke: gui.focusColor(id) + stroke: gui.focusColor(id), }; gui.add(shape); label && gui.add(hover && labelHover ? labelHover : label); diff --git a/packages/imgui/src/components/dial.ts b/packages/imgui/src/components/dial.ts index 9473f888a0..fcbff7d5fe 100644 --- a/packages/imgui/src/components/dial.ts +++ b/packages/imgui/src/components/dial.ts @@ -1,11 +1,6 @@ import { circle, line } from "@thi.ng/geom"; import { IGridLayout, isLayout, LayoutBox } from "@thi.ng/layout"; -import { - HALF_PI, - norm, - PI, - TAU -} from "@thi.ng/math"; +import { HALF_PI, norm, PI, TAU } from "@thi.ng/math"; import { cartesian2, hash } from "@thi.ng/vectors"; import { dialVal } from "../behaviors/dial"; import { handleSlider1Keys, isHoverSlider } from "../behaviors/slider"; diff --git a/packages/imgui/src/components/dropdown.ts b/packages/imgui/src/components/dropdown.ts index 13de9d4364..0c3e7bcbc4 100644 --- a/packages/imgui/src/components/dropdown.ts +++ b/packages/imgui/src/components/dropdown.ts @@ -1,10 +1,5 @@ import { polygon } from "@thi.ng/geom"; -import { - gridLayout, - IGridLayout, - isLayout, - LayoutBox -} from "@thi.ng/layout"; +import { gridLayout, IGridLayout, isLayout, LayoutBox } from "@thi.ng/layout"; import { hash } from "@thi.ng/vectors"; import { Key } from "../api"; import { IMGUI } from "../gui"; @@ -49,10 +44,10 @@ export const dropdown = ( [ [tx - 4, ty + 2], [tx + 4, ty + 2], - [tx, ty - 2] + [tx, ty - 2], ], { - fill: gui.textColor(false) + fill: gui.textColor(false), } ) ) @@ -94,10 +89,10 @@ export const dropdown = ( [ [tx - 4, ty - 2], [tx + 4, ty - 2], - [tx, ty + 2] + [tx, ty + 2], ], { - fill: gui.textColor(false) + fill: gui.textColor(false), } ) ) diff --git a/packages/imgui/src/components/icon-button.ts b/packages/imgui/src/components/icon-button.ts index 2c5ba0728b..a23c55c260 100644 --- a/packages/imgui/src/components/icon-button.ts +++ b/packages/imgui/src/components/icon-button.ts @@ -34,7 +34,7 @@ export const iconButton = ( { translate: pos, fill: col, - stroke: col + stroke: col, }, icon, label @@ -43,7 +43,7 @@ export const iconButton = ( { fill: col, stroke: "none" }, label ) - : undefined + : undefined, ]; }; return buttonRaw( diff --git a/packages/imgui/src/components/radial-menu.ts b/packages/imgui/src/components/radial-menu.ts index e25fb37792..4992b6c4ba 100644 --- a/packages/imgui/src/components/radial-menu.ts +++ b/packages/imgui/src/components/radial-menu.ts @@ -1,10 +1,4 @@ -import { - centroid, - circle, - polygon, - Polygon, - vertices -} from "@thi.ng/geom"; +import { centroid, circle, polygon, Polygon, vertices } from "@thi.ng/geom"; import { triFan } from "@thi.ng/geom-tessellate"; import { fmod } from "@thi.ng/math"; import { mapIndexed } from "@thi.ng/transducers"; @@ -38,9 +32,9 @@ export const radialMenu = ( cell, hash(p), textLabelRaw(p, gui.textColor(false), items[i]), - textLabelRaw(p, gui.textColor(true), items[i]) + textLabelRaw(p, gui.textColor(true), items[i]), ]; - }, triFan(vertices(circle([x, y], r), n))) + }, triFan(vertices(circle([x, y], r), n))), ]); let res: number | undefined; let sel = -1; diff --git a/packages/imgui/src/components/radio.ts b/packages/imgui/src/components/radio.ts index 208f5038e5..ad530ca9c5 100644 --- a/packages/imgui/src/components/radio.ts +++ b/packages/imgui/src/components/radio.ts @@ -1,9 +1,4 @@ -import { - gridLayout, - IGridLayout, - isLayout, - LayoutBox -} from "@thi.ng/layout"; +import { gridLayout, IGridLayout, isLayout, LayoutBox } from "@thi.ng/layout"; import { IMGUI } from "../gui"; import { toggle } from "./toggle"; diff --git a/packages/imgui/src/components/ring.ts b/packages/imgui/src/components/ring.ts index 13285d0cad..a677276002 100644 --- a/packages/imgui/src/components/ring.ts +++ b/packages/imgui/src/components/ring.ts @@ -1,14 +1,7 @@ import { polygon } from "@thi.ng/geom"; import { pointInRect } from "@thi.ng/geom-isec"; import { IGridLayout, isLayout, LayoutBox } from "@thi.ng/layout"; -import { - fitClamped, - HALF_PI, - mix, - norm, - PI, - TAU -} from "@thi.ng/math"; +import { fitClamped, HALF_PI, mix, norm, PI, TAU } from "@thi.ng/math"; import { map, normRange } from "@thi.ng/transducers"; import { cartesian2, hash, Vec } from "@thi.ng/vectors"; import { dialVal } from "../behaviors/dial"; @@ -102,7 +95,8 @@ export const ringGroup = ( ? layout.nest(n, [n, 1]) : layout.nest(1, [ 1, - (layout.rowsForHeight(ringHeight(layout.cellW, thetaGap)) + 1) * n + (layout.rowsForHeight(ringHeight(layout.cellW, thetaGap)) + 1) * + n, ]); let res: number | undefined; let idx: number = -1; @@ -188,7 +182,7 @@ export const ringRaw = ( polygon( [ ...arcVerts(pos, r, startTheta, endTheta, numV), - ...arcVerts(pos, r2, endTheta, startTheta, numV) + ...arcVerts(pos, r2, endTheta, startTheta, numV), ], {} ) @@ -197,7 +191,7 @@ export const ringRaw = ( polygon( [ ...arcVerts(pos, r, startTheta, valTheta, numV), - ...arcVerts(pos, r2, valTheta, startTheta, numV) + ...arcVerts(pos, r2, valTheta, startTheta, numV), ], {} ) diff --git a/packages/imgui/src/components/sliderh.ts b/packages/imgui/src/components/sliderh.ts index 116e658e3b..8dbee20a42 100644 --- a/packages/imgui/src/components/sliderh.ts +++ b/packages/imgui/src/components/sliderh.ts @@ -2,7 +2,11 @@ import { rect } from "@thi.ng/geom"; import { IGridLayout, isLayout, LayoutBox } from "@thi.ng/layout"; import { fit, norm } from "@thi.ng/math"; import { hash } from "@thi.ng/vectors"; -import { handleSlider1Keys, isHoverSlider, slider1Val } from "../behaviors/slider"; +import { + handleSlider1Keys, + isHoverSlider, + slider1Val, +} from "../behaviors/slider"; import { IMGUI } from "../gui"; import { valHash } from "../hash"; import { textLabelRaw } from "./textlabel"; diff --git a/packages/imgui/src/components/sliderv.ts b/packages/imgui/src/components/sliderv.ts index 71fdafbc42..e933e8b87d 100644 --- a/packages/imgui/src/components/sliderv.ts +++ b/packages/imgui/src/components/sliderv.ts @@ -2,7 +2,11 @@ import { rect } from "@thi.ng/geom"; import { IGridLayout, isLayout, LayoutBox } from "@thi.ng/layout"; import { fit, norm } from "@thi.ng/math"; import { hash, ZERO2 } from "@thi.ng/vectors"; -import { handleSlider1Keys, isHoverSlider, slider1Val } from "../behaviors/slider"; +import { + handleSlider1Keys, + isHoverSlider, + slider1Val, +} from "../behaviors/slider"; import { IMGUI } from "../gui"; import { valHash } from "../hash"; import { textLabelRaw, textTransformV } from "./textlabel"; @@ -126,7 +130,7 @@ export const sliderVRaw = ( ZERO2, { transform: textTransformV(theme, x, y, w, h), - fill: gui.textColor(false) + fill: gui.textColor(false), }, (label ? label + " " : "") + (fmt ? fmt(v!) : v) ) diff --git a/packages/imgui/src/components/textfield.ts b/packages/imgui/src/components/textfield.ts index 8addd8f979..67370041d4 100644 --- a/packages/imgui/src/components/textfield.ts +++ b/packages/imgui/src/components/textfield.ts @@ -101,7 +101,7 @@ export const textFieldRaw = ( "line", { stroke: theme.cursor }, [xx, y + 4], - [xx, y + h - 4] + [xx, y + h - 4], ]); } const k = gui.key; diff --git a/packages/imgui/src/components/textlabel.ts b/packages/imgui/src/components/textlabel.ts index 937a91d402..ece6341bfa 100644 --- a/packages/imgui/src/components/textlabel.ts +++ b/packages/imgui/src/components/textlabel.ts @@ -17,7 +17,7 @@ export const textLabel = ( "text", { fill: gui.textColor(false) }, [x + (pad ? theme.pad : 0), y + h / 2 + theme.baseLine], - label + label, ]); }; diff --git a/packages/imgui/src/components/toggle.ts b/packages/imgui/src/components/toggle.ts index 75d102937b..d0111385f7 100644 --- a/packages/imgui/src/components/toggle.ts +++ b/packages/imgui/src/components/toggle.ts @@ -73,7 +73,7 @@ export const toggleRaw = ( if (draw) { box.attribs = { fill: val ? gui.fgColor(hover) : gui.bgColor(hover), - stroke: gui.focusColor(id) + stroke: gui.focusColor(id), }; gui.add(box); label && diff --git a/packages/imgui/src/components/tooltip.ts b/packages/imgui/src/components/tooltip.ts index 592e392edd..25e5e6d1c9 100644 --- a/packages/imgui/src/components/tooltip.ts +++ b/packages/imgui/src/components/tooltip.ts @@ -8,7 +8,7 @@ export const tooltipRaw = (gui: IMGUI, tooltip: string) => { const p = add2(null, [0, 10], gui.mouse); gui.addOverlay( rect(p, [tooltip.length * theme.charWidth + theme.pad, 20], { - fill: theme.bgTooltip + fill: theme.bgTooltip, }), textLabelRaw( add2(null, [4, 10 + theme.baseLine], p), diff --git a/packages/imgui/src/components/xypad.ts b/packages/imgui/src/components/xypad.ts index fa41070a84..35ac2c172c 100644 --- a/packages/imgui/src/components/xypad.ts +++ b/packages/imgui/src/components/xypad.ts @@ -1,7 +1,11 @@ import { line, rect } from "@thi.ng/geom"; import { IGridLayout, LayoutBox } from "@thi.ng/layout"; import { fit2, hash, Vec } from "@thi.ng/vectors"; -import { handleSlider2Keys, isHoverSlider, slider2Val } from "../behaviors/slider"; +import { + handleSlider2Keys, + isHoverSlider, + slider2Val, +} from "../behaviors/slider"; import { IMGUI } from "../gui"; import { textLabelRaw } from "./textlabel"; import { tooltipRaw } from "./tooltip"; @@ -117,16 +121,16 @@ export const xyPadRaw = ( if (draw) { box.attribs = { fill: gui.bgColor(hover || focused), - stroke: gui.focusColor(id) + stroke: gui.focusColor(id), }; const { 0: cx, 1: cy } = fit2([], v, min, max, pos, maxPos); gui.add( box, line([x, cy], [maxX, cy], { - stroke: col + stroke: col, }), line([cx, y], [cx, maxY], { - stroke: col + stroke: col, }), textLabelRaw( [x + lx, y + ly], diff --git a/packages/imgui/src/events.ts b/packages/imgui/src/events.ts index 32c6f4fa43..d1a661cf11 100644 --- a/packages/imgui/src/events.ts +++ b/packages/imgui/src/events.ts @@ -37,7 +37,7 @@ export const useDefaultEventHandlers = (gui: IMGUI) => { ontouchstart: touchActive, ontouchmove: touchActive, ontouchend: touchEnd, - ontouchcancel: touchEnd + ontouchcancel: touchEnd, }); window.addEventListener("keydown", (e) => { gui.setKey(e); diff --git a/packages/imgui/src/gui.ts b/packages/imgui/src/gui.ts index d1e53d43a4..7672bdc15c 100644 --- a/packages/imgui/src/gui.ts +++ b/packages/imgui/src/gui.ts @@ -7,7 +7,7 @@ import { Key, KeyModifier, MouseButton, - NONE + NONE, } from "./api"; import type { Fn0, IClear, IToHiccup } from "@thi.ng/api"; @@ -457,7 +457,7 @@ export class IMGUI implements IClear, IToHiccup { "g", { font: this.theme.font }, ...this.layers[0], - ...this.layers[1] + ...this.layers[1], ]; } } diff --git a/packages/iterators/src/cached.ts b/packages/iterators/src/cached.ts index 28e72d748c..5e800546e6 100644 --- a/packages/iterators/src/cached.ts +++ b/packages/iterators/src/cached.ts @@ -4,7 +4,7 @@ export const cached = (input: Iterable) => { let cache: T[] = []; let iter = iterator(input); let done = false; - return function() { + return function () { let i = 0; return { [Symbol.iterator](): IterableIterator { @@ -23,7 +23,7 @@ export const cached = (input: Iterable) => { done = true; } return >{ done }; - } + }, }; }; }; diff --git a/packages/iterators/src/fork.ts b/packages/iterators/src/fork.ts index e5a6df121c..256e6805f9 100644 --- a/packages/iterators/src/fork.ts +++ b/packages/iterators/src/fork.ts @@ -26,7 +26,7 @@ export const fork = (src: Iterable, cacheLimit = 16) => { } }; - return function() { + return function () { const id = forks.length; forks.push(0); return >{ @@ -45,7 +45,7 @@ export const fork = (src: Iterable, cacheLimit = 16) => { } return { done, value }; } - } + }, }; }; }; diff --git a/packages/iterators/src/walk.ts b/packages/iterators/src/walk.ts index 39698a740f..fa8aa1bcc3 100644 --- a/packages/iterators/src/walk.ts +++ b/packages/iterators/src/walk.ts @@ -67,7 +67,7 @@ export function walkIterator(input: any, ...args: any[]) { } else { postOrder = args[0]; } - let walk = function*(iter: Iterator): IterableIterator { + let walk = function* (iter: Iterator): IterableIterator { let v: IteratorResult; while (((v = iter.next()), !v.done)) { if (!postOrder) { diff --git a/packages/iterators/test/index.ts b/packages/iterators/test/index.ts index aa03075d59..d9d829b7f2 100644 --- a/packages/iterators/test/index.ts +++ b/packages/iterators/test/index.ts @@ -8,7 +8,11 @@ describe("iterators", function () { assert.deepEqual([...ti.butLast([1, 2])], [1], "2"); assert.deepEqual([...ti.butLast([1, 2, 3])], [1, 2], "3"); assert.deepEqual([...ti.butLast("hello")], ["h", "e", "l", "l"], "str"); - assert.deepEqual([...ti.butLast(ti.range(10))], [0, 1, 2, 3, 4, 5, 6, 7, 8], "range"); + assert.deepEqual( + [...ti.butLast(ti.range(10))], + [0, 1, 2, 3, 4, 5, 6, 7, 8], + "range" + ); }); it("cached", () => { let cache = ti.cached(ti.range(3)); @@ -24,21 +28,57 @@ describe("iterators", function () { assert.equal(b.next().value, 1, "b.next 1"); assert.strictEqual(a.next().value, undefined, "a.next done"); assert.strictEqual(ti.iterator(a), a, "iterator(a)"); - assert.strictEqual(ti.cached([])().next().value, undefined, "a.next empty"); + assert.strictEqual( + ti.cached([])().next().value, + undefined, + "a.next empty" + ); }); it("consume", () => { let i; - assert.deepEqual([...(i = ti.range(3), ti.consume(i), i)], [], "consume all"); - assert.deepEqual([...(i = ti.range(3), ti.consume(i, 3), i)], [], "consume 3"); - assert.deepEqual([...(i = ti.range(3), ti.consume(i, 10), i)], [], "consume 10"); - assert.deepEqual([...(i = ti.range(3), ti.consume(i, 2), i)], [2], "consume 2"); - assert.deepEqual([...(i = ti.range(3), ti.consume(i, -2), i)], [0, 1, 2], "consume -2"); + assert.deepEqual( + [...((i = ti.range(3)), ti.consume(i), i)], + [], + "consume all" + ); + assert.deepEqual( + [...((i = ti.range(3)), ti.consume(i, 3), i)], + [], + "consume 3" + ); + assert.deepEqual( + [...((i = ti.range(3)), ti.consume(i, 10), i)], + [], + "consume 10" + ); + assert.deepEqual( + [...((i = ti.range(3)), ti.consume(i, 2), i)], + [2], + "consume 2" + ); + assert.deepEqual( + [...((i = ti.range(3)), ti.consume(i, -2), i)], + [0, 1, 2], + "consume -2" + ); }); it("concat", () => { assert.deepEqual([...ti.concat([])], [], "empty"); - assert.deepEqual([...ti.concat([], "", ti.range(0))], [], "3 args empty"); - assert.deepEqual([...ti.concat([1, 2, 3], "abc", ti.range(3))], [1, 2, 3, "a", "b", "c", 0, 1, 2], "3 args any"); - assert.deepEqual([...ti.concat.apply(null, ["abc", null, [1, 2, 3]])], ["a", "b", "c", 1, 2, 3], "skip null"); + assert.deepEqual( + [...ti.concat([], "", ti.range(0))], + [], + "3 args empty" + ); + assert.deepEqual( + [...ti.concat([1, 2, 3], "abc", ti.range(3))], + [1, 2, 3, "a", "b", "c", 0, 1, 2], + "3 args any" + ); + assert.deepEqual( + [...ti.concat.apply(null, ["abc", null, [1, 2, 3]])], + ["a", "b", "c", 1, 2, 3], + "skip null" + ); }); it("constantly", () => { const f = ti.constantly(1); @@ -48,19 +88,45 @@ describe("iterators", function () { }); it("cycle", () => { assert.deepEqual([...ti.cycle([])], [], "empty"); - assert.deepEqual([...ti.take(7, ti.cycle(ti.range(3)))], [0, 1, 2, 0, 1, 2, 0], "cycle range(3)"); - assert.deepEqual([...ti.take(7, ti.cycle("abc"))], ["a", "b", "c", "a", "b", "c", "a"], "cycle string"); + assert.deepEqual( + [...ti.take(7, ti.cycle(ti.range(3)))], + [0, 1, 2, 0, 1, 2, 0], + "cycle range(3)" + ); + assert.deepEqual( + [...ti.take(7, ti.cycle("abc"))], + ["a", "b", "c", "a", "b", "c", "a"], + "cycle string" + ); }); it("dedupe", () => { assert.deepEqual([...ti.dedupe([])], [], "empty"); - assert.deepEqual([...ti.dedupe([1, 2, 2, 3, 4, 4, 4, 3])], [1, 2, 3, 4, 3], "array"); - assert.deepEqual([...ti.dedupe("abbcccaabb")], ["a", "b", "c", "a", "b"], "string"); + assert.deepEqual( + [...ti.dedupe([1, 2, 2, 3, 4, 4, 4, 3])], + [1, 2, 3, 4, 3], + "array" + ); + assert.deepEqual( + [...ti.dedupe("abbcccaabb")], + ["a", "b", "c", "a", "b"], + "string" + ); }); it("dedupeWith", () => { - let coll = [{ a: 1 }, { a: 1, b: 2 }, { a: 2, b: 2 }, { a: 2, b: 2 }, { a: 3 }]; - let eq = (a:any, b:any) => a.a === b.a; + let coll = [ + { a: 1 }, + { a: 1, b: 2 }, + { a: 2, b: 2 }, + { a: 2, b: 2 }, + { a: 3 }, + ]; + let eq = (a: any, b: any) => a.a === b.a; assert.deepEqual([...ti.dedupeWith(eq, [])], [], "empty"); - assert.deepEqual([...ti.dedupeWith(eq, coll)], [{ a: 1 }, { a: 2, b: 2 }, { a: 3 }], "array[obj]"); + assert.deepEqual( + [...ti.dedupeWith(eq, coll)], + [{ a: 1 }, { a: 2, b: 2 }, { a: 3 }], + "array[obj]" + ); }); it("dense", () => { assert.deepEqual( @@ -75,20 +141,44 @@ describe("iterators", function () { assert.deepEqual([...ti.drop(2, [1, 2, 3])], [3], "drop(2)"); assert.deepEqual([...ti.drop(0, [1])], [1], "drop(0)"); assert.deepEqual([...ti.drop(-1, [1])], [1], "drop(-1)"); - assert.deepEqual([...ti.drop(3, ti.range(5))], [3, 4], "drop(3, range)"); + assert.deepEqual( + [...ti.drop(3, ti.range(5))], + [3, 4], + "drop(3, range)" + ); }); it("dropNth", () => { assert.deepEqual([...ti.dropNth(2, [])], [], "empty"); assert.deepEqual([...ti.dropNth(1, ti.range(6))], [], "dropNth(1)"); - assert.deepEqual([...ti.dropNth(2, ti.range(6))], [0, 2, 4], "dropNth(2)"); - assert.deepEqual([...ti.dropNth(3, ti.range(6))], [0, 1, 3, 4], "dropNth(3)"); + assert.deepEqual( + [...ti.dropNth(2, ti.range(6))], + [0, 2, 4], + "dropNth(2)" + ); + assert.deepEqual( + [...ti.dropNth(3, ti.range(6))], + [0, 1, 3, 4], + "dropNth(3)" + ); assert.deepEqual([...ti.dropNth(-1, ti.range(6))], [], "dropNth(-1)"); }); it("dropWhile", () => { assert.deepEqual([...ti.dropWhile((_) => false, [])], [], "empty"); - assert.deepEqual([...ti.dropWhile((_) => true, [1, 2, 3])], [], "always"); - assert.deepEqual([...ti.dropWhile((x) => x < 3, ti.range(6))], [3, 4, 5], "x<3"); - assert.deepEqual([...ti.dropWhile((x) => x > 3, ti.range(6))], [0, 1, 2, 3, 4, 5], "none"); + assert.deepEqual( + [...ti.dropWhile((_) => true, [1, 2, 3])], + [], + "always" + ); + assert.deepEqual( + [...ti.dropWhile((x) => x < 3, ti.range(6))], + [3, 4, 5], + "x<3" + ); + assert.deepEqual( + [...ti.dropWhile((x) => x > 3, ti.range(6))], + [0, 1, 2, 3, 4, 5], + "none" + ); }); it("ensureIterable", () => { assert.doesNotThrow(() => ti.ensureIterable([]), "array"); @@ -97,45 +187,114 @@ describe("iterators", function () { it("every", () => { let nums = ti.iterator([2, 4, 6, 8, 10]) as IterableIterator; assert(!ti.every((_) => true, []), "empty"); - assert(ti.every((x) => (x % 2) === 0, nums), "even"); - assert.deepEqual(nums.next(), { value: undefined, done: true }, "nums done"); + assert( + ti.every((x) => x % 2 === 0, nums), + "even" + ); + assert.deepEqual( + nums.next(), + { value: undefined, done: true }, + "nums done" + ); nums = ti.iterator([2, 3, 4]) as IterableIterator; - assert(!ti.every((x) => (x % 2) === 0, nums), "not even"); + assert(!ti.every((x) => x % 2 === 0, nums), "not even"); assert.deepEqual(nums.next(), { value: 4, done: false }, "next = 4"); }); it("filter", () => { assert.deepEqual([...ti.filter((_) => true, [])], [], "empty"); - assert.deepEqual([...ti.filter((x) => (x % 3) === 0, ti.range(10))], [0, 3, 6, 9], "mult3"); + assert.deepEqual( + [...ti.filter((x) => x % 3 === 0, ti.range(10))], + [0, 3, 6, 9], + "mult3" + ); }); it("flatten", () => { assert.deepEqual([...ti.flatten([])], [], "empty"); - assert.deepEqual([...ti.flatten([null, [null, [undefined]]])], [null, null, undefined], "nulls"); - assert.deepEqual([...ti.flatten([1, ti.range(2, 4), [4, [5, ["abc"]]]])], [1, 2, 3, 4, 5, "abc"], "nested"); - assert.deepEqual([...ti.flatten([{ a: 23, b: 42, c: [1, 2, 3] }])], ["a", 23, "b", 42, "c", 1, 2, 3], "obj iter"); - assert.deepEqual([...ti.flatten([{ a: 23, b: 42, c: [1, 2, 3] }], false)], [{ a: 23, b: 42, c: [1, 2, 3] }], "no obj"); + assert.deepEqual( + [...ti.flatten([null, [null, [undefined]]])], + [null, null, undefined], + "nulls" + ); + assert.deepEqual( + [...ti.flatten([1, ti.range(2, 4), [4, [5, ["abc"]]]])], + [1, 2, 3, 4, 5, "abc"], + "nested" + ); + assert.deepEqual( + [...ti.flatten([{ a: 23, b: 42, c: [1, 2, 3] }])], + ["a", 23, "b", 42, "c", 1, 2, 3], + "obj iter" + ); + assert.deepEqual( + [...ti.flatten([{ a: 23, b: 42, c: [1, 2, 3] }], false)], + [{ a: 23, b: 42, c: [1, 2, 3] }], + "no obj" + ); }); it("flattenWith", () => { - let tx = (x:any) => typeof x == "string" ? ti.map(x => x.charCodeAt(0), x) : ti.maybeIterator(x); + let tx = (x: any) => + typeof x == "string" + ? ti.map((x) => x.charCodeAt(0), x) + : ti.maybeIterator(x); assert.deepEqual( - [...ti.flattenWith(tx, ["ROOT", undefined, ["CHILD_1", null, ["CHILD_2"]]])], - [82, 79, 79, 84, undefined, 67, 72, 73, 76, 68, 95, 49, null, 67, 72, 73, 76, 68, 95, 50], + [ + ...ti.flattenWith(tx, [ + "ROOT", + undefined, + ["CHILD_1", null, ["CHILD_2"]], + ]), + ], + [ + 82, + 79, + 79, + 84, + undefined, + 67, + 72, + 73, + 76, + 68, + 95, + 49, + null, + 67, + 72, + 73, + 76, + 68, + 95, + 50, + ], "chars" ); }); it("fnil", () => { - let f = ti.fnil((x) => x + 1, () => 0); + let f = ti.fnil( + (x) => x + 1, + () => 0 + ); assert.equal(f(), 1); assert.equal(f(1), 2); - f = ti.fnil((a, b) => a + b, () => 0, () => 10); + f = ti.fnil( + (a, b) => a + b, + () => 0, + () => 10 + ); assert.equal(f(), 10); assert.equal(f(1), 11); assert.equal(f(1, 2), 3); - f = ti.fnil((a, b, c) => a + b + c, () => 0, () => 10, () => 100); + f = ti.fnil( + (a, b, c) => a + b + c, + () => 0, + () => 10, + () => 100 + ); assert.equal(f(), 110); assert.equal(f(1), 111); assert.equal(f(1, 2), 103); assert.equal(f(1, 2, 3), 6); - assert.throws(() => ti.fnil(() => { })); + assert.throws(() => ti.fnil(() => {})); }); it("fork", () => { const f = ti.fork([1, 2, 3, 4], 3); @@ -154,12 +313,56 @@ describe("iterators", function () { assert(fb.next().done); }); it("frequencies", () => { - assert.deepEqual([...ti.frequencies([[1, 2], [2, 3], [1, 2], [2, 4]])], [[[1, 2], 2], [[2, 3], 1], [[2, 4], 1]], "array"); - assert.deepEqual([...ti.frequencies(ti.filter((x) => /[a-z]/i.test(x), "hello world!"))], [["h", 1], ["e", 1], ["l", 3], ["o", 2], ["w", 1], ["r", 1], ["d", 1]], "letters"); - assert.deepEqual([...ti.frequencies([1, 2, 3, 4, 5, 9, 3], (x: number) => x & ~1)], [[0, 1], [2, 3], [4, 2], [8, 1]], "key fn"); + assert.deepEqual( + [ + ...ti.frequencies([ + [1, 2], + [2, 3], + [1, 2], + [2, 4], + ]), + ], + [ + [[1, 2], 2], + [[2, 3], 1], + [[2, 4], 1], + ], + "array" + ); + assert.deepEqual( + [ + ...ti.frequencies( + ti.filter((x) => /[a-z]/i.test(x), "hello world!") + ), + ], + [ + ["h", 1], + ["e", 1], + ["l", 3], + ["o", 2], + ["w", 1], + ["r", 1], + ["d", 1], + ], + "letters" + ); + assert.deepEqual( + [...ti.frequencies([1, 2, 3, 4, 5, 9, 3], (x: number) => x & ~1)], + [ + [0, 1], + [2, 3], + [4, 2], + [8, 1], + ], + "key fn" + ); }); it("groupBy", () => { - assert.deepEqual(ti.groupBy((x) => x & ~1, [1, 2, 3, 4, 5, 9, 3]), { "0": [1], "2": [2, 3, 3], "4": [4, 5], "8": [9] }, "mult 2"); + assert.deepEqual( + ti.groupBy((x) => x & ~1, [1, 2, 3, 4, 5, 9, 3]), + { "0": [1], "2": [2, 3, 3], "4": [4, 5], "8": [9] }, + "mult 2" + ); }); it("identity", () => { const x = { a: 1 }; @@ -168,17 +371,47 @@ describe("iterators", function () { assert.strictEqual(ti.identity(undefined), undefined); }); it("indexed", () => { - assert.deepEqual([...ti.indexed([10, 20, 30])], [[0, 10], [1, 20], [2, 30]]); + assert.deepEqual( + [...ti.indexed([10, 20, 30])], + [ + [0, 10], + [1, 20], + [2, 30], + ] + ); }); it("interleave", () => { assert.throws(() => ti.interleave().next(), "no inputs"); - assert.deepEqual([...ti.interleave(ti.range(), ti.range(100, 200), ti.range(200, 205))], [0, 100, 200, 1, 101, 201, 2, 102, 202, 3, 103, 203, 4, 104, 204], "ranges"); + assert.deepEqual( + [ + ...ti.interleave( + ti.range(), + ti.range(100, 200), + ti.range(200, 205) + ), + ], + [0, 100, 200, 1, 101, 201, 2, 102, 202, 3, 103, 203, 4, 104, 204], + "ranges" + ); }); it("interpose", () => { - assert.deepEqual([...ti.interpose("/", ti.range(5))], [0, "/", 1, "/", 2, "/", 3, "/", 4], "slash"); + assert.deepEqual( + [...ti.interpose("/", ti.range(5))], + [0, "/", 1, "/", 2, "/", 3, "/", 4], + "slash" + ); }); it("iterate", () => { - assert.deepEqual([...ti.take(10, ti.iterate((x) => x * 2, 1))], [1, 2, 4, 8, 16, 32, 64, 128, 256, 512], "pow2"); + assert.deepEqual( + [ + ...ti.take( + 10, + ti.iterate((x) => x * 2, 1) + ), + ], + [1, 2, 4, 8, 16, 32, 64, 128, 256, 512], + "pow2" + ); }); it("maybeIterator", () => { assert(ti.maybeIterator("a") !== undefined, "str"); @@ -196,14 +429,37 @@ describe("iterators", function () { assert.equal(ti.maybeObjectIterator(null), undefined, "null"); assert.equal(ti.maybeObjectIterator(0), undefined, "0"); assert.equal(ti.maybeObjectIterator("a"), undefined, "str"); - assert.equal(ti.maybeObjectIterator(ti.range()), undefined, "generator"); + assert.equal( + ti.maybeObjectIterator(ti.range()), + undefined, + "generator" + ); }); it("juxt", () => { - let kernel = ti.juxt((x) => x - 1, (x) => x, (x) => x + 1); + let kernel = ti.juxt( + (x) => x - 1, + (x) => x, + (x) => x + 1 + ); assert.equal(ti.juxt((x) => x)(1), 1, "ident1"); - assert.deepEqual(ti.juxt((x) => x, (x) => x)(1), [1, 1], "ident2"); + assert.deepEqual( + ti.juxt( + (x) => x, + (x) => x + )(1), + [1, 1], + "ident2" + ); assert.deepEqual(kernel(1), [0, 1, 2], "kernel"); - assert.deepEqual([...ti.map(kernel, ti.range(3))], [[-1, 0, 1], [0, 1, 2], [1, 2, 3]], "map kernel"); + assert.deepEqual( + [...ti.map(kernel, ti.range(3))], + [ + [-1, 0, 1], + [0, 1, 2], + [1, 2, 3], + ], + "map kernel" + ); }); it("last", () => { assert.strictEqual(ti.last([]), undefined, "empty"); @@ -212,73 +468,262 @@ describe("iterators", function () { }); it("map", () => { assert.deepEqual([...ti.map((x) => x * 10)], [], "no input"); - assert.deepEqual([...ti.map((x) => x * 10, ti.range(3))], [0, 10, 20], "range(3)"); - assert.deepEqual([...ti.map((x, y, z) => [x, y, z], ti.range(5), ti.range(0, 100, 10), ti.range(0, 1000, 100))], [[0, 0, 0], [1, 10, 100], [2, 20, 200], [3, 30, 300], [4, 40, 400]], "multi range"); + assert.deepEqual( + [...ti.map((x) => x * 10, ti.range(3))], + [0, 10, 20], + "range(3)" + ); + assert.deepEqual( + [ + ...ti.map( + (x, y, z) => [x, y, z], + ti.range(5), + ti.range(0, 100, 10), + ti.range(0, 1000, 100) + ), + ], + [ + [0, 0, 0], + [1, 10, 100], + [2, 20, 200], + [3, 30, 300], + [4, 40, 400], + ], + "multi range" + ); }); it("mapcat", () => { - assert.deepEqual([...ti.mapcat((x) => ti.repeat(x, 3), "hello")], ["h", "h", "h", "e", "e", "e", "l", "l", "l", "l", "l", "l", "o", "o", "o"], "string"); - assert.deepEqual([...ti.mapcat((x, y, z) => [x, y, z], ti.range(5), ti.range(0, 100, 10), ti.range(0, 1000, 100))], [0, 0, 0, 1, 10, 100, 2, 20, 200, 3, 30, 300, 4, 40, 400], "multi range"); - assert.deepEqual([...ti.mapcat((x) => x < 5 ? ti.repeat(x, x) : null, ti.range(10))], [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], "skip null"); + assert.deepEqual( + [...ti.mapcat((x) => ti.repeat(x, 3), "hello")], + [ + "h", + "h", + "h", + "e", + "e", + "e", + "l", + "l", + "l", + "l", + "l", + "l", + "o", + "o", + "o", + ], + "string" + ); + assert.deepEqual( + [ + ...ti.mapcat( + (x, y, z) => [x, y, z], + ti.range(5), + ti.range(0, 100, 10), + ti.range(0, 1000, 100) + ), + ], + [0, 0, 0, 1, 10, 100, 2, 20, 200, 3, 30, 300, 4, 40, 400], + "multi range" + ); + assert.deepEqual( + [ + ...ti.mapcat( + (x) => (x < 5 ? ti.repeat(x, x) : null), + ti.range(10) + ), + ], + [1, 2, 2, 3, 3, 3, 4, 4, 4, 4], + "skip null" + ); }); it("mapIndexed", () => { - assert.deepEqual([...ti.mapIndexed((i, a, b) => [i, a, b], "hello", "there")], [[0, "h", "t"], [1, "e", "h"], [2, "l", "e"], [3, "l", "r"], [4, "o", "e"]], "strings"); + assert.deepEqual( + [...ti.mapIndexed((i, a, b) => [i, a, b], "hello", "there")], + [ + [0, "h", "t"], + [1, "e", "h"], + [2, "l", "e"], + [3, "l", "r"], + [4, "o", "e"], + ], + "strings" + ); }); it("objectIterator", () => { - assert.deepEqual([...ti.objectIterator({ a: 23, b: 42, c: [1, 2, 3] })], [["a", 23], ["b", 42], ["c", [1, 2, 3]]], "mixed"); + assert.deepEqual( + [...ti.objectIterator({ a: 23, b: 42, c: [1, 2, 3] })], + [ + ["a", 23], + ["b", 42], + ["c", [1, 2, 3]], + ], + "mixed" + ); }); it("partition", () => { assert.throws(() => ti.partition(0, 0, ti.range(3)).next(), "bad size"); assert.throws(() => ti.partition(1, 0, ti.range(3)).next(), "bad step"); - assert.deepEqual([...ti.partition(1, 1, ti.range(3))], [[0], [1], [2]], "1,1"); - assert.deepEqual([...ti.partition(3, 3, ti.range(7))], [[0, 1, 2], [3, 4, 5]], "3,3"); - assert.deepEqual([...ti.partition(3, 3, ti.range(7), true)], [[0, 1, 2], [3, 4, 5], [6]], "3,3 all"); - assert.deepEqual([...ti.partition(3, 1, ti.range(7))], [[0, 1, 2], [1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6]], "3,1"); - assert.deepEqual([...ti.partition(3, 1, ti.range(7), true)], [[0, 1, 2], [1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6]], "3,1 all"); - assert.deepEqual([...ti.partition(3, 5, ti.range(11))], [[0, 1, 2], [5, 6, 7]], "3,5"); - assert.deepEqual([...ti.partition(3, 5, ti.range(11), true)], [[0, 1, 2], [5, 6, 7], [10]], "3,5 all"); + assert.deepEqual( + [...ti.partition(1, 1, ti.range(3))], + [[0], [1], [2]], + "1,1" + ); + assert.deepEqual( + [...ti.partition(3, 3, ti.range(7))], + [ + [0, 1, 2], + [3, 4, 5], + ], + "3,3" + ); + assert.deepEqual( + [...ti.partition(3, 3, ti.range(7), true)], + [[0, 1, 2], [3, 4, 5], [6]], + "3,3 all" + ); + assert.deepEqual( + [...ti.partition(3, 1, ti.range(7))], + [ + [0, 1, 2], + [1, 2, 3], + [2, 3, 4], + [3, 4, 5], + [4, 5, 6], + ], + "3,1" + ); + assert.deepEqual( + [...ti.partition(3, 1, ti.range(7), true)], + [ + [0, 1, 2], + [1, 2, 3], + [2, 3, 4], + [3, 4, 5], + [4, 5, 6], + [5, 6], + ], + "3,1 all" + ); + assert.deepEqual( + [...ti.partition(3, 5, ti.range(11))], + [ + [0, 1, 2], + [5, 6, 7], + ], + "3,5" + ); + assert.deepEqual( + [...ti.partition(3, 5, ti.range(11), true)], + [[0, 1, 2], [5, 6, 7], [10]], + "3,5 all" + ); }); it("partitionBy", () => { - assert.deepEqual([...ti.partitionBy((x) => x / 5 | 0, ti.range(11))], [[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10]], "mult5"); + assert.deepEqual( + [...ti.partitionBy((x) => (x / 5) | 0, ti.range(11))], + [[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10]], + "mult5" + ); }); it("randomSample", () => { - ti.run( - (_) => { - let l = [...ti.randomSample(0.5, ti.range(100))].length; - assert(l >= 30 && l <= 70, `50% (${l})`); - }, - ti.range(100) - ); + ti.run((_) => { + let l = [...ti.randomSample(0.5, ti.range(100))].length; + assert(l >= 30 && l <= 70, `50% (${l})`); + }, ti.range(100)); }); it("range", () => { - assert.deepEqual([...ti.take(5, ti.range())], [0, 1, 2, 3, 4], "unbounded"); + assert.deepEqual( + [...ti.take(5, ti.range())], + [0, 1, 2, 3, 4], + "unbounded" + ); assert.deepEqual([...ti.range(5)], [0, 1, 2, 3, 4], "range(to)"); assert.deepEqual([...ti.range(1, 5)], [1, 2, 3, 4], "range(from,to)"); assert.deepEqual([...ti.range(1, 5, 2)], [1, 3], "range(from,to,step)"); assert.deepEqual([...ti.range(1, 5, -2)], [], "range(from,to,-step)"); - assert.deepEqual([...ti.range(5, 1)], [5, 4, 3, 2], "range(from,to) rev"); - assert.deepEqual([...ti.range(5, 1, -2)], [5, 3], "range(from,to,-step) rev"); + assert.deepEqual( + [...ti.range(5, 1)], + [5, 4, 3, 2], + "range(from,to) rev" + ); + assert.deepEqual( + [...ti.range(5, 1, -2)], + [5, 3], + "range(from,to,-step) rev" + ); assert.deepEqual([...ti.range(5, 1, 2)], [], "range(from,to,step) rev"); }); it("reduce", () => { - assert.equal(ti.reduce((acc, x) => acc + x, -1, []), -1, "empty"); - assert.equal(ti.reduce((acc, x) => acc + x, 0, ti.range(10)), 45, "sum"); - assert.equal(ti.reduce((acc, x) => { return acc += x, acc >= 15 ? ti.reduced(acc) : acc }, 0, ti.range()), 15, "sum reduced"); + assert.equal( + ti.reduce((acc, x) => acc + x, -1, []), + -1, + "empty" + ); + assert.equal( + ti.reduce((acc, x) => acc + x, 0, ti.range(10)), + 45, + "sum" + ); + assert.equal( + ti.reduce( + (acc, x) => { + return (acc += x), acc >= 15 ? ti.reduced(acc) : acc; + }, + 0, + ti.range() + ), + 15, + "sum reduced" + ); }); it("reductions", () => { - assert.deepEqual([...ti.reductions((acc, x) => acc + x, -1, [])], [-1], "empty"); - assert.deepEqual([...ti.reductions((acc, x) => acc + x, 0, ti.range(10))], [0, 1, 3, 6, 10, 15, 21, 28, 36, 45], "sums"); - assert.deepEqual([...ti.reductions((acc, x) => { return acc += x, acc >= 15 ? ti.reduced(acc) : acc }, 0, ti.range())], [0, 1, 3, 6, 10, 15], "sum reduced"); + assert.deepEqual( + [...ti.reductions((acc, x) => acc + x, -1, [])], + [-1], + "empty" + ); + assert.deepEqual( + [...ti.reductions((acc, x) => acc + x, 0, ti.range(10))], + [0, 1, 3, 6, 10, 15, 21, 28, 36, 45], + "sums" + ); + assert.deepEqual( + [ + ...ti.reductions( + (acc, x) => { + return (acc += x), acc >= 15 ? ti.reduced(acc) : acc; + }, + 0, + ti.range() + ), + ], + [0, 1, 3, 6, 10, 15], + "sum reduced" + ); }); it("repeat", () => { assert.deepEqual([...ti.repeat(1, 3)], [1, 1, 1], "repeat(1,3)"); - assert.deepEqual([...ti.take(3, ti.repeat(1))], [1, 1, 1], "take(3,repeat(1))"); + assert.deepEqual( + [...ti.take(3, ti.repeat(1))], + [1, 1, 1], + "take(3,repeat(1))" + ); assert.deepEqual([...ti.repeat(1, 0)], [], "repeat(1,0)"); assert.deepEqual([...ti.repeat(1, -1)], [], "repeat(1,-1)"); }); it("repeatedly", () => { let f = () => 1; - assert.deepEqual([...ti.repeatedly(f, 3)], [1, 1, 1], "repeatedly(f,3)"); - assert.deepEqual([...ti.take(3, ti.repeatedly(f))], [1, 1, 1], "take(3,repeatedly(f))"); + assert.deepEqual( + [...ti.repeatedly(f, 3)], + [1, 1, 1], + "repeatedly(f,3)" + ); + assert.deepEqual( + [...ti.take(3, ti.repeatedly(f))], + [1, 1, 1], + "take(3,repeatedly(f))" + ); assert.deepEqual([...ti.repeatedly(f, 0)], [], "repeatedly(f,0)"); assert.deepEqual([...ti.repeatedly(f, -1)], [], "repeatedly(f,-1)"); }); @@ -293,11 +738,23 @@ describe("iterators", function () { }); it("some", () => { let nums = ti.iterator([1, 2, 3]) as IterableIterator; - assert.equal(ti.some((x) => (x % 2) === 0, nums), 2, "even"); + assert.equal( + ti.some((x) => x % 2 === 0, nums), + 2, + "even" + ); assert.deepEqual(nums.next(), { value: 3, done: false }, "rest"); nums = ti.iterator([1, 2, 3]) as IterableIterator; - assert.strictEqual(ti.some((x) => x > 3, nums), undefined, "x>3"); - assert.deepEqual(nums.next(), { value: undefined, done: true }, "no rest"); + assert.strictEqual( + ti.some((x) => x > 3, nums), + undefined, + "x>3" + ); + assert.deepEqual( + nums.next(), + { value: undefined, done: true }, + "no rest" + ); }); it("take", () => { assert.deepEqual([...ti.take(3, [1, 2, 3, 4])], [1, 2, 3], "take(3)"); @@ -312,55 +769,86 @@ describe("iterators", function () { it("takeWhile", () => { let input = ti.range(10); assert.deepEqual([...ti.takeWhile((_) => true, [])], [], "empty"); - assert.deepEqual([...ti.takeWhile((x) => x < 5, input)], [0, 1, 2, 3, 4], "x<5"); + assert.deepEqual( + [...ti.takeWhile((x) => x < 5, input)], + [0, 1, 2, 3, 4], + "x<5" + ); assert.deepEqual([...input], [6, 7, 8, 9], "rest"); }); it("takeLast", () => { assert.deepEqual([...ti.takeLast(5, [])], [], "empty"); - assert.deepEqual([...ti.takeLast(5, ti.range(1000))], [995, 996, 997, 998, 999], "last 1000"); + assert.deepEqual( + [...ti.takeLast(5, ti.range(1000))], + [995, 996, 997, 998, 999], + "last 1000" + ); assert.deepEqual([...ti.takeLast(5, ti.range(3))], [0, 1, 2], "excess"); }); it("walk", () => { - let walk = (post:any) => { + let walk = (post: any) => { let res: any[] = []; - ti.walk((x) => res.push(x), [[1, { a: [2] }], ["3", [4]]], post); + ti.walk( + (x) => res.push(x), + [ + [1, { a: [2] }], + ["3", [4]], + ], + post + ); return res; }; - assert.deepEqual(walk(false), + assert.deepEqual(walk(false), [ [ - [[1, { a: [2] }], ["3", [4]]], [1, { a: [2] }], - 1, - { a: [2] }, - ["a", [2]], - "a", - [2], - 2, ["3", [4]], - "3", - [4], - 4 - ]); - assert.deepEqual(walk(true), - [1, - "a", - 2, - [2], - ["a", [2]], - { a: [2] }, + ], + [1, { a: [2] }], + 1, + { a: [2] }, + ["a", [2]], + "a", + [2], + 2, + ["3", [4]], + "3", + [4], + 4, + ]); + assert.deepEqual(walk(true), [ + 1, + "a", + 2, + [2], + ["a", [2]], + { a: [2] }, + [1, { a: [2] }], + "3", + 4, + [4], + ["3", [4]], + [ [1, { a: [2] }], - "3", - 4, - [4], ["3", [4]], - [[1, { a: [2] }], ["3", [4]]] - ]); + ], + ]); }); it("walkIterator", () => { assert.deepEqual( - [...ti.walkIterator([[1, { a: [2] }], ["3", [4]]], false)], [ - [[1, { a: [2] }], ["3", [4]]], + ...ti.walkIterator( + [ + [1, { a: [2] }], + ["3", [4]], + ], + false + ), + ], + [ + [ + [1, { a: [2] }], + ["3", [4]], + ], [1, { a: [2] }], 1, { a: [2] }, @@ -371,23 +859,46 @@ describe("iterators", function () { ["3", [4]], "3", [4], - 4 - ]); + 4, + ] + ); assert.deepEqual( - [...ti.walkIterator([[1, { a: [2] }], ["3", [4]]], (x) => Array.isArray(x) ? x : null, false)], [ - [[1, { a: [2] }], ["3", [4]]], + ...ti.walkIterator( + [ + [1, { a: [2] }], + ["3", [4]], + ], + (x) => (Array.isArray(x) ? x : null), + false + ), + ], + [ + [ + [1, { a: [2] }], + ["3", [4]], + ], [1, { a: [2] }], 1, { a: [2] }, ["3", [4]], "3", [4], - 4 - ]); + 4, + ] + ); assert.deepEqual( - [...ti.walkIterator([[1, { a: [2] }], ["3", [4]]], true)], - [1, + [ + ...ti.walkIterator( + [ + [1, { a: [2] }], + ["3", [4]], + ], + true + ), + ], + [ + 1, "a", 2, [2], @@ -398,17 +909,42 @@ describe("iterators", function () { 4, [4], ["3", [4]], - [[1, { a: [2] }], ["3", [4]]] - ]); + [ + [1, { a: [2] }], + ["3", [4]], + ], + ] + ); }); it("zip", () => { let langs = [ { id: "js", name: "JavaScript" }, { id: "clj", name: "Clojure" }, - { id: "ts", name: "TypeScript" } + { id: "ts", name: "TypeScript" }, ]; - assert.deepEqual(ti.zip("abcdef", ti.range()), { a: 0, b: 1, c: 2, d: 3, e: 4, f: 5 }, ""); - assert.deepEqual(ti.zip(ti.range(5, 10), ti.range(100, 200), [...new Uint8Array(16)]), [0, 0, 0, 0, 0, 100, 101, 102, 103, 104, 0, 0, 0, 0, 0, 0], "typedarray") - assert.deepEqual(ti.zip(ti.map((x) => x.id, langs), langs), { js: { id: "js", name: "JavaScript" }, clj: { id: "clj", name: "Clojure" }, ts: { id: "ts", name: "TypeScript" } }, "obj"); + assert.deepEqual( + ti.zip("abcdef", ti.range()), + { a: 0, b: 1, c: 2, d: 3, e: 4, f: 5 }, + "" + ); + assert.deepEqual( + ti.zip(ti.range(5, 10), ti.range(100, 200), [ + ...new Uint8Array(16), + ]), + [0, 0, 0, 0, 0, 100, 101, 102, 103, 104, 0, 0, 0, 0, 0, 0], + "typedarray" + ); + assert.deepEqual( + ti.zip( + ti.map((x) => x.id, langs), + langs + ), + { + js: { id: "js", name: "JavaScript" }, + clj: { id: "clj", name: "Clojure" }, + ts: { id: "ts", name: "TypeScript" }, + }, + "obj" + ); }); }); diff --git a/packages/layout/src/grid-layout.ts b/packages/layout/src/grid-layout.ts index 269f525b56..b335b9a2a9 100644 --- a/packages/layout/src/grid-layout.ts +++ b/packages/layout/src/grid-layout.ts @@ -78,7 +78,7 @@ export class GridLayout implements IGridLayout { h, cw: this.cellW, ch: this.cellH, - gap + gap, }; this.propagateSize(rspan); this.currCol = Math.min(this.currCol + cspan, cols) % cols; @@ -88,7 +88,7 @@ export class GridLayout implements IGridLayout { nextSquare() { const box = this.next([ 1, - Math.ceil(this.cellW / (this.cellH + this.gap)) + 1 + Math.ceil(this.cellW / (this.cellH + this.gap)) + 1, ]); box.h = box.w; return box; diff --git a/packages/leb128/test/index.ts b/packages/leb128/test/index.ts index 52e9126833..d91936c118 100644 --- a/packages/leb128/test/index.ts +++ b/packages/leb128/test/index.ts @@ -4,7 +4,7 @@ import { decodeSLEB128, decodeULEB128, encodeSLEB128, - encodeULEB128 + encodeULEB128, } from "../src/index"; describe("leb128", () => { diff --git a/packages/lsys/src/index.ts b/packages/lsys/src/index.ts index 1d98180dfb..97643943c5 100644 --- a/packages/lsys/src/index.ts +++ b/packages/lsys/src/index.ts @@ -2,12 +2,7 @@ import { partial, threadLast } from "@thi.ng/compose"; import { illegalState } from "@thi.ng/errors"; import { cossin, HALF_PI } from "@thi.ng/math"; import { IRandom, SYSTEM } from "@thi.ng/random"; -import { - iterate, - last, - mapcat, - take -} from "@thi.ng/transducers"; +import { iterate, last, mapcat, take } from "@thi.ng/transducers"; import { add, Vec } from "@thi.ng/vectors"; import type { Fn2, IObjectOf } from "@thi.ng/api"; @@ -132,7 +127,7 @@ export const TURTLE_IMPL_2D: RuleImplementations = { const prev = ctx.stack.pop(); !prev && illegalState("stack empty"); Object.assign(ctx, prev); - } + }, }; export const turtle2d = (state?: Partial): Turtle2D => ({ @@ -150,7 +145,7 @@ export const turtle2d = (state?: Partial): Turtle2D => ({ curr: [[0, 0]], paths: [], stack: [], - ...state + ...state, }); export const rewrite = (rules: ProductionRules, syms: Iterable) => diff --git a/packages/lsys/test/examples.ts b/packages/lsys/test/examples.ts index 5fcbe7c6ad..08c486d2ca 100644 --- a/packages/lsys/test/examples.ts +++ b/packages/lsys/test/examples.ts @@ -14,18 +14,18 @@ const examples: Example[] = [ { rules: { s: "[f-f-f-f-f-f-f-f]", f: "f---f+f+f+f+f+f+f---f" }, delta: Math.PI / 4, - iter: 6 + iter: 6, }, { rules: { s: "[x]", x: "-yf+xfx+fy-", y: "+xf-yfy-fx+" }, delta: Math.PI / 2, - iter: 7 + iter: 7, }, { rules: { s: "[a]", a: "a-b--b+a++aa+b-", b: "+a-bb--b-a++a+b" }, delta: Math.PI / 3, - iter: 5 - } + iter: 5, + }, ]; const impl = lsys.TURTLE_IMPL_2D; @@ -43,7 +43,7 @@ examples.forEach(({ rules, delta, iter }, i) => stroke: "#00f", "stroke-width": 0.25, width: 600, - height: 600 + height: 600, }, ...lsys .interpret( diff --git a/packages/lsys/test/tree.ts b/packages/lsys/test/tree.ts index 1374f91bf9..d657ed162a 100644 --- a/packages/lsys/test/tree.ts +++ b/packages/lsys/test/tree.ts @@ -27,7 +27,7 @@ fs.writeFileSync( decayStep: 0.85, decayAlive: 0.975, aliveProb: 0.999, - rnd: new XsAdd(0xdecafbad) + rnd: new XsAdd(0xdecafbad), }), // customize implementation to process syms "a" & "g" as "f" { ...impl, a: impl.f, g: impl.f }, @@ -36,7 +36,7 @@ fs.writeFileSync( { s: "[f]", f: "a[kp!>/-g]/a[kp!>/+g]", - g: "a[kp!>/+f]/a[kp!>/-f]" + g: "a[kp!>/+f]/a[kp!>/-f]", }, "s", 13 diff --git a/packages/malloc/src/pool.ts b/packages/malloc/src/pool.ts index c4042ae134..9b5affe779 100644 --- a/packages/malloc/src/pool.ts +++ b/packages/malloc/src/pool.ts @@ -1,10 +1,4 @@ -import { - assert, - SIZEOF, - Type, - TypedArray, - typedArray -} from "@thi.ng/api"; +import { assert, SIZEOF, Type, TypedArray, typedArray } from "@thi.ng/api"; import { align, Pow2 } from "@thi.ng/binary"; import { isNumber } from "@thi.ng/checks"; import { illegalArgs } from "@thi.ng/errors"; @@ -91,7 +85,7 @@ export class MemPool implements IMemPool { used: listStats(this._used), top: this.top, available: this.end - this.top + free.size, - total: this.buf.byteLength + total: this.buf.byteLength, }; } @@ -335,8 +329,9 @@ export class MemPool implements IMemPool { protected set minSplit(x: number) { assert( x > SIZEOF_MEM_BLOCK, - `illegal min split threshold: ${x}, require at least ${SIZEOF_MEM_BLOCK + - 1}` + `illegal min split threshold: ${x}, require at least ${ + SIZEOF_MEM_BLOCK + 1 + }` ); this.state[STATE_MIN_SPLIT] = x; } diff --git a/packages/malloc/test/index.ts b/packages/malloc/test/index.ts index c395fad918..6fe4acd927 100644 --- a/packages/malloc/test/index.ts +++ b/packages/malloc/test/index.ts @@ -57,7 +57,7 @@ describe("malloc", () => { assert.deepEqual(stats.free, { count: 0, size: 0 }); assert.deepEqual(stats.used, { count: 3, - size: 16 + 32 + 24 + 3 * BLOCK_OVERHEAD + size: 16 + 32 + 24 + 3 * BLOCK_OVERHEAD, }); // free all @@ -89,7 +89,7 @@ describe("malloc", () => { assert.deepEqual(stats.free, { count: 1, size: 24 }); assert.deepEqual(stats.used, { count: 2, - size: 24 + 2 * BLOCK_OVERHEAD + size: 24 + 2 * BLOCK_OVERHEAD, }); assert.equal(stats.top, base + 32 + 16 + 2 * BLOCK_OVERHEAD, "top4"); @@ -103,7 +103,7 @@ describe("malloc", () => { assert.deepEqual(stats.free, { count: 0, size: 0 }); assert.deepEqual(stats.used, { count: 2, - size: 8 + 64 + 2 * BLOCK_OVERHEAD + size: 8 + 64 + 2 * BLOCK_OVERHEAD, }); assert.equal(stats.top, base + 8 + 64 + 2 * BLOCK_OVERHEAD, "top5"); @@ -128,7 +128,7 @@ describe("malloc", () => { assert.deepEqual(stats.free, { count: 1, size: 8 + BLOCK_OVERHEAD }); assert.deepEqual(stats.used, { count: 2, - size: 64 + 32 + 2 * BLOCK_OVERHEAD + size: 64 + 32 + 2 * BLOCK_OVERHEAD, }); assert.equal( stats.top, @@ -150,7 +150,7 @@ describe("malloc", () => { used: { count: 0, size: 0 }, available: pool.buf.byteLength - base, total: pool.buf.byteLength, - top: base + top: base, }); pool.release(); }); @@ -186,7 +186,7 @@ describe("malloc", () => { 0x3f800000, 0x40000000, 0x40400000, - 0 + 0, ] ); assert.deepEqual( @@ -200,7 +200,7 @@ describe("malloc", () => { 0, 0x403e0000, 0, - 0 + 0, ] ); assert(pool.free(a!), "free a"); diff --git a/packages/math/src/angle.ts b/packages/math/src/angle.ts index 26bee24252..343bee170d 100644 --- a/packages/math/src/angle.ts +++ b/packages/math/src/angle.ts @@ -1,11 +1,4 @@ -import { - DEG2RAD, - HALF_PI, - INV_HALF_PI, - PI, - RAD2DEG, - TAU -} from "./api"; +import { DEG2RAD, HALF_PI, INV_HALF_PI, PI, RAD2DEG, TAU } from "./api"; /** * Returns vector of `[sin(theta)*n, cos(theta)*n]`. @@ -15,7 +8,7 @@ import { */ export const sincos = (theta: number, n = 1) => [ Math.sin(theta) * n, - Math.cos(theta) * n + Math.cos(theta) * n, ]; /** @@ -26,7 +19,7 @@ export const sincos = (theta: number, n = 1) => [ */ export const cossin = (theta: number, n = 1) => [ Math.cos(theta) * n, - Math.sin(theta) * n + Math.sin(theta) * n, ]; /** diff --git a/packages/math/src/solve.ts b/packages/math/src/solve.ts index 91da3fade9..e06f248072 100644 --- a/packages/math/src/solve.ts +++ b/packages/math/src/solve.ts @@ -101,7 +101,7 @@ export const solveCubic = ( return [ u * Math.cos(t) - ba3, u * Math.cos(t - k) - ba3, - u * Math.cos(t - 2 * k) - ba3 + u * Math.cos(t - 2 * k) - ba3, ]; } } diff --git a/packages/matrices/src/alignment-quat.ts b/packages/matrices/src/alignment-quat.ts index 17be9b5723..fb307bd4c2 100644 --- a/packages/matrices/src/alignment-quat.ts +++ b/packages/matrices/src/alignment-quat.ts @@ -3,7 +3,7 @@ import { dot3, mag, normalize as _normalize, - ReadonlyVec + ReadonlyVec, } from "@thi.ng/vectors"; import { quatFromAxisAngle } from "./quat-axis-angle"; diff --git a/packages/matrices/src/api.ts b/packages/matrices/src/api.ts index c9214a12f6..93fdb7550f 100644 --- a/packages/matrices/src/api.ts +++ b/packages/matrices/src/api.ts @@ -1,10 +1,5 @@ import type { Tuple, TypedArray } from "@thi.ng/api"; -import type { - IVector, - MultiVecOp, - ReadonlyVec, - Vec -} from "@thi.ng/vectors"; +import type { IVector, MultiVecOp, ReadonlyVec, Vec } from "@thi.ng/vectors"; export type Mat = Vec; export type ReadonlyMat = ReadonlyVec; diff --git a/packages/matrices/src/column.ts b/packages/matrices/src/column.ts index 2b7c2552c8..96c02360b3 100644 --- a/packages/matrices/src/column.ts +++ b/packages/matrices/src/column.ts @@ -1,9 +1,4 @@ -import { - setS2, - setS3, - setS4, - vop -} from "@thi.ng/vectors"; +import { setS2, setS3, setS4, vop } from "@thi.ng/vectors"; import type { MultiVecOpMN, VecOpMN } from "./api"; /** diff --git a/packages/matrices/src/determinant.ts b/packages/matrices/src/determinant.ts index 881a5da900..4cdfa012fa 100644 --- a/packages/matrices/src/determinant.ts +++ b/packages/matrices/src/determinant.ts @@ -33,7 +33,7 @@ export const detCoeffs44 = (m: ReadonlyMat) => { m30, m31, m32, - m33 + m33, ] = m; return [ dp4(m00, m11, -m01, m10), @@ -47,7 +47,7 @@ export const detCoeffs44 = (m: ReadonlyMat) => { dp4(m20, m33, -m23, m30), dp4(m21, m32, -m22, m31), dp4(m21, m33, -m23, m31), - dp4(m22, m33, -m23, m32) + dp4(m22, m33, -m23, m32), ]; }; diff --git a/packages/matrices/src/diag.ts b/packages/matrices/src/diag.ts index e0373b87d7..584b2e4b26 100644 --- a/packages/matrices/src/diag.ts +++ b/packages/matrices/src/diag.ts @@ -1,9 +1,4 @@ -import { - setS2, - setS3, - setS4, - vop -} from "@thi.ng/vectors"; +import { setS2, setS3, setS4, vop } from "@thi.ng/vectors"; import type { MultiVecOpM } from "./api"; /** diff --git a/packages/matrices/src/frustum.ts b/packages/matrices/src/frustum.ts index bf8e4fdf94..a790a306c9 100644 --- a/packages/matrices/src/frustum.ts +++ b/packages/matrices/src/frustum.ts @@ -63,6 +63,6 @@ export const frustumBounds = ( bottom: -top, top, near, - far + far, }; }; diff --git a/packages/matrices/src/identity.ts b/packages/matrices/src/identity.ts index 7f7d7c7998..3c6873b7c4 100644 --- a/packages/matrices/src/identity.ts +++ b/packages/matrices/src/identity.ts @@ -1,10 +1,5 @@ import { vop } from "@thi.ng/vectors"; -import { - IDENT22, - IDENT23, - IDENT33, - IDENT44 -} from "./constants"; +import { IDENT22, IDENT23, IDENT33, IDENT44 } from "./constants"; import { set } from "./set"; import type { MultiMatOp1 } from "./api"; diff --git a/packages/matrices/src/internal/codegen.ts b/packages/matrices/src/internal/codegen.ts index c5cef5c2a2..06c48d0ee6 100644 --- a/packages/matrices/src/internal/codegen.ts +++ b/packages/matrices/src/internal/codegen.ts @@ -4,7 +4,7 @@ import { compile, DEFAULT_OUT, MATH, - MATH_N + MATH_N, } from "@thi.ng/vectors"; import type { MultiMatOpMM, MultiMatOpMN } from "../api"; diff --git a/packages/matrices/src/invert.ts b/packages/matrices/src/invert.ts index abb9ff1a19..b0f0206b76 100644 --- a/packages/matrices/src/invert.ts +++ b/packages/matrices/src/invert.ts @@ -7,7 +7,7 @@ import { setC4, setC6, Vec, - vop + vop, } from "@thi.ng/vectors"; import { det44FromCoeffs, detCoeffs44 } from "./determinant"; import type { MatOpMU, MultiMatOpMU } from "./api"; @@ -91,7 +91,7 @@ export const invert44: MatOpMU = invert.add(16, (out, m) => { m30, m31, m32, - m33 + m33, ] = m; const [d00, d01, d02, d03, d04, d05, d06, d07, d08, d09, d10, d11] = coeffs; return setC( diff --git a/packages/matrices/src/lookat.ts b/packages/matrices/src/lookat.ts index 00cb916ec3..faf19be8a7 100644 --- a/packages/matrices/src/lookat.ts +++ b/packages/matrices/src/lookat.ts @@ -4,7 +4,7 @@ import { normalize, ReadonlyVec, setC, - sub3 + sub3, } from "@thi.ng/vectors"; import type { Mat } from "./api"; diff --git a/packages/matrices/src/matn.ts b/packages/matrices/src/matn.ts index 7094cc644c..e3bb482b6b 100644 --- a/packages/matrices/src/matn.ts +++ b/packages/matrices/src/matn.ts @@ -1,9 +1,4 @@ -import { - scale22, - scale23, - scale33, - scale44 -} from "./scale"; +import { scale22, scale23, scale33, scale44 } from "./scale"; import type { Mat } from "./api"; export const mat22n = (out: Mat | null, n: number) => scale22(out, n); diff --git a/packages/matrices/src/matv.ts b/packages/matrices/src/matv.ts index b228412ac9..5f360d7975 100644 --- a/packages/matrices/src/matv.ts +++ b/packages/matrices/src/matv.ts @@ -1,9 +1,4 @@ -import { - setVV16, - setVV4, - setVV6, - setVV9 -} from "@thi.ng/vectors"; +import { setVV16, setVV4, setVV6, setVV9 } from "@thi.ng/vectors"; /** * Initializes 2x2 matrix from 2D column vectors. diff --git a/packages/matrices/src/mixq.ts b/packages/matrices/src/mixq.ts index 92d77bd3dc..331c1ecaff 100644 --- a/packages/matrices/src/mixq.ts +++ b/packages/matrices/src/mixq.ts @@ -1,11 +1,4 @@ -import { - dot4, - maddN4, - mulN4, - ReadonlyVec, - set4, - Vec -} from "@thi.ng/vectors"; +import { dot4, maddN4, mulN4, ReadonlyVec, set4, Vec } from "@thi.ng/vectors"; /** * Interpolates quaternion `a` to `b` by given amount `t` [0...1], using diff --git a/packages/matrices/src/mulm.ts b/packages/matrices/src/mulm.ts index a9f5fd3a3f..4c489bffbf 100644 --- a/packages/matrices/src/mulm.ts +++ b/packages/matrices/src/mulm.ts @@ -1,12 +1,4 @@ -import { - dotS2, - dotS3, - dotS4, - setC, - setC4, - setC6, - vop -} from "@thi.ng/vectors"; +import { dotS2, dotS3, dotS4, setC, setC4, setC6, vop } from "@thi.ng/vectors"; import type { MultiMatOpMM } from "./api"; /** diff --git a/packages/matrices/src/mulv.ts b/packages/matrices/src/mulv.ts index 162ea33e36..df17f3e977 100644 --- a/packages/matrices/src/mulv.ts +++ b/packages/matrices/src/mulv.ts @@ -8,7 +8,7 @@ import { setC4, Vec, VecOpVV, - vop + vop, } from "@thi.ng/vectors"; import type { MatOpMV, MultiMatOpMV, ReadonlyMat } from "./api"; diff --git a/packages/matrices/src/mulvm.ts b/packages/matrices/src/mulvm.ts index a7cf3c270d..17342c37c7 100644 --- a/packages/matrices/src/mulvm.ts +++ b/packages/matrices/src/mulvm.ts @@ -9,7 +9,7 @@ import { setC2, setC3, setC4, - Vec + Vec, } from "@thi.ng/vectors"; import type { ReadonlyMat } from "./api"; diff --git a/packages/matrices/src/outer-product.ts b/packages/matrices/src/outer-product.ts index c312636182..3fdbd4f56e 100644 --- a/packages/matrices/src/outer-product.ts +++ b/packages/matrices/src/outer-product.ts @@ -1,10 +1,4 @@ -import { - MultiVecOpVV, - ReadonlyVec, - setC, - setC4, - vop -} from "@thi.ng/vectors"; +import { MultiVecOpVV, ReadonlyVec, setC, setC4, vop } from "@thi.ng/vectors"; import type { Mat } from "./api"; /** diff --git a/packages/matrices/src/quat-euler.ts b/packages/matrices/src/quat-euler.ts index dd6e972f4d..6607a2621d 100644 --- a/packages/matrices/src/quat-euler.ts +++ b/packages/matrices/src/quat-euler.ts @@ -8,7 +8,7 @@ const axisOrder = { xzy: [X3, Z3, Y3], zxy: [Z3, X3, Y3], yzx: [Y3, Z3, X3], - zyx: [Z3, Y3, X3] + zyx: [Z3, Y3, X3], }; /** diff --git a/packages/matrices/src/row.ts b/packages/matrices/src/row.ts index 593858dfae..20bcfd878f 100644 --- a/packages/matrices/src/row.ts +++ b/packages/matrices/src/row.ts @@ -1,9 +1,4 @@ -import { - setS2, - setS3, - setS4, - vop -} from "@thi.ng/vectors"; +import { setS2, setS3, setS4, vop } from "@thi.ng/vectors"; import type { MultiVecOpMN } from "./api"; /** diff --git a/packages/matrices/src/scale.ts b/packages/matrices/src/scale.ts index 4d90fb8ed0..781ceec4d8 100644 --- a/packages/matrices/src/scale.ts +++ b/packages/matrices/src/scale.ts @@ -1,10 +1,5 @@ import { isNumber } from "@thi.ng/checks"; -import { - ReadonlyVec, - setC, - setC4, - setC6 -} from "@thi.ng/vectors"; +import { ReadonlyVec, setC, setC4, setC6 } from "@thi.ng/vectors"; import type { Mat } from "./api"; /** diff --git a/packages/matrices/src/set.ts b/packages/matrices/src/set.ts index 1ef0b23b94..463b674156 100644 --- a/packages/matrices/src/set.ts +++ b/packages/matrices/src/set.ts @@ -1,9 +1,4 @@ -import { - compile, - set as _set, - SET, - set4 -} from "@thi.ng/vectors"; +import { compile, set as _set, SET, set4 } from "@thi.ng/vectors"; import type { MatOpM } from "./api"; const $ = (dim: number) => _set.add(dim, compile(dim, SET, "o,a")); diff --git a/packages/matrices/src/shear.ts b/packages/matrices/src/shear.ts index 9797073a7c..8d2f32f515 100644 --- a/packages/matrices/src/shear.ts +++ b/packages/matrices/src/shear.ts @@ -1,9 +1,4 @@ -import { - identity22, - identity23, - identity33, - identity44 -} from "./identity"; +import { identity22, identity23, identity33, identity44 } from "./identity"; import type { Mat, MatOp1 } from "./api"; const $ = (f: MatOp1) => (i: number) => (m: Mat | null, x: number) => ( diff --git a/packages/matrices/src/skew.ts b/packages/matrices/src/skew.ts index 467c94d2d8..60b6868dce 100644 --- a/packages/matrices/src/skew.ts +++ b/packages/matrices/src/skew.ts @@ -14,7 +14,7 @@ import { shearZX33, shearZX44, shearZY33, - shearZY44 + shearZY44, } from "./shear"; import type { Mat, MatOpN } from "./api"; diff --git a/packages/matrices/test/index.ts b/packages/matrices/test/index.ts index 1ba7702e48..8162c44553 100644 --- a/packages/matrices/test/index.ts +++ b/packages/matrices/test/index.ts @@ -3,7 +3,6 @@ import * as m from "../src/index"; import { range } from "@thi.ng/transducers"; describe("matrices", () => { - it("identity (fixed)", () => { assert.deepEqual(m.identity22([]), m.IDENT22, "m22"); assert.deepEqual(m.identity23([]), m.IDENT23, "m23"); @@ -17,5 +16,4 @@ describe("matrices", () => { assert.deepEqual(m.identity([...range(9)]), m.IDENT33, "m33"); assert.deepEqual(m.identity([...range(16)]), m.IDENT44, "m44"); }); - }); diff --git a/packages/memoize/src/memoize.ts b/packages/memoize/src/memoize.ts index 533e22913f..f132933826 100644 --- a/packages/memoize/src/memoize.ts +++ b/packages/memoize/src/memoize.ts @@ -1,10 +1,4 @@ -import type { - Fn, - Fn2, - Fn3, - Fn4, - FnAny -} from "@thi.ng/api"; +import type { Fn, Fn2, Fn3, Fn4, FnAny } from "@thi.ng/api"; import type { MapLike } from "./api"; /** diff --git a/packages/memoize/src/memoizej.ts b/packages/memoize/src/memoizej.ts index 33f86068b6..42cf711325 100644 --- a/packages/memoize/src/memoizej.ts +++ b/packages/memoize/src/memoizej.ts @@ -1,11 +1,4 @@ -import type { - Fn, - Fn2, - Fn3, - Fn4, - FnAny, - IObjectOf -} from "@thi.ng/api"; +import type { Fn, Fn2, Fn3, Fn4, FnAny, IObjectOf } from "@thi.ng/api"; /** * Function memoization for arbitrary argument counts. Returns augmented diff --git a/packages/memoize/test/index.ts b/packages/memoize/test/index.ts index f1b115a902..de6097becb 100644 --- a/packages/memoize/test/index.ts +++ b/packages/memoize/test/index.ts @@ -26,14 +26,18 @@ describe("memoize", () => { assert.equal(f([3, 4]), 7); assert.equal(f([1, 2]), 3); assert.equal(f([5, 6]), 11); - assert.deepEqual(calls, [[1, 2], [3, 4], [5, 6]]); + assert.deepEqual(calls, [ + [1, 2], + [3, 4], + [5, 6], + ]); }); it("memoize1 (lru)", () => { const calls: number[][] = []; const cache = new LRUCache(null, { maxlen: 3, - map: () => new EquivMap() + map: () => new EquivMap(), }); const f = m.memoize1( (x) => (calls.push(x), x[0] + x[1]), @@ -46,7 +50,20 @@ describe("memoize", () => { assert.equal(f([5, 6]), 11); assert.equal(f([7, 8]), 15); assert.equal(f([3, 4]), 7); // <-- recompute - assert.deepEqual(calls, [[1, 2], [3, 4], [5, 6], [7, 8], [3, 4]]); - assert.deepEqual([...cache.keys()], [[5, 6], [7, 8], [3, 4]]); + assert.deepEqual(calls, [ + [1, 2], + [3, 4], + [5, 6], + [7, 8], + [3, 4], + ]); + assert.deepEqual( + [...cache.keys()], + [ + [5, 6], + [7, 8], + [3, 4], + ] + ); }); }); diff --git a/packages/mime/src/index.ts b/packages/mime/src/index.ts index e1fc2c7738..f990666516 100644 --- a/packages/mime/src/index.ts +++ b/packages/mime/src/index.ts @@ -160,7 +160,7 @@ export const MIME_TYPES = ((defs: any) => { "xv+xml": "mxml,xhvml,xvml,xvm", yang: "yang", "yin+xml": "yin", - zip: "zip" + zip: "zip", }, audio: { "3gpp": "*3gpp", @@ -177,14 +177,14 @@ export const MIME_TYPES = ((defs: any) => { wav: "wav", wave: "*wav", webm: "weba", - xm: "xm" + xm: "xm", }, font: { collection: "ttc", otf: "otf", ttf: "ttf", woff: "woff", - woff2: "woff2" + woff2: "woff2", }, image: { aces: "exr", @@ -215,7 +215,7 @@ export const MIME_TYPES = ((defs: any) => { tiff: "tif,tiff", "tiff-fx": "tfx", webp: "webp", - wmf: "wmf" + wmf: "wmf", }, message: { "disposition-notification": "disposition-notification", @@ -223,7 +223,7 @@ export const MIME_TYPES = ((defs: any) => { "global-delivery-status": "u8dsn", "global-disposition-notification": "u8mdn", "global-headers": "u8hdr", - rfc822: "eml,mime" + rfc822: "eml,mime", }, model: { "3mf": "3mf", @@ -239,7 +239,7 @@ export const MIME_TYPES = ((defs: any) => { "x3d+fastinfoset": "x3db", "x3d+vrml": "*x3dv,x3dvz", "x3d+xml": "x3d,x3dz", - "x3d-vrml": "x3dv" + "x3d-vrml": "x3dv", }, text: { "cache-manifest": "appcache,manifest", @@ -269,7 +269,7 @@ export const MIME_TYPES = ((defs: any) => { vcard: "vcard", vtt: "vtt", xml: "*xml", - yaml: "yaml,yml" + yaml: "yaml,yml", }, video: { "3gpp": "3gp,3gpp", @@ -286,8 +286,8 @@ export const MIME_TYPES = ((defs: any) => { ogg: "ogv", quicktime: "qt,mov", webm: "webm", - "x-msvideo": "avi" - } + "x-msvideo": "avi", + }, }); /** diff --git a/packages/morton/src/mux.ts b/packages/morton/src/mux.ts index bed61b72cf..a399fb0b67 100644 --- a/packages/morton/src/mux.ts +++ b/packages/morton/src/mux.ts @@ -1,14 +1,9 @@ -import { - decode10, - decode16, - encode10, - encode16 -} from "./raw"; +import { decode10, decode16, encode10, encode16 } from "./raw"; import { decodeScaled10, decodeScaled16, encodeScaled10, - encodeScaled16 + encodeScaled16, } from "./scaled"; const MIN = [0, 0, 0]; @@ -25,7 +20,7 @@ export const demux2 = (n: number) => [decode16(n), decode16(n >>> 1)]; export const demux3 = (n: number) => [ decode10(n), decode10(n >>> 1), - decode10(n >>> 2) + decode10(n >>> 2), ]; export const muxScaled2 = ( @@ -74,7 +69,7 @@ export const demuxScaled3 = ( ) => [ decodeScaled10(n, minx, maxx), decodeScaled10(n >>> 1, miny, maxy), - decodeScaled10(n >>> 2, minz, maxz) + decodeScaled10(n >>> 2, minz, maxz), ]; export const muxScaled2v = ( diff --git a/packages/morton/src/scaled.ts b/packages/morton/src/scaled.ts index 9099bace91..d547bf04fb 100644 --- a/packages/morton/src/scaled.ts +++ b/packages/morton/src/scaled.ts @@ -7,7 +7,7 @@ import { decode5, encode10, encode16, - encode5 + encode5, } from "./raw"; const prescale = (x: number, min: number, max: number, bits: number) => { diff --git a/packages/morton/src/zcurve.ts b/packages/morton/src/zcurve.ts index 3d0e52d552..40031aa021 100644 --- a/packages/morton/src/zcurve.ts +++ b/packages/morton/src/zcurve.ts @@ -3,7 +3,7 @@ import { NumericArray, Range1_32, Range1_64, - RangeValueMap + RangeValueMap, } from "@thi.ng/api"; import { MASKS } from "@thi.ng/binary"; @@ -181,7 +181,7 @@ export class ZCurve { * * @remarks * Partially based on: - * {@link https://github.com/statgen/LDServer/blob/master/core/src/Morton.cpp#L38} + * {@link https://github.com/statgen/LDServer/blob/develop/core/src/Morton.cpp#L38} * * @param zcurr * @param zmin diff --git a/packages/morton/test/zcurve.ts b/packages/morton/test/zcurve.ts index dbee94fe21..cb287dee50 100644 --- a/packages/morton/test/zcurve.ts +++ b/packages/morton/test/zcurve.ts @@ -26,7 +26,7 @@ describe("ZCurve", () => { [2, 5], [3, 5], [2, 6], - [3, 6] + [3, 6], ] ); }); @@ -49,7 +49,7 @@ describe("ZCurve", () => { [3, 6], [4, 4], [4, 5], - [4, 6] + [4, 6], ] ); }); @@ -78,7 +78,7 @@ describe("ZCurve", () => { 196n, 198n, 208n, - 212n + 212n, ] ); assert.deepEqual( @@ -103,7 +103,7 @@ describe("ZCurve", () => { [4, 4, 1], [4, 5, 1], [4, 6, 0], - [4, 6, 1] + [4, 6, 1], ] ); }); diff --git a/packages/pixel/test/index.ts b/packages/pixel/test/index.ts index 3034b1a7e9..8e94758f0a 100644 --- a/packages/pixel/test/index.ts +++ b/packages/pixel/test/index.ts @@ -11,7 +11,7 @@ import { GRAY8, PackedFormat, RGB565, - RGB888 + RGB888, } from "../src/index"; // import { equiv } from "@thi.ng/equiv"; @@ -47,7 +47,7 @@ describe("pixel", () => { 0xffff0000, 0xffff1d1d, 0xffff9696, - 0xffff4c4c + 0xffff4c4c, ]); }); @@ -90,7 +90,7 @@ describe("pixel", () => { 0xff000000, 0xffff0000, 0xff00ff00, - 0xff0000ff + 0xff0000ff, ]); }); diff --git a/packages/pointfree-lang/test/readme.ts b/packages/pointfree-lang/test/readme.ts index 5ee44854a7..13ad22f26d 100644 --- a/packages/pointfree-lang/test/readme.ts +++ b/packages/pointfree-lang/test/readme.ts @@ -44,7 +44,7 @@ const drawLine = (ctx: StackContext) => { const env = pf.ffi( {}, { - "gfx.line": drawLine + "gfx.line": drawLine, } ); diff --git a/packages/pointfree/src/context.ts b/packages/pointfree/src/context.ts index ef6f5849e1..8b7d29e953 100644 --- a/packages/pointfree/src/context.ts +++ b/packages/pointfree/src/context.ts @@ -10,5 +10,5 @@ import type { Stack, StackContext, StackEnv } from "./api"; export const ctx = (stack: Stack = [], env: StackEnv = {}): StackContext => [ stack, [], - env + env, ]; diff --git a/packages/porter-duff/src/porter-duff.ts b/packages/porter-duff/src/porter-duff.ts index 02b42be547..af47a8f86b 100644 --- a/packages/porter-duff/src/porter-duff.ts +++ b/packages/porter-duff/src/porter-duff.ts @@ -3,7 +3,7 @@ import { postmultiply, postmultiplyInt, premultiply, - premultiplyInt + premultiplyInt, } from "./premultiply"; import { setC4, setN4 } from "./utils"; import type { Fn2, Fn3 } from "@thi.ng/api"; diff --git a/packages/ramp/src/aramp.ts b/packages/ramp/src/aramp.ts index b2960c52c3..6619f049c0 100644 --- a/packages/ramp/src/aramp.ts +++ b/packages/ramp/src/aramp.ts @@ -10,7 +10,7 @@ export abstract class ARamp implements IRamp { constructor( stops: Vec[] = [ [0, 0], - [1, 1] + [1, 1], ] ) { this.stops = stops; diff --git a/packages/ramp/src/hermite.ts b/packages/ramp/src/hermite.ts index 4f1fd07747..50bbecfa78 100644 --- a/packages/ramp/src/hermite.ts +++ b/packages/ramp/src/hermite.ts @@ -1,9 +1,4 @@ -import { - mix, - mixCubicHermite, - norm, - tangentCardinal -} from "@thi.ng/math"; +import { mix, mixCubicHermite, norm, tangentCardinal } from "@thi.ng/math"; import { comp, extendSides, @@ -11,7 +6,7 @@ import { map, mapcat, normRange, - partition + partition, } from "@thi.ng/transducers"; import { ARamp } from "./aramp"; import type { Vec } from "@thi.ng/vectors"; @@ -48,7 +43,7 @@ export class HermiteRamp extends ARamp { return map( (t) => [ mix(bx, cx, t), - mixCubicHermite(by, t1, cy, t2, t) + mixCubicHermite(by, t1, cy, t2, t), ], normRange(res, false) ); diff --git a/packages/random/src/constants.ts b/packages/random/src/constants.ts index 541b7d145e..f09b5dfc22 100644 --- a/packages/random/src/constants.ts +++ b/packages/random/src/constants.ts @@ -4,7 +4,7 @@ export const DEFAULT_SEED_128 = [ 0xdecafbad, 0x2fa9d75b, 0xe41f67e3, - 0x5c83ec1a + 0x5c83ec1a, ]; export const DEFAULT_SEED_160 = [...DEFAULT_SEED_128, 0xf69a5c71]; diff --git a/packages/random/src/smush32.ts b/packages/random/src/smush32.ts index c863813fec..1a66974a89 100644 --- a/packages/random/src/smush32.ts +++ b/packages/random/src/smush32.ts @@ -3,7 +3,7 @@ import { DEFAULT_SEED_32 } from "./constants"; import type { IBuffered, ICopy } from "@thi.ng/api"; import type { ISeedable } from "./api"; -// https://github.com/thi-ng/ct-head/blob/master/random.h +// https://github.com/thi-ng/ct-head/blob/develop/random.h // https://gist.github.com/voidqk/d112165a26b45244a65298933c0349a4 export class Smush32 extends ARandom diff --git a/packages/random/src/xsadd.ts b/packages/random/src/xsadd.ts index 4145e6cf3a..67063d4d8e 100644 --- a/packages/random/src/xsadd.ts +++ b/packages/random/src/xsadd.ts @@ -3,7 +3,7 @@ import { DEFAULT_SEED_32 } from "./constants"; import type { IBuffered, ICopy } from "@thi.ng/api"; import type { ISeedable } from "./api"; -// https://github.com/MersenneTwister-Lab/XSadd/blob/master/xsadd.h +// https://github.com/MersenneTwister-Lab/XSadd/blob/develop/xsadd.h export class XsAdd extends ARandom implements IBuffered, ICopy, ISeedable { diff --git a/packages/range-coder/test/index.ts b/packages/range-coder/test/index.ts index 6e50c8017f..7bd62ef26c 100644 --- a/packages/range-coder/test/index.ts +++ b/packages/range-coder/test/index.ts @@ -23,5 +23,5 @@ describe("range-coder", () => { const randomArray = (n: number, len: number) => new Uint8Array([ ...repeatedly(() => ~~(Math.random() * 256), n), - ...repeat(0, len - n) + ...repeat(0, len - n), ]); diff --git a/packages/resolve-map/src/index.ts b/packages/resolve-map/src/index.ts index 74f6007be9..958d7cce2c 100644 --- a/packages/resolve-map/src/index.ts +++ b/packages/resolve-map/src/index.ts @@ -1,10 +1,5 @@ import { NumOrString, SEMAPHORE } from "@thi.ng/api"; -import { - isArray, - isFunction, - isPlainObject, - isString -} from "@thi.ng/checks"; +import { isArray, isFunction, isPlainObject, isString } from "@thi.ng/checks"; import { illegalArgs } from "@thi.ng/errors"; import { exists, getInUnsafe, mutInUnsafe } from "@thi.ng/paths"; diff --git a/packages/resolve-map/test/index.ts b/packages/resolve-map/test/index.ts index 85d0dddda0..2e6befc3a9 100644 --- a/packages/resolve-map/test/index.ts +++ b/packages/resolve-map/test/index.ts @@ -11,7 +11,7 @@ describe("resolve-map", () => { assert.deepEqual(resolve({ a: "@c", b: "@a", c: 1 }), { a: 1, b: 1, - c: 1 + c: 1, }); }); @@ -19,7 +19,7 @@ describe("resolve-map", () => { assert.deepEqual(resolve({ a: "@c/1", b: "@a", c: [1, 2] }), { a: 2, b: 2, - c: [1, 2] + c: [1, 2], }); }); @@ -28,7 +28,7 @@ describe("resolve-map", () => { resolve({ a1: { b: 1, c: "@b" }, a2: { b: 2, c: "@b" }, - a3: { b: 3, c: "@/a1/b" } + a3: { b: 3, c: "@/a1/b" }, }), { a1: { b: 1, c: 1 }, a2: { b: 2, c: 2 }, a3: { b: 3, c: 1 } } ); @@ -38,7 +38,7 @@ describe("resolve-map", () => { assert.deepEqual( resolve({ a: { b: { c: "@../c/d", d: "@c", e: "@/c/d" }, c: { d: 1 } }, - c: { d: 10 } + c: { d: 10 }, }), { a: { b: { c: 1, d: 1, e: 10 }, c: { d: 1 } }, c: { d: 10 } } ); @@ -57,14 +57,14 @@ describe("resolve-map", () => { resolve({ a: (x: ResolveFn) => x("b/c") * 10, b: { c: "@d", d: "@/e" }, - e: () => 1 + e: () => 1, }), { a: 10, b: { c: 1, d: 1 }, e: 1 } ); const res = resolve({ a: (x: ResolveFn) => x("b/c")() * 10, b: { c: "@d", d: "@/e" }, - e: () => () => 1 + e: () => () => 1, }); assert.equal(res.a, 10); assert.strictEqual(res.b.c, res.e); @@ -78,7 +78,7 @@ describe("resolve-map", () => { resolve({ a: (x: ResolveFn) => x("b/c"), b: { c: "@d", d: "@/e" }, - e: () => (n++, 1) + e: () => (n++, 1), }), { a: 1, b: { c: 1, d: 1 }, e: 1 } ); @@ -90,7 +90,7 @@ describe("resolve-map", () => { resolve({ a: "@b/c/d", b: ($: ResolveFn) => ({ c: { d: { e: $("/x") } } }), - x: 1 + x: 1, }), { a: { e: 1 }, b: { c: { d: { e: 1 } } }, x: 1 } ); @@ -128,7 +128,7 @@ describe("resolve-map", () => { tx.push(), tx.range(10, 100, 5) ); - } + }, }; // prettier-ignore assert.deepEqual( @@ -149,7 +149,7 @@ describe("resolve-map", () => { it("destructures w/ local renames", () => { assert.deepEqual(resolve({ a: 1, b: ({ a: aa }: any) => aa }), { a: 1, - b: 1 + b: 1, }); }); @@ -165,7 +165,7 @@ describe("resolve-map", () => { resolve({ a: 1, b: 2, - c: new Function("{ a, b, }", "return a + b") + c: new Function("{ a, b, }", "return a + b"), }), { a: 1, b: 2, c: 3 }, "comma & whitespaces" @@ -174,7 +174,7 @@ describe("resolve-map", () => { resolve({ a: 1, b: 2, - c: new Function("{ a, b: bb, }", "return a + bb") + c: new Function("{ a, b: bb, }", "return a + bb"), }), { a: 1, b: 2, c: 3 }, "comma & whitespaces & rename" diff --git a/packages/router/src/basic.ts b/packages/router/src/basic.ts index 3dc4ec0ee7..7e383698fc 100644 --- a/packages/router/src/basic.ts +++ b/packages/router/src/basic.ts @@ -3,17 +3,12 @@ import { isString } from "@thi.ng/checks"; import { equiv } from "@thi.ng/equiv"; import { illegalArgs, illegalArity } from "@thi.ng/errors"; import { EVENT_ROUTE_CHANGED } from "./constants"; -import type { - Event, - INotify, - IObjectOf, - Listener -} from "@thi.ng/api"; +import type { Event, INotify, IObjectOf, Listener } from "@thi.ng/api"; import type { Route, RouteMatch, RouteParamValidator, - RouterConfig + RouterConfig, } from "./api"; @INotifyMixin @@ -27,7 +22,7 @@ export class BasicRouter implements INotify { ((route, _, params) => ({ id: route.id, title: route.title, - params + params, })); config.prefix = config.prefix === undefined ? "/" : config.prefix; config.separator = config.separator || "/"; diff --git a/packages/router/src/history.ts b/packages/router/src/history.ts index 9eaeb75234..ad498dff8e 100644 --- a/packages/router/src/history.ts +++ b/packages/router/src/history.ts @@ -28,7 +28,7 @@ export class HTMLRouter extends BasicRouter { this.route( this.format({ id: route.id, - title: route.title + title: route.title, }) ); } else { @@ -120,7 +120,7 @@ export class HTMLRouter extends BasicRouter { protected handleRouteFailure() { this.ignoreHashChange = true; location.hash = this.format({ - id: this.routeForID(this.config.defaultRouteID)!.id + id: this.routeForID(this.config.defaultRouteID)!.id, }); this.ignoreHashChange = false; return true; diff --git a/packages/rstream-csp/test/index.ts b/packages/rstream-csp/test/index.ts index 637e9ba614..55531703f2 100644 --- a/packages/rstream-csp/test/index.ts +++ b/packages/rstream-csp/test/index.ts @@ -3,8 +3,7 @@ import * as rs from "@thi.ng/rstream"; import * as assert from "assert"; import { fromChannel } from "../src/index"; - -describe("fromChannel", function() { +describe("fromChannel", function () { it("receives all values", (done) => { let ch = csp.Channel.range(5); let src = fromChannel(ch); @@ -18,7 +17,7 @@ describe("fromChannel", function() { assert(ch.isClosed(), "channel not closed"); assert.equal(src.getState(), rs.State.DONE, "stream not done"); done(); - } + }, }); }); }); diff --git a/packages/rstream-dot/src/index.ts b/packages/rstream-dot/src/index.ts index fcb1719271..e4a9d4579e 100644 --- a/packages/rstream-dot/src/index.ts +++ b/packages/rstream-dot/src/index.ts @@ -2,14 +2,9 @@ import { ISubscribable, Stream, StreamMerge, - StreamSync + StreamSync, } from "@thi.ng/rstream"; -import type { - DotOpts, - Node, - NodeType, - WalkState -} from "./api"; +import type { DotOpts, Node, NodeType, WalkState } from "./api"; export * from "./api"; @@ -68,7 +63,7 @@ export const walk = ( body: opts.values && sub.deref ? JSON.stringify(sub.deref()) - : undefined + : undefined, }; state.subs.set(sub, desc); state.id++; @@ -98,20 +93,18 @@ export const toDot = (state: WalkState, opts?: Partial) => { noid: "gray", stream: "blue", streammerge: "red", - streamsync: "red" - } + streamsync: "red", + }, }, opts ); return [ "digraph g {", `rankdir=${opts.dir};`, - `node[fontname=${opts.font},fontsize=${ - opts.fontsize - },style=filled,fontcolor=${opts.text}];`, + `node[fontname=${opts.font},fontsize=${opts.fontsize},style=filled,fontcolor=${opts.text}];`, `edge[fontname=${opts.font},fontsize=${opts.fontsize}];`, ...[...state.subs.values()].map((n) => dotNode(n, opts)), ...state.rels.map((r) => dotEdge(r[0], r[1], opts)), - "}" + "}", ].join("\n"); }; diff --git a/packages/rstream-gestures/src/gesture-stream.ts b/packages/rstream-gestures/src/gesture-stream.ts index f13abf2d12..bd66a03e7f 100644 --- a/packages/rstream-gestures/src/gesture-stream.ts +++ b/packages/rstream-gestures/src/gesture-stream.ts @@ -6,7 +6,7 @@ import { GestureEvent, GestureInfo, GestureStreamOpts, - GestureType + GestureType, } from "./api"; import type { IObjectOf } from "@thi.ng/api"; @@ -26,7 +26,7 @@ const startEvents = new Set([ "mousedown", "touchmove", "touchstart", - "mousemove" + "mousemove", ]); const endEvents = new Set(["mouseup", "touchend", "touchcancel"]); @@ -40,7 +40,7 @@ const eventGestureTypeMap: IObjectOf = { touchcancel: GestureType.END, mousedown: GestureType.START, mouseup: GestureType.END, - wheel: GestureType.ZOOM + wheel: GestureType.ZOOM, }; /** @@ -88,7 +88,7 @@ export const gestureStream = ( preventContextMenu: true, local: true, scale: false, - ..._opts + ..._opts, }; const dpr = window.devicePixelRatio || 1; const active: GestureInfo[] = []; @@ -102,7 +102,7 @@ export const gestureStream = ( "touchend", "touchcancel", "touchmove", - "mouseup" + "mouseup", ]; !isBody && tempEvents.push("mousemove"); @@ -155,7 +155,7 @@ export const gestureStream = ( touch.pos = pos; touch.delta = [ pos[0] - touch.start![0], - pos[1] - touch.start![1] + pos[1] - touch.start![1], ]; if (isTouch) { touch.force = (t).force; @@ -202,9 +202,9 @@ export const gestureStream = ( active, zoom, zoomDelta, - isTouch + isTouch, }; - }) + }), }); return stream; diff --git a/packages/rstream-log-file/src/index.ts b/packages/rstream-log-file/src/index.ts index fe55762266..91f127aac9 100644 --- a/packages/rstream-log-file/src/index.ts +++ b/packages/rstream-log-file/src/index.ts @@ -8,5 +8,5 @@ export const writeFile = (path: string): ISubscriber => ({ process.stderr.write(e.message); } }); - } + }, }); diff --git a/packages/rstream-log/src/logger.ts b/packages/rstream-log/src/logger.ts index dc87f44859..29b58d998e 100644 --- a/packages/rstream-log/src/logger.ts +++ b/packages/rstream-log/src/logger.ts @@ -1,11 +1,6 @@ import { LogLevel } from "@thi.ng/api"; import { illegalArity } from "@thi.ng/errors"; -import { - CloseMode, - ISubscribable, - nextID, - StreamMerge -} from "@thi.ng/rstream"; +import { CloseMode, ISubscribable, nextID, StreamMerge } from "@thi.ng/rstream"; import type { ILogger, LogEntry } from "./api"; export class Logger extends StreamMerge implements ILogger { diff --git a/packages/rstream-log/src/xform/format.ts b/packages/rstream-log/src/xform/format.ts index 8710c58e3a..39be112c92 100644 --- a/packages/rstream-log/src/xform/format.ts +++ b/packages/rstream-log/src/xform/format.ts @@ -1,11 +1,6 @@ import { LogLevel } from "@thi.ng/api"; import { map, Transducer } from "@thi.ng/transducers"; -import type { - BodyFormat, - DateFormat, - LogEntry, - LogEntryObj -} from "../api"; +import type { BodyFormat, DateFormat, LogEntry, LogEntryObj } from "../api"; export const isoDate = (dt: number) => new Date(dt).toISOString(); @@ -61,7 +56,7 @@ export const formatJSON = ( id, level: LogLevel[level], time: dtfmt!(time), - body + body, }) ); }; diff --git a/packages/rstream-log/test/index.ts b/packages/rstream-log/test/index.ts index 475d0b498f..37134e6597 100644 --- a/packages/rstream-log/test/index.ts +++ b/packages/rstream-log/test/index.ts @@ -8,7 +8,7 @@ const collect = (acc: string[]) => { next(x) { acc.push(x); }, - result: acc + result: acc, }; }; @@ -34,7 +34,7 @@ describe("rstream-log", () => { "[DEBUG] foo: 2 hello", "[INFO] foo: 3 hello", "[WARN] foo: 4 hello", - "[SEVERE] foo: 5 hello" + "[SEVERE] foo: 5 hello", ]); sub.unsubscribe(); assert.equal(logger.getState(), State.ACTIVE); diff --git a/packages/rstream-query/src/store.ts b/packages/rstream-query/src/store.ts index 83cc173123..e066b470d2 100644 --- a/packages/rstream-query/src/store.ts +++ b/packages/rstream-query/src/store.ts @@ -9,14 +9,9 @@ import { nextID, Stream, Subscription, - sync + sync, } from "@thi.ng/rstream"; -import { - DotOpts, - IToDot, - toDot, - walk -} from "@thi.ng/rstream-dot"; +import { DotOpts, IToDot, toDot, walk } from "@thi.ng/rstream-dot"; import { assocObj, comp, @@ -24,7 +19,7 @@ import { map, mapIndexed, transduce, - Transducer + Transducer, } from "@thi.ng/transducers"; import { patternVars, resolvePathPattern } from "./pattern"; import { isQVar, qvarResolver } from "./qvar"; @@ -36,7 +31,7 @@ import { intersect3, joinSolutions, limitSolutions, - resultTriples + resultTriples, } from "./xforms"; import type { Edit, @@ -50,7 +45,7 @@ import type { Triple, TripleIds, Triples, - WhereQuerySpec + WhereQuerySpec, } from "./api"; export class TripleStore implements Iterable, IToDot { @@ -80,7 +75,7 @@ export class TripleStore implements Iterable, IToDot { this.indexSelections = { s: new Map(), p: new Map(), - o: new Map() + o: new Map(), }; this.streamS = new Stream({ id: "S", closeOut: CloseMode.NEVER }); this.streamP = new Stream({ id: "P", closeOut: CloseMode.NEVER }); @@ -231,7 +226,7 @@ export class TripleStore implements Iterable, IToDot { id, src, xform, - reset: true + reset: true, }); this.queries.set(key, >results); submit(this.indexS, qs, s); @@ -329,7 +324,7 @@ export class TripleStore implements Iterable, IToDot { xform: comp( map(({ a, b }) => join(a, b)), dedupe(equiv) - ) + ), }); } @@ -341,20 +336,20 @@ export class TripleStore implements Iterable, IToDot { const src = transduce( mapIndexed((i, q) => [ String(i), - q + q, ]), assocObj(), queries ); let xforms: Transducer[] = [ joinSolutions(Object.keys(src).length), - dedupe(equiv) + dedupe(equiv), ]; keepVars && xforms.push(filterSolutions(keepVars)); return sync({ id, src, - xform: >comp.apply(null, xforms) + xform: >comp.apply(null, xforms), }); } diff --git a/packages/rstream-query/src/xforms.ts b/packages/rstream-query/src/xforms.ts index a3d2e3a1d0..0c27074fc9 100644 --- a/packages/rstream-query/src/xforms.ts +++ b/packages/rstream-query/src/xforms.ts @@ -8,15 +8,9 @@ import { keySelector, map, Reducer, - Transducer + Transducer, } from "@thi.ng/transducers"; -import { - BindFn, - Edit, - Solutions, - Triple, - TripleIds -} from "./api"; +import { BindFn, Edit, Solutions, Triple, TripleIds } from "./api"; import { TripleStore } from "./store"; import type { IObjectOf } from "@thi.ng/api"; diff --git a/packages/rstream-query/test/example.ts b/packages/rstream-query/test/example.ts index 0e1dff487c..8b6e413fc5 100644 --- a/packages/rstream-query/test/example.ts +++ b/packages/rstream-query/test/example.ts @@ -9,7 +9,7 @@ const store = new q.TripleStore([ ["portland", "part-of", "usa"], ["oregon", "type", "state"], ["usa", "type", "country"], - ["uk", "type", "country"] + ["uk", "type", "country"], ]); // alternatively, convert an object into a sequence of triples @@ -46,19 +46,19 @@ store // then a city's "part-of" relationships (if any) ["?city", "partOf", "?country"], // the matched ?country must have type = "country" - ["?country", "type", "country"] - ] - } + ["?country", "type", "country"], + ], + }, ], // `bind` is an (optional) query post-processor and // allows injection of new variables into the result set // here we create a new var "answer" whose values are derived from // the other two query vars bind: { - answer: (res) => `${res.city} is located in ${res.country}` + answer: (res) => `${res.city} is located in ${res.country}`, }, // another post-processing step, only keeps "answer" var in results - select: ["answer"] + select: ["answer"], }) .subscribe(trace()); // Set { @@ -70,7 +70,7 @@ const addCity = (name: string, country: string) => store.into([ [name, "type", "city"], [name, "partOf", country], - [country, "type", "country"] + [country, "type", "country"], ]); addCity("berlin", "germany"); diff --git a/packages/rstream-query/test/index.ts b/packages/rstream-query/test/index.ts index 9ed6240563..0f01b1189b 100644 --- a/packages/rstream-query/test/index.ts +++ b/packages/rstream-query/test/index.ts @@ -8,7 +8,7 @@ describe("rstream-query", () => { ["c", "type", "baz"], // 2 ["a", "value", 0], // 3 ["b", "value", 1], // 4 - ["c", "friend", "a"] // 5 + ["c", "friend", "a"], // 5 ]; let store: TripleStore; @@ -87,7 +87,10 @@ describe("rstream-query", () => { .addParamQuery(["a", "?p", "?o"]) .subscribe({ next: (r) => res.push(r) }); assert.deepEqual(res, [ - new Set([{ p: "type", o: "foo" }, { p: "value", o: 0 }]) + new Set([ + { p: "type", o: "foo" }, + { p: "value", o: 0 }, + ]), ]); }); @@ -100,8 +103,8 @@ describe("rstream-query", () => { new Set([ { s: "a", o: "foo" }, { s: "b", o: "bar" }, - { s: "c", o: "baz" } - ]) + { s: "c", o: "baz" }, + ]), ]); }); @@ -153,8 +156,8 @@ describe("rstream-query", () => { { s: "c", p: "type", o: "baz" }, { s: "a", p: "value", o: 0 }, { s: "b", p: "value", o: 1 }, - { s: "c", p: "friend", o: "a" } - ]) + { s: "c", p: "friend", o: "a" }, + ]), ]); }); }); diff --git a/packages/rstream/src/forkjoin.ts b/packages/rstream/src/forkjoin.ts index bc1370da90..36e0cc5d7d 100644 --- a/packages/rstream/src/forkjoin.ts +++ b/packages/rstream/src/forkjoin.ts @@ -1,9 +1,4 @@ -import { - comp, - map, - mapcat, - range -} from "@thi.ng/transducers"; +import { comp, map, mapcat, range } from "@thi.ng/transducers"; import { sync } from "./stream-sync"; import { tunnel } from "./subs/tunnel"; import { Subscription } from "./subscription"; @@ -129,11 +124,11 @@ export const forkJoin = ( transferables: opts.transferables, interrupt: opts.interrupt === true, terminate: opts.terminate, - id: String(id) + id: String(id), }) ), workerIDs - ) + ), ], xform: comp( // form result tuple in original order @@ -142,7 +137,7 @@ export const forkJoin = ( map(opts.join) ), reset: true, - backPressure: opts.backPressure + backPressure: opts.backPressure, }); }; diff --git a/packages/rstream/src/stream-merge.ts b/packages/rstream/src/stream-merge.ts index 4c35d565a6..38c4b50a0b 100644 --- a/packages/rstream/src/stream-merge.ts +++ b/packages/rstream/src/stream-merge.ts @@ -1,9 +1,4 @@ -import { - CloseMode, - ISubscribable, - State, - TransformableOpts -} from "./api"; +import { CloseMode, ISubscribable, State, TransformableOpts } from "./api"; import { Subscription } from "./subscription"; import { optsWithID } from "./utils/idgen"; @@ -94,7 +89,7 @@ export class StreamMerge extends Subscription { } }, done: () => this.markDone(src), - __owner: this + __owner: this, }, { id: `in-${src.id}` } ) diff --git a/packages/rstream/src/stream.ts b/packages/rstream/src/stream.ts index 8f3750f19b..c7809eb004 100644 --- a/packages/rstream/src/stream.ts +++ b/packages/rstream/src/stream.ts @@ -6,7 +6,7 @@ import { ISubscriber, LOGGER, StreamCancel, - StreamSource + StreamSource, } from "./api"; import { Subscription } from "./subscription"; import { optsWithID } from "./utils/idgen"; diff --git a/packages/rstream/src/subs/post-worker.ts b/packages/rstream/src/subs/post-worker.ts index fbd8e1fc69..a77b31b4f0 100644 --- a/packages/rstream/src/subs/post-worker.ts +++ b/packages/rstream/src/subs/post-worker.ts @@ -65,6 +65,6 @@ export const postWorker = ( _worker.terminate(); }, terminate); } - } + }, }; }; diff --git a/packages/rstream/src/subs/sidechain-partition.ts b/packages/rstream/src/subs/sidechain-partition.ts index 2f4cde7cca..1855959bfb 100644 --- a/packages/rstream/src/subs/sidechain-partition.ts +++ b/packages/rstream/src/subs/sidechain-partition.ts @@ -65,7 +65,7 @@ export class SidechainPartition extends ASidechain { } $this.done(); delete $this.buf; - } + }, }); } diff --git a/packages/rstream/src/subs/sidechain-toggle.ts b/packages/rstream/src/subs/sidechain-toggle.ts index f8461001f9..f39a52235c 100644 --- a/packages/rstream/src/subs/sidechain-toggle.ts +++ b/packages/rstream/src/subs/sidechain-toggle.ts @@ -62,7 +62,7 @@ export class SidechainToggle extends ASidechain { }, done() { $this.done(); - } + }, }); } diff --git a/packages/rstream/src/subs/trace.ts b/packages/rstream/src/subs/trace.ts index 3ebc9b0df6..505a0065b3 100644 --- a/packages/rstream/src/subs/trace.ts +++ b/packages/rstream/src/subs/trace.ts @@ -16,5 +16,5 @@ export const trace = (prefix?: any): ISubscriber => ({ }, error(e) { prefix ? console.log(prefix, "error", e) : console.log("error", e); - } + }, }); diff --git a/packages/rstream/src/subs/transduce.ts b/packages/rstream/src/subs/transduce.ts index 455adea5c0..0e0ec0f5bc 100644 --- a/packages/rstream/src/subs/transduce.ts +++ b/packages/rstream/src/subs/transduce.ts @@ -51,7 +51,7 @@ export const transduce = ( }, error(e) { reject(e); - } + }, }, xform ); diff --git a/packages/rstream/src/tween.ts b/packages/rstream/src/tween.ts index e933fdbb99..f46951380e 100644 --- a/packages/rstream/src/tween.ts +++ b/packages/rstream/src/tween.ts @@ -75,9 +75,9 @@ export const tween = ( ? fromRAF() : isNumber(clock) ? fromInterval(clock) - : clock + : clock, }, - closeIn: CloseMode.FIRST + closeIn: CloseMode.FIRST, }).transform( scan( reducer( diff --git a/packages/rstream/test/bisect.ts b/packages/rstream/test/bisect.ts index 6a44c1dfe8..86f0582b6e 100644 --- a/packages/rstream/test/bisect.ts +++ b/packages/rstream/test/bisect.ts @@ -1,11 +1,6 @@ import { map } from "@thi.ng/transducers"; import * as assert from "assert"; -import { - bisect, - fromIterable, - Stream, - subscription -} from "../src/index"; +import { bisect, fromIterable, Stream, subscription } from "../src/index"; // prettier-ignore describe("bisect", () => { diff --git a/packages/rstream/test/from-iterable.ts b/packages/rstream/test/from-iterable.ts index 2ff3f476b0..b57a852cba 100644 --- a/packages/rstream/test/from-iterable.ts +++ b/packages/rstream/test/from-iterable.ts @@ -1,10 +1,5 @@ import * as assert from "assert"; -import { - fromIterable, - State, - Stream, - Subscription -} from "../src/index"; +import { fromIterable, State, Stream, Subscription } from "../src/index"; import { TIMEOUT } from "./config"; describe("fromIterable()", () => { @@ -37,7 +32,7 @@ describe("fromIterable()", () => { done() { assert.deepEqual(buf, data); done(); - } + }, }); }); @@ -47,7 +42,7 @@ describe("fromIterable()", () => { assert.equal(src.getState(), State.DONE, "src not done"); assert.equal(sub.getState(), State.DONE, "sub not done"); done(); - } + }, }); }); @@ -63,11 +58,11 @@ describe("fromIterable()", () => { assert.deepEqual(buf, data); assert(Date.now() - t0 >= (data.length + 1) * 10); done(); - } + }, }); }); - it("can be cancelled", function(done) { + it("can be cancelled", function (done) { this.timeout(TIMEOUT * 5); let buf: any[] = []; let doneCalled = false; @@ -78,7 +73,7 @@ describe("fromIterable()", () => { }, done() { doneCalled = true; - } + }, }); setTimeout(() => src.cancel(), TIMEOUT * 1.5); setTimeout(() => { diff --git a/packages/rstream/test/from-promise.ts b/packages/rstream/test/from-promise.ts index a83328c85c..20c7cd7828 100644 --- a/packages/rstream/test/from-promise.ts +++ b/packages/rstream/test/from-promise.ts @@ -1,10 +1,5 @@ import * as assert from "assert"; -import { - fromIterable, - fromPromise, - resolve, - State -} from "../src/index"; +import { fromIterable, fromPromise, resolve, State } from "../src/index"; import { TIMEOUT } from "./config"; describe("fromPromise()", () => { @@ -19,7 +14,7 @@ describe("fromPromise()", () => { done() { assert(called, "not called next()"); done(); - } + }, }); }); @@ -38,7 +33,7 @@ describe("fromPromise()", () => { assert.equal(src.getState(), State.ERROR); assert.equal(sub.getState(), State.ERROR); called = true; - } + }, }); setTimeout(() => { assert(called, "not called"); @@ -65,7 +60,7 @@ describe("fromPromise()", () => { assert.equal(src.getState(), State.ERROR); assert.equal(sub.getState(), State.ERROR); called = true; - } + }, }); setTimeout(() => { assert(called, "not called"); @@ -88,7 +83,7 @@ describe("fromPromise()", () => { done() { assert(called, "not called"); done(); - } + }, }); }); }); diff --git a/packages/rstream/test/sidechain-partition.ts b/packages/rstream/test/sidechain-partition.ts index d1fe41935d..d7c98f6a04 100644 --- a/packages/rstream/test/sidechain-partition.ts +++ b/packages/rstream/test/sidechain-partition.ts @@ -1,12 +1,7 @@ import * as assert from "assert"; -import { - sidechainPartition, - State, - Stream, - stream -} from "../src/index"; +import { sidechainPartition, State, Stream, stream } from "../src/index"; -describe("SidechainPartition", function() { +describe("SidechainPartition", function () { let src: Stream, side: Stream, buf: any[]; beforeEach(() => { @@ -23,10 +18,10 @@ describe("SidechainPartition", function() { done() { assert.deepEqual(buf, [ [1, 2], - [3, 4, 5] + [3, 4, 5], ]); done(); - } + }, }); src.next(1); src.next(2); @@ -50,10 +45,10 @@ describe("SidechainPartition", function() { done() { assert.deepEqual(buf, [ [1, 2, 3], - [4, 5] + [4, 5], ]); done(); - } + }, }); src.next(1); src.next(2); diff --git a/packages/rstream/test/sidechain-toggle.ts b/packages/rstream/test/sidechain-toggle.ts index bf03ab3ed8..065244a0bc 100644 --- a/packages/rstream/test/sidechain-toggle.ts +++ b/packages/rstream/test/sidechain-toggle.ts @@ -1,11 +1,6 @@ import { Predicate } from "@thi.ng/api"; import * as assert from "assert"; -import { - sidechainToggle, - State, - Stream, - stream -} from "../src/index"; +import { sidechainToggle, State, Stream, stream } from "../src/index"; describe("SidechainToggle", () => { let src: Stream, side: Stream, buf: any[]; @@ -29,7 +24,7 @@ describe("SidechainToggle", () => { done() { assert.deepEqual(buf, expect); done(); - } + }, }); src.next(1); src.next(2); diff --git a/packages/rstream/test/stream-merge.ts b/packages/rstream/test/stream-merge.ts index 31a2b6d046..71a360d900 100644 --- a/packages/rstream/test/stream-merge.ts +++ b/packages/rstream/test/stream-merge.ts @@ -6,7 +6,7 @@ import { fromIterableSync, merge, State, - StreamMerge + StreamMerge, } from "../src/index"; describe("StreamMerge", () => { @@ -24,7 +24,7 @@ describe("StreamMerge", () => { expected ); done(); - } + }, }; }; @@ -33,8 +33,8 @@ describe("StreamMerge", () => { src: [ fromIterable([1, 2]), fromIterable([10, 20, 30, 40]), - fromIterable([100, 200, 300]) - ] + fromIterable([100, 200, 300]), + ], }); }); @@ -70,7 +70,7 @@ describe("StreamMerge", () => { it("applies transducer", (done) => { src = merge({ src: [fromIterable([1, 2]), fromIterable([10, 20])], - xform: mapcat((x: number) => [x, x + 1]) + xform: mapcat((x: number) => [x, x + 1]), }); src.subscribe(check([1, 2, 2, 3, 10, 11, 20, 21], done)); }); @@ -78,7 +78,7 @@ describe("StreamMerge", () => { it("transducer streams", (done) => { const sources = [ fromIterable([1, 2, 3]), - fromIterable([4, 5, 6]) + fromIterable([4, 5, 6]), ].map((s) => s.subscribe(map((x) => fromIterable([x, x, x])))); const main = merge({ src: sources }); const histogram = frequencies(); @@ -96,11 +96,11 @@ describe("StreamMerge", () => { [3, 3], [4, 3], [5, 3], - [6, 3] + [6, 3], ]) ); done(); - } + }, }); }); }); diff --git a/packages/rstream/test/timeout.ts b/packages/rstream/test/timeout.ts index 9c0f0c9a43..688589ec59 100644 --- a/packages/rstream/test/timeout.ts +++ b/packages/rstream/test/timeout.ts @@ -3,18 +3,18 @@ import { timeout } from "../src"; import { TIMEOUT } from "./config"; describe("Timeout", () => { - it("times out", function(done) { + it("times out", function (done) { this.timeout(TIMEOUT * 2); timeout(TIMEOUT).subscribe({ error: (e) => { assert(e instanceof Error); done(); - } + }, }); }); - it("times out with error object", function(done) { + it("times out with error object", function (done) { this.timeout(TIMEOUT * 2); const error = "error object"; @@ -23,23 +23,23 @@ describe("Timeout", () => { error: (err) => { assert.equal(err, error); done(); - } + }, }); }); - it("cancels timeout in cleanup()", function(done) { + it("cancels timeout in cleanup()", function (done) { this.timeout(TIMEOUT * 3); timeout(TIMEOUT) .subscribe({ - error: () => assert.fail("timed out") + error: () => assert.fail("timed out"), }) .unsubscribe(); setTimeout(() => done(), TIMEOUT * 2); }); - it("resets timeout when value received", function(done) { + it("resets timeout when value received", function (done) { this.timeout(TIMEOUT * 4); const res: any[] = []; @@ -50,7 +50,7 @@ describe("Timeout", () => { }, error: () => { assert.deepEqual(res, [1, 2]); - } + }, }); setTimeout(() => t.next(1), TIMEOUT * 0.7); diff --git a/packages/rstream/test/transducers.ts b/packages/rstream/test/transducers.ts index 09aeb29cb8..32018f2fee 100644 --- a/packages/rstream/test/transducers.ts +++ b/packages/rstream/test/transducers.ts @@ -4,7 +4,7 @@ import { map, mapcat, partition, - take + take, } from "@thi.ng/transducers"; import * as assert from "assert"; import { fromIterable, Stream } from "../src/index"; @@ -22,7 +22,7 @@ describe("transducers", () => { done() { assert.deepEqual(buf, expected); done(); - } + }, }; }; @@ -39,7 +39,10 @@ describe("transducers", () => { it("works combined", (done) => { src.subscribe( check([101, 201, 301], done), - comp(map((x: number) => x * 10), map((x: number) => x + 1)) + comp( + map((x: number) => x * 10), + map((x: number) => x + 1) + ) ); }); @@ -50,12 +53,18 @@ describe("transducers", () => { it("emits multiple values", (done) => { src.subscribe( check([10, 10, 20], done), - comp(mapcat((x) => [x, x]), take(3)) + comp( + mapcat((x) => [x, x]), + take(3) + ) ); }); it("filters values", (done) => { - src.subscribe(check([10, 30], done), filter((x: number) => x % 20 > 0)); + src.subscribe( + check([10, 30], done), + filter((x: number) => x % 20 > 0) + ); }); it("emits remaining", (done) => { diff --git a/packages/sax/src/index.ts b/packages/sax/src/index.ts index 0247f3d51c..00f7027057 100644 --- a/packages/sax/src/index.ts +++ b/packages/sax/src/index.ts @@ -90,7 +90,7 @@ export enum Type { /** * Parser error event */ - ERROR + ERROR, } interface ParseState extends FSMState { @@ -125,7 +125,7 @@ const enum State { DOCTYPE, PROC_DECL, PROC_END, - CDATA + CDATA, // H_CHAR, // U_CHAR, } @@ -135,7 +135,7 @@ const ENTITIES: IObjectOf = { "<": "<", ">": ">", """: '"', - "'": "'" + "'": "'", }; const ENTITY_RE = new RegExp(`(${Object.keys(ENTITIES).join("|")})`, "g"); @@ -149,7 +149,7 @@ const ESCAPE_SEQS: IObjectOf = { b: "\b", '"': '"', "'": "'", - "\\": "\\" + "\\": "\\", }; /** @@ -182,10 +182,10 @@ export function parse(...args: any[]): any { children: true, entities: false, trim: false, - ...args[0] - } + ...args[0], + }, }, - terminate: State.ERROR + terminate: State.ERROR, }); } @@ -294,9 +294,9 @@ const PARSER: FSMStateMap = { } else { return error( state, - `unmatched tag: '${state.tag}' @ pos ${state.pos - - state.tag!.length - - 2}` + `unmatched tag: '${state.tag}' @ pos ${ + state.pos - state.tag!.length - 2 + }` ); } } @@ -313,7 +313,7 @@ const PARSER: FSMStateMap = { } return [ { type: Type.ELEM_START, ...res }, - { type: Type.ELEM_END, ...res } + { type: Type.ELEM_END, ...res }, ]; } else { return unexpected(state, ch); @@ -553,12 +553,12 @@ const PARSER: FSMStateMap = { state.state = State.WAIT; state.isProc = false; return [ - { type: Type.PROC, tag: state.tag, attribs: state.attribs } + { type: Type.PROC, tag: state.tag, attribs: state.attribs }, ]; } else { return unexpected(state, ch); } - } + }, }; const beginElementBody = (state: ParseState) => { diff --git a/packages/sax/test/index.ts b/packages/sax/test/index.ts index b3b7d3051b..76025a6745 100644 --- a/packages/sax/test/index.ts +++ b/packages/sax/test/index.ts @@ -36,12 +36,12 @@ describe("sax", () => { ...e.attribs, cx: parseFloat(e.attribs.cx), cy: parseFloat(e.attribs.cy), - r: parseFloat(e.attribs.r) - } + r: parseFloat(e.attribs.r), + }, ]) ), svg - ) + ), ], [ ["circle", { cx: 50, cy: 150, r: 50 }], @@ -53,9 +53,9 @@ describe("sax", () => { cy: 150, fill: "rgba(0,255,255,0.25)", r: 100, - stroke: "#ff0000" - } - ] + stroke: "#ff0000", + }, + ], ] ); }); @@ -69,7 +69,10 @@ describe("sax", () => { const parsedChildren = (e: ParseElement) => tx.iterator( - tx.comp(tx.map(parseElement), tx.filter((e: any) => !!e)), + tx.comp( + tx.map(parseElement), + tx.filter((e: any) => !!e) + ), e.children ); @@ -79,12 +82,12 @@ describe("sax", () => { // implementations parseElement.add("circle", (e) => [ e.tag, - numericAttribs(e, "cx", "cy", "r") + numericAttribs(e, "cx", "cy", "r"), ]); parseElement.add("rect", (e) => [ e.tag, - numericAttribs(e, "x", "y", "width", "height") + numericAttribs(e, "x", "y", "width", "height"), ]); parseElement.add("g", (e) => [e.tag, e.attribs, ...parsedChildren(e)]); @@ -92,7 +95,7 @@ describe("sax", () => { parseElement.add("svg", (e) => [ e.tag, numericAttribs(e, "width", "height"), - ...parsedChildren(e) + ...parsedChildren(e), ]); // implementation for unhandled elements (just return undefined) @@ -106,7 +109,7 @@ describe("sax", () => { version: "1.1", height: 300, width: 300, - xmlns: "http://www.w3.org/2000/svg" + xmlns: "http://www.w3.org/2000/svg", }, [ "g", @@ -120,8 +123,8 @@ describe("sax", () => { cy: 150, fill: "rgba(0,255,255,0.25)", r: 100, - stroke: "#ff0000" - } + stroke: "#ff0000", + }, ], [ "rect", @@ -131,16 +134,16 @@ describe("sax", () => { width: 140, height: 140, fill: "none", - stroke: "black" - } - ] + stroke: "black", + }, + ], ], [ "g", { fill: "none", stroke: "black" }, ["circle", { cx: 150, cy: 150, r: 50 }], - ["circle", { cx: 150, cy: 150, r: 25 }] - ] + ["circle", { cx: 150, cy: 150, r: 25 }], + ], ] ); }); @@ -155,7 +158,7 @@ describe("sax", () => { [ { type: 4, tag: "a", attribs: {} }, { type: 4, tag: "b", attribs: {} }, - { type: 7, body: "unmatched tag: 'c' @ pos 7" } + { type: 7, body: "unmatched tag: 'c' @ pos 7" }, ] ); }); @@ -169,8 +172,8 @@ describe("sax", () => { type: 5, tag: "foo", attribs: { a: true, b: "2", c: true }, - children: [] - } + children: [], + }, ], "no slash" ); @@ -178,7 +181,7 @@ describe("sax", () => { [...parse({ boolean: true }, ``)], [ { type: 4, tag: "foo", attribs: { a: true, b: "2", c: true } }, - { type: 5, tag: "foo", attribs: { a: true, b: "2", c: true } } + { type: 5, tag: "foo", attribs: { a: true, b: "2", c: true } }, ], "with slash" ); diff --git a/packages/scenegraph/src/node2.ts b/packages/scenegraph/src/node2.ts index 12e620e548..eaa171b4cb 100644 --- a/packages/scenegraph/src/node2.ts +++ b/packages/scenegraph/src/node2.ts @@ -1,10 +1,5 @@ import { isNumber } from "@thi.ng/checks"; -import { - invert23, - mulM23, - mulV23, - transform23 -} from "@thi.ng/matrices"; +import { invert23, mulM23, mulV23, transform23 } from "@thi.ng/matrices"; import { ANode } from "./anode"; import type { IToHiccup, Nullable } from "@thi.ng/api"; import type { ReadonlyVec, Vec } from "@thi.ng/vectors"; @@ -70,7 +65,7 @@ export class Node2D extends ANode this.body ? ["g", { transform: this.mat }, this.body] : undefined, - ...this.children + ...this.children, ] : this.body ? ["g", { transform: this.mat }, this.body] diff --git a/packages/scenegraph/src/node3.ts b/packages/scenegraph/src/node3.ts index c2465fc7d4..129ef17660 100644 --- a/packages/scenegraph/src/node3.ts +++ b/packages/scenegraph/src/node3.ts @@ -1,10 +1,5 @@ import { isNumber } from "@thi.ng/checks"; -import { - invert44, - mulM44, - mulV344, - transform44 -} from "@thi.ng/matrices"; +import { invert44, mulM44, mulV344, transform44 } from "@thi.ng/matrices"; import { ANode } from "./anode"; import type { IToHiccup, Nullable } from "@thi.ng/api"; import type { ReadonlyVec, Vec } from "@thi.ng/vectors"; @@ -69,7 +64,7 @@ export class Node3D extends ANode this.body ? ["g", { transform: this.mat }, this.body] : undefined, - ...this.children + ...this.children, ] : this.body ? ["g", { transform: this.mat }, this.body] diff --git a/packages/seq/src/array.ts b/packages/seq/src/array.ts index 3332122447..d99d38a7b8 100644 --- a/packages/seq/src/array.ts +++ b/packages/seq/src/array.ts @@ -27,7 +27,7 @@ export const aseq = ( }, next() { return aseq(buf, start + 1, end); - } + }, } : undefined; }; @@ -60,7 +60,7 @@ export const rseq = ( }, next() { return rseq(buf, start! - 1, end); - } + }, } : undefined; }; diff --git a/packages/seq/src/concat.ts b/packages/seq/src/concat.ts index c60ca212b5..481dfe79f2 100644 --- a/packages/seq/src/concat.ts +++ b/packages/seq/src/concat.ts @@ -26,7 +26,7 @@ export const concat = ( }, next() { return $seq(curr!.next(), i); - } + }, } : undefined; }; @@ -56,7 +56,7 @@ export const concatA = (...args: Nullable>[]) => { }, next() { return $seq(i, j + 1); - } + }, } : undefined; }; diff --git a/packages/seq/src/cons.ts b/packages/seq/src/cons.ts index c49aa4ef27..1ec4b60501 100644 --- a/packages/seq/src/cons.ts +++ b/packages/seq/src/cons.ts @@ -12,5 +12,5 @@ export const cons = (head: T, seq?: ISeq): ISeq => ({ }, next() { return seq; - } + }, }); diff --git a/packages/seq/src/lazyseq.ts b/packages/seq/src/lazyseq.ts index f094f00b14..9037d0be2d 100644 --- a/packages/seq/src/lazyseq.ts +++ b/packages/seq/src/lazyseq.ts @@ -34,6 +34,6 @@ export const lazyseq = (fn: Fn0 | undefined>): ISeq => { }, next() { return ensure() !== undefined ? seq!.next() : undefined; - } + }, }; }; diff --git a/packages/seq/test/concat.ts b/packages/seq/test/concat.ts index dba6af8b39..4cc4540f8a 100644 --- a/packages/seq/test/concat.ts +++ b/packages/seq/test/concat.ts @@ -1,11 +1,5 @@ import * as assert from "assert"; -import { - aseq, - concat, - concatA, - iterator, - rseq -} from "../src"; +import { aseq, concat, concatA, iterator, rseq } from "../src"; describe("concat / iterator", () => { it("concat", () => { @@ -24,7 +18,7 @@ describe("concat / iterator", () => { rseq([1, 2, 3]), undefined ) - ) + ), ], [1, 2, 3, 3, 2, 1] ); diff --git a/packages/seq/test/cons.ts b/packages/seq/test/cons.ts index 596f669758..1497297d3e 100644 --- a/packages/seq/test/cons.ts +++ b/packages/seq/test/cons.ts @@ -5,17 +5,7 @@ describe("cons", () => { it("cons", () => { assert.equal(cons(1).first(), 1); assert.equal(cons(1).next(), undefined); - assert.equal( - cons(1, cons(2)) - .next()! - .first(), - 2 - ); - assert.equal( - cons(1, cons(2)) - .next()! - .next(), - undefined - ); + assert.equal(cons(1, cons(2)).next()!.first(), 2); + assert.equal(cons(1, cons(2)).next()!.next(), undefined); }); }); diff --git a/packages/seq/test/custom.ts b/packages/seq/test/custom.ts index 5c13d51413..185cf1e542 100644 --- a/packages/seq/test/custom.ts +++ b/packages/seq/test/custom.ts @@ -18,7 +18,7 @@ export class Range implements ISeqable { }, next() { return $seq(i + 1); - } + }, } : undefined; return $seq(0); diff --git a/packages/sexpr/src/constants.ts b/packages/sexpr/src/constants.ts index 9565ed06f1..fa186b8069 100644 --- a/packages/sexpr/src/constants.ts +++ b/packages/sexpr/src/constants.ts @@ -3,5 +3,5 @@ import type { SyntaxOpts } from "./api"; export const DEFAULT_SYNTAX: SyntaxOpts = { scopes: [["(", ")"]], whiteSpace: /(\s|,)/, - string: '"' + string: '"', }; diff --git a/packages/sexpr/src/parse.ts b/packages/sexpr/src/parse.ts index c54c887b00..35bf42b2a6 100644 --- a/packages/sexpr/src/parse.ts +++ b/packages/sexpr/src/parse.ts @@ -1,13 +1,7 @@ import { isString } from "@thi.ng/checks"; import { DEFAULT_SYNTAX } from "./constants"; import { tokenize } from "./tokenize"; -import type { - ASTNode, - Expression, - Root, - SyntaxOpts, - Token -} from "./api"; +import type { ASTNode, Expression, Root, SyntaxOpts, Token } from "./api"; export class ParseError extends Error { line: number; @@ -35,7 +29,7 @@ export const parse = ( ) => { const { scopes } = { ...DEFAULT_SYNTAX, - ...opts + ...opts, }; const scopeOpen = scopes.map((x) => x[0]); const scopeClose = scopes.map((x) => x[1]); diff --git a/packages/sexpr/src/tokenize.ts b/packages/sexpr/src/tokenize.ts index f0545e9e8d..e354bdd6d1 100644 --- a/packages/sexpr/src/tokenize.ts +++ b/packages/sexpr/src/tokenize.ts @@ -16,7 +16,7 @@ import type { SyntaxOpts, Token } from "./api"; export function* tokenize(src: Iterable, opts?: Partial) { const { scopes: rawScopes, whiteSpace, string } = { ...DEFAULT_SYNTAX, - ...opts + ...opts, }; const scopes = rawScopes .reduce((acc, x) => acc.concat(x), []) @@ -30,7 +30,7 @@ export function* tokenize(src: Iterable, opts?: Partial) { const $ = (value: string): Token => ({ value, line: tokenLine, - col: tokenCol + col: tokenCol, }); for (let c of src) { if (c === "\n") { diff --git a/packages/sexpr/test/index.ts b/packages/sexpr/test/index.ts index 69664c378f..32283a1e6f 100644 --- a/packages/sexpr/test/index.ts +++ b/packages/sexpr/test/index.ts @@ -8,7 +8,7 @@ import { runtime, Sym, SyntaxOpts, - tokenize + tokenize, } from "../src/index"; const ops = defmulti((x) => (x).value); @@ -16,7 +16,7 @@ const rt = runtime, any, any>({ expr: (x, env) => ops(x.children[0], x.children, env), sym: (x, env) => env[x.value], str: (x) => x.value, - num: (x) => x.value + num: (x) => x.value, }); const $eval = (src: string, env: any = {}) => rt(parse(src).children[0], env); @@ -32,13 +32,16 @@ ops.addAll({ "*": op((acc, x) => acc * x), "-": op((acc, x) => acc - x), "/": op((acc, x) => acc / x), - count: (_, [__, x]) => rt(x).length + count: (_, [__, x]) => rt(x).length, }); ops.add(DEFAULT, (x, [_, ...args], env) => { const f = env[(x).value]; assert(!!f, "missing impl"); - return f.apply(null, args.map((a) => rt(a, env))); + return f.apply( + null, + args.map((a) => rt(a, env)) + ); }); describe("sexpr", () => { @@ -57,19 +60,22 @@ describe("sexpr", () => { value: "(", children: [ { type: "sym", value: "len" }, - { type: "str", value: "234" } - ] - } - ] - } - ] + { type: "str", value: "234" }, + ], + }, + ], + }, + ], }); }); it("custom syntax", () => { const syntax: Partial = { - scopes: [["<", ">"], ["{", "}"]], - string: "'" + scopes: [ + ["<", ">"], + ["{", "}"], + ], + string: "'", }; assert.deepEqual(parse(``, syntax), { type: "root", @@ -80,7 +86,7 @@ describe("sexpr", () => { children: [ { type: "sym", - value: "nest" + value: "nest", }, { type: "expr", @@ -88,25 +94,25 @@ describe("sexpr", () => { children: [ { type: "sym", - value: "a" + value: "a", }, { type: "str", - value: "2" + value: "2", }, { type: "sym", - value: "b" + value: "b", }, { type: "num", - value: 3 - } - ] - } - ] - } - ] + value: 3, + }, + ], + }, + ], + }, + ], }); }); @@ -133,7 +139,7 @@ describe("sexpr", () => { it("fn in env", () => { assert.equal( $eval(`(join (+ 1 2) (+ 3 4))`, { - join: (...xs: any[]) => xs.join(",") + join: (...xs: any[]) => xs.join(","), }), "3,7" ); diff --git a/packages/shader-ast-glsl/src/target.ts b/packages/shader-ast-glsl/src/target.ts index e78866341a..15983c2310 100644 --- a/packages/shader-ast-glsl/src/target.ts +++ b/packages/shader-ast-glsl/src/target.ts @@ -10,7 +10,7 @@ import { Sym, sym, Term, - Type + Type, } from "@thi.ng/shader-ast"; import { GLSLOpts, GLSLTarget, GLSLVersion } from "./api"; import type { Fn } from "@thi.ng/api"; @@ -39,7 +39,7 @@ export const targetGLSL = (opts?: Partial) => { version: GLSLVersion.GLES_300, versionPragma: true, prelude: "", - ...opts + ...opts, }; const isVS = _opts.type === "vs"; @@ -60,13 +60,13 @@ export const targetGLSL = (opts?: Partial) => { type = ({ in: "attribute", out: "varying", - uni: "uniform" + uni: "uniform", })[opts.type]; } else { type = ({ in: "varying", out: null, - uni: "uniform" + uni: "uniform", })[opts.type]; !type && unsupported( @@ -96,9 +96,7 @@ export const targetGLSL = (opts?: Partial) => { _opts.version >= GLSLVersion.GLES_300 ? `${t.type}(${$list(t.init)})` : unsupported( - `array initializers not available in GLSL ${ - _opts.version - }` + `array initializers not available in GLSL ${_opts.version}` ), assign: (t) => emit(t.l) + " = " + emit(t.r), @@ -188,7 +186,7 @@ export const targetGLSL = (opts?: Partial) => { ternary: (t) => `(${emit(t.test)} ? ${emit(t.t)} : ${emit(t.f)})`, - while: (t) => `while (${emit(t.test)}) ${emit(t.scope)}` + while: (t) => `while (${emit(t.test)}) ${emit(t.scope)}`, }); Object.assign(emit, { @@ -198,7 +196,7 @@ export const targetGLSL = (opts?: Partial) => { gl_FrontFacing: sym("bool", "gl_FrontFacing", { const: true }), gl_PointCoord: sym("vec2", "gl_PointCoord", { const: true }), gl_PointSize: sym("float", "gl_PointSize"), - gl_Position: sym("vec4", "gl_Position") + gl_Position: sym("vec4", "gl_Position"), }); return emit; diff --git a/packages/shader-ast-glsl/test/index.ts b/packages/shader-ast-glsl/test/index.ts index d129f8e001..0376352720 100644 --- a/packages/shader-ast-glsl/test/index.ts +++ b/packages/shader-ast-glsl/test/index.ts @@ -15,7 +15,7 @@ import { Vec, vec2, vec3, - vec4 + vec4, } from "@thi.ng/shader-ast"; import * as assert from "assert"; import { GLSLVersion, targetGLSL } from "../src"; @@ -23,12 +23,12 @@ import { GLSLVersion, targetGLSL } from "../src"; const vs100 = targetGLSL({ type: "vs", version: GLSLVersion.GLES_100, - versionPragma: false + versionPragma: false, }); const fs100 = targetGLSL({ type: "fs", version: GLSLVersion.GLES_100, - versionPragma: false + versionPragma: false, }); const vs300 = targetGLSL({ type: "vs", versionPragma: false }); const fs300 = targetGLSL({ type: "fs", versionPragma: false }); @@ -116,22 +116,22 @@ describe("shader-ast (glsl)", () => { "attribute vec3 a;", "in vec3 a;", "varying vec3 a;", - "in vec3 a;" + "in vec3 a;", ], [ input("vec3", "a", { loc: 1 }), "attribute vec3 a;", "layout(location=1) in vec3 a;", "varying vec3 a;", - "layout(location=1) in vec3 a;" + "layout(location=1) in vec3 a;", ], [ input("vec3", "a", { loc: 1, num: 3 }), "attribute vec3 a[3];", "layout(location=1) in vec3 a[3];", "varying vec3 a[3];", - "layout(location=1) in vec3 a[3];" - ] + "layout(location=1) in vec3 a[3];", + ], ].forEach(([inp, v100, v300, f100, f300]: any) => { const spec = scope([inp], true); assert.equal(vs100(spec), v100, "vs100"); @@ -147,13 +147,13 @@ describe("shader-ast (glsl)", () => { [ uniform("vec3", "a", { loc: 1 }), "uniform vec3 a;", - "layout(location=1) uniform vec3 a;" + "layout(location=1) uniform vec3 a;", ], [ uniform("vec3", "a", { loc: 1, num: 3 }), "uniform vec3 a[3];", - "layout(location=1) uniform vec3 a[3];" - ] + "layout(location=1) uniform vec3 a[3];", + ], ].forEach(([uni, gl100, gl300]: any) => { const spec = scope([uni], true); assert.equal(vs100(spec), gl100, "vs100"); @@ -169,20 +169,20 @@ describe("shader-ast (glsl)", () => { output("vec3", "a"), "varying vec3 a;", "out vec3 a;", - "out vec3 a;" + "out vec3 a;", ], [ output("vec3", "a", { loc: 1 }), "varying vec3 a;", "layout(location=1) out vec3 a;", - "layout(location=1) out vec3 a;" + "layout(location=1) out vec3 a;", ], [ output("vec3", "a", { loc: 1, num: 3 }), "varying vec3 a[3];", "layout(location=1) out vec3 a[3];", - "layout(location=1) out vec3 a[3];" - ] + "layout(location=1) out vec3 a[3];", + ], ].forEach(([out, v100, v300, f300]: any) => { const spec = scope([out], true); assert.equal(vs100(spec), v100, "vs100"); diff --git a/packages/shader-ast-js/src/api.ts b/packages/shader-ast-js/src/api.ts index 037ff0ed43..6a5f1d0e68 100644 --- a/packages/shader-ast-js/src/api.ts +++ b/packages/shader-ast-js/src/api.ts @@ -1,11 +1,4 @@ -import type { - Fn, - Fn2, - Fn3, - Fn4, - Fn5, - Fn6 -} from "@thi.ng/api"; +import type { Fn, Fn2, Fn3, Fn4, Fn5, Fn6 } from "@thi.ng/api"; import type { Mat } from "@thi.ng/matrices"; import type { Term } from "@thi.ng/shader-ast"; import type { Vec } from "@thi.ng/vectors"; diff --git a/packages/shader-ast-js/src/env.ts b/packages/shader-ast-js/src/env.ts index f93cc6b252..e784ab6c25 100644 --- a/packages/shader-ast-js/src/env.ts +++ b/packages/shader-ast-js/src/env.ts @@ -4,7 +4,7 @@ import { mat33n, mat33v, mat44n, - mat44v + mat44v, } from "@thi.ng/matrices"; import { setSwizzle2, @@ -17,7 +17,7 @@ import { swizzle3, swizzle4, ZERO3, - ZERO4 + ZERO4, } from "@thi.ng/vectors"; import { FLOAT } from "./env/float"; import { INT } from "./env/int"; @@ -51,7 +51,7 @@ const SAMPLER_TODO: JSBuiltinsSampler = { textureOffsetn: () => 0, textureProj: () => ZERO4, textureProjn: () => 0, - textureSize: () => ZERO3 + textureSize: () => ZERO3, }; export const JS_DEFAULT_ENV: JSEnv = { @@ -94,5 +94,5 @@ export const JS_DEFAULT_ENV: JSEnv = { sampler3D: SAMPLER_TODO, samplerCube: SAMPLER_TODO, sampler2DShadow: SAMPLER_TODO, - samplerCubeShadow: SAMPLER_TODO + samplerCubeShadow: SAMPLER_TODO, }; diff --git a/packages/shader-ast-js/src/env/float.ts b/packages/shader-ast-js/src/env/float.ts index 6588e90587..08f02ac9a6 100644 --- a/packages/shader-ast-js/src/env/float.ts +++ b/packages/shader-ast-js/src/env/float.ts @@ -6,7 +6,7 @@ import { mix, rad, smoothStep, - step + step, } from "@thi.ng/math"; import type { JSBuiltinsFloat } from "../api"; @@ -43,5 +43,5 @@ export const FLOAT: JSBuiltinsFloat = { smoothstep: smoothStep, sqrt: Math.sqrt, step, - tan: Math.tan + tan: Math.tan, }; diff --git a/packages/shader-ast-js/src/env/int.ts b/packages/shader-ast-js/src/env/int.ts index 6d9a1663c5..f7ece76493 100644 --- a/packages/shader-ast-js/src/env/int.ts +++ b/packages/shader-ast-js/src/env/int.ts @@ -20,5 +20,5 @@ export const INT: JSBuiltinsInt = { rshift: (a, b) => a >> b, sign: Math.sign, sub: (a, b) => (a - b) | 0, - sub1: (a) => -a | 0 + sub1: (a) => -a | 0, }; diff --git a/packages/shader-ast-js/src/env/ivec2.ts b/packages/shader-ast-js/src/env/ivec2.ts index 19215039d7..298ee93142 100644 --- a/packages/shader-ast-js/src/env/ivec2.ts +++ b/packages/shader-ast-js/src/env/ivec2.ts @@ -14,7 +14,7 @@ import { mulNI2, rshiftI2, subI2, - subNI2 + subNI2, } from "@thi.ng/vectors"; import { VEC2 } from "./vec2"; import type { JSBuiltinsIntVec } from "../api"; @@ -41,5 +41,5 @@ export const IVEC2: JSBuiltinsIntVec = { bitnot1: (a) => bitNotI2([], a), bitor: (a, b) => bitOrI2([], a, b), rshift: (a, b) => rshiftI2([], a, b), - bitxor: (a, b) => bitXorI2([], a, b) + bitxor: (a, b) => bitXorI2([], a, b), }; diff --git a/packages/shader-ast-js/src/env/ivec3.ts b/packages/shader-ast-js/src/env/ivec3.ts index 34b7d6fc00..99319d848c 100644 --- a/packages/shader-ast-js/src/env/ivec3.ts +++ b/packages/shader-ast-js/src/env/ivec3.ts @@ -14,7 +14,7 @@ import { mulNI3, rshiftI3, subI3, - subNI3 + subNI3, } from "@thi.ng/vectors"; import { VEC3 } from "./vec3"; import type { JSBuiltinsIntVec } from "../api"; @@ -41,5 +41,5 @@ export const IVEC3: JSBuiltinsIntVec = { bitnot1: (a) => bitNotI3([], a), bitor: (a, b) => bitOrI3([], a, b), rshift: (a, b) => rshiftI3([], a, b), - bitxor: (a, b) => bitXorI3([], a, b) + bitxor: (a, b) => bitXorI3([], a, b), }; diff --git a/packages/shader-ast-js/src/env/ivec4.ts b/packages/shader-ast-js/src/env/ivec4.ts index abf43a942a..277c7e7085 100644 --- a/packages/shader-ast-js/src/env/ivec4.ts +++ b/packages/shader-ast-js/src/env/ivec4.ts @@ -14,7 +14,7 @@ import { mulNI4, rshiftI4, subI4, - subNI4 + subNI4, } from "@thi.ng/vectors"; import { VEC4 } from "./vec4"; import type { JSBuiltinsIntVec } from "../api"; @@ -41,5 +41,5 @@ export const IVEC4: JSBuiltinsIntVec = { bitnot1: (a) => bitNotI4([], a), bitor: (a, b) => bitOrI4([], a, b), rshift: (a, b) => rshiftI4([], a, b), - bitxor: (a, b) => bitXorI4([], a, b) + bitxor: (a, b) => bitXorI4([], a, b), }; diff --git a/packages/shader-ast-js/src/env/mat2.ts b/packages/shader-ast-js/src/env/mat2.ts index 0ef6f871df..b38015909a 100644 --- a/packages/shader-ast-js/src/env/mat2.ts +++ b/packages/shader-ast-js/src/env/mat2.ts @@ -9,7 +9,7 @@ import { mulV22, mulVM22, sub22, - subN22 + subN22, } from "@thi.ng/matrices"; import { neg } from "@thi.ng/vectors"; import type { JSBuiltinsMat } from "../api"; @@ -32,5 +32,5 @@ export const MAT2: JSBuiltinsMat = { sub: (a, b) => sub22([], a, b), sub1: (a) => neg([], a), subnv: (a, b) => sub22(null, [a, a, a, a], b), - subvn: (a, b) => subN22([], a, b) + subvn: (a, b) => subN22([], a, b), }; diff --git a/packages/shader-ast-js/src/env/mat3.ts b/packages/shader-ast-js/src/env/mat3.ts index 1131788f9b..9632cbb403 100644 --- a/packages/shader-ast-js/src/env/mat3.ts +++ b/packages/shader-ast-js/src/env/mat3.ts @@ -9,7 +9,7 @@ import { mulV33, mulVM33, sub33, - subN33 + subN33, } from "@thi.ng/matrices"; import { neg, vecOf } from "@thi.ng/vectors"; import type { JSBuiltinsMat } from "../api"; @@ -32,5 +32,5 @@ export const MAT3: JSBuiltinsMat = { sub: (a, b) => sub33([], a, b), sub1: (a) => neg([], a), subnv: (a, b) => sub33(null, vecOf(9, a), b), - subvn: (a, b) => subN33([], a, b) + subvn: (a, b) => subN33([], a, b), }; diff --git a/packages/shader-ast-js/src/env/mat4.ts b/packages/shader-ast-js/src/env/mat4.ts index bf5af27dc8..16437213b8 100644 --- a/packages/shader-ast-js/src/env/mat4.ts +++ b/packages/shader-ast-js/src/env/mat4.ts @@ -9,7 +9,7 @@ import { mulV44, mulVM44, sub44, - subN44 + subN44, } from "@thi.ng/matrices"; import { neg, vecOf } from "@thi.ng/vectors"; import type { JSBuiltinsMat } from "../api"; @@ -32,5 +32,5 @@ export const MAT4: JSBuiltinsMat = { sub: (a, b) => sub44([], a, b), sub1: (a) => neg([], a), subnv: (a, b) => sub44(null, vecOf(16, a), b), - subvn: (a, b) => subN44([], a, b) + subvn: (a, b) => subN44([], a, b), }; diff --git a/packages/shader-ast-js/src/env/uint.ts b/packages/shader-ast-js/src/env/uint.ts index 0569cba866..e4a35ceedf 100644 --- a/packages/shader-ast-js/src/env/uint.ts +++ b/packages/shader-ast-js/src/env/uint.ts @@ -20,5 +20,5 @@ export const UINT: JSBuiltinsInt = { rshift: (a, b) => a >>> b, sign: Math.sign, sub: (a, b) => (a - b) >>> 0, - sub1: (a) => -a >>> 0 + sub1: (a) => -a >>> 0, }; diff --git a/packages/shader-ast-js/src/env/uvec2.ts b/packages/shader-ast-js/src/env/uvec2.ts index 40eb2bac4f..aafb0c4fcb 100644 --- a/packages/shader-ast-js/src/env/uvec2.ts +++ b/packages/shader-ast-js/src/env/uvec2.ts @@ -14,7 +14,7 @@ import { mulU2, rshiftU2, subNU2, - subU2 + subU2, } from "@thi.ng/vectors"; import { VEC2 } from "./vec2"; import type { JSBuiltinsIntVec } from "../api"; @@ -41,5 +41,5 @@ export const UVEC2: JSBuiltinsIntVec = { bitnot1: (a) => bitNotU2([], a), bitor: (a, b) => bitOrU2([], a, b), rshift: (a, b) => rshiftU2([], a, b), - bitxor: (a, b) => bitXorU2([], a, b) + bitxor: (a, b) => bitXorU2([], a, b), }; diff --git a/packages/shader-ast-js/src/env/uvec3.ts b/packages/shader-ast-js/src/env/uvec3.ts index e44309b4bc..3cd091f44d 100644 --- a/packages/shader-ast-js/src/env/uvec3.ts +++ b/packages/shader-ast-js/src/env/uvec3.ts @@ -14,7 +14,7 @@ import { mulU3, rshiftU3, subNU3, - subU3 + subU3, } from "@thi.ng/vectors"; import { VEC3 } from "./vec3"; import type { JSBuiltinsIntVec } from "../api"; @@ -41,5 +41,5 @@ export const UVEC3: JSBuiltinsIntVec = { bitnot1: (a) => bitNotU3([], a), bitor: (a, b) => bitOrU3([], a, b), rshift: (a, b) => rshiftU3([], a, b), - bitxor: (a, b) => bitXorU3([], a, b) + bitxor: (a, b) => bitXorU3([], a, b), }; diff --git a/packages/shader-ast-js/src/env/uvec4.ts b/packages/shader-ast-js/src/env/uvec4.ts index 708d5238c9..1d9f47ed1f 100644 --- a/packages/shader-ast-js/src/env/uvec4.ts +++ b/packages/shader-ast-js/src/env/uvec4.ts @@ -14,7 +14,7 @@ import { mulU4, rshiftU4, subNU4, - subU4 + subU4, } from "@thi.ng/vectors"; import { VEC4 } from "./vec4"; import type { JSBuiltinsIntVec } from "../api"; @@ -41,5 +41,5 @@ export const UVEC4: JSBuiltinsIntVec = { bitnot1: (a) => bitNotU4([], a), bitor: (a, b) => bitOrU4([], a, b), rshift: (a, b) => rshiftU4([], a, b), - bitxor: (a, b) => bitXorU4([], a, b) + bitxor: (a, b) => bitXorU4([], a, b), }; diff --git a/packages/shader-ast-js/src/env/vec2.ts b/packages/shader-ast-js/src/env/vec2.ts index 37e6ed28ed..58c57a5ea3 100644 --- a/packages/shader-ast-js/src/env/vec2.ts +++ b/packages/shader-ast-js/src/env/vec2.ts @@ -45,7 +45,7 @@ import { sub2, subN2, tan2, - ZERO2 + ZERO2, } from "@thi.ng/vectors"; import type { JSBuiltinsVec } from "../api"; @@ -104,5 +104,5 @@ export const VEC2: JSBuiltinsVec = { sub1: (a) => neg([], a), subnv: (a, b) => sub2(null, [a, a], b), subvn: (a, b) => subN2([], a, b), - tan: (a) => tan2([], a) + tan: (a) => tan2([], a), }; diff --git a/packages/shader-ast-js/src/env/vec3.ts b/packages/shader-ast-js/src/env/vec3.ts index 9129da495f..928d8de988 100644 --- a/packages/shader-ast-js/src/env/vec3.ts +++ b/packages/shader-ast-js/src/env/vec3.ts @@ -46,7 +46,7 @@ import { sub3, subN3, tan3, - ZERO3 + ZERO3, } from "@thi.ng/vectors"; import type { JSBuiltinsVec3 } from "../api"; @@ -106,5 +106,5 @@ export const VEC3: JSBuiltinsVec3 = { sub1: (a) => neg([], a), subnv: (a, b) => sub3(null, [a, a, a], b), subvn: (a, b) => subN3([], a, b), - tan: (a) => tan3([], a) + tan: (a) => tan3([], a), }; diff --git a/packages/shader-ast-js/src/env/vec4.ts b/packages/shader-ast-js/src/env/vec4.ts index 1055dac860..c25b73faca 100644 --- a/packages/shader-ast-js/src/env/vec4.ts +++ b/packages/shader-ast-js/src/env/vec4.ts @@ -45,7 +45,7 @@ import { sub4, subN4, tan4, - ZERO4 + ZERO4, } from "@thi.ng/vectors"; import type { JSBuiltinsVec } from "../api"; @@ -104,5 +104,5 @@ export const VEC4: JSBuiltinsVec = { sub1: (a) => neg([], a), subnv: (a, b) => sub4(null, [a, a, a, a], b), subvn: (a, b) => subN4([], a, b), - tan: (a) => tan4([], a) + tan: (a) => tan4([], a), }; diff --git a/packages/shader-ast-js/src/target.ts b/packages/shader-ast-js/src/target.ts index 26b18a012f..44c8746c73 100644 --- a/packages/shader-ast-js/src/target.ts +++ b/packages/shader-ast-js/src/target.ts @@ -13,7 +13,7 @@ import { Scope, Swizzle, Sym, - Term + Term, } from "@thi.ng/shader-ast"; import { JS_DEFAULT_ENV } from "./env"; import type { Fn } from "@thi.ng/api"; @@ -26,7 +26,7 @@ const CMP_OPS: Partial> = { "==": "eq", "!=": "neq", ">=": "gte", - ">": "gt" + ">": "gt", }; const OP_IDS: Record = { ...(CMP_OPS), @@ -44,7 +44,7 @@ const OP_IDS: Record = { "^": "bitxor", "~": "bitnot", "<<": "lshift", - ">>": "rshift" + ">>": "rshift", }; const PRELUDE = [ @@ -67,7 +67,7 @@ const PRELUDE = [ "sampler3D", "samplerCube", "sampler2DShadow", - "samplerCubeShadow" + "samplerCubeShadow", ] .map((x) => `const ${x} = env.${x};`) .join("\n"); @@ -243,7 +243,7 @@ export const targetJS = () => { ternary: (t) => `(${emit(t.test)} ? ${emit(t.t)} : ${emit(t.f)})`, - while: (t) => `while (${emit(t.test)}) ${emit(t.scope)}` + while: (t) => `while (${emit(t.test)}) ${emit(t.scope)}`, }); Object.assign(emit, { @@ -253,7 +253,7 @@ export const targetJS = () => { "env", [PRELUDE, emit(tree), "return {", exports, "};"].join("\n") )(env); - } + }, }); return emit; diff --git a/packages/shader-ast-stdlib/src/color/linear-srgb.ts b/packages/shader-ast-stdlib/src/color/linear-srgb.ts index 995fd50139..d1ceb3cba2 100644 --- a/packages/shader-ast-stdlib/src/color/linear-srgb.ts +++ b/packages/shader-ast-stdlib/src/color/linear-srgb.ts @@ -6,7 +6,7 @@ import { Term, vec2, vec3, - vec4 + vec4, } from "@thi.ng/shader-ast"; const GAMMA = float(2.2); @@ -16,7 +16,7 @@ const $ = (t: Term, x: FloatTerm): Term => { float: x, vec2: vec2(x), vec3: vec3(x), - vec4: vec4(x, x, x, 1) + vec4: vec4(x, x, x, 1), }[t.type]; /** diff --git a/packages/shader-ast-stdlib/src/color/porter-duff.ts b/packages/shader-ast-stdlib/src/color/porter-duff.ts index 29c672f655..eeef2597f6 100644 --- a/packages/shader-ast-stdlib/src/color/porter-duff.ts +++ b/packages/shader-ast-stdlib/src/color/porter-duff.ts @@ -9,7 +9,7 @@ import { ret, sub, vec4, - Vec4Sym + Vec4Sym, } from "@thi.ng/shader-ast"; import { clamp01 } from "../math/clamp"; import type { Fn2 } from "@thi.ng/api"; @@ -53,7 +53,7 @@ export const porterDuff = ( srcZero && destZero ? vec4() : clamp01(srcZero ? dest : destZero ? src : add(src, dest)) - ) + ), ]; }); diff --git a/packages/shader-ast-stdlib/src/fog/exp.ts b/packages/shader-ast-stdlib/src/fog/exp.ts index 5d5e9bbaef..7bdc8410d4 100644 --- a/packages/shader-ast-stdlib/src/fog/exp.ts +++ b/packages/shader-ast-stdlib/src/fog/exp.ts @@ -1,12 +1,4 @@ -import { - defn, - exp, - FLOAT1, - mul, - neg, - ret, - sub -} from "@thi.ng/shader-ast"; +import { defn, exp, FLOAT1, mul, neg, ret, sub } from "@thi.ng/shader-ast"; import { clamp01 } from "../math/clamp"; /** diff --git a/packages/shader-ast-stdlib/src/fog/exp2.ts b/packages/shader-ast-stdlib/src/fog/exp2.ts index c7fe349bdf..e6e2531609 100644 --- a/packages/shader-ast-stdlib/src/fog/exp2.ts +++ b/packages/shader-ast-stdlib/src/fog/exp2.ts @@ -1,12 +1,4 @@ -import { - assign, - defn, - exp2, - FLOAT1, - mul, - ret, - sub -} from "@thi.ng/shader-ast"; +import { assign, defn, exp2, FLOAT1, mul, ret, sub } from "@thi.ng/shader-ast"; import { clamp01 } from "../math/clamp"; /** @@ -23,6 +15,8 @@ export const fogExp2 = defn( ["float", "float"], (dist, density) => [ assign(density, mul(density, dist)), - ret(sub(FLOAT1, clamp01(exp2(mul(mul(density, density), -Math.LOG2E))))) + ret( + sub(FLOAT1, clamp01(exp2(mul(mul(density, density), -Math.LOG2E)))) + ), ] ); diff --git a/packages/shader-ast-stdlib/src/light/lambert.ts b/packages/shader-ast-stdlib/src/light/lambert.ts index bb04f074c7..af1098db6f 100644 --- a/packages/shader-ast-stdlib/src/light/lambert.ts +++ b/packages/shader-ast-stdlib/src/light/lambert.ts @@ -5,7 +5,7 @@ import { madd, max, mul, - Vec3Term + Vec3Term, } from "@thi.ng/shader-ast"; import { fit1101 } from "../math/fit"; diff --git a/packages/shader-ast-stdlib/src/light/trilight.ts b/packages/shader-ast-stdlib/src/light/trilight.ts index 6cfba48658..0711a0f710 100644 --- a/packages/shader-ast-stdlib/src/light/trilight.ts +++ b/packages/shader-ast-stdlib/src/light/trilight.ts @@ -11,7 +11,7 @@ import { neg, ret, sub, - sym + sym, } from "@thi.ng/shader-ast"; /** @@ -38,7 +38,7 @@ export const trilight = defn( add(mul(c1, max(d, FLOAT0)), mul(c2, sub(FLOAT1, abs(d)))), mul(c3, max(dot(neg(n), l), FLOAT0)) ) - ) + ), ]; } ); diff --git a/packages/shader-ast-stdlib/src/math/additive.ts b/packages/shader-ast-stdlib/src/math/additive.ts index 994719efbd..4c88dc7022 100644 --- a/packages/shader-ast-stdlib/src/math/additive.ts +++ b/packages/shader-ast-stdlib/src/math/additive.ts @@ -14,7 +14,7 @@ import { Prim, ret, sym, - Term + Term, } from "@thi.ng/shader-ast"; import type { Fn } from "@thi.ng/api"; @@ -62,9 +62,9 @@ export const additive = ( ) ), assign(amp, mul(amp, decay)), - assign(pos, mul(pos, 2)) + assign(pos, mul(pos, 2)), ] ), - ret(n) + ret(n), ]; }); diff --git a/packages/shader-ast-stdlib/src/math/cartesian.ts b/packages/shader-ast-stdlib/src/math/cartesian.ts index e0f13f4f80..a824121f2c 100644 --- a/packages/shader-ast-stdlib/src/math/cartesian.ts +++ b/packages/shader-ast-stdlib/src/math/cartesian.ts @@ -9,7 +9,7 @@ import { sym, Vec2Sym, Vec2Term, - vec3 + vec3, } from "@thi.ng/shader-ast"; import { cossin } from "./sincos"; @@ -42,6 +42,6 @@ export const cartesian3 = defn("vec3", "cartesian3", ["vec3"], (v) => { mul(mul(r, $x(t)), $y(p)), mul(r, $y(t)) ) - ) + ), ]; }); diff --git a/packages/shader-ast-stdlib/src/math/clamp.ts b/packages/shader-ast-stdlib/src/math/clamp.ts index d88fbd1f39..4ed91c0f98 100644 --- a/packages/shader-ast-stdlib/src/math/clamp.ts +++ b/packages/shader-ast-stdlib/src/math/clamp.ts @@ -9,7 +9,7 @@ import { vec3, Vec3Term, vec4, - Vec4Term + Vec4Term, } from "@thi.ng/shader-ast"; const __clamp = (min: number, max: number) => ( diff --git a/packages/shader-ast-stdlib/src/math/cross2.ts b/packages/shader-ast-stdlib/src/math/cross2.ts index d45137ca59..5f7d30104c 100644 --- a/packages/shader-ast-stdlib/src/math/cross2.ts +++ b/packages/shader-ast-stdlib/src/math/cross2.ts @@ -1,11 +1,4 @@ -import { - $x, - $y, - FloatTerm, - mul, - sub, - Vec2Term -} from "@thi.ng/shader-ast"; +import { $x, $y, FloatTerm, mul, sub, Vec2Term } from "@thi.ng/shader-ast"; /** * Inline function. Computes 2D cross product of given vectors. diff --git a/packages/shader-ast-stdlib/src/math/dist-chebyshev.ts b/packages/shader-ast-stdlib/src/math/dist-chebyshev.ts index 8c5e506998..57e2070c4a 100644 --- a/packages/shader-ast-stdlib/src/math/dist-chebyshev.ts +++ b/packages/shader-ast-stdlib/src/math/dist-chebyshev.ts @@ -8,7 +8,7 @@ import { sub, Vec2Term, Vec3Term, - Vec4Term + Vec4Term, } from "@thi.ng/shader-ast"; export const distChebyshev2 = ( diff --git a/packages/shader-ast-stdlib/src/math/dist-manhattan.ts b/packages/shader-ast-stdlib/src/math/dist-manhattan.ts index 617d01c2dc..1a9b38ab74 100644 --- a/packages/shader-ast-stdlib/src/math/dist-manhattan.ts +++ b/packages/shader-ast-stdlib/src/math/dist-manhattan.ts @@ -8,7 +8,7 @@ import { sub, Vec2Term, Vec3Term, - Vec4Term + Vec4Term, } from "@thi.ng/shader-ast"; export const distManhattan2 = ( diff --git a/packages/shader-ast-stdlib/src/math/fit.ts b/packages/shader-ast-stdlib/src/math/fit.ts index 370d2ef29e..cfe185f44d 100644 --- a/packages/shader-ast-stdlib/src/math/fit.ts +++ b/packages/shader-ast-stdlib/src/math/fit.ts @@ -14,7 +14,7 @@ import { ret, sub, Term, - ternary + ternary, } from "@thi.ng/shader-ast"; /** diff --git a/packages/shader-ast-stdlib/src/math/magsq.ts b/packages/shader-ast-stdlib/src/math/magsq.ts index 05d6ce8fbe..b18363d9db 100644 --- a/packages/shader-ast-stdlib/src/math/magsq.ts +++ b/packages/shader-ast-stdlib/src/math/magsq.ts @@ -1,13 +1,13 @@ import { defn, dot, ret } from "@thi.ng/shader-ast"; export const magSq2 = defn("float", "magSq2", ["vec2"], (v) => [ - ret(dot(v, v)) + ret(dot(v, v)), ]); export const magSq3 = defn("float", "magSq3", ["vec3"], (v) => [ - ret(dot(v, v)) + ret(dot(v, v)), ]); export const magSq4 = defn("float", "magSq4", ["vec4"], (v) => [ - ret(dot(v, v)) + ret(dot(v, v)), ]); diff --git a/packages/shader-ast-stdlib/src/math/maxcomp.ts b/packages/shader-ast-stdlib/src/math/maxcomp.ts index 2a61da98c7..499d0d09df 100644 --- a/packages/shader-ast-stdlib/src/math/maxcomp.ts +++ b/packages/shader-ast-stdlib/src/math/maxcomp.ts @@ -6,7 +6,7 @@ import { max, Vec2Sym, Vec3Sym, - Vec4Sym + Vec4Sym, } from "@thi.ng/shader-ast"; /** diff --git a/packages/shader-ast-stdlib/src/math/mincomp.ts b/packages/shader-ast-stdlib/src/math/mincomp.ts index 4975f026d0..65409a9955 100644 --- a/packages/shader-ast-stdlib/src/math/mincomp.ts +++ b/packages/shader-ast-stdlib/src/math/mincomp.ts @@ -6,7 +6,7 @@ import { min, Vec2Sym, Vec3Sym, - Vec4Sym + Vec4Sym, } from "@thi.ng/shader-ast"; /** diff --git a/packages/shader-ast-stdlib/src/math/orthogonal.ts b/packages/shader-ast-stdlib/src/math/orthogonal.ts index b5a69f5786..35f28b36e7 100644 --- a/packages/shader-ast-stdlib/src/math/orthogonal.ts +++ b/packages/shader-ast-stdlib/src/math/orthogonal.ts @@ -10,7 +10,7 @@ import { ternary, vec2, Vec2Term, - vec3 + vec3, } from "@thi.ng/shader-ast"; /** @@ -41,5 +41,5 @@ export const orthogonal3 = defn("vec3", "orthogonal3", ["vec3"], (v) => [ vec3(neg($y(v)), $x(v), 0), vec3(0, neg($z(v)), $y(v)) ) - ) + ), ]); diff --git a/packages/shader-ast-stdlib/src/math/polar.ts b/packages/shader-ast-stdlib/src/math/polar.ts index b68480be5d..83dfbb4305 100644 --- a/packages/shader-ast-stdlib/src/math/polar.ts +++ b/packages/shader-ast-stdlib/src/math/polar.ts @@ -11,7 +11,7 @@ import { ret, sym, vec2, - vec3 + vec3, } from "@thi.ng/shader-ast"; /** @@ -21,7 +21,7 @@ import { * @param v - */ export const polar2 = defn("vec2", "polar2", ["vec2"], (v) => [ - ret(vec2(length(v), atan(div($y(v), $x(v))))) + ret(vec2(length(v), atan(div($y(v), $x(v))))), ]); /** @@ -35,6 +35,6 @@ export const polar3 = defn("vec3", "polar3", ["vec3"], (v) => { let r: FloatSym; return [ (r = sym(length(v))), - ret(vec3(r, asin(div($z(v), r)), atan(div($y(v), $x(v))))) + ret(vec3(r, asin(div($z(v), r)), atan(div($y(v), $x(v))))), ]; }); diff --git a/packages/shader-ast-stdlib/src/math/sincos.ts b/packages/shader-ast-stdlib/src/math/sincos.ts index 49ad76a9e5..ad8d184950 100644 --- a/packages/shader-ast-stdlib/src/math/sincos.ts +++ b/packages/shader-ast-stdlib/src/math/sincos.ts @@ -1,9 +1,4 @@ -import { - cos, - FloatTerm, - sin, - vec2 -} from "@thi.ng/shader-ast"; +import { cos, FloatTerm, sin, vec2 } from "@thi.ng/shader-ast"; /** * Inline function. Returns vec2(sin(x), cos(x)). diff --git a/packages/shader-ast-stdlib/src/matrix/convert.ts b/packages/shader-ast-stdlib/src/matrix/convert.ts index 02219c07dd..1aa69f0194 100644 --- a/packages/shader-ast-stdlib/src/matrix/convert.ts +++ b/packages/shader-ast-stdlib/src/matrix/convert.ts @@ -5,12 +5,12 @@ import { mat4, ret, vec3, - vec4 + vec4, } from "@thi.ng/shader-ast"; export const m22ToM33 = defn("mat3", "m22ToM33", ["mat2"], (m) => { return [ - ret(mat3(vec3(indexMat(m, 0), 0), vec3(indexMat(m, 1), 0), vec3())) + ret(mat3(vec3(indexMat(m, 0), 0), vec3(indexMat(m, 1), 0), vec3())), ]; }); @@ -23,6 +23,6 @@ export const m33ToM44 = defn("mat4", "m33ToM44", ["mat3"], (m) => { vec4(indexMat(m, 2), 0), vec4() ) - ) + ), ]; }); diff --git a/packages/shader-ast-stdlib/src/matrix/lookat.ts b/packages/shader-ast-stdlib/src/matrix/lookat.ts index 6d3736d171..275e9a2b0f 100644 --- a/packages/shader-ast-stdlib/src/matrix/lookat.ts +++ b/packages/shader-ast-stdlib/src/matrix/lookat.ts @@ -9,7 +9,7 @@ import { sub, sym, Vec3Sym, - vec4 + vec4, } from "@thi.ng/shader-ast"; /** @@ -39,7 +39,7 @@ export const lookat = defn( vec4(z, neg(dot(eye, z))), vec4(0, 0, 0, 1) ) - ) + ), ]; } ); diff --git a/packages/shader-ast-stdlib/src/matrix/mvp.ts b/packages/shader-ast-stdlib/src/matrix/mvp.ts index c0054a5d6b..761edafd3b 100644 --- a/packages/shader-ast-stdlib/src/matrix/mvp.ts +++ b/packages/shader-ast-stdlib/src/matrix/mvp.ts @@ -1,10 +1,4 @@ -import { - FLOAT1, - Mat4Term, - mul, - Vec3Term, - vec4 -} from "@thi.ng/shader-ast"; +import { FLOAT1, Mat4Term, mul, Vec3Term, vec4 } from "@thi.ng/shader-ast"; /** * Inline function. Multiplies `pos` with given model, view & projection diff --git a/packages/shader-ast-stdlib/src/matrix/normal.ts b/packages/shader-ast-stdlib/src/matrix/normal.ts index d706416fcc..f6a92e3868 100644 --- a/packages/shader-ast-stdlib/src/matrix/normal.ts +++ b/packages/shader-ast-stdlib/src/matrix/normal.ts @@ -4,7 +4,7 @@ import { mul, normalize, Vec3Term, - vec4 + vec4, } from "@thi.ng/shader-ast"; /** diff --git a/packages/shader-ast-stdlib/src/matrix/rotation.ts b/packages/shader-ast-stdlib/src/matrix/rotation.ts index 087ca491d7..3ea52ce7e8 100644 --- a/packages/shader-ast-stdlib/src/matrix/rotation.ts +++ b/packages/shader-ast-stdlib/src/matrix/rotation.ts @@ -17,7 +17,7 @@ import { sub, sym, Vec2Term, - vec3 + vec3, } from "@thi.ng/shader-ast"; import { perpendicularCCW } from "../math/orthogonal"; import { cossin } from "../math/sincos"; @@ -32,7 +32,7 @@ export const rotationX3 = defn("mat3", "rotationX3", ["float"], (theta) => { let cs: Vec2Term; return [ (cs = sym(cossin(theta))), - ret(mat3(1, 0, 0, 0, $x(cs), $y(cs), 0, neg($y(cs)), $x(cs))) + ret(mat3(1, 0, 0, 0, $x(cs), $y(cs), 0, neg($y(cs)), $x(cs))), ]; }); @@ -40,7 +40,7 @@ export const rotationY3 = defn("mat3", "rotationY3", ["float"], (theta) => { let cs: Vec2Term; return [ (cs = sym(cossin(theta))), - ret(mat3($x(cs), 0, neg($y(cs)), 0, 1, 0, $y(cs), 0, $x(cs))) + ret(mat3($x(cs), 0, neg($y(cs)), 0, 1, 0, $y(cs), 0, $x(cs))), ]; }); @@ -48,7 +48,7 @@ export const rotationZ3 = defn("mat3", "rotationZ3", ["float"], (theta) => { let cs: Vec2Term; return [ (cs = sym(cossin(theta))), - ret(mat3($x(cs), $y(cs), 0, neg($y(cs)), $x(cs), 0, 0, 0, 1)) + ret(mat3($x(cs), $y(cs), 0, neg($y(cs)), $x(cs), 0, 0, 0, 1)), ]; }); @@ -75,7 +75,7 @@ export const rotationX4 = defn("mat4", "rotationX4", ["float"], (theta) => { 0, 1 ) - ) + ), ]; }); @@ -102,7 +102,7 @@ export const rotationY4 = defn("mat4", "rotationY4", ["float"], (theta) => { 0, 1 ) - ) + ), ]; }); @@ -129,7 +129,7 @@ export const rotationZ4 = defn("mat4", "rotationZ4", ["float"], (theta) => { 0, 1 ) - ) + ), ]; }); @@ -160,7 +160,7 @@ export const rotationAroundAxis3 = defn( $$($y(axis), neg($z(axis)), 1, $x(axis), s, c, s), $$($z(axis), $y(axis), neg($x(axis)), 1, s, s, c) ) - ) + ), ]; } ); diff --git a/packages/shader-ast-stdlib/src/noise/curl3.ts b/packages/shader-ast-stdlib/src/noise/curl3.ts index dbf94087bc..f07a80991d 100644 --- a/packages/shader-ast-stdlib/src/noise/curl3.ts +++ b/packages/shader-ast-stdlib/src/noise/curl3.ts @@ -13,7 +13,7 @@ import { vec2, Vec2Sym, vec3, - Vec3Sym + Vec3Sym, } from "@thi.ng/shader-ast"; import { snoiseVec3 } from "./simplex3"; @@ -46,7 +46,7 @@ export const curlNoise3 = defn( ), mul(2, e) ) - ) + ), ]; } ); diff --git a/packages/shader-ast-stdlib/src/noise/hash.ts b/packages/shader-ast-stdlib/src/noise/hash.ts index da345115c7..9256303b5e 100644 --- a/packages/shader-ast-stdlib/src/noise/hash.ts +++ b/packages/shader-ast-stdlib/src/noise/hash.ts @@ -18,7 +18,7 @@ import { vec3, Vec3Sym, vec4, - Vec4Sym + Vec4Sym, } from "@thi.ng/shader-ast"; /** @@ -27,7 +27,7 @@ import { * @param p - */ export const hash2 = defn("vec2", "hash2", ["vec2"], (p) => [ - ret(fract(mul(sin(mul(p, mat2(127.1, 311.7, 269.5, 183.3))), 43758.5453))) + ret(fract(mul(sin(mul(p, mat2(127.1, 311.7, 269.5, 183.3))), 43758.5453))), ]); /** @@ -49,7 +49,7 @@ export const hash3 = defn("vec3", "hash3", ["vec2"], (p) => [ 43758.5453 ) ) - ) + ), ]); const H = vec3(0.1031, 0.103, 0.0973); @@ -68,7 +68,7 @@ export const hash11 = defn("float", "hash11", ["float"], (p) => { (x = sym(fract(mul(p, 0.1031)))), assign(x, mul(x, add(x, 19.19))), assign(x, mul(x, add(x, x))), - ret(fract(x)) + ret(fract(x)), ]; }); @@ -84,7 +84,7 @@ export const hash12 = defn("float", "hash12", ["vec2"], (p) => { return [ (x = sym(fract(mul($(p, "xyx"), 0.1031)))), assign(x, add(x, dot(x, add($(x, "yzx"), 19.19)))), - ret(fract(mul(add($x(x), $y(x)), $z(x)))) + ret(fract(mul(add($x(x), $y(x)), $z(x)))), ]; }); @@ -100,7 +100,7 @@ export const hash13 = defn("float", "hash13", ["vec3"], (p) => { return [ (x = sym(fract(mul($(p, "xyx"), 0.1031)))), assign(x, add(x, dot(x, add($(x, "yzx"), 19.19)))), - ret(fract(mul(add($x(x), $y(x)), $z(x)))) + ret(fract(mul(add($x(x), $y(x)), $z(x)))), ]; }); @@ -116,7 +116,7 @@ export const hash21 = defn("vec2", "hash21", ["float"], (p) => { return [ (x = sym(fract(mul(vec3(p), H)))), assign(x, add(x, dot(x, add($(x, "yzx"), 19.19)))), - ret(fract(mul(add($(x, "xx"), $(x, "yz")), $(x, "zy")))) + ret(fract(mul(add($(x, "xx"), $(x, "yz")), $(x, "zy")))), ]; }); @@ -132,7 +132,7 @@ export const hash22 = defn("vec2", "hash22", ["vec2"], (p) => { return [ (x = sym(fract(mul($(p, "xyx"), H)))), assign(x, add(x, dot(x, add($(x, "yzx"), 19.19)))), - ret(fract(mul(add($(x, "xx"), $(x, "yz")), $(x, "zy")))) + ret(fract(mul(add($(x, "xx"), $(x, "yz")), $(x, "zy")))), ]; }); @@ -148,7 +148,7 @@ export const hash23 = defn("vec2", "hash23", ["vec3"], (p) => { return [ (x = sym(fract(mul(p, H)))), assign(x, add(x, dot(x, add($(x, "yzx"), 19.19)))), - ret(fract(mul(add($(x, "xx"), $(x, "yz")), $(x, "zy")))) + ret(fract(mul(add($(x, "xx"), $(x, "yz")), $(x, "zy")))), ]; }); @@ -164,7 +164,7 @@ export const hash31 = defn("vec3", "hash31", ["float"], (p) => { return [ (x = sym(fract(mul(p, H)))), assign(x, add(x, dot(x, add($(x, "yzx"), 19.19)))), - ret(fract(mul(add($(x, "xxy"), $(x, "yzz")), $(x, "zyx")))) + ret(fract(mul(add($(x, "xxy"), $(x, "yzz")), $(x, "zyx")))), ]; }); @@ -180,7 +180,7 @@ export const hash32 = defn("vec3", "hash32", ["vec2"], (p) => { return [ (x = sym(fract(mul($(p, "xyx"), H)))), assign(x, add(x, dot(x, add($(x, "yzx"), 19.19)))), - ret(fract(mul(add($(x, "xxy"), $(x, "yzz")), $(x, "zyx")))) + ret(fract(mul(add($(x, "xxy"), $(x, "yzz")), $(x, "zyx")))), ]; }); @@ -196,7 +196,7 @@ export const hash33 = defn("vec3", "hash33", ["vec3"], (p) => { return [ (x = sym(fract(mul(p, H)))), assign(x, add(x, dot(x, add($(x, "yzx"), 19.19)))), - ret(fract(mul(add($(x, "xxy"), $(x, "yzz")), $(x, "zyx")))) + ret(fract(mul(add($(x, "xxy"), $(x, "yzz")), $(x, "zyx")))), ]; }); @@ -212,7 +212,7 @@ export const hash41 = defn("vec4", "hash41", ["float"], (p) => { return [ (x = sym(fract(mul(p, H4)))), assign(x, add(x, dot(x, add($(x, "wzxy"), 19.19)))), - ret(fract(mul(add($(x, "xxyz"), $(x, "yzzw")), $(x, "zywx")))) + ret(fract(mul(add($(x, "xxyz"), $(x, "yzzw")), $(x, "zywx")))), ]; }); @@ -228,7 +228,7 @@ export const hash42 = defn("vec4", "hash42", ["vec2"], (p) => { return [ (x = sym(fract(mul($(p, "xyxy"), H4)))), assign(x, add(x, dot(x, add($(x, "wzxy"), 19.19)))), - ret(fract(mul(add($(x, "xxyz"), $(x, "yzzw")), $(x, "zywx")))) + ret(fract(mul(add($(x, "xxyz"), $(x, "yzzw")), $(x, "zywx")))), ]; }); @@ -244,7 +244,7 @@ export const hash43 = defn("vec4", "hash43", ["vec3"], (p) => { return [ (x = sym(fract(mul($(p, "xyzx"), H4)))), assign(x, add(x, dot(x, add($(x, "wzxy"), 19.19)))), - ret(fract(mul(add($(x, "xxyz"), $(x, "yzzw")), $(x, "zywx")))) + ret(fract(mul(add($(x, "xxyz"), $(x, "yzzw")), $(x, "zywx")))), ]; }); @@ -260,6 +260,6 @@ export const hash44 = defn("vec4", "hash44", ["vec4"], (p) => { return [ (x = sym(fract(mul(p, H4)))), assign(x, add(x, dot(x, add($(x, "wzxy"), 19.19)))), - ret(fract(mul(add($(x, "xxyz"), $(x, "yzzw")), $(x, "zywx")))) + ret(fract(mul(add($(x, "xxyz"), $(x, "yzzw")), $(x, "zywx")))), ]; }); diff --git a/packages/shader-ast-stdlib/src/noise/permute.ts b/packages/shader-ast-stdlib/src/noise/permute.ts index e4a6ff61b3..aef68c9b9f 100644 --- a/packages/shader-ast-stdlib/src/noise/permute.ts +++ b/packages/shader-ast-stdlib/src/noise/permute.ts @@ -6,12 +6,12 @@ import { mod, mul, Prim, - ret + ret, } from "@thi.ng/shader-ast"; const __permute = (type: T, suffix = "") => defn(type, `permute${suffix}`, [type], (v) => [ - ret(mod(mul(v, add(mul(v, float(34)), FLOAT1)), float(289))) + ret(mod(mul(v, add(mul(v, float(34)), FLOAT1)), float(289))), ]); export const permute = __permute("float"); diff --git a/packages/shader-ast-stdlib/src/noise/simplex2.ts b/packages/shader-ast-stdlib/src/noise/simplex2.ts index 226e02c9fd..d73e2904bd 100644 --- a/packages/shader-ast-stdlib/src/noise/simplex2.ts +++ b/packages/shader-ast-stdlib/src/noise/simplex2.ts @@ -26,7 +26,7 @@ import { vec3, Vec3Sym, vec4, - Vec4Sym + Vec4Sym, } from "@thi.ng/shader-ast"; import { magSq2 } from "../math/magsq"; import { permute3 } from "./permute"; @@ -102,6 +102,6 @@ export const snoise2 = defn("float", "snoise2", ["vec2"], (v) => { $(g, "yz"), add(mul($(a0, "yz"), $(x12, "xz")), mul($(h, "yz"), $(x12, "yw"))) ), - ret(mul(130, dot(m, g))) + ret(mul(130, dot(m, g))), ]; }); diff --git a/packages/shader-ast-stdlib/src/noise/simplex3.ts b/packages/shader-ast-stdlib/src/noise/simplex3.ts index 5fd0f2a114..a210a09c76 100644 --- a/packages/shader-ast-stdlib/src/noise/simplex3.ts +++ b/packages/shader-ast-stdlib/src/noise/simplex3.ts @@ -28,7 +28,7 @@ import { vec3, Vec3Sym, vec4, - Vec4Sym + Vec4Sym, } from "@thi.ng/shader-ast"; import { permute4 } from "./permute"; @@ -149,7 +149,7 @@ export const snoise3 = defn("float", "snoise3", ["vec3"], (v) => { vec4(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3)) ) ) - ) + ), ]; }); @@ -165,6 +165,6 @@ export const snoiseVec3 = defn("vec3", "snoiseVec3", ["vec3"], (p) => { vec3(add($z(p), 74.2), sub($x(p), 124.5), add($y(p), 99.4)) ) ) - ) + ), ]; }); diff --git a/packages/shader-ast-stdlib/src/noise/voronoi2.ts b/packages/shader-ast-stdlib/src/noise/voronoi2.ts index 47c91d1b78..66898594f4 100644 --- a/packages/shader-ast-stdlib/src/noise/voronoi2.ts +++ b/packages/shader-ast-stdlib/src/noise/voronoi2.ts @@ -27,7 +27,7 @@ import { vec2, Vec2Sym, vec3, - Vec3Sym + Vec3Sym, } from "@thi.ng/shader-ast"; import { hash32 } from "./hash"; @@ -98,12 +98,12 @@ export const voronoise2 = defn( ) )), assign(va, madd(w, $z(o), va)), - assign(wt, add(wt, w)) + assign(wt, add(wt, w)), ] - ) + ), ] ), - ret(div(va, wt)) + ret(div(va, wt)), ]; } ); diff --git a/packages/shader-ast-stdlib/src/noise/worley2.ts b/packages/shader-ast-stdlib/src/noise/worley2.ts index 4b96ff629a..37f106b2c2 100644 --- a/packages/shader-ast-stdlib/src/noise/worley2.ts +++ b/packages/shader-ast-stdlib/src/noise/worley2.ts @@ -24,7 +24,7 @@ import { ternary, Vec2Sym, vec3, - Vec3Sym + Vec3Sym, } from "@thi.ng/shader-ast"; import { permute3 } from "./permute"; @@ -103,6 +103,6 @@ export const worley2 = (distFn: Func2<"vec3", "vec3", "vec3">) => ), assign($(d1, "yz"), min($(d1, "yz"), $(d2, "yz"))), assign($y(d1), min(min($y(d1), $z(d1)), $x(d2))), - ret(sqrt($xy(d1))) + ret(sqrt($xy(d1))), ]; }); diff --git a/packages/shader-ast-stdlib/src/raymarch/ao.ts b/packages/shader-ast-stdlib/src/raymarch/ao.ts index 59cfcdc127..71fea5dc5e 100644 --- a/packages/shader-ast-stdlib/src/raymarch/ao.ts +++ b/packages/shader-ast-stdlib/src/raymarch/ao.ts @@ -14,7 +14,7 @@ import { mul, ret, sub, - sym + sym, } from "@thi.ng/shader-ast"; import { clamp01 } from "../math/clamp"; import type { RaymarchScene } from "../api"; @@ -46,9 +46,9 @@ export const raymarchAO = (scene: RaymarchScene, numSamples = 5) => r, add(r, mul(w, sub(d0, $x(scene(add(p, mul(n, d0))))))) ), - assign(w, mul(w, FLOAT05)) + assign(w, mul(w, FLOAT05)), ] ), - ret(sub(FLOAT1, clamp01(r))) + ret(sub(FLOAT1, clamp01(r))), ]; }); diff --git a/packages/shader-ast-stdlib/src/raymarch/direction.ts b/packages/shader-ast-stdlib/src/raymarch/direction.ts index af31752a64..d0340df8de 100644 --- a/packages/shader-ast-stdlib/src/raymarch/direction.ts +++ b/packages/shader-ast-stdlib/src/raymarch/direction.ts @@ -11,7 +11,7 @@ import { sym, tan, Vec2Sym, - vec3 + vec3, } from "@thi.ng/shader-ast"; /** @@ -31,7 +31,7 @@ export const raymarchDir = defn( normalize( vec3(uv, neg(div($y(res), tan(div(radians(fov), FLOAT2))))) ) - ) + ), ]; } ); diff --git a/packages/shader-ast-stdlib/src/raymarch/normal.ts b/packages/shader-ast-stdlib/src/raymarch/normal.ts index f8f2ce02fa..c3052cc0e0 100644 --- a/packages/shader-ast-stdlib/src/raymarch/normal.ts +++ b/packages/shader-ast-stdlib/src/raymarch/normal.ts @@ -10,7 +10,7 @@ import { sym, vec2, Vec2Sym, - vec3 + vec3, } from "@thi.ng/shader-ast"; import type { RaymarchScene } from "../api"; @@ -30,6 +30,6 @@ export const raymarchNormal = (scene: RaymarchScene, name = "raymarchNormal") => sub($x(scene(add(p, $(dn, id)))), $x(scene(sub(p, $(dn, id))))); return [ (dn = sym(vec2(smooth, 0))), - ret(normalize(vec3(comp("xyy"), comp("yxy"), comp("yyx")))) + ret(normalize(vec3(comp("xyy"), comp("yxy"), comp("yyx")))), ]; }); diff --git a/packages/shader-ast-stdlib/src/raymarch/point-at.ts b/packages/shader-ast-stdlib/src/raymarch/point-at.ts index cf25468394..60c9f1c270 100644 --- a/packages/shader-ast-stdlib/src/raymarch/point-at.ts +++ b/packages/shader-ast-stdlib/src/raymarch/point-at.ts @@ -1,11 +1,4 @@ -import { - add, - FloatTerm, - mul, - normalize, - Term, - Vec -} from "@thi.ng/shader-ast"; +import { add, FloatTerm, mul, normalize, Term, Vec } from "@thi.ng/shader-ast"; /** * Inline function. Returns point on ray (`p`, `dir`) at distance `t`. diff --git a/packages/shader-ast-stdlib/src/raymarch/scene.ts b/packages/shader-ast-stdlib/src/raymarch/scene.ts index 374f59bc48..e485989a69 100644 --- a/packages/shader-ast-stdlib/src/raymarch/scene.ts +++ b/packages/shader-ast-stdlib/src/raymarch/scene.ts @@ -16,7 +16,7 @@ import { ret, sym, vec2, - Vec2Sym + Vec2Sym, } from "@thi.ng/shader-ast"; import { rayPointAt } from "./point-at"; import type { RaymarchOpts, RaymarchScene } from "../api"; @@ -49,7 +49,7 @@ export const raymarchScene = ( steps: 100, eps: 0.01, bias: 0.7, - ..._opts + ..._opts, }; return defn("vec2", opts.name, ["vec3", "vec3"], (pos, dir) => { let total: FloatSym; @@ -64,13 +64,13 @@ export const raymarchScene = ( () => [ assign(res, scene(rayPointAt(pos, dir, total))), ifThen(lt($x(res), float(opts.eps)), [ - ret(vec2(total, $y(res))) + ret(vec2(total, $y(res))), ]), assign(total, madd($x(res), float(opts.bias), total)), - ifThen(gt(total, float(opts.far)), [brk]) + ifThen(gt(total, float(opts.far)), [brk]), ] ), - ret(vec2(opts.far, 0)) + ret(vec2(opts.far, 0)), ]; }); }; diff --git a/packages/shader-ast-stdlib/src/screen/uv.ts b/packages/shader-ast-stdlib/src/screen/uv.ts index 1a7a1f8fba..b8931fff86 100644 --- a/packages/shader-ast-stdlib/src/screen/uv.ts +++ b/packages/shader-ast-stdlib/src/screen/uv.ts @@ -10,7 +10,7 @@ import { sym, Vec2Sym, Vec2Term, - Vec4Term + Vec4Term, } from "@thi.ng/shader-ast"; import { fit0111 } from "../math/fit"; @@ -40,7 +40,7 @@ export const aspectCorrectedUV = defn( return [ (uv = sym("vec2", fit0111(div(pos, res)))), assign($x(uv), mul($x(uv), div($x(res), $y(res)))), - ret(uv) + ret(uv), ]; } ); diff --git a/packages/shader-ast-stdlib/src/sdf/box.ts b/packages/shader-ast-stdlib/src/sdf/box.ts index 74e4d2e881..2b386a3db9 100644 --- a/packages/shader-ast-stdlib/src/sdf/box.ts +++ b/packages/shader-ast-stdlib/src/sdf/box.ts @@ -12,7 +12,7 @@ import { vec2, Vec2Sym, vec3, - Vec3Sym + Vec3Sym, } from "@thi.ng/shader-ast"; import { maxComp2, maxComp3 } from "../math/maxcomp"; @@ -22,18 +22,13 @@ import { maxComp2, maxComp3 } from "../math/maxcomp"; * @param p - vec2 * @param size - vec2 */ -export const sdfBox2 = defn( - "float", - "sdRect", - ["vec2", "vec2"], - (p, size) => { - let d: Vec2Sym; - return [ - (d = sym(sub(abs(p), size))), - ret(add(min(maxComp2(d), FLOAT0), length(max(d, vec2())))) - ]; - } -); +export const sdfBox2 = defn("float", "sdRect", ["vec2", "vec2"], (p, size) => { + let d: Vec2Sym; + return [ + (d = sym(sub(abs(p), size))), + ret(add(min(maxComp2(d), FLOAT0), length(max(d, vec2())))), + ]; +}); /** * Returns signed distance from `p` to centered AABB of `size`. @@ -41,15 +36,10 @@ export const sdfBox2 = defn( * @param p - vec3 * @param size - vec3 */ -export const sdfBox3 = defn( - "float", - "sdAABB", - ["vec3", "vec3"], - (p, size) => { - let d: Vec3Sym; - return [ - (d = sym(sub(abs(p), size))), - ret(add(min(maxComp3(d), FLOAT0), length(max(d, vec3())))) - ]; - } -); +export const sdfBox3 = defn("float", "sdAABB", ["vec3", "vec3"], (p, size) => { + let d: Vec3Sym; + return [ + (d = sym(sub(abs(p), size))), + ret(add(min(maxComp3(d), FLOAT0), length(max(d, vec3())))), + ]; +}); diff --git a/packages/shader-ast-stdlib/src/sdf/cylinder.ts b/packages/shader-ast-stdlib/src/sdf/cylinder.ts index 24c8b99a59..b277ea940f 100644 --- a/packages/shader-ast-stdlib/src/sdf/cylinder.ts +++ b/packages/shader-ast-stdlib/src/sdf/cylinder.ts @@ -12,7 +12,7 @@ import { sub, sym, vec2, - Vec2Sym + Vec2Sym, } from "@thi.ng/shader-ast"; import { maxComp2 } from "../math/maxcomp"; @@ -32,7 +32,7 @@ export const sdfCylinder = defn( let d: Vec2Sym; return [ (d = sym(sub(abs(vec2(length($(p, "xz")), $y(p))), vec2(h, r)))), - ret(add(min(maxComp2(d), FLOAT0), length(max(d, vec2())))) + ret(add(min(maxComp2(d), FLOAT0), length(max(d, vec2())))), ]; } ); diff --git a/packages/shader-ast-stdlib/src/sdf/line.ts b/packages/shader-ast-stdlib/src/sdf/line.ts index cc67749126..b50d01ab09 100644 --- a/packages/shader-ast-stdlib/src/sdf/line.ts +++ b/packages/shader-ast-stdlib/src/sdf/line.ts @@ -8,7 +8,7 @@ import { sub, Sym, sym, - Vec + Vec, } from "@thi.ng/shader-ast"; import { clamp01 } from "../math/clamp"; @@ -24,7 +24,7 @@ const line = (p: Sym, a: Sym, b: Sym) => { return [ (pa = sym(sub(p, a))), (ba = sym(sub(b, a))), - ret(length(sub(pa, mul(ba, clamp01(div(dot(pa, ba), dot(ba, ba))))))) + ret(length(sub(pa, mul(ba, clamp01(div(dot(pa, ba), dot(ba, ba))))))), ]; }; diff --git a/packages/shader-ast-stdlib/src/sdf/plane.ts b/packages/shader-ast-stdlib/src/sdf/plane.ts index b3717faf89..cfe67f4194 100644 --- a/packages/shader-ast-stdlib/src/sdf/plane.ts +++ b/packages/shader-ast-stdlib/src/sdf/plane.ts @@ -1,9 +1,4 @@ -import { - add, - defn, - dot, - ret -} from "@thi.ng/shader-ast"; +import { add, defn, dot, ret } from "@thi.ng/shader-ast"; /** * Returns signed distance from `p` to plane defined by `normal` and `w`. diff --git a/packages/shader-ast-stdlib/src/sdf/repeat.ts b/packages/shader-ast-stdlib/src/sdf/repeat.ts index b3cef4ad1c..5c3cbe7c04 100644 --- a/packages/shader-ast-stdlib/src/sdf/repeat.ts +++ b/packages/shader-ast-stdlib/src/sdf/repeat.ts @@ -1,11 +1,4 @@ -import { - defn, - FLOAT05, - mod, - mul, - ret, - sub -} from "@thi.ng/shader-ast"; +import { defn, FLOAT05, mod, mul, ret, sub } from "@thi.ng/shader-ast"; /** * Domain repetition by wrapping position `p` into period `c`. diff --git a/packages/shader-ast-stdlib/src/sdf/smooth-isec.ts b/packages/shader-ast-stdlib/src/sdf/smooth-isec.ts index 1e3a971ccb..49384cb482 100644 --- a/packages/shader-ast-stdlib/src/sdf/smooth-isec.ts +++ b/packages/shader-ast-stdlib/src/sdf/smooth-isec.ts @@ -8,7 +8,7 @@ import { mul, ret, sub, - sym + sym, } from "@thi.ng/shader-ast"; import { clamp01 } from "../math/clamp"; import { fit1101 } from "../math/fit"; @@ -25,7 +25,7 @@ export const sdfSmoothIntersect = defn( let h: FloatSym; return [ (h = sym(clamp01(fit1101(div(sub(b, a), k))))), - ret(add(mix(b, a, h), mul(mul(k, h), sub(FLOAT1, h)))) + ret(add(mix(b, a, h), mul(mul(k, h), sub(FLOAT1, h)))), ]; } ); diff --git a/packages/shader-ast-stdlib/src/sdf/smooth-sub.ts b/packages/shader-ast-stdlib/src/sdf/smooth-sub.ts index 3964c9f287..6112c8ff0d 100644 --- a/packages/shader-ast-stdlib/src/sdf/smooth-sub.ts +++ b/packages/shader-ast-stdlib/src/sdf/smooth-sub.ts @@ -9,7 +9,7 @@ import { neg, ret, sub, - sym + sym, } from "@thi.ng/shader-ast"; import { clamp01 } from "../math/clamp"; import { fit1101 } from "../math/fit"; @@ -26,7 +26,7 @@ export const sdfSmoothSubtract = defn( let h: FloatSym; return [ (h = sym(clamp01(fit1101(div(add(b, a), k))))), - ret(add(mix(b, neg(a), h), mul(mul(k, h), sub(FLOAT1, h)))) + ret(add(mix(b, neg(a), h), mul(mul(k, h), sub(FLOAT1, h)))), ]; } ); diff --git a/packages/shader-ast-stdlib/src/sdf/smooth-union.ts b/packages/shader-ast-stdlib/src/sdf/smooth-union.ts index 4a706efb0d..5845cf71a5 100644 --- a/packages/shader-ast-stdlib/src/sdf/smooth-union.ts +++ b/packages/shader-ast-stdlib/src/sdf/smooth-union.ts @@ -7,7 +7,7 @@ import { mul, ret, sub, - sym + sym, } from "@thi.ng/shader-ast"; import { clamp01 } from "../math/clamp"; import { fit1101 } from "../math/fit"; @@ -24,7 +24,7 @@ export const sdfSmoothUnion = defn( let h: FloatSym; return [ (h = sym(clamp01(fit1101(div(sub(b, a), k))))), - ret(sub(mix(b, a, h), mul(mul(k, h), sub(FLOAT1, h)))) + ret(sub(mix(b, a, h), mul(mul(k, h), sub(FLOAT1, h)))), ]; } ); diff --git a/packages/shader-ast-stdlib/src/sdf/sphere.ts b/packages/shader-ast-stdlib/src/sdf/sphere.ts index 6660869aac..648becaa88 100644 --- a/packages/shader-ast-stdlib/src/sdf/sphere.ts +++ b/packages/shader-ast-stdlib/src/sdf/sphere.ts @@ -1,9 +1,4 @@ -import { - defn, - length, - ret, - sub -} from "@thi.ng/shader-ast"; +import { defn, length, ret, sub } from "@thi.ng/shader-ast"; /** * Returns signed distance from `p` to centered circle of radius `r`. diff --git a/packages/shader-ast-stdlib/src/sdf/torus.ts b/packages/shader-ast-stdlib/src/sdf/torus.ts index fda97b0a06..7a9af1b4f3 100644 --- a/packages/shader-ast-stdlib/src/sdf/torus.ts +++ b/packages/shader-ast-stdlib/src/sdf/torus.ts @@ -1,12 +1,4 @@ -import { - $, - $y, - defn, - length, - ret, - sub, - vec2 -} from "@thi.ng/shader-ast"; +import { $, $y, defn, length, ret, sub, vec2 } from "@thi.ng/shader-ast"; /** * Returns signed distance from `p` to torus centered around Y-axis with @@ -21,6 +13,6 @@ export const sdfTorus = defn( "sdTorus", ["vec3", "float", "float"], (p, r1, r2) => [ - ret(sub(length(vec2(sub(length($(p, "xz")), r2), $y(p))), r1)) + ret(sub(length(vec2(sub(length($(p, "xz")), r2), $y(p))), r1)), ] ); diff --git a/packages/shader-ast-stdlib/src/sdf/tri.ts b/packages/shader-ast-stdlib/src/sdf/tri.ts index e6165dc3fc..56f56bdbcd 100644 --- a/packages/shader-ast-stdlib/src/sdf/tri.ts +++ b/packages/shader-ast-stdlib/src/sdf/tri.ts @@ -14,7 +14,7 @@ import { sub, sym, vec2, - Vec2Sym + Vec2Sym, } from "@thi.ng/shader-ast"; import { clamp01 } from "../math/clamp"; import { cross2 } from "../math/cross2"; @@ -59,7 +59,7 @@ export const sdfTriangle2 = defn( vec2(dot(pq2, pq2), mul(s, cross2(v2, e2))) ) )), - ret(mul(neg(sqrt($x(d))), sign($y(d)))) + ret(mul(neg(sqrt($x(d))), sign($y(d)))), ]; } ); diff --git a/packages/shader-ast-stdlib/src/tex/blur.ts b/packages/shader-ast-stdlib/src/tex/blur.ts index 08dd3e68a7..feba48dcd9 100644 --- a/packages/shader-ast-stdlib/src/tex/blur.ts +++ b/packages/shader-ast-stdlib/src/tex/blur.ts @@ -11,7 +11,7 @@ import { texture, vec2, Vec2Sym, - Vec4Sym + Vec4Sym, } from "@thi.ng/shader-ast"; /** @@ -63,7 +63,7 @@ export const blur5 = defn( (off = sym(div(mul(vec2(1 + 1 / 3), dir), res))), (col = sym(mul(texture(tex, uv), k1))), singlePass(col, tex, uv, off, k2), - ret(col) + ret(col), ]; } ); @@ -95,7 +95,7 @@ export const blur9 = defn( (col = sym(mul(texture(tex, uv), 0.227027027))), singlePass(col, tex, uv, off, k1), singlePass(col, tex, uv, off2, k2), - ret(col) + ret(col), ]; } ); @@ -131,7 +131,7 @@ export const blur13 = defn( singlePass(col, tex, uv, off, k1), singlePass(col, tex, uv, off2, k2), singlePass(col, tex, uv, off3, k3), - ret(col) + ret(col), ]; } ); diff --git a/packages/shader-ast-stdlib/src/tex/index-coord.ts b/packages/shader-ast-stdlib/src/tex/index-coord.ts index 44ea56db0a..18b808de6f 100644 --- a/packages/shader-ast-stdlib/src/tex/index-coord.ts +++ b/packages/shader-ast-stdlib/src/tex/index-coord.ts @@ -6,7 +6,7 @@ import { modi, UintTerm, uvec2, - UVec2Term + UVec2Term, } from "@thi.ng/shader-ast"; /** diff --git a/packages/shader-ast-stdlib/src/tex/index-uv.ts b/packages/shader-ast-stdlib/src/tex/index-uv.ts index c8e547b5ab..f165fa8d15 100644 --- a/packages/shader-ast-stdlib/src/tex/index-uv.ts +++ b/packages/shader-ast-stdlib/src/tex/index-uv.ts @@ -9,7 +9,7 @@ import { modi, mul, ret, - vec2 + vec2, } from "@thi.ng/shader-ast"; /** @@ -29,7 +29,7 @@ export const indexToUV = defn( div(float(modi(i, $x(size))), float($x(size))), div(float(div(i, $x(size))), float($y(size))) ) - ) + ), ] ); @@ -50,6 +50,6 @@ export const uvToIndex = defn( int(mul($x(uv), float(width))), int(mul($y(uv), float(mul(width, width)))) ) - ) + ), ] ); diff --git a/packages/shader-ast-stdlib/src/tex/read-index.ts b/packages/shader-ast-stdlib/src/tex/read-index.ts index 298f0067d9..5adc89dab1 100644 --- a/packages/shader-ast-stdlib/src/tex/read-index.ts +++ b/packages/shader-ast-stdlib/src/tex/read-index.ts @@ -5,7 +5,7 @@ import { IntTerm, IVec2Term, Sampler2DTerm, - texture + texture, } from "@thi.ng/shader-ast"; import { indexToUV } from "./index-uv"; diff --git a/packages/shader-ast/src/api/function.ts b/packages/shader-ast/src/api/function.ts index 0ab5fc8825..70cc146478 100644 --- a/packages/shader-ast/src/api/function.ts +++ b/packages/shader-ast/src/api/function.ts @@ -1,14 +1,4 @@ -import type { - Fn, - Fn0, - Fn2, - Fn3, - Fn4, - Fn5, - Fn6, - Fn7, - Fn8 -} from "@thi.ng/api"; +import type { Fn, Fn0, Fn2, Fn3, Fn4, Fn5, Fn6, Fn7, Fn8 } from "@thi.ng/api"; import type { FnCall, Sym, Term } from "./nodes"; import type { SymOpts } from "./syms"; import type { Type } from "./types"; diff --git a/packages/shader-ast/src/api/nodes.ts b/packages/shader-ast/src/api/nodes.ts index 479b558f84..b2bbfbffa3 100644 --- a/packages/shader-ast/src/api/nodes.ts +++ b/packages/shader-ast/src/api/nodes.ts @@ -7,18 +7,13 @@ import type { Func5, Func6, Func7, - Func8 + Func8, } from "./function"; import type { Operator } from "./ops"; import type { SymOpts } from "./syms"; import type { Tag } from "./tags"; import type { BoolTerm } from "./terms"; -import type { - Assignable, - Indexable, - Type, - Vec -} from "./types"; +import type { Assignable, Indexable, Type, Vec } from "./types"; export interface Term { tag: Tag; diff --git a/packages/shader-ast/src/api/target.ts b/packages/shader-ast/src/api/target.ts index 903a7571bf..09313e3e75 100644 --- a/packages/shader-ast/src/api/target.ts +++ b/packages/shader-ast/src/api/target.ts @@ -17,7 +17,7 @@ import type { Swizzle, Sym, Ternary, - WhileLoop + WhileLoop, } from "./nodes"; import type { Tag } from "./tags"; diff --git a/packages/shader-ast/src/api/types.ts b/packages/shader-ast/src/api/types.ts index 7329f8bf68..82fb4d0ad6 100644 --- a/packages/shader-ast/src/api/types.ts +++ b/packages/shader-ast/src/api/types.ts @@ -1,10 +1,5 @@ import type { Index, Swizzle, Sym } from "./nodes"; -import type { - BoolTerm, - FloatTerm, - IntTerm, - UintTerm -} from "./terms"; +import type { BoolTerm, FloatTerm, IntTerm, UintTerm } from "./terms"; export type Type = | "void" diff --git a/packages/shader-ast/src/ast/assign.ts b/packages/shader-ast/src/ast/assign.ts index b3ffb1ecea..ba6f0df633 100644 --- a/packages/shader-ast/src/ast/assign.ts +++ b/packages/shader-ast/src/ast/assign.ts @@ -14,6 +14,6 @@ export const assign = ( tag: "assign", type: l.type, l, - r + r, }; }; diff --git a/packages/shader-ast/src/ast/controlflow.ts b/packages/shader-ast/src/ast/controlflow.ts index d30b7b6eff..c6f79cc5d5 100644 --- a/packages/shader-ast/src/ast/controlflow.ts +++ b/packages/shader-ast/src/ast/controlflow.ts @@ -8,7 +8,7 @@ import type { Sym, Term, Ternary, - WhileLoop + WhileLoop, } from "../api/nodes"; import type { BoolTerm } from "../api/terms"; import type { Type } from "../api/types"; @@ -22,7 +22,7 @@ export const ifThen = ( type: "void", test, t: scope(truthy), - f: falsey ? scope(falsey) : undefined + f: falsey ? scope(falsey) : undefined, }); export const ternary =
( @@ -34,7 +34,7 @@ export const ternary = ( type: t.type, test, t, - f + f, }); // prettier-ignore @@ -56,7 +56,7 @@ export function forLoop(...xs: any[]): ForLoop { init: init ? decl(init) : undefined, test: test(init!), iter: iter ? iter(init!) : undefined, - scope: scope(body(init!)) + scope: scope(body(init!)), }; } @@ -64,13 +64,13 @@ export const whileLoop = (test: BoolTerm, body: Term[]): WhileLoop => ({ tag: "while", type: "void", test, - scope: scope(body) + scope: scope(body), }); const ctrl = (id: string): ControlFlow => ({ tag: "ctrl", type: "void", - id + id, }); export const brk = ctrl("break"); diff --git a/packages/shader-ast/src/ast/function.ts b/packages/shader-ast/src/ast/function.ts index 6f3c1c1720..f18e045049 100644 --- a/packages/shader-ast/src/ast/function.ts +++ b/packages/shader-ast/src/ast/function.ts @@ -1,12 +1,7 @@ import { assert } from "@thi.ng/api"; import { isString } from "@thi.ng/checks"; import { gensym } from "./idgen"; -import { - allChildren, - scope, - scopedChildren, - walk -} from "./scope"; +import { allChildren, scope, scopedChildren, walk } from "./scope"; import { sym } from "./sym"; import type { Arg, @@ -27,7 +22,7 @@ import type { FnBody6, FnBody7, FnBody8, - ScopeBody + ScopeBody, } from "../api/function"; import type { FnCall, @@ -44,7 +39,7 @@ import type { TaggedFn6, TaggedFn7, TaggedFn8, - Term + Term, } from "../api/nodes"; import type { SymOpts } from "../api/syms"; import type { Type } from "../api/types"; @@ -55,7 +50,7 @@ const defArg = (a: Arg): FuncArg => { tag: "arg", type, id: id || gensym(), - opts: { q: "in", ...opts } + opts: { q: "in", ...opts }, }; }; @@ -152,7 +147,7 @@ export function ret(val?: Term): FuncReturn { return { tag: "ret", type: val ? val.type : "void", - val + val, }; } @@ -201,5 +196,5 @@ export const builtinCall = ( tag: "call_i", type, id, - args + args, }); diff --git a/packages/shader-ast/src/ast/indexed.ts b/packages/shader-ast/src/ast/indexed.ts index b6189b9de3..affc7f035d 100644 --- a/packages/shader-ast/src/ast/indexed.ts +++ b/packages/shader-ast/src/ast/indexed.ts @@ -6,7 +6,7 @@ import type { Indexable, IndexTypeMap, MatIndexTypeMap, - NumericI + NumericI, } from "../api/types"; export const index = ( @@ -16,7 +16,7 @@ export const index = ( tag: "idx", type: val.type.substr(0, val.type.length - 2), id: isNumber(id) ? int(id) : id, - val + val, }); // prettier-ignore @@ -28,7 +28,7 @@ export function indexMat(m: Sym, a: number, b?: number): Index { tag: "idx", type: m.type.replace("mat", "vec"), id: int(a), - val: m + val: m, }; return b !== undefined ? { tag: "idx", type: "float", id: int(b), val: idx } diff --git a/packages/shader-ast/src/ast/item.ts b/packages/shader-ast/src/ast/item.ts index 18a3e3b9fd..f96646518a 100644 --- a/packages/shader-ast/src/ast/item.ts +++ b/packages/shader-ast/src/ast/item.ts @@ -1,22 +1,8 @@ -import { - bool, - float, - int, - uint, - vec2, - vec3, - vec4 -} from "./lit"; +import { bool, float, int, uint, vec2, vec3, vec4 } from "./lit"; import type { IObjectOf } from "@thi.ng/api"; import type { Term } from "../api/nodes"; import type { FloatTerm } from "../api/terms"; -import type { - Int, - IVec, - Prim, - Type, - UVec -} from "../api/types"; +import type { Int, IVec, Prim, Type, UVec } from "../api/types"; /** * Returns base type for given term. Used for array ops. @@ -69,5 +55,5 @@ export const matchingBoolType = ( uvec3: "bvec3", vec4: "bvec4", ivec4: "bvec4", - uvec4: "bvec4" + uvec4: "bvec4", })[t.type]; diff --git a/packages/shader-ast/src/ast/lit.ts b/packages/shader-ast/src/ast/lit.ts index 5b3e0bd949..8db38361b9 100644 --- a/packages/shader-ast/src/ast/lit.ts +++ b/packages/shader-ast/src/ast/lit.ts @@ -8,14 +8,14 @@ import type { UintTerm, Vec2Term, Vec3Term, - Vec4Term + Vec4Term, } from "../api/terms"; import type { NumericB, NumericF, NumericI, NumericU, - Type + Type, } from "../api/types"; export const lit = ( @@ -26,7 +26,7 @@ export const lit = ( tag: "lit", type, info, - val + val, }); export const bool = (x: NumericB) => lit("bool", isNumber(x) ? !!x : x); diff --git a/packages/shader-ast/src/ast/ops.ts b/packages/shader-ast/src/ast/ops.ts index d0fd9ef582..fab9c56ecb 100644 --- a/packages/shader-ast/src/ast/ops.ts +++ b/packages/shader-ast/src/ast/ops.ts @@ -3,12 +3,7 @@ import { isMat, isVec } from "./checks"; import { numberWithMatchingType } from "./item"; import { float } from "./lit"; import type { IObjectOf } from "@thi.ng/api"; -import type { - Op1, - Op2, - Sym, - Term -} from "../api/nodes"; +import type { Op1, Op2, Sym, Term } from "../api/nodes"; import type { ComparisonOperator, Operator } from "../api/ops"; import type { BoolTerm, @@ -20,7 +15,7 @@ import type { UintTerm, Vec2Term, Vec3Term, - Vec4Term + Vec4Term, } from "../api/terms"; import type { Comparable, @@ -30,7 +25,7 @@ import type { Prim, Type, UVec, - Vec + Vec, } from "../api/types"; export const op1 = ( @@ -42,7 +37,7 @@ export const op1 = ( type: val.type, op, val, - post + post, }); const OP_INFO: IObjectOf = { @@ -55,7 +50,7 @@ const OP_INFO: IObjectOf = { ivin: "vn", iniv: "nv", uvui: "vn", - uiuv: "nv" + uiuv: "nv", }; export const op2 = ( @@ -107,7 +102,7 @@ export const op2 = ( info: info || OP_INFO[l!.type.substr(0, 2) + r!.type.substr(0, 2)], op, l: l!, - r: r! + r: r!, }; }; diff --git a/packages/shader-ast/src/ast/scope.ts b/packages/shader-ast/src/ast/scope.ts index 6fd775a433..e31a267d6b 100644 --- a/packages/shader-ast/src/ast/scope.ts +++ b/packages/shader-ast/src/ast/scope.ts @@ -15,7 +15,7 @@ import type { Scope, Sym, Term, - Ternary + Ternary, } from "../api/nodes"; import type { Type } from "../api/types"; @@ -121,7 +121,7 @@ export const buildCallGraph = ( export const decl = (id: Sym): Decl => ({ tag: "decl", type: id.type, - id + id, }); /** @@ -145,7 +145,7 @@ export const scope = (body: (Term | null)[], global = false): Scope => ({ .filter((x) => x != null) .map((x) => (x!.tag === "sym" ? decl(>x) : x)) ), - global + global, }); /** diff --git a/packages/shader-ast/src/ast/swizzle.ts b/packages/shader-ast/src/ast/swizzle.ts index 84e4f7964a..b7ba423c95 100644 --- a/packages/shader-ast/src/ast/swizzle.ts +++ b/packages/shader-ast/src/ast/swizzle.ts @@ -12,7 +12,7 @@ import type { Swizzle4, Swizzle4_1, Swizzle4_2, - Swizzle4_3 + Swizzle4_3, } from "../api/swizzles"; import type { BVec2Term, @@ -26,15 +26,9 @@ import type { UVec4Term, Vec2Term, Vec3Term, - Vec4Term + Vec4Term, } from "../api/terms"; -import type { - BVec, - IVec, - Type, - UVec, - Vec -} from "../api/types"; +import type { BVec, IVec, Type, UVec, Vec } from "../api/types"; // prettier-ignore export function $(a: Vec2Term, id: T): Swizzle>; @@ -75,7 +69,7 @@ export function $(val: Term, id: string): Swizzle { ? rtype("bool", "bvec") : rtype("float", "vec"), val, - id + id, }; } diff --git a/packages/shader-ast/src/ast/sym.ts b/packages/shader-ast/src/ast/sym.ts index b4a074f2ce..68c800fe6b 100644 --- a/packages/shader-ast/src/ast/sym.ts +++ b/packages/shader-ast/src/ast/sym.ts @@ -55,7 +55,7 @@ export function sym(type: any, ...xs: any[]): Sym { type, id: id! || gensym(), opts: opts! || {}, - init: init! + init: init!, }; } @@ -98,9 +98,9 @@ export const arraySym = ( ? { tag: "array_init", type: atype, - init + init, } - : undefined + : undefined, }; }; diff --git a/packages/shader-ast/src/builtin/math.ts b/packages/shader-ast/src/builtin/math.ts index 379dddfae9..70777db2b4 100644 --- a/packages/shader-ast/src/builtin/math.ts +++ b/packages/shader-ast/src/builtin/math.ts @@ -17,7 +17,7 @@ import type { UVec4Term, Vec2Term, Vec3Term, - Vec4Term + Vec4Term, } from "../api/terms"; import type { Mat, Prim, Vec } from "../api/types"; diff --git a/packages/shader-ast/src/builtin/texture.ts b/packages/shader-ast/src/builtin/texture.ts index e1d66d0bef..dc70e4d4e0 100644 --- a/packages/shader-ast/src/builtin/texture.ts +++ b/packages/shader-ast/src/builtin/texture.ts @@ -19,14 +19,9 @@ import type { USamplerCubeTerm, Vec2Term, Vec3Term, - Vec4Term + Vec4Term, } from "../api/terms"; -import type { - IVec, - Prim, - Sampler, - Vec -} from "../api/types"; +import type { IVec, Prim, Sampler, Vec } from "../api/types"; const texRetType = (sampler: Term) => { const t = sampler.type[0]; diff --git a/packages/shader-ast/src/optimize.ts b/packages/shader-ast/src/optimize.ts index 2ab50e53f3..c7a62896cf 100644 --- a/packages/shader-ast/src/optimize.ts +++ b/packages/shader-ast/src/optimize.ts @@ -3,12 +3,7 @@ import { DEFAULT, defmulti } from "@thi.ng/defmulti"; import { isLitNumeric } from "./ast/checks"; import { lit } from "./ast/lit"; import { allChildren, walk } from "./ast/scope"; -import type { - Lit, - Op1, - Op2, - Term -} from "./api/nodes"; +import type { Lit, Op1, Op2, Term } from "./api/nodes"; import type { Operator } from "./api/ops"; const replaceNode = (node: any, next: any) => { @@ -53,7 +48,7 @@ foldNode.addAll({ replaceNode(node, lit(op.type, res)); } } - } + }, }); /** diff --git a/packages/shader-ast/test/index.ts b/packages/shader-ast/test/index.ts index 2ca6ec1a27..e4e70661ce 100644 --- a/packages/shader-ast/test/index.ts +++ b/packages/shader-ast/test/index.ts @@ -12,14 +12,14 @@ describe("shader-ast", () => { tag: "lit", type: "vec2", info: "n", - val: [{ tag: "lit", type: "float", info: undefined, val: 0 }] + val: [{ tag: "lit", type: "float", info: undefined, val: 0 }], }, r: { tag: "lit", type: "vec2", info: "n", - val: [{ tag: "lit", type: "float", info: undefined, val: 0 }] - } + val: [{ tag: "lit", type: "float", info: undefined, val: 0 }], + }, }); }); @@ -34,8 +34,8 @@ describe("shader-ast", () => { tag: "lit", type: "vec2", info: "n", - val: [{ tag: "lit", type: "float", info: undefined, val: 0 }] - } + val: [{ tag: "lit", type: "float", info: undefined, val: 0 }], + }, }); }); @@ -49,9 +49,9 @@ describe("shader-ast", () => { tag: "lit", type: "vec2", info: "n", - val: [{ tag: "lit", type: "float", info: undefined, val: 0 }] + val: [{ tag: "lit", type: "float", info: undefined, val: 0 }], }, - r: { tag: "lit", type: "float", info: undefined, val: 1 } + r: { tag: "lit", type: "float", info: undefined, val: 1 }, }); }); }); diff --git a/packages/simd/src/index.ts b/packages/simd/src/index.ts index adc718a5af..d5c0b8d4a1 100644 --- a/packages/simd/src/index.ts +++ b/packages/simd/src/index.ts @@ -38,8 +38,8 @@ export const init = (memory: WebAssembly.Memory): SIMD | undefined => { console.error( `abort called in ${file}: ${line}:${column}` ); - } - } + }, + }, } ).exports, f32: new Float32Array(buf), @@ -49,6 +49,6 @@ export const init = (memory: WebAssembly.Memory): SIMD | undefined => { u16: new Uint16Array(buf), i16: new Int16Array(buf), u8: new Uint8Array(buf), - i8: new Int8Array(buf) + i8: new Int8Array(buf), }; }; diff --git a/packages/soa/src/serialize.ts b/packages/soa/src/serialize.ts index ea6d474f13..c410315af3 100644 --- a/packages/soa/src/serialize.ts +++ b/packages/soa/src/serialize.ts @@ -5,7 +5,7 @@ import type { SerializedTuple, Serializer, SerializerPair, - SerializerSpecs + SerializerSpecs, } from "./api"; /** @@ -13,7 +13,7 @@ import type { */ export const ident = >{ decode: (x) => x, - encode: (x) => x + encode: (x) => x, }; /** @@ -21,7 +21,7 @@ export const ident = >{ */ export const scalar = >{ decode: (v) => v[0], - encode: (x) => [x] + encode: (x) => [x], }; const toUTF8 = utf8Decode(); @@ -51,7 +51,7 @@ export const utf8z = (maxLen: number) => const bytes = [...utf8Encode(v), 0]; assert(bytes.length <= maxLen, `string too large: "${v}"`); return bytes; - } + }, }; export const serializer = ( @@ -70,5 +70,5 @@ export const serializer = ( res[id] = specs[id].encode(tuple[id]); } return res; - } + }, }); diff --git a/packages/soa/src/soa.ts b/packages/soa/src/soa.ts index 25d7b15e4c..ba4e7729a3 100644 --- a/packages/soa/src/soa.ts +++ b/packages/soa/src/soa.ts @@ -4,7 +4,7 @@ import { SIZEOF, TypedArray, typedArray, - TYPEDARRAY_CTORS + TYPEDARRAY_CTORS, } from "@thi.ng/api"; import { prepareSpec } from "./utils"; import type { ReadonlyVec, Vec } from "@thi.ng/vectors"; diff --git a/packages/soa/test/aos.ts b/packages/soa/test/aos.ts index bf7b6e93c2..6fa354e059 100644 --- a/packages/soa/test/aos.ts +++ b/packages/soa/test/aos.ts @@ -10,7 +10,7 @@ describe("aos", () => { { a: { type: Type.U16, size: 1 }, // 2, 0 b: { type: Type.F32, size: 2 }, // 8, 4 - c: { type: Type.U8, size: 1 } // 1, 12 + c: { type: Type.U8, size: 1 }, // 1, 12 }, undefined, 0x100 @@ -28,15 +28,18 @@ describe("aos", () => { assert.equal(struct.buffers.a.buffer.byteLength, 0x100 + 0x20); struct.setValues({ a: [[0x1001], [0x2002]], - b: [[1, 2], [3, 4]], - c: [[0xff], [0xfe]] + b: [ + [1, 2], + [3, 4], + ], + c: [[0xff], [0xfe]], }); assert( equiv( [...struct.values()], [ { a: [0x1001], b: [1, 2], c: [0xff] }, - { a: [0x2002], b: [3, 4], c: [0xfe] } + { a: [0x2002], b: [3, 4], c: [0xfe] }, ] ) ); diff --git a/packages/soa/test/serialize.ts b/packages/soa/test/serialize.ts index f85db51c46..0792a2851b 100644 --- a/packages/soa/test/serialize.ts +++ b/packages/soa/test/serialize.ts @@ -1,11 +1,6 @@ import { Type } from "@thi.ng/api"; import * as assert from "assert"; -import { - scalar, - serializer, - soa, - utf8z -} from "../src"; +import { scalar, serializer, soa, utf8z } from "../src"; describe("serialize", () => { it("scalar", () => { @@ -15,7 +10,7 @@ describe("serialize", () => { struct.setIndex(1, ser.encode({ id: 0xaa55aa55 })); assert.deepEqual([...struct.values()].map(ser.decode), [ { id: 0xdecafbad }, - { id: 0xaa55aa55 } + { id: 0xaa55aa55 }, ]); }); diff --git a/packages/soa/test/soa.ts b/packages/soa/test/soa.ts index 4c82890ddc..2c20ab8170 100644 --- a/packages/soa/test/soa.ts +++ b/packages/soa/test/soa.ts @@ -8,7 +8,7 @@ describe("soa", () => { const struct = soa(2, { a: { type: Type.U16 }, b: { size: 2, default: [1, 2] }, - c: { type: Type.I8, size: 2, default: [-3, 4] } + c: { type: Type.I8, size: 2, default: [-3, 4] }, }); assert.equal(struct.length, 2); assert.deepEqual(struct.keys(), ["a", "b", "c"]); @@ -23,7 +23,7 @@ describe("soa", () => { [...struct.values()], [ { a: [0], b: [1, 2], c: [-3, 4] }, - { a: [0], b: [1, 2], c: [-3, 4] } + { a: [0], b: [1, 2], c: [-3, 4] }, ] ) ); @@ -33,12 +33,12 @@ describe("soa", () => { const src = soa(2, { a: { type: Type.U16 }, b: { size: 2, default: [1, 2] }, - c: { type: Type.I8, size: 2, default: [-3, 4] } + c: { type: Type.I8, size: 2, default: [-3, 4] }, }); const dest = soa(4, { a: { type: Type.U16, default: [0xaa55] }, b: { size: 2 }, - c: { type: Type.I8, size: 2 } + c: { type: Type.I8, size: 2 }, }); src.copyTo(dest, undefined, 2); assert( @@ -48,7 +48,7 @@ describe("soa", () => { { a: [0xaa55], b: [0, 0], c: [0, 0] }, { a: [0xaa55], b: [0, 0], c: [0, 0] }, { a: [0], b: [1, 2], c: [-3, 4] }, - { a: [0], b: [1, 2], c: [-3, 4] } + { a: [0], b: [1, 2], c: [-3, 4] }, ] ) ); diff --git a/packages/sparse/src/csc.ts b/packages/sparse/src/csc.ts index 3452e602d7..f2a5682f1f 100644 --- a/packages/sparse/src/csc.ts +++ b/packages/sparse/src/csc.ts @@ -1,11 +1,6 @@ import { assert } from "@thi.ng/api"; import { ASparseMatrix } from "./amatrix"; -import { - at, - compress, - diag, - setAt -} from "./compressed"; +import { at, compress, diag, setAt } from "./compressed"; import type { NzEntry } from "./api"; export class CSC extends ASparseMatrix { diff --git a/packages/sparse/src/csr.ts b/packages/sparse/src/csr.ts index c66f5db4a2..7e8d8a59f2 100644 --- a/packages/sparse/src/csr.ts +++ b/packages/sparse/src/csr.ts @@ -1,12 +1,6 @@ import { assert } from "@thi.ng/api"; import { ASparseMatrix } from "./amatrix"; -import { - at, - compress, - diag, - remove, - setAt -} from "./compressed"; +import { at, compress, diag, remove, setAt } from "./compressed"; import type { NzEntry } from "./api"; export class CSR extends ASparseMatrix { diff --git a/packages/strings/src/float.ts b/packages/strings/src/float.ts index cc773fdee2..d82cfb3b97 100644 --- a/packages/strings/src/float.ts +++ b/packages/strings/src/float.ts @@ -12,8 +12,10 @@ import type { Stringer } from "./api"; * @param len - number of fractional digits * @kind function */ -export const float: (prec: number) => Stringer = memoizeJ( - (prec) => (x: number) => nanOrInf(x) || x.toFixed(prec) +export const float: ( + prec: number +) => Stringer = memoizeJ((prec) => (x: number) => + nanOrInf(x) || x.toFixed(prec) ); /** @@ -38,8 +40,8 @@ export const floatFixedWidth: ( (x === 0 ? "0" : ax < pr || ax >= pl - ? exp(x, width) - : x.toFixed(prec - (x < pln ? 1 : 0))) + ? exp(x, width) + : x.toFixed(prec - (x < pln ? 1 : 0))) ); }; }); @@ -59,7 +61,7 @@ const nanOrInf = (x: number) => isNaN(x) ? "NaN" : x === Infinity - ? "+∞" - : x === -Infinity - ? "-∞" - : undefined; + ? "+∞" + : x === -Infinity + ? "-∞" + : undefined; diff --git a/packages/strings/src/slugify.ts b/packages/strings/src/slugify.ts index 266a17e32a..2b68307426 100644 --- a/packages/strings/src/slugify.ts +++ b/packages/strings/src/slugify.ts @@ -46,4 +46,4 @@ export const slugifyGH = (str: string) => { .replace(re, (c) => dest[src.indexOf(c)]) .replace(/[^\w\-]+/g, "") .replace(/(^-+)|(-+$)/g, ""); -}; \ No newline at end of file +}; diff --git a/packages/strings/src/splice.ts b/packages/strings/src/splice.ts index 9bd6adc4ab..1b7e650a54 100644 --- a/packages/strings/src/splice.ts +++ b/packages/strings/src/splice.ts @@ -32,6 +32,6 @@ export const splice = ( return from <= 0 ? insert + src.substr(to) : from >= src.length - ? src + insert - : src.substr(0, from) + insert + src.substr(to); + ? src + insert + : src.substr(0, from) + insert + src.substr(to); }; diff --git a/packages/strings/src/units.ts b/packages/strings/src/units.ts index 38097e7450..667b93b0c6 100644 --- a/packages/strings/src/units.ts +++ b/packages/strings/src/units.ts @@ -19,7 +19,7 @@ export const units: ( <[number, number, string]>[ x[0], x[2] != null ? x[2] : prec, - x[1] + x[1], ] ) .sort((a, b) => a[0] - b[0]); @@ -45,7 +45,7 @@ export const bits = units( [1, " bits", 0], [KB, " Kb"], [KB ** 2, " Mb"], - [KB ** 3, " Gb"] + [KB ** 3, " Gb"], ], " bits", 2 @@ -58,7 +58,7 @@ export const bytes = units( [KB ** 2, " MB"], [KB ** 3, " GB"], [KB ** 4, " TB"], - [KB ** 5, " PB"] + [KB ** 5, " PB"], ], " bytes", 2 @@ -73,7 +73,7 @@ export const seconds = units( [1, " secs"], [60, " mins"], [60 * 60, " hours"], - [24 * 60 * 60, " days"] + [24 * 60 * 60, " days"], ], " secs", 3 @@ -87,7 +87,7 @@ export const meters = units( [1e-3, " mm"], [1e-2, " cm"], [1, " m"], - [1e3, " km"] + [1e3, " km"], ], " m", 2 @@ -103,7 +103,7 @@ export const grams = units( [1e3, " kg"], [1e6, " t"], [1e9, " kt"], - [1e12, " Mt"] + [1e12, " Mt"], ], " g", 2 diff --git a/packages/strings/src/uuid.ts b/packages/strings/src/uuid.ts index ae4e5760b4..d6ca1c1376 100644 --- a/packages/strings/src/uuid.ts +++ b/packages/strings/src/uuid.ts @@ -28,5 +28,5 @@ export const uuid = (id: ArrayLike, i = 0) => U8(id[i++]), U8(id[i++]), U8(id[i++]), - U8(id[i++]) + U8(id[i++]), ].join(""); diff --git a/packages/strings/src/wrap.ts b/packages/strings/src/wrap.ts index f8362795db..c915deaa6d 100644 --- a/packages/strings/src/wrap.ts +++ b/packages/strings/src/wrap.ts @@ -5,6 +5,6 @@ import type { Stringer } from "./api"; * Returns a {@link Stringer} which wrap inputs with given `pad` string on * both sides. */ -export const wrap: (pad: string) => Stringer = memoizeJ( - (pad: string) => (x: any) => pad + x + pad -); +export const wrap: ( + pad: string +) => Stringer = memoizeJ((pad: string) => (x: any) => pad + x + pad); diff --git a/packages/strings/test/splice.ts b/packages/strings/test/splice.ts index c5e7968415..afb9878bc7 100644 --- a/packages/strings/test/splice.ts +++ b/packages/strings/test/splice.ts @@ -26,4 +26,4 @@ describe("splice", () => { assert.equal(splice(SRC, "xx", -3, 4), "xx"); assert.equal(splice(SRC, "xx", -3, 2), "xxc"); }); -}); \ No newline at end of file +}); diff --git a/packages/text-canvas/src/ansi.ts b/packages/text-canvas/src/ansi.ts index 40f9c629f5..d1d87704c5 100644 --- a/packages/text-canvas/src/ansi.ts +++ b/packages/text-canvas/src/ansi.ts @@ -24,5 +24,5 @@ export const FMT_ANSI16: StringFormat = { }), end: ANSI_RESET, prefix: ANSI_RESET, - suffix: "\n" + suffix: "\n", }; diff --git a/packages/text-canvas/src/canvas.ts b/packages/text-canvas/src/canvas.ts index 0b322a3b84..282d99c3cc 100644 --- a/packages/text-canvas/src/canvas.ts +++ b/packages/text-canvas/src/canvas.ts @@ -1,11 +1,6 @@ import { peek } from "@thi.ng/arrays"; import { clamp } from "@thi.ng/math"; -import { - ClipRect, - NONE, - StrokeStyle, - STYLE_ASCII -} from "./api"; +import { ClipRect, NONE, StrokeStyle, STYLE_ASCII } from "./api"; import { charCode, intersectRect } from "./utils"; import type { Fn0, NumOrString } from "@thi.ng/api"; @@ -30,7 +25,7 @@ export class Canvas { this.format = this.defaultFormat = format; this.styles = [style]; this.clipRects = [ - { x1: 0, y1: 0, x2: width, y2: height, w: width, h: height } + { x1: 0, y1: 0, x2: width, y2: height, w: width, h: height }, ]; } } diff --git a/packages/text-canvas/src/html.ts b/packages/text-canvas/src/html.ts index e0908a3871..e13ae932f1 100644 --- a/packages/text-canvas/src/html.ts +++ b/packages/text-canvas/src/html.ts @@ -14,7 +14,7 @@ export const formatHtml = ({ bg, bold, dim, - underline + underline, }: HtmlFormatOpts): StringFormat => ({ start: memoize1((x: number) => { let y = x & 0xf; @@ -30,7 +30,7 @@ export const formatHtml = ({ }), end: "", prefix: "", - suffix: "
" + suffix: "
", }); /** @@ -54,7 +54,7 @@ export const FMT_HTML_INLINE_CSS = formatHtml({ "#55f", "#f5f", "#5ff", - "#fff" + "#fff", ], attrib: "style", delim: ";", @@ -62,7 +62,7 @@ export const FMT_HTML_INLINE_CSS = formatHtml({ bg: "background:", bold: "font-weight:bold", dim: "opacity:0.5", - underline: "text-decoration:underline" + underline: "text-decoration:underline", }); /** @@ -86,7 +86,7 @@ export const FMT_HTML_TACHYONS = formatHtml({ "blue", "hot-pink", "lightest-blue", - "white" + "white", ], attrib: "class", delim: " ", @@ -94,5 +94,5 @@ export const FMT_HTML_TACHYONS = formatHtml({ bg: "bg-", bold: "b", dim: "o-50", - underline: "underline" + underline: "underline", }); diff --git a/packages/text-canvas/src/image.ts b/packages/text-canvas/src/image.ts index e8c5df70c3..bea6f0d463 100644 --- a/packages/text-canvas/src/image.ts +++ b/packages/text-canvas/src/image.ts @@ -31,7 +31,14 @@ export const resize = (canvas: Canvas, newWidth: number, newHeight: number) => { canvas.width = newWidth; canvas.height = newHeight; canvas.clipRects = [ - { x1: 0, y1: 0, x2: newWidth, y2: newHeight, w: newWidth, h: newHeight } + { + x1: 0, + y1: 0, + x2: newWidth, + y2: newHeight, + w: newWidth, + h: newHeight, + }, ]; }; @@ -106,7 +113,7 @@ export const image = ( gamma: 1, invert: false, bits: 8, - ...opts + ...opts, }; const max = (1 << bits) - 1; const mask = invert ? max : 0; diff --git a/packages/text-canvas/src/style.ts b/packages/text-canvas/src/style.ts index bfbe262ab2..9ba8256cfc 100644 --- a/packages/text-canvas/src/style.ts +++ b/packages/text-canvas/src/style.ts @@ -12,7 +12,7 @@ export const horizontalOnly = ({ hl, dot }: StrokeStyle): StrokeStyle => ({ tjt: hl, tjb: hl, jct: hl, - dot + dot, }); export const verticalOnly = ({ vl, dot }: StrokeStyle): StrokeStyle => ({ @@ -27,5 +27,5 @@ export const verticalOnly = ({ vl, dot }: StrokeStyle): StrokeStyle => ({ tjt: vl, tjb: vl, jct: vl, - dot + dot, }); diff --git a/packages/text-canvas/src/table.ts b/packages/text-canvas/src/table.ts index 8e25ba95d4..cb2cc537ae 100644 --- a/packages/text-canvas/src/table.ts +++ b/packages/text-canvas/src/table.ts @@ -8,7 +8,7 @@ import { canvas, endClip, endStyle, - setAt + setAt, } from "./canvas"; import { hline, vline } from "./hvline"; import { fillRect, strokeRect } from "./rect"; @@ -73,7 +73,7 @@ export const initTable = (opts: TableOpts, cells: (string | RawCell)[][]) => { bH, bV, bFH, - bFV + bFV, }; }; @@ -96,7 +96,7 @@ export const drawTable = ( bH, bV, bFH, - bFV + bFV, } = opts; const fmt = opts.format !== undefined ? opts.format : canvas.format; const fmtHd = opts.formatHead !== undefined ? opts.formatHead : fmt; diff --git a/packages/text-canvas/src/text.ts b/packages/text-canvas/src/text.ts index f79af00cab..a06de5af13 100644 --- a/packages/text-canvas/src/text.ts +++ b/packages/text-canvas/src/text.ts @@ -1,12 +1,6 @@ import { peek } from "@thi.ng/arrays"; import { wordWrap } from "@thi.ng/transducers"; -import { - beginClip, - beginStyle, - Canvas, - endClip, - endStyle -} from "./canvas"; +import { beginClip, beginStyle, Canvas, endClip, endStyle } from "./canvas"; import { fillRect, strokeRect } from "./rect"; import type { TextBoxOpts } from "./api"; @@ -103,7 +97,7 @@ export const textBox = ( const { format, style, padding } = { format: canvas.format, padding: [0, 0], - ...opts + ...opts, }; const currFmt = canvas.format; canvas.format = format; diff --git a/packages/transducers-binary/src/base64.ts b/packages/transducers-binary/src/base64.ts index 44b37667a2..9f38e42f15 100644 --- a/packages/transducers-binary/src/base64.ts +++ b/packages/transducers-binary/src/base64.ts @@ -6,7 +6,7 @@ import { iterator1, reduced, Reducer, - Transducer + Transducer, } from "@thi.ng/transducers"; const B64_CHARS = @@ -141,7 +141,7 @@ export function base64Encode(...args: any[]): any { } } return acc; - } + }, ]; }; } diff --git a/packages/transducers-binary/src/bits.ts b/packages/transducers-binary/src/bits.ts index aaa026794f..96b9ab2886 100644 --- a/packages/transducers-binary/src/bits.ts +++ b/packages/transducers-binary/src/bits.ts @@ -4,7 +4,7 @@ import { isReduced, iterator, Reducer, - Transducer + Transducer, } from "@thi.ng/transducers"; /** diff --git a/packages/transducers-binary/src/bytes.ts b/packages/transducers-binary/src/bytes.ts index 8a766091fa..29448a2b5b 100644 --- a/packages/transducers-binary/src/bytes.ts +++ b/packages/transducers-binary/src/bytes.ts @@ -1,17 +1,11 @@ -import { - bytes16, - bytes24, - bytes32, - bytesF32, - bytesF64 -} from "@thi.ng/binary"; +import { bytes16, bytes24, bytes32, bytesF32, bytesF64 } from "@thi.ng/binary"; import { unsupported } from "@thi.ng/errors"; import { iterator, mapcat, reduce, Reducer, - Transducer + Transducer, } from "@thi.ng/transducers"; import { BinStructItem, Type } from "./api"; import { utf8Encode } from "./utf8"; @@ -19,69 +13,69 @@ import { utf8Encode } from "./utf8"; export const i8 = (x: number): BinStructItem => [Type.I8, x]; export const i8array = (x: ArrayLike): BinStructItem => [ Type.I8_ARRAY, - x + x, ]; export const u8 = (x: number): BinStructItem => [Type.U8, x]; export const u8array = (x: ArrayLike): BinStructItem => [ Type.U8_ARRAY, - x + x, ]; export const i16 = (x: number, le = false): BinStructItem => [Type.I16, x, le]; export const i16array = (x: ArrayLike, le = false): BinStructItem => [ Type.I16_ARRAY, x, - le + le, ]; export const u16 = (x: number, le = false): BinStructItem => [Type.U16, x, le]; export const u16array = (x: ArrayLike, le = false): BinStructItem => [ Type.U16_ARRAY, x, - le + le, ]; export const i24 = (x: number, le = false): BinStructItem => [Type.I24, x, le]; export const i24array = (x: ArrayLike, le = false): BinStructItem => [ Type.I24_ARRAY, x, - le + le, ]; export const u24 = (x: number, le = false): BinStructItem => [Type.U24, x, le]; export const u24array = (x: ArrayLike, le = false): BinStructItem => [ Type.U24_ARRAY, x, - le + le, ]; export const i32 = (x: number, le = false): BinStructItem => [Type.I32, x, le]; export const i32array = (x: ArrayLike, le = false): BinStructItem => [ Type.I32_ARRAY, x, - le + le, ]; export const u32 = (x: number, le = false): BinStructItem => [Type.U32, x, le]; export const u32array = (x: ArrayLike, le = false): BinStructItem => [ Type.U32_ARRAY, x, - le + le, ]; export const f32 = (x: number, le = false): BinStructItem => [Type.F32, x, le]; export const f32array = (x: ArrayLike, le = false): BinStructItem => [ Type.F32_ARRAY, x, - le + le, ]; export const f64 = (x: number, le = false): BinStructItem => [Type.F64, x, le]; export const f64array = (x: ArrayLike, le = false): BinStructItem => [ Type.F64_ARRAY, x, - le + le, ]; export const str = (x: string): BinStructItem => [Type.STR, x]; @@ -293,6 +287,6 @@ export function bytes(cap = 1024, src?: Iterable) { default: } return acc; - } + }, ]; } diff --git a/packages/transducers-binary/src/hex-dump.ts b/packages/transducers-binary/src/hex-dump.ts index 97ab91597a..63d207c6fb 100644 --- a/packages/transducers-binary/src/hex-dump.ts +++ b/packages/transducers-binary/src/hex-dump.ts @@ -8,7 +8,7 @@ import { mapIndexed, padLast, partition, - Transducer + Transducer, } from "@thi.ng/transducers"; import type { HexDumpOpts } from "./api"; diff --git a/packages/transducers-binary/src/partition-bits.ts b/packages/transducers-binary/src/partition-bits.ts index 763d689d4a..3ba86d18c7 100644 --- a/packages/transducers-binary/src/partition-bits.ts +++ b/packages/transducers-binary/src/partition-bits.ts @@ -3,7 +3,7 @@ import { isReduced, iterator, Reducer, - Transducer + Transducer, } from "@thi.ng/transducers"; /** @@ -34,8 +34,8 @@ export function partitionBits(...args: any[]): any { return destSize < srcSize ? small(rfn, destSize, srcSize) : destSize > srcSize - ? large(rfn, destSize, srcSize) - : rfn; + ? large(rfn, destSize, srcSize) + : rfn; }) ); } @@ -65,7 +65,7 @@ const small = ( r = wordSize - b; y = r > 0 ? (x >>> maxb) & m2 : 0; return acc; - } + }, ]; }; @@ -96,6 +96,6 @@ const large = ( y = (x & ((1 << r) - 1)) << (n - r); } return acc; - } + }, ]; }; diff --git a/packages/transducers-binary/src/utf8.ts b/packages/transducers-binary/src/utf8.ts index 023ef12ec4..913e55f85e 100644 --- a/packages/transducers-binary/src/utf8.ts +++ b/packages/transducers-binary/src/utf8.ts @@ -4,7 +4,7 @@ import { iterator, iterator1, Reducer, - Transducer + Transducer, } from "@thi.ng/transducers"; /** @@ -150,14 +150,14 @@ export function utf8Encode(src?: string): any { buf = [ 0xe0 | (u >> 12), 0x80 | ((u >> 6) & 0x3f), - 0x80 | (u & 0x3f) + 0x80 | (u & 0x3f), ]; } else if (u < 0x200000) { buf = [ 0xf0 | (u >> 18), 0x80 | ((u >> 12) & 0x3f), 0x80 | ((u >> 6) & 0x3f), - 0x80 | (u & 0x3f) + 0x80 | (u & 0x3f), ]; } else if (u < 0x4000000) { buf = [ @@ -165,7 +165,7 @@ export function utf8Encode(src?: string): any { 0x80 | ((u >> 18) & 0x3f), 0x80 | ((u >> 12) & 0x3f), 0x80 | ((u >> 6) & 0x3f), - 0x80 | (u & 0x3f) + 0x80 | (u & 0x3f), ]; } else { buf = [ @@ -174,7 +174,7 @@ export function utf8Encode(src?: string): any { 0x80 | ((u >> 18) & 0x3f), 0x80 | ((u >> 12) & 0x3f), 0x80 | ((u >> 6) & 0x3f), - 0x80 | (u & 0x3f) + 0x80 | (u & 0x3f), ]; } for (let i = 0, n = buf.length; i < n; i++) { diff --git a/packages/transducers-binary/test/partition-bits.ts b/packages/transducers-binary/test/partition-bits.ts index d0b7d7e4f6..ec5ba30259 100644 --- a/packages/transducers-binary/test/partition-bits.ts +++ b/packages/transducers-binary/test/partition-bits.ts @@ -1,16 +1,28 @@ import * as assert from "assert"; import { radix } from "@thi.ng/strings"; -import { comp, map, padLast, partition, iterator, range, run } from "@thi.ng/transducers"; +import { + comp, + map, + padLast, + partition, + iterator, + range, + run, +} from "@thi.ng/transducers"; import { bits, partitionBits } from "../src"; const src = [0xff, 0xa5, 0xfe, 0xf7]; -const xform = (n: number) => - comp(partitionBits(n), map(radix(2, n))); +const xform = (n: number) => comp(partitionBits(n), map(radix(2, n))); const xformB = (n: number) => - comp(bits(8), padLast(n, 0), partition(n, true), map((x) => x.join(""))); + comp( + bits(8), + padLast(n, 0), + partition(n, true), + map((x) => x.join("")) + ); const check = (n: number) => assert.deepEqual( @@ -20,7 +32,9 @@ const check = (n: number) => ); describe("partitionBits", () => { - - it("all sizes", () => run(map((n: number) => check(n)), range(1, 33))); - -}); \ No newline at end of file + it("all sizes", () => + run( + map((n: number) => check(n)), + range(1, 33) + )); +}); diff --git a/packages/transducers-fsm/src/index.ts b/packages/transducers-fsm/src/index.ts index 4537fc56dd..e34ef1b17d 100644 --- a/packages/transducers-fsm/src/index.ts +++ b/packages/transducers-fsm/src/index.ts @@ -3,7 +3,7 @@ import { ensureReduced, isReduced, Reducer, - Transducer + Transducer, } from "@thi.ng/transducers"; import type { Fn0, IObjectOf } from "@thi.ng/api"; diff --git a/packages/transducers-fsm/test/index.ts b/packages/transducers-fsm/test/index.ts index eef860a970..dea873be63 100644 --- a/packages/transducers-fsm/test/index.ts +++ b/packages/transducers-fsm/test/index.ts @@ -29,10 +29,10 @@ describe("transducers-fsm", () => { state.state = "done"; } }, - done: () => {} + done: () => {}, }, terminate: "done", - init: () => ({ state: "skip", count: 0 }) + init: () => ({ state: "skip", count: 0 }), }); assert.deepEqual( [...tx.iterator(testFSM, tx.range(100))], @@ -45,9 +45,12 @@ describe("transducers-fsm", () => { assert.deepEqual( [ ...tx.iterator( - tx.comp(testFSM, tx.map((x: number) => x * 10)), + tx.comp( + testFSM, + tx.map((x: number) => x * 10) + ), tx.range(100) - ) + ), ], [50, 60, 70, 80, 90, 150, 160, 170, 180, 190] ); diff --git a/packages/transducers-hdom/src/index.ts b/packages/transducers-hdom/src/index.ts index 1960784da5..b02fdfd135 100644 --- a/packages/transducers-hdom/src/index.ts +++ b/packages/transducers-hdom/src/index.ts @@ -2,7 +2,7 @@ import { DEFAULT_IMPL, HDOMImplementation, HDOMOpts, - resolveRoot + resolveRoot, } from "@thi.ng/hdom"; import { derefContext } from "@thi.ng/hiccup"; import { scan, Transducer } from "@thi.ng/transducers"; @@ -65,6 +65,6 @@ export const updateDOM = ( return curr; } return prev; - } + }, ]); }; diff --git a/packages/transducers-patch/test/index.ts b/packages/transducers-patch/test/index.ts index e509fd9085..306ceac578 100644 --- a/packages/transducers-patch/test/index.ts +++ b/packages/transducers-patch/test/index.ts @@ -12,7 +12,7 @@ describe("transducers-patch", () => { [Patch.INSERT, 0, [10, 11]], [Patch.UPDATE, 1, (x, n) => x * n, 10], [Patch.DELETE, 3], - [Patch.SET, 2, 200] + [Patch.SET, 2, 200], ] ), [ @@ -20,7 +20,7 @@ describe("transducers-patch", () => { [10, 11, 1, 2, 3], [10, 110, 1, 2, 3], [10, 110, 1, 3], - [10, 110, 200, 3] + [10, 110, 200, 3], ] ); }); @@ -33,14 +33,14 @@ describe("transducers-patch", () => { [ [Patch.SET, ["a", "b"], 1], [Patch.UPDATE, "a.b", (x, n) => x + n, 10], - [Patch.DELETE, "x"] + [Patch.DELETE, "x"], ] ), [ { x: 23 }, { x: 23, a: { b: 1 } }, { x: 23, a: { b: 11 } }, - { a: { b: 11 } } + { a: { b: 11 } }, ] ); }); diff --git a/packages/transducers-stats/src/bollinger.ts b/packages/transducers-stats/src/bollinger.ts index 86cec37c1b..0d388b6879 100644 --- a/packages/transducers-stats/src/bollinger.ts +++ b/packages/transducers-stats/src/bollinger.ts @@ -5,7 +5,7 @@ import { map, multiplex, partition, - Transducer + Transducer, } from "@thi.ng/transducers"; import { mse } from "./mse"; import { sma } from "./sma"; diff --git a/packages/transducers-stats/src/donchian.ts b/packages/transducers-stats/src/donchian.ts index 10a61f3805..6a945a890f 100644 --- a/packages/transducers-stats/src/donchian.ts +++ b/packages/transducers-stats/src/donchian.ts @@ -3,7 +3,7 @@ import { iterator, map, partition, - Transducer + Transducer, } from "@thi.ng/transducers"; import { bounds } from "./bounds"; diff --git a/packages/transducers-stats/src/ema.ts b/packages/transducers-stats/src/ema.ts index 6a40af3f67..5b591707c7 100644 --- a/packages/transducers-stats/src/ema.ts +++ b/packages/transducers-stats/src/ema.ts @@ -1,10 +1,5 @@ import { illegalArgs } from "@thi.ng/errors"; -import { - compR, - iterator1, - Reducer, - Transducer -} from "@thi.ng/transducers"; +import { compR, iterator1, Reducer, Transducer } from "@thi.ng/transducers"; /** * {@link https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average} diff --git a/packages/transducers-stats/src/hma.ts b/packages/transducers-stats/src/hma.ts index b8185ac1b2..eb580e87e1 100644 --- a/packages/transducers-stats/src/hma.ts +++ b/packages/transducers-stats/src/hma.ts @@ -4,7 +4,7 @@ import { iterator1, map, multiplex, - Transducer + Transducer, } from "@thi.ng/transducers"; import { wma } from "./wma"; diff --git a/packages/transducers-stats/src/macd.ts b/packages/transducers-stats/src/macd.ts index e8168f34c1..6b11900d0d 100644 --- a/packages/transducers-stats/src/macd.ts +++ b/packages/transducers-stats/src/macd.ts @@ -1,10 +1,4 @@ -import { - $iter, - compR, - Reducer, - step, - Transducer -} from "@thi.ng/transducers"; +import { $iter, compR, Reducer, step, Transducer } from "@thi.ng/transducers"; import { ema } from "./ema"; export interface MACD { @@ -75,7 +69,7 @@ export function macd(...args: any[]): any { signal, div: macd - signal, fast, - slow + slow, }); }); }) diff --git a/packages/transducers-stats/src/momentum.ts b/packages/transducers-stats/src/momentum.ts index e9c0ff070a..ca43914331 100644 --- a/packages/transducers-stats/src/momentum.ts +++ b/packages/transducers-stats/src/momentum.ts @@ -1,11 +1,6 @@ import { DCons } from "@thi.ng/dcons"; import { illegalArgs } from "@thi.ng/errors"; -import { - compR, - iterator1, - Reducer, - Transducer -} from "@thi.ng/transducers"; +import { compR, iterator1, Reducer, Transducer } from "@thi.ng/transducers"; /** * {@link en.wikipedia.org/wiki/Momentum_(technical_analysis)} diff --git a/packages/transducers-stats/src/roc.ts b/packages/transducers-stats/src/roc.ts index c2a8087e8c..0684edcd7d 100644 --- a/packages/transducers-stats/src/roc.ts +++ b/packages/transducers-stats/src/roc.ts @@ -1,11 +1,6 @@ import { DCons } from "@thi.ng/dcons"; import { illegalArgs } from "@thi.ng/errors"; -import { - compR, - iterator1, - Reducer, - Transducer -} from "@thi.ng/transducers"; +import { compR, iterator1, Reducer, Transducer } from "@thi.ng/transducers"; /** * Rate of change. diff --git a/packages/transducers-stats/src/rsi.ts b/packages/transducers-stats/src/rsi.ts index 3ee46c1b5c..5617af669c 100644 --- a/packages/transducers-stats/src/rsi.ts +++ b/packages/transducers-stats/src/rsi.ts @@ -4,7 +4,7 @@ import { iterator1, map, multiplex, - Transducer + Transducer, } from "@thi.ng/transducers"; import { momentum } from "./momentum"; import { sma } from "./sma"; diff --git a/packages/transducers-stats/src/sd.ts b/packages/transducers-stats/src/sd.ts index ea29a157bb..aebfd33c35 100644 --- a/packages/transducers-stats/src/sd.ts +++ b/packages/transducers-stats/src/sd.ts @@ -5,7 +5,7 @@ import { map, multiplex, partition, - Transducer + Transducer, } from "@thi.ng/transducers"; import { mse } from "./mse"; import { sma } from "./sma"; diff --git a/packages/transducers-stats/src/sma.ts b/packages/transducers-stats/src/sma.ts index 306d0fff42..f6db1fa68e 100644 --- a/packages/transducers-stats/src/sma.ts +++ b/packages/transducers-stats/src/sma.ts @@ -1,11 +1,6 @@ import { DCons } from "@thi.ng/dcons"; import { illegalArgs } from "@thi.ng/errors"; -import { - compR, - iterator1, - Reducer, - Transducer -} from "@thi.ng/transducers"; +import { compR, iterator1, Reducer, Transducer } from "@thi.ng/transducers"; /** * Like {@link @thi.ng/transducers#(movingAverage:1)}, but using more diff --git a/packages/transducers-stats/src/stochastic.ts b/packages/transducers-stats/src/stochastic.ts index cbe97c8e20..2d91d4edfb 100644 --- a/packages/transducers-stats/src/stochastic.ts +++ b/packages/transducers-stats/src/stochastic.ts @@ -1,10 +1,4 @@ -import { - $iter, - compR, - Reducer, - step, - Transducer -} from "@thi.ng/transducers"; +import { $iter, compR, Reducer, step, Transducer } from "@thi.ng/transducers"; import { donchian } from "./donchian"; import { sma } from "./sma"; diff --git a/packages/transducers-stats/src/wma.ts b/packages/transducers-stats/src/wma.ts index 132f124d8a..715b36d5ef 100644 --- a/packages/transducers-stats/src/wma.ts +++ b/packages/transducers-stats/src/wma.ts @@ -5,7 +5,7 @@ import { map, partition, range, - Transducer + Transducer, } from "@thi.ng/transducers"; import { dot } from "./dot"; diff --git a/packages/transducers/src/func/juxtr.ts b/packages/transducers/src/func/juxtr.ts index ba68cbe3cb..5de1942684 100644 --- a/packages/transducers/src/func/juxtr.ts +++ b/packages/transducers/src/func/juxtr.ts @@ -49,7 +49,7 @@ export function juxtR(...rs: Reducer[]): any { return reduced([unreduced(aa1)]); } return [aa1]; - } + }, ]; } case 2: { @@ -65,7 +65,7 @@ export function juxtR(...rs: Reducer[]): any { return reduced([unreduced(aa1), unreduced(aa2)]); } return [aa1, aa2]; - } + }, ]; } case 3: { @@ -83,11 +83,11 @@ export function juxtR(...rs: Reducer[]): any { return reduced([ unreduced(aa1), unreduced(aa2), - unreduced(aa3) + unreduced(aa3), ]); } return [aa1, aa2, aa3]; - } + }, ]; } default: @@ -106,7 +106,7 @@ export function juxtR(...rs: Reducer[]): any { res[i] = a; } return done ? reduced(res) : res; - } + }, ]; } } diff --git a/packages/transducers/src/internal/group-opts.ts b/packages/transducers/src/internal/group-opts.ts index d2a34dee42..6df754f02e 100644 --- a/packages/transducers/src/internal/group-opts.ts +++ b/packages/transducers/src/internal/group-opts.ts @@ -15,5 +15,5 @@ export const __groupByOpts = ( >{ key: identity, group: push(), - ...opts + ...opts, }; diff --git a/packages/transducers/src/internal/sort-opts.ts b/packages/transducers/src/internal/sort-opts.ts index 3135b64636..c4533372a7 100644 --- a/packages/transducers/src/internal/sort-opts.ts +++ b/packages/transducers/src/internal/sort-opts.ts @@ -13,5 +13,5 @@ export const __sortOpts = (opts?: Partial>) => >{ key: identity, compare, - ...opts + ...opts, }; diff --git a/packages/transducers/src/rfn/count.ts b/packages/transducers/src/rfn/count.ts index 27e80d8ce8..abb701c7a7 100644 --- a/packages/transducers/src/rfn/count.ts +++ b/packages/transducers/src/rfn/count.ts @@ -19,5 +19,8 @@ export function count(...args: any[]): any { } let offset: number = args[0] || 0; let step: number = args[1] || 1; - return reducer(() => offset, (acc, _) => acc + step); + return reducer( + () => offset, + (acc, _) => acc + step + ); } diff --git a/packages/transducers/src/rfn/div.ts b/packages/transducers/src/rfn/div.ts index e4dd08d5d2..f4b41cb1d2 100644 --- a/packages/transducers/src/rfn/div.ts +++ b/packages/transducers/src/rfn/div.ts @@ -10,5 +10,8 @@ export function div(init: number, xs: Iterable): number; export function div(init: number, xs?: Iterable): any { return xs ? reduce(div(init), xs) - : reducer(() => init, (acc, x: number) => acc / x); + : reducer( + () => init, + (acc, x: number) => acc / x + ); } diff --git a/packages/transducers/src/rfn/group-binary.ts b/packages/transducers/src/rfn/group-binary.ts index d32f3f2950..4a96626491 100644 --- a/packages/transducers/src/rfn/group-binary.ts +++ b/packages/transducers/src/rfn/group-binary.ts @@ -95,12 +95,12 @@ export const groupBinary = ( const init = branch || (() => ({})); let rfn: Reducer = groupByObj({ key: branchPred(key, 1, left, right), - group: leaf || push() + group: leaf || push(), }); for (let i = 2, maxIndex = 1 << bits; i < maxIndex; i <<= 1) { rfn = groupByObj({ key: branchPred(key, i, left, right), - group: [init, rfn[1], rfn[2]] + group: [init, rfn[1], rfn[2]], }); } return [init, rfn[1], rfn[2]]; diff --git a/packages/transducers/src/rfn/group-by-map.ts b/packages/transducers/src/rfn/group-by-map.ts index a36d9e0278..7fa50f8ddb 100644 --- a/packages/transducers/src/rfn/group-by-map.ts +++ b/packages/transducers/src/rfn/group-by-map.ts @@ -30,6 +30,6 @@ export function groupByMap(...args: any[]): any { ? reduce(acc.get(k)!, x) : reduce(init(), x) ); - } + }, ]; } diff --git a/packages/transducers/src/rfn/group-by-obj.ts b/packages/transducers/src/rfn/group-by-obj.ts index 714dcf1706..4c5e7f377a 100644 --- a/packages/transducers/src/rfn/group-by-obj.ts +++ b/packages/transducers/src/rfn/group-by-obj.ts @@ -29,6 +29,6 @@ export function groupByObj(...args: any[]): any { ? _reduce(acc[k], x) : _reduce(_init(), x); return acc; - } + }, ]; } diff --git a/packages/transducers/src/rfn/max.ts b/packages/transducers/src/rfn/max.ts index a3486e2137..d0d19c1b2e 100644 --- a/packages/transducers/src/rfn/max.ts +++ b/packages/transducers/src/rfn/max.ts @@ -6,5 +6,8 @@ export function max(xs: Iterable): number; export function max(xs?: Iterable): any { return xs ? reduce(max(), xs) - : reducer(() => -Infinity, (acc, x: number) => Math.max(acc, x)); + : reducer( + () => -Infinity, + (acc, x: number) => Math.max(acc, x) + ); } diff --git a/packages/transducers/src/rfn/mean.ts b/packages/transducers/src/rfn/mean.ts index 862185975c..2ef04560f8 100644 --- a/packages/transducers/src/rfn/mean.ts +++ b/packages/transducers/src/rfn/mean.ts @@ -14,6 +14,6 @@ export function mean(xs?: Iterable): any { : >[ () => (n = 0), (acc) => (n > 1 ? acc / n : acc), - (acc, x) => (n++, acc + x) + (acc, x) => (n++, acc + x), ]; } diff --git a/packages/transducers/src/rfn/min.ts b/packages/transducers/src/rfn/min.ts index 62e24344e9..b0be2cbb58 100644 --- a/packages/transducers/src/rfn/min.ts +++ b/packages/transducers/src/rfn/min.ts @@ -6,5 +6,8 @@ export function min(xs: Iterable): number; export function min(xs?: Iterable): any { return xs ? reduce(min(), xs) - : reducer(() => Infinity, (acc, x: number) => Math.min(acc, x)); + : reducer( + () => Infinity, + (acc, x: number) => Math.min(acc, x) + ); } diff --git a/packages/transducers/src/rfn/push-copy.ts b/packages/transducers/src/rfn/push-copy.ts index ce5e8107f8..664ce625cc 100644 --- a/packages/transducers/src/rfn/push-copy.ts +++ b/packages/transducers/src/rfn/push-copy.ts @@ -2,4 +2,7 @@ import { reducer } from "../reduce"; import type { Reducer } from "../api"; export const pushCopy = (): Reducer => - reducer(() => [], (acc, x) => ((acc = acc.slice()).push(x), acc)); + reducer( + () => [], + (acc, x) => ((acc = acc.slice()).push(x), acc) + ); diff --git a/packages/transducers/src/rfn/push-sort.ts b/packages/transducers/src/rfn/push-sort.ts index 2ee09592af..d6c231edb8 100644 --- a/packages/transducers/src/rfn/push-sort.ts +++ b/packages/transducers/src/rfn/push-sort.ts @@ -20,6 +20,6 @@ export function pushSort( : >[ () => [], (acc) => acc.sort(cmp), - (acc, x) => (acc.push(x), acc) + (acc, x) => (acc.push(x), acc), ]; } diff --git a/packages/transducers/src/rfn/push.ts b/packages/transducers/src/rfn/push.ts index f28e4c4033..cb656aa8f2 100644 --- a/packages/transducers/src/rfn/push.ts +++ b/packages/transducers/src/rfn/push.ts @@ -6,5 +6,8 @@ export function push(xs: Iterable): T[]; export function push(xs?: Iterable): any { return xs ? [...xs] - : reducer(() => [], (acc, x) => (acc.push(x), acc)); + : reducer( + () => [], + (acc, x) => (acc.push(x), acc) + ); } diff --git a/packages/transducers/src/rfn/reductions.ts b/packages/transducers/src/rfn/reductions.ts index c39dc8fda6..186a75530b 100644 --- a/packages/transducers/src/rfn/reductions.ts +++ b/packages/transducers/src/rfn/reductions.ts @@ -21,6 +21,6 @@ export function reductions(rfn: Reducer, xs?: Iterable): any { } acc.push(res); return acc; - } + }, ]; } diff --git a/packages/transducers/src/transduce.ts b/packages/transducers/src/transduce.ts index cd6278f7aa..5d34ecce04 100644 --- a/packages/transducers/src/transduce.ts +++ b/packages/transducers/src/transduce.ts @@ -2,12 +2,7 @@ import { illegalArity } from "@thi.ng/errors"; import { ensureTransducer } from "./internal/ensure"; import { reduce } from "./reduce"; import { map } from "./xform/map"; -import type { - IReducible, - Reducer, - Transducer, - TxLike -} from "./api"; +import type { IReducible, Reducer, Transducer, TxLike } from "./api"; export function transduce( tx: TxLike, diff --git a/packages/transducers/src/xform/drop-while.ts b/packages/transducers/src/xform/drop-while.ts index 81f4621102..e4c1278308 100644 --- a/packages/transducers/src/xform/drop-while.ts +++ b/packages/transducers/src/xform/drop-while.ts @@ -16,9 +16,8 @@ export function dropWhile(...args: any[]): any { const r = rfn[2]; const pred = args[0]; let ok = true; - return compR( - rfn, - (acc, x: T) => ((ok = ok && pred(x)) ? acc : r(acc, x)) + return compR(rfn, (acc, x: T) => + (ok = ok && pred(x)) ? acc : r(acc, x) ); }) ); diff --git a/packages/transducers/src/xform/drop.ts b/packages/transducers/src/xform/drop.ts index c8beb49de3..37f98aa8cc 100644 --- a/packages/transducers/src/xform/drop.ts +++ b/packages/transducers/src/xform/drop.ts @@ -6,14 +6,13 @@ import type { Reducer, Transducer } from "../api"; export function drop(n: number): Transducer; export function drop(n: number, src: Iterable): IterableIterator; export function drop(n: number, src?: Iterable): any { - return isIterable(src) + return isIterable(src) ? iterator1(drop(n), src) : (rfn: Reducer) => { const r = rfn[2]; let m = n; - return compR( - rfn, - (acc, x: T) => (m > 0 ? (m--, acc) : r(acc, x)) + return compR(rfn, (acc, x: T) => + m > 0 ? (m--, acc) : r(acc, x) ); }; } diff --git a/packages/transducers/src/xform/pad-last.ts b/packages/transducers/src/xform/pad-last.ts index a19a5c1955..5b7892d244 100644 --- a/packages/transducers/src/xform/pad-last.ts +++ b/packages/transducers/src/xform/pad-last.ts @@ -57,7 +57,7 @@ export function padLast(n: number, fill: T, src?: Iterable): any { } return complete(acc); }, - (acc, x) => (m++, reduce(acc, x)) + (acc, x) => (m++, reduce(acc, x)), ]; }; } diff --git a/packages/transducers/src/xform/partition-by.ts b/packages/transducers/src/xform/partition-by.ts index 78e88498ff..9f09cafb95 100644 --- a/packages/transducers/src/xform/partition-by.ts +++ b/packages/transducers/src/xform/partition-by.ts @@ -60,7 +60,7 @@ export function partitionBy(...args: any[]): any { prev = curr; } return acc; - } + }, ]; }) ); diff --git a/packages/transducers/src/xform/partition.ts b/packages/transducers/src/xform/partition.ts index 2b3d78df08..064c02243b 100644 --- a/packages/transducers/src/xform/partition.ts +++ b/packages/transducers/src/xform/partition.ts @@ -98,7 +98,7 @@ export function partition(...args: any[]): any { skip--; } return acc; - } + }, ]; }; } diff --git a/packages/transducers/src/xform/scan.ts b/packages/transducers/src/xform/scan.ts index 11c0ee1360..cf9b9bde39 100644 --- a/packages/transducers/src/xform/scan.ts +++ b/packages/transducers/src/xform/scan.ts @@ -54,7 +54,7 @@ export function scan(...args: any[]): any { return ensureReduced(reduceo(_acc, (acc).deref())); } return reduceo(_acc, acc); - } + }, ]; }) ); diff --git a/packages/transducers/src/xform/stream-shuffle.ts b/packages/transducers/src/xform/stream-shuffle.ts index 972b85ced8..e51a9bb4d2 100644 --- a/packages/transducers/src/xform/stream-shuffle.ts +++ b/packages/transducers/src/xform/stream-shuffle.ts @@ -55,7 +55,7 @@ export function streamShuffle(...args: any[]): any { acc = reduce(acc, buf.shift()!); } return acc; - } + }, ]; }) ); diff --git a/packages/transducers/src/xform/stream-sort.ts b/packages/transducers/src/xform/stream-sort.ts index c25ced21f2..2644415616 100644 --- a/packages/transducers/src/xform/stream-sort.ts +++ b/packages/transducers/src/xform/stream-sort.ts @@ -44,7 +44,7 @@ export function streamSort(...args: any[]): any { acc = reduce(acc, buf.shift()!); } return acc; - } + }, ]; }; } diff --git a/packages/transducers/src/xform/take-last.ts b/packages/transducers/src/xform/take-last.ts index b82312c7c8..fce3d397e8 100644 --- a/packages/transducers/src/xform/take-last.ts +++ b/packages/transducers/src/xform/take-last.ts @@ -32,7 +32,7 @@ export function takeLast(n: number, src?: Iterable): any { } buf.push(x); return acc; - } + }, ]; }; } diff --git a/packages/transducers/src/xform/toggle.ts b/packages/transducers/src/xform/toggle.ts index dabc5c4625..0f050cbfac 100644 --- a/packages/transducers/src/xform/toggle.ts +++ b/packages/transducers/src/xform/toggle.ts @@ -41,7 +41,7 @@ export function toggle( return [ init, complete, - (acc: any) => reduce(acc, (state = !state) ? on : off) + (acc: any) => reduce(acc, (state = !state) ? on : off), ]; }; } diff --git a/packages/transducers/src/xform/word-wrap.ts b/packages/transducers/src/xform/word-wrap.ts index bbefe689be..190df3f0d6 100644 --- a/packages/transducers/src/xform/word-wrap.ts +++ b/packages/transducers/src/xform/word-wrap.ts @@ -44,7 +44,7 @@ export function wordWrap(...args: any[]): any { const { delim, always } = { delim: 1, always: true, - ...args[1] + ...args[1], }; return partitionBy(() => { let n = 0; diff --git a/packages/transducers/test/fuzzy.ts b/packages/transducers/test/fuzzy.ts index 2cd3090b0a..d9f2cfbd85 100644 --- a/packages/transducers/test/fuzzy.ts +++ b/packages/transducers/test/fuzzy.ts @@ -6,15 +6,39 @@ describe("fuzzy", () => { it("strings", () => { const opts = ["hello", "hallo", "hey", "heyoka"]; assert.deepEqual([...filterFuzzy("hl", opts)], ["hello", "hallo"]); - assert.deepEqual([...filterFuzzy("he", opts)], ["hello", "hey", "heyoka"]); - assert.deepEqual([...filterFuzzy("ho", opts)], ["hello", "hallo", "heyoka"]); + assert.deepEqual( + [...filterFuzzy("he", opts)], + ["hello", "hey", "heyoka"] + ); + assert.deepEqual( + [...filterFuzzy("ho", opts)], + ["hello", "hallo", "heyoka"] + ); assert.deepEqual([...filterFuzzy("hey", opts)], ["hey", "heyoka"]); assert.deepEqual([...filterFuzzy("hk", opts)], ["heyoka"]); }); it("arrays", () => { - const opts = [[1, 2, 3], [1, 3, 4], [4, 5, 6], [1, 3, 6]]; - assert.deepEqual([...filterFuzzy([1, 3], opts)], [[1, 2, 3], [1, 3, 4], [1, 3, 6]]); - assert.deepEqual([...filterFuzzy([4], opts)], [[1, 3, 4], [4, 5, 6]]); + const opts = [ + [1, 2, 3], + [1, 3, 4], + [4, 5, 6], + [1, 3, 6], + ]; + assert.deepEqual( + [...filterFuzzy([1, 3], opts)], + [ + [1, 2, 3], + [1, 3, 4], + [1, 3, 6], + ] + ); + assert.deepEqual( + [...filterFuzzy([4], opts)], + [ + [1, 3, 4], + [4, 5, 6], + ] + ); assert.deepEqual([...filterFuzzy([3, 6], opts)], [[1, 3, 6]]); assert.deepEqual([...filterFuzzy([], opts)], opts); }); diff --git a/packages/transducers/test/juxtr.ts b/packages/transducers/test/juxtr.ts index 6cb23f7bd1..649e03b8b1 100644 --- a/packages/transducers/test/juxtr.ts +++ b/packages/transducers/test/juxtr.ts @@ -6,33 +6,26 @@ const src = [1, 2, 3, 4]; const early = tx.reducer( () => 0, - (acc, x) => acc + x < 6 ? acc + x : tx.reduced(acc) + (acc, x) => (acc + x < 6 ? acc + x : tx.reduced(acc)) ); describe("juxtR", () => { it("arity-1", () => { - assert.deepEqual( - tx.reduce(tx.juxtR(tx.str("-")), src), - ["1-2-3-4"] - ); - assert.deepEqual( - tx.reduce(tx.juxtR(early), src), - [3] - ); - assert.deepEqual( - tx.transduce(tx.take(2), tx.juxtR(tx.str("-")), src), - ["1-2"] - ); + assert.deepEqual(tx.reduce(tx.juxtR(tx.str("-")), src), ["1-2-3-4"]); + assert.deepEqual(tx.reduce(tx.juxtR(early), src), [3]); + assert.deepEqual(tx.transduce(tx.take(2), tx.juxtR(tx.str("-")), src), [ + "1-2", + ]); }); it("arity-2", () => { - assert.deepEqual( - tx.reduce(tx.juxtR(tx.push(), tx.str("-")), src), - [[1, 2, 3, 4], "1-2-3-4"] - ); - assert.deepEqual( - tx.reduce(tx.juxtR(tx.push(), early), src), - [[1, 2, 3], 3] - ); + assert.deepEqual(tx.reduce(tx.juxtR(tx.push(), tx.str("-")), src), [ + [1, 2, 3, 4], + "1-2-3-4", + ]); + assert.deepEqual(tx.reduce(tx.juxtR(tx.push(), early), src), [ + [1, 2, 3], + 3, + ]); assert.deepEqual( tx.transduce(tx.take(2), tx.juxtR(early, tx.str("-")), src), [3, "1-2"] @@ -40,7 +33,10 @@ describe("juxtR", () => { }); it("arity-3", () => { assert.deepEqual( - tx.reduce(tx.juxtR(tx.add(), tx.reductions(tx.add()), tx.str("-")), src), + tx.reduce( + tx.juxtR(tx.add(), tx.reductions(tx.add()), tx.str("-")), + src + ), [10, [0, 1, 3, 6, 10], "1-2-3-4"] ); assert.deepEqual( @@ -48,21 +44,40 @@ describe("juxtR", () => { [6, [0, 1, 3, 6], 3] ); assert.deepEqual( - tx.transduce(tx.take(2), tx.juxtR(early, tx.push(), tx.str("-")), src), + tx.transduce( + tx.take(2), + tx.juxtR(early, tx.push(), tx.str("-")), + src + ), [3, [1, 2], "1-2"] ); }); it("arity-4", () => { assert.deepEqual( - tx.reduce(tx.juxtR(tx.add(), tx.reductions(tx.add()), tx.push(), tx.str("-")), src), + tx.reduce( + tx.juxtR( + tx.add(), + tx.reductions(tx.add()), + tx.push(), + tx.str("-") + ), + src + ), [10, [0, 1, 3, 6, 10], [1, 2, 3, 4], "1-2-3-4"] ); assert.deepEqual( - tx.reduce(tx.juxtR(tx.add(), tx.reductions(tx.add()), tx.str("-"), early), src), + tx.reduce( + tx.juxtR(tx.add(), tx.reductions(tx.add()), tx.str("-"), early), + src + ), [6, [0, 1, 3, 6], "1-2-3", 3] ); assert.deepEqual( - tx.transduce(tx.take(2), tx.juxtR(early, tx.add(), tx.push(), tx.str("-")), src), + tx.transduce( + tx.take(2), + tx.juxtR(early, tx.add(), tx.push(), tx.str("-")), + src + ), [3, 3, [1, 2], "1-2"] ); }); diff --git a/packages/transducers/test/map-deep.ts b/packages/transducers/test/map-deep.ts index 0b0f433d7c..51cabcbec7 100644 --- a/packages/transducers/test/map-deep.ts +++ b/packages/transducers/test/map-deep.ts @@ -5,36 +5,48 @@ import * as assert from "assert"; describe("deepTransform", () => { it("transforms hiccup", () => { assert.deepEqual( - deepTransform( - [ - ({ type, meta, title, body }) => ["div", { class: type }, title, meta, body], - { - meta: [ - ({ author, date }) => ["div.meta", author, `(${date})`], - { - author: ({ email, name }) => ["a", { href: `mailto:${email}` }, name], - date: (epoch) => new Date(epoch).toISOString() - } - ], - title: (title) => ["h1", title] - } - ] - )( + deepTransform([ + ({ type, meta, title, body }) => [ + "div", + { class: type }, + title, + meta, + body, + ], { - meta: { - author: { name: "Alice", email: "a@b.com" }, - date: 1041510896000 - }, - type: "post", - title: "Hello world", - body: "Ratione necessitatibus doloremque itaque." - } - ), - ['div', - { class: 'post' }, - ['h1', 'Hello world'], - ['div.meta', ["a", { href: "mailto:a@b.com" }, "Alice"], '(2003-01-02T12:34:56.000Z)'], - 'Ratione necessitatibus doloremque itaque.'] + meta: [ + ({ author, date }) => ["div.meta", author, `(${date})`], + { + author: ({ email, name }) => [ + "a", + { href: `mailto:${email}` }, + name, + ], + date: (epoch) => new Date(epoch).toISOString(), + }, + ], + title: (title) => ["h1", title], + }, + ])({ + meta: { + author: { name: "Alice", email: "a@b.com" }, + date: 1041510896000, + }, + type: "post", + title: "Hello world", + body: "Ratione necessitatibus doloremque itaque.", + }), + [ + "div", + { class: "post" }, + ["h1", "Hello world"], + [ + "div.meta", + ["a", { href: "mailto:a@b.com" }, "Alice"], + "(2003-01-02T12:34:56.000Z)", + ], + "Ratione necessitatibus doloremque itaque.", + ] ); }); }); diff --git a/packages/transducers/test/pad-last.ts b/packages/transducers/test/pad-last.ts index 4a1aa3b139..a4e3275e76 100644 --- a/packages/transducers/test/pad-last.ts +++ b/packages/transducers/test/pad-last.ts @@ -4,25 +4,13 @@ import * as assert from "assert"; describe("padLast", () => { it("all", () => { - assert.deepEqual( - [...padLast(8, 0, [])], - [] - ); - assert.deepEqual( - [...padLast(8, 0, [1])], - [1, 0, 0, 0, 0, 0, 0, 0] - ); + assert.deepEqual([...padLast(8, 0, [])], []); + assert.deepEqual([...padLast(8, 0, [1])], [1, 0, 0, 0, 0, 0, 0, 0]); assert.deepEqual( [...padLast(8, 0, [1, 2, 3, 4, 5])], [1, 2, 3, 4, 5, 0, 0, 0] ); - assert.deepEqual( - [...padLast(2, 0, [1, 2, 3])], - [1, 2, 3, 0] - ); - assert.deepEqual( - [...padLast(2, 0, [1, 2, 3, 4])], - [1, 2, 3, 4] - ); + assert.deepEqual([...padLast(2, 0, [1, 2, 3])], [1, 2, 3, 0]); + assert.deepEqual([...padLast(2, 0, [1, 2, 3, 4])], [1, 2, 3, 4]); }); }); diff --git a/packages/transducers/test/permutations.ts b/packages/transducers/test/permutations.ts index 241f45b265..8b07330623 100644 --- a/packages/transducers/test/permutations.ts +++ b/packages/transducers/test/permutations.ts @@ -26,22 +26,40 @@ describe("permutations", () => { ); assert.deepEqual( [...permutations("a", "-", range(2))], - [["a", "-", 0], ["a", "-", 1]] + [ + ["a", "-", 0], + ["a", "-", 1], + ] ); assert.deepEqual( [...permutations("a", "-+", range(2))], - [["a", "-", 0], ["a", "-", 1], ["a", "+", 0], ["a", "+", 1]] + [ + ["a", "-", 0], + ["a", "-", 1], + ["a", "+", 0], + ["a", "+", 1], + ] ); }); it("transformed", () => { assert.deepEqual( - [...iterator(map((x: any[]) => x.join("")), permutations("ab", "-", range(2)))], - ['a-0', 'a-1', 'b-0', 'b-1'] + [ + ...iterator( + map((x: any[]) => x.join("")), + permutations("ab", "-", range(2)) + ), + ], + ["a-0", "a-1", "b-0", "b-1"] ); }); it("swizzle", () => { assert.deepEqual( - [...iterator(map((x: string[]) => swizzle(x)({ x: 0, y: 1, z: 2 })), permutations("xyz", "xyz", "xyz"))], + [ + ...iterator( + map((x: string[]) => swizzle(x)({ x: 0, y: 1, z: 2 })), + permutations("xyz", "xyz", "xyz") + ), + ], [...permutationsN(3)] ); }); @@ -55,22 +73,44 @@ describe("permutationsN", () => { assert.deepEqual([...permutationsN(1)], [[0]]); }); it("two", () => { - assert.deepEqual([...permutationsN(2)], [[0, 0], [0, 1], [1, 0], [1, 1]]); + assert.deepEqual( + [...permutationsN(2)], + [ + [0, 0], + [0, 1], + [1, 0], + [1, 1], + ] + ); }); it("two/three", () => { assert.deepEqual( [...permutationsN(2, 3)], [ - [0, 0], [0, 1], [0, 2], - [1, 0], [1, 1], [1, 2], - [2, 0], [2, 1], [2, 2] + [0, 0], + [0, 1], + [0, 2], + [1, 0], + [1, 1], + [1, 2], + [2, 0], + [2, 1], + [2, 2], ] ); }); it("with offsets", () => { - assert.deepEqual([...permutationsN(2, 2, [100, 1000])], [[100, 1000], [100, 1001], [101, 1000], [101, 1001]]); + assert.deepEqual( + [...permutationsN(2, 2, [100, 1000])], + [ + [100, 1000], + [100, 1001], + [101, 1000], + [101, 1001], + ] + ); }); it("insufficient offsets", () => { assert.throws(() => permutationsN(2, 2, [0])); }); -}); \ No newline at end of file +}); diff --git a/packages/unionstruct/src/index.ts b/packages/unionstruct/src/index.ts index 583d82f681..e5666417ab 100644 --- a/packages/unionstruct/src/index.ts +++ b/packages/unionstruct/src/index.ts @@ -24,7 +24,7 @@ const TYPES: { [id: string]: [number, string, boolean] } = { u8: [8, "Uint", false], i32: [32, "Int", true], i16: [16, "Int", true], - i8: [8, "Int", true] + i8: [8, "Int", true], }; const UNION = "union"; @@ -178,7 +178,7 @@ const makeField = ( Object.defineProperty(obj, id, { get: () => f, enumerable: true, - configurable: false + configurable: false, }); bitOffset += (f as any).__size; } else { @@ -208,7 +208,7 @@ const makeField = ( get, set, enumerable: true, - configurable: false + configurable: false, }); } return bitOffset; @@ -229,7 +229,7 @@ export const typedef = ( __buffer: dv.buffer, __spec: spec, __size: size, - __offsets: {} + __offsets: {}, }; for (let i = 0; i < spec.length; i++) { let f = spec[i]; diff --git a/packages/unionstruct/test/index.ts b/packages/unionstruct/test/index.ts index 60454462a0..c2651cfd3e 100644 --- a/packages/unionstruct/test/index.ts +++ b/packages/unionstruct/test/index.ts @@ -2,10 +2,27 @@ import { Field, union, struct } from "../src/index"; import * as assert from "assert"; describe("nested struct + union", () => { - let i = [["f64", "f64"], ["u8", "u8"]]; - let u = [["u16", "u16"], ["str", "struct", i]]; - let o = [["u8", "u8"], ["un", "union", u], ["u32", "u32"]]; - let bf = [["a", "i32", 1], ["b", "u32", 5], ["c", "u32", 26], ["d", "u32", 28], ["e", "i32", 2], ["f", "f32"]]; + let i = [ + ["f64", "f64"], + ["u8", "u8"], + ]; + let u = [ + ["u16", "u16"], + ["str", "struct", i], + ]; + let o = [ + ["u8", "u8"], + ["un", "union", u], + ["u32", "u32"], + ]; + let bf = [ + ["a", "i32", 1], + ["b", "u32", 5], + ["c", "u32", 26], + ["d", "u32", 28], + ["e", "i32", 2], + ["f", "f32"], + ]; it("sizes (aligned)", () => { assert.equal(struct(i).__size, 0x48, "inner"); assert.equal(union(u).__size, 0x48, "union"); @@ -38,34 +55,42 @@ describe("nested struct + union", () => { }); it("values (aligned)", () => { let s = struct(o); - assert.equal((s.u8 = 0xff, s.u8), 0xff, "o.u8"); - assert.equal((s.un.u16 = 0xffff, s.un.u16), 0xffff, "o.un.u16"); - assert.equal((s.un.str.f64 = Math.PI, s.un.str.f64), Math.PI, "o.un.str.f64"); + assert.equal(((s.u8 = 0xff), s.u8), 0xff, "o.u8"); + assert.equal(((s.un.u16 = 0xffff), s.un.u16), 0xffff, "o.un.u16"); + assert.equal( + ((s.un.str.f64 = Math.PI), s.un.str.f64), + Math.PI, + "o.un.str.f64" + ); assert.equal(s.un.u16, 0x4009, "o.un.u16 (2)"); - assert.equal((s.un.str.u8 = 0xaa, s.un.str.u8), 0xaa, "o.un.str.u8"); - assert.equal((s.u32 = 0x87654321, s.u32), 0x87654321, "o.u32"); + assert.equal(((s.un.str.u8 = 0xaa), s.un.str.u8), 0xaa, "o.un.str.u8"); + assert.equal(((s.u32 = 0x87654321), s.u32), 0x87654321, "o.u32"); }); it("values (unaligned)", () => { let s = struct(o, null, 0, false); - assert.equal((s.u8 = 0xff, s.u8), 0xff, "o.u8"); - assert.equal((s.un.u16 = 0xffff, s.un.u16), 0xffff, "o.un.u16"); - assert.equal((s.un.str.f64 = Math.PI, s.un.str.f64), Math.PI, "o.un.str.f64"); + assert.equal(((s.u8 = 0xff), s.u8), 0xff, "o.u8"); + assert.equal(((s.un.u16 = 0xffff), s.un.u16), 0xffff, "o.un.u16"); + assert.equal( + ((s.un.str.f64 = Math.PI), s.un.str.f64), + Math.PI, + "o.un.str.f64" + ); assert.equal(s.un.u16, 0x4009, "o.un.u16 (2)"); - assert.equal((s.un.str.u8 = 0xaa, s.un.str.u8), 0xaa, "o.un.str.u8"); - assert.equal((s.u32 = 0x87654321, s.u32), 0x87654321, "o.u32"); + assert.equal(((s.un.str.u8 = 0xaa), s.un.str.u8), 0xaa, "o.un.str.u8"); + assert.equal(((s.u32 = 0x87654321), s.u32), 0x87654321, "o.u32"); }); it("bitfields (aligned)", () => { let s = struct(bf); - assert.equal((s.a = 1, s.a), -1, "s.a"); - assert.equal((s.b = 0x1f, s.b), 0x1f, "s.b"); - assert.equal((s.c = 0x7654321, s.c), 0x3654321, "s.c"); - assert.equal((s.d = 0xff654321, s.d), 0xf654321, "s.d"); - assert.equal((s.e = 0x2, s.e), -2, "s.e"); - assert.equal((s.f = 2, s.f), 2, "s.f"); + assert.equal(((s.a = 1), s.a), -1, "s.a"); + assert.equal(((s.b = 0x1f), s.b), 0x1f, "s.b"); + assert.equal(((s.c = 0x7654321), s.c), 0x3654321, "s.c"); + assert.equal(((s.d = 0xff654321), s.d), 0xf654321, "s.d"); + assert.equal(((s.e = 0x2), s.e), -2, "s.e"); + assert.equal(((s.f = 2), s.f), 2, "s.f"); assert.equal(s.e, -2, "s.e (read)"); assert.equal(s.d, 0xf654321, "s.d (read)"); assert.equal(s.c, 0x3654321, "s.c (read)"); assert.equal(s.b, 0x1f, "s.b (read)"); assert.equal(s.a, -1, "s.a (read)"); }); -}); \ No newline at end of file +}); diff --git a/packages/vector-pools/src/api.ts b/packages/vector-pools/src/api.ts index 74d96df814..813aa8e9c6 100644 --- a/packages/vector-pools/src/api.ts +++ b/packages/vector-pools/src/api.ts @@ -5,7 +5,7 @@ import { IRelease, NULL_LOGGER, Type, - TypedArray + TypedArray, } from "@thi.ng/api"; import { MemPool, MemPoolOpts } from "@thi.ng/malloc"; import type { ReadonlyVec, StridedVec, Vec } from "@thi.ng/vectors"; diff --git a/packages/vector-pools/src/attrib-pool.ts b/packages/vector-pools/src/attrib-pool.ts index aed13e411d..0568594e1c 100644 --- a/packages/vector-pools/src/attrib-pool.ts +++ b/packages/vector-pools/src/attrib-pool.ts @@ -5,7 +5,7 @@ import { SIZEOF, TypedArray, typedArray, - TYPEDARRAY_CTORS + TYPEDARRAY_CTORS, } from "@thi.ng/api"; import { align, Pow2 } from "@thi.ng/binary"; import { isNumber } from "@thi.ng/checks"; @@ -41,7 +41,7 @@ export class AttribPool implements IRelease { constructor(opts?: AttribPoolOpts) { opts = { resizable: true, - ...opts + ...opts, }; this.pool = !(opts.mem instanceof MemPool) ? new MemPool(opts.mem) @@ -368,7 +368,7 @@ const resizeAttribs = ( const dStride = stride / SIZEOF[type]; newAttribs[id] = [ typedArray(type, buf, dest + a.byteOffset, num * dStride + a.size), - dStride + dStride, ]; } return newAttribs; diff --git a/packages/vector-pools/src/convert.ts b/packages/vector-pools/src/convert.ts index 6a937bfa78..5a72a633a1 100644 --- a/packages/vector-pools/src/convert.ts +++ b/packages/vector-pools/src/convert.ts @@ -1,9 +1,4 @@ -import { - GL2TYPE, - GLType, - Type, - TYPE2GL -} from "@thi.ng/api"; +import { GL2TYPE, GLType, Type, TYPE2GL } from "@thi.ng/api"; /** * Returns canonical {@link @thi.ng/api#Type} value of `type` by first diff --git a/packages/vector-pools/test/attribs.ts b/packages/vector-pools/test/attribs.ts index 5115a76708..975de57993 100644 --- a/packages/vector-pools/test/attribs.ts +++ b/packages/vector-pools/test/attribs.ts @@ -13,34 +13,49 @@ describe("vector-pools", () => { type: Type.F32, size: 2, // 8 bytes byteOffset: 0, - data: [[1, 2], [3, 4]] + data: [ + [1, 2], + [3, 4], + ], }, id: { type: Type.U32, size: 1, // 4 bytes byteOffset: 8, data: [1, 2], - index: 4 + index: 4, }, index: { type: Type.U16, size: 1, // 2 bytes byteOffset: 12, - data: [10, 20] + data: [10, 20], }, col: { type: Type.U8, size: 4, // 4 bytes byteOffset: 14, - data: [[128, 129, 130, 131], [255, 254, 253, 252]], - index: 6 - } - } + data: [ + [128, 129, 130, 131], + [255, 254, 253, 252], + ], + index: 6, + }, + }, }); assert( equiv( [...pool.attribValues("pos")], - [[1, 2], [3, 4], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]] + [ + [1, 2], + [3, 4], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + [0, 0], + ] ) ); assert(equiv([...pool.attribValues("id")], [0, 0, 0, 0, 1, 2, 0, 0])); @@ -58,7 +73,7 @@ describe("vector-pools", () => { [0, 0, 0, 0], [0, 0, 0, 0], [128, 129, 130, 131], - [255, 254, 253, 252] + [255, 254, 253, 252], ] ) ); diff --git a/packages/vectors/src/addns.ts b/packages/vectors/src/addns.ts index 19d4559549..a149c6d97e 100644 --- a/packages/vectors/src/addns.ts +++ b/packages/vectors/src/addns.ts @@ -1,10 +1,5 @@ import { VecOpSVN } from "./api"; -import { - ARGS_V, - ARGS_VN, - defOpS, - SARGS_V -} from "./internal/codegen"; +import { ARGS_V, ARGS_VN, defOpS, SARGS_V } from "./internal/codegen"; import { MATH_N } from "./internal/templates"; export const [addNS2, addNS3, addNS4] = defOpS( diff --git a/packages/vectors/src/api.ts b/packages/vectors/src/api.ts index 2085e3bee6..94d5ccaae8 100644 --- a/packages/vectors/src/api.ts +++ b/packages/vectors/src/api.ts @@ -11,7 +11,7 @@ import { IEqualsDelta, ILength, Tuple, - TypedArray + TypedArray, } from "@thi.ng/api"; export interface Vec extends Iterable, ILength { diff --git a/packages/vectors/src/atan.ts b/packages/vectors/src/atan.ts index aac62e4dcd..a1d2d8f754 100644 --- a/packages/vectors/src/atan.ts +++ b/packages/vectors/src/atan.ts @@ -1,9 +1,4 @@ -import { - MultiVecOpV, - MultiVecOpVV, - VecOpV, - VecOpVV -} from "./api"; +import { MultiVecOpV, MultiVecOpVV, VecOpV, VecOpVV } from "./api"; import { ARGS_VV, defFnOp, defOp } from "./internal/codegen"; import { FN2 } from "./internal/templates"; diff --git a/packages/vectors/src/buffer.ts b/packages/vectors/src/buffer.ts index 0318155690..067274d700 100644 --- a/packages/vectors/src/buffer.ts +++ b/packages/vectors/src/buffer.ts @@ -3,14 +3,9 @@ import { Type, typedArray, TYPEDARRAY_CTORS, - TypedArrayTypeMap + TypedArrayTypeMap, } from "@thi.ng/api"; -import { - ReadonlyVec, - Vec, - VecOpSV, - VectorConstructor -} from "./api"; +import { ReadonlyVec, Vec, VecOpSV, VectorConstructor } from "./api"; /** * Takes an `ArrayBuffer` and creates a number of typed array vector diff --git a/packages/vectors/src/cartesian.ts b/packages/vectors/src/cartesian.ts index a8738a7de4..0848184a73 100644 --- a/packages/vectors/src/cartesian.ts +++ b/packages/vectors/src/cartesian.ts @@ -1,10 +1,5 @@ import { cossin } from "@thi.ng/math"; -import { - MultiVecOpVO, - ReadonlyVec, - ZERO2, - ZERO3 -} from "./api"; +import { MultiVecOpVO, ReadonlyVec, ZERO2, ZERO3 } from "./api"; import { vop } from "./internal/vop"; import { maddN2 } from "./maddn"; import { setC3 } from "./setc"; diff --git a/packages/vectors/src/clamp.ts b/packages/vectors/src/clamp.ts index db37df63cf..468a0cda26 100644 --- a/packages/vectors/src/clamp.ts +++ b/packages/vectors/src/clamp.ts @@ -1,4 +1,8 @@ -import { clamp as _clamp, clamp01 as _clamp01, clamp11 as _clamp11 } from "@thi.ng/math"; +import { + clamp as _clamp, + clamp01 as _clamp01, + clamp11 as _clamp11, +} from "@thi.ng/math"; import { MultiVecOpVVV, VecOpVVV } from "./api"; import { ARGS_VVV, defHofOp } from "./internal/codegen"; import { FN3 } from "./internal/templates"; diff --git a/packages/vectors/src/compare.ts b/packages/vectors/src/compare.ts index 6c1439815f..0e12a4cba6 100644 --- a/packages/vectors/src/compare.ts +++ b/packages/vectors/src/compare.ts @@ -47,14 +47,14 @@ export const comparator3 = ( ? az === bz ? 0 : az < bz - ? -3 - : 3 + ? -3 + : 3 : ay < by - ? -2 - : 2 + ? -2 + : 2 : ax < bx - ? -1 - : 1; + ? -1 + : 1; }; /** @@ -88,15 +88,15 @@ export const comparator4 = ( ? aw === bw ? 0 : aw < bw - ? -4 - : 4 + ? -4 + : 4 : az < bz - ? -3 - : 3 + ? -3 + : 3 : ay < by - ? -2 - : 2 + ? -2 + : 2 : ax < bx - ? -1 - : 1; + ? -1 + : 1; }; diff --git a/packages/vectors/src/convert.ts b/packages/vectors/src/convert.ts index 861c25a390..0c8465c003 100644 --- a/packages/vectors/src/convert.ts +++ b/packages/vectors/src/convert.ts @@ -5,7 +5,7 @@ import { Template, ToBVecOpV, Vec, - VecOpV + VecOpV, } from "./api"; import { ARGS_V, defOp, NEW_OUT } from "./internal/codegen"; diff --git a/packages/vectors/src/divns.ts b/packages/vectors/src/divns.ts index 388d41a5c0..9897b932a0 100644 --- a/packages/vectors/src/divns.ts +++ b/packages/vectors/src/divns.ts @@ -1,10 +1,5 @@ import { VecOpSVN } from "./api"; -import { - ARGS_V, - ARGS_VN, - defOpS, - SARGS_V -} from "./internal/codegen"; +import { ARGS_V, ARGS_VN, defOpS, SARGS_V } from "./internal/codegen"; import { MATH_N } from "./internal/templates"; export const [divNS2, divNS3, divNS4] = defOpS( diff --git a/packages/vectors/src/fit.ts b/packages/vectors/src/fit.ts index e54d6da1ae..6c5b3eeb09 100644 --- a/packages/vectors/src/fit.ts +++ b/packages/vectors/src/fit.ts @@ -1,10 +1,5 @@ import { fit as _fit, fit01 as _fit01, fit11 as _fit11 } from "@thi.ng/math"; -import { - MultiVecOpVVV, - MultiVecOpVVVVV, - VecOpVVV, - VecOpVVVVV -} from "./api"; +import { MultiVecOpVVV, MultiVecOpVVVVV, VecOpVVV, VecOpVVVVV } from "./api"; import { ARGS_VVV, defHofOp } from "./internal/codegen"; import { FN3, FN5 } from "./internal/templates"; diff --git a/packages/vectors/src/gvec.ts b/packages/vectors/src/gvec.ts index 2a5c0bc67a..60c7c9a1a3 100644 --- a/packages/vectors/src/gvec.ts +++ b/packages/vectors/src/gvec.ts @@ -27,12 +27,12 @@ const PROPS = new Set([ SYM_O, SYM_S, SYM_STR, - Symbol.iterator + Symbol.iterator, ]); const keys = memoize1((size: number) => [ ...map(String, range(size)), - ...PROPS + ...PROPS, ]); /** @@ -131,7 +131,7 @@ export const gvec = ( case SYM_STR: return () => JSON.stringify([ - ...stridedValues(obj, size, offset, stride) + ...stridedValues(obj, size, offset, stride), ]); default: const j = parseInt(id); @@ -166,5 +166,5 @@ export const gvec = ( }, ownKeys() { return keys(size); - } + }, }); diff --git a/packages/vectors/src/hash.ts b/packages/vectors/src/hash.ts index d43f612794..fd00f1fd7c 100644 --- a/packages/vectors/src/hash.ts +++ b/packages/vectors/src/hash.ts @@ -43,7 +43,7 @@ import { ReadonlyVec } from "./api"; * // 0.0106 % * ``` * - * - {@link https://github.com/thi-ng/c-thing/blob/master/src/math/hashfn.c} + * - {@link https://github.com/thi-ng/c-thing/blob/develop/src/math/hashfn.c} * - {@link @thi.ng/morton# | @thi.ng/morton} for Z-curve ordered hashing * * @param v - vector diff --git a/packages/vectors/src/internal/accessors.ts b/packages/vectors/src/internal/accessors.ts index 1371c6f827..f733bc9753 100644 --- a/packages/vectors/src/internal/accessors.ts +++ b/packages/vectors/src/internal/accessors.ts @@ -9,37 +9,37 @@ export const declareIndex = ( const get = idx > 0 ? strided - ? function() { + ? function () { return this.buf[this.offset + idx * this.stride]; } - : function() { + : function () { return this.buf[this.offset + idx]; } - : function() { + : function () { return this.buf[this.offset]; }; const set = idx > 0 ? strided - ? function(n: number) { + ? function (n: number) { this.buf[this.offset + idx * this.stride] = n; } - : function(n: number) { + : function (n: number) { this.buf[this.offset + idx] = n; } - : function(n: number) { + : function (n: number) { this.buf[this.offset] = n; }; defNumeric && Object.defineProperty(proto, idx, { get, set, - enumerable: true + enumerable: true, }); Object.defineProperty(proto, id, { get, set, - enumerable: true + enumerable: true, }); }; diff --git a/packages/vectors/src/internal/codegen.ts b/packages/vectors/src/internal/codegen.ts index 9b53f1b02e..854595f87d 100644 --- a/packages/vectors/src/internal/codegen.ts +++ b/packages/vectors/src/internal/codegen.ts @@ -6,15 +6,9 @@ import { str, take, transduce, - zip + zip, } from "@thi.ng/transducers"; -import { - MultiVecOpVN, - MultiVecOpVV, - Template, - VecOpVN, - VecOpVV -} from "../api"; +import { MultiVecOpVN, MultiVecOpVV, Template, VecOpVN, VecOpVV } from "../api"; import { FN, MATH, @@ -22,7 +16,7 @@ import { SIGNED, SIGNED_N, UNSIGNED, - UNSIGNED_N + UNSIGNED_N, } from "./templates"; import { vop } from "./vop"; @@ -135,7 +129,7 @@ const assemble = ( ) ), post, - ret !== "" ? `return ${ret};` : "" + ret !== "" ? `return ${ret};` : "", ]; const assembleG = ( @@ -155,7 +149,7 @@ const assembleG = ( ), "}", post, - ret !== null ? `return ${ret};` : "" + ret !== null ? `return ${ret};` : "", ]; /** @internal */ diff --git a/packages/vectors/src/logic-and.ts b/packages/vectors/src/logic-and.ts index 0f83f13689..5d12f141e1 100644 --- a/packages/vectors/src/logic-and.ts +++ b/packages/vectors/src/logic-and.ts @@ -1,9 +1,4 @@ -import { - BVecOpVN, - BVecOpVV, - MultiBVecOpVN, - MultiBVecOpVV -} from "./api"; +import { BVecOpVN, BVecOpVV, MultiBVecOpVN, MultiBVecOpVV } from "./api"; import { ARGS_VN, defOp } from "./internal/codegen"; import { MATH, MATH_N } from "./internal/templates"; diff --git a/packages/vectors/src/logic-or.ts b/packages/vectors/src/logic-or.ts index ee307d9cf9..2a1e860ffc 100644 --- a/packages/vectors/src/logic-or.ts +++ b/packages/vectors/src/logic-or.ts @@ -1,9 +1,4 @@ -import { - BVecOpVN, - BVecOpVV, - MultiBVecOpVN, - MultiBVecOpVV -} from "./api"; +import { BVecOpVN, BVecOpVV, MultiBVecOpVN, MultiBVecOpVV } from "./api"; import { ARGS_VN, defOp } from "./internal/codegen"; import { MATH, MATH_N } from "./internal/templates"; diff --git a/packages/vectors/src/map.ts b/packages/vectors/src/map.ts index f77ac2c7b1..a1330d3d2f 100644 --- a/packages/vectors/src/map.ts +++ b/packages/vectors/src/map.ts @@ -1,11 +1,4 @@ -import { - IVector, - VecOpV, - VecOpVN, - VecOpVV, - VecOpVVN, - VecOpVVV -} from "./api"; +import { IVector, VecOpV, VecOpVN, VecOpVV, VecOpVVN, VecOpVVV } from "./api"; /** * Vec2/3/4 view based buffer transformation for {@link VecOpVV} type diff --git a/packages/vectors/src/mulns.ts b/packages/vectors/src/mulns.ts index dc9850ac3e..e568648f9f 100644 --- a/packages/vectors/src/mulns.ts +++ b/packages/vectors/src/mulns.ts @@ -1,10 +1,5 @@ import { VecOpSVN } from "./api"; -import { - ARGS_V, - ARGS_VN, - defOpS, - SARGS_V -} from "./internal/codegen"; +import { ARGS_V, ARGS_VN, defOpS, SARGS_V } from "./internal/codegen"; import { MATH_N } from "./internal/templates"; export const [mulNS2, mulNS3, mulNS4] = defOpS( diff --git a/packages/vectors/src/random.ts b/packages/vectors/src/random.ts index 60e776960a..16b5f9ac70 100644 --- a/packages/vectors/src/random.ts +++ b/packages/vectors/src/random.ts @@ -1,10 +1,5 @@ import { IRandom, SYSTEM } from "@thi.ng/random"; -import { - MultiVecOpOOO, - ReadonlyVec, - Vec, - VecOpOOO -} from "./api"; +import { MultiVecOpOOO, ReadonlyVec, Vec, VecOpOOO } from "./api"; import { defHofOp } from "./internal/codegen"; import { normalize } from "./normalize"; diff --git a/packages/vectors/src/randoms.ts b/packages/vectors/src/randoms.ts index b507e731fd..b234e74f6c 100644 --- a/packages/vectors/src/randoms.ts +++ b/packages/vectors/src/randoms.ts @@ -1,10 +1,5 @@ import { IRandom, SYSTEM } from "@thi.ng/random"; -import { - ReadonlyVec, - VecOpSOO, - VecOpSOOO, - VecOpSVO -} from "./api"; +import { ReadonlyVec, VecOpSOO, VecOpSOOO, VecOpSVO } from "./api"; import { defHofOpS, SARGS_VV } from "./internal/codegen"; import { normalizeS2, normalizeS3, normalizeS4 } from "./normalizes"; diff --git a/packages/vectors/src/setvv.ts b/packages/vectors/src/setvv.ts index e18e2faa9c..f0934714aa 100644 --- a/packages/vectors/src/setvv.ts +++ b/packages/vectors/src/setvv.ts @@ -1,9 +1,4 @@ -import { - ReadonlyVec, - Vec, - VecOpVV, - VecOpVVV -} from "./api"; +import { ReadonlyVec, Vec, VecOpVV, VecOpVVV } from "./api"; import { setC, setC4, setC6 } from "./setc"; /** diff --git a/packages/vectors/src/subns.ts b/packages/vectors/src/subns.ts index 4ad14fc3fc..8fce56ccea 100644 --- a/packages/vectors/src/subns.ts +++ b/packages/vectors/src/subns.ts @@ -1,10 +1,5 @@ import { VecOpSVN } from "./api"; -import { - ARGS_V, - ARGS_VN, - defOpS, - SARGS_V -} from "./internal/codegen"; +import { ARGS_V, ARGS_VN, defOpS, SARGS_V } from "./internal/codegen"; import { MATH_N } from "./internal/templates"; export const [subNS2, subNS3, subNS4] = defOpS( diff --git a/packages/vectors/src/vec2.ts b/packages/vectors/src/vec2.ts index e6a58237e6..e24dfd0340 100644 --- a/packages/vectors/src/vec2.ts +++ b/packages/vectors/src/vec2.ts @@ -9,7 +9,7 @@ import { Vec, X2, Y2, - ZERO2 + ZERO2, } from "./api"; import { intoStridedBuffer, mapStridedBuffer } from "./buffer"; import { eqDelta2 } from "./eqdelta"; diff --git a/packages/vectors/src/vec3.ts b/packages/vectors/src/vec3.ts index d6dfe7c653..9a5b03821b 100644 --- a/packages/vectors/src/vec3.ts +++ b/packages/vectors/src/vec3.ts @@ -10,7 +10,7 @@ import { X3, Y3, Z3, - ZERO3 + ZERO3, } from "./api"; import { intoStridedBuffer, mapStridedBuffer } from "./buffer"; import { eqDelta3 } from "./eqdelta"; diff --git a/packages/vectors/src/vec4.ts b/packages/vectors/src/vec4.ts index be6d33c372..5ea6807b83 100644 --- a/packages/vectors/src/vec4.ts +++ b/packages/vectors/src/vec4.ts @@ -10,7 +10,7 @@ import { X4, Y4, Z4, - ZERO4 + ZERO4, } from "./api"; import { intoStridedBuffer, mapStridedBuffer } from "./buffer"; import { eqDelta4 } from "./eqdelta"; diff --git a/packages/webgl-msdf/src/convert.ts b/packages/webgl-msdf/src/convert.ts index 42c5af9fe3..98e306daf6 100644 --- a/packages/webgl-msdf/src/convert.ts +++ b/packages/webgl-msdf/src/convert.ts @@ -20,8 +20,8 @@ export const convertGlyphs = (raw: RawGlyphs): MSDFFont => ({ pos: [ch.x, ch.y], offset: [ch.xoffset, ch.yoffset], size: [ch.width, ch.height], - step: ch.xadvance + step: ch.xadvance, }; return acc; - }, {}) + }, {}), }); diff --git a/packages/webgl-msdf/src/shader.ts b/packages/webgl-msdf/src/shader.ts index 22b22b21f2..f9d7c60855 100644 --- a/packages/webgl-msdf/src/shader.ts +++ b/packages/webgl-msdf/src/shader.ts @@ -27,7 +27,7 @@ import { texture, vec2, Vec2Sym, - vec4 + vec4, } from "@thi.ng/shader-ast"; import { ONE4, ZERO4 } from "@thi.ng/vectors"; import { BLEND_NORMAL, GLVec4, ShaderSpec } from "@thi.ng/webgl"; @@ -37,7 +37,7 @@ export interface MSDFShaderOpts { } export const median3 = defn("float", "median3", ["vec3"], (v) => [ - ret(max(min($x(v), $y(v)), min(max($x(v), $y(v)), $z(v)))) + ret(max(min($x(v), $y(v)), min(max($x(v), $y(v)), $z(v)))), ]); export const msdfSample = defn( @@ -50,7 +50,7 @@ export const msdfSample = defn( return [ (sd = sym(sub(median3($xyz(texture(tex, uv))), FLOAT05))), (w = sym(clamp(add(div(sd, fwidth(sd)), FLOAT05), FLOAT0, FLOAT1))), - ret(vec2(sd, w)) + ret(vec2(sd, w)), ]; } ); @@ -63,8 +63,8 @@ export const msdfShader = (opts: Partial = {}): ShaderSpec => ({ assign( gl.gl_Position, mul(mul(unis.proj, unis.modelview), vec4(ins.position, 1)) - ) - ]) + ), + ]), ], fs: (_, unis, ins, outs) => [ defMain(() => { @@ -75,21 +75,21 @@ export const msdfShader = (opts: Partial = {}): ShaderSpec => ({ outs.fragColor, mix(unis.bg, opts.color ? ins.vcolor : unis.fg, $y(w)) ), - ifThen(lt($x(w), unis.thresh), [discard]) + ifThen(lt($x(w), unis.thresh), [discard]), ]; - }) + }), ], ext: { - OES_standard_derivatives: true + OES_standard_derivatives: true, }, attribs: { position: "vec3", uv: "vec2", - ...(opts.color ? { color: "vec4" } : null) + ...(opts.color ? { color: "vec4" } : null), }, varying: { vuv: "vec2", - ...(opts.color ? { vcolor: "vec4" } : null) + ...(opts.color ? { vcolor: "vec4" } : null), }, uniforms: { modelview: "mat4", @@ -97,10 +97,10 @@ export const msdfShader = (opts: Partial = {}): ShaderSpec => ({ tex: "sampler2D", thresh: ["float", 1e-3], bg: ["vec4", ZERO4], - ...(!opts.color ? { fg: ["vec4", ONE4] } : null) + ...(!opts.color ? { fg: ["vec4", ONE4] } : null), }, state: { blend: true, - blendFn: BLEND_NORMAL - } + blendFn: BLEND_NORMAL, + }, }); diff --git a/packages/webgl-msdf/src/text.ts b/packages/webgl-msdf/src/text.ts index ceca79ff7c..525f3b26c2 100644 --- a/packages/webgl-msdf/src/text.ts +++ b/packages/webgl-msdf/src/text.ts @@ -1,19 +1,7 @@ import { GLType } from "@thi.ng/api"; -import { - add, - map, - mapcat, - range, - transduce -} from "@thi.ng/transducers"; +import { add, map, mapcat, range, transduce } from "@thi.ng/transducers"; import { AttribPool } from "@thi.ng/vector-pools"; -import { - add2, - div2, - madd2, - mul2, - ONE4 -} from "@thi.ng/vectors"; +import { add2, div2, madd2, mul2, ONE4 } from "@thi.ng/vectors"; import type { GLVec4, ModelSpec } from "@thi.ng/webgl"; import type { MSDFFont, TextAlign, TextOpts } from "./api"; @@ -29,7 +17,7 @@ export const text = ( dirX: 1, dirY: 1, color: ONE4, - ...opts + ...opts, }; const dir: number[] = [opts.dirX!, opts.dirY!]; const lineHeight = glyphs.lineHeight * opts.leading! * opts.dirY!; @@ -44,15 +32,15 @@ export const text = ( type: GLType.F32, default: opts.color, size: 4, - byteOffset: 20 - } + byteOffset: 20, + }, } - : null) + : null), }, num: len * 4, mem: { - size: len * 4 * (opts.useColor ? 36 : 20) + 8 + /* FIXME */ 40 - } + size: len * 4 * (opts.useColor ? 36 : 20) + 8 + /* FIXME */ 40, + }, }); const lines = txt.split("\n"); for (let i = 0, yy = 0, id = 0; i < lines.length; i++) { @@ -68,7 +56,7 @@ export const text = ( [x, y, 0], [x + sx, y, 0], [x + sx, y + sy, 0], - [x, y + sy, 0] + [x, y + sy, 0], ], id * 4 ); @@ -78,7 +66,7 @@ export const text = ( div2([], g.pos, glyphs.size), div2([], [g.pos[0] + g.size[0], g.pos[1]], glyphs.size), div2([], add2([], g.pos, g.size), glyphs.size), - div2([], [g.pos[0], g.pos[1] + g.size[1]], glyphs.size) + div2([], [g.pos[0], g.pos[1] + g.size[1]], glyphs.size), ], id * 4 ); @@ -93,12 +81,12 @@ export const text = ( ...mapcat( (i) => [i, i + 1, i + 2, i, i + 2, i + 3], range(0, len * 4, 4) - ) - ]) + ), + ]), }, uniforms: {}, num: len * 6, - mode: 4 // TRIANGLES + mode: 4, // TRIANGLES }; }; diff --git a/packages/webgl-shadertoy/src/api.ts b/packages/webgl-shadertoy/src/api.ts index fbb3b2e0ee..5a494af62e 100644 --- a/packages/webgl-shadertoy/src/api.ts +++ b/packages/webgl-shadertoy/src/api.ts @@ -1,10 +1,5 @@ import type { Fn2 } from "@thi.ng/api"; -import type { - FloatSym, - IntSym, - ScopeBody, - Vec2Sym -} from "@thi.ng/shader-ast"; +import type { FloatSym, IntSym, ScopeBody, Vec2Sym } from "@thi.ng/shader-ast"; import type { GLSLTarget } from "@thi.ng/shader-ast-glsl"; import type { ITexture, ModelSpec, UniformDecl } from "@thi.ng/webgl"; diff --git a/packages/webgl/src/api/ext.ts b/packages/webgl/src/api/ext.ts index 5735043af0..4b8c08bcca 100644 --- a/packages/webgl/src/api/ext.ts +++ b/packages/webgl/src/api/ext.ts @@ -3,12 +3,12 @@ import type { IObjectOf } from "@thi.ng/api"; export const GL_EXT_INFO: IObjectOf = { WEBGL_draw_buffers: { gl: true, - alias: "GL_EXT_draw_buffers" + alias: "GL_EXT_draw_buffers", }, OES_standard_derivatives: { gl: true, - alias: "GL_OES_standard_derivatives" - } + alias: "GL_OES_standard_derivatives", + }, }; export interface ExtensionInfo { diff --git a/packages/webgl/src/api/multipass.ts b/packages/webgl/src/api/multipass.ts index b659838615..8f3429e116 100644 --- a/packages/webgl/src/api/multipass.ts +++ b/packages/webgl/src/api/multipass.ts @@ -8,7 +8,7 @@ import type { ShaderState, ShaderVaryingSpecs, UniformDecl, - UniformValues + UniformValues, } from "./shader"; import type { ITexture, TextureOpts } from "./texture"; diff --git a/packages/webgl/src/api/shader.ts b/packages/webgl/src/api/shader.ts index 85438917d4..d71ef87204 100644 --- a/packages/webgl/src/api/shader.ts +++ b/packages/webgl/src/api/shader.ts @@ -8,7 +8,7 @@ import type { IDeref, IObjectOf, IRelease, - NumericArray + NumericArray, } from "@thi.ng/api"; import type { Func, Sym } from "@thi.ng/shader-ast"; import type { GLSLTarget } from "@thi.ng/shader-ast-glsl"; @@ -29,7 +29,7 @@ import type { GLVec, GLVec2, GLVec3, - GLVec4 + GLVec4, } from "./glsl"; import type { ModelAttributeSpecs, ModelSpec } from "./model"; import type { StencilFnParams, StencilOpParams } from "./stencil"; diff --git a/packages/webgl/src/material.ts b/packages/webgl/src/material.ts index cd9184959a..69512c1f66 100644 --- a/packages/webgl/src/material.ts +++ b/packages/webgl/src/material.ts @@ -5,13 +5,13 @@ import type { ShaderUniformSpecs } from "./api/shader"; export const DEFAULT_MATERIAL: Material = { ambientCol: [0.1, 0.1, 0.1], diffuseCol: [0.8, 0.8, 0.8], - specularCol: [1, 1, 1] + specularCol: [1, 1, 1], }; const TYPES: Record = { ambientCol: "vec3", diffuseCol: "vec3", - specularCol: "vec3" + specularCol: "vec3", }; export const defMaterial = ( diff --git a/packages/webgl/src/matrices.ts b/packages/webgl/src/matrices.ts index b106b2f766..1ae327e46b 100644 --- a/packages/webgl/src/matrices.ts +++ b/packages/webgl/src/matrices.ts @@ -1,10 +1,5 @@ import { isNumber } from "@thi.ng/checks"; -import { - IDENT44, - mulM44, - normal44, - ortho -} from "@thi.ng/matrices"; +import { IDENT44, mulM44, normal44, ortho } from "@thi.ng/matrices"; import type { IObjectOf } from "@thi.ng/api"; import type { ReadonlyVec } from "@thi.ng/vectors"; import type { GLMat4 } from "./api/glsl"; diff --git a/packages/webgl/src/shaders/lambert.ts b/packages/webgl/src/shaders/lambert.ts index 0e378b8c96..a51692aa83 100644 --- a/packages/webgl/src/shaders/lambert.ts +++ b/packages/webgl/src/shaders/lambert.ts @@ -5,14 +5,14 @@ import { mul, normalize, texture, - vec4 + vec4, } from "@thi.ng/shader-ast"; import { diffuseLighting, halfLambert, lambert, surfaceNormal, - transformMVP + transformMVP, } from "@thi.ng/shader-ast-stdlib"; import { defMaterial } from "../material"; import { autoNormalMatrix2 } from "../matrices"; @@ -39,8 +39,8 @@ export const LAMBERT = (opts: Partial = {}): ShaderSpec => ({ unis.view, unis.proj ) - ) - ]) + ), + ]), ], fs: (_, unis, ins, outs) => [ defMain(() => [ @@ -63,8 +63,8 @@ export const LAMBERT = (opts: Partial = {}): ShaderSpec => ({ ), 1 ) - ) - ]) + ), + ]), ], // pre: ALIAS_TEXTURE, attribs: { @@ -75,12 +75,12 @@ export const LAMBERT = (opts: Partial = {}): ShaderSpec => ({ ? { [opts.color]: "vec3" } : null), ...(opts.instancePos ? { [opts.instancePos]: "vec3" } : null), - ...(opts.instanceColor ? { [opts.instanceColor]: "vec3" } : null) + ...(opts.instanceColor ? { [opts.instanceColor]: "vec3" } : null), }, varying: { vcolor: "vec3", vnormal: "vec3", - ...(opts.uv ? { vuv: "vec2" } : null) + ...(opts.uv ? { vuv: "vec2" } : null), }, uniforms: { model: "mat4", @@ -93,11 +93,11 @@ export const LAMBERT = (opts: Partial = {}): ShaderSpec => ({ { diffuseCol: [1, 1, 1], ...opts.material }, { specularCol: false } ), - ...(opts.uv ? { tex: "sampler2D" } : null) + ...(opts.uv ? { tex: "sampler2D" } : null), }, state: { depth: true, cull: true, - ...opts.state - } + ...opts.state, + }, }); diff --git a/packages/webgl/src/shaders/phong.ts b/packages/webgl/src/shaders/phong.ts index a199d11db1..279d293c8b 100644 --- a/packages/webgl/src/shaders/phong.ts +++ b/packages/webgl/src/shaders/phong.ts @@ -14,7 +14,7 @@ import { Sym, sym, ternary, - vec4 + vec4, } from "@thi.ng/shader-ast"; import { diffuseLighting, surfaceNormal } from "@thi.ng/shader-ast-stdlib"; import { defMaterial } from "../material"; @@ -39,9 +39,12 @@ export const PHONG = (opts: Partial = {}): ShaderSpec => ({ assign(outs.vlight, sub(unis.lightPos, $(worldPos, "xyz"))), assign(outs.veye, sub(unis.eyePos, $(worldPos, "xyz"))), assign(outs.vcolor, colorAttrib(opts, ins, unis.diffuseCol)), - assign(gl.gl_Position, mul(mul(unis.proj, unis.view), worldPos)) + assign( + gl.gl_Position, + mul(mul(unis.proj, unis.view), worldPos) + ), ]; - }) + }), ], fs: (_, unis, ins, outs) => [ defMain(() => { @@ -80,9 +83,9 @@ export const PHONG = (opts: Partial = {}): ShaderSpec => ({ ), 1 ) - ) + ), ]; - }) + }), ], attribs: { position: "vec3", @@ -91,13 +94,13 @@ export const PHONG = (opts: Partial = {}): ShaderSpec => ({ ? { [opts.color]: "vec3" } : null), ...(opts.instancePos ? { [opts.instancePos]: "vec3" } : null), - ...(opts.instanceColor ? { [opts.instanceColor]: "vec3" } : null) + ...(opts.instanceColor ? { [opts.instanceColor]: "vec3" } : null), }, varying: { vnormal: "vec3", veye: "vec3", vlight: "vec3", - vcolor: "vec3" + vcolor: "vec3", }, uniforms: { model: "mat4", @@ -108,11 +111,11 @@ export const PHONG = (opts: Partial = {}): ShaderSpec => ({ eyePos: "vec3", lightPos: ["vec3", [0, 0, 2]], lightCol: ["vec3", [1, 1, 1]], - ...defMaterial(opts.material) + ...defMaterial(opts.material), }, state: { depth: true, cull: true, - ...opts.state - } + ...opts.state, + }, }); diff --git a/packages/webgl/src/shaders/pipeline.ts b/packages/webgl/src/shaders/pipeline.ts index 80e6567357..843ac6d11a 100644 --- a/packages/webgl/src/shaders/pipeline.ts +++ b/packages/webgl/src/shaders/pipeline.ts @@ -5,27 +5,27 @@ import { FLOAT0, FLOAT1, texture, - vec4 + vec4, } from "@thi.ng/shader-ast"; import type { ShaderFn, ShaderSpec } from "../api/shader"; export const PASSTHROUGH_VS: ShaderFn = (gl, _, ins) => [ - defMain(() => [assign(gl.gl_Position, vec4(ins.position, FLOAT0, FLOAT1))]) + defMain(() => [assign(gl.gl_Position, vec4(ins.position, FLOAT0, FLOAT1))]), ]; export const PASSTHROUGH_VS_UV: ShaderFn = (gl, _, ins, outs) => [ defMain(() => [ assign(outs.v_uv, ins.uv), - assign(gl.gl_Position, vec4(ins.position, FLOAT0, FLOAT1)) - ]) + assign(gl.gl_Position, vec4(ins.position, FLOAT0, FLOAT1)), + ]), ]; export const PASSTHROUGH_FS: ShaderFn = (gl, _, __, outs) => [ - defMain(() => [assign(outs.fragColor, $xy(gl.gl_FragCoord))]) + defMain(() => [assign(outs.fragColor, $xy(gl.gl_FragCoord))]), ]; export const PASSTHROUGH_FS_UV: ShaderFn = (_, unis, ins, outs) => [ - defMain(() => [assign(outs.fragColor, texture(unis.tex, ins.v_uv))]) + defMain(() => [assign(outs.fragColor, texture(unis.tex, ins.v_uv))]), ]; export const FX_SHADER_SPEC: ShaderSpec = { @@ -35,7 +35,7 @@ export const FX_SHADER_SPEC: ShaderSpec = { varying: {}, uniforms: {}, state: { depth: false }, - ext: {} + ext: {}, }; export const FX_SHADER_SPEC_UV: ShaderSpec = { @@ -45,5 +45,5 @@ export const FX_SHADER_SPEC_UV: ShaderSpec = { varying: { v_uv: "vec2" }, uniforms: { tex: "sampler2D" }, state: { depth: false }, - ext: {} + ext: {}, }; diff --git a/packages/webgl/src/syntax.ts b/packages/webgl/src/syntax.ts index 5db8c3240c..5423694b45 100644 --- a/packages/webgl/src/syntax.ts +++ b/packages/webgl/src/syntax.ts @@ -7,14 +7,14 @@ export const PREFIXES: GLSLDeclPrefixes = { a: "a_", v: "v_", u: "u_", - o: "o_" + o: "o_", }; export const NO_PREFIXES: GLSLDeclPrefixes = { a: "", v: "", u: "", - o: "" + o: "", }; /** @@ -30,11 +30,13 @@ export const SYNTAX: Record = { `attribute ${isArray(type) ? type[0] : type} ${pre.a}${id};`, varying: { vs: (id, type, pre) => arrayDecl("varying", type, pre.v + id), - fs: (id, type, pre) => arrayDecl("varying", type, pre.v + id) + fs: (id, type, pre) => arrayDecl("varying", type, pre.v + id), }, uniform: (id, u, pre) => arrayDecl("uniform", u, pre.u + id), output: (id, type, pre) => - isArray(type) ? `#define ${pre.o}${id} gl_FragData[${type[1]}]` : "" + isArray(type) + ? `#define ${pre.o}${id} gl_FragData[${type[1]}]` + : "", }, /** * WebGL 2 (GLSL ES 3) @@ -47,14 +49,14 @@ export const SYNTAX: Record = { : `in ${type} ${pre.a}${id};`, varying: { vs: (id, type, pre) => arrayDecl("out", type, pre.v + id), - fs: (id, type, pre) => arrayDecl("in", type, pre.v + id) + fs: (id, type, pre) => arrayDecl("in", type, pre.v + id), }, uniform: (id, u, pre) => arrayDecl("uniform", u, pre.u + id), output: (id, type, pre) => isArray(type) ? `layout(location=${type[1]}) out ${type[0]} ${pre.o}${id};` - : `out ${type} ${pre.o}${id};` - } + : `out ${type} ${pre.o}${id};`, + }, }; const arrayDecl = ( diff --git a/packages/webgl/src/textures/checkerboard.ts b/packages/webgl/src/textures/checkerboard.ts index 7eeba13e3c..76a0749302 100644 --- a/packages/webgl/src/textures/checkerboard.ts +++ b/packages/webgl/src/textures/checkerboard.ts @@ -14,7 +14,7 @@ export const checkerboard = (opts: Partial) => { col1: 0xffffffff, col2: 0xff000000, cornerCols: [0xffff0000, 0xff00ff00, 0xff0000ff, 0xffffff00], - ...opts + ...opts, }; const size = opts.size!; const col1 = ARGB8888.toABGR(opts.col1!); diff --git a/packages/webgl/src/textures/stripes.ts b/packages/webgl/src/textures/stripes.ts index 2dfaeb9756..a28dd32874 100644 --- a/packages/webgl/src/textures/stripes.ts +++ b/packages/webgl/src/textures/stripes.ts @@ -12,7 +12,7 @@ export const stripes = (opts: Partial) => { size: 16, col1: 0xffffffff, col2: 0xff000000, - ...opts + ...opts, }; const size = opts.size!; const col1 = ARGB8888.toABGR(opts.col1!); diff --git a/packages/webgl/src/uniforms.ts b/packages/webgl/src/uniforms.ts index 854f7f1b14..24a37f34c6 100644 --- a/packages/webgl/src/uniforms.ts +++ b/packages/webgl/src/uniforms.ts @@ -1,11 +1,6 @@ import { equivArrayLike } from "@thi.ng/equiv"; import { IDENT22, IDENT33, IDENT44 } from "@thi.ng/matrices"; -import { - ReadonlyVec, - ZERO2, - ZERO3, - ZERO4 -} from "@thi.ng/vectors"; +import { ReadonlyVec, ZERO2, ZERO3, ZERO4 } from "@thi.ng/vectors"; import type { Fn, Fn3, IObjectOf } from "@thi.ng/api"; import type { GLVec } from "./api/glsl"; import type { UniformValue } from "./api/shader"; @@ -75,14 +70,12 @@ const uniformM = (fn: SetterM, sysDefault?: ReadonlyVec) => ( const Z1 = [0]; -export const UNIFORM_SETTERS: IObjectOf< - Fn3< - WebGLRenderingContext, - WebGLUniformLocation, - number | ReadonlyVec | undefined, - Fn - > -> = { +export const UNIFORM_SETTERS: IObjectOf +>> = { bool: uniformS("i"), float: uniformS("f"), int: uniformS("i"), @@ -124,5 +117,5 @@ export const UNIFORM_SETTERS: IObjectOf< "sampler2DShadow[]": uniformV("1iv", Z1), "sampler3D[]": uniformV("1iv", Z1), "samplerCube[]": uniformV("1iv", Z1), - "samplerCubeShadow[]": uniformV("1iv", Z1) + "samplerCubeShadow[]": uniformV("1iv", Z1), }; diff --git a/packages/webgl/src/utils.ts b/packages/webgl/src/utils.ts index c16b9e3e54..6295643b6e 100644 --- a/packages/webgl/src/utils.ts +++ b/packages/webgl/src/utils.ts @@ -1,9 +1,4 @@ -import { - add, - mul, - Sym, - Term -} from "@thi.ng/shader-ast"; +import { add, mul, Sym, Term } from "@thi.ng/shader-ast"; import type { IObjectOf } from "@thi.ng/api"; import type { ShaderOpts } from "./api/shader"; diff --git a/packages/zipper/src/zipper.ts b/packages/zipper/src/zipper.ts index 73c86702a4..dedddcf59e 100644 --- a/packages/zipper/src/zipper.ts +++ b/packages/zipper/src/zipper.ts @@ -14,7 +14,7 @@ const newPath = ( r, path, nodes, - changed + changed, }); const changedPath = (path?: Path) => @@ -44,9 +44,9 @@ export class Location { } get depth() { - let d =0; + let d = 0; let path = this._path; - while(path) { + while (path) { d++; path = path.path; } @@ -318,7 +318,7 @@ export const arrayZipper = (root: T[]) => { branch: isArray, children: (x) => x, - factory: (_, xs) => xs + factory: (_, xs) => xs, }, root ); diff --git a/packages/zipper/test/custom.ts b/packages/zipper/test/custom.ts index 4e4ae1e0ca..6c5de5663a 100644 --- a/packages/zipper/test/custom.ts +++ b/packages/zipper/test/custom.ts @@ -23,8 +23,8 @@ describe("custom", () => { type: "branch", children: [ { type: "leaf", value: 1 }, - { type: "leaf", value: 2 } - ] + { type: "leaf", value: 2 }, + ], }, { type: "leaf", value: 3 }, { @@ -33,11 +33,11 @@ describe("custom", () => { { type: "leaf", value: 4 }, { type: "branch", - children: [{ type: "leaf", value: 5 }] - } - ] - } - ] + children: [{ type: "leaf", value: 5 }], + }, + ], + }, + ], }; a = zipper( { @@ -45,8 +45,8 @@ describe("custom", () => { children: (x) => (x).children, factory: (src, children) => ({ type: (src).type, - children - }) + children, + }), }, tree ); @@ -99,17 +99,17 @@ describe("custom", () => { type: "branch", children: [ { type: "leaf", value: 1 }, - { type: "leaf", value: 10 } - ] + { type: "leaf", value: 10 }, + ], }, - ...tree.children.slice(1) - ] + ...tree.children.slice(1), + ], } ); assert.deepEqual( a.next!.rightmost.down!.right!.down!.replace({ type: "leaf", - value: 10 + value: 10, }).up!.root, { type: "root", @@ -121,11 +121,11 @@ describe("custom", () => { { type: "leaf", value: 4 }, { type: "branch", - children: [{ type: "leaf", value: 10 }] - } - ] - } - ] + children: [{ type: "leaf", value: 10 }], + }, + ], + }, + ], } ); }); From 6bf3493701f906a292a7821634ed010e00855156 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 8 Jun 2020 15:09:58 +0100 Subject: [PATCH 03/29] style: re-apply prettier to all example sources --- examples/adaptive-threshold/src/events.ts | 7 +- examples/adaptive-threshold/src/index.ts | 28 +- examples/adaptive-threshold/src/threshold.ts | 4 +- examples/async-effect/src/index.ts | 20 +- examples/bitmap-font/src/font.ts | 2 +- examples/bitmap-font/src/index.ts | 25 +- examples/canvas-dial/src/dial.ts | 12 +- examples/canvas-dial/src/index.ts | 40 +- examples/cellular-automata/src/index.ts | 23 +- examples/commit-heatmap/src/index.ts | 37 +- examples/commit-table-ssr/src/client/index.ts | 28 +- .../src/common/components/commit-link.ts | 2 +- .../src/common/components/header.ts | 2 +- .../src/common/components/link.ts | 2 +- .../src/common/components/repo-table.ts | 8 +- .../src/common/components/table.ts | 14 +- .../commit-table-ssr/src/common/config.ts | 32 +- .../src/server/build-table.ts | 5 +- examples/commit-table-ssr/src/server/git.ts | 4 +- examples/commit-table-ssr/src/server/html.ts | 4 +- examples/commit-table-ssr/src/server/index.ts | 2 +- examples/crypto-chart/src/index.ts | 105 +- examples/fft-synth/src/automode.ts | 2 +- examples/fft-synth/src/config.ts | 11 +- examples/fft-synth/src/gui.ts | 10 +- examples/fft-synth/src/index.ts | 26 +- examples/fft-synth/src/state.ts | 2 +- examples/geom-convex-hull/src/index.ts | 10 +- examples/geom-knn/src/index.ts | 12 +- examples/geom-tessel/src/index.ts | 16 +- examples/geom-voronoi-mst/src/index.ts | 21 +- examples/gesture-analysis/src/index.ts | 40 +- examples/grid-iterators/src/index.ts | 4 +- examples/hdom-benchmark/src/index.ts | 20 +- examples/hdom-benchmark2/src/index.ts | 65 +- examples/hdom-canvas-clock/src/index.ts | 32 +- examples/hdom-canvas-draw/src/index.ts | 37 +- examples/hdom-canvas-particles/src/index.ts | 24 +- examples/hdom-canvas-shapes/src/index.ts | 113 +- examples/hdom-dropdown-fuzzy/src/config.ts | 30 +- examples/hdom-dropdown-fuzzy/src/fuzzy.ts | 23 +- examples/hdom-dropdown/src/config.ts | 30 +- examples/hdom-dropdown/src/index.ts | 18 +- examples/hdom-elm/src/elm.ts | 2 +- examples/hdom-elm/src/index.ts | 7 +- examples/hdom-inner-html/src/index.ts | 4 +- examples/hdom-local-render/src/index.ts | 6 +- examples/hdom-skip-nested/src/index.ts | 12 +- examples/hdom-skip/src/index.ts | 10 +- examples/hdom-theme-adr-0003/src/index.ts | 4 +- examples/hdom-toggle/src/index.ts | 22 +- examples/hdom-vscroller/src/commits.json | 7104 ++++++++++++++++- examples/hdom-vscroller/src/index.ts | 18 +- examples/hdom-vscroller/src/packages.json | 246 +- examples/hdom-vscroller/src/vscroller.ts | 24 +- examples/hmr-basics/src/app.ts | 12 +- examples/hmr-basics/src/index.ts | 4 +- examples/hmr-basics/src/state.ts | 2 +- examples/hydrate-basics/src/index.ts | 26 +- examples/imgui/src/index.ts | 18 +- examples/interceptor-basics/src/index.ts | 14 +- examples/iso-plasma/src/index.ts | 4 +- examples/json-components/src/index.ts | 34 +- examples/login-form/src/index.ts | 5 +- examples/mandelbrot/src/gradient.ts | 14 +- examples/mandelbrot/src/index.ts | 50 +- examples/markdown/src/index.ts | 24 +- examples/multitouch/src/index.ts | 24 +- examples/package-stats/src/dep-chart.ts | 19 +- examples/package-stats/src/viz.ts | 25 +- examples/pixel-basics/src/index.ts | 4 +- examples/pointfree-svg/src/index.ts | 4 +- examples/poly-spline/src/index.ts | 49 +- examples/porter-duff/src/index.ts | 11 +- examples/ramp-synth/src/api.ts | 6 +- examples/ramp-synth/src/components.ts | 12 +- examples/ramp-synth/src/index.ts | 33 +- examples/rotating-voronoi/src/controllers.ts | 12 +- examples/rotating-voronoi/src/index.ts | 38 +- examples/rotating-voronoi/src/stream-state.ts | 18 +- .../router-basics/src/components/all-users.ts | 9 +- .../router-basics/src/components/contact.ts | 6 +- .../src/components/debug-container.ts | 4 +- .../src/components/event-link.ts | 5 +- examples/router-basics/src/components/home.ts | 16 +- examples/router-basics/src/components/nav.ts | 5 +- .../src/components/route-link.ts | 4 +- .../src/components/user-profile.ts | 2 +- examples/router-basics/src/config.ts | 84 +- examples/router-basics/src/effects.ts | 2 +- examples/router-basics/src/routes.ts | 16 +- examples/rstream-dataflow/src/circle.ts | 6 +- examples/rstream-dataflow/src/index.ts | 41 +- examples/rstream-event-loop/src/events.ts | 16 +- examples/rstream-event-loop/src/index.ts | 6 +- examples/rstream-grid/src/app.ts | 7 +- .../src/components/button-group.ts | 2 +- .../rstream-grid/src/components/button.ts | 2 +- .../rstream-grid/src/components/event-link.ts | 5 +- examples/rstream-grid/src/components/link.ts | 2 +- .../rstream-grid/src/components/sidebar.ts | 8 +- .../rstream-grid/src/components/slider.ts | 16 +- examples/rstream-grid/src/config.ts | 2 +- examples/rstream-grid/src/dataflow.ts | 29 +- examples/rstream-grid/src/effects.ts | 2 +- examples/rstream-grid/src/events.ts | 2 +- examples/rstream-grid/src/sliders.ts | 10 +- examples/rstream-hdom/src/index.ts | 37 +- examples/rstream-spreadsheet/src/dsl.ts | 7 +- examples/rstream-spreadsheet/src/index.ts | 24 +- examples/scenegraph-image/src/index.ts | 14 +- examples/scenegraph/src/index.ts | 30 +- examples/shader-ast-canvas2d/src/index.ts | 10 +- examples/shader-ast-evo/src/index.ts | 31 +- examples/shader-ast-noise/src/index.ts | 27 +- examples/shader-ast-raymarch/src/index.ts | 34 +- examples/shader-ast-sdf2d/src/index.ts | 29 +- examples/shader-ast-tunnel/src/index.ts | 26 +- examples/shader-ast-workers/src/index.ts | 4 +- examples/shader-ast-workers/src/worker.ts | 18 +- examples/svg-barchart/src/index.ts | 24 +- examples/svg-particles/src/index.ts | 6 +- .../src/components/button-group.ts | 2 +- .../svg-waveform/src/components/event-link.ts | 5 +- examples/svg-waveform/src/components/main.ts | 5 +- .../svg-waveform/src/components/sidebar.ts | 11 +- .../svg-waveform/src/components/slider.ts | 16 +- .../svg-waveform/src/components/waveform.ts | 26 +- examples/svg-waveform/src/config.ts | 18 +- examples/svg-waveform/src/effects.ts | 2 +- examples/svg-waveform/src/events.ts | 2 +- examples/svg-waveform/src/sliders.ts | 10 +- examples/talk-slides/src/components.ts | 48 +- examples/talk-slides/src/config.ts | 22 +- examples/talk-slides/src/index.ts | 14 +- examples/talk-slides/src/slides.ts | 190 +- examples/text-canvas/src/index.ts | 23 +- examples/todo-list/src/index.ts | 7 +- examples/transducers-hdom/src/index.ts | 18 +- .../src/components/button-group.ts | 2 +- .../triple-query/src/components/event-link.ts | 5 +- examples/triple-query/src/components/main.ts | 4 +- .../src/components/query-results.ts | 4 +- examples/triple-query/src/components/table.ts | 4 +- .../src/components/triple-table.ts | 12 +- examples/triple-query/src/config.ts | 44 +- examples/triple-query/src/effects.ts | 2 +- examples/triple-query/src/events.ts | 2 +- examples/webgl-shadertoy/src/index.ts | 20 +- examples/webgl-ssao/src/params.ts | 14 +- examples/webgl-ssao/src/shaders.ts | 30 +- examples/wolfram/src/index.ts | 40 +- examples/xml-converter/src/convert.ts | 23 +- examples/xml-converter/src/format.ts | 12 +- examples/xml-converter/src/index.ts | 18 +- examples/xml-converter/src/ui.ts | 62 +- 156 files changed, 8704 insertions(+), 1516 deletions(-) diff --git a/examples/adaptive-threshold/src/events.ts b/examples/adaptive-threshold/src/events.ts index 3e76a00cf3..cfd325b0fa 100644 --- a/examples/adaptive-threshold/src/events.ts +++ b/examples/adaptive-threshold/src/events.ts @@ -1,11 +1,6 @@ import { setIn } from "@thi.ng/paths"; import { GRAY8, PackedBuffer } from "@thi.ng/pixel"; -import { - ISubscriber, - pubsub, - stream, - trace -} from "@thi.ng/rstream"; +import { ISubscriber, pubsub, stream, trace } from "@thi.ng/rstream"; import { state } from "./state"; import { adaptiveThreshold } from "./threshold"; import { diff --git a/examples/adaptive-threshold/src/index.ts b/examples/adaptive-threshold/src/index.ts index 0829dc7ec0..bc34d84ba9 100644 --- a/examples/adaptive-threshold/src/index.ts +++ b/examples/adaptive-threshold/src/index.ts @@ -8,7 +8,7 @@ import { Event, SET_IMAGE, SET_KERNEL_OFFSET, - SET_KERNEL_WIDTH + SET_KERNEL_WIDTH, } from "./api"; import { dispatch } from "./events"; import { state } from "./state"; @@ -29,10 +29,10 @@ const canvas = { "canvas.mv3.pa1.ba", { width: pix.width, - height: pix.height - } + height: pix.height, + }, ]; - } + }, }; /** @@ -46,9 +46,9 @@ const fileChooser = [ { type: "file", accept: "image/png, image/jpeg, image/webp", - onchange: (e: any) => dispatch([SET_IMAGE, e.target.files[0]]) - } - ] + onchange: (e: any) => dispatch([SET_IMAGE, e.target.files[0]]), + }, + ], ]; /** @@ -69,9 +69,9 @@ const param = (eventID: string, label: string, value: number, opts: any) => [ value, onchange: (e: any) => dispatch([eventID, parseInt(e.target.value)]), - ...opts - } - ] + ...opts, + }, + ], ]; /** @@ -85,14 +85,14 @@ const imageEditor = ({ destImg, threshold }: AppState) => [ param(SET_KERNEL_WIDTH, "Width", threshold.windowSize, { min: 3, max: 29, - step: 2 + step: 2, }), param(SET_KERNEL_OFFSET, "Offset", threshold.offset, { min: -20, max: 20, - step: 1 + step: 1, }), - [canvas, destImg] + [canvas, destImg], ]; /** @@ -105,7 +105,7 @@ const app = (state: AppState) => { "div", ["h1", "Adaptive thresholding"], fileChooser, - state.destImg ? imageEditor(state) : null + state.destImg ? imageEditor(state) : null, ]; }; diff --git a/examples/adaptive-threshold/src/threshold.ts b/examples/adaptive-threshold/src/threshold.ts index bcee0f5d7f..52fbd77943 100644 --- a/examples/adaptive-threshold/src/threshold.ts +++ b/examples/adaptive-threshold/src/threshold.ts @@ -8,7 +8,7 @@ import { multiplex, range2d, repeat, - transduce + transduce, } from "@thi.ng/transducers"; /** @@ -43,7 +43,7 @@ export const adaptiveThreshold = ( kheight: windowSize, wrap: false, border: 0, - reduce: mean + reduce: mean, }) ), map(([[x, y], mean]) => diff --git a/examples/async-effect/src/index.ts b/examples/async-effect/src/index.ts index 55f22c598d..ffc4eabdfe 100644 --- a/examples/async-effect/src/index.ts +++ b/examples/async-effect/src/index.ts @@ -5,7 +5,7 @@ import { EventDef, FX_DISPATCH_ASYNC, FX_DISPATCH_NOW, - valueSetter + valueSetter, } from "@thi.ng/interceptors"; import type { IObjectOf } from "@thi.ng/api"; @@ -37,7 +37,7 @@ const events: IObjectOf = { // the last items in the array are the event IDs for success & error outcomes [EV_LOAD_JSON]: (_, [__, url]) => ({ [FX_DISPATCH_NOW]: [EV_SET_STATUS, ["idle", `loading: ${url}...`]], - [FX_DISPATCH_ASYNC]: [FX_JSON, url, EV_RECEIVE_JSON, EV_ERROR] + [FX_DISPATCH_ASYNC]: [FX_JSON, url, EV_RECEIVE_JSON, EV_ERROR], }), // this event will be triggered after JSON data has been successfully loaded @@ -52,28 +52,28 @@ const events: IObjectOf = { () => ({ [FX_DISPATCH_NOW]: [ EV_SET_STATUS, - ["success", "JSON successfully loaded"] + ["success", "JSON successfully loaded"], ], [FX_DISPATCH_ASYNC]: [ FX_DELAY, [1000, ["idle", "done."]], EV_SET_STATUS, - EV_ERROR - ] - }) + EV_ERROR, + ], + }), ], // error event handler [EV_ERROR]: (_, [__, err]) => ({ - [FX_DISPATCH_NOW]: [EV_SET_STATUS, ["error", err.message]] - }) + [FX_DISPATCH_NOW]: [EV_SET_STATUS, ["error", err.message]], + }), }; const effects: IObjectOf = { // these are async side effects. ALWAYS MUST RETURN A PROMISE [FX_JSON]: (url) => fetch(url).then((res) => res.json()), [FX_DELAY]: ([x, msg]) => - new Promise((res) => setTimeout(() => res(msg), x)) + new Promise((res) => setTimeout(() => res(msg), x)), }; // main app component @@ -92,7 +92,7 @@ const app = () => { return [ "div", ["p#status", { class: status[0] }, `status: ${status[1]}`], - ["pre", json] + ["pre", json], ]; } }; diff --git a/examples/bitmap-font/src/font.ts b/examples/bitmap-font/src/font.ts index 2912a1a6d6..da3d15d9b3 100644 --- a/examples/bitmap-font/src/font.ts +++ b/examples/bitmap-font/src/font.ts @@ -99,5 +99,5 @@ export const FONT = [ [0x06, 0x0c, 0x0c, 0x30, 0x0c, 0x0c, 0x06, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00], [0x60, 0x30, 0x30, 0x0c, 0x30, 0x30, 0x60, 0x00], - [0x00, 0x00, 0x60, 0x99, 0x06, 0x00, 0x00, 0x00] + [0x00, 0x00, 0x60, 0x99, 0x06, 0x00, 0x00, 0x00], ]; diff --git a/examples/bitmap-font/src/index.ts b/examples/bitmap-font/src/index.ts index 455ce60b66..efd1485172 100644 --- a/examples/bitmap-font/src/index.ts +++ b/examples/bitmap-font/src/index.ts @@ -1,11 +1,6 @@ import { dropdown } from "@thi.ng/hdom-components"; import { clamp } from "@thi.ng/math"; -import { - stream, - Stream, - Subscription, - sync -} from "@thi.ng/rstream"; +import { stream, Stream, Subscription, sync } from "@thi.ng/rstream"; import { comp, map, @@ -15,7 +10,7 @@ import { range, str, transduce, - zip + zip, } from "@thi.ng/transducers"; import { bits } from "@thi.ng/transducers-binary"; import { updateDOM } from "@thi.ng/transducers-hdom"; @@ -54,7 +49,7 @@ const banner = ({ input, on, off }: IObjectOf) => // dynamically create `xfChar` transducers for each char // and run them in parallel via `multiplex()` multiplex.apply(null, [ - ...map((i) => xfChar(i, on, off), range(input.length)) + ...map((i) => xfChar(i, on, off), range(input.length)), ]), // then join the results for each line xfJoin @@ -70,7 +65,7 @@ const charSelector = (stream: Stream) => [ dropdown, { class: "ml3", - onchange: emitOnStream(stream) + onchange: emitOnStream(stream), }, [ ["#", "#"], @@ -82,9 +77,9 @@ const charSelector = (stream: Stream) => [ ["-", "-"], ["^", "^"], [".", "."], - [" ", "space"] + [" ", "space"], ], - stream.deref() + stream.deref(), ]; // main UI root component @@ -96,13 +91,13 @@ const app = ({ raw, result }: any) => [ "input", { oninput: emitOnStream(input), - value: raw - } + value: raw, + }, ], charSelector(on), - charSelector(off) + charSelector(off), ], - ["pre.code.w-100.pa2.overflow-x-auto.bg-washed-yellow", result] + ["pre.code.w-100.pa2.overflow-x-auto.bg-washed-yellow", result], ]; // reactive stream setup diff --git a/examples/canvas-dial/src/dial.ts b/examples/canvas-dial/src/dial.ts index 7d26a481e9..54ef50f5e7 100644 --- a/examples/canvas-dial/src/dial.ts +++ b/examples/canvas-dial/src/dial.ts @@ -3,7 +3,11 @@ import { isString } from "@thi.ng/checks"; import { canvas2D } from "@thi.ng/hdom-components"; import { fitClamped } from "@thi.ng/math"; import { Subscription } from "@thi.ng/rstream"; -import { GestureEvent, gestureStream, GestureType } from "@thi.ng/rstream-gestures"; +import { + GestureEvent, + gestureStream, + GestureType, +} from "@thi.ng/rstream-gestures"; import { heading, sub2 } from "@thi.ng/vectors"; import type { Fn } from "@thi.ng/api"; @@ -126,7 +130,7 @@ export const dial = (_opts: Partial) => { labelColor: "black", labelYOffset: 0, font: "10px sans-serif", - ..._opts + ..._opts, }; let events: Subscription; let cx: number, cy: number; @@ -205,7 +209,7 @@ export const dial = (_opts: Partial) => { ) ); } - } + }, }); } }, @@ -230,6 +234,6 @@ export const dial = (_opts: Partial) => { ctx.fillStyle = opts.labelColor; ctx.fillText(opts.label(val), cx, cy + opts.labelYOffset); } - } + }, }); }; diff --git a/examples/canvas-dial/src/index.ts b/examples/canvas-dial/src/index.ts index d4b44c6336..24e8f72e0c 100644 --- a/examples/canvas-dial/src/index.ts +++ b/examples/canvas-dial/src/index.ts @@ -10,13 +10,13 @@ export const ctx = { streams: { a: stream(), b: stream(), - c: stream() + c: stream(), }, // component styling ui: { root: { class: "vh-100 flex justify-center items-center" }, - dial: { width: 100, height: 100, class: "pointer ma1" } - } + dial: { width: 100, height: 100, class: "pointer ma1" }, + }, }; /** @@ -31,10 +31,17 @@ export const ctx = { const app = () => { const dialA = dial({ r1: 0.5, - color: { from: [0, 0], to: [1, 1], stops: [[0, "#075"], [1, "#6f9"]] }, + color: { + from: [0, 0], + to: [1, 1], + stops: [ + [0, "#075"], + [1, "#6f9"], + ], + }, font: "20px Menlo", label: (x) => percent(0)(x), - onchange: (x) => ctx.streams.a.next(x) + onchange: (x) => ctx.streams.a.next(x), }); const dialB = dial({ r1: 0.66, @@ -43,33 +50,44 @@ const app = () => { color: { from: [0, 0], to: [1, 0.75], - stops: [[0, "#00f"], [0.5, "#f60"], [1, "#ff0"]] + stops: [ + [0, "#00f"], + [0.5, "#f60"], + [1, "#ff0"], + ], }, font: "20px Menlo", label: (x) => percent(1)(x), - onchange: (x) => ctx.streams.b.next(x) + onchange: (x) => ctx.streams.b.next(x), }); const dialC = dial({ r1: 0.75, gap: Math.PI, - color: { from: [0, 0], to: [1, 0], stops: [[0, "#407"], [1, "#09f"]] }, + color: { + from: [0, 0], + to: [1, 0], + stops: [ + [0, "#407"], + [1, "#09f"], + ], + }, font: "20px Menlo", label: (x) => percent(2)(x), - onchange: (x) => ctx.streams.c.next(x) + onchange: (x) => ctx.streams.c.next(x), }); return ({ a, b, c }: any) => [ "div", ctx.ui.root, [dialA, ctx.ui.dial, a], [dialB, ctx.ui.dial, b], - [dialC, ctx.ui.dial, c] + [dialC, ctx.ui.dial, c], ]; }; // stream combinator & reactive DOM update sync({ src: ctx.streams, - xform: comp(map(app()), updateDOM()) + xform: comp(map(app()), updateDOM()), }); // seed dials with initial values diff --git a/examples/cellular-automata/src/index.ts b/examples/cellular-automata/src/index.ts index 7e8297e2fe..773e9fa886 100644 --- a/examples/cellular-automata/src/index.ts +++ b/examples/cellular-automata/src/index.ts @@ -12,7 +12,7 @@ import { repeatedly, step, str, - transduce + transduce, } from "@thi.ng/transducers"; import { bits } from "@thi.ng/transducers-binary"; @@ -27,7 +27,7 @@ const presets: DropDownOption[] = [ ["000001111111111110", "dots"], ["000101111000001111", "growth"], ["000001111000011111", "organic"], - ["000010011000011111", "angular"] + ["000010011000011111", "angular"], ]; // container for cell states @@ -43,7 +43,10 @@ const setHash = () => (location.hash = rules.join("")); // build transducer to parse rules from string (e.g. location hash or preset) // (an older version used a preset format w/ "-" to separate rule groups) const parseRules = step( - comp(map((x: string) => parseInt(x.replace("-", ""), 2)), bits(18)) + comp( + map((x: string) => parseInt(x.replace("-", ""), 2)), + bits(18) + ) ); const applyRules = (raw: string) => { @@ -56,7 +59,7 @@ const applyRules = (raw: string) => { // create random bit sequence w/ ones appearing in given probability const randomSeq = (num: number, prob = 0.5) => [ - ...repeatedly(() => (Math.random() < prob ? 1 : 0), num) + ...repeatedly(() => (Math.random() < prob ? 1 : 0), num), ]; const randomizeGrid = (prob = 0.5) => (grid = randomSeq(W * H, prob)); @@ -110,7 +113,7 @@ const setRule = (i: number, j: number, s: boolean, rstride = 9) => { // single checkbox component const checkbox = (x: number, onchange: EventListener) => [ "input", - { type: "checkbox", checked: !!x, onchange } + { type: "checkbox", checked: !!x, onchange }, ]; // component for single CA rule group (alive / dead FSM) @@ -123,7 +126,7 @@ const ruleBoxes = (prefix: string, i: number, rstride = 9) => [ checkbox(rule, (e) => setRule(i, j, (e.target).checked) ) - ) + ), ]; const isPreset = (id: string) => presets.findIndex((x) => x[0] === id) !== -1; @@ -148,12 +151,12 @@ start(() => { dropdown, { onchange: (e: Event) => - applyRules((e.target).value) + applyRules((e.target).value), }, presets, - isPreset(id) ? id : "" - ] + isPreset(id) ? id : "", + ], ], - ["pre", format((grid = convolve(grid, rules, W, H)), W)] + ["pre", format((grid = convolve(grid, rules, W, H)), W)], ]; }); diff --git a/examples/commit-heatmap/src/index.ts b/examples/commit-heatmap/src/index.ts index 3233a81923..5fe236f6da 100644 --- a/examples/commit-heatmap/src/index.ts +++ b/examples/commit-heatmap/src/index.ts @@ -2,14 +2,7 @@ import { withoutKeysObj } from "@thi.ng/associative"; import { cosineGradient, GRADIENTS } from "@thi.ng/color"; import { threadLast } from "@thi.ng/compose"; import { serialize } from "@thi.ng/hiccup"; -import { - defs, - group, - line, - rect, - svg, - text -} from "@thi.ng/hiccup-svg"; +import { defs, group, line, rect, svg, text } from "@thi.ng/hiccup-svg"; import { fit } from "@thi.ng/math"; import { Z2 } from "@thi.ng/strings"; import { @@ -27,7 +20,7 @@ import { range, sortedKeys, transduce, - vals + vals, } from "@thi.ng/transducers"; import { execSync } from "child_process"; import * as fs from "fs"; @@ -58,7 +51,7 @@ const IGNORE_PACKAGES = [ "example", "exmples", "shadertoy", - "transducer" + "transducer", ]; // heatmap gradient @@ -69,7 +62,7 @@ const MAX_DATE = Date.now(); const enum LogItem { COMMIT, - STATS + STATS, } type ClassifiedCommit = [LogItem, string | string[]]; @@ -83,7 +76,7 @@ const gitLog = (repoPath: string) => execSync( `git log --pretty=format:"%ad${SEP}%s" --date=iso-strict --shortstat`, { - cwd: resolve(repoPath) + cwd: resolve(repoPath), } ) .toString() @@ -131,7 +124,7 @@ const parseCommitTuple = (tuple: ClassifiedCommit[]) => { ...map( (x: RegExpMatchArray) => parseInt(x[0]), stats.matchAll(/\d+/g) - ) + ), ]; return { name: match[1], @@ -140,7 +133,7 @@ const parseCommitTuple = (tuple: ClassifiedCommit[]) => { msg, files, adds, - dels + dels, }; } }; @@ -162,7 +155,7 @@ const commitsByPackage = withoutKeysObj( ), groupByObj({ group: pushSort((a, b) => a.epoch - b.epoch), - key: (x) => x.name + key: (x) => x.name, }), gitLog(BASE_DIR).split("\n") ), @@ -231,7 +224,7 @@ const timeLineLabels = () => {}, line([x, 0], [x, NUM_PKG * 10 + 20], { stroke: "#999", - "stroke-dasharray": 1 + "stroke-dasharray": 1, }), text([x + 5, 8], `${d.getFullYear()}-${Z2(d.getMonth() + 1)}`) ); @@ -248,13 +241,13 @@ const packageCommits = (i: number, pkg: string) => group( { transform: `translate(0, ${(i + 2) * 10})`, - "stroke-width": 2 + "stroke-width": 2, }, text([0, 8], pkg, { stroke: "none" }), map((commit) => { const x = mapEpoch(commit.epoch); return line([x, 0], [x, 8], { - stroke: mapColor(commit.adds, maxAdds) + stroke: mapColor(commit.adds, maxAdds), }); }, commitsByPackage[pkg]) ); @@ -262,7 +255,7 @@ const packageCommits = (i: number, pkg: string) => /** * Assemble & output full SVG document using hiccup-svg primitives. * - * See: https://github.com/thi-ng/umbrella/blob/master/packages/compose/src/thread-last.ts + * See: https://github.com/thi-ng/umbrella/blob/develop/packages/compose/src/thread-last.ts */ threadLast( commitsByPackage, @@ -276,16 +269,16 @@ threadLast( viewBox: `-10 -10 ${WIDTH + 20} ${HEIGHT + 20}`, "font-family": "Inconsolata", "font-size": 9, - fill: "white" + fill: "white", }, defs([ "style", { type: "text/css" }, - "" + "", ]), // background rect([-10, -10], WIDTH + 20, HEIGHT + 20, { fill: "black" }), - timeLineLabels() + timeLineLabels(), ], serialize, [fs.writeFileSync, "heatmap2.svg"] diff --git a/examples/commit-table-ssr/src/client/index.ts b/examples/commit-table-ssr/src/client/index.ts index 1ce5f61a7a..815c8473fc 100644 --- a/examples/commit-table-ssr/src/client/index.ts +++ b/examples/commit-table-ssr/src/client/index.ts @@ -3,7 +3,7 @@ import { fromInterval, resolve as resolvePromise, stream, - sync + sync, } from "@thi.ng/rstream"; import { add, @@ -11,7 +11,7 @@ import { map, pluck, throttleTime, - transduce + transduce, } from "@thi.ng/transducers"; import { updateDOM } from "@thi.ng/transducers-hdom"; import { header } from "../common/components/header"; @@ -28,7 +28,7 @@ const app = (state: any) => [ "div", [header, ctx.repo.name], [stats, state], - [repoTable, state.commits] + [repoTable, state.commits], ]; // stats container component @@ -41,13 +41,13 @@ const stats = (ctx: AppContext, state: any) => [ ctx.ui.stats.col, ["div", `Authors: ${state.authors}`], ["div", `Total adds: ${state.adds} (${state.avgAdds} avg / commit)`], - ["div", `Total dels: ${state.dels} (${state.avgDels} avg / commit)`] + ["div", `Total dels: ${state.dels} (${state.avgDels} avg / commit)`], ], [ "div.tr", ctx.ui.stats.col, - [link, { ...ctx.ui.stats.link, href: ctx.repo.url }, ctx.repo.url] - ] + [link, { ...ctx.ui.stats.link, href: ctx.repo.url }, ctx.repo.url], + ], ]; // search filter input component @@ -64,17 +64,17 @@ const searchFilter = ( type: "text", value: state.search, // emit changes on `search` stream - oninput: (e: any) => search.next(e.target.value.toLowerCase()) - } + oninput: (e: any) => search.next(e.target.value.toLowerCase()), + }, ], - `(${state.commits.length} commits)` + `(${state.commits.length} commits)`, ]; // transformation function to filter commits with search string // doesn't apply filter if search term is empty const filterCommits = ({ commits, - search + search, }: { commits: Commit[]; search: string; @@ -82,7 +82,7 @@ const filterCommits = ({ search, commits: search ? commits.filter((x) => x.msg.toLowerCase().indexOf(search) !== -1) - : commits + : commits, }); // transformation function to compute stats of filtered commits @@ -105,7 +105,7 @@ const computeStats = (state: any) => authors: ({ commits }: any) => transduce(pluck("author"), conj(), commits).size, avgAdds: ({ commits, adds }: any) => (adds / commits.length) | 0, - avgDels: ({ commits, dels }: any) => (dels / commits.length) | 0 + avgDels: ({ commits, dels }: any) => (dels / commits.length) | 0, }); // error stream & handler @@ -139,8 +139,8 @@ sync({ commits, // throttle search stream @ 10Hz (100ms) to minimize // UI lag for fast typists - search: search.transform(throttleTime(100)) - } + search: search.transform(throttleTime(100)), + }, }) // now transform the combined stream // each value is an object tuple of: `{ commits, search }` diff --git a/examples/commit-table-ssr/src/common/components/commit-link.ts b/examples/commit-table-ssr/src/common/components/commit-link.ts index 2121a77da0..63c67353e4 100644 --- a/examples/commit-table-ssr/src/common/components/commit-link.ts +++ b/examples/commit-table-ssr/src/common/components/commit-link.ts @@ -12,5 +12,5 @@ import type { AppContext } from "../api"; export const commitLink = (ctx: AppContext, sha: string, body: string) => [ link, { ...ctx.ui.link, href: `${ctx.repo.url}/commit/${sha}` }, - body + body, ]; diff --git a/examples/commit-table-ssr/src/common/components/header.ts b/examples/commit-table-ssr/src/common/components/header.ts index 6ed009050b..367e9e79a4 100644 --- a/examples/commit-table-ssr/src/common/components/header.ts +++ b/examples/commit-table-ssr/src/common/components/header.ts @@ -3,5 +3,5 @@ import type { AppContext } from "../api"; export const header = (ctx: AppContext, title: string) => [ "section", ctx.ui.header.root, - ["h1", ctx.ui.header.title, title] + ["h1", ctx.ui.header.title, title], ]; diff --git a/examples/commit-table-ssr/src/common/components/link.ts b/examples/commit-table-ssr/src/common/components/link.ts index 4b77b642b8..ad6944802d 100644 --- a/examples/commit-table-ssr/src/common/components/link.ts +++ b/examples/commit-table-ssr/src/common/components/link.ts @@ -10,5 +10,5 @@ import type { AppContext } from "../api"; export const link = (_: AppContext, attribs: any, body: string) => [ "a", attribs, - body + body, ]; diff --git a/examples/commit-table-ssr/src/common/components/repo-table.ts b/examples/commit-table-ssr/src/common/components/repo-table.ts index 09fd2e963a..a7523a5030 100644 --- a/examples/commit-table-ssr/src/common/components/repo-table.ts +++ b/examples/commit-table-ssr/src/common/components/repo-table.ts @@ -4,7 +4,7 @@ import { map, mapIndexed, partitionBy, - repeat + repeat, } from "@thi.ng/transducers"; import { commitLink } from "./commit-link"; import { table } from "./table"; @@ -30,16 +30,16 @@ export const repoTable = (_: AppContext, commits: Iterable) => [ [commitLink, x.sha, x.msg], x.files, x.add ? ["span.green", `+${x.add}`] : null, - x.del ? ["span.red", `-${x.del}`] : null + x.del ? ["span.red", `-${x.del}`] : null, ]), // partition rows by month partitionBy((row: any[]) => row[0].split("-")[1]), // insert month headers (but not in 1st chunk) mapIndexed((i, month) => [ i > 0 ? [month[0][0].substr(0, 7), ...repeat("", 5)] : null, - month + month, ]) ), commits - ) + ), ]; diff --git a/examples/commit-table-ssr/src/common/components/table.ts b/examples/commit-table-ssr/src/common/components/table.ts index a31aaec6a9..95c648ee41 100644 --- a/examples/commit-table-ssr/src/common/components/table.ts +++ b/examples/commit-table-ssr/src/common/components/table.ts @@ -6,14 +6,14 @@ const thead = (ctx: AppContext, head: Iterable) => [ [ row, ctx.ui.table.head.row, - map((x) => ["th", ctx.ui.table.head.cell, x], head) - ] + map((x) => ["th", ctx.ui.table.head.cell, x], head), + ], ]; const row = (ctx: AppContext, attribs: any, body: Iterable) => [ "tr", { ...ctx.ui.table.row, ...attribs }, - ...body + ...body, ]; /** @@ -66,12 +66,12 @@ export const table = ( (cols: any) => [ row, null, - map((x) => ["td", ctx.ui.table.cell, x], cols) + map((x) => ["td", ctx.ui.table.cell, x], cols), ], rows - ) - ] + ), + ], ], body - ) + ), ]; diff --git a/examples/commit-table-ssr/src/common/config.ts b/examples/commit-table-ssr/src/common/config.ts index 722b505a74..33a92a6045 100644 --- a/examples/commit-table-ssr/src/common/config.ts +++ b/examples/commit-table-ssr/src/common/config.ts @@ -5,25 +5,25 @@ export const DEFAULT_DOC: HTMLDoc = { meta: [ { "http-equiv": "Content-Type", - content: "text/html;charset=UTF-8" + content: "text/html;charset=UTF-8", }, - { "http-equiv": "X-UA-Compatible", content: "ie=edge" } + { "http-equiv": "X-UA-Compatible", content: "ie=edge" }, ], links: [ { rel: "stylesheet", - href: "https://unpkg.com/tachyons@4.11.1/css/tachyons.min.css" + href: "https://unpkg.com/tachyons@4.11.1/css/tachyons.min.css", }, { rel: "stylesheet", - href: "https://fonts.googleapis.com/css?family=Inconsolata" - } + href: "https://fonts.googleapis.com/css?family=Inconsolata", + }, ], scripts: [], styles: [], - title: "" + title: "", }, - body: [] + body: [], }; /** @@ -33,34 +33,34 @@ export const ctx: AppContext = { repo: { name: "thi.ng/umbrella", path: ".", - url: "https://github.com/thi-ng/umbrella" + url: "https://github.com/thi-ng/umbrella", }, ui: { body: { class: "sans-serif vh-100" }, link: { class: "link blue hover-light-blue" }, header: { root: { class: "bg-dark-gray white pa3 ma0 w-100" }, - title: { class: "tc ma0 pa0 fw1" } + title: { class: "tc ma0 pa0 fw1" }, }, table: { root: { class: "w-100 collapse ba br2 b--black-10 pv2 ph3 f7 f6-ns", - style: { "font-family": "Inconsolata, monospace" } + style: { "font-family": "Inconsolata, monospace" }, }, head: { row: { class: "tl bg-black white" }, - cell: { class: "pv1 pv2-ns ph2 ph3-ns" } + cell: { class: "pv1 pv2-ns ph2 ph3-ns" }, }, row: { class: "striped--light-gray" }, - cell: { class: "pv1 pv2-ns ph2 ph3-ns" } + cell: { class: "pv1 pv2-ns ph2 ph3-ns" }, }, stats: { root: { - class: "flex items-center pa2 bg-light-green dark-gray f7" + class: "flex items-center pa2 bg-light-green dark-gray f7", }, col: { class: "w-33" }, - link: { class: "link dark-gray" } + link: { class: "link dark-gray" }, }, - search: { class: "pa1 mh2" } - } + search: { class: "pa1 mh2" }, + }, }; diff --git a/examples/commit-table-ssr/src/server/build-table.ts b/examples/commit-table-ssr/src/server/build-table.ts index 645cdc653e..5595478370 100644 --- a/examples/commit-table-ssr/src/server/build-table.ts +++ b/examples/commit-table-ssr/src/server/build-table.ts @@ -11,5 +11,8 @@ import type { Commit } from "../common/api"; export const buildRepoTableHTML = (commits: Iterable) => html({ ctx, - body: [[header, ctx.repo.name], [repoTable, commits]] + body: [ + [header, ctx.repo.name], + [repoTable, commits], + ], }); diff --git a/examples/commit-table-ssr/src/server/git.ts b/examples/commit-table-ssr/src/server/git.ts index ed2f2cc166..90d35bc049 100644 --- a/examples/commit-table-ssr/src/server/git.ts +++ b/examples/commit-table-ssr/src/server/git.ts @@ -7,7 +7,7 @@ import { mapcat, partitionBy, transduce, - zip + zip, } from "@thi.ng/transducers"; import { execSync } from "child_process"; import { resolve } from "path"; @@ -84,7 +84,7 @@ export const repoCommits = (repoPath: string) => (commit) => { ...parseLog(commit), - ...parseStats(commit) + ...parseStats(commit), } ) ), diff --git a/examples/commit-table-ssr/src/server/html.ts b/examples/commit-table-ssr/src/server/html.ts index c0f889095e..db2721f50c 100644 --- a/examples/commit-table-ssr/src/server/html.ts +++ b/examples/commit-table-ssr/src/server/html.ts @@ -30,9 +30,9 @@ export const html = (doc: HTMLDoc) => { map((s) => script(null, s), doc.head!.scripts || []), map((link) => ["link", link], doc.head!.links || []), map((css) => ["style", css], doc.head!.styles || []), - ["title", doc.head!.title || ""] + ["title", doc.head!.title || ""], ], - ["body", doc.ctx!.ui.body, ...doc.body] + ["body", doc.ctx!.ui.body, ...doc.body], ], doc.ctx )}`; diff --git a/examples/commit-table-ssr/src/server/index.ts b/examples/commit-table-ssr/src/server/index.ts index b63b00544b..0601bcc93d 100644 --- a/examples/commit-table-ssr/src/server/index.ts +++ b/examples/commit-table-ssr/src/server/index.ts @@ -16,7 +16,7 @@ const htmlCache = new TLRUCache(null, { ttl: 60 * 60 * 1000 }); const bundler = new Bundler("index.html", { outDir: "./out", outFile: "index.html", - publicUrl: "/out" + publicUrl: "/out", }); const getCommits = async () => { diff --git a/examples/crypto-chart/src/index.ts b/examples/crypto-chart/src/index.ts index ebf8408a1b..fe33a053d4 100644 --- a/examples/crypto-chart/src/index.ts +++ b/examples/crypto-chart/src/index.ts @@ -6,7 +6,7 @@ import { polyline, rect, svg, - text + text, } from "@thi.ng/hiccup-svg"; import { fit } from "@thi.ng/math"; import { resolve } from "@thi.ng/resolve-map"; @@ -17,7 +17,7 @@ import { stream, Subscription, sync, - trace + trace, } from "@thi.ng/rstream"; import { padLeft } from "@thi.ng/strings"; import { @@ -33,15 +33,10 @@ import { push, range, transduce, - Transducer + Transducer, } from "@thi.ng/transducers"; import { updateDOM } from "@thi.ng/transducers-hdom"; -import { - ema, - hma, - sma, - wma -} from "@thi.ng/transducers-stats"; +import { ema, hma, sma, wma } from "@thi.ng/transducers-stats"; import type { Fn, IObjectOf } from "@thi.ng/api"; // this example demonstrates how to use @thi.ng/rstream & @@ -70,7 +65,7 @@ interface MarketResponse { const TIMEFRAMES: IObjectOf = { 1: "Minute", 60: "Hour", - 1440: "Day" + 1440: "Day", }; // supported symbol pairs @@ -80,7 +75,7 @@ const SYMBOL_PAIRS: DropDownOption[] = [ ["ETHUSD", "ETH-USD"], ["LTCUSD", "LTC-USD"], ["XLMUSD", "XLM-USD"], - ["XMRUSD", "XMR-USD"] + ["XMRUSD", "XMR-USD"], ]; const MA_MODES: IObjectOf<{ @@ -90,7 +85,7 @@ const MA_MODES: IObjectOf<{ ema: { fn: ema, label: "Exponential" }, hma: { fn: hma, label: "Hull" }, sma: { fn: sma, label: "Simple" }, - wma: { fn: wma, label: "Weighted" } + wma: { fn: wma, label: "Weighted" }, }; // chart settings @@ -101,7 +96,7 @@ const DAY = 60 * 60 * 24; const TIME_TICKS: IObjectOf = { 1: 15 * 60, 60: DAY, - 1440: DAY * 14 + 1440: DAY * 14, }; const TIME_FORMATS: IObjectOf> = { @@ -120,7 +115,7 @@ const TIME_FORMATS: IObjectOf> = { return `${d.getUTCFullYear()}-${Z2(d.getUTCMonth() + 1)}-${Z2( d.getUTCDate() )}`; - } + }, }; // UI theme presets @@ -141,8 +136,8 @@ const THEMES: any = { sma50: "#06f", sma72: "#00f", gridMajor: "#666", - gridMinor: "#ccc" - } + gridMinor: "#ccc", + }, }, dark: { id: "dark", @@ -160,9 +155,9 @@ const THEMES: any = { sma50: "#06f", sma72: "#00f", gridMajor: "#666", - gridMinor: "#333" - } - } + gridMinor: "#333", + }, + }, }; // constructs request URL from given inputs @@ -223,7 +218,7 @@ const response = sync({ (e) => error.next(e.message) ) .then((json) => ({ ...inst, ohlc: json ? json.Data : null })) - ) + ), }).subscribe(resolvePromise({ fail: (e) => error.next(e.message) })); // this stream combinator computes a number of statistics on incoming OHLC data @@ -231,7 +226,7 @@ const response = sync({ const data = sync({ src: { response, - avg: avgMode.transform(map((id: string) => MA_MODES[id].fn)) + avg: avgMode.transform(map((id: string) => MA_MODES[id].fn)), }, xform: comp( // bail if response value has no OHLC data @@ -246,7 +241,7 @@ const data = sync({ transduce(pluck("high"), max(), ohlc), tbounds: ({ ohlc }: MarketResponse) => [ ohlc[0].time, - ohlc[ohlc.length - 1].time + ohlc[ohlc.length - 1].time, ], sma: ({ ohlc }: MarketResponse) => transduce( @@ -256,14 +251,14 @@ const data = sync({ comp(pluck("close"), avg(period)), push(), ohlc - ) + ), ]), push(), [12, 24, 50, 72] - ) + ), }) ) - ) + ), }); // this stream combinator (re)computes the SVG chart @@ -274,7 +269,7 @@ const chart = sync({ theme, window: fromEvent(window, "resize").transform( map(() => [window.innerWidth, window.innerHeight]) - ) + ), }, xform: map(({ data, window, theme }) => { let [width, height] = window; @@ -292,7 +287,7 @@ const chart = sync({ polyline( vals.map((y, x) => [ mapX(x + (ohlc.length - vals.length) + 0.5), - mapY(y) + mapY(y), ]), { stroke: col, fill: "none" } ); @@ -331,7 +326,7 @@ const chart = sync({ { stroke: theme.chart.axis, fill: theme.chart.axis, - "text-anchor": "end" + "text-anchor": "end", }, line([MARGIN_X, MARGIN_Y], [MARGIN_X, by]), line([MARGIN_X, by], [width - MARGIN_X, by]), @@ -345,11 +340,11 @@ const chart = sync({ price % 100 < 1 ? theme.chart.gridMajor : theme.chart.gridMinor, - "stroke-dasharray": 2 + "stroke-dasharray": 2, }), text([MARGIN_X - 15, y + 4], price.toFixed(4), { - stroke: "none" - }) + stroke: "none", + }), ]; }, range(Math.ceil(data.min / tickY) * tickY, data.max, tickY)), // X axis ticks @@ -365,12 +360,12 @@ const chart = sync({ line([x, by], [x, by + 10]), line([x, MARGIN_Y], [x, by], { stroke: theme.chart.gridMinor, - "stroke-dasharray": 2 + "stroke-dasharray": 2, }), text([x, by + 20], fmtTime(t), { stroke: "none", - "text-anchor": "middle" - }) + "text-anchor": "middle", + }), ]; }, range(Math.ceil(data.tbounds[0] / tickX) * tickX, data.tbounds[1], tickX)) ), @@ -405,7 +400,7 @@ const chart = sync({ }, ohlc), // price line line([MARGIN_X, closeY], [closeX, closeY], { - stroke: theme.chart.price + stroke: theme.chart.price, }), // closing price tag polygon( @@ -414,15 +409,15 @@ const chart = sync({ [closeX + 10, closeY - 8], [width, closeY - 8], [width, closeY + 8], - [closeX + 10, closeY + 8] + [closeX + 10, closeY + 8], ], { fill: theme.chart.price } ), text([closeX + 12, closeY + 4], lastPrice.toFixed(4), { - fill: theme.chart.pricelabel + fill: theme.chart.pricelabel, }) ); - }) + }), }); // stream construct to perform UI update @@ -441,7 +436,7 @@ sync({ ...map( ([id, mode]) => [id, mode.label], pairs(MA_MODES) - ) + ), ]) ), themeSel: theme.transform( @@ -451,9 +446,9 @@ sync({ ([id, theme]: [string, any]) => [id, theme.label], pairs(THEMES) - ) + ), ]) - ) + ), }, xform: comp( // combines all inputs into a single root component @@ -467,8 +462,8 @@ sync({ style: { top: `1rem`, right: `${MARGIN_X}px`, - width: `calc(100vw - 2 * ${MARGIN_X}px)` - } + width: `calc(100vw - 2 * ${MARGIN_X}px)`, + }, }, [ "div.flex", @@ -476,9 +471,9 @@ sync({ symbol, period, avg, - themeSel - ]) - ] + themeSel, + ]), + ], ], [ "div.fixed.tc", @@ -486,31 +481,31 @@ sync({ style: { bottom: `1rem`, left: `${MARGIN_X}px`, - width: `calc(100vw - 2 * ${MARGIN_X}px)` - } + width: `calc(100vw - 2 * ${MARGIN_X}px)`, + }, }, [ "a", { class: `mr3 b link ${theme.body}`, - href: "https://min-api.cryptocompare.com/" + href: "https://min-api.cryptocompare.com/", }, - "Data by cyptocompare.com" + "Data by cyptocompare.com", ], [ "a", { class: `mr3 b link ${theme.body}`, href: - "https://github.com/thi-ng/umbrella/tree/develop/examples/crypto-chart/" + "https://github.com/thi-ng/umbrella/tree/develop/examples/crypto-chart/", }, - "Source" - ] - ] + "Source", + ], + ], ]), // perform hdom update / diffing updateDOM() - ) + ), }); // kick off dataflow diff --git a/examples/fft-synth/src/automode.ts b/examples/fft-synth/src/automode.ts index 928e3811c8..e3d9a997b1 100644 --- a/examples/fft-synth/src/automode.ts +++ b/examples/fft-synth/src/automode.ts @@ -9,7 +9,7 @@ const weights = [ ...map( (x) => 1 - Math.pow((x - 1) / NUM_BINS, 0.15) * 0.99, range(1, NUM_BINS) - ) + ), ]; const rnd = weightedRandom([...range(0, NUM_BINS)], weights); diff --git a/examples/fft-synth/src/config.ts b/examples/fft-synth/src/config.ts index 8adc922370..2e9833fa8c 100644 --- a/examples/fft-synth/src/config.ts +++ b/examples/fft-synth/src/config.ts @@ -1,11 +1,6 @@ import { binFreq } from "@thi.ng/dsp"; import { float, percent } from "@thi.ng/strings"; -import { - map, - mapcat, - range, - repeat -} from "@thi.ng/transducers"; +import { map, mapcat, range, repeat } from "@thi.ng/transducers"; export const NUM_BINS = 64; export const WINDOW_LEN = NUM_BINS * 2; @@ -17,12 +12,12 @@ export const FMT_PERCENT = percent(3); export const PRESETS: any[] = [ () => [0, 1, ...repeat(0, NUM_BINS - 2)], () => [0, ...map((i) => 1 / i, range(1, NUM_BINS))], - () => [...mapcat((i) => [0, 1 / i], range(1, NUM_BINS + 1, 2))] + () => [...mapcat((i) => [0, 1 / i], range(1, NUM_BINS + 1, 2))], ]; export const BIN_LABELS = [ ...map( (i) => (binFreq(i, 48000 / PITCH_SCALE, WINDOW_LEN) | 0) + " Hz", range(NUM_BINS) - ) + ), ]; diff --git a/examples/fft-synth/src/gui.ts b/examples/fft-synth/src/gui.ts index 3e9123d1d7..a0f181c15c 100644 --- a/examples/fft-synth/src/gui.ts +++ b/examples/fft-synth/src/gui.ts @@ -5,7 +5,7 @@ import { sliderH, sliderVGroup, textLabel, - toggle + toggle, } from "@thi.ng/imgui"; import { gridLayout, GridLayout } from "@thi.ng/layout"; import { initAudio, isAudioActive, stopAudio } from "./audio"; @@ -16,14 +16,14 @@ import { FMT_PERCENT, NUM_BINS, PITCH_SCALE, - WINDOW_LEN + WINDOW_LEN, } from "./config"; import { clearSpectrum, DB, setGain, setSpectrumPreset, - updateSpectrumBin + updateSpectrumBin, } from "./state"; export const gui = new IMGUI({ @@ -31,8 +31,8 @@ export const gui = new IMGUI({ ...DEFAULT_THEME, globalBg: "#ccc", font: "10px Inconsolata", - charWidth: 5 - } + charWidth: 5, + }, }); export const updateGUI = (draw: boolean) => { diff --git a/examples/fft-synth/src/index.ts b/examples/fft-synth/src/index.ts index 2b674d9bfd..084a0dacfb 100644 --- a/examples/fft-synth/src/index.ts +++ b/examples/fft-synth/src/index.ts @@ -6,7 +6,7 @@ import { fromRAF, merge, sidechainPartition, - sync + sync, } from "@thi.ng/rstream"; import { gestureStream } from "@thi.ng/rstream-gestures"; import { map, mapIndexed } from "@thi.ng/transducers"; @@ -17,8 +17,8 @@ import { DB } from "./state"; const main = sync({ src: { - state: fromAtom(DB) - } + state: fromAtom(DB), + }, }); const app = () => { @@ -31,7 +31,7 @@ const app = () => { gestureStream(canv, {}).subscribe({ next(e) { gui.setMouse(e.pos, e.buttons); - } + }, }), fromDOMEvent(window, "resize").subscribe({ next() { @@ -39,12 +39,12 @@ const app = () => { ["size"], [window.innerWidth, window.innerHeight] ); - } - }) - ] + }, + }), + ], }) ); - } + }, }; return () => { @@ -61,7 +61,7 @@ const app = () => { width, height, style: { background: gui.theme.globalBg, cursor: gui.cursor }, - ...gui.attribs + ...gui.attribs, }, gui, // waveform display @@ -72,12 +72,12 @@ const app = () => { ...mapIndexed( (i, y) => [ fit(i, 0, WINDOW_LEN - 1, 10, iwidth), - fitClamped(y, -1, 1, 490, 290) + fitClamped(y, -1, 1, 490, 290), ], DB.value.wave - ) - ] - ] + ), + ], + ], ]; }; }; diff --git a/examples/fft-synth/src/state.ts b/examples/fft-synth/src/state.ts index f18cf40cd5..b2ece0fdbf 100644 --- a/examples/fft-synth/src/state.ts +++ b/examples/fft-synth/src/state.ts @@ -12,7 +12,7 @@ export const DB = new Atom({ feedback: 0.66, bins: [...repeat(0, NUM_BINS)], wave: new Float64Array(NUM_BINS * 2), - size: [window.innerWidth, window.innerHeight] + size: [window.innerWidth, window.innerHeight], }); export const setGain = (gain: number) => { diff --git a/examples/geom-convex-hull/src/index.ts b/examples/geom-convex-hull/src/index.ts index e71d94984f..18f445b7d2 100644 --- a/examples/geom-convex-hull/src/index.ts +++ b/examples/geom-convex-hull/src/index.ts @@ -7,7 +7,7 @@ import { polygon, rect, scatter, - withAttribs + withAttribs, } from "@thi.ng/geom"; import { renderOnce } from "@thi.ng/hdom"; import { canvas } from "@thi.ng/hdom-canvas"; @@ -47,16 +47,16 @@ renderOnce([ withAttribs(clip, { fill: COL3(0.5), stroke: COL3(1), - weight: 3 + weight: 3, }), ...(<[IShape, string][]>[ [hull1, COL1(1)], [hull2, COL2(1)], - [clip, COL3(1)] + [clip, COL3(1)], ]).map(([shape, col]) => [ "text", { fill: col }, centroid(shape), - area(shape).toFixed(2) - ]) + area(shape).toFixed(2), + ]), ]); diff --git a/examples/geom-knn/src/index.ts b/examples/geom-knn/src/index.ts index 2769cbe8c5..ea92bb3963 100644 --- a/examples/geom-knn/src/index.ts +++ b/examples/geom-knn/src/index.ts @@ -17,7 +17,7 @@ const app = (main: StreamSync) => { const _canvas = { ...canvas, init: (el: HTMLCanvasElement) => - main.add(gestureStream(el).transform(map((g) => g.pos)), "mpos") + main.add(gestureStream(el).transform(map((g) => g.pos)), "mpos"), }; // initialize 1st point & store in tree for fast KNN searches const width = window.innerWidth; @@ -58,7 +58,7 @@ const app = (main: StreamSync) => { .queryKeys(p[0], width / 4, 8) .map((q) => ["line", {}, p[0], q]), selected - ) + ), ]); return [ "div.overflow-hidden.sans-serif.f7", @@ -67,7 +67,7 @@ const app = (main: StreamSync) => { "div", `Points: ${tree.size}, Sel: ${selected.length}, `, `Neighbors: ${neighbors.length}, Q1: ${t1}ms, Q2: ${t2}ms, `, - `Height: ${tree.height}, Ratio: ${tree.ratio.toFixed(2)}` + `Height: ${tree.height}, Ratio: ${tree.ratio.toFixed(2)}`, ], // visualize // the __diff & __normalize control attribs are used to optimize drawing perf @@ -81,11 +81,11 @@ const app = (main: StreamSync) => { [ "g", { fill: "rgba(0,192,255,0.5)" }, - ...selected.map((p) => ["circle", {}, p[0], p[1]]) + ...selected.map((p) => ["circle", {}, p[0], p[1]]), ], // secondary neighbor connections - ["g", { stroke: "rgba(0,0,0,0.25)" }, ...neighbors] - ] + ["g", { stroke: "rgba(0,0,0,0.25)" }, ...neighbors], + ], ]; }; }; diff --git a/examples/geom-tessel/src/index.ts b/examples/geom-tessel/src/index.ts index 3341c9690c..377c52862d 100644 --- a/examples/geom-tessel/src/index.ts +++ b/examples/geom-tessel/src/index.ts @@ -6,7 +6,7 @@ import { circle, Polygon, polygon, - tessellate + tessellate, } from "@thi.ng/geom"; import { edgeSplit, quadFan, triFan } from "@thi.ng/geom-tessellate"; import { canvas } from "@thi.ng/hdom-canvas"; @@ -58,7 +58,7 @@ const arclengthToHSL = (max: number, p: IShape) => const tintedPoly = (tint: Tint, points: Vec[]) => { const p = polygon(points); p.attribs = { - fill: tint(p) + fill: tint(p), // stroke: tint(p), }; return p; @@ -79,8 +79,8 @@ const tessellation = (t: number, tessel: Tessellator[], tint: Tint) => { const main = sync({ src: { - time: fromInterval(16) - } + time: fromInterval(16), + }, }).transform( // root component function map(({ time }) => { @@ -103,11 +103,11 @@ const main = sync({ translate: [300, 300], // rotate: (time / 10) % TAU, stroke: "#000", - weight: 0.25 + weight: 0.25, }, - ...cells - ] - ] + ...cells, + ], + ], ]; }), updateDOM() diff --git a/examples/geom-voronoi-mst/src/index.ts b/examples/geom-voronoi-mst/src/index.ts index 5d33520319..14da01520e 100644 --- a/examples/geom-voronoi-mst/src/index.ts +++ b/examples/geom-voronoi-mst/src/index.ts @@ -10,7 +10,7 @@ import { rect, scatter, star, - vertices + vertices, } from "@thi.ng/geom"; import { KdTreeMap, KdTreeSet } from "@thi.ng/geom-accel"; import { DVMesh } from "@thi.ng/geom-voronoi"; @@ -24,14 +24,9 @@ import { mapcat, mapIndexed, push, - transduce + transduce, } from "@thi.ng/transducers"; -import { - dist, - floor, - ReadonlyVec, - Vec -} from "@thi.ng/vectors"; +import { dist, floor, ReadonlyVec, Vec } from "@thi.ng/vectors"; const W = 500; const R = W / 2; @@ -45,7 +40,7 @@ const pts = timed(() => density: (p) => fit(dist(p, closestPoint(poly, p)!), 0, R, 1, 20), max: 10000, quality: 1000, - index: new KdTreeSet(2) + index: new KdTreeSet(2), }) ); @@ -57,9 +52,9 @@ const _mst = timed(() => { (e) => [floor(null, e[0]), floor(null, e[1])], mesh.edges(false, [ [-R, -R], - [R, R] + [R, R], ]) - ) + ), ]; const idx = new KdTreeMap(2); @@ -98,6 +93,6 @@ renderOnce([ mesh.voronoi(vertices(bounds)).map((p) => polygon(p)) ), points(pts, { fill: "#f09", size: 2 }), - group({ stroke: "#000", weight: 1 }, _mst) - ]) + group({ stroke: "#000", weight: 1 }, _mst), + ]), ]); diff --git a/examples/gesture-analysis/src/index.ts b/examples/gesture-analysis/src/index.ts index 853f7ae7c2..8134f1ad2a 100644 --- a/examples/gesture-analysis/src/index.ts +++ b/examples/gesture-analysis/src/index.ts @@ -1,14 +1,13 @@ import { peek } from "@thi.ng/arrays"; import { identity } from "@thi.ng/compose"; import { polyline as gPolyline, resample, vertices } from "@thi.ng/geom"; -import { - circle, - group, - polyline, - svg -} from "@thi.ng/hiccup-svg"; +import { circle, group, polyline, svg } from "@thi.ng/hiccup-svg"; import { fromIterable, merge, sync } from "@thi.ng/rstream"; -import { GestureEvent, gestureStream, GestureType } from "@thi.ng/rstream-gestures"; +import { + GestureEvent, + gestureStream, + GestureType, +} from "@thi.ng/rstream-gestures"; import { comp, filter, @@ -16,15 +15,10 @@ import { multiplexObj, partition, push, - transduce + transduce, } from "@thi.ng/transducers"; import { updateDOM } from "@thi.ng/transducers-hdom"; -import { - angleBetween2, - mixN2, - sub2, - Vec -} from "@thi.ng/vectors"; +import { angleBetween2, mixN2, sub2, Vec } from "@thi.ng/vectors"; import { CTA } from "./config"; /** @@ -36,7 +30,7 @@ import { CTA } from "./config"; */ const app = ({ raw, - processed + processed, }: { raw: Vec[]; processed: { path: Vec[]; corners: Vec[] }; @@ -47,7 +41,7 @@ const app = ({ width: window.innerWidth, height: window.innerHeight, stroke: "none", - fill: "none" + fill: "none", }, path(raw || [], processed.path, processed.corners || []) ), @@ -55,8 +49,8 @@ const app = ({ "div.fixed.top-0.left-0.ma3", ["div", `raw: ${(raw && raw.length) || 0}`], ["div", `resampled: ${(processed && processed.path.length) || 0}`], - ["div", `corners: ${(processed && processed.corners.length) || 0}`] - ] + ["div", `corners: ${(processed && processed.corners.length) || 0}`], + ], ]; /** @@ -148,8 +142,8 @@ const gesture = merge({ (g) => g.type != GestureType.MOVE && g.type != GestureType.ZOOM ), map(collectPath()) - ) - ] + ), + ], }); // main gesture processor @@ -177,11 +171,11 @@ sync({ push(), pts ) - ) + ), }) ) - ) - } + ), + }, }).transform( // transform result tuples into HDOM components map(app), diff --git a/examples/grid-iterators/src/index.ts b/examples/grid-iterators/src/index.ts index ab30a13f0c..7e58cd800f 100644 --- a/examples/grid-iterators/src/index.ts +++ b/examples/grid-iterators/src/index.ts @@ -9,7 +9,7 @@ import { zcurve2d, zigzagColumns2d, zigzagDiagonal2d, - zigzagRows2d + zigzagRows2d, } from "@thi.ng/grid-iterators"; import { createElement } from "@thi.ng/hdom"; import { concat, cycle } from "@thi.ng/transducers"; @@ -19,7 +19,7 @@ const H = 256; const canvas = ( createElement(document.getElementById("app")!, "canvas", { width: W, - height: H + height: H, }) ); const ctx = canvas.getContext("2d")!; diff --git a/examples/hdom-benchmark/src/index.ts b/examples/hdom-benchmark/src/index.ts index dc74a68536..30ed488c6f 100644 --- a/examples/hdom-benchmark/src/index.ts +++ b/examples/hdom-benchmark/src/index.ts @@ -9,7 +9,7 @@ import { mapIndexed, movingAverage, partition, - range + range, } from "@thi.ng/transducers"; /** @@ -23,10 +23,10 @@ const box = (index: number, id: number) => [ { key: index, style: { - background: "#" + U24(((id & 0x1ff) << 15) | (id << 10) | id) - } + background: "#" + U24(((id & 0x1ff) << 15) | (id << 10) | id), + }, }, - U16(id & 0xffff) + U16(id & 0xffff), ]; /** @@ -70,7 +70,7 @@ const fpsCounter = ( 2, height - 4 ); - } + }, }, // stream transducer to compute the windowed moving avarage comp( @@ -87,8 +87,8 @@ const fpsCounter = ( ctx.fillStyle = txtCol; ctx.fillText("sampling...", 2, height - 4); }, - render: () => ["canvas", { width, height }] - } + render: () => ["canvas", { width, height }], + }, ]; }; @@ -105,14 +105,14 @@ const app = () => { { onchange: (e: Event) => { num = parseInt((e.target).value); - } + }, }, [ [128, 128], [192, 192], [256, 256], [384, 384], - [512, 512] + [512, 512], ] ); @@ -121,7 +121,7 @@ const app = () => { return [ "div", ["div#stats", fps, menu], - ["grid", mapIndexed(box, range(j, j + num))] + ["grid", mapIndexed(box, range(j, j + num))], ]; }; }; diff --git a/examples/hdom-benchmark2/src/index.ts b/examples/hdom-benchmark2/src/index.ts index c1244bd946..18fe426304 100644 --- a/examples/hdom-benchmark2/src/index.ts +++ b/examples/hdom-benchmark2/src/index.ts @@ -10,7 +10,7 @@ import { partition, push, range, - transduce + transduce, } from "@thi.ng/transducers"; const SIZE = "0.5rem"; @@ -21,8 +21,8 @@ injectStyleSheet( (x: number) => [ `.cell-${x}`, { - background: `#${U24(splat4_24(x))}` - } + background: `#${U24(splat4_24(x))}`, + }, ], range(16) ), @@ -30,8 +30,8 @@ injectStyleSheet( (x: number) => [ `.xcell-${x}`, { - background: `#${U24(splat4_24(x) | 0x00ff00)}` - } + background: `#${U24(splat4_24(x) | 0x00ff00)}`, + }, ], range(16) ), @@ -40,15 +40,15 @@ injectStyleSheet( { display: "inline-block", width: SIZE, - height: SIZE - } + height: SIZE, + }, ], [ ".row", { - height: SIZE - } - ] + height: SIZE, + }, + ], ]) ); @@ -81,8 +81,8 @@ const grid = { "span", { key: "c" + i, - class: `cell ${changed.has(i) ? "xcell" : "cell"}-${x}` - } + class: `cell ${changed.has(i) ? "xcell" : "cell"}-${x}`, + }, ]), partition(w), mapIndexed((i, row) => [ @@ -91,9 +91,12 @@ const grid = { key: "r" + i, __skip: !isFirst && - !(this.prevChangedRows.has(i) || changedRows.has(i)) + !( + this.prevChangedRows.has(i) || + changedRows.has(i) + ), }, - row + row, ]) ), push(), @@ -115,12 +118,12 @@ const grid = { this.stats = { cells: mergedCells.size, rows: mergedRows.size, - total: mergedCells.size + mergedRows.size + total: mergedCells.size + mergedRows.size, }; this.prevChanged = changed; this.prevChangedRows = changedRows; return body; - } + }, }; const domStats = (_: any, grid: any, res: number, _static: number) => @@ -132,8 +135,8 @@ const domStats = (_: any, grid: any, res: number, _static: number) => [ "div", ["span.pink", res * res + res + _static], - " DOM nodes total" - ] + " DOM nodes total", + ], ] : null; @@ -152,10 +155,10 @@ const resOpts = [ [40, 40], [48, 48], [56, 56], - [64, 64] + [64, 64], ]; const deltaOpts = [ - ...map((i) => [i, i], [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]) + ...map((i) => [i, i], [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]), ]; const cancel = start(() => { @@ -166,7 +169,7 @@ const cancel = start(() => { "div.measure.lh-copy", `Each grid cell is one element. Each frame ${delta} random cell states will be updated (highlighted in green), resulting in approx. twice as many - DOM updates (due to resetting of updated cells from previous frame).` + DOM updates (due to resetting of updated cells from previous frame).`, ], ["div.mt3", [grid, cells, res, delta, frame]], ["div.mt3", [domStats, grid, res, 46]], @@ -182,11 +185,11 @@ const cancel = start(() => { (res = parseInt((e.target).value)), (frame = -1), (cells = newCells(res)) - ) + ), }, resOpts, - res - ] + res, + ], ], [ "div.mt3", @@ -196,11 +199,11 @@ const cancel = start(() => { { class: "w3 code", onchange: (e: Event) => - (delta = parseInt((e.target).value)) + (delta = parseInt((e.target).value)), }, deltaOpts, - delta - ] + delta, + ], ], [ "div.mt3", @@ -208,11 +211,11 @@ const cancel = start(() => { "a", { href: - "https://github.com/thi-ng/umbrella/tree/develop/examples/hdom-benchmark2" + "https://github.com/thi-ng/umbrella/tree/develop/examples/hdom-benchmark2", }, - "Source" - ] - ] + "Source", + ], + ], ]; }); diff --git a/examples/hdom-canvas-clock/src/index.ts b/examples/hdom-canvas-clock/src/index.ts index 50f174ab35..d5aad206e9 100644 --- a/examples/hdom-canvas-clock/src/index.ts +++ b/examples/hdom-canvas-clock/src/index.ts @@ -13,16 +13,16 @@ const tick = (i: number, r1: number, r2: number) => { "line", {}, cartesian2(null, [r1, theta]), - cartesian2(null, [r2, theta]) + cartesian2(null, [r2, theta]), ], i % 3 == 0 ? [ "text", { stroke: "none" }, cartesian2(null, [r1 - 10, theta]), - i > 0 ? i : 12 + i > 0 ? i : 12, ] - : null + : null, ]; }; @@ -40,8 +40,8 @@ const hand = ( [ [r1, theta - eps], [r2, theta], - [r1, theta + eps] - ].map((p) => cartesian2(null, p)) + [r1, theta + eps], + ].map((p) => cartesian2(null, p)), ]; }; @@ -70,7 +70,7 @@ const cancel = start(() => { // applied in a nested manner... // // see here for a list of all supported attribs: - // https://github.com/thi-ng/umbrella/blob/master/packages/hdom-canvas/src/index.ts#L35 + // https://github.com/thi-ng/umbrella/blob/develop/packages/hdom-canvas/src/index.ts#L35 [ "g", { @@ -79,7 +79,7 @@ const cancel = start(() => { fill: "none", align: "center", baseline: "middle", - __normalize: false + __normalize: false, }, // rim ["circle", {}, [0, 0], 99], @@ -94,8 +94,8 @@ const cancel = start(() => { "text", { stroke: "none" }, [55, 0], - WEEKDAYS[now.getDay()] - ] + WEEKDAYS[now.getDay()], + ], ], // hands [ @@ -108,20 +108,20 @@ const cancel = start(() => { shadowX: 2, shadowY: 2, shadowBlur: 5, - shadowColor: "rgba(0,0,0,0.4)" + shadowColor: "rgba(0,0,0,0.4)", }), - ["circle", {}, [0, 0], 5] - ] - ] + ["circle", {}, [0, 0], 5], + ], + ], ], [ "a.link", { href: - "https://github.com/thi-ng/umbrella/tree/develop/examples/hdom-canvas-clock" + "https://github.com/thi-ng/umbrella/tree/develop/examples/hdom-canvas-clock", }, - "Source code" - ] + "Source code", + ], ]; }); diff --git a/examples/hdom-canvas-draw/src/index.ts b/examples/hdom-canvas-draw/src/index.ts index f2e5ebd319..d0a1ea6b03 100644 --- a/examples/hdom-canvas-draw/src/index.ts +++ b/examples/hdom-canvas-draw/src/index.ts @@ -1,7 +1,11 @@ import { canvas } from "@thi.ng/hdom-canvas"; import { HALF_PI, PI } from "@thi.ng/math"; import { StreamSync, sync, trigger } from "@thi.ng/rstream"; -import { GestureEvent, gestureStream, GestureType } from "@thi.ng/rstream-gestures"; +import { + GestureEvent, + gestureStream, + GestureType, +} from "@thi.ng/rstream-gestures"; import { filter, map, @@ -9,7 +13,7 @@ import { normRange, partition, repeat, - zip + zip, } from "@thi.ng/transducers"; import { updateDOM } from "@thi.ng/transducers-hdom"; import { dist } from "@thi.ng/vectors"; @@ -23,7 +27,7 @@ const line = ([a, b]: number[][]) => (_: any, attribs: any) => [ "line", { ...attribs, weight: dist(a, b) / 4 }, a, - b + b, ]; // higher order root component function. takes a @thi.ng/rstream @@ -57,7 +61,7 @@ const app = (main: StreamSync) => { ), // name of the new input "gesture" - ) + ), }; // this root component function will produce the actual UI and // will be attached to the `main` stream combinator below and executes @@ -79,11 +83,11 @@ const app = (main: StreamSync) => { { fill: "rgba(255,255,255,0.1)", stroke: "black", - dash: [1, 1] + dash: [1, 1], }, [0, 0], W, - W + W, ], // use a group node to assign attributes common to all children [ @@ -102,11 +106,12 @@ const app = (main: StreamSync) => { [ gesture, { - stroke: `hsl(${h + - (delta - 0.5) * 40},100%,50%)`, + stroke: `hsl(${ + h + (delta - 0.5) * 40 + },100%,50%)`, rotate: theta + (delta - 0.5) * 0.3, - translate - } + translate, + }, ], // iterator which forms tuples of `[attribs, counter]` zip(repeat(attribs), normRange(6)) @@ -116,20 +121,20 @@ const app = (main: StreamSync) => { [30, [0, 0], 0], [120, [W, W], PI], [210, [W, 0], HALF_PI], - [300, [0, W], -HALF_PI] + [300, [0, W], -HALF_PI], ] - ) - ] + ), + ], ], // back in normal DOM [ "a.db.link", { href: - "https://github.com/thi-ng/umbrella/tree/develop/examples/hdom-canvas-draw" + "https://github.com/thi-ng/umbrella/tree/develop/examples/hdom-canvas-draw", }, - "Source code" - ] + "Source code", + ], ]; }; diff --git a/examples/hdom-canvas-particles/src/index.ts b/examples/hdom-canvas-particles/src/index.ts index eb0379390e..4cd05f868c 100644 --- a/examples/hdom-canvas-particles/src/index.ts +++ b/examples/hdom-canvas-particles/src/index.ts @@ -28,7 +28,7 @@ const makeCurve = (i: number) => ); const initCurves = () => [ - ...map(makeCurve, range(-(NUMC >> 1), (NUMC >> 1) + 1)) + ...map(makeCurve, range(-(NUMC >> 1), (NUMC >> 1) + 1)), ]; const updateCurves = (curves: Cubic[], t: number) => { @@ -48,7 +48,7 @@ const updateCurves = (curves: Cubic[], t: number) => { const makeParticle = (curves: Cubic[]) => ({ curve: curves[SYSTEM.int() % curves.length], pos: 0, - vel: SYSTEM.minmax(0.002, 0.01) + vel: SYSTEM.minmax(0.002, 0.01), }); const updateParticles = (particles: Particle[]) => { @@ -67,7 +67,7 @@ const particle = (p: Particle) => { { translate: pos }, // compute 2nd end point in local space sub2(null, pointAt(p.curve, p.pos - 0.05), pos), - ZERO2 + ZERO2, ]; }; @@ -81,8 +81,8 @@ const GRAD = [ { id: "curve", from: [0, 0], to: [600, 0] }, [ [0, [0.6, 0.01, 0]], - [1, [0.2, 0, 0.6]] - ] + [1, [0.2, 0, 0.6]], + ], ], // for particles [ @@ -90,9 +90,9 @@ const GRAD = [ { id: "part", from: [-20, 0], to: [0, 0] }, [ [0, [1, 0, 0, 0]], - [1, [1, 0.8, 0.5, 0.8]] - ] - ] + [1, [1, 0.8, 0.5, 0.8]], + ], + ], ]; const app = () => { @@ -115,15 +115,15 @@ const app = () => { translate: [0, height / 2], scale, stroke: "$curve", - compose: "screen" + compose: "screen", }, ...curves, [ "g", { stroke: "$part", weight: 2 }, - ...map(particle, particles) - ] - ] + ...map(particle, particles), + ], + ], ]; }; }; diff --git a/examples/hdom-canvas-shapes/src/index.ts b/examples/hdom-canvas-shapes/src/index.ts index 6b9e0a297b..92b64c565d 100644 --- a/examples/hdom-canvas-shapes/src/index.ts +++ b/examples/hdom-canvas-shapes/src/index.ts @@ -7,12 +7,7 @@ import { COMMENT, serialize } from "@thi.ng/hiccup"; import { convertTree, svg } from "@thi.ng/hiccup-svg"; import { sincos } from "@thi.ng/math"; import { concat, skewX23, translation23 } from "@thi.ng/matrices"; -import { - fromRAF, - stream, - Subscription, - sync -} from "@thi.ng/rstream"; +import { fromRAF, stream, Subscription, sync } from "@thi.ng/rstream"; import { map, range, repeatedly } from "@thi.ng/transducers"; import { updateDOM } from "@thi.ng/transducers-hdom"; import { addN } from "@thi.ng/vectors"; @@ -30,7 +25,7 @@ const randpos = () => [Math.random() * W - W2, Math.random() * W - W2]; const randdir = (n = 1) => [ Math.random() * n * 2 - n, - Math.random() * n * 2 - n + Math.random() * n * 2 - n, ]; // various tests for different shapes & canvas drawing options @@ -45,13 +40,13 @@ const TESTS: any = { stroke: "#000", weight: 3, dash: [4, 8], - dashOffset: (Date.now() * 0.01) % 12 + dashOffset: (Date.now() * 0.01) % 12, }) .moveTo([10, 10]) .quadraticTo([W2, W2], [W2, W - 10]) .quadraticTo([W2, W2], [W - 10, 10]) .quadraticTo([W2, W2], [10, 10]) - .current() + .current(), }, "shape morph": { @@ -69,14 +64,14 @@ const TESTS: any = { dash: [20, 20], dashOffset: (t * 5) % 40, translate: [W2, W2], - rotate: (t * 0.05) % (2 * Math.PI) + rotate: (t * 0.05) % (2 * Math.PI), }) .moveTo([-100, -100]) .quadraticTo([-a, 0], [0, 100]) .quadraticTo([a, 0], [100, -100]) .quadraticTo([0, -a], [-100, -100]) .current(); - } + }, }, "points 1k": { @@ -89,8 +84,8 @@ const TESTS: any = { size: 4, shape: "circle", translate: [W2, W2], - scale: 0.6 + 0.4 * Math.sin(Date.now() * 0.005) - }) + scale: 0.6 + 0.4 * Math.sin(Date.now() * 0.005), + }), }, "points 10k": { @@ -101,8 +96,8 @@ const TESTS: any = { fill: "#000", stroke: "none", translate: [W2, W2], - scale: 0.6 + 0.4 * Math.sin(Date.now() * 0.005) - }) + scale: 0.6 + 0.4 * Math.sin(Date.now() * 0.005), + }), }, "points 50k": { @@ -113,8 +108,8 @@ const TESTS: any = { fill: "#000", stroke: "none", translate: [W2, W2], - scale: 0.6 + 0.4 * Math.sin(Date.now() * 0.005) - }) + scale: 0.6 + 0.4 * Math.sin(Date.now() * 0.005), + }), }, "rounded rects": { @@ -131,16 +126,16 @@ const TESTS: any = { align: "center", baseline: "middle", font: "48px Menlo", - __normalize: false + __normalize: false, }, ...map( (i) => ["rect", null, [i, i], W - 2 * i, W - 2 * i, r], range(10, 50, 5) ), // ...map((i) => normalizedPath(roundedRect([i, i], [W - 2 * i, W - 2 * i], r)), range(10, 50, 5)), - ["text", {}, [W2, W2], Math.round(r)] + ["text", {}, [W2, W2], Math.round(r)], ]; - } + }, }, "linear gradient": { @@ -155,27 +150,27 @@ const TESTS: any = { { id: "grad1", from: [0, 0], to: [W, W] }, [ [0, "#fc0"], - [1, "#0ef"] - ] + [1, "#0ef"], + ], ], [ "linearGradient", { id: "grad2", from: [0, 0], - to: [W, W2 + W2 * Math.sin(Date.now() * 0.005)] + to: [W, W2 + W2 * Math.sin(Date.now() * 0.005)], }, [ [0, "#700"], [0.5, "#d0f"], - [1, "#fff"] - ] - ] + [1, "#fff"], + ], + ], ], ["circle", { fill: "$grad1" }, [W2, W2], W2 - 10], ["rect", { fill: "$grad2" }, [125, 0], 50, W], - ["rect", { fill: "$grad2" }, [0, 125], W, 50] - ] + ["rect", { fill: "$grad2" }, [0, 125], W, 50], + ], }, "radial gradient": { @@ -197,28 +192,28 @@ const TESTS: any = { from: [x, W - 20], to: [W2, W], r1: W, - r2: 100 + r2: 100, }, [ [0, "#07f"], [0.5, "#0ef"], [0.8, "#efe"], - [1, "#af0"] - ] + [1, "#af0"], + ], ], [ "radialGradient", { id: "sun", from: spos, to: spos, r1: 5, r2: 50 }, [ [0, [1, 1, 1]], - [1, [1, 1, 0.75, 0]] - ] - ] + [1, [1, 1, 0.75, 0]], + ], + ], ], ["circle", { fill: "$bg" }, [W2, y], W2 - 20], - ["circle", { fill: "$sun" }, spos, 50] + ["circle", { fill: "$sun" }, spos, 50], ]; - } + }, }, "images 1k": { @@ -245,7 +240,7 @@ const TESTS: any = { }; const body = ["g", {}, ...repeatedly(ball, 1000)]; return () => body; - })() + })(), }, static: { @@ -259,7 +254,7 @@ const TESTS: any = { [], translation23([], [150, 150]), skewX23([], -Math.PI / 6) - ) + ), }, ["rect", { fill: "#ff0" }, [-50, -50], 100, 100], [ @@ -268,14 +263,14 @@ const TESTS: any = { fill: "#00f", font: "18px Menlo", align: "center", - baseline: "middle" + baseline: "middle", }, [0, 0], - new Date().toISOString() - ] + new Date().toISOString(), + ], ]; return () => body; - })() + })(), }, ellipse: { @@ -292,13 +287,13 @@ const TESTS: any = { { stroke: hsva(x / 20, 1, 1) }, [150, 150], // pos addN(null, sincos(t + x * 0.1, 75), 75), // radii - Math.sin(t * 0.25) // axis + Math.sin(t * 0.25), // axis ], range(30) - ) + ), ]; - } - } + }, + }, }; // test case selection dropdown @@ -310,10 +305,10 @@ const choices = (_: any, target: Subscription, id: string) => [ const val = (e.target).value; window.location.hash = val.replace(/\s/g, "-"); target.next(val); - } + }, }, Object.keys(TESTS).map((k) => [k, k]), - id + id, ]; // event stream for triggering SVG conversion / export @@ -326,8 +321,8 @@ const selection = stream(); const scene = sync({ src: { id: selection, - time: fromRAF() - } + time: fromRAF(), + }, }).transform( map(({ id }) => ({ id, shapes: normalizeTree({}, TESTS[id].body()) })) ); @@ -342,8 +337,8 @@ scene.transform( [ "button.ml2", { onclick: () => trigger.next(true) }, - "convert & export" - ] + "convert & export", + ], ], // hdom-canvas component w/ injected `scene` subtree @@ -355,9 +350,9 @@ scene.transform( width: 300, height: 300, __normalize: false, - ...TESTS[id].attribs + ...TESTS[id].attribs, }, - shapes + shapes, ], ["div.ma2.tc", TESTS[id].desc], @@ -365,10 +360,10 @@ scene.transform( "a.link", { href: - "https://github.com/thi-ng/umbrella/tree/develop/examples/hdom-canvas-shapes" + "https://github.com/thi-ng/umbrella/tree/develop/examples/hdom-canvas-shapes", }, - "Source code" - ] + "Source code", + ], ]), updateDOM() ); @@ -386,13 +381,13 @@ sync({ { width: 300, height: 300, stroke: "none", fill: "none" }, [ COMMENT, - `generated by @thi.ng/hiccup-svg @ ${new Date()}` + `generated by @thi.ng/hiccup-svg @ ${new Date()}`, ], convertTree(scene.shapes) ) ) ) - ) + ), }); // seed initial test selection diff --git a/examples/hdom-dropdown-fuzzy/src/config.ts b/examples/hdom-dropdown-fuzzy/src/config.ts index 563c6f6611..7001dc5459 100644 --- a/examples/hdom-dropdown-fuzzy/src/config.ts +++ b/examples/hdom-dropdown-fuzzy/src/config.ts @@ -199,20 +199,20 @@ export const state = { "Vietnam", "Yemen", "Zambia", - "Zimbabwe" - ].map((x, i) => [i, x]) - } + "Zimbabwe", + ].map((x, i) => [i, x]), + }, }; export const theme = { root: { - class: "sans-serif" + class: "sans-serif", }, column: { - class: "fl w-100 w-50-ns w-33-l pa2" + class: "fl w-100 w-50-ns w-33-l pa2", }, input: { - class: "bg-transparent w-100 bn pa2" + class: "bg-transparent w-100 bn pa2", }, dd: { root: { class: "" }, @@ -220,28 +220,28 @@ export const theme = { style: { "max-height": 0, "overflow-y": "hidden", - opacity: 0 - } + opacity: 0, + }, }, bodyOpen: { style: { "max-height": "calc(11 * 1.8rem)", "overflow-y": "scroll", opacity: 1, - transition: "all 100ms ease-in" - } + transition: "all 100ms ease-in", + }, }, item: { class: - "pointer link db w-100 ph3 pv2 black hover-bg-washed-green bg-animate bb b--moon-gray" + "pointer link db w-100 ph3 pv2 black hover-bg-washed-green bg-animate bb b--moon-gray", }, itemSelected: { class: - "pointer link db w-100 ph3 pv2 black hover-bg-light-gray bg-animate bb b--moon-gray b" + "pointer link db w-100 ph3 pv2 black hover-bg-light-gray bg-animate bb b--moon-gray b", }, - itemDisabled: { class: "db w-100 ph3 pv2 gray bb b--moon-gray" } + itemDisabled: { class: "db w-100 ph3 pv2 gray bb b--moon-gray" }, }, fuzzy: { - class: "b underline" - } + class: "b underline", + }, }; diff --git a/examples/hdom-dropdown-fuzzy/src/fuzzy.ts b/examples/hdom-dropdown-fuzzy/src/fuzzy.ts index 8908da7636..aa5cc6b8ea 100644 --- a/examples/hdom-dropdown-fuzzy/src/fuzzy.ts +++ b/examples/hdom-dropdown-fuzzy/src/fuzzy.ts @@ -1,10 +1,5 @@ import { EV_SET_VALUE } from "@thi.ng/interceptors"; -import { - comp, - filterFuzzy, - iterator, - map -} from "@thi.ng/transducers"; +import { comp, filterFuzzy, iterator, map } from "@thi.ng/transducers"; import { DropdownItem, dropdownListeners, DropdownState } from "./dropdown"; import type { IView } from "@thi.ng/atom"; @@ -28,13 +23,13 @@ export const fuzzyDropdown = (ctx: any, opts: FuzzyArgs) => { oninput: (e: Event) => ctx.bus.dispatch([ EV_SET_VALUE, - [opts.filter.path, (e.target).value] + [opts.filter.path, (e.target).value], ]), onclear: () => ctx.bus.dispatch([EV_SET_VALUE, [opts.filter.path, ""]]), oncancel: close, - onconfirm: close - } + onconfirm: close, + }, ]; return () => { const state: any = { ...opts.state.deref() }; @@ -44,7 +39,7 @@ export const fuzzyDropdown = (ctx: any, opts: FuzzyArgs) => { ...iterator( comp( filterFuzzy(filter, { - key: (x: DropdownItem) => x[1].toLowerCase() + key: (x: DropdownItem) => x[1].toLowerCase(), }), map( ([id, x]) => @@ -54,12 +49,12 @@ export const fuzzyDropdown = (ctx: any, opts: FuzzyArgs) => { (y) => ["span", ctx.theme.fuzzy, y], x, filter - ) + ), ] ) ), state.items - ) + ), ]; } return [ @@ -69,8 +64,8 @@ export const fuzzyDropdown = (ctx: any, opts: FuzzyArgs) => { openLabel: filterInput, hoverLabel: opts.hoverLabel, noItems: "no matches", - state - } + state, + }, ]; }; }; diff --git a/examples/hdom-dropdown/src/config.ts b/examples/hdom-dropdown/src/config.ts index baaed9e4fa..cb0f2470de 100644 --- a/examples/hdom-dropdown/src/config.ts +++ b/examples/hdom-dropdown/src/config.ts @@ -16,8 +16,8 @@ export const state = { "Sport", "Thriller", "War", - "Western" - ].map((x, i) => [i, x]) + "Western", + ].map((x, i) => [i, x]), }, bar: { open: false, @@ -30,17 +30,17 @@ export const state = { "Middle East", "North America", "Oceania", - "South America" - ].map((x, i) => [i, x]) - } + "South America", + ].map((x, i) => [i, x]), + }, }; export const theme = { root: { - class: "sans-serif" + class: "sans-serif", }, column: { - class: "fl w-100 w-50-ns w-33-l pa2" + class: "fl w-100 w-50-ns w-33-l pa2", }, dd: { root: { class: "" }, @@ -48,24 +48,24 @@ export const theme = { style: { "max-height": 0, "overflow-y": "hidden", - opacity: 0 - } + opacity: 0, + }, }, bodyOpen: { style: { "max-height": "calc(11 * 1.8rem)", "overflow-y": "scroll", opacity: 1, - transition: "all 100ms ease-in" - } + transition: "all 100ms ease-in", + }, }, item: { class: - "pointer link db w-100 ph3 pv2 black hover-bg-washed-green bg-animate bb b--moon-gray" + "pointer link db w-100 ph3 pv2 black hover-bg-washed-green bg-animate bb b--moon-gray", }, itemSelected: { class: - "pointer link db w-100 ph3 pv2 black hover-bg-light-gray bg-animate bb b--moon-gray b" - } - } + "pointer link db w-100 ph3 pv2 black hover-bg-light-gray bg-animate bb b--moon-gray b", + }, + }, }; diff --git a/examples/hdom-dropdown/src/index.ts b/examples/hdom-dropdown/src/index.ts index b7a0c27420..1b08d1ac25 100644 --- a/examples/hdom-dropdown/src/index.ts +++ b/examples/hdom-dropdown/src/index.ts @@ -25,10 +25,10 @@ start( state: ctx.bus.state.deref().foo, hoverLabel: [ ["span", "Choose a genre..."], - ["i.fr.fas.fa-angle-down"] - ] - } - ] + ["i.fr.fas.fa-angle-down"], + ], + }, + ], ], [ "div", @@ -40,11 +40,11 @@ start( state: ctx.bus.state.deref().bar, hoverLabel: [ ["span", "Region..."], - ["i.fr.fas.fa-angle-down"] - ] - } - ] - ] + ["i.fr.fas.fa-angle-down"], + ], + }, + ], + ], ]; }, { ctx: { bus, theme } } diff --git a/examples/hdom-elm/src/elm.ts b/examples/hdom-elm/src/elm.ts index 269e52a405..89606dd2c1 100644 --- a/examples/hdom-elm/src/elm.ts +++ b/examples/hdom-elm/src/elm.ts @@ -2,7 +2,7 @@ import { DEFAULT_IMPL, HDOMImplementation, HDOMOpts, - resolveRoot + resolveRoot, } from "@thi.ng/hdom"; import { derefContext } from "@thi.ng/hiccup"; import type { Fn, Fn2 } from "@thi.ng/api"; diff --git a/examples/hdom-elm/src/index.ts b/examples/hdom-elm/src/index.ts index 1150051f19..b12a54775a 100644 --- a/examples/hdom-elm/src/index.ts +++ b/examples/hdom-elm/src/index.ts @@ -1,11 +1,6 @@ import { setIn, updateIn } from "@thi.ng/paths"; import { Z3 } from "@thi.ng/strings"; -import { - DEC, - DEFER, - INC, - RANDOM -} from "./api"; +import { DEC, DEFER, INC, RANDOM } from "./api"; import { mount } from "./elm"; mount( diff --git a/examples/hdom-inner-html/src/index.ts b/examples/hdom-inner-html/src/index.ts index cae69c1875..ee99bc234c 100644 --- a/examples/hdom-inner-html/src/index.ts +++ b/examples/hdom-inner-html/src/index.ts @@ -23,7 +23,7 @@ const innerHtmlWrapper = () => this.el.innerHTML = ""; delete this.prev; delete this.el; - } + }, }; /** @@ -36,7 +36,7 @@ const app = () => { wrapper, new Date().getSeconds() & 1 ? `
Time now:
` - : `
${new Date().toLocaleTimeString()}
` + : `
${new Date().toLocaleTimeString()}
`, ]; }; diff --git a/examples/hdom-local-render/src/index.ts b/examples/hdom-local-render/src/index.ts index 9e2df9e67e..cfb2adf422 100644 --- a/examples/hdom-local-render/src/index.ts +++ b/examples/hdom-local-render/src/index.ts @@ -76,9 +76,9 @@ class Foo extends LocalReRenderable { onclick: () => { this.col = COLORS.next().value; this.localRender(this.time); - } + }, }, - `${this.id}: ${time}` + `${this.id}: ${time}`, ]; } } @@ -105,7 +105,7 @@ const app = ({ time }: any) => [ // memoized...) [foo("a"), time], [foo("b"), time], - [foo("c"), time] + [foo("c"), time], ]; // trigger full DOM updates every 2 secs diff --git a/examples/hdom-skip-nested/src/index.ts b/examples/hdom-skip-nested/src/index.ts index bd42f5e27c..3c34e1fbce 100644 --- a/examples/hdom-skip-nested/src/index.ts +++ b/examples/hdom-skip-nested/src/index.ts @@ -35,14 +35,14 @@ const button = () => this.id++; this.enabled = true; }, 500); - } + }, }, - this.id + this.id, ]; this.previd = this.id; this.prevenabled = this.enabled; return body; - } + }, }; /** @@ -67,14 +67,14 @@ const wrapper = () => { onclick: () => { nextSkip = !nextSkip; requestAnimationFrame(() => (skip = nextSkip)); - } + }, }, - nextSkip ? "unskip!" : "skip!" + nextSkip ? "unskip!" : "skip!", ], [bt, id], nextSkip ? ["div.dib.mh3.f7.red", "(counter updates not shown)"] - : null + : null, ]; }; diff --git a/examples/hdom-skip/src/index.ts b/examples/hdom-skip/src/index.ts index 2f49fdfe58..d97026f6bf 100644 --- a/examples/hdom-skip/src/index.ts +++ b/examples/hdom-skip/src/index.ts @@ -27,7 +27,7 @@ const timer = (period: number, name = `${period}ms`) => { ? ["div.sans-serif", `${name} @ ${this.val++ || 0}`] : // dummy content (could be an empty div) ["div", { __skip: true }, "I should be never seen"]; - } + }, }; }; @@ -46,12 +46,12 @@ const app = { "a.db.mt3.link", { href: - "https://github.com/thi-ng/umbrella/tree/develop/examples/hdom-skip" + "https://github.com/thi-ng/umbrella/tree/develop/examples/hdom-skip", }, - "Source code" - ] + "Source code", + ], ]; - } + }, }; // kick off diff --git a/examples/hdom-theme-adr-0003/src/index.ts b/examples/hdom-theme-adr-0003/src/index.ts index fae71f836a..e2bf80c10b 100644 --- a/examples/hdom-theme-adr-0003/src/index.ts +++ b/examples/hdom-theme-adr-0003/src/index.ts @@ -180,7 +180,7 @@ const app = (ctx: any) => [ "Please see ", [ link, - "https://github.com/thi-ng/umbrella/blob/master/packages/hdom-components/adr/0003-component-configuration-via-context.md", + "https://github.com/thi-ng/umbrella/blob/develop/packages/hdom-components/adr/0003-component-configuration-via-context.md", "ADR-0003", ], " for details of this approach.", @@ -189,7 +189,7 @@ const app = (ctx: any) => [ "p", [ link, - "https://github.com/thi-ng/umbrella/blob/master/examples/hdom-theme-adr-0003", + "https://github.com/thi-ng/umbrella/blob/develop/examples/hdom-theme-adr-0003", "Source", ], ], diff --git a/examples/hdom-toggle/src/index.ts b/examples/hdom-toggle/src/index.ts index bc1aa42905..9a5f00df88 100644 --- a/examples/hdom-toggle/src/index.ts +++ b/examples/hdom-toggle/src/index.ts @@ -3,7 +3,7 @@ import { slideToggleDot, slideToggleRect, ToggleDotOpts, - ToggleRectOpts + ToggleRectOpts, } from "@thi.ng/hdom-components"; const state = [true, false, true, false, true]; @@ -13,21 +13,21 @@ const toggleState = (i: number) => (state[i] = !state[i]); const dotOpts: Partial = { r: 8, pad: 2, - margin: 2 + margin: 2, }; const rectOpts: Partial = { w: 16, h: 8, pad: 2, - margin: 2 + margin: 2, }; const strokeOpts = { bgOn: { stroke: "#00f", "stroke-width": 2, fill: "none" }, bgOff: { stroke: "#99f", "stroke-width": 2, fill: "none" }, fgOn: { fill: "#00f" }, - fgOff: { fill: "#99f" } + fgOff: { fill: "#99f" }, }; const toggleH = slideToggleDot(dotOpts); @@ -40,7 +40,7 @@ const toggleVStroke = slideToggleDot({ fgOff: { stroke: "#99f", fill: "none" }, vertical: true, pad: 3, - r: 7 + r: 7, }); const toggleHSq = slideToggleRect({ ...rectOpts }); @@ -51,7 +51,7 @@ const toggleVSqStroke = slideToggleRect({ ...strokeOpts, w: 8, h: 20, - vertical: true + vertical: true, }); const toggleGroup = (_: any, toggle: any) => [ @@ -62,12 +62,12 @@ const toggleGroup = (_: any, toggle: any) => [ toggle, { class: "pointer mr1", - onclick: () => toggleState(i) + onclick: () => toggleState(i), }, - x + x, ], - ["div.tc", i] - ]) + ["div.tc", i], + ]), ]; const cancel = start(() => [ @@ -79,7 +79,7 @@ const cancel = start(() => [ [toggleGroup, toggleHSq], [toggleGroup, toggleHSqStroke], [toggleGroup, toggleVSq], - [toggleGroup, toggleVSqStroke] + [toggleGroup, toggleVSqStroke], ]); if (process.env.NODE_ENV !== "production") { diff --git a/examples/hdom-vscroller/src/commits.json b/examples/hdom-vscroller/src/commits.json index 51aae4049b..169703464a 100644 --- a/examples/hdom-vscroller/src/commits.json +++ b/examples/hdom-vscroller/src/commits.json @@ -1 +1,7103 @@ -[["d990c3c2","2019-02-08","perf(geom-isoline): minor optimizations"],["3ed4ea12","2019-02-07","fix(hdom): fix #72, update normalizeElement()"],["2b3dd7f4","2019-02-05","feat(examples): dynamic chart width (package-stats)"],["0715665a","2019-02-05","docs(geom-voronoi): add example screenshot"],["74fb4d83","2019-02-05","Publish"],["3b7d8cee","2019-02-05","docs: update main readme"],["c4aaa82b","2019-02-05","build: update various geom packages (deps, tags & readmes)"],["134c353f","2019-02-05","Merge branch 'develop' of github.com:thi-ng/umbrella into develop"],["cf7dc3a3","2019-02-05","feat(bencode): re-import updated bencode pkg"],["f2612a6b","2019-02-05","feat(bencode): re-import updated bencode pkg"],["9d8dd32e","2019-02-05","refactor(vectors): update imports (zip)"],["7f4e3989","2019-02-05","refactor(geom-tessellate): update imports (zip)"],["5204a7fe","2019-02-05","refactor(geom): update imports (zip)"],["29045902","2019-02-05","refactor(color): update imports (zip)"],["f15ea5fc","2019-02-05","refactor(examples): update deps & imports in various examples"],["d1151cea","2019-02-05","refactor(transducers): deprecate & rename tuples() => zip()"],["a7c1ef7b","2019-02-05","refactor(transducers): migrate binary related ops to new package"],["02877c79","2019-02-05","feat(transducers-binary): extract as new pkg from @thi.ng/transducers"],["ae83bb29","2019-02-05","fix(transducers): ensure all vals in hexDump iterator version"],["57d4488a","2019-02-05","feat(math): add PHI const"],["8d61b710","2019-02-05","refactor(examples): minor update iso-plasma"],["678c3ff0","2019-02-02","refactor(examples): update iso-plasma"],["37fb295f","2019-02-02","feat(examples): add iso-plasma demo"],["bd1754d5","2019-02-01","feat(geom-accel): add selectVals() impl"],["4bde37e1","2019-02-01","feat(geom-api): add ISpatialAccel.selectVals()"],["13f655a6","2019-02-01","docs: update main readme"],["d7ccc887","2019-02-01","refactor(vector-pools): update AttribPool & VecPool ctors"],["6d15686a","2019-02-01","refactor(malloc): update MemPoolOpts & MemPool ctor args"],["e30b2111","2019-02-01","feat(geom-isoline): import package (ported from clojure)"],["b7d162fa","2019-02-01","feat(vector-pools): update & fix AttribPool resize logic"],["1b72d1d4","2019-01-31","build: update deps in unreleased packages"],["3529c2f3","2019-01-31","Merge branch 'master' into develop"],["50a5098a","2019-01-31","Publish"],["3adabc4d","2019-01-31","fix(strings): fix #70, replace kebab() regex w/ legacy version"],["a55f4770","2019-01-31","feat(malloc): add reallocArray(), update realloc() & compact(), tests"],["bf8b28fc","2019-01-31","feat(malloc): add realloc(), update free()"],["16b48b38","2019-01-31","fix(vector-pools): AttribPool opts & default handling"],["4acc8318","2019-01-30","feat(examples): update hdom-canvas-shapes (add ellipse test)"],["ea322265","2019-01-30","refactor(geom-isec): update/merge intersectRayRect/AABB"],["5f7dd635","2019-01-30","feat(geom): add ray-rect/aabb impls for intersects()"],["93e2ea65","2019-01-30","feat(geom-isec): add ray-rect/aabb tests, fix ray-line, add NONE, update docs"],["4d19aa20","2019-01-29","perf(geom-voronoi): update computeDual(), update isBoundary()"],["2ff68db7","2019-01-29","feat(geom-voronoi): add support for vertex user data, tolerances, refactor QE changes"],["426cd37f","2019-01-29","refactor(quad-edge): replace QuadEdge class w/ type alias, add docs"],["f249b7e1","2019-01-29","docs: update main readme"],["613ffeba","2019-01-29","Merge branch 'feature/geom-qe' into develop"],["b11837a2","2019-01-29","docs(geom): update readme"],["c903293f","2019-01-29","feat(geom-voronoi): re-import & update QE delaunay/voronoi pkg (MBP2010)"],["ee76797b","2019-01-29","feat(quad-edge): re-import & update quad edge impl (MBP2010)"],["4b852882","2019-01-29","refactor(geom): minor update clippedLine()"],["084883eb","2019-01-29","refactor(geom-clip): minor update liangBarsky"],["6d14f2b7","2019-01-28","refactor(geom): swap Group ctor & factory arg order"],["af099ee5","2019-01-28","build(geom): update geom-clip dep & refs"],["004d7f46","2019-01-28","build(geom-clip): rename pkg geom-clip-convex => geom-clip, update deps"],["6391d104","2019-01-28","refactor(geom-tessellate): update imports / deps"],["31e369bd","2019-01-28","feat(math): add simplifyRatio()"],["226645fd","2019-01-28","refactor(geom): update pointInside & classifyPoint impls (delegate)"],["895102d4","2019-01-28","feat(geom-poly-utils): add convexity(), remove obsolete/migrated point checks"],["6ee03ebc","2019-01-28","feat(geom-api): re-add Convexity enum"],["2b235461","2019-01-28","feat(geom-isec): migrate point intersection/containment checks"],["11bf7232","2019-01-28","minor(geom-closest-point): minor updates"],["f9dd3037","2019-01-28","docs(vectors): update docstrings"],["e2047df3","2019-01-25","Merge branch 'feature/geom-refactor' into develop"],["df8332d0","2019-01-25","refactor(geom): remove obsolete/migrated fns, update deps, readme"],["37741081","2019-01-25","fet(geom-hull): extract from geom as new package"],["68a26f44","2019-01-25","feat(geom-poly-utils): move barycentric fns from main geom pkg"],["74aa9543","2019-01-25","docs(geom): update readme"],["f6a621a3","2019-01-25","docs(geom-subdiv-curve): add docs, minor updates subdivide()"],["87fddb89","2019-01-25","refactor(geom-api): minor update SubdivKernel"],["598fca55","2019-01-25","refactor(poisson): minor optimizations, update PoissonOpts & defaults"],["bee1c89c","2019-01-24","feat(poisson): add geom-api dep, optimize search"],["9022d5bb","2019-01-24","perf(geom-accel): optimize single nearest point search, fix select()"],["18ce6c96","2019-01-24","refactor(geom-api): update ISpatialAccel"],["5c98ed70","2019-01-24","refactor(geom-api): split into separate files, add ISpatialAccel"],["03352e11","2019-01-23","refactor(examples): update geom-tessel demo"],["b223603d","2019-01-23","refactor(geom): update to use geom-api types"],["f7ad4d3b","2019-01-23","refactor(geom-tessellate): update to use geom-api types"],["0964a956","2019-01-23","refactor(geom-subdiv-curve): update to use geom-api types"],["5b674154","2019-01-23","refactor(geom-splines): update to use geom-api types"],["8d878b99","2019-01-23","refactor(geom-resample): update to use geom-api types, add douglas-peucker"],["27c4bf07","2019-01-23","refactor(geom-isec): update return types, use geom-api"],["47fb5e7b","2019-01-23","minor(geom-clip-convex): update imports"],["e36e2213","2019-01-23","refactor(geom-arc): update to use geom-api types"],["4e53293d","2019-01-23","feat(geom-api): extract from geom as new package"],["02231a3a","2019-01-23","build: update make-module script"],["407e9a54","2019-01-23","docs: update readmes"],["fb532b8c","2019-01-23","refactor(geom): remove obsolete/extracted internal ops, update publics"],["cb2429c4","2019-01-23","feat(geom-tessellate): extract from geom as new package"],["324a5162","2019-01-23","feat(geom-subdiv-curve): extract from geom as new package"],["5ef4c56d","2019-01-23","feat(geom-poly-utils): extract from geom as new package"],["798de06b","2019-01-23","feat(geom-closest-point): add more fns, update pkg"],["2054574a","2019-01-23","fix(geom-arc): add bounds return type, add missing re-export, update pkg"],["2440ffdd","2019-01-23","feat(vectors): add corner2, clockwise2, signedAreaC2, isInArray fns"],["9576920b","2019-01-23","build: simplify bundle-module script, update build cmds in all packages"],["58e0a05d","2019-01-23","feat(vectors): add VecPair type alias, add copyVectors()"],["15d67121","2019-01-23","feat(geom-clip-convex): extract from geom as new package"],["027150a6","2019-01-23","feat(geom-splines): extract from geom as new package"],["6cc8c738","2019-01-23","feat(geom-arc): extract from geom as new package (#69)"],["79abd0ba","2019-01-23","feat(geom-resample): extract from geom as new package"],["285dde49","2019-01-23","feat(geom-isec): extract from geom as new package"],["4ff5005a","2019-01-23","feat(geom-closest-point): extract from geom as new package"],["cae83948","2019-01-22","feat(math): add minError() search"],["e998610c","2019-01-22","Publish"],["35a0a59e","2019-01-22","fix(examples): update canvas examples due to recent package changes"],["c6023793","2019-01-22","feat(geom): add asPolyline() multi-fn"],["a017b10a","2019-01-22","feat(geom): add attrib support to PathBuilder"],["8c1df496","2019-01-22","fix(geom): update Rect.toHiccup() format (separate widht/height vals)"],["1d92c8c3","2019-01-22","feat(hdom-canvas): add color dep, update color attrib handling"],["783d9faf","2019-01-22","docs(hiccup-svg): update readme, add attrib conv notes, fix example"],["7f6011e7","2019-01-22","feat(hiccup-svg): add color dep, add attrib conversion for all elements"],["571fc704","2019-01-21","docs: update main readme"],["124acdb1","2019-01-21","docs(poisson): add/update doc strings, readme, example screenshot"],["d098aff5","2019-01-21","Publish"],["193f9d4a","2019-01-21","feat(poisson): re-import & update poisson package (MBP2010)"],["8fd5728b","2019-01-21","fix(geom-accel): add root null check for select/selectKeys()"],["3d499ad5","2019-01-21","refactor(geom): update tangentAt(), use direction() from vectors pkg"],["07d5f8fc","2019-01-21","feat(vectors): migrate direction(), normalLeft/Right2() from geom pkg"],["862ed083","2019-01-21","docs(color): update readme"],["4cd3850b","2019-01-21","docs(vectors): update readme"],["d7053813","2019-01-21","docs(vector-pools): update readme"],["0d10d507","2019-01-21","docs: prune changelogs"],["348e7303","2019-01-21","Publish"],["b9cea8cc","2019-01-21","refactor(vectors): update angleBetween*() fns, add absInner opt arg"],["a78bd87b","2019-01-21","feat(math): add absInnerAngle()"],["7c1bf047","2019-01-21","refactor(examples): update gesture-analysis demo"],["822d8fba","2019-01-21","docs: update readme links / package names"],["31595ebe","2019-01-20","Merge branch 'master' of github.com:thi-ng/umbrella"],["51723f99","2019-01-20","build(pointfree-lang): fix UMD identifier"],["15e4cb2d","2019-01-20","Merge branch 'feature/vec-refactor' into develop"],["b5842fa7","2019-01-20","docs(geom): update readme"],["74b7a38a","2019-01-20","build(vectors): refix version to previous"],["0779337d","2019-01-20","build: update vectors3 => vectors references everywhere"],["0fd2498e","2019-01-20","build(vectors): replace old vectors package w/ vectors3 (renamed back to vectors)"],["4bd77082","2019-01-20","build: update geom3 => geom references"],["682385a1","2019-01-20","build(geom): replace old geom package w/ geom3"],["ff503669","2019-01-20","build: update depgraph script to display per package deps/dependents"],["2f26cf68","2019-01-20","docs(hdom-canvas): fix readme example"],["8e2c8b5c","2019-01-20","refactor(geom): update withAttribs() return type"],["9a507694","2019-01-20","feat(hdom-canvas): add ellipse() / ellipticArc(), update readme"],["6f341c5c","2019-01-20","docs(vector-pools): fix AttribPool example layout"],["db4a2018","2019-01-20","feat(geom): re-add barycentric conversions, collation mappers (still unused)"],["08f7bd16","2019-01-20","docs(matrices): add docstrings for most fns"],["2aceab97","2019-01-20","feat(matrices): add m22 & m23 matrix converters"],["311b0074","2019-01-20","feat(vectors): add default output handling for set/setC/setS fns"],["12ad59a1","2019-01-20","refactor(examples): update geom-knn & geom-tessel demos"],["5ca58032","2019-01-19","refactor(color): remove circular dependencies, update parseCss()"],["5270143a","2019-01-19","refactor(defmulti): remove optional excess args from type sigs"],["5d087367","2019-01-19","refactor(examples): update geom-knn demo"],["485051db","2019-01-19","refactor(geom-accel): update to use new vectors package"],["46bb8730","2019-01-19","build: remove obsolete geom2 package"],["370f9280","2019-01-19","fix(hiccup-svg): convert path arc segment axis theta to degrees"],["63b3a5d9","2019-01-19","feat(geom): update closestPoint(), add support for Arc"],["0e5e7768","2019-01-19","feat(geom): add arcPointAt() helper, refactor Arc, minor other updates"],["62ec49fe","2019-01-19","fix(geom): update arcFrom2Points()"],["910529dd","2019-01-19","feat(geom): add splitNearPoint() for line & polyline, update Sampler"],["499e14b3","2019-01-18","refactor(geom): add tessellate() multi-fn, move/rename tessellators"],["1d754eb9","2019-01-18","feat(geom): add splitNearPoint(), Sampler.closestT(), internal restructure"],["0451f8f6","2019-01-18","docs: update main readme"],["9623b4e9","2019-01-18","build(geom): add @thi.ng/compose dependency"],["9a4570bf","2019-01-18","minor(geom): minor updates"],["56f60372","2019-01-18","feat(geom): add flip() impls"],["ebc9a981","2019-01-18","feat(geom): add pointAt() impls for Cubic/Quadratic"],["eaf1a1b0","2019-01-18","feat(geom): add closestPoint() impls for splines, line, polygons, polyline"],["627e20d4","2019-01-18","feat(geom): add transform() impls for Cubic/Quadratic"],["d763621c","2019-01-18","feat(geom): add clippedLine(), minor update liangBarsky()"],["cd59f664","2019-01-18","perf(geom): use squared dist for classifyPoint() (circle)"],["e834597c","2019-01-18","feat(geom): add/update edges(), pointInside() & classifyPoint() impls"],["f5a53ca0","2019-01-18","feat(geom): re-add vertices() impls for Cubic/Quadratic"],["3c9a7b0f","2019-01-18","feat(geom): re-add pathFromSvg()"],["66267e22","2019-01-18","feat(geom): add intersection checks & intersects() multi-fn"],["f1f428a2","2019-01-17","feat(geom): re-add tessellators"],["9f91cfa1","2019-01-17","fix(api): update assert(), re-export mixin()"],["5f873009","2019-01-17","feat(vectors): add randMinMax"],["d09cc795","2019-01-17","feat(geom): add clipConvex, scatter, warpPoints"],["61cfb0f1","2019-01-16","feat(geom): add path builder, path & arc op impls"],["e81d8c31","2019-01-16","feat(vectors): update/split angleBetween for 2d/3d"],["df49c71c","2019-01-16","Merge branch 'master' into develop"],["a6e6f2af","2019-01-16","Merge pull request #68 from evilive3000/fix-cache-ltru"],["c3762e97","2019-01-16","fix(cache): TLRU: expected behavior on getSet()"],["2cc682a6","2019-01-16","fix(examples): add release() lifecycle method (hdom-inner-html)"],["4effc0ec","2019-01-16","feat(examples): add hdom-inner-html demo #67"],["fea8fbe3","2019-01-16","feat(geom): re-add arc, cubic, quadratic ops, splitAt & other ops"],["18437026","2019-01-16","perf(vectors): update copy()"],["446a1832","2019-01-16","fix(vectors): minor update opt arg in VecOp*"],["66e45ccd","2019-01-15","build: update .npmignore files"],["253b1be9","2019-01-15","Merge branch 'develop' into feature/vec-refactor"],["a75f1920","2019-01-15","docs: update/fix various readmes"],["1cfefdab","2019-01-15","refactor(malloc): update imports"],["c8d8a37e","2019-01-15","refactor(malloc): add/extract types to api.ts"],["e04eb294","2019-01-11","refactor(defmulti): update imports, fix tests (cherry picked from cdd8659a)"],["89dafa45","2019-01-15","build: update bundle-module script, disable minification in UMD outputs"],["b63d2589","2019-01-15","docs(transducers): update cat() docstring"],["b70e84d7","2019-01-15","build: update .npmignore files (add .meta)"],["9eb6f2d2","2019-01-15","build: update rollup dev dep"],["491980c3","2019-01-15","Merge branch 'develop' into feature/vec-refactor"],["d118464b","2019-01-15","test(vectors): update tests (due to math eqDelta change in eps handling)"],["c0e3a0bc","2019-01-15","feat(geom): add temp geom3 package (another refactored version of geom2)"],["e28f56ec","2019-01-15","Merge branch 'develop' into feature/vec-refactor"],["50180096","2019-01-15","feat(math): update eqDelta w/ adaptive eps, rename old => eqDeltaFixed"],["a39811c6","2019-01-15","feat(hiccup-svg): add ellipse shape type, update convert()"],["d14c94b2","2019-01-15","build: disable minification for UMD outputs"],["c12ad1cc","2019-01-15","test(vectors): update eqDelta tests"],["18aeb49c","2019-01-15","build(vectors): add memoize dep"],["61e40638","2019-01-14","feat(vectors): add addm/addmN, subm/submN"],["d5ba06a4","2019-01-11","build: remove obsolete temp package vectors2"],["aa995682","2019-01-11","Merge branch 'develop' into feature/vec-refactor"],["507218aa","2019-01-11","minor(examples): update package-stats"],["fcbc0c27","2019-01-11","build: update bundle-module, strip comments, add source maps & dev deps"],["048bdb1c","2019-01-11","refactor(vectors2): update imports"],["f3a5e0ff","2019-01-11","refactor(malloc): update imports"],["c41b96fb","2019-01-11","refactor(geom): update imports, fix tests"],["cdd8659a","2019-01-11","refactor(defmulti): update imports, fix tests"],["c9da5485","2019-01-11","build(examples): update geom-tessel tsconfig"],["82f8ef27","2019-01-10","revert(hiccup-svg): undo merge mistake in convert.ts"],["a7ea1fc3","2019-01-10","build(vectors): build: update package scripts, outputs, imports"],["d4eddef2","2019-01-10","build(vectors2): build: update package scripts, outputs, imports"],["372c199c","2019-01-10","build(vector-pools): build: update package scripts, outputs, imports"],["5d25c1ae","2019-01-10","build(matrices): build: update package scripts, outputs, imports"],["e247386c","2019-01-10","build(geom): build: update package scripts, outputs, imports"],["4e48cb98","2019-01-10","build(color): build: update package scripts, outputs, imports"],["d7d237d0","2019-01-10","Merge branch 'develop' into feature/vec-refactor"],["ab159105","2019-01-10","test(api): fix import in mixin test"],["c91df5fc","2019-01-10","build: add test-only yarn script"],["6be3a871","2019-01-10","build: fix cjs output path in bundle-module script"],["3741663f","2019-01-10","Merge branch 'feature/multi-output' into develop"],["f6e3cdd5","2019-01-10","docs(examples): add troubleshooting notes"],["bbe636f4","2019-01-10","fix(examples): add quote escaping in xml-converter"],["bb3db27c","2019-01-10","build(examples): update tsconfig for commit-table-ssr"],["cc26ae98","2019-01-10","docs(examples): update readmes to refer to wiki build instructions"],["8f270dfa","2019-01-10","build: update project tpl scripts, ignore files"],["1f01bf8f","2019-01-10","build: update make-module script"],["4df9ec41","2019-01-10","build: update bundle-module outputs, emit meta data, update .gitignore"],["a894a24a","2019-01-10","fix(transducers): update juxt re-export"],["5c3080d7","2019-01-10","build: temporarily add webpack until parcel-bundler/parcel#2513 is fixed"],["bac59db6","2019-01-10","feat(examples): add package-stats charting example"],["27438f9c","2019-01-09","minor(examples): cleanup"],["4e28b5a6","2019-01-09","build(examples): update dev deps"],["1618c136","2019-01-09","build(examples): enable scope hoisting in `yarn build` scripts"],["d2d7952e","2019-01-08","minor: update imports in readme's / examples"],["3f1b79de","2019-01-08","build: update .gitignore"],["3747ad7b","2019-01-08","refactor(examples): update imports & deps of all examples"],["3b8576f3","2019-01-08","fix(csp): disable __State reverse enum lookup"],["d89f28fd","2019-01-08","fix(rstream-log): remove __Level reverse enum lookup, update Level (non const)"],["19449e8d","2019-01-08","fix(rstream-gestures): disable __GestureType reverse enum export"],["b238a3a9","2019-01-08","fix(rstream): disable __State reverse enum lookups"],["227be4b5","2019-01-08","fix(pointfree-lang): update NodeType handling"],["b198c195","2019-01-08","fix(hiccup-markdown): re-export TagFactories interface"],["f912a84a","2019-01-08","build: update package scripts, outputs, imports in remaining packages"],["b54b703d","2019-01-08","build: update package build scripts & outputs, imports in ~50 packages"],["f913d7bf","2019-01-08","build(api): update package build scripts / outputs"],["7fee8573","2019-01-08","build: update shared dev deps, rewrite bundle-module script"],["4e768394","2019-01-07","Merge branch 'develop' into feature/multi-output"],["d3944fb0","2019-01-07","build: switch travis to use node 10"],["a42b2e11","2019-01-07","refactor(rstream-query): use rstream nextID() util (fix regression)"],["3e1467fa","2019-01-07","refactor(rstream-log): use rstream nextID() util (fix regression)"],["c28ce64f","2019-01-07","Merge branch 'develop' into feature/multi-output"],["b31065bb","2019-01-07","Merge branch 'develop' of github.com:thi-ng/umbrella into develop"],["28f77e60","2019-01-07","build: update tsconfig & .npmignore files in all packages"],["4be67c59","2019-01-07","build: prep api, atom, bench, binary, checks, equiv, errors, paths for multi outputs"],["3df29305","2019-01-06","Merge pull request #66 from acarabott/feature/scaleWithCenter"],["92bce73d","2019-01-06","fix(vectors): fix NaNs in Mat23.scaleWithCenter"],["d1e275bd","2019-01-05","fix(rstream): avoid Subscription ctor to workaround parceljs build issue"],["e201ca8d","2019-01-05","refactor(rstream): replace Subscription.NEXT_ID w/ nextID() util"],["a313d830","2019-01-05","build: add/update dev deps, update build scripts in all packages"],["ce4b5283","2019-01-05","refactor(transducers-hdom): use arrow fns"],["e103d740","2019-01-05","refactor(transducers-fsm): use arrow fns"],["48670f58","2019-01-05","refactor(memoize): use arrow fns"],["5d530286","2019-01-05","refactor(csp): use arrow fns"],["e9f0542a","2019-01-05","refactor(transducers): use arrow fns"],["6eba2415","2019-01-05","refactor(rle-pack): use arrow fns"],["762db4e3","2019-01-05","refactor(rstream-csp): use arrow fns"],["8904cb4c","2019-01-05","refactor(rstream-gestures): use arrow fns"],["393d23ed","2019-01-05","minor(rstream-query): update formatting"],["14c00b29","2019-01-05","refactor(rstream-log): use arrow fns"],["ff9f8e0c","2019-01-05","minor(rstream-graph): update formatting"],["6c3ea083","2019-01-05","refactor(rstream): use arrow fns, update formatting"],["e0f7cb85","2019-01-05","minor(resolve-map): update formatting"],["560207a0","2019-01-05","refactor(math): use arrow fns"],["ad5574b9","2019-01-05","refactor(iterators): use arrow fns"],["3b74de92","2019-01-05","refactor(hiccup-css): use arrow fns"],["d9f4bd3f","2019-01-05","refactor(errors): use arrow fns"],["35377bd5","2019-01-05","refactor(compose): use arrow fns"],["025412a0","2019-01-05","refactor(compare): use arrow fns"],["aaf2723f","2019-01-05","refactor(associative): use arrow fns, update formatting"],["30c59fd5","2019-01-05","Merge branch 'feature/arrowfns' into develop"],["fc22a27e","2019-01-05","refactor(paths): update all as arrow fns"],["b70a3e1a","2019-01-05","refactor(checks): update all as arrow fns"],["3038a844","2019-01-04","docs(hiccup-markdown): update readme"],["634e2504","2019-01-04","Publish"],["343280d8","2019-01-04","refactor(examples): update MD demo, use parser from hiccup-markdown package"],["35db07fe","2019-01-04","feat(hiccup-markdown): add & refactor markdown parser (from example), update docs"],["5f09d3ec","2019-01-04","fix(examples): add missing return types"],["ffc68cef","2019-01-04","Merge branch 'develop' into feature/vec-refactor"],["6030753a","2019-01-04","Publish"],["492992d7","2019-01-04","docs: update package list in main readme"],["17c14b49","2019-01-04","docs(examples): update readmes"],["0a505c1a","2019-01-04","docs(fsm): update readme & package"],["98081e3a","2019-01-04","Merge branch 'feature/fsm' into develop"],["81e3fc79","2019-01-04","feat(fsm): add never(), optimize alts(), add docs for all matchers"],["297356dd","2019-01-04","docs(examples): update readme"],["120a7afd","2019-01-04","refactor(examples): remove 2nd table row in collectTable()"],["b60bf31a","2019-01-04","refactor(examples): cleanup parser & rules, tag handling, update readme"],["9585b86e","2019-01-04","feat(examples): add initial MD table support"],["a9336075","2019-01-04","feat(fsm): update not()"],["980d4888","2019-01-04","feat(examples): update MD parser, styles, readme"],["992f31ac","2019-01-04","feat(fsm): add always(), lit(), not(), cleanup imports"],["995a104b","2019-01-03","refactor(examples): update title & blockquote parsers/style"],["4a9bb3d6","2019-01-03","feat(fsm): add support for lookahead-1, add docs"],["f9cece70","2019-01-03","refactor(examples): update MD title parser"],["55671fc7","2019-01-03","feat(fsm): add repeat(), success(), refactor all matchers"],["36cadc96","2019-01-03","feat(examples): update tags, add hrule, blockquote, update CSS / readme"],["b04e0747","2019-01-03","feat(examples): update MD parser, add parse rules & custom tag support"],["9875cda8","2019-01-03","feat(examples): add markdown parser example"],["e03390b1","2019-01-03","feat(fsm): import fsm package"],["731ede02","2019-01-02","build: update deps (defmulti / transducers)"],["5b98d55e","2019-01-02","Merge branch 'develop' into feature/vec-refactor"],["26a29cf1","2019-01-02","Publish"],["1d29153c","2019-01-02","feat(defmulti): add opt fallback arg for defmultiN(), update docs"],["cd175866","2019-01-02","fix(transducers): add reduced() handling for cat()"],["161199f4","2019-01-02","feat(geom): add/rename type ids, add sphere, isec fns"],["2e6d1965","2019-01-02","fix(vectors): disable default prefix for random*() fns"],["2fb2aa32","2019-01-01","build: update deps"],["ba755f8a","2019-01-01","Merge branch 'develop' into feature/vec-refactor"],["7729d993","2019-01-01","Publish"],["488698a6","2019-01-01","feat(defmulti): add addAll(), add/update doc strings"],["d47798ed","2019-01-01","refactor(examples): update gesture analysis demo"],["b10c8d67","2019-01-01","refactor(geom): prep/update intersectShape() w/ new dispatch fn"],["c0008a7a","2018-12-31","minor(geom): update formatting"],["7cf5f7c4","2018-12-31","refactor(geom): update subdivKernel* fns"],["76c343c3","2018-12-31","feat(geom): add pointAt/tangentAt impls for circle/line"],["b9125168","2018-12-31","feat(geom): add ray skeleton impl"],["c7052171","2018-12-31","fix(vectors): cartesian2/3"],["52fb9399","2018-12-31","feat(matrices): add quatToMat33, update readme"],["4c6fe066","2018-12-31","fix(matrices): re-add persp divide in mulV344()"],["4f024918","2018-12-31","fix(matrices): scaleWithCenter* (add missing concat() arg)"],["6d58c309","2018-12-30","docs: rename pd image (because of GH CDN issues), update readme"],["cfc88744","2018-12-30","docs(color): add porterduff image"],["83a46311","2018-12-30","docs: fix readme links"],["0ee2be0a","2018-12-30","docs: update readmes"],["10fc9cc5","2018-12-30","docs(matrices): update readme (add full API list)"],["4f2f512c","2018-12-30","build(matrices): update deps"],["ae7a039e","2018-12-30","feat(matrices): add cwise matrix multiply, rename mul* => mulM*, move mulQ"],["c70189aa","2018-12-30","docs(vectors): update readme"],["7e19e7b4","2018-12-30","minor(vectors): minor update vop()"],["66036e6c","2018-12-30","fix(vectors): update gvec prop lookup & interning"],["6c9fe88e","2018-12-30","refactor(vectors): rename addWeighted*() => addW*(), update package kw"],["064d61c5","2018-12-30","docs(vectors): update readme & package keywords"],["d462ae0a","2018-12-30","perf(matrices): use setC6() for M23 ops"],["809383c9","2018-12-30","refactor(matrices): extract m33to44/m44to33() into own files, update re-exports"],["0ee306a2","2018-12-30","feat(vectors): add setC6()"],["0b07ac86","2018-12-30","fix(matrices): inject default output handling code"],["b5adea6f","2018-12-30","refactor(matrices): replace setValues*() w/ setC*(), update dotC*() use"],["b03b9192","2018-12-30","feat(matrices): add quaternion fns"],["06dd9634","2018-12-30","fix(vectors): result handling jitter()/project()"],["745053c5","2018-12-30","refactor(vector): minor updates arg/result handling"],["cfe333fe","2018-12-30","refactor(vectors): simplify various ops, improve tpl re-use"],["6b3608da","2018-12-30","fix(vectors): sum() impls"],["9b789bca","2018-12-30","refactor(vectors): simplify various ops, use setC*()"],["809bf9b9","2018-12-30","refactor(vectors): rename dotValues*() => dotC*()"],["6857f347","2018-12-30","feat(vectors): add clamp01(), clamp11() fns"],["dc6f4661","2018-12-30","refactor(vectors): add defMathOp()/defMathNOp(), update basic math ops"],["784f5c34","2018-12-29","build: update deps"],["b849bd1b","2018-12-29","feat(color): add alpha()/setAlpha(), add docs, re-exports, update readme"],["e7bb46b7","2018-12-29","feat(color): add Hue enum, closestHue*() fns, namedHueRgba()"],["172f5070","2018-12-29","docs(color): update readme"],["9d4fffa1","2018-12-29","build(color): add package keywords"],["aa303442","2018-12-29","feat(color): add convert() fallback, minor other updates"],["445b8c1f","2018-12-29","feat(color): add luminance defmulti"],["36b7d038","2018-12-29","refactor(color): rename, update matrix ops"],["f2cac286","2018-12-29","refactor(color): update type factory fns & ensureArgs()"],["a0f19956","2018-12-29","Merge branch 'develop' into feature/vec-refactor"],["b2cab4d0","2018-12-29","Publish"],["a90a712c","2018-12-29","fix(transducers): interpolate() interval selection, add minPos/maxPos"],["b0d28788","2018-12-29","refactor(color): update multiCosineGradient(), update readme"],["0546839d","2018-12-29","refactor(color): ColorMode const enum, update convert() dispatcher"],["a5c53c38","2018-12-29","fix(color): add/update conversions"],["04c38372","2018-12-28","refactor(color): update converters"],["4ca7a23d","2018-12-28","Merge branch 'feature/vec-refactor' into feature/color"],["a72562cf","2018-12-28","Merge branch 'develop' into feature/vec-refactor"],["eae8d140","2018-12-28","Publish"],["846ab5ca","2018-12-28","feat(transducers): add interpolate() iterator, update readme"],["dbbb26cf","2018-12-28","feat(color): add multiCosineGradient()"],["46013514","2018-12-28","refactor(color): update conversions"],["0a9456bf","2018-12-28","docs(color): update readme"],["1c28c22b","2018-12-28","fix(color): HCYA field names"],["e930d736","2018-12-28","feat(color): add more color spaces, refactor, rename, simplify"],["714381de","2018-12-27","perf(color): refactor porterDiff as HOF, update all PD ops, add docs"],["d0b1e60e","2018-12-27","refactor(color): add AColor, re-use for existing wrappers, update deps"],["f515f6cb","2018-12-27","Merge branch 'feature/vec-refactor' into feature/color"],["ef4562a2","2018-12-27","build: update deps"],["95ac1e86","2018-12-27","Merge branch 'feature/vec-refactor' into feature/color"],["5b49e70d","2018-12-27","Merge branch 'develop' into feature/vec-refactor"],["ea0dee0f","2018-12-27","Publish"],["3f9b2443","2018-12-27","refactor(pointfree): re-use comp() from thi.ng/compose"],["1ebfea95","2018-12-26","fix(compose): fix comp() for arities >10"],["0061b21f","2018-12-26","feat(compose): add threadFirst/Last, rename compI => compL"],["5788646f","2018-12-26","feat(color): add/update class wrappers"],["7a735f2d","2018-12-25","refactor(vectors): update gvec, Vec2/3/4, extract iterator impl"],["7bcd21ac","2018-12-24","Merge branch 'feature/vec-refactor' into feature/color"],["aa5ad976","2018-12-24","fix(vectors): update field names in declareIndex()"],["0caf599b","2018-12-24","Merge branch 'feature/vec-refactor' into feature/color"],["5620483b","2018-12-24","refactor(vector-pools): update IVector refs (new field names)"],["0c0fce6a","2018-12-24","feat(vectors): update gvec, add generic setS()"],["6e6a33ce","2018-12-24","refactor(vectors): update IVector (rename fields), add ICopyView"],["c2556c2e","2018-12-24","refactor(vectors): update declareIndices, extract single declareIndex fn"],["610699ab","2018-12-24","feat(color): add RGBA/HSLA wrapper types, update convert"],["404ac54b","2018-12-24","feat(color): add HSI converters, add clampH(), minor refactors"],["a5d2f98e","2018-12-23","feat(color): add Porter-Duff ops, pre/post-multiply, update types"],["8fa05c3d","2018-12-22","feat(math): add constants"],["eb5f6391","2018-12-22","feat(vectors): add setC()"],["0b51ef1c","2018-12-22","feat(color): add new package"],["946af71e","2018-12-21","Merge branch 'feature/vec-refactor' into feature/color"],["0099c27c","2018-12-21","Merge branch 'develop' into feature/vec-refactor"],["ec6084b5","2018-12-21","Publish"],["6618c226","2018-12-21","feat(hdom): add support for event listener options, update readme"],["696a0ce3","2018-12-21","Merge branch 'feature/vec-refactor' into feature/color"],["f617c7ec","2018-12-21","Merge branch 'develop' into feature/color"],["e49d3caa","2018-12-21","Merge branch 'develop' into feature/vec-refactor"],["62418f90","2018-12-21","Publish"],["9f48a760","2018-12-21","fix(hdom): fix #63 update removeChild() (IE11)"],["e2874932","2018-12-21","build(geom): update deps"],["c8e25bb0","2018-12-21","build(vectors): update deps"],["b130a944","2018-12-21","refactor(vectors): rename mapBufferV* fns => mapV*"],["8b582cb5","2018-12-21","refactor(vectors): extract & reuse Vec2/3/4 static fns, add copyView()"],["a916f3e7","2018-12-20","Merge branch 'develop' into feature/vec-refactor"],["802fab85","2018-12-20","Publish"],["61b7b117","2018-12-20","feat(iterators): add `children` arg for walk()/walkIterator()"],["f44070e4","2018-12-20","Publish"],["caad2d38","2018-12-20","docs: update package list"],["9984c51d","2018-12-20","Merge branch 'feature/hiccup-markdown' into develop"],["58f591e8","2018-12-20","feat(hiccup-markdown): add new package"],["df38394e","2018-12-20","refactor(hiccup): export normalize() fn"],["9884a67c","2018-12-19","build: update depgraph script"],["2a43bf37","2018-12-19","Publish"],["a78c6a7f","2018-12-19","feat(intervals): add Interval.parse(), update docs, readme, deps"],["6d753f98","2018-12-18","Merge branch 'develop' into feature/vec-refactor"],["47782618","2018-12-18","Publish"],["8545ded8","2018-12-18","Merge branch 'develop'"],["82814288","2018-12-18","docs: update package list"],["14a8a634","2018-12-18","docs: update package list"],["b0a31426","2018-12-18","feat(intervals): add new package"],["33bcd152","2018-12-17","Publish"],["04705053","2018-12-17","fix(transducers): add return type for range()"],["aa128298","2018-12-17","build: update deps"],["6201c9b8","2018-12-17","Merge branch 'develop' into feature/vec-refactor"],["1d5278f8","2018-12-16","Publish"],["6d85c626","2018-12-16","fix(hdom): life cycle init / release handling"],["159ce8f6","2018-12-15","Publish"],["a3290b08","2018-12-15","build: update deps in make-* scripts"],["32847a91","2018-12-15","build(examples): update deps"],["aac8b6f6","2018-12-15","feat(hiccup-css): add animation(), add test & update readme"],["3b3e5032","2018-12-14","fix(pointfree-lang): update parser stubs (TS3.2.x)"],["0436c506","2018-12-14","build: update dev deps in all packages"],["dae12057","2018-12-14","minor(hiccup-carbon-icons): fix repo link"],["a7491117","2018-12-14","Publish"],["d734b570","2018-12-14","docs: update package list (main readme)"],["da441c18","2018-12-14","feat(hdom-components): merge button & button group attribs"],["6b04e160","2018-12-14","feat(hiccup-carbon-icons): add new package"],["b86737a6","2018-12-14","feat(examples): update xml-converter cli arg handling (var name)"],["87e6cb31","2018-12-13","docs: update main readme"],["388c14b4","2018-12-13","Merge branch 'develop' into feature/vec-refactor"],["e36a7ee0","2018-12-13","Publish"],["151e1422","2018-12-13","docs(hdom): update readme"],["fbbf5f90","2018-12-13","minor(examples): update source links"],["582c69ff","2018-12-13","Merge branch 'feature/hdom-skip' into develop"],["fea3d777","2018-12-13","fix(examples): minor update hdom-benchmark2"],["8155bf4b","2018-12-13","feat(examples): add proper DOM stats calculation, remove interlacing (obsolete)"],["2ff75609","2018-12-13","perf(examples): update __skip handling in hdom-benchmark2"],["92c11107","2018-12-13","feat(examples): improve axis tick resolution estimate in crypto-chart"],["c3b1528f","2018-12-13","feat(examples): add more UI & controls to hdom-benchmark2"],["a40c0f5e","2018-12-13","minor(hdom-components): minor updates fpsCounter()"],["10afa0d5","2018-12-13","docs(examples): update hdom-skip comments"],["db4d0a58","2018-12-13","Merge branch 'develop' into feature/hdom-skip"],["1b298f76","2018-12-13","fix(strings): update kebab()"],["8dcc73a1","2018-12-13","feat(strings): add slugify()"],["ba0d5e5c","2018-12-13","docs(examples): update readme list"],["73a298df","2018-12-13","refactor(hdom-components): emit int coords for sparkline"],["baa1dfef","2018-12-13","feat(examples): add hdom-benchmark2 example"],["ebd33808","2018-12-13","feat(hdom-components): add FPS counter & sparkline components, update deps"],["c1fecc4d","2018-12-12","refactor(hdom-mock): update text node handling, tests, add readme"],["1dc6e721","2018-12-12","minor(hdom): intern strings"],["046ab206","2018-12-12","minor(hiccup): reformat"],["d3500df5","2018-12-12","feat(hiccup): add __skip support, add test, update readme"],["5609d24a","2018-12-11","feat(hdom-mock): add hdom-mock package and implementation, add initial tests"],["fe9a3120","2018-12-11","refactor(hdom): update createTextElement() sig, update docstrings"],["6db31708","2018-12-11","fix(transducers-hdom): integrate recent hdom updates"],["43327c9e","2018-12-11","refactor(hdom-canvas): update HDOMImplementation, add __skip support, reformat"],["69b29ad7","2018-12-11","docs(hdom): add __skip attrib docstring"],["6f2e8ee0","2018-12-11","refactor(hdom): extend & simplify HDOMImplementation, update DEFAULT_IMPL"],["8dc755d9","2018-12-10","minor(examples): fix typo"],["6d387dbd","2018-12-10","feat(examples): add hdom-skip example"],["a4e67362","2018-12-10","feat(hdom): add initial __skip ctrl attrib handling in diffTree()"],["42eab0bc","2018-12-09","Merge branch 'develop' into feature/vec-refactor"],["97bf837e","2018-12-09","doc(vectors): update readme (add note about vectors3 & matrices)"],["ceb404c4","2018-12-09","doc(geom): update readme (add note about geom2)"],["6726925b","2018-12-09","docs: add links to WIP packages"],["71300e92","2018-12-09","docs: update main readme"],["20e0884b","2018-12-09","Publish"],["19b0a554","2018-12-09","perf(diff): further array caching/reuse"],["cfdc4d76","2018-12-08","Merge branch 'develop' into feature/vec-refactor"],["6e361d62","2018-12-08","Publish"],["a7e9def5","2018-12-08","refactor(hdom-canvas): update diffArray call site"],["c3f6f98c","2018-12-08","refactor(hdom): minor update diff call sites"],["64feacfb","2018-12-08","refactor(diff): flatten linear edit logs, update readme & arg order"],["b627f60c","2018-12-08","Merge branch 'feature/hdom-perf' into develop"],["8165005c","2018-12-08","refactor(equiv): minor update (intern string consts)"],["899941f0","2018-12-08","perf(hdom-canvas): update diffTree() to compute edit dist only"],["e9b067b7","2018-12-08","refactor(hdom): update diffTree & diffAttributes (@thi.ng/diff updates)"],["e8356cd2","2018-12-08","perf(diff): flatten linear edit logs, rewrite diffObject(), add DiffMode"],["d1ee6d9e","2018-12-08","perf(diff): reduce amount of temp/internal array allocs (diffArray)"],["6c6da825","2018-12-08","feat(diff): add fast paths for simple cases, add tests, refactor as arrow fns"],["34b515b2","2018-12-08","Merge branch 'develop' into feature/vec-refactor"],["9878c556","2018-12-03","feat(examples): add ClojureX talk-slides example (presentation tool)"],["b08b8e55","2018-12-01","Merge branch 'develop' into feature/vec-refactor"],["88efaa91","2018-12-01","Publish"],["ba8bad68","2018-12-01","minor(transducers): manual array destructuring in reduce/iterator"],["0e77d2c6","2018-12-01","refactor(transducers): implement range() as class w/ IReducible impl"],["57836390","2018-12-01","refactor(examples): update geom-tessel example to use new geom lib"],["0b351e12","2018-12-01","refactor(examples): move gradient defs (mandelbrot)"],["896855de","2018-12-01","feat(geom): re-add arcLength() impls, update imports"],["d4172ee3","2018-12-01","refactor(geom): update everything to use new vectors package"],["68806d93","2018-11-30","feat(vectors): add 2d/3d constants, update Vec2/3"],["87510f74","2018-11-30","feat(vectors): add addWeighted, eqDeltaArray, mixCubic, mixQuadratic"],["9f36a681","2018-11-30","docs(vectors): update readme"],["84ab9b25","2018-11-30","docs(vectors): update readme"],["b415c803","2018-11-30","refactor(vector-pools): update AttribPool internals"],["21d107d9","2018-11-30","docs(vector-pools): update/fix readme"],["27ea8c4a","2018-11-30","minor(vector-pools): fix typos in readme"],["3a51a42d","2018-11-30","docs(vector-pools): fix readme links"],["fd54d323","2018-11-30","feat(vector-pools): update readme, add examples"],["4fe2047e","2018-11-30","feat(vector-pools): add GLType alias, AttribPoolOpts, update pool impls"],["019c0af3","2018-11-30","feat(vector-pools): add AttribPool, refactor lists"],["25b97891","2018-11-30","refactor(vectors): add StridedVec, update IVector, AVec"],["d381ace2","2018-11-29","feat(api): add assert()"],["c31ce8ad","2018-11-28","refactor(vector-pools): various minor updates & fixes"],["48d5d572","2018-11-28","feat(vector-pools): add VecPool, VecArrayList & VecLinkedList"],["ea6bafaf","2018-11-28","feat(malloc): expose SIZEOF, add wrap()"],["6cb3b92b","2018-11-28","feat(vectors): add IVector interface impls for gvec()"],["63458c2c","2018-11-28","feat(vectors): add proxied gvec(), update mapBuffer*() docs"],["1fe9650d","2018-11-27","feat(vectors): add mapBuffer*() fns"],["c3d19141","2018-11-27","feat(vectors): add Vec2/3/4.iterator()"],["4a8295b7","2018-11-27","feature(vectors): update swizzle*() to support in-place updates"],["27f65f9e","2018-11-27","feat(matrices): add rotationAroundAxis33/44()"],["28f04ac1","2018-11-27","feat(vectors): add project(), signedArea2(), update orthoNormal3()"],["a373e55b","2018-11-27","feat(vectors): update `out` default behavior & codegens, bugfixes"],["d9e1b2ec","2018-11-27","feat(matrices): add viewport(), project/unproject(), update invert()"],["16d56a37","2018-11-27","feat(matrices): add trace()"],["28fd0f1f","2018-11-27","feat(vectors): add sum()"],["f1a5cf12","2018-11-27","feat(matrices): add M44 factories"],["97ac629d","2018-11-27","feat(vectors): add/update ops, add docstrings"],["35babfc6","2018-11-27","feat(matrices): add more matrix ops"],["f04e79e9","2018-11-26","feat(matrices): add more matrix ops, optimize & simplify"],["e19f6223","2018-11-26","feat(vectors): add faceForward, invSqrt & dotValues* fns"],["b697fd5d","2018-11-26","refactor(vectors): update codegens"],["8e6ddca9","2018-11-26","Merge branch 'develop' into feature/vec-refactor"],["bb625eb0","2018-11-26","Publish"],["18ffdb79","2018-11-26","fix(vectors): update VecOpSRoVV & dotS impls"],["f940672e","2018-11-26","feat(matrices): extract matrix ops to own package"],["52273cde","2018-11-25","feat(vectors): re-add (some) strided ops, update codegens, simplify"],["b4fffe85","2018-11-25","feat(vectors): add cosh, sinh, tanh, round, jitter, wrap"],["7448c6b6","2018-11-25","feat(vectors): re-add Vec2/3/4, clamp, reflect, refract, restructure package"],["18d44342","2018-11-25","refactor(vectors): update eqDelta & compileHOF()"],["bfbaaa9b","2018-11-25","feat(vectors2): update rand codegen tpls & compileHOF/GHOF"],["26d41996","2018-11-25","feat(vectors): add yet another version of vectors package"],["bb7e003d","2018-11-25","Merge pull request #62 from acarabott/feature/hdom-canvas-text-maxWidth"],["97965d89","2018-11-24","fix(hdom-canvas): actually pass maxWidth argument to text function"],["3f7fe2ad","2018-11-24","build(vectors): update deps"],["82186aa6","2018-11-24","Merge branch 'develop' into feature/vec-refactor"],["bb18d7a2","2018-11-24","Publish"],["d210668e","2018-11-24","docs: update package list"],["4aea85d2","2018-11-24","feat(random): re-import, extend & refactor random package (MBP2010)"],["65ee909f","2018-11-24","Merge branch 'develop' into feature/vec-refactor"],["364f27e3","2018-11-24","Publish"],["02ec7a7a","2018-11-24","docs(hdom-canvas): update readme"],["3872e379","2018-11-24","assets: add mandelbrot screenshot"],["738091d5","2018-11-24","docs(examples): update list (readme)"],["ca47a885","2018-11-24","docs(rstream): update readme"],["9ef64f16","2018-11-23","Merge branch 'feature/rs-tunnel' into develop"],["c6eec4ef","2018-11-23","fix(examples): add download fn (mandelbrot)"],["46c2882e","2018-11-23","fix(rstream): make maxWorkers optional"],["a47edd53","2018-11-23","feat(examples): update mandelbrot demo"],["67a5b104","2018-11-23","feat(rstream): add support multiple workers in Tunnel & TunnelOpts"],["f24e69ea","2018-11-23","refactor(rstream): move tunnel to /subs, add docs"],["a39b98c0","2018-11-23","Merge branch 'develop' into feature/rs-tunnel"],["4592fbb5","2018-11-23","Merge pull request #61 from acarabott/feature/hdom-canvas-text-maxWidth"],["4d1fa1c5","2018-11-23","minor(hdom-canvas): add maxWidth param to text draw call"],["2a4bd412","2018-11-22","feat(examples): add gradients, simplify"],["1b567440","2018-11-22","refactor(examples): minor updates mandelbrot demo"],["70ea4bd6","2018-11-21","feat(examples): add key controls & wheel zoom to mandelbrot demo"],["bab55c3c","2018-11-21","feat(rstream-gestures): add absZoom option (abs vs. relative)"],["9549067e","2018-11-21","fix: update build-examples script (multiple js outputs)"],["a68b9f9a","2018-11-21","refactor(examples): update mandelbrot demo"],["4cab7080","2018-11-21","fix: upload-examples script (if multiple sources)"],["80679d3c","2018-11-21","feat(examples): add mandelbrot worker/tunnel example"],["ef0fe42c","2018-11-21","feat(rstream): add StreamSync.getSources() / getSourceForID()"],["4750e796","2018-11-21","feat(rstream): add worker tunnel() sub"],["7007d633","2018-11-19","Merge branch 'develop' into feature/vec-refactor"],["e044a6a2","2018-11-19","Publish"],["143c47cd","2018-11-19","fix(math): fix #60, add range check for norm()"],["71c568c3","2018-11-13","Publish"],["9334f833","2018-11-13","feat(interceptors): update forwardSideFx(), refactor iceps as arrow fns"],["62b3c312","2018-11-13","Publish"],["1d085bff","2018-11-13","refactor(router): update Route, RouteMatch & minor optimizations"],["9b4a7b45","2018-11-12","Merge branch 'develop' into feature/vec-refactor"],["4bf18805","2018-11-12","Publish"],["4048849d","2018-11-12","Merge branch 'develop' of github.com:thi-ng/umbrella into develop"],["068255f6","2018-11-12","Merge pull request #59 from acarabott/feature/linecap"],["734a1428","2018-11-12","minor(hdom-canvas): fix default key for lineCap"],["74827068","2018-11-09","Merge branch 'develop' into feature/vec-refactor"],["a4bc35bd","2018-11-08","Publish"],["33e915b4","2018-11-08","feat(strings): add configurable units() HOF & presets"],["6eaa5f5f","2018-11-07","Publish"],["b0a4b65e","2018-11-07","refactor(examples): update hdom-dyn-context demo"],["52a47f0f","2018-11-07","refactor(transducers-hdom): update auto-deref ctx behavior"],["30161166","2018-11-07","feat(hdom): update auto-deref ctx behavior"],["749925f0","2018-11-07","feat(hiccup): update derefContext() to only apply to selected keys"],["5a3b860e","2018-11-07","feat(vectors): update VecPool & NDArray1"],["34930b31","2018-11-07","refactor(malloc): update package structure, fix stats()"],["c3751198","2018-11-06","Merge branch 'develop' into feature/vec-refactor"],["d2797516","2018-11-06","feat(examples): add hdom-dyn-context demo"],["79a6a365","2018-11-06","Publish"],["e91dbbc1","2018-11-06","feat(transducers-hdom): add support for dynamic user context vals"],["6a3a8739","2018-11-06","feat(hdom): add support for dynamic user context vals"],["a9478732","2018-11-06","feat(hiccup): add support for dynamic user context values"],["dc2c487d","2018-11-06","refactor(geom): update implementations() call sites"],["a24715e7","2018-11-06","refactor(defmulti): merge relations() w/ implementations(), update readme"],["3713c02a","2018-11-06","refactor(hiccup-svg): update convertTransforms(), update formatting"],["9f03889b","2018-11-06","minor(geom): add/update edges()/vertices() arg types"],["9a18620d","2018-11-06","minor(hiccup-svg): update path conversion/creation"],["c0134fda","2018-11-06","minor(geom): update imports"],["94a40cc5","2018-11-06","fix(geom): Path2 transform() & translate(), add asCubic() impl"],["df9b9f9f","2018-11-06","fix(geom): asCubic() for arc"],["9d60ad09","2018-11-06","perf(geom): emit hline/vline segments if possible"],["c4db51aa","2018-11-06","feat(vectors): add IMatrix & impls for Mat23/33/44, add/update accessors"],["4066c80f","2018-11-06","feat(defmulti): add relations()"],["35bd0679","2018-11-06","feat(geom): add new / update all types / ops, add tests"],["c41d12c0","2018-11-03","feat(vectors): re-add quaternion, various refactorings"],["358169fd","2018-11-01","feat(geom): add/update shape types"],["e197f908","2018-11-01","feat(hiccup-svg): add toHiccup() support in convertTree()"],["30f61da5","2018-11-01","feat(vectors): add eqDeltaArray()"],["0043fb5d","2018-11-01","feat(math): add cossin(), add opt scale arg for sincos()"],["184d55da","2018-10-31","build(vectors): update deps"],["954e0c28","2018-10-31","feat(vectors): add generic impls for common vec ops"],["816c9c01","2018-10-31","feat(strings): add floatFixedWidth(), update float()"],["766fdee2","2018-10-31","feat(vectors): re-add vec4, mat23/33/44, nd arrays"],["e3727ce9","2018-10-27","refactor(malloc): add/extract types to api.ts"],["228e08a1","2018-10-27","Merge branch 'develop' into feature/vec-refactor"],["46bf1a73","2018-10-27","Publish"],["c5b0f2f5","2018-10-27","feat(malloc): add MemPoolOpts, fix top block alloc, update tests, readme"],["cfd88555","2018-10-27","feat(geom): re-add & update more types / shape ops"],["a070016c","2018-10-27","feat(vectors): add VecPool skeleton, add more types, export codegen fns"],["51c4a49f","2018-10-26","feat(vectors): add/update types, multi-methods, minor optimizations"],["125c784f","2018-10-26","feat(defmulti): add versions w/ 1 optional typed arg, add .impls()"],["252f66db","2018-10-25","feat(geom): re-add more classes & methods, add svg conversions"],["505ca49c","2018-10-25","feat(vectors): add vec2n/vec3n(), copy() methods, update deps"],["fde2db21","2018-10-25","feat(defmulti): add callable() & implementations(), update readme"],["fe14b791","2018-10-24","Merge branch 'develop' into feature/vec-refactor"],["accda790","2018-10-24","fix(rstream-gestures): Publish (0.5.16 had publish error)"],["673bf50f","2018-10-24","Publish"],["a8c38987","2018-10-24","feat(defmulti): add support for dispatch value relationships / hierarchy"],["7b740ab8","2018-10-24","docs(malloc): update readme"],["4f156b04","2018-10-24","Merge branch 'develop' of github.com:thi-ng/umbrella into develop"],["724fe28f","2018-10-24","feat: add temp geom2 & vectors2 packages (defmulti API)"],["f271b78b","2018-10-24","Merge pull request #57 from acarabott/feature/rstream-gesture-local"],["f1f6af4d","2018-10-23","fix(rstream-gestures): fix incorrect local position when scrolled"],["5bb51391","2018-10-21","Publish"],["abba2d62","2018-10-21","Merge branch 'feature/geom-accel' into develop"],["be7acc33","2018-10-21","refactor(examples): update geom-knn demo"],["b47e6413","2018-10-21","feat(geom-accel): add KV support, update select/selectKeys()"],["c387887d","2018-10-21","docs: update package list"],["51071ac7","2018-10-21","Merge branch 'develop' into feature/geom-accel"],["6f8a8963","2018-10-21","docs: update package list"],["b7457cef","2018-10-21","Merge branch 'feature/malloc' into develop"],["4b72cda6","2018-10-21","feat(malloc): add freeAll(), release(), tests & benchmarks, update docs"],["40f07876","2018-10-21","docs(malloc): add docs to readme"],["787102a4","2018-10-21","fix(malloc): add size check, update readme"],["89f2bc28","2018-10-21","feat(malloc): re-add block compaction & splitting, update readme"],["2cf20c90","2018-10-21","feat(malloc): initial import @thi.ng/malloc package"],["ce131d48","2018-10-19","feat(geom): add IToCubic, add/update impls"],["4a47daa4","2018-10-19","feat(math): migrate mixCubic()/mixQuadratic() from geom package"],["85426d98","2018-10-19","fix(hiccup-svg): fix arc segment handling"],["f891c419","2018-10-19","feat(math): add sincos() & roundEps()"],["2469992e","2018-10-18","build(geom-accel): update deps (add morton)"],["ac2f3e83","2018-10-18","feat(morton): update/add muxScaled2/3 versions, add error handling"],["971dfb45","2018-10-18","Merge pull request #55 from acarabott/feature/readme-arc"],["b9cfb56f","2018-10-18","minor(hdom-canvas): add arc, hline, vline to readme"],["1063fea9","2018-10-18","feat(heaps): add pushPopAll()"],["f0deebb9","2018-10-18","minor(examples): update geom-knn"],["b31b4807","2018-10-18","refactor(hdom-canvas): update points() to accept iterables"],["0c76c024","2018-10-18","refactor(geom-accel): move iterator into KdNode"],["aa01a2de","2018-10-18","build: update .gitignore"],["f82c8b16","2018-10-18","feat(examples): add geom-knn example"],["e14ac8b1","2018-10-18","feat(geom-accel): re-import geom-accel skeleton (MBP2010)"],["f7bbfde4","2018-10-18","refactor(heaps): public fields"],["0cf708f4","2018-10-18","feat(bench): add timedResult() / benchResult()"],["6e0972e9","2018-10-17","build: further updates dev deps in all packages"],["f01551ac","2018-10-17","build: update make-module/example scripts"],["e6cef6b3","2018-10-17","build(examples): update dev deps"],["1ebae947","2018-10-17","build: update dev deps (TS3.1, parcel etc.)"],["348cdd4e","2018-10-17","docs(examples): update table"],["3569d242","2018-10-17","feat(examples): add geom-tessel example"],["d4d44b32","2018-10-17","fix(examples): update @thi.ng/math occurrences"],["cf2970aa","2018-10-17","minor: update readme"],["6e563377","2018-10-17","Publish"],["39d414f5","2018-10-17","docs: update package list in main readme"],["940fc312","2018-10-17","build(dsp): update package"],["456a2ee3","2018-10-17","build(math): update package desc"],["10cf5646","2018-10-17","build: update gitignore & yarn.lock"],["83ef61a1","2018-10-17","docs(geom): update readme, add/move assets"],["ffea836f","2018-10-17","refactor(geom): update deps & @thi.ng/math imports"],["0967929f","2018-10-17","feat(vectors): replace math.ts w/ imports from @thi.ng/maths package"],["f257330e","2018-10-16","refactor(transducers): add ensureArrayLike(), update permutations()"],["1bd9fd43","2018-10-16","docs(heaps): update readme"],["501536b9","2018-10-16","feat(morton): import & update @thi.ng/morton package (MBP2010)"],["6851f2c4","2018-10-16","feat(compose): add partial(), update readme"],["405cf51a","2018-10-16","feat(dlogic): add @thi.ng/dlogic package"],["458d4a07","2018-10-16","feat(binary): add @thi.ng/binary package"],["889730f8","2018-10-16","feat(dsp): add oscillators as @thi.ng/dsp package (from synstack / VEX)"],["4af1fba3","2018-10-16","feat(math): extract maths fns from @thi.ng/vectors as new package"],["e085136b","2018-10-13","Merge branch 'develop' into feature/geom"],["2e9f0486","2018-10-13","refactor(geom): update arg handling, update readme"],["328a9b03","2018-10-13","Merge pull request #54 from acarabott/feature/transducer-links"],["08372abd","2018-10-13","minor(transducers): fix links to reducers in README"],["2546039a","2018-10-13","Merge pull request #53 from acarabott/feature/baseline"],["6a9747bf","2018-10-13","minor(hdom-canvas): baseLine -> baseline"],["fa87f1e9","2018-10-11","feat(geom): add/update tessellate() impls"],["555fc515","2018-10-10","feat(geom): add/update factory fns, arg handling, tessel, poly area"],["3a20ef34","2018-10-10","feat(geom): add/update various shape impls & ops"],["296e1e07","2018-10-08","refactor: update Infinity consts in various packages"],["d655ec29","2018-10-08","feat(geom): re-import & refactor partial port of thi.ng/geom (clojure)"],["ff435be6","2018-10-07","minor(hdom-canvas): rename arc() => circularArc()"],["b2f9af93","2018-10-07","refactor(vectors): replace static Vec2/3/4 methods w/ IVector impls"],["221fb7f6","2018-10-06","feat(vectors): add collate & eqDelta fns, update ctors"],["6094738e","2018-10-03","feat(defmulti): add varargs support"],["2657df66","2018-09-30","feat(geom): add/update interfaces & impls"],["775cc8a7","2018-09-30","fix(hdom-components): add Canvas2DContextAttributes (removed in TS3.1)"],["1ef23611","2018-09-30","fix(transducers): minor TS3.1 fixes"],["515e5ba5","2018-09-30","feat(transducers): update wrap*() fns to accept iterables"],["aa6b1206","2018-09-30","feat(geom): re-add Arc2, update Circle2, update helper fns"],["3b1bf647","2018-09-30","feat(geom): add ICollate & ICopy impls, re-add/update convexHull2"],["2ba99311","2018-09-30","build(geom): update dev deps & yarn.lock"],["473ec800","2018-09-30","feat(vectors): add axis consts, add/update ops"],["6a0f8aa9","2018-09-29","feat(vectors): add comparators & ICompare impls for vec2/3/4"],["9fb2091a","2018-09-29","refactor(geom): add interfaces, split out common.ts into /func folder"],["34312d8f","2018-09-29","feat(vectors): add IMinMax interface"],["9c27c77f","2018-09-29","feat(geom): update all shape types, add interfaces & ops, update tests"],["5c44ad98","2018-09-29","feat(vectors): add operation specific interfaces, rename Vec3.toPolar()"],["22f6aab4","2018-09-29","Merge branch 'develop' into feature/geom"],["4f15ea80","2018-09-28","Publish"],["8399ec2f","2018-09-28","docs(vectors): fix docstrings, hide CommonOpts type alias"],["f2114d52","2018-09-28","Merge branch 'feature/vec-codegen' into develop"],["247dec02","2018-09-28","refactor(vectors): generate more ops, move declareIndices() (#51)"],["719b27ac","2018-09-28","refactor(vectors): rewrite codegen, add more types & gen ops (#51)"],["9bee7f85","2018-09-28","refactor(vectors): use codegen for unary vec2/3/4 ops"],["b5ed2545","2018-09-28","feat(vectors): add vector ops codegen, update basic vec2/3/4 ops (#51)"],["d964865e","2018-09-28","docs(hdom): add xml-converter example link & screenshot"],["6db26c2b","2018-09-28","feat(examples): add copy-to-clipboard, extract UI config & components"],["5cfbf70d","2018-09-27","feat(examples): update css"],["71cbd19a","2018-09-27","fix(examples): fix attrib format"],["95ba4f6d","2018-09-27","feat(examples): extend xml-converter, add CLI version, update docs"],["2f014471","2018-09-26","Publish"],["4b78c8a3","2018-09-26","minor(examples): xml-converter"],["96367021","2018-09-26","docs(hdom): add/update docs (fix #47)"],["0a49d0a5","2018-09-25","fix: update .gitignore (fixes #46, fixes #50)"],["ad1bac8f","2018-09-25","refactor(examples): refactor hiccup formatter, minor fixes"],["823d828d","2018-09-25","fix(transducers): fix matchLast(), fix & update return match*() types"],["61af7e51","2018-09-25","Merge branch 'master' of github.com:thi-ng/umbrella"],["b8a93ea8","2018-09-25","fix(examples): add null check & parseAttrib() in transformCSS()"],["3abfc42c","2018-09-25","Merge pull request #49 from nkint/patch-1"],["a169d2df","2018-09-25","fix(examples): add missing index.html (#46)"],["04872dbe","2018-09-25","Publish"],["79cf49e1","2018-09-25","feat(examples): add value coercions & re-formatter (xml-converter)"],["0cce0488","2018-09-25","feat(strings): add splice(), refactor repeat(), add tests"],["8b8bf885","2018-09-25","typo"],["0cddc7d6","2018-09-25","feat(example): update xml-converter (add boolean attrib support)"],["5119b67e","2018-09-25","feat(sax): add opt support for boolean attribs, add tests"],["5a893d5b","2018-09-25","docs(examples): update table"],["436edc0f","2018-09-25","Publish"],["50fa6492","2018-09-25","fix(hdom): add DEFAULT_IMPL to re-exports (#47)"],["febe3c36","2018-09-25","Publish"],["cb263002","2018-09-25","feat(examples): add xml-converter example"],["8cbfb97e","2018-09-24","fix(strings): rename number parsers"],["888ea747","2018-09-24","fix(examples): rename `prepare` script aliases"],["c0a8926b","2018-09-24","fix(examples): rename `prepare` script alias, add commits.json (#46)"],["cf05efbf","2018-09-24","Publish"],["665564c7","2018-09-24","feat(sax): update parse() to return iterator if input given (optional)"],["fc6a4d32","2018-09-24","perf(rstream-log): `Level` => const enum"],["8e4fc902","2018-09-24","perf(rstream-gestures): `GestureType` => const enum"],["7ac83c6f","2018-09-24","perf(rstream): `State` => const enum"],["a7b9a427","2018-09-24","perf(pointfree-lang): `NodeType` => const enum"],["c3e8d689","2018-09-24","perf(csp): `State` => const enum"],["39f7fb0c","2018-09-24","build: add `preserveConstEnums` to global tsconfig"],["657a3088","2018-09-24","docs: fix twitter badges, update make-module script"],["89ab34a3","2018-09-24","Merge branch 'master' of github.com:thi-ng/umbrella"],["94f64698","2018-09-24","docs: update all readme files"],["56bfecbc","2018-09-23","Merge pull request #45 from rgtk/patch-1"],["b2a24f8c","2018-09-23","Fix links to @thi.ng/transducers"],["edf68556","2018-09-23","Publish"],["7cd08281","2018-09-23","docs(hdom): update readme"],["4a2f79b8","2018-09-23","refactor(hdom): minor refactoring, fix/update docs"],["1d8eeb4d","2018-09-23","feat(hiccup): emmet class & class attrib merging in normalize()"],["ff5e5550","2018-09-23","docs(rstream): re-org readme"],["ed3f10b5","2018-09-23","docs(hdom): fix/update changelog"],["bb224a75","2018-09-22","docs(examples): update readme"],["02548fd2","2018-09-22","Publish"],["70de921a","2018-09-22","build: add npm registry for publish script"],["ee0c2b96","2018-09-22","build: update yarn.lock"],["897f2b36","2018-09-22","docs: update branch links (all back to master now)"],["39d35d93","2018-09-22","chore(examples): add missing .gitignore"],["4bc64394","2018-09-22","chore: add HMR handling to make-example script"],["387376ed","2018-09-22","docs(hdom): major update readme"],["86bdd06d","2018-09-22","feat(examples): add svg-barchart demo"],["5ef9cf0e","2018-09-22","feat(hdom): add renderOnce()"],["06dccee4","2018-09-21","docs(hdom): update readme"],["8441afcb","2018-09-21","assets: add new diagram sources (hdom & interceptors)"],["bb5569f7","2018-09-21","build: update yarn.lock"],["0dcc1b86","2018-09-21","refactor(rstream): remove Stream.NEXT_ID, replace w/ Subscription field"],["8aa66055","2018-09-21","build: update example generator & build scripts"],["efcbe2de","2018-09-21","minor(examples): fix sort icon in triple-query"],["7c4dc3f0","2018-09-21","fix(examples): update commit-table-ssr to work w/ parceljs, update docs"],["22732421","2018-09-21","build(examples): update yarn build commands"],["1ee6c43a","2018-09-21","build: update typedoc dep"],["022101f3","2018-09-21","fix(transducers): add missing type annotation"],["78b1f4ac","2018-09-21","fix(transducers-hdom): add missing type annotation"],["3cd03bd7","2018-09-20","assets(examples): add gesture-analysis screenshot"],["288b68d9","2018-09-20","feat(rstream): add trigger() generics"],["75889156","2018-09-20","docs(rstream): update readme & doc strings"],["d5ec6fd8","2018-09-20","docs(rstream): add docs, update readme"],["dbdb72ec","2018-09-20","docs(rstream): add diagrams"],["bbb87f4a","2018-09-20","docs(hdom): update readme"],["1ac1110b","2018-09-20","feat(examples): rename interceptor-basics, add more simpler version"],["6d6fae33","2018-09-20","refactor(hdom): allow HDOMOpts extensions"],["74816eb0","2018-09-20","docs(hdom): update readme"],["46d851b6","2018-09-19","feat(examples): add hdom-canvas-draw demo"],["09a821b2","2018-09-19","refactor(hdom-canvas): switch canvas back to lifecycle object form"],["e390a54d","2018-09-19","feat(api): add `IToHiccup` interface"],["929c6f42","2018-09-19","feat(rstream): add trigger() utility stream"],["e82e3122","2018-09-19","feat(examples): add SVG export comment to hdom-canvas-shapes"],["de17db8f","2018-09-19","perf(hdom): minor updates"],["53a1d2c0","2018-09-19","refactor(hdom-canvas): add _serialize control attrib to root group"],["363c241c","2018-09-19","feat(hiccup): add control attrib handling, add comment support"],["bca4cc4b","2018-09-17","Publish"],["b488d2b3","2018-09-17","feat(transducers): add randomID()"],["f001314d","2018-09-17","fix(transducers): str() initial result handling"],["eb674268","2018-09-17","fix(transducers): update arg types for choices() & weightedRandom()"],["bd228110","2018-09-17","Publish"],["3e647a18","2018-09-17","fix(atom): add .value getter to IView"],["76309858","2018-09-17","minor(examples): update clock example"],["38125686","2018-09-17","docs: add hdom-canvas to package table"],["60f00590","2018-09-17","build(examples): fix deps, update readmes"],["7bbd1bcf","2018-09-17","docs(hdom-canvas): update links"],["95c462a5","2018-09-17","Publish"],["decc26b2","2018-09-17","build: update deps"],["b9738cc4","2018-09-17","v1.2.0"],["b43fcb39","2018-09-17","v2.0.0-alpha"],["f424fa92","2018-09-17","Publish"],["d4487066","2018-09-17","v1.1.0"],["3835cf43","2018-09-17","v2.2.0"],["ff919070","2018-09-17","v0.4.0"],["339342b3","2018-09-17","v0.1.9"],["7481df23","2018-09-17","v1.5.9"],["4297d649","2018-09-17","Merge branch 'feature/hdom-canvas' into develop"],["4fe6a742","2018-09-17","Merge branch 'feature/hdom-v5' into develop"],["eb4e6891","2018-09-17","refactor(examples): minor updates"],["ae4b6212","2018-09-16","perf(hdom-canvas): inline type checks, update deps & readme"],["a52f83c4","2018-09-16","fix(hdom-canvas): update __normalize handling, rename fns"],["382c45ca","2018-09-16","perf(hdom): update diffTree(), inline node type checks"],["224a537a","2018-09-16","perf(checks): inline checks in isNotStringAndIterable()"],["b93dc745","2018-09-16","feat(examples): add static canvas test"],["74547aa6","2018-09-16","feat(hdom-canvas): update canvas component & diffTree impl, update docs"],["3b628326","2018-09-16","refactor(hiccup-svg): update points(), minor fixes, add docs"],["ebfcf159","2018-09-16","refactor(hdom): export diff related fns"],["bb7e08a8","2018-09-16","refactor(examples): update canvas demo"],["5de02559","2018-09-16","feat(hdom-canvas): add HDPI auto-adjustment, update docs"],["b219d67a","2018-09-15","Merge branch 'feature/hdom-v5' into feature/hdom-canvas"],["d9af2e5f","2018-09-15","refactor(hdom): update custom equiv()"],["6c33901f","2018-09-15","fix(hdom): delegate diffTree() to branch impl"],["3de83bb7","2018-09-15","refactor(hiccup): add `button` to NO_SPANS elements"],["adaaa7a0","2018-09-15","feat(hdom-canvas): add warning msg for hydrateTree() impl"],["ae1371d8","2018-09-15","Merge branch 'feature/hdom-v5' into feature/hdom-canvas"],["05920636","2018-09-15","fix(hdom): exclude hdom control attribs in setAttrib()"],["4e230164","2018-09-15","feat(vectors): add random vector ops for Vec2/3/4 & GVec"],["8e796480","2018-09-15","Merge branch 'develop' into feature/geom"],["6a76bfd1","2018-09-15","Merge branch 'develop' into feature/hdom-canvas"],["442f14f4","2018-09-15","Merge branch 'develop' into feature/hdom-v5"],["7963e256","2018-09-15","feat(strings): add U24 hex preset"],["be25c48e","2018-09-15","feat(examples): add circles test"],["56b919d8","2018-09-15","Merge branch 'feature/hdom-canvas' into feature/geom"],["2bb41d45","2018-09-14","docs(examples): update crypto readme (replace diagram)"],["1d463ea6","2018-09-14","build(examples): update deps (hdom-canvas-shapes)"],["141e7c86","2018-09-14","docs(examples): add dflow diagram, update readme"],["42c1c403","2018-09-14","fix(examples): add missing file download.ts"],["7778c404","2018-09-14","Merge branch 'feature/hdom-canvas' into feature/geom"],["6e20e3e2","2018-09-14","feat(hiccup): add `.toHiccup()` interface support"],["8ecdd139","2018-09-14","feat(hdom-canvas): add `.toHiccup()` interface support"],["54ba0ce1","2018-09-14","feat(hdom): add `.toHiccup()` interface support"],["177855c3","2018-09-14","feat(examples): add geom circle test"],["c03259cb","2018-09-14","feat(geom): import (updated) old thi.ng/geom package (minus vectors)"],["f25db9a2","2018-09-14","docs(hdom-canvas): update readme"],["b8f79568","2018-09-14","feat(examples): add SVG conversion & export to hdom-canvas-shapes"],["3acb0dd8","2018-09-14","fix(hiccup-svg): update points() to use \"xlink:href\" (fix for safari)"],["7a6cf519","2018-09-14","feat(hiccup-svg): re-parse alpha colors in gradients (fix for safari)"],["d4122694","2018-09-14","feat(hdom-canvas): update points() to use circle or rect shapes"],["214cb62d","2018-09-14","feat(hiccup-svg): add custom shape support for points(), use instancing"],["cf4add3e","2018-09-14","refactor(hiccup-svg): update attrib conversion"],["a00761ba","2018-09-14","refactor(examples): update svg `text` arg order (hiccup-svg update)"],["f45f4ff0","2018-09-14","refactor(examples): update gradient def in svg-waveform"],["c20b24a7","2018-09-14","refactor(hdom-canvas): swap `img` args to be more consistent w/ others"],["4cb8cf72","2018-09-14","feat(hiccup-svg): add new elements, update convertTree(), refactor"],["0c4dddce","2018-09-14","feat(hiccup-svg): add convertTree() interop helpers (#44)"],["fb9c704d","2018-09-14","docs(hdom-canvas): update readme"],["de61c215","2018-09-14","feat(hdom-canvas): add `defs` node/group type"],["75002fad","2018-09-13","build: update upload-examples"],["17d13866","2018-09-13","feat(examples): use location.hash to select tests, update assets"],["c8d7a7c9","2018-09-13","feat(examples): update canvas image test"],["f7af43c1","2018-09-13","Merge branch 'feature/hdom-v5' into feature/hdom-canvas"],["c2859105","2018-09-13","perf(checks): update isPlainObject()"],["bde18d50","2018-09-13","refactor(hdom): use custom equiv also for diffAttributes()"],["481d9d34","2018-09-13","perf(diff): update diffObject() & add IOC support for custom equiv fn"],["a9e173e7","2018-09-13","test(hdom): update tests"],["96beaf38","2018-09-13","refactor(hdom): trial run of custom equiv() impl for diffTree()"],["ee55accd","2018-09-13","perf(equiv): inline & refactor type checks, add IOC support for helpers"],["360f15af","2018-09-13","feat(examples): add canvas image test"],["6b62067b","2018-09-13","docs(hdom-canvas): update readme"],["99020cad","2018-09-13","docs(hdom-canvas): update readme"],["5aa9d46a","2018-09-13","refactor(hdom-canvas): update attrib aliases"],["b6c1e42e","2018-09-13","docs(examples): update hdom-canvas-* build instructions"],["2b16d24d","2018-09-13","docs(examples): update readme"],["2fa4c56c","2018-09-13","refactor(examples): update hdom-canvas-shapes"],["6496e47b","2018-09-13","feat(hdom-canvas): add new shape types, add canvas attribs, refactor"],["5a3c3147","2018-09-13","refactor(examples): minor updates shape test"],["98735395","2018-09-13","docs(examples): update example table (readme)"],["7aae4333","2018-09-13","feat(examples): add hdom-canvas-shapes"],["81fe154d","2018-09-13","feat(hdom-canvas): fix #43, add gradient support"],["d5e01ff8","2018-09-12","Merge branch 'feature/hdom-v5' into feature/hdom-canvas"],["e4f780c7","2018-09-12","fix(hdom): minor fix (hydrateDOM)"],["81a39ba7","2018-09-12","refactor(hdom-canvas): update to reflect hdom api changes"],["700352de","2018-09-12","Merge branch 'feature/hdom-v5' into feature/hdom-canvas"],["832e419c","2018-09-12","fix(transducers-hdom): update to work w/ new @thi.ng/hdom v5 API"],["1ac245f8","2018-09-12","feat(hdom): reorg & extend HDOMImplementation"],["66c007de","2018-09-12","feat(checks): add isNotStringAndIterable()"],["764373a7","2018-09-12","feat(hdom-canvas): add rounded rect option (as path)"],["2a973fd1","2018-09-12","Merge branch 'feature/hdom-v5' into feature/hdom-canvas"],["1cfad519","2018-09-12","refactor(hdom-canvas): update canvas component, add docs"],["2e3fb660","2018-09-12","perf(hdom): add opt `__release` attrib to disable releaseDeep()"],["cfadbe3e","2018-09-12","refactor(examples): update clock main group attribs"],["1d24a166","2018-09-12","feat(hdom-canvas): add canvas-specific normalizeTree() impl"],["59bb19c2","2018-09-11","feat(hdom): update normalizeTree, add to HDOMImplementation"],["82cd9389","2018-09-11","feat(hdom-canvas): add path shape type, embedded fn & iterator handling"],["c69454b0","2018-09-11","refactor(examples): update attribs & scengraph in hdom-canvas-clock"],["ccbf53cf","2018-09-11","feat(hdom-canvas): implement drawing state inheritance & restoration"],["17060403","2018-09-11","build(examples): enable source maps in all examples, update make-example"],["d93efa86","2018-09-11","refactor(examples): minor updates hdom-canvas-clock, enable source map"],["d3acb707","2018-09-11","feat(hdom-canvas): add more shapes/prims, update transform handling"],["b4a37dd3","2018-09-10","Merge branch 'develop' into feature/hdom-canvas"],["685fd0bd","2018-09-10","Merge branch 'develop' into feature/hdom-v5"],["bdb57f83","2018-09-10","Publish"],["f4cc0dda","2018-09-10","refactor(vectors): Vec3/4 toString() impls"],["ae261ab5","2018-09-10","fix(vectors): GVec.copy() / get()"],["07d1ccfc","2018-09-10","fix(vectors): Mat23/33/44 toString() impls"],["3dd00725","2018-09-10","feat(vectors): add matrix index & property accessors"],["54e59a08","2018-09-10","fix(examples): re-enable HMR logic"],["dc618983","2018-09-10","refactor(hdom-canvas): rename types due to hdom update"],["5546c0d2","2018-09-10","Merge branch 'feature/hdom-v5' into feature/hdom-canvas"],["cc73c769","2018-09-10","refactor(hdom): rename HDOMOps => HDOMImplementation, add docs"],["ada7d34e","2018-09-10","build: add max-age cache header (upload-examples)"],["2fdcf104","2018-09-10","refactor(examples): update clock demo"],["689e775e","2018-09-10","feat(examples): add hdom-canvas-clock demo"],["f41014eb","2018-09-10","feat(hdom-canvas): rename package, add text support, refactor"],["60f12c5d","2018-09-10","feat(hiccup-canvas): add canvas comp, createTree impl, update deps"],["46c5cd2c","2018-09-10","Merge branch 'feature/hdom-v5' into feature/hiccup-canvas"],["525d90d5","2018-09-10","feat(hdom): generalize diffElement() (#4)"],["5cb4350f","2018-09-09","feat(hdom): add optional support for blocking normalize & diff"],["c47711f9","2018-09-09","refactor(hiccup-canvas): add notes"],["84a6f441","2018-09-09","Merge branch 'develop' into feature/hiccup-canvas"],["146868d1","2018-09-09","build: update make-module script"],["890eb97c","2018-09-09","docs(compose): add missing package desc"],["266d02b0","2018-09-09","docs: update badges in all readme files"],["eb284f01","2018-09-09","feat(hiccup-canvas): add hiccup-canvas package"],["9bde777a","2018-09-08","fix(examples): add missing html file"],["d003cab6","2018-09-08","docs(examples): update readme"],["6051439d","2018-09-08","feat(examples): add gesture-analysis example"],["bfd3c2f2","2018-09-08","Publish"],["06f61cf4","2018-09-08","fix: missing comma in make-example script"],["8856a18f","2018-09-08","test(rstream): add merge-only sync tests"],["1f22867f","2018-09-08","feat(transducers): rename window() => slidingWindow(), update readme"],["2916432d","2018-09-08","docs(transducers): update partitionSync() docs"],["162aa2d5","2018-09-08","feat(rstream): add merge-only mode for StreamSync, update docs"],["d8fdc018","2018-09-08","feat(transducers): update partitionSync() xform & PartitionSyncOpts"],["2f0f3d48","2018-09-08","feat(transducers): add window() xform"],["014bd980","2018-09-07","fix: update upload-examples script"],["b4c2e1c0","2018-09-07","build: update `yarn examples` command, update readme"],["81610117","2018-09-07","build: add build-examples, update make-example script"],["316ad6ae","2018-09-07","build(examples): update all examples to use parcel instead of webpack"],["b1ef187d","2018-09-07","build: update lerna, replace webpack deps w/ parcel"],["42d142dc","2018-09-06","Publish"],["d54dffb0","2018-09-06","docs(examples): update table"],["cf516aa5","2018-09-06","Merge branch 'feature/defonce' into develop"],["83fa7ade","2018-09-06","feat(examples): add hmr-basics demo (fixes #40)"],["61bed88b","2018-09-06","feat(memoize): add defonce()"],["e0f83c4a","2018-09-05","Publish"],["2eec7006","2018-09-05","feat(vectors): add/update transformVectors*(), update types"],["2d5d0c86","2018-09-05","refactor(vectors): rename immutable vec ops, update readme table"],["f7df4cba","2018-09-05","chore: update .gitignore (add gtm)"],["c4631533","2018-09-05","test(vectors): add benchmarks"],["2583380b","2018-09-04","docs(vectors): update readme"],["a3c04076","2018-09-04","feat(vectors): add immutable vec2/3/4 ops"],["be6ae489","2018-09-03","Publish"],["9510f01a","2018-09-03","feat(vectors): add new vector ops, update readme"],["a5b3f84c","2018-09-03","docs(vectors): add/update doc strings"],["7001b7a8","2018-09-03","refactor(vectors): update matrix factories"],["f0ccd0c5","2018-09-03","feat(vectors): add mixBilinear1/2/3/4"],["ad131513","2018-09-03","fix(vectors): update GVec method args (readonly)"],["25ea00ca","2018-09-03","fix(vectors): add opt normalize for angleBetween2/3"],["c0fbb4ed","2018-09-03","fix(vectors): add missing arg types"],["34ffe9d7","2018-09-03","docs(hdom): update/fix docs & readme"],["4a16bd56","2018-09-03","refactor(transducers): update normRange()"],["16aa0c46","2018-09-03","feat(vectors): add Vec*.intoBuffer() impls"],["ba386e52","2018-09-01","Publish"],["6acb05bb","2018-09-01","build(examples): fix deps"],["1795f187","2018-09-01","refactor(vectors): update Vec2/3/4 index signatures"],["fc7c670b","2018-09-01","Publish"],["e5662a0a","2018-09-01","docs(paths): update readme, add tests"],["a7104535","2018-09-01","fix(resolve-map): deep resolve of yet unknown path values"],["f0183530","2018-09-01","feat(paths): add exists() path checker & tests"],["e66a4929","2018-09-01","fix(hdom): fix local import"],["71ee43ca","2018-09-01","Publish"],["e7016b42","2018-09-01","docs(hdom): fix screenshot link"],["a8282925","2018-09-01","Publish"],["d2b4fafb","2018-09-01","fix(vectors): add missing deps"],["208e57d2","2018-09-01","docs: update various readme's, add/move screenshots"],["7fa3852a","2018-08-31","Publish"],["1060b2a3","2018-08-31","docs(hdom): update readme, add hydrate docs"],["473aadc1","2018-08-31","refactor(examples): update crypto-chart to use `updateDOM` xform"],["1a6741a1","2018-08-31","refactor(examples): update `updateDOM()` transducer call sites"],["0f396948","2018-08-31","feat(transducers-hdom): add DOM hydration support, rename (#39)"],["5e74a9c0","2018-08-31","feat(hdom): update HDOMOpts & start()"],["1e8b4efa","2018-08-31","fix(hiccup): serialize() args"],["52417e37","2018-08-31","fix(examples): minor update hydrate demo"],["e7607f53","2018-08-31","docs(examples): update readmes"],["0d34bb7d","2018-08-31","feat(examples): add hydrate-basics example"],["26bc7e74","2018-08-31","refactor(examples): update hdom start() call sites to new API"],["d55d9303","2018-08-31","refactor(hdom): minor update HDOMOpts & start()"],["9f8010db","2018-08-31","feat(hdom): add DOM hydration support (SSR), update start() (#39)"],["1b97a25a","2018-08-31","fix(hiccup): disable spans for certain element types"],["1b0deb22","2018-08-31","feat(hiccup): add optional support for spans & auto keying (#39)"],["b8d944eb","2018-08-31","refactor(vectors): update matrices & types"],["0a806011","2018-08-30","refactor(vectors): update mulV*() arg order"],["80f291b5","2018-08-30","Publish"],["461adeef","2018-08-30","docs(resolve-map): fix #35, update docs & tests"],["0673f0f4","2018-08-30","fix(examples): fix #38, add missing dep"],["75d6409e","2018-08-30","build: update yarn.lock"],["d1b77cfe","2018-08-30","docs(vectors): update readme"],["d5cec948","2018-08-30","feat(vectors): update types, update GVec, add maths fns, swap impls"],["bdb5d377","2018-08-29","feat(vectors): consolidate vector consts, add toJSON() impls"],["bb55adf3","2018-08-29","Merge branch 'develop' into feature/webgl"],["b82a22f5","2018-08-29","refactor(vectors): simplify prop accessors (DRY)"],["f5795eee","2018-08-28","Publish"],["cd834f82","2018-08-28","feat(vectors): add more vec2/3 ops"],["4a373674","2018-08-28","feat(bench): add opt prefix arg, update docs"],["39cced5f","2018-08-28","minor(examples): add cursor css for dial"],["986e954f","2018-08-27","Publish"],["5afb5791","2018-08-27","Merge pull request #34 from andrew8er/pr/fix-rstream-resolve-errors"],["34a97b47","2018-08-27","fix(rstream): Fix unbound this in method call expression"],["917d81d1","2018-08-27","Publish"],["dee0476d","2018-08-27","docs(examples): update list of examples"],["d7235a3e","2018-08-27","feat(examples): add mouse & touch events for canvas-dial, refactor"],["a0cbd2b8","2018-08-27","feat(atom): add .value accessor aliases (for deref()/reset())"],["cfb2b747","2018-08-27","feat(vectors): add mix1(), minor cleanups"],["ccc40a9d","2018-08-27","feat(rstream-gestures): add options for local & scaled positions"],["b25edbec","2018-08-27","fix(hdom-components): call canvas update from init()"],["3f27acd7","2018-08-27","docs(rstream): update merge() docs"],["b5633b18","2018-08-27","feat(examples): add canvas-dial example (WIP)"],["135d6f1b","2018-08-27","feat(hdom-components): add HDPI adaptation helper for canvas comps"],["9d542b92","2018-08-26","minor(examples): fix/update comments"],["80a5f300","2018-08-26","feat(examples): add client/browser version of commit-log"],["318401c0","2018-08-25","refactor(examples): update components, add docs"],["37718855","2018-08-25","refactor(examples): further DRY & readme updates"],["82db75b2","2018-08-25","docs: fix example table"],["0cd261cf","2018-08-25","docs(example): update example list"],["fca0b13d","2018-08-25","docs(examples): add more comments"],["ae383f8e","2018-08-25","refactor(examples): simplify date handling"],["4be74bae","2018-08-25","fix(examples): commit log parsing, minor update html()"],["d0b1a1e4","2018-08-25","feat(examples): add commit-table-ssr express server / git commit log demo"],["80cae22d","2018-08-25","chore: update make-module script"],["866f3cdd","2018-08-25","refactor(cache): update iterator methods"],["8e9ba347","2018-08-24","Publish"],["113b424b","2018-08-24","docs: fix links in readmes"],["f9a1cc2a","2018-08-24","docs(transducers-stats): fix screenshot link"],["89e1bd51","2018-08-24","docs(rle-pack): fix diagram link"],["1c92f223","2018-08-24","Publish"],["cff9d18a","2018-08-24","docs(transducers): update readme examples"],["7a5be213","2018-08-24","fix(transducers): arg handling in rename()"],["389aff82","2018-08-24","build: update yarn.lock"],["b3f94159","2018-08-24","Merge branch 'feature/tx-v2' into develop"],["3057237f","2018-08-24","refactor(iges): transducer imports & usage"],["28110726","2018-08-24","assets(examples): update crypto-chart screenshot"],["2a443a56","2018-08-24","docs(transducers-stats): update readme"],["024a4e96","2018-08-24","docs(transducers): update readme"],["832e57f1","2018-08-24","fix(transducers): copy&paste error (push)"],["d861bdd1","2018-08-24","fix(transducers): iterator1() final reduced value handling"],["599f2b66","2018-08-24","feat(transducers): update base64Encode() to return string if input given"],["1025996e","2018-08-24","docs(rle-pack): update readme & diagram"],["40415217","2018-08-24","feat(rle-pack): further update data format (non-repeats)"],["694a2537","2018-08-24","feat(rle-pack): update data format, custom repeat sizes, rename fns"],["89b4ad5d","2018-08-23","feat(transducers): update all reducers to accept opt iterables"],["2c3a1147","2018-08-23","feat(transducers): add GroupByOpts interface, update groupBy* reducers"],["8565edb8","2018-08-23","fix(rle-pack): fix initial repeat counts in encodeBytes(), update readme"],["0bd860e6","2018-08-23","feat(transducers): add fill() & fillN() reducers"],["fb3c04da","2018-08-23","refactor(vectors): make Vec & Mat type aliases of NumericArray"],["519394b3","2018-08-23","feat(api): add NumericArray and TypedArray types"],["ecfcdcd9","2018-08-23","build: update yarn.lock"],["116ede83","2018-08-23","docs(transducers): update readme"],["c716e4ac","2018-08-23","add(transducers): add IReducible support for transduce() & run()"],["1280cfd5","2018-08-22","feat(dcons): add IReducible impl, update deps & imports"],["f14f7ce5","2018-08-22","feat(associative): add IReducible impls for SortedMap & SortedSet"],["9d83255a","2018-08-22","perf(transducers): add IReducible, update reduce()"],["fd8e7614","2018-08-09","feat(rle-pack): add support for custom input word sizes"],["4fdd3c92","2018-08-09","docs(transducers): update readme"],["3e659181","2018-08-09","minor(transducers): fix comp import"],["1434b0ed","2018-08-09","refactor(hdom): remove thi.ng/iterators dependency"],["802c5b44","2018-08-09","build(memoize): update/fix dev deps"],["f3d46460","2018-08-09","refactor(rstream): use SEMAPHORE from thi.ng/api, not transducers"],["5d5c70ab","2018-08-09","Merge branch 'master' into feature/tx-v2"],["e9c8ddc6","2018-08-09","chore(strings): update exports, add docs"],["653a175a","2018-08-09","feat(strings): add case converters"],["5209c426","2018-08-09","fix(strings): buffer length (for null inputs) (`center()`)"],["1a20bc2f","2018-08-09","feat(strings): add truncateLeft() & wrap() stringers"],["3a8bd088","2018-08-09","refactor(transducers): replace local types w/ external defs"],["ca0a04e7","2018-08-09","feat(compose): extract comp() & juxt() to new @thi.ng/compose package"],["bea7a1fd","2018-08-09","refactor(resolve-map): replace SEMAPHORE const w/ thi.ng/api def"],["9b443cb4","2018-08-09","refactor(hdom): replace SEMAPHORE const w/ thi.ng/api def"],["c22ac3ce","2018-08-09","refactor(associative): replace Pair & SEMAPHORE w/ identical thi.ng/api defs"],["cf30ba26","2018-08-09","feat(api): add new/move type aliases into api.ts"],["c9ac981a","2018-08-09","feat(transducers-stats): make xforms iterable if input given"],["ab662d8a","2018-08-09","perf(transducers): add iterator1(), update various xforms"],["d130aaa1","2018-08-08","build: fix transducer versions"],["8a111efd","2018-08-08","refactor(transducers): add shared SortOpts, update xforms"],["3e6c4624","2018-08-08","chore: update .gitignore"],["afb267a0","2018-08-08","docs: add graphviz dot files"],["dcccbcba","2018-08-08","refactor(examples): simplify transducer usages"],["c17cb087","2018-08-08","refactor(hdom-components): update/replace deps (iterators => transducers)"],["420cfe37","2018-08-08","test(csp): fix regression to due transducers update"],["d6352267","2018-08-08","refactor(dgraph): update/replace deps (iterators => transducers)"],["78d0a844","2018-08-08","fix(iges): regression to due transducers update"],["065d78ba","2018-08-08","refactor(cache): update/replace deps (iterators => transducers)"],["abe1a886","2018-08-08","refactor(associative): update/replace deps (iterators => transducers)"],["eb1714f5","2018-08-08","refactor(rstream-query): simplify transducer uses"],["cd5c6ff1","2018-08-08","refactor(rstream): update StreamSync transducer init"],["bae8a1d8","2018-08-08","feat(transducers): update all xforms to also work as iterator"],["e713704f","2018-08-08","refactor(transducers): rename inspect() => trace()"],["45e49930","2018-08-08","refactor(transducers): add ReductionFn type alias, update Reducer"],["723da5bb","2018-08-08","fix(transducers): hex type decl"],["ea768ad0","2018-08-08","Publish"],["6a0db9c7","2018-08-08","refactor(examples): replace hex() => radix(), update deps"],["b1ea9a55","2018-08-08","refactor(transducers): deprecate hex(), update hexDump() xform & deps"],["5864f2cd","2018-08-08","feat(strings): add opt prefix arg for radix()"],["a5e2c28a","2018-08-08","feat(transducers): add partitionBits() xform & tests"],["6eb97b58","2018-08-08","Publish"],["b2ebbfc8","2018-08-08","fix(strings): float type decl"],["0f2cf77d","2018-08-08","Publish"],["a14e5b24","2018-08-08","docs: update readmes"],["56d64c50","2018-08-08","refactor(examples): update crypto-chart to use @thi.ng/strings"],["df067d84","2018-08-08","refactor(iges): update to use @thi.ng/strings"],["40781eb3","2018-08-08","feat(strings): re-import & update @thi.ng/strings from MBP2010"],["369f375d","2018-08-08","build(memoize): update deps"],["2bc092d4","2018-08-08","feat(memoize): add optional cache arg for memoizeJ()"],["adc49285","2018-08-07","feat(memoize): add @thi.ng/memoize package"],["252411aa","2018-08-06","Publish"],["46d02f34","2018-08-06","refactor(examples): update rstream examples"],["378772fb","2018-08-06","fix(rstream): add generics for stream()"],["ec777c09","2018-08-03","Publish"],["f7500359","2018-08-03","docs: add rootlevel license file"],["7c54c68f","2018-08-03","refactor(examples): minor update rstream examples"],["361f8b43","2018-08-03","refactor(rstream-query): remove obsolete `reset` in addJoin()"],["f9466317","2018-08-03","refactor(rstream-graph): remove obsolete `reset` in node() factory"],["32810900","2018-08-03","test(rstream): update tests"],["e1f4667c","2018-08-03","chore(rstream): remove obsolete file"],["9101e089","2018-08-03","docs(rstream): add/update docs for all remaining stream constructs"],["e97aac0d","2018-08-03","feat(rstream): add stream() & subscription() factories, add/update docs"],["55499cc4","2018-08-03","feat(rstream): update StreamSync to use `reset: false` by default, update docs"],["2f0235ea","2018-08-03","docs: update main readme"],["4a9b4cce","2018-08-03","Publish"],["c5afc7b3","2018-08-03","refactor(examples): simplify rstream-hdom example"],["fdc7630b","2018-08-03","refactor(iges): only expect ArrayLike points/vectors, minor other updates"],["9ea44beb","2018-08-03","test(transducers): add padLast() tests"],["e50fd10e","2018-08-03","feat(transducers): add peek() helper fn"],["ff91987f","2018-08-03","docs(transducers): add docs & examples for ~50% of all transducers"],["69d25c8c","2018-08-02","refactor(examples): update transducers-hdom example"],["949a5d46","2018-08-02","fix(transducers-hdom): support hdom user context"],["feae35b0","2018-08-02","Publish"],["8ee1b103","2018-08-02","Merge branch 'develop'"],["698bb60d","2018-08-02","fix(examples): add missing files (triple-query)"],["3e70c31a","2018-08-02","feat(examples): add transducers-hdom example"],["7efce7a7","2018-08-02","feat(transducers-hdom): add new package @thi.ng/transducers-hdom"],["d4aa5ea2","2018-08-02","refactor(examples): add new types for crypto-chart example"],["bc26fb33","2018-08-02","Publish"],["381ad971","2018-08-02","Merge branch 'develop'"],["4ce80e79","2018-08-02","docs(vectors): update readme"],["befc7785","2018-08-02","refactor(vectors): update cylindrical coord conversion, add Vec3 methods"],["74f939c3","2018-08-02","feat(vectors): add toCylindrical3() / fromCylindrical3()"],["3039a35a","2018-08-02","feat(vectors): make Vec2/3/4 array-like, add IEquiv impls, add tests"],["2a13f28c","2018-08-02","feat(vectors): add gvec size checks, add IEquiv & Iterable impls"],["d007a8ae","2018-08-02","docs(examples): update example table (add triple-query)"],["248150ee","2018-08-01","Publish"],["b1cf171f","2018-08-01","chore: update make-* scripts, add cloc stats script"],["748131a3","2018-08-01","chore: update .gitignore"],["cbfd65a3","2018-08-01","fix(examples): add utf meta to all example html files"],["1a8ff8a6","2018-08-01","refactor(examples): cleanup imports"],["4db3fa83","2018-08-01","refactor(rstream-query): cleanup imports"],["c1690170","2018-08-01","refactor(rstream-dot): cleanup imports"],["0f7e82ae","2018-08-01","refactor(rstream): cleanup imports"],["14672731","2018-08-01","refactor(hdom): cleanup imports"],["e0ce1061","2018-08-01","Publish"],["68f59f21","2018-08-01","refactor(vectors): add IVec to all vector class wrappers"],["3ca2cbf1","2018-08-01","refactor(iges): make fill mode optional for addPolyline2d()"],["2ac23a34","2018-08-01","Merge branch 'feature/iges' into develop"],["ee24ede1","2018-08-01","Merge branch 'feature/ts3' into develop"],["e7d2675d","2018-08-01","feat(examples): add triple-query example project"],["0f01cc36","2018-08-01","minor: markdown fixes in various readmes"],["542540f0","2018-08-01","build(examples): update webpack deps"],["2ecd5384","2018-08-01","refactor(router): TS3.0 PropertyKey handling"],["bf2a3074","2018-08-01","refactor(pointfree): TS3.0 PropertyKey handling"],["38372cc9","2018-08-01","refactor(interceptors): TS3.0 PropertyKey handling"],["30d65d4b","2018-08-01","refactor(defmulti): TS3.0 PropertyKey handling"],["2234313c","2018-08-01","refactor(associative): TS3.0 PropertyKey handling"],["20478072","2018-08-01","refactor(api): TS3.0 PropertyKey handling"],["c7f72440","2018-08-01","build: update dev dependencies in all packages & examples"],["56a1f0eb","2018-07-30","Publish"],["3534274a","2018-07-30","fix(vectors): get*() return types, refactor using set*()"],["0ca667a4","2018-07-30","Publish"],["3de5cea4","2018-07-30","fix(vectors): naming convention, add function overview tables"],["474f8df5","2018-07-29","Merge branch 'develop' into feature/iges"],["e82d97a7","2018-07-29","docs: update package list main readme"],["aef277f8","2018-07-29","Publish"],["ae1da134","2018-07-29","docs(vectors): update readme & package info"],["acedfae8","2018-07-29","Merge branch 'feature/geom' into develop"],["93b268a6","2018-07-29","docs(vectors): update readme"],["6571b8a3","2018-07-29","test(vectors): add gvec tests"],["d2bdf79e","2018-07-29","refactor(vector): update eqDelta impls, rename array transformers"],["54b3db2d","2018-07-29","feat(vectors): update get & copy fns to retain buffer types"],["f99cf3dc","2018-07-29","refactor(vectors): add gvec default length args"],["5bba592d","2018-07-29","feat(vectors): add swizzle fns, update/unify fn naming"],["e3c61675","2018-07-29","feat(vectors): add generic vec fns & class wrapper"],["1f0551d0","2018-07-28","refactor(vectors): various small fixes/additions (matrices)"],["1ec75e61","2018-07-27","feat(vectors): re-add matrix class wrappers, update vec classes"],["29500b6d","2018-07-26","build: add babel-minify dev dependency"],["21b04f06","2018-07-26","feat(vectors): re-import updated mat44, add orthoNormal3"],["eb3f66fb","2018-07-26","test(vectors): add tests"],["4fdda6a9","2018-07-26","feat(vectors): re-import updated mat23/33/44 functions"],["2a5a744d","2018-07-25","fix(vectors): copy/paste mistakes, add tests"],["e289db2b","2018-07-25","refactor(vectors): add op22/32, simplify various vec2/3 ops"],["b59fadfd","2018-07-25","feat(vectors): add vec4 ops & class wrapper"],["35af6a56","2018-07-25","feat(vectors): add minor/majorAxis(), minor/major2/3"],["5c52f771","2018-07-25","Merge branch 'develop' into feature/geom"],["5a3b9988","2018-07-25","Publish"],["a322e001","2018-07-25","fix(transducers-stats): fix naming of MACD results (#31)"],["03f94352","2018-07-25","Publish"],["d967f94e","2018-07-25","docs(transducers-stats): update docs & readme"],["c97cb75c","2018-07-25","feat(transducers-stats): add BollingerBand value interface"],["b92aaa58","2018-07-25","feat(transducers-stats): add MACD (fixes #31)"],["d1541539","2018-07-25","feat(vectors): re-import vector types from old thi.ng/geom TS version"],["f7a084ae","2018-07-24","feat(iges): add PolylineMode enum, update addPolyline2d()"],["e349cb6a","2018-07-23","docs(transducers): update readmes"],["e7772934","2018-07-21","Publish"],["0b0a7ca9","2018-07-21","feat(transducers-stats): add stochastic oscillator, refactor"],["2953caaa","2018-07-21","feat(examples): add MA mode dropdown, update crypto-chart dataflow"],["e3def294","2018-07-21","refactor(examples): switch to WMA plots in crypto-chart demo"],["fde777d0","2018-07-21","docs: update main readme"],["76dc450d","2018-07-21","feat(range-coder): re-import @thi.ng/range-coder package from MB2010"],["8389a2c7","2018-07-20","Publish"],["7cfb8e5a","2018-07-20","minor(rstream): remove obsolete args (pubsub)"],["a59c5c94","2018-07-20","perf(rstream): optimize dispatch if only single child"],["cd751fb4","2018-07-20","feat(rstream): add reset option for timeout()"],["7b10e0c9","2018-07-20","Merge pull request #30 from andrew8er/feature/rstream-add-timeout"],["e8009a68","2018-07-19","docs(transducers-stats): update readme links"],["52ce30c4","2018-07-19","docs: update main readme"],["7e497439","2018-07-19","build(transducers-stats): update package deps"],["1de746b2","2018-07-19","Merge branch 'feature/tx-stats' into develop"],["7df3ce04","2018-07-19","feat(transducers-stats): add other xforms"],["7a5812fb","2018-07-19","feat(transducers-stats): add @thi.ng/transducers-stats package"],["1fe612de","2018-07-19","docs(transducers): reapply MD fixes"],["3a2aa7a6","2018-07-19","Merge branch 'master' into develop"],["78701493","2018-07-19","feat(examples): update axis ticks, add more symbols, refactor SMAs"],["08db846b","2018-07-19","docs(transducers): update readme"],["64de94b5","2018-07-19","Publish"],["9874acec","2018-07-19","perf(transducers): update movingAverage() xform, add docs"],["482943c8","2018-07-18","docs(transducers): add/update doc strings"],["ccc37c67","2018-07-18","feat(transducer): add asIterable() helper"],["092154c7","2018-07-18","feat(transducers): allow key arrays for rename(), simplify call sites"],["9b07d12a","2018-07-18","feat(transducers): add juxtR() for multiplexed reductions from same src"],["aa55973e","2018-07-17","feat(rstream): Add a timeout() subscription"],["2733684e","2018-07-16","Publish"],["732a0967","2018-07-16","docs(examples): update readme & dataflow diagram"],["3edbaefc","2018-07-16","feat(examples): add auto-refresh, add data credits"],["9be20180","2018-07-16","fix(rstream): emit first value immediately in fromInterval()"],["0508e40a","2018-07-16","docs(examples): add/update types in rstream-hdom"],["694e6c64","2018-07-16","feat(examples): improve time labels on crypto-chart"],["3c1c29ac","2018-07-16","refactor(examples): remove atom usage from rstream-hdom demo, update docs"],["7cd78e03","2018-07-15","feat(examples): add theme support for crypto chart, update diagram"],["9ff8d352","2018-07-15","docs(examples): update list of demos"],["f1e3d081","2018-07-15","docs(examples): add dataflow graph to readme"],["6989b8db","2018-07-15","docs(examples): temp fix live demo link in readme"],["9b26c4b4","2018-07-15","Publish"],["24829454","2018-07-15","fix(resolve-map): add support for alt ES6 destructure form `{a: b}`"],["08a7600a","2018-07-15","build(hdom-components): update @types/webgl dep"],["2d7e7cdf","2018-07-15","build: update dev dependencies"],["c95a3701","2018-07-15","docs(example): add API ref link, update readme"],["a8487edc","2018-07-15","feat(examples): add crypto chart example"],["20b028c6","2018-07-13","chore: update make-module script"],["4f19be90","2018-07-13","docs: fix various markdown issues"],["973f1a42","2018-07-13","Publish"],["ee48a94c","2018-07-13","fix(rstream-gestures): touchevent check in safari"],["d636876d","2018-07-13","Publish"],["976a6d85","2018-07-13","refactor(iges): update formatParams(), optimize iges file size"],["81223dca","2018-07-13","feat(transducers): add wordWrap() xform"],["634de84d","2018-07-12","docs: add @thi.ng/iges to package list"],["3935d9a5","2018-07-12","Publish"],["eb6dfa9b","2018-07-12","build(iges): update package info"],["b841269a","2018-07-12","Merge branch 'feature/iges' into develop"],["087f3480","2018-07-12","refactor(iges): emit compressed globals section"],["7f1b2d46","2018-07-12","feat(iges): re-import & update IGES exporter (via MBP2010)"],["d061c7d0","2018-07-11","Publish"],["73c7b8ac","2018-07-11","perf(interceptors): update valueSetter()/valueUpdater()"],["ad4caad9","2018-07-11","feat(paths): add updater(), refactor updateIn(), update readme"],["fd23a34e","2018-07-11","docs(sax): minor update readme"],["ef161341","2018-07-11","docs(sax): add tests & DOM parsing example to readme"],["8cd279a8","2018-07-10","Publish"],["126103b3","2018-07-10","fix(hdom): always update \"value\" attrib last in diffAttributes()"],["fcfd4bf8","2018-07-09","docs(hiccup-css): fix #26, add pseudo-class & attrib selector docs"],["e4b62d8b","2018-07-09","Publish"],["22890961","2018-07-09","docs(rstream): add AUTHORS.md"],["d485bfa5","2018-07-09","Merge pull request #28 from andrew8er/pr/rstream-fix-transduce"],["03543ee9","2018-07-09","fix(transducers): revert mean() from regression introduced in 095e6ef"],["9513ddd8","2018-07-09","Merge branch 'master' into pr/rstream-fix-transduce"],["5ec61406","2018-07-09","build(examples): add missing html/webpack config for rstream-hdom demo"],["8321660c","2018-07-09","feat(examples): add rstream-hdom example"],["7f2d5dd2","2018-07-09","fix(rstream): Fix potential reference error in transduce()"],["84f23d35","2018-07-09","Publish"],["095e6ef3","2018-07-09","refactor(transducers): add reducer() helper, update existing reducers"],["0430c769","2018-07-04","Publish"],["dbbeffb3","2018-07-04","docs(paths): update docs & readme"],["c7f2f92d","2018-07-04","test(paths): add/update tests"],["3d9d6200","2018-07-04","feat(paths): update setter() to support arrays, optimize (~2.5x faster)"],["7fb407c0","2018-07-04","Publish"],["36165be8","2018-07-04","minor(rstream-graph): formatting"],["de17340a","2018-07-04","feat(rstream-gestures): add event & preventDefault opts, update docs"],["d5ac2643","2018-07-04","feat(rstream): add support for event listener opts in `fromEvent()`"],["9ffa346d","2018-07-03","Publish"],["677c7cc0","2018-07-03","feat(transducers): add ensureArray(), refactor reverse()"],["17d412af","2018-07-03","test(rstream-graph): increase timeout to avoid travis errors"],["a5942022","2018-07-03","Publish"],["33f0d197","2018-07-03","fix(associative): minor SortedSet fixes"],["1e185011","2018-06-29","Merge pull request #24 from andrew8er/pr/rstream-transduce-unsubscibe-on-error"],["8c7d9376","2018-06-28","fix(rstream): unsubscribe on error in transduce()"],["576f1da3","2018-06-25","Publish"],["c4fad707","2018-06-25","fix(rstream-graph): individual node outputs"],["eb2015df","2018-06-21","Publish"],["d0b1e5c4","2018-06-21","feat(rstream-graph): add stop(), fix `const` inputs, update docs/readme"],["cc5b7367","2018-06-21","feat(rstream): option to avoid auto-closing `fromInterval()`, add docs"],["4611e8e0","2018-06-21","chore: update repo & homepage fields in all packages"],["2223bded","2018-06-21","docs: fix package links in readmes"],["a3b245c8","2018-06-20","Publish"],["cd863214","2018-06-20","docs(transducers-fsm): fix readme (example)"],["60dca8ee","2018-06-20","Publish"],["882f3949","2018-06-20","feat(sax): add children & trim opts, add CDATA support"],["6cf0d915","2018-06-19","Publish"],["eed50b81","2018-06-19","docs: update main readme"],["343e07f1","2018-06-19","refactor(sax): wrap FSM handler results as arrays, update ELEM_SINGLE"],["a9ca1351","2018-06-19","feat(transducers-fsm): support multiple results, add tests, update readme"],["8959b938","2018-06-19","docs(sax): update readme (add SVG example)"],["bbd3b4ba","2018-06-19","docs(transducers-fsm): update readme, whitespace"],["bc261e57","2018-06-19","feat(transducers): add matchFirst()/matchLast() xforms, update readme"],["e824b6bb","2018-06-19","feat(sax): add support for escape seqs, minor optimizations"],["4e7fca56","2018-06-18","chore: update make-module script"],["30811ce5","2018-06-18","docs(transducers-fsm): update package keywords"],["cc11ade5","2018-06-18","Publish"],["0e4662d1","2018-06-18","fix(sax): correct docs in readme"],["278a86c2","2018-06-18","Publish"],["b5b26300","2018-06-18","docs: update package docs (bench / dot)"],["42e22921","2018-06-18","docs: update readmes (add/fix links)"],["10e807c5","2018-06-18","Merge branch 'feature/sax' into develop"],["3589e155","2018-06-18","fix(checks): isOdd() for negative values"],["23b9cc2e","2018-06-18","docs(transducers-fsm): update docs & readme"],["0f2fcdff","2018-06-18","feat(sax): add entity support, update result format, update states"],["56deb455","2018-06-17","refactor(sax): remove extracted FSM transducer & types, update readme"],["7c3c2903","2018-06-17","feat(transducers-fsm): inital import"],["64f23789","2018-06-17","feat(sax): update error handling, add parse() wrapper, add FSMOpts"],["a4766a54","2018-06-17","feat(sax): add support for proc & doctype elements, update `end` results"],["3dea9549","2018-06-17","feat(sax): emit child elements with `end` results, support comments"],["74f7d02e","2018-06-17","refactor(sax): extract parser sub-states"],["dce189f9","2018-06-17","feat(sax): initial import"],["f13138a4","2018-06-08","Publish"],["e1a8c915","2018-06-08","docs(hiccup-css): update readme"],["cffab49d","2018-06-08","Merge branch 'feature/hcss-inject' into develop"],["8d6e6c86","2018-06-08","feat(hiccup-css): add injectStyleSheet()"],["244bf213","2018-06-08","feat(hiccup-css): add class scoping support"],["b358c1a7","2018-06-07","Publish"],["e0535b4c","2018-06-07","docs(resolve-map): update readme"],["0beaffb1","2018-06-07","docs(resolve-map): update readme"],["0fc2305e","2018-06-07","fix(rstream-graph): rename `resolveMap` => `resolve` due to upstream changes"],["35deb3b8","2018-06-07","Merge branch 'feature/resolve-auto' into develop"],["e61c3b59","2018-06-07","feat(resolve-map): add cycle detection, fix edge cases"],["57f1ed5f","2018-06-06","feat(resolve-map): add ES6 destructuring shorthands for function vals"],["93b40b78","2018-06-06","Publish"],["720b1f18","2018-06-06","docs(rstream-graph): update api docs & readme"],["576668e3","2018-06-06","Merge branch 'feature/rs-graph-outputs' into develop"],["48c796f5","2018-06-06","fix(resolve-map): also use _resolvePath for plain lookups, optimize"],["dd2cbd44","2018-06-06","refactor(examples): update rstream-graph examples"],["1a09b61e","2018-06-06","minor(rstream-graph): minor fix exported types"],["558f4f8c","2018-06-06","fix(resolve-map): add private _resolveDeep"],["f2e0df25","2018-06-06","feat(rstream-graph): add full/optional support for multiple node outputs"],["dc6e0acc","2018-06-06","refactor(resolve-map): export absPath(), add LookupPath type alias"],["be21c4c2","2018-06-06","feat(rstream-graph): update NodeOutput, support multiple handlers"],["de48e134","2018-06-05","build: add yarn bootstrap"],["67c7e17d","2018-05-30","Publish"],["45785229","2018-05-30","Merge branch 'develop'"],["b267c999","2018-05-30","Merge branch 'feature/command' into develop"],["7ac6227d","2018-05-30","feat(atom): provide prev/curr states to history event listeners"],["94225989","2018-05-29","feat(atom): add INotify impl for History"],["44998ca0","2018-05-20","Publish"],["ad56421a","2018-05-20","refactor(rstream-graph): allow fn vals in GraphSpec too, update test"],["b7560989","2018-05-20","Publish"],["0818498a","2018-05-20","feat(rstream-graph): update types, initGraph(), node1(), add tests"],["c880a633","2018-05-20","Publish"],["773829e4","2018-05-20","minor(rstream): add alt subscribe() overrides (disabled)"],["846aaf97","2018-05-20","feat(rstream): re-implement bisect() using PubSub, update tests"],["cbc600e7","2018-05-20","fix(rstream): minor update PubSub topic fn return type"],["23fdd398","2018-05-19","feat(rstream): update resolve(), update subscribe() overrides"],["0e103c50","2018-05-16","Publish"],["0c292503","2018-05-16","feat(examples): add input clearing"],["7e1028a2","2018-05-15","fix(examples): tab handling in fuzzy dropdown"],["2482b16e","2018-05-15","fix(hdom): delay init() lifecycle call to ensure children are available"],["81b596f6","2018-05-15","refactor(examples): update highlightMatches()"],["db58ebc7","2018-05-15","feat(examples): add fuzzy match highlighting"],["09d531a7","2018-05-15","feat(exmples): add hdom-dropdown-fuzzy (unfinished)"],["577bdde8","2018-05-15","docs: add discord badge"],["7349ef43","2018-05-15","test(hdom): fix/update lifecycle test"],["5595cc2a","2018-05-14","Publish"],["4dd97abd","2018-05-14","docs: update readmes (compare / equiv)"],["4b94a1b9","2018-05-14","docs(api): update doc strings"],["f7b6b342","2018-05-14","Publish"],["191bc981","2018-05-14","chore: update package keywords"],["ade96f86","2018-05-14","fix(hdom): component obj lifecycle method thisArg handling"],["c54f7357","2018-05-14","test(transducers): remove obsolete test file"],["e238541f","2018-05-14","refactor(transducers): replace wrapBoth/Left/Right w/ wrap()"],["fbba5d27","2018-05-14","Publish"],["d59b0af3","2018-05-14","docs(transducers): update readme"],["37362dd2","2018-05-14","test(transducers): add fuzzy tests"],["fc6acd16","2018-05-14","chore(transducers): update deps, readme, re-exports"],["2bebba28","2018-05-14","feat(transducers): add filterFuzzy() xform"],["306625df","2018-05-14","feat(transducers): add wrap*() iterators"],["9efa5762","2018-05-14","docs(resolve-map): update readme"],["4591d5d5","2018-05-14","minor(examples): update dropdown html"],["2076d25b","2018-05-14","docs(resolve-map): add readme example"],["ea185897","2018-05-14","Publish"],["6661fc3a","2018-05-14","feat(examples): add hdom-dropdown example"],["5e729701","2018-05-14","feat(interceptors): update dispatch() / dispatchNow()"],["644d1ffe","2018-05-13","docs(hdom): update readme example"],["5d6e762d","2018-05-13","Publish"],["609d66dd","2018-05-13","docs(hdom): update readme"],["01f0fa56","2018-05-13","Merge branch 'feature/hiccup-context' into develop"],["f8fe5001","2018-05-13","docs(hiccup): update readme"],["67015ce9","2018-05-13","refactor(examples): update svg examples"],["dc775404","2018-05-13","docs(hiccup-svg): resolve #19, update readme, add invocation notes"],["373701b0","2018-05-13","feat(pointfree): add execjs for host calls, update readme"],["396faec8","2018-05-13","refactor(hiccup-svg): rename svgdoc => svg"],["765e7302","2018-05-13","docs(hiccup): update readme"],["b1cb7d9a","2018-05-12","perf(hiccup): update css()"],["feca5666","2018-05-12","refactor(hiccup): fix #19, add support for context object"],["4b8caec9","2018-05-12","docs: update main readme"],["2d4fd682","2018-05-12","docs: update all readme's (add deps links)"],["6ff48a41","2018-05-12","docs(defmulti): update readme"],["8b2e67ce","2018-05-12","Publish"],["41ce19c5","2018-05-12","test(csp): update IEnabled test impl"],["67f0e546","2018-05-12","refactor(dcons): update pop()"],["9b388604","2018-05-11","refactor(api): update interfaces, add docs"],["04b66b2f","2018-05-11","Publish"],["fbb721f8","2018-05-11","docs: remove dep graph from main readme, update package"],["eeed25ed","2018-05-11","feat(defmulti): add generics, update docs & readme"],["011519d7","2018-05-11","docs: update dep graph"],["2fd3d822","2018-05-11","Publish"],["126ecf36","2018-05-11","feat(defmulti): add defmultiN(), update readme, add tests"],["5391d986","2018-05-11","fix(pointfree): minor update error handling"],["5227dd1f","2018-05-11","refactor(errors): update return types (`never`)"],["790d0130","2018-05-11","test(defmulti): add tests"],["8c74a99d","2018-05-10","docs: update dep graph"],["08cef30e","2018-05-10","Publish"],["304669de","2018-05-10","Merge branch 'feature/defmulti' into develop"],["7ae718c5","2018-05-10","docs: update main readme"],["edc66bf2","2018-05-10","feat(defmulti): add @thi.ng/defmulti package"],["a818acd4","2018-05-10","docs(transducers): update readme"],["e6f2972b","2018-05-10","docs: update dep graph"],["051a05db","2018-05-10","Publish"],["55f29b8f","2018-05-10","feat(transducers): add normRange() iterator"],["bd1fba33","2018-05-10","docs: update dep graph"],["c72e81c3","2018-05-10","Publish"],["7af3ef86","2018-05-10","docs: update readmes"],["6349b918","2018-05-10","Merge branch 'feature/api-split' into develop"],["fc7c5c70","2018-05-10","refactor(examples): update imports"],["bdf5bf06","2018-05-10","refactor(examples): update imports"],["bc456364","2018-05-10","refactor: update deps & imports in all packages due to @thi.ng/api split"],["f051ca3c","2018-05-10","refactor(api): remove obsolete files from package"],["9466d4b2","2018-05-10","feat(bench): add new package @thi.ng/bench"],["e4a87c41","2018-05-10","feat(compare): add new package @thi.ng/compare"],["1e97856f","2018-05-10","feat(errors): add new package @thi.ng/errors"],["6d12ae08","2018-05-10","feat(equiv): add new package @thi.ng/equiv"],["aba06b0c","2018-05-10","docs(examples): fix link"],["34903210","2018-05-10","feat(examples): add icon button"],["a49e30cf","2018-05-10","Merge branch 'master' into develop"],["d5f1037a","2018-05-10","fix(examples): fix #22, update router-basics"],["7a8e43ea","2018-05-10","docs(examples): update readmes"],["cea77deb","2018-05-09","feat(examples): add hdom-theme-adr-0003 demo"],["5af437c1","2018-05-09","docs(hdom-components): add ADR-0003"],["b4476cb9","2018-05-09","refactor(hdom-components): add ButtonGroup type alias"],["1dd6e9a2","2018-05-09","docs: update dep graph"],["5da6c578","2018-05-09","Publish"],["6e7599ac","2018-05-09","docs(resolve-map): update/fix doc strings"],["5d2a3fe8","2018-05-09","refactor(resolve-map): fix #21"],["68ca46d2","2018-05-09","feat(dgraph): add leaves() & roots() iterators, update sort()"],["91a2b748","2018-05-09","docs: add @thi.ng/dot to main readme"],["b5132b3d","2018-05-09","docs: update dep graph"],["850716bc","2018-05-09","Publish"],["d8d9435e","2018-05-09","build: update deps in all packages, examples & scripts"],["68ea0864","2018-05-09","fix(hdom): native boolean attrib handling (e.g. \"checked\")"],["ede76916","2018-05-09","docs(hdom-components): update readme"],["053c8c6f","2018-05-09","feat(rstream-gestures): add zoom smooth config option, update readme"],["b52c503e","2018-05-09","docs: update readme's"],["5991be61","2018-05-09","feat(associative): add new functions, update arg & return types"],["c0950d65","2018-05-08","feat(hdom-components): add buttonGroup"],["5416887a","2018-05-07","doc(hdom-components): update ADR-0002"],["c0fef3d3","2018-05-07"," doc(hdom-components): update ADR-0002"],["a9574a0b","2018-05-07","feat(associative): add mapKeysObj() / mapKeysMap()"],["cefb1994","2018-05-07","refactor(hdom-components): remove CanvasOpts, update re-exports"],["4f8e7bab","2018-05-07","refactor(hdom-components): update notification & appLink comps"],["a11803c4","2018-05-07","feat(hdom-components): add notification component"],["ec41eb9c","2018-05-07","refactor(hdom-components): update button args"],["5e815256","2018-05-05","doc(hdom-components): add ADRs"],["cef3c6a8","2018-05-05","feat(hdom-components): add button component"],["334a4d24","2018-05-04","refactor(hdom-components): make pager more customizable"],["23b64517","2018-05-04","refactor(dot): replace NodeShape enum, minor other refactoring, add example"],["500dfa3b","2018-05-03","feat(dot): initial import @thi.ng/dot"],["f9a2daf2","2018-05-02","feat(hdom-components): add title component"],["6748515b","2018-05-02","feat(interceptors): add dispatch/dispatchNow() helper interceptors"],["5a6ce274","2018-05-02","build(examples): update packages"],["cbfa44b7","2018-05-02","build: update dev deps in all packages"],["efb288df","2018-05-01","feat(hdom-components): add pager component, add @thi.ng/iterators dep"],["b2806236","2018-05-01","docs: update dep graph"],["212e5013","2018-05-01","Publish"],["146fad62","2018-05-01","build: update upload-examples script"],["593654a7","2018-05-01","docs: update dep graph"],["a93cb98b","2018-05-01","fix(hdom): boolean attrib reset/removal"],["698438a5","2018-04-30","docs: update dep graph"],["f6e944c6","2018-04-30","Publish"],["7a543a50","2018-04-30","perf(hdom): only build linear diff edit log"],["431527a5","2018-04-30","perf(diff): add option to only build linear edit log"],["12b8dcb3","2018-04-30","fix(examples): CA dropdown"],["c2a5bcb3","2018-04-29","docs: update dep graph"],["5888f224","2018-04-29","Publish"],["95c57ec3","2018-04-29","Merge branch 'hotfix/arraylike'"],["491a6f85","2018-04-29","revert: b86d5b2"],["31ec3af4","2018-04-29","perf(hdom): update event handling in diffAttributes()"],["a7c5eafc","2018-04-29","refactor(examples): update todo list"],["b86d5b25","2018-04-29","refactor(examples): update hdom-basics"],["7fdf1721","2018-04-29","perf(api): major speedup equivObject(), update equivSet()"],["76920f75","2018-04-29","fix(checks): return type isMap()"],["ac60404e","2018-04-29","fix(checks): exclude functions in isArrayLike()"],["a6dc02e4","2018-04-28","docs: update dep graph"],["048632a4","2018-04-28","Publish"],["c4d8851d","2018-04-28","fix(interceptors): multiple sidefx value assignment"],["2aaa134a","2018-04-28","refactor(examples): minor update rstream-grid, add missing files"],["7c3faed2","2018-04-28","docs(interceptors): update readme"],["cba30e36","2018-04-28","docs(examples): update readme"],["1c469afa","2018-04-28","minor(examples): update rstream-grid sidebar"],["115dff2b","2018-04-28","docs: update dep graph"],["df55f40b","2018-04-28","Publish"],["661e34f5","2018-04-28","feat(examples): add rstream-grid dataflow demo"],["f4a095a5","2018-04-28","feat(interceptors): add dispatchLater()"],["f84fe450","2018-04-27","docs: update dep graph"],["8f5b3d91","2018-04-27","Publish"],["6f95bcb3","2018-04-27","feat(rstream-query): add obj->triple converter, update readme & example"],["d03520d8","2018-04-26","docs: update dep graph"],["085a81d9","2018-04-26","Publish"],["af6c807e","2018-04-26","style: reformat/sort imports in all packages"],["d36a5eaf","2018-04-26","refactor(rstream-query): simplify case selection in addPatternQuery()"],["2ab5af5d","2018-04-26","build: update/add upload scripts"],["5c048615","2018-04-26","docs: update dep graph"],["7fa54577","2018-04-26","Publish"],["ced200af","2018-04-26","docs(rstream-query): update readme, diag, add example"],["75f2af2e","2018-04-26","perf(rstream-query): optimize pattern queries, fix bindVars()"],["6bcd5dd4","2018-04-26","docs: update dep graph"],["6d261caa","2018-04-26","Publish"],["f5735a66","2018-04-26","Merge branch 'feature/rs-query' into develop"],["d093a5c8","2018-04-26","feat(rstream-query): add query spec types, addQueryFromSpec(), dedupe xforms"],["2ac8bff3","2018-04-26","feat(api): support more types in equiv(), add tests"],["a865f62b","2018-04-26","feat(checks): add date, map, nan, set checks"],["d057d954","2018-04-26","feat(rstream-dot): add option to include stream values in diag"],["76f00c36","2018-04-26","refactor(rstream): update ISubscribable (add IDeref parent)"],["679c4e08","2018-04-26","feat(rstream-query): add path query, multi-joins, pattern query reuse"],["9b5c58ac","2018-04-25","feat(rstream-query): rename TripleStore methods, use Set-like API"],["443ff8f6","2018-04-25","feat(rstream-query): add removeTriple(), simplify wildcard subqueries"],["c5f36a2d","2018-04-25","feat(rstream-query): add addQueryJoin(), add type aliases, update tests"],["7d927144","2018-04-25","docs: update dep graph"],["6215335f","2018-04-25","Publish"],["888f4e56","2018-04-25","build: update package keywords"],["cf388ddb","2018-04-25","docs: update rstream-* readmes"],["28cf39f9","2018-04-25","build: temporarily force node v9 for travis"],["72aa848a","2018-04-25","docs: update dep graph"],["a3e0cf82","2018-04-25","Publish"],["cc286e12","2018-04-25","fix(rstream): minor fix StreamSync.addAll()"],["fa36f989","2018-04-25","docs: update main readme"],["60bd67a4","2018-04-25","docs: update dep graph"],["8fc5fb40","2018-04-25","Publish"],["2f3bdaea","2018-04-25","build: update make-module script"],["b121c476","2018-04-25","refactor(rstream-query): rename types, update readme"],["97a6e945","2018-04-24","docs: update various readmes"],["781ae217","2018-04-24","test(rstream-query): add query tests"],["d9b845e0","2018-04-24","feat(rstream-query): add param queries w/ variables, update addPatternQuery"],["6368cd2d","2018-04-24","docs(rstream-dot): update readme, add diagram"],["3135da20","2018-04-24","docs(examples): update rs-dlow diagram & readme"],["a68eca0b","2018-04-24","feat(rstream-query): add IToDot impl for graphviz conversion/viz"],["7ffaa615","2018-04-24","feat(rstream-dot): add xform edge labels, extract types to api.ts"],["32fb7ff9","2018-04-24","docs(rstream-graph): update readme"],["2b9a8883","2018-04-24","refactor(rstream-graph): extract ensureInputs(), update docs"],["e11b9a80","2018-04-24","refactor(examples): update rstream-dataflow to use new specs"],["d564e109","2018-04-24","refactor(rstream-graph): update node input specs & node factories"],["3408c137","2018-04-24","feat(rstream-gestures): allows partial opts, add ID option"],["b3928174","2018-04-24","perf(rstream): support (re)named StreamSync inputs"],["66ec92fb","2018-04-24","feat(rstream-query): update index & sub-query caching/reuse"],["d35b5ff1","2018-04-24","feat(examples): add graphviz DOT output for rstream-dataflow"],["704025a9","2018-04-24","feat(rstream-dot): support multiple roots in walk()"],["0153903d","2018-04-24","feat(rstream-graph): add IDs for all generated nodes, rename factory type"],["e72478ab","2018-04-24","feat(rstream-dot): initial import @thi.ng/rstream-dot package"],["33f55b3e","2018-04-24","feat(rstream): add owner meta data & IDs for merge/sync inputs"],["16fabb8c","2018-04-23","refactor(rstream-query): simplify addQuery()"],["a4aa4cb3","2018-04-23","refactor(rstream-query): simplify query handling, optimize addFact()"],["ef3903e4","2018-04-23","feat(rstream-query): initial import"],["c73b0be9","2018-04-22","docs: update dep graph"],["d4423f2c","2018-04-22","Publish"],["03cee0fa","2018-04-22","build(heaps): update package desc"],["aa78d77e","2018-04-22","fix(cache): TLRUCache.get(), add tests, update package"],["7d38e5b0","2018-04-22","test(cache): add tests"],["9d53ae33","2018-04-22","feat(cache): add TLRUCache.prune(), fix ensureSize()"],["fa67252c","2018-04-22","docs: update dep graph"],["23e36a10","2018-04-22","Publish"],["944aaf6d","2018-04-22","test(heaps): add tests"],["fccb3af1","2018-04-22","feat(heaps): iterator now returns min() seq"],["58945727","2018-04-22","fix(heaps): add DHeap ICopy/IEmpty impls, fix return types"],["c4bbee0a","2018-04-22","feat(heaps): add min/max(), update heapify() and percolate methods"],["34996f23","2018-04-22","docs: update package list main readme"],["d6e175db","2018-04-22","docs: update dep graph"],["17ccbb1f","2018-04-22","Publish"],["05a68dbe","2018-04-22","Merge branch 'feature/lru' into develop"],["b83c0300","2018-04-22","minor(cache): cleanup"],["ab4abf55","2018-04-22","refactor(heaps): major update / simplify, fix DHeap, add accessors"],["24113b27","2018-04-21","docs(cache): update readme"],["574b5d96","2018-04-21","feat(cache): add TLRUCache"],["c4a9c074","2018-04-21","fix(cache): recompute size in LRUCache.delete(), extract removeEntry()"],["0ea0847d","2018-04-21","feat(heaps): import @thi.ng/heaps package"],["26c4cfd0","2018-04-21","feat(cache): add MRUCache, update package & readme"],["00ca831f","2018-04-21","refactor(cache): make LRU ops O(1), update/remove (some) interfaces"],["19f7e761","2018-04-21","feat(dcons): add asHead()/asTail()"],["3947419c","2018-04-21","fix(cache): don't insert new val if > maxsize"],["1c9d73f5","2018-04-21","docs(cache): update readme"],["d37a91eb","2018-04-21","refactor(cache): update/extend ICache & LRUCache, update readme"],["7bbbfa88","2018-04-20","feat(cache): initial import @thi.ng/cache package"],["dab48115","2018-04-20","docs: update dep graph"],["ff5705d4","2018-04-20","Publish"],["a335a66e","2018-04-20","docs(rstream): update readme"],["ba10907c","2018-04-20","feat(rstream): allow arbitrary PubSub topic vals, add @thi.ng/associative dep"],["bb11ddfb","2018-04-20","fix(associative): allow partial options arg for EquivMap ctor"],["27a098d7","2018-04-20","feat(rstream): add PubSub, add ISubscribableSubscriber, remove cache()"],["40903ea2","2018-04-19","docs: update dep graph"],["e0e95587","2018-04-19","Publish"],["d40f3a82","2018-04-19","docs: update dep graph"],["f77b443d","2018-04-19","Publish"],["87e3b488","2018-04-19","feat(interceptors): add EV_TOGGLE_VALUE handler, update EV_UNDO/REDO"],["920a3406","2018-04-19","docs(hdom): update readme"],["a2320ff2","2018-04-18","docs(paths): update readme"],["e0b41d81","2018-04-18","docs: update dep graph"],["59806881","2018-04-18","Publish"],["b7dff0ea","2018-04-18","fix(rstream-graph): import path"],["6fcc2358","2018-04-18","docs: update dep graph"],["adc2fb4a","2018-04-18","Publish"],["3b7c9d97","2018-04-18","fix(transducers): add generics for compR(), fix types in mapNth()"],["4c014b18","2018-04-18","Merge pull request #17 from andrew8er/pr/compr-types"],["c26fed40","2018-04-18","docs: update dep graph"],["88283db1","2018-04-18","Publish"],["3087776e","2018-04-18","fix(rstream-log): ID handling in Logger ctor"],["08af60af","2018-04-18","refactor(rstream-log): minor update matchID()"],["de474933","2018-04-18","docs(rstream-log): fix typo"],["0de3d200","2018-04-18","docs(examples): add undo info (svg-waveform)"],["c67607b7","2018-04-18","build(examples): update dev deps"],["bb60cb9f","2018-04-18","build: update dev deps"],["b8bb801a","2018-04-17","docs: update dep graph"],["7e585e2b","2018-04-17","Publish"],["8f3a3d10","2018-04-17","feat(paths): add setInMany() and mutInMany(), add @thi.ng/api dependency"],["78b998cb","2018-04-17","docs: update dep graph"],["fbe15446","2018-04-17","Publish"],["2e32c3b9","2018-04-17","feat(examples): add instrumentation to router-basics demo"],["1a6ac54d","2018-04-17","feat(interceptors): add event handler instrumentation"],["5107dcad","2018-04-17","docs: update dep graph"],["e5185cf2","2018-04-17","Publish"],["d7ff997b","2018-04-17","fix(interceptors): filter out undefined sidefx vals"],["de89f00d","2018-04-17","fix(transducers): Provide argument types for compR() and deepTransform()"],["a9a7bfae","2018-04-16","docs: update dep graph"],["b523e9ef","2018-04-16","Publish"],["5ddb19c6","2018-04-16","feat(rstream-graph): add addNode()/removeNode()"],["8bcc2870","2018-04-16","feat(rstream): add StreamMerge/Sync.removeID() & removeAllIDs()"],["a379d12d","2018-04-16","feat(resolve-map): support relative parent refs, update tests/readme"],["e643e7fe","2018-04-16","docs: update dep graph"],["df039db1","2018-04-16","Publish"],["144f2684","2018-04-16","Merge branch 'feature/rm-refactor' into develop"],["6992e82b","2018-04-16","feat(resolve-map): resolve each ref only once, re-use resolved results"],["4c1bd85c","2018-04-16","feat(paths): add mutator() & mutIn()"],["b00b5a28","2018-04-16","docs: update dep graph"],["dbb96fe2","2018-04-16","Publish"],["56d919c0","2018-04-16","fix(rstream-graph): create null sub for ID renaming"],["f5aba033","2018-04-16","docs: update dep graph"],["17584b5d","2018-04-16","Publish"],["9a83d4ef","2018-04-16","fix(interceptors): update undo handling to support history cursors"],["b856fecc","2018-04-15","docs(associative): update readme"],["c7e760ea","2018-04-15","docs: update dep graph"],["3111409c","2018-04-15","Publish"],["df32a59e","2018-04-15","docs(rstream-gestures): update package"],["e6c75b4a","2018-04-15","refactor(rstream-log): update package structure & readme example"],["2164ddfd","2018-04-15","feat(rstream): add Subscription.transform()"],["7cf93fc5","2018-04-15","docs(rstream): update readme"],["b667c88c","2018-04-15","docs(examples): update readme"],["f39affc1","2018-04-15","docs: update main readme"],["2942d1c3","2018-04-15","docs: update dep graph"],["f2ae6d24","2018-04-15","Publish"],["1479cd1e","2018-04-15","Merge branch 'feature/rstream-graph' into develop"],["a0063992","2018-04-15","refactor(examples): simplify rstream-dataflow example"],["619b4b37","2018-04-15","feat(rstream-graph): initial import @thi.ng/rstream-graph"],["937e5025","2018-04-15","docs: update dep graph"],["e6d7882d","2018-04-15","Publish"],["9ae2e035","2018-04-15","build(examples): update project structure for router-basics/svg-waveform"],["a597e728","2018-04-15","feat(examples): add undo/redo feature to svg-waveform, update components"],["a1d9ae68","2018-04-15","refactor(interceptors): refactor undo handling"],["cf42260c","2018-04-15","feat(atom): update History.record(), add IHistory interface"],["3c92f7e6","2018-04-15","feat(interceptors): add undo/redo handlers/fx & snapshot() interceptor"],["a102eb7c","2018-04-15","feat(interceptors): add default FX_UNDO/REDO side fx"],["ba0c876d","2018-04-14","refactor(interceptors): also pass ctx to sidefx handlers"],["183af614","2018-04-14","feat(interceptors): update processQueue(), expose full ctx to handlers"],["d539b4f3","2018-04-14","docs: update dep graph"],["83be0dce","2018-04-14","Publish"],["010f32e9","2018-04-14","docs: update readme files"],["9eec054a","2018-04-14","Merge branch 'develop'"],["85f5fdd4","2018-04-14","Merge branch 'feature/rs-gestures' into develop"],["885fcf15","2018-04-14","build: update make-module script"],["3f8dbc9e","2018-04-14","refactor(examples): update rs-dataflow demo"],["de1ac7bb","2018-04-14","feat(rstream-gestures): initial import @thi.ng/rstream-gestures"],["4755212f","2018-04-14","docs: update readme's"],["7b510487","2018-04-14","build(examples): add html & webpack config"],["6198899d","2018-04-14","docs: update dep graph"],["0243b44d","2018-04-14","Publish"],["c6b3025c","2018-04-14","build: import depgraph script"],["9e98ce12","2018-04-14","refactor(examples): update svg-waveform demo"],["1b21710a","2018-04-13","feat(examples): add svg-waveform example"],["584223ca","2018-04-13","refactor(examples): rename interceptors in interceptor-basics,"],["86883e3c","2018-04-13","feat(interceptors): add ensureStateRange() & ensureParamRange() iceps"],["6da2d397","2018-04-13","docs: update dep graph"],["816950a8","2018-04-13","Publish"],["07628f67","2018-04-13","build: fix package clean tasks"],["d798cee3","2018-04-13","refactor(dgraph): regression update due to @thi.ng/associative changes"],["bfabe802","2018-04-13","feat(associative): add renameKeysMap"],["1f8af6c4","2018-04-13","refactor(associative): update EquivMap, update SortedSet, add docs"],["d1178acf","2018-04-13","perf(associative): update equiv() impls"],["76e5c853","2018-04-13","docs: update dep graph"],["f4b4067e","2018-04-13","Publish"],["26361437","2018-04-13","refactor(dgraph): update ArrayMap/Set refs"],["2f33389a","2018-04-13","docs(associative): update readme"],["87560270","2018-04-13","refactor(associative): rename EquivMap/Set => ArrayMap/Set, export interfaces"],["a7698563","2018-04-13","refactor(associative): add private impls for EquivMap/Set"],["cb4976fe","2018-04-12","feat(associative): add SortedSet, update SortedMap"],["ae0eae8e","2018-04-12","feat(associative): add SortedMap & tests, minor refactor EquivMap"],["82be16d4","2018-04-11","docs: update dep graph"],["3c1e2dd7","2018-04-11","Publish"],["52c75085","2018-04-11","feat(transducers): add run() for executing side effects only, update readme"],["5f94efa0","2018-04-10","docs: update dep graph"],["fa794a6e","2018-04-10","Publish"],["675847b8","2018-04-10","fix(dgraph): update corrupted deps"],["9b1c7bdb","2018-04-10","docs: update dep graph"],["5dd34261","2018-04-10","Publish"],["26d8ed85","2018-04-10","v0.1.0"],["efe606e1","2018-04-10","build(dgraph): update package desc"],["e7a5c93e","2018-04-10","build(associative): update package desc"],["207dd992","2018-04-10","docs: update package list main readme"],["371cd42f","2018-04-10","build(associative): update deps (dcons)"],["3e90117a","2018-04-10","Merge branch 'feature/dgraph' into develop"],["0dc9f646","2018-04-10","feat(associative): add EquivSet.first()"],["e086be6b","2018-04-10","feat(dgraph): re-import DGraph impl & tests, update readme"],["10c089a3","2018-04-10","feat(dcons): add IEmpty impl, minor refactoring"],["cc70dbce","2018-04-10","feat(associative): initial import @thi.ng/associative"],["fd27a946","2018-04-09","build: update lerna"],["69efee12","2018-04-09","docs(hdom): add authors.md"],["2357355a","2018-04-09","docs: update dep graph"],["c2cd9fbc","2018-04-09","Publish"],["2a91e302","2018-04-09","perf(hdom): intern imported checks, update normalizeTree(), add docs, fix tests"],["7e3070a2","2018-04-09","docs: update dep graph"],["d9aeed47","2018-04-09","Publish"],["b9d9a493","2018-04-09","fix(hiccup-svg): path(), update add null check for points()"],["acc9c13b","2018-04-09","refactor(examples): update router demo"],["5dfcd1ad","2018-04-08","docs: update dep graph"],["179efc44","2018-04-08","Publish"],["6f45ec6d","2018-04-08","v0.1.0"],["2458b15f","2018-04-08","docs(hiccup-svg): update readme"],["fcf1404e","2018-04-08","refactor(hiccup): remove obsolete deref check"],["4ed84eb5","2018-04-08","docs(hdom): update readme"],["a904599c","2018-04-08","docs(hdom): update/fix readme"],["d832c9d2","2018-04-08","docs(hdom): update readme & doc strings"],["3e7e0256","2018-04-08","Merge branch 'feature/hdom-context' into develop"],["905467c1","2018-04-08","refactor(examples): update cellular-automata & hdom-benchmark"],["0873832d","2018-04-08","refactor(hdom-components): update dropdown components"],["4a18e884","2018-04-08","refactor(examples): update webgl demo to use new canvas component"],["8b0d6015","2018-04-08","build: update main yarn.lock"],["7c88a3fc","2018-04-08","feat(hdom-components): update canvas handlers, add webgl2 version"],["e06e5042","2018-04-08","refactor(examples): update todo-list"],["6faa38a0","2018-04-08","refactor(examples): update webgl demo"],["1e798ce7","2018-04-08","docs: add hiccup-svg to main readme"],["7e0aeb68","2018-04-08","refactor(examples): update pointfree-svg"],["afccabdc","2018-04-08","feat(hiccup-svg): re-add svg fns as new @thi.ng/hiccup-svg package"],["86d1f0d9","2018-04-08","refactor(hdom-components): remove svg, update canvas (hdom context support)"],["a8a55a4f","2018-04-08","refactor(examples): major update router-basics (hdom context usage)"],["14b9cecc","2018-04-08","refactor(examples): update dashboard, hdom-basics & hdom-benchmark"],["70cfe06c","2018-04-08","feat(hdom): fix #13, add support for user context and pass to components"],["40d706b6","2018-04-07","feat(checks): add hasPerformance() check (performance.now)"],["d310345f","2018-04-07","feat(api): add bench() & timed() utils"],["4d79f763","2018-04-07","refactor(examples): add GestureEvent (rs-dflow)"],["c1c81bd0","2018-04-07","refactor(interceptors): update Event id type (string => PropertyKey)"],["37ba4d17","2018-04-05","refactor(examples): update rstream-dflow"],["a19f8a4d","2018-04-05","feat(examples): update rstream-dflow example"],["dccfc827","2018-04-05","docs(rstream): update readme"],["8ce73078","2018-04-05","refactor(examples): minor updates rstream-dflow"],["fce54223","2018-04-05","build(dgraph): import dgraph package stub to avoid travis build errors"],["8eb7e68c","2018-04-05","fix(examples): update GH links in html files"],["f9bfc9d7","2018-04-05","docs(hdom): update readme"],["56f4a26a","2018-04-05","docs: update dep graph"],["45c7daf4","2018-04-05","Publish"],["48310a68","2018-04-05","fix(rstream): correct wrong isString() import"],["9ab15442","2018-04-05","docs(examples): update doc strings"],["04b9c087","2018-04-05","docs(examples): update readme"],["23327874","2018-04-05","docs(examples): update rs-dflow example"],["ae27bd65","2018-04-05","refactor(examples): update rstream-dflow example"],["218150a9","2018-04-04","docs(examples): update readme, add dflow graph viz"],["72a96130","2018-04-04","feat(examples): add rstream-dataflow example"],["1eb8b12c","2018-04-04","docs: update dep graph"],["343956d3","2018-04-04","Publish"],["bffc4430","2018-04-04","fix(checks): add prototype check for isPlainObject(), add tests"],["9c91dc34","2018-04-03","fix(examples): minor update pointfree-svg example"],["9621f1b1","2018-04-03","docs: update dep graph"],["5276322a","2018-04-03","Publish"],["68727859","2018-04-03","Merge branch 'feature/pointfree-lang' into develop"],["ca5dfd3c","2018-04-03","docs(pointfree-lang): update readme"],["3310ec3d","2018-04-03","feat(pointfree-lang): implement dynamic var scoping & local var grammar"],["1c899a18","2018-04-03","refactor(pointfree-lang): rename grammar rule / nodetype MAP=>OBJ, add docs"],["5450e507","2018-04-03","fix(pointfree-lang): update grammar (parse order), add tests"],["769e84da","2018-04-03","feat(pointfree-lang): overhaul visitor quote/array & map handling, grammar"],["2101e926","2018-04-03","feat(pointfree): add math ops, update load/loadkey, update tests"],["26905f09","2018-04-02","refactor(examples): update pf svg example"],["ee684c7b","2018-04-02","feat(pointfree-lang): update grammar, aliases, ASTNode, NodeType"],["92d2d685","2018-04-01","refactor(pointfree): update/rename storeat => setat, update tests"],["68a8dba6","2018-04-01","feat(pointfree): add copy() word"],["42cc7786","2018-04-01","docs: update dep graph"],["996b5ff7","2018-04-01","Publish"],["4c7e9068","2018-04-01","docs: update all package readme's"],["cb7276e6","2018-04-01","chore: update make-module/example scripts"],["d4951f5e","2018-04-01","docs(examples): update all example readme's"],["c7521980","2018-04-01","build: add missing package descriptions, update yarn.lock"],["c2d22337","2018-04-01","Merge branch 'feature/examples-webpack' into develop"],["e2ac1852","2018-04-01","build: update dev dependencies for all packages & examples"],["bc264d39","2018-03-31","build(examples): update tsconfig for all examples"],["8273674d","2018-03-31","build(examples): update all examples to use webpack 4.4.*"],["1022ab67","2018-03-31","fix(examples): update stack comment for write-file"],["89ea6331","2018-03-31","fix(examples): update readme (pf-svg)"],["f3477690","2018-03-31","docs(pointfree-lang): update readme"],["7b5a36fd","2018-03-31","docs(examples): update example list"],["3f33b651","2018-03-31","refactor(examples): update pointfree-svg demo/readme"],["208b5c39","2018-03-31","fix(pointfree-lang): object literal grammar rule (allow initial WS)"],["910b7187","2018-03-31","feat(examples): add pointfree-svg demo"],["a0e0a0ca","2018-03-31","docs: update dep graph"],["6d836772","2018-03-31","Publish"],["659cce91","2018-03-31","fix(pointfree-lang): add ensureEnv, update re-exports, update readme"],["a0bf7810","2018-03-31","fix(pointfree): reexport ensureStack fns"],["b16c8500","2018-03-31","docs(pointfree-lang): fix readme link"],["fbb17957","2018-03-31","docs(pointfree-lang): fix grammar link"],["f2a56266","2018-03-31","docs: update main readme"],["430caf03","2018-03-31","docs: update dep graph"],["6f743ae1","2018-03-31","Publish"],["9e43405a","2018-03-31","docs: update pointfree readme's"],["32e2da0d","2018-03-31","docs: update dep graph"],["82008c38","2018-03-31","v0.1.0"],["d838610f","2018-03-31","Merge branch 'feature/pointfree-lang' into develop"],["0623df69","2018-03-31","build: add pegjs dev dependency"],["3dec35a8","2018-03-31","feat(pointfree-lang): initial import @thi.ng/pointfree-lang"],["5db90c53","2018-03-31","feat(pointfree): add caseq()"],["0da93da6","2018-03-29","docs: update dep graph"],["fdfbe425","2018-03-29","Publish"],["d47d0b36","2018-03-29","docs(pointfree): update readme"],["b096e436","2018-03-29","feat(pointfree): add more dataflow combinators, words & tests"],["c0a653b6","2018-03-29","docs(pointfree): update readme"],["9f866da4","2018-03-29","docs(pointfree): update readme"],["3dc30a8e","2018-03-29","feat(pointfree): add combinators, update controlflow words, remove execq"],["39b59677","2018-03-29","docs: update dep graph"],["6b5033f0","2018-03-29","Publish"],["6cbacec7","2018-03-29","feat(hdom-components): add svg line()"],["0baf1f8a","2018-03-29","docs(pointfree): update readme & package"],["fe1f3a3a","2018-03-29","test(pointfree): add tests"],["943b4f9c","2018-03-29","feat(pointfree): add new words, constructs, aliases, fix re-exports"],["221ece65","2018-03-29","build: update make-module/make-example scripts"],["6904d440","2018-03-28","docs: update dep graph"],["aa9439ef","2018-03-28","Publish"],["9b00a25f","2018-03-28","build: add benchmark dev dep"],["e35a2ca1","2018-03-28","build(paths): update package"],["e52b8693","2018-03-28","feat(pointfree): major update readme, package"],["0f0c382f","2018-03-28","feat(pointfree): add new words, rename words, remove mapnth, pushl2"],["10d5a347","2018-03-28","fix(pointfree): add 0-arity comp() (identity fn)"],["ba0bcc21","2018-03-27","refactor(pointfree): rename core words & change case"],["1c4cd2f3","2018-03-27","feat(pointfree): add rstack, update StackContext"],["50cc65fe","2018-03-26","build: update yarn scripts / add missing nyc dev dep"],["2b7e99b9","2018-03-26","fix(api): illegalState() creates IllegalStateError"],["1a01f9a0","2018-03-26","fix(pointfree): wordU(), add tests"],["3252554f","2018-03-26","feat(pointfree): further restructure, perf, add tests"],["a48361d6","2018-03-25","feat(pointfree): major refactor & restructure"],["d1564bb1","2018-03-25","docs(pointfree): update readme"],["79b4ce32","2018-03-25","feat(pointfree): update all words to return stack"],["f3f0bec1","2018-03-24","feat(pointfree): update word/wordU, add append(), tuple(), join()"],["06987133","2018-03-23","docs: update dep graph"],["c5bcdafa","2018-03-23","Publish"],["be9ba2fd","2018-03-23","Merge branch 'hotfix/pointfree'"],["f211c397","2018-03-23","fix(pointfree): fix readme/docs"],["51a6e500","2018-03-23","docs: update dep graph"],["0e4858c9","2018-03-23","Publish"],["15ffd34d","2018-03-23","test(pointfree): add tests"],["6cac0c7d","2018-03-23","feat(pointfree): support data vals in program, add collect(), update readme"],["f75486d4","2018-03-23","feat(pointfree): add unwrap, quatations, math/bitops, array/obj access"],["884a8bfa","2018-03-23","docs: update main readme/depgraph"],["e635dafd","2018-03-23","Merge branch 'feature/pointfree' into develop"],["4d4e5e1b","2018-03-23","v0.1.0"],["6aef8807","2018-03-23","build(pointfree): update package info"],["58f5716c","2018-03-23","feat(pointfree): add dropIf, neg, nop, update cond,condM, add docs/readme"],["25bbf05c","2018-03-22","feat(pointfree): initial import of refactored @thi.ng/pointfree package"],["92e4ff8f","2018-03-21","docs: update main readme"],["b153067c","2018-03-21","docs: update dep graph"],["fb42cb5a","2018-03-21","Publish"],["218c2304","2018-03-21","Merge branch 'feature/iwatch' into develop"],["ca099e57","2018-03-21","refactor(transducers): update error handling"],["8a3e72ee","2018-03-21","feat(rstream-log): update error handling, add @thi.ng/api dep"],["1ce7054f","2018-03-21","feat(rstream): update error handling, add @thi.ng/api dep"],["adc559ae","2018-03-21","refactor(router): update error handling"],["9316a6ca","2018-03-21","feat(iterators): update error handling, add @thi.ng/api dep"],["501d56f8","2018-03-21","feat(interceptors): update error handling, add @thi.ng/api dep"],["0cfc2270","2018-03-21","refactor(hiccup-css): update error handling"],["a3238abf","2018-03-21","feat(hiccup): update error handling, add @thi.ng/api dep"],["f5173f1d","2018-03-21","feat(hdom): update error handling, add @thi.ng/api dep"],["a046b285","2018-03-21","refactor(dcons): update error handling"],["5087ffe3","2018-03-21","refactor(cso): update error handling"],["0fc10388","2018-03-21","feat(bitstream): update error handling, add @thi.ng/atom dep"],["ea7b1752","2018-03-21","refactor(atom): update error handling"],["4d3785f9","2018-03-21","feat(api): add error types & ctor fns"],["d93940a4","2018-03-21","feat(atom): consider parent validators in History update fns"],["3b1d563a","2018-03-21","feat(atom): add CursorOpts and cursor validation, update ctor, add tests"],["bae1647c","2018-03-21","feat(atom): add optional validation predicate for Atom, add tests"],["47643f96","2018-03-21","test(api): add INotify tests"],["b3287808","2018-03-21","refactor(router): update INotify dummy impl"],["fbb19acd","2018-03-21","refactor(api): update mixins, IEnable / INotify return types"],["0d67e73e","2018-03-21","build: limit travis build branches"],["96bb0198","2018-03-21","docs: update dep graph"],["b2778585","2018-03-21","Publish"],["2a1264a2","2018-03-21","refactor(rstream-log): update Logger ctor arg handling"],["e58c5e01","2018-03-21","Merge branch 'feature/rstream-refactor' into develop"],["deb59a15","2018-03-21","docs(rstream): update readme, add dataflow example"],["276ede6a","2018-03-20","docs(rstream): update readme"],["907d5995","2018-03-20","feat(rstream): add IDeref impl for Subscription"],["1fee7d5c","2018-03-20","feat(rstream): add merge()/sync() ctor wrappers"],["eec56dec","2018-03-20","feat(rstream): add transduce(), update re-exports"],["42b343aa","2018-03-20","test(rstream): add StreamSync & Subscription tests"],["26f15b23","2018-03-20","refactor(rstream): simplify unsubscribe() logic"],["a1c58418","2018-03-20","docs(rstream): add Cache deprecation docstring"],["6b87bca4","2018-03-20","feat(rstream): Subscription stores last value and passes to new subs"],["ebe222c9","2018-03-20","refactor(rstream): update & StreamMerge/SyncOpts, minor fixes StreamSync"],["80264093","2018-03-20","feat(rstream): fix #6 update StreamMerge to support transduced input streams"],["db61b0bd","2018-03-20","test(rstream): add/update sidechain* tests"],["d18a1158","2018-03-20","feat(rstream): update Sidechain*.next(), add unsubscribe()"],["7dce160c","2018-03-20","minor(rstream): fromPromise()"],["41bb385f","2018-03-20","feat(rstream): add fromView(), update fromAtom() docs, update re-exports"],["01a751e2","2018-03-20","feat(rstream): update Subscription.unsubscribe()"],["2ad2f485","2018-03-20","fix(rstream): bisect() add downstream impl checks, add tests"],["6f5ec040","2018-03-20","test(rstream): remove obsolete fromPromise error test case"],["47b6a924","2018-03-20","refactor(rstream): simplify Subscription, update all impls"],["64c16255","2018-03-19","Merge branch 'develop' into feature/rstream-refactor"],["5bf5ce61","2018-03-19","docs: update dep graph"],["1c5d96f7","2018-03-19","Publish"],["ff802a45","2018-03-19","refactor(rstream): simplify StreamMerge source handling"],["f7029efd","2018-03-19","refactor(rstream): minor cleanup/perf StreamSync"],["791a993f","2018-03-19","feat(rstream): add StreamSync"],["c7364334","2018-03-19","refactor(rstream): add/update Stream ctor arities"],["abc195a4","2018-03-19","feat(transducers): add mapVals() xform"],["3bc8d54a","2018-03-19","refactor(transducers): update labeled(), mapIndexed(), partition()"],["bebd1186","2018-03-19","feat(transducers): add partitionSync() xform"],["627dd7a4","2018-03-19","docs: update dep graph"],["b316114f","2018-03-19","Publish"],["76c5e0a4","2018-03-19","fix(interceptors): InterceptorPredicate args"],["dbb046e8","2018-03-18","docs: update dep graph"],["a69b5141","2018-03-18","Publish"],["c0ec2745","2018-03-18","feat(atom): add optional support for eager views, update tests/readme"],["f295a475","2018-03-18","build(examples): update all @thi.ng deps to use \"latest\""],["4e91374b","2018-03-18","docs: update dep graph"],["6b92bf67","2018-03-18","Publish"],["eaeccf47","2018-03-18","fix(paths): fix setter fast paths"],["e022cdf0","2018-03-18","docs: update dep graph"],["8cee5b5f","2018-03-18","Publish"],["92f0e27e","2018-03-18","fix(paths): fix setIn fast paths for path length 3/4"],["2376e02f","2018-03-18","build: fix changelogs for atom/interceptors/paths"],["4c0212fb","2018-03-18","docs(resolve-map): fix link in readme"],["b6a8da58","2018-03-18","build(examples): update deps & imports for all examples"],["2c1a85bc","2018-03-17","docs: update dep graph"],["c3cac0c0","2018-03-17","Publish"],["1e7ef2b6","2018-03-17","build: fix atom deps in downstream packages"],["8281609c","2018-03-17","minor(atom): fix typo in package"],["a41a208e","2018-03-17","v1.0.0"],["9a1cc521","2018-03-17","docs: update dep graph"],["c0c3e64c","2018-03-17","v1.0.0"],["0d13982c","2018-03-17","v0.1.0"],["95f6b392","2018-03-17","Merge branch 'feature/lazymap' into develop"],["d34bd146","2018-03-17","build: update make-module script (deps)"],["e1cf4aba","2018-03-17","docs(interceptors): update readme"],["9a651cd9","2018-03-17","docs(atom): update readme"],["1273efbd","2018-03-17","refactor(atom): extract @thi.ng/paths & @thi.ng/interceptors functionality"],["763ea89f","2018-03-17","docs: update package list in main readme"],["195a6ffd","2018-03-17","feat(interceptors): add/extract @thi.ng/interceptors package from @thi.ng/atom"],["422c2c4e","2018-03-17","feat(resolve-map): add @thi.ng/resolve-map package"],["f9f6eb1e","2018-03-17","feat(paths): add/extract @thi.ng/paths from @thi.ng/atom"],["d3d66436","2018-03-16","refactor(examples): update router-basics"],["f1bc74d2","2018-03-16","docs: update readme files (add create-hdom-app instructions)"],["8596cd07","2018-03-16","docs: update dep graph"],["6383233e","2018-03-16","Publish"],["357c46e0","2018-03-16","feat(atom): add forwardSideFx() interceptor"],["e52e7e51","2018-03-16","feat(atom): add FX_FETCH & FX_DELAY sidefx impl, update docs"],["6378eb0b","2018-03-15","fix(examples): re-add html"],["633093ea","2018-03-15","refactor(examples): update router-basics (create-hdom-app tpl)"],["6deb4e33","2018-03-14","build(examples): update hdom deps"],["c0432cb4","2018-03-14","docs: update dep graph"],["fff77886","2018-03-14","Publish"],["3a0e97d2","2018-03-14","test(hdom): add tests, update package"],["25d0c309","2018-03-14","test(hiccup): add deref tests"],["14356895","2018-03-14","Merge branch 'feature/hdom-deref' into develop"],["c85b1f81","2018-03-14","refactor(examples): remove obsolete .deref() calls"],["93343d63","2018-03-14","feat(hiccup): support fn values in style objects"],["28b0b578","2018-03-14","refactor(hdom): disable deref() for attrib objects"],["de839e89","2018-03-14","refactor(hiccup): disable deref() for attrib objects"],["0fe6c44c","2018-03-14","feat(hdom): add auto deref() support"],["0d2c16fc","2018-03-14","feat(hiccup): add auto deref() support"],["2351240d","2018-03-14","minor(examples): typo"],["c5cee483","2018-03-12","minor(examples): readme"],["15acdb5c","2018-03-12","minor(examples): typos"],["ee118999","2018-03-12","docs(examples): update readme"],["8eb0a610","2018-03-12","docs(examples): add README for example dir"],["fc61aae6","2018-03-12","minor(examples): add filesize info"],["777b1b05","2018-03-11","refactor(examples): more stateless components, add docs"],["49008ccf","2018-03-11","docs(examples): update readme"],["eb73ae93","2018-03-11","refactor(examples): update router demo"],["5b412e7d","2018-03-11","docs: update dep graph"],["a9b09f16","2018-03-11","Publish"],["10ea19f5","2018-03-11","docs(atom): update readme & doc strings"],["0ca0bf3e","2018-03-11","fix(atom): ignore side fx with null values"],["5e8cbc98","2018-03-11","docs: update dep graph"],["e62dace5","2018-03-11","Publish"],["bd8c8b1e","2018-03-11","Merge branch 'feature/router' into develop"],["eac0e96f","2018-03-11","docs(router): update readme & package"],["71b19a43","2018-03-10","feat(examples): major update router example app"],["d8b8d978","2018-03-10","docs: add router package links to main readme"],["51b02e2b","2018-03-10","feat(examples): add router-basics demo"],["07b4e060","2018-03-10","feat(router): re-import router package (MBP2010), minor refactor & fixes"],["019943e2","2018-03-09","docs: update dep graph"],["95d6a4e2","2018-03-09","Publish"],["c7e69def","2018-03-09","refactor(examples): minor updates"],["3fae2496","2018-03-09","feat(atom): add/extract StatelessEventBus"],["667691ce","2018-03-09","feat(atom): update EventBus ctor, add deref()"],["59085e0c","2018-03-09","fix(atom): add interceptors to re-exports"],["9b3d91e5","2018-03-09","feat(atom): add IRelease impls"],["3bf9fbaa","2018-03-09","docs(atom): update all doc strings"],["e96cc991","2018-03-09","refactor(atom): minor update event bus, add/update docs"],["15ae0643","2018-03-09","docs: update dep graph"],["a26e25cf","2018-03-09","Publish"],["a48b7762","2018-03-08","refactor(examples): update async-effect"],["4d7613d8","2018-03-08","refactor(examples): update interceptor-basics"],["fb9b19c4","2018-03-08","docs(atom): minor update View docs"],["359c4f5a","2018-03-08","feat(atom): add valueSetter/Updater() interceptors"],["443875c8","2018-03-08","refactor(atom): update InterceptorFn handling"],["1fd43d7c","2018-03-08","feat(atom): add default handlers, add/rename event/fx const values, add checks"],["c5d5ed56","2018-03-08","build(examples): update all deps"],["89a0b20d","2018-03-08","docs: update dep graph"],["f018fb12","2018-03-08","Publish"],["cb9c808e","2018-03-08","Merge branch 'feature/atom-async-dispatch' into develop"],["a6beda9d","2018-03-08","refactor(examples): update async & interceptor demos"],["3303c3b4","2018-03-08","docs(atom): update readme"],["56866e07","2018-03-08","feat(atom): add async dispatch effect, update event bus & api types"],["9900e991","2018-03-08","feat(checks): add isPromise() & isPromiseLike()"],["fb4f3095","2018-03-08","docs: update dep graph"],["99a87e6a","2018-03-08","Publish"],["52fff093","2018-03-08","docs(examples): update async readme & html"],["c9794acb","2018-03-07","feat(examples): add async fx example"],["9e5239bc","2018-03-07","fix(atom): add EventBus to module re-exports, minor cleanup"],["5b21c147","2018-03-07","build(examples): update interceptor deps"],["7dcfce05","2018-03-07","refactor(examples): update interceptor example"],["85e04957","2018-03-07","docs: update dep graph"],["851efd23","2018-03-07","Publish"],["1adb703a","2018-03-07","refactor(examples): update interceptor example"],["1ab803aa","2018-03-07","refactor(atom): update InterceptorFn, ensureXXX(), update deps, add docs"],["eec7bc4c","2018-03-07","docs: update dep graph"],["b877a069","2018-03-07","Publish"],["fb74b8a7","2018-03-07","Merge branch 'feature/iceps' into develop"],["4958606b","2018-03-07","feat(examples): add interceptors example"],["a0d662bb","2018-03-07","build(atom): add @thi.ng/dcons dep"],["e01bf733","2018-03-07","feat(atom): re-add refactored EventBus & interceptor handling"],["be46af3f","2018-03-06","feat(examples): add svg viz to devcards demo"],["79245a35","2018-03-05","minor(examples): typos"],["f40143be","2018-03-05","fix(examples): add/update devcard links"],["8019df82","2018-03-05","build(examples): add missing html/webpack files, update deps"],["9becd43d","2018-03-05","Merge branch 'master' of github.com:thi-ng/umbrella"],["58e75591","2018-03-05","docs: update dep graph"],["f38885de","2018-03-05","Publish"],["df4e98fb","2018-03-05","Merge branch 'feature/ex-mstates' into develop"],["1041d90c","2018-03-05","feat(examples): add devcards example"],["a200beb8","2018-03-05","feat(hdom): add support for frame skipping, add docs"],["a7e61a4e","2018-03-05","feat(atom): update IAtom, add resetIn() & swapIn() impls"],["17a11710","2018-03-05","Merge branch 'feature/hcss-refactor' into develop"],["22bc29c9","2018-03-05","docs(hiccup-css): add doc strings for attrib fns"],["721583a7","2018-03-05","refactor(hiccup-css): internal restructure"],["34d699fc","2018-03-05","chore: update issue tpl instructions"],["dd09f0bf","2018-03-05","docs: update dep graph"],["203a3a6e","2018-03-05","Publish"],["2e3942ac","2018-03-05","docs(hiccup-css): add doc strings, update readme"],["105bbf4e","2018-03-05","perf(hiccup-css): no empty Set() creation, change type check order in css()"],["870da99d","2018-03-05","docs: update readme"],["0c23d2b6","2018-03-05","docs: update dep graph"],["1e08ce24","2018-03-05","v0.1.0"],["69036ad1","2018-03-05","minor(hiccup-css): update package desc"],["5d946cb0","2018-03-05","Merge branch 'develop'"],["d6f8b066","2018-03-05","Merge branch 'feature/hiccup-css' into develop"],["8a665313","2018-03-05","build(hiccup-dom): update ignore files"],["bafb533e","2018-03-05","docs(hiccup-css): update readme"],["24983d37","2018-03-05","test(hiccup-css): update tests"],["0f416efe","2018-03-05","feat(hiccup-css): add comment() indentation support"],["f3190fff","2018-03-05","fix(hiccup-css): fn & auto-prefix handling"],["787d0aba","2018-03-05","feat(hiccup-css): add more unit types, update px/ms"],["02bff871","2018-03-05","feat(hiccup-css): add support for iterators as arg type to css()"],["cbb9b7f0","2018-03-04","test(hiccup-css): add/update tests"],["a6231172","2018-03-04","refactor(hiccup-css): format @keyframe stops, rename perc() => percent()"],["e347c292","2018-03-04","fix(hiccup-css): @import query separator"],["57533c76","2018-03-04","feat(hiccup-css): update conditional handling, add formatCond()"],["428de3c7","2018-03-04","feat(hiccup-css): update fn handling, add iterator support, units, comment"],["bdc63496","2018-03-04","minor: fix typos"],["c20f2df6","2018-03-04","Create CONTRIBUTING.md"],["6de6b279","2018-03-03","perf(hiccup-dom): minor optimizations"],["ebbc4910","2018-03-03","feat(hiccup-css): add attrib fn, at-rules, quoted fns, decl value arrays"],["e687230c","2018-03-03","feat(hiccup-css): add default vendor prefixes"],["a53d2a5f","2018-03-03","feat(hiccup-css): add keyframes(), split module into separate src files"],["d837199d","2018-03-03","feat(hiccup-css): add CSSOpts, mediaQuery(), fn expansion"],["5247b8f4","2018-03-03","feat(hiccup-css): add/fix class handling, update Format"],["3a4cf1e6","2018-03-03","feat(hiccup-css): add package @thi.ng/hiccup-css"],["92fb7b07","2018-03-03","chore(examples): update links in html files"],["b6d350b3","2018-03-03","docs: update dep graph"],["6c628213","2018-03-03","docs(hdom): fix diagram link"],["db98e5e5","2018-03-03","chore: update make-example"],["2f5f0b2e","2018-03-03","build(examples): update all example deps"],["45291b3d","2018-03-03","Publish"],["9099607d","2018-03-03","docs: update readme's"],["752a78bb","2018-03-03","feat(hdom-components): rename package hiccup-dom-component => hdom-components"],["79e1b097","2018-03-03","docs(hdom): update readme"],["f1c53150","2018-03-03","refactor(hdom): rename package hiccup-dom => hdom"],["ae47c4db","2018-03-03","docs: update dep graph"],["e405ebdf","2018-03-03","Publish"],["8c180bc6","2018-03-03","refactor(transducers): extract compR() into its own file, update refs, update readme"],["2f5abce3","2018-03-02","refactor(transducers): update swizzler() arg types"],["488462e1","2018-03-02","refactor(transducers): update permutations()/permutationsN(), add tests"],["91938ede","2018-03-02","feat(transducers): add permutations()/permutationsN() generators"],["aa042602","2018-03-02","docs: update dep graph"],["3d8a6d3c","2018-03-02","Publish"],["2316d4d1","2018-03-02","test(transducers): add flatten() tests"],["3d8aa324","2018-03-02","fix(transducers): flattenWith()"],["befaceb0","2018-03-01","docs(atom): update readme example"],["3dcc3cb8","2018-03-01","docs(atom): update example"],["dd665920","2018-03-01","feat(examples): add login-form demo to illustrate state handling"],["118cf92f","2018-03-01","docs: update dep graph"],["1f61f49d","2018-03-01","Publish"],["ae7c7f5d","2018-03-01","docs(atom): update readme, add View examples"],["3e55a058","2018-03-01","fix(atom): re-export api.ts"],["341255c9","2018-03-01","refactor(atom): include `path` in IView"],["0206f339","2018-03-01","docs: update dep graph"],["5308cab5","2018-03-01","Publish"],["a0ce6e76","2018-03-01","refactor(atom): update Path type references"],["9ad83b27","2018-03-01","feat(atom): add IView, IViewable, impl for Atom, Cursor, History"],["1fa829d6","2018-03-01","test(atom): add/update tests"],["8c0c621c","2018-03-01","feat(atom): add View type to create derrived views/value subscriptions"],["55c6a7d5","2018-03-01","perf(atom): add optimized setter() for path len < 5, fix toPath()"],["ed23376d","2018-03-01","perf(atom): add optimized getters for path len < 5"],["ff21d9f4","2018-02-28","docs: update dep graph"],["6779def4","2018-02-28","Publish"],["a86b6775","2018-02-28","docs(hiccup-dom): fix readme link"],["ca17389c","2018-02-28","feat(hiccup-dom): add support for function attribs, add docs"],["050a5656","2018-02-28","docs(hiccup-dom): update initial readme example"],["c7e2f816","2018-02-27","Merge branch 'master' of github.com:thi-ng/umbrella"],["eafc5dd6","2018-02-27","build(examples): update deps"],["4a8feffc","2018-02-27","docs(hiccup-dom): fix #7, update readme"],["61e87665","2018-02-27","docs(hiccup-dom): update readme"],["9593fd13","2018-02-27","docs: update dep graph"],["b8a6e1af","2018-02-27","Publish"],["70720a37","2018-02-27","refactor(examples): minor updates"],["8a070ff2","2018-02-27","feat(hiccup-dom): start(), add optional spans arg"],["9b2c1606","2018-02-27","minor(hiccup-dom): update arg types"],["f5b66753","2018-02-27","feat(hiccup-dom): fix #11, update normalizeTree/normalizeElement"],["6e0dfa1d","2018-02-27","feat(diff): update diffArray, generic types"],["621868b4","2018-02-26","docs: update dep graph"],["9ff8c0af","2018-02-26","Publish"],["45d63858","2018-02-26","refactor(hiccup): sort void tags"],["9824844a","2018-02-26","feat(transducers): add keys()/vals() iterators, refactor pairs()"],["061c9088","2018-02-26","Merge pull request #12 from jarvismartin/minor-fix"],["f6143eb7","2018-02-25","Merge branch 'master' of github.com:thi-ng/umbrella into minor-fix"],["c34271f7","2018-02-24","docs: update dep graph"],["1b16d920","2018-02-24","Publish"],["44f33dfc","2018-02-24","feat(hiccup): add support for more SVG tags (66 total)"],["214fe4d0","2018-02-23","feat(hiccup-dom-components): add gradient, group, path SVG funcs"],["8180e149","2018-02-23","spelling fix"],["68d9f838","2018-02-23","Merge branch 'master' of github.com:thi-ng/umbrella"],["ca68a978","2018-02-23","minor grammar fix"],["b3891d52","2018-02-23","refactor(examples): simplify json-components"],["1834f812","2018-02-23","docs: update dep graph"],["8a620583","2018-02-23","Publish"],["2a11ff6f","2018-02-23","refactor(transducers): add TransformSubSpec, fix test, minor update docs"],["223669b1","2018-02-23","test(transducers): add tests"],["f0fdfa10","2018-02-23","feat(transducers): add deepTransform & mapDeep xform"],["65f794f6","2018-02-19","build: add .gitignore gen for make-example script"],["f7c6e0c9","2018-02-19","Merge pull request #10 from jarvismartin/example-gitignores"],["955eecc4","2018-02-19","add .gitignore files to examples"],["e1f87d6b","2018-02-19","fix(examples): update packages & readme's (fix #9), deps in make-example"],["c2123e58","2018-02-19","Merge pull request #9 from jarvismartin/examples-work-on-debian"],["31a4710a","2018-02-19","build(examples): update CA deps (transducers)"],["9b664d25","2018-02-19","refactor(examples): simplify CA transducers, update rule format/handling"],["2c2030d2","2018-02-19","docs: update dep graph"],["afa74728","2018-02-19","Publish"],["193058d5","2018-02-19","feat(transducers): add lookup1d/2d/3d helpers, update re-exports"],["813b2cac","2018-02-19","make examples work on Debian systems"],["77c95322","2018-02-19","refactor(examples): update webgl demo"],["73dd1dc5","2018-02-19","docs: update dep graph"],["9c8e877a","2018-02-19","build(examples): update CA deps"],["7f8c6cd0","2018-02-19","Publish"],["3627087b","2018-02-19","docs: add hiccup-dom-components to main readme"],["ac831234","2018-02-19","build(hiccup-dom-components): add missing deps"],["9fe096a3","2018-02-19","build: update yarn.lock"],["2394396e","2018-02-19","feat(examples): add CA presets, refactor rule handling"],["511c4980","2018-02-19","feat(hiccup-dom-components): initial import"],["df93af6d","2018-02-18","feat(examples): add randomize buttons (CA)"],["fde83d59","2018-02-18","build(examples): update example deps"],["b8c03743","2018-02-18","docs: update dep graph"],["06830ce6","2018-02-18","Publish"],["69b3c6a4","2018-02-18","docs: update readme files"],["074f94ff","2018-02-18","build: update deps"],["5a728cb9","2018-02-18","refactor(rstream-log): update Logger ctor due to changes in StreamMerge"],["4942e2ea","2018-02-18","feat(rstream): fix #8, support infinite StreamMerge's, update ctor"],["ca1caae5","2018-02-18","refactor(rstream): don't throw in unsubscribe() if no parent"],["5c106cfa","2018-02-18","docs(examples): add more CA config links"],["d6d3310d","2018-02-18","feat(examples): add cellular automata example"],["d023bd5f","2018-02-18","chore(transducers): update re-exports, readme"],["ab8a8558","2018-02-18","feat(transducers): add convolve2d xform & types"],["d7b1d0df","2018-02-18","feat(transducers): add movingMedian() xform"],["48f8bb85","2018-02-18","fix(transducers): update imports `step()`"],["63a49530","2018-02-18","refactor(transducers): add/update range2d/range3d arity handling"],["e71a4c90","2018-02-17","docs(atom): update readme"],["2e34f389","2018-02-17","refactor(atom): update history reset/swap, record before applying val"],["b593a9b9","2018-02-17","feat(atom): add deleteIn()"],["fbc819ed","2018-02-17","fix(atom): empty path handling getter/setter"],["7d50c1ca","2018-02-17","refactor(examples): simplify todo atom handling"],["b5ee8e45","2018-02-17","refactor(atom): use @thi.ng/api/equiv as default History predicate"],["398c32af","2018-02-17","refactor(atom): don't mutate getter/setter path args, update updateIn"],["6f6e7e5b","2018-02-17","feat(atom): add getIn/setIn/updateIn"],["d38f47e0","2018-02-16","test(transducers): add range2d tests"],["722042b1","2018-02-16","feat(transducers): add range2d / range3d generators"],["47d5df09","2018-02-15","chore: update issue tpl"],["c9ec713f","2018-02-15","Create issue_template.md"],["4d1de860","2018-02-08","docs: update dep graph"],["3fc88b25","2018-02-08","Publish"],["445c8575","2018-02-08","refactor(transducers): re-use even/odd from @thi.ng/checks"],["68f8fc23","2018-02-08","feat(checks): add new predicates, refactor existing"],["080c2ee5","2018-02-07","fix(csp): fix #5, more example fixes (rfn calls)"],["a10a487c","2018-02-07","fix(csp): fix #5, example in readme"],["972a23e1","2018-02-05","style: update const/let assignments"],["623bc492","2018-02-05","refactor(examples): update webgl demo"],["5281d9a8","2018-02-05","feat(examples): add webgl example"],["eb12a165","2018-02-04","build: update upload-docs script"],["3ee6755f","2018-02-04","fix(examples): minor fixes index.html"],["855d8039","2018-02-04","feat(transducers): add page() xform, update readme"],["596ed7a2","2018-02-04","docs: update dep graph"],["17e447f6","2018-02-04","Publish"],["1f4f4b8c","2018-02-04","fix(hiccup-dom): support parent DOM ID as arg start()"],["d8fea714","2018-02-03","docs: update dep graph"],["3daf7962","2018-02-03","Publish"],["4edf45fc","2018-02-03","fix(hiccup-dom): fix #3, update start() to be cancellable, add docs"],["ae34f077","2018-02-03","docs(hiccup-dom): fix readme link"],["b6d95fbe","2018-02-03","feat(examples): add json demo theme support, update docs"],["83cd1a21","2018-02-03","refactor(examples): minor update json-components"],["edfaa6bd","2018-02-03","build(examples): update deps"],["07da7cca","2018-02-03","docs: update dep graph"],["c3b54f98","2018-02-03","Publish"],["b524145b","2018-02-03","feat(examples): add reactive json editor component"],["10c119b2","2018-02-03","refactor(hiccup-dom): minor update ILifeCycle"],["944cbb3b","2018-02-03","fix(hiccup-dom): add NO_SPANS config"],["d8fa4cae","2018-02-03","fix(examples): update index.html"],["d5460b70","2018-02-03","docs(hiccup-dom): update readme"],["5d8478e1","2018-02-03","fix(examples): add missing files"],["3156e888","2018-02-03","fix(examples): update deps"],["2e4e51c5","2018-02-03","feat(examples): add json component demo"],["f30579ce","2018-02-03","Merge branch 'master' of github.com:thi-ng/umbrella"],["adb04f07","2018-02-03","merge with #2"],["c09bb89d","2018-02-03","docs(hiccup-dom): add svg example links"],["aa48d3be","2018-02-03","feat(examples): add svg particles demo"],["1b007e69","2018-02-03","Merge pull request #2 from forresto/patch-1"],["7ae6af3b","2018-02-02","Is c 3 here?"],["96004efe","2018-02-03","docs(atom): fix readme example"],["8ebc6242","2018-02-03","docs(atom): update readme"],["ad62c56f","2018-02-03","build(examples): update deps"],["5aed12b6","2018-02-03","docs: update dep graph"],["99a943ac","2018-02-03","Publish"],["8106d16f","2018-02-02","build: update main package build commands, update make-example script, readme"],["309c7d7c","2018-02-02","build(examples): update example build commands"],["29267799","2018-02-02","refactor(examples): update event attribs"],["7cc5c93a","2018-02-02","refactor(hiccup-dom): update event attrib naming convention, update readme"],["7ae706eb","2018-02-02","feat(hiccup): skip fn exec for event attribs, update tests, readme"],["ab7154a8","2018-02-02","docs(hiccup-dom): update readme"],["38699b96","2018-02-02","docs(hiccup-dom): add diagram"],["62af1537","2018-02-02","docs: update dep graph"],["ec0132c6","2018-02-02","Publish"],["d134d5b7","2018-02-02","refactor(hiccup-dom): add interfaces (still unused)"],["324d2fa2","2018-02-02","docs(examples): add benchmark docs"],["448e8396","2018-02-02","perf(diff): add fail fasts"],["98485760","2018-02-02","refactor(checks): isPlainObject()"],["110a9deb","2018-02-02","fix(api): update compare() & equiv()"],["0f57ff90","2018-02-02","docs(atom): update readme, add history example"],["10d9ecbf","2018-02-02","docs(hiccup-dom): fix example link"],["17b43036","2018-02-02","docs(hiccup-dom): update readme"],["d573bc53","2018-02-02","docs: update hiccup* readme files"],["7cfca0d8","2018-02-02","docs: update main readme"],["e4f8fe16","2018-02-02","docs(hiccup-dom): update readme"],["c2fed170","2018-02-02","feat(examples): add hdom-basics example"],["5e6eb832","2018-02-02","chore: add make-example script"],["e69774df","2018-02-02","fix(examples): benchmark"],["e939586a","2018-02-02","feat(examples): add hdom benchmark"],["0a41be9e","2018-02-01","docs: fix readme"],["afb869b0","2018-02-01","docs: add/update readme files"],["d52630c6","2018-02-01","docs: update dep graph"],["10a4f910","2018-02-01","Publish"],["12590847","2018-02-01","docs: update dep graph"],["24ea4ca9","2018-02-01","docs: update readme files"],["25c9f785","2018-02-01","feat(atom,hiccup-dom): add example projects (todo list & dashboard)"],["1f6bb589","2018-02-01","fix(hiccup-dom): boolean attribs"],["8218814f","2018-02-01","fix(atom): truncate redo stack in record(), swap() return type"],["c5b6e0fa","2018-02-01","feat(atom): add History.canUndo/Redo()"],["36cc9561","2018-02-01","fix(atom): cursor swap() return type"],["094e4869","2018-02-01","docs(hiccup-dom): fix links in readme"],["d373cab1","2018-02-01","docs: update main readme"],["00ad5d84","2018-02-01","docs: update dep graph"],["794b1fd5","2018-02-01","Publish"],["326d3c31","2018-02-01","build: update .npmignore"],["3101698d","2018-02-01","feat(hiccup-dom): add start(), update readme"],["beebe435","2018-02-01","chore: update keywords for all packages"],["5d7c10a3","2018-02-01","test(rstream): fix tests (TS 2.7.*)"],["4cc4bbc0","2018-02-01","build: cleanup/update deps"],["30ffd009","2018-02-01","feat(hiccup-dom): re-import package (MBP2010)"],["4d0d437b","2018-02-01","feat(diff): re-import diff package (MBP2010)"],["0439d24b","2018-02-01","refactor(hiccup): update/add deps, restructure/split into sub-modules"],["febe39f1","2018-02-01","fix(transducers): update comp() for typescript 2.7.*"],["a580f722","2018-02-01","build: update deps (typescript & typedoc)"],["ea638bef","2018-02-01","feat(rstream): add Cache subscription class"],["1354e298","2018-02-01","fix(api): fix equiv string handling, update tests"],["878520e6","2018-02-01","feat(api): update equiv() null handling, add tests"],["03c1d97a","2018-01-31","docs: update dep graph"],["5a3c0cce","2018-01-31","Publish"],["59d2a8a1","2018-01-31","docs(rstream): add undo/redo example to readme"],["54cd5261","2018-01-31","fix(rstream): subscription unhandled error handling"],["4c703cd4","2018-01-31","docs: update dep graph"],["92a923cf","2018-01-31","Publish"],["365e0d2b","2018-01-31","build: update main package commands"],["d58cf70d","2018-01-31","feat(rstream): add changed predicate for fromAtom(), add tests"],["dd155dfd","2018-01-31","docs(atom): add docs for getter/setter"],["55383621","2018-01-31","feat(atom): add full IAtom impl for History, update tests"],["4753afb8","2018-01-31","refactor(transducers): use Predicate2"],["79989e52","2018-01-31","refactor(dcons): use Predicate"],["42bbb864","2018-01-31","refactor(iterators): use Predicate/Predicate2"],["fbf8453c","2018-01-31","feat(api): add Predicate2 & StatefulPredicate2 types"],["b180917c","2018-01-31","docs: update dep graph"],["2746e8b3","2018-01-31","Publish"],["911ff183","2018-01-31","test(atom): add/update tests"],["e1b57dea","2018-01-31","feat(atom): add IReset/ISwap impls for History"],["282d9896","2018-01-31","fix(atom): cursor ctor arg checks"],["74ecdf18","2018-01-31","refactor(atom): extract IReset, ISwap from IAtom"],["035c51a3","2018-01-31","feat(atom): add History, add/update tests"],["2c88537e","2018-01-30","fix: links in readme"],["bbbc869c","2018-01-30","deploy: add upload-docs script"],["dee5f53c","2018-01-30","docs: update readme"],["da037723","2018-01-30","docs: update dep graph"],["95c728e0","2018-01-30","Publish"],["7f345bcc","2018-01-30","chore: update make-module"],["22b02a2d","2018-01-29","build: add main package commands, update readme"],["768f2ea7","2018-01-29","chore: update ignore files"],["0b5ca037","2018-01-29","build: add nyc coverage dev deps & commands"],["dc0958b7","2018-01-29","chore: update ignore files"],["c863018c","2018-01-29","test(iterator): add/update tests"],["f6530225","2018-01-29","docs: update dep graph"],["a508b05e","2018-01-29","Publish"],["4c242c93","2018-01-29","test(rstream): remove sidechainPartition interval test due to unpredictable timing"],["382aa05e","2018-01-29","fix(rstream): fatal recursion w/ error handling"],["1a0004f7","2018-01-29","test(rstream): increase timeout for travis"],["7bdc5617","2018-01-29","docs(iterators): update readme"],["651d07c0","2018-01-29","refactor(iterators): remove default exports"],["1e9dc852","2018-01-29","docs: add links for badges"],["925645ae","2018-01-29","docs: add travis badge"],["2d42787c","2018-01-29","build: update travis.yml"],["dfbd7efe","2018-01-29","docs(transducers): update padLast docs"],["e6477679","2018-01-29","test: add travis.yml, update main package / readme"],["9c2db625","2018-01-29","chore: update make-module script"],["6a125e83","2018-01-29","test: add test stubs, fix existing"],["b952a357","2018-01-29","build: update/fix all tsconfig files"],["85b280bf","2018-01-29","build: update commands in all packages"],["94333dfd","2018-01-29","test(atom): add/update tests"],["17d5c999","2018-01-29","docs: update dep graph"],["83b6e1a1","2018-01-29","Publish"],["5dce8a2f","2018-01-29","feat(atom): add nested path getter / setter compilers"],["1ae5f635","2018-01-29","docs: update dep graph"],["1ef8b45d","2018-01-29","Publish"],["b526376c","2018-01-29","docs: update readme"],["71c40ad0","2018-01-29","docs: update readme"],["ccd8e820","2018-01-29","test(rstream): update tests (fromPromise())"],["822b297f","2018-01-29","fix(rstream): fix #1 update fromPromise(), add test"],["33b3e16c","2018-01-29","chore: update package cmds & make-module script"],["1abd3cd1","2018-01-29","chore: add license files"],["0abfc62d","2018-01-29","docs(all) update dep graph"],["435c771f","2018-01-29","Publish"],["cca801b7","2018-01-29","fix(atom): cursor IWatch impls (replace stubs)"],["318e62ba","2018-01-29","docs: update main readme"],["5ca9b983","2018-01-29","chore: update make-module script"],["e45f3bd7","2018-01-29","chore(all): update depgraph commit msg format"],["d774e324","2018-01-29","perf(transducers): avoid result object cloning in struct() xform"],["ac12051f","2018-01-29","update dep graph"],["28771016","2018-01-29","Publish"],["1bc6ee6f","2018-01-29","build(rstream-csp): minor fix package & readme"],["ca3994ad","2018-01-29","feat(rstream): add atom dep, add fromAtom() & docs"],["04c3d592","2018-01-29","feat(atom): add Cursor, update interfaces, types, readme"],["52c25a84","2018-01-28","build(all): add tslint workspace dev dependency"],["fefc2835","2018-01-28","feat(atom): re-import atom package from MBP2010, update main readme"],["bddd5ce7","2018-01-28","feat(api): update IWatch & mixin, boolean returns"],["55ba0e13","2018-01-28","feat(rstream): add fromPromises(), add docs"],["2247f72f","2018-01-28","feat(rstream): add trace() error handler"],["ababaa1c","2018-01-28","docs(all): update readme"],["68e38136","2018-01-28","update dep graph"],["a87badef","2018-01-28","Publish"],["f83bd18e","2018-01-28","docs(rstream-csp): fix readme example"],["a6e49b34","2018-01-28","build(all): fix depgraph command in main package"],["d376f872","2018-01-28","update dep graph"],["8b53d6e1","2018-01-28","Publish"],["079a052c","2018-01-28","docs(all): update main readme, add dep graph"],["03ad992a","2018-01-28","chore(all): update ignore files"],["eb49e575","2018-01-28","test(csp): update test examples"],["13f0bd12","2018-01-28","test(hiccup): refactor all tests"],["c677539f","2018-01-28","build(all): update lerna config, main package, add make-module script"],["fcd01ba6","2018-01-28","build(rstream-log): update deps"],["28eee5f3","2018-01-28","build(transducers): update deps"],["174aaba7","2018-01-28","docs(transducers): update readme & doc comments"],["c2211223","2018-01-28","docs(rstream): update readme & doc comments"],["e37f6a13","2018-01-28","feat(rstream-csp): add new package, remove CSP dep from rstream"],["c74353b1","2018-01-28","feat(api): add StatefulPredicate"],["7b21aa64","2018-01-27","feat(transducers): add noop() xform, update readme"],["44db970b","2018-01-27","fix(transducers): scan() complete handling"],["b7c62341","2018-01-27","docs(transducers): update readme, add docs"],["45d6bc66","2018-01-27","feat(transducers): update re-exports, extract throttleTime() into own file"],["8e5204d2","2018-01-27","fix(transducers): add \"complete\" step handling in scan()"],["e1a282cb","2018-01-27","feat(transducers): update throttle(), refactor take/dropNth"],["0b3c7860","2018-01-27","feat(transducers): add labeled() xform"],["931b67f7","2018-01-27","feat(transducers): add multiplexObj()"],["63344e45","2018-01-27","feat(transducers): add every(), some() rfns"],["e555ff55","2018-01-27","feat(transducers): update re-exports, minor update reductions()"],["4b8d037a","2018-01-27","feat(transducers): update frequencies() & groupByMap()"],["e268e356","2018-01-27","refactor(transducers): rename join() => str() rfn"],["beb2cee8","2018-01-27","feat(transducers): add multiplex() xform & docs"],["1f32fc0c","2018-01-27","feat(transducers): update step() to support multiple results"],["58f14775","2018-01-27","refactor(transducers): udate cat() to accept iterables, not just arrays"],["e50fa261","2018-01-27","feat(transducers): add utf8Encode()/utf8Decode() xforms"],["57ceecee","2018-01-26","Publish"],["76c67349","2018-01-26","fix(rstream-log): imports"],["eb31ec6a","2018-01-26","build(rstream): 0.5.1 publish"],["22f1b6af","2018-01-26","build(all): fix repo links in all packages"],["c776df18","2018-01-26","build(all): fix pub script aliases"],["32fc705a","2018-01-26","Publish"],["de4e8192","2018-01-26","refactor(rstream): allow extra props in ISubscriber"],["fdc08897","2018-01-26","test(rstream): update promise tests"],["4bb9f918","2018-01-26","fix(rstream): Resolver error/rejection handling"],["23e38f79","2018-01-26","fix(rstream): only handle done() in IDLE or ACTIVE states, else ignore"],["b4f87853","2018-01-26","test(rstream): add/update tests"],["3d2f8b91","2018-01-26","fix(rstream): fromPromise() error handling"],["a0647fed","2018-01-26","refactor(rstream): update/fix Subscription.error() handling"],["3172eb6d","2018-01-26","test(rstream): add transducer test"],["9cf95541","2018-01-26","refactor(rstream): change SidechainToggle ctor arg order, add tests"],["d36a9ff8","2018-01-26","feat(rstream): add fromIterableSync()"],["f1956922","2018-01-26","feat(rstream): Stream calls done() w/ last unsub"],["0039ef38","2018-01-26","test(rstream): add/update tests"],["ec985b33","2018-01-26","feat(rstream): make Stream source arg optional"],["d3cbda2a","2018-01-26","test(rstream): add/update tests"],["91e8cad5","2018-01-26","feat(rstream): update StreamMerge"],["887c29bb","2018-01-26","refactor(rstream): add Subscription.ensureState()"],["7d066773","2018-01-26","test(rstream): add tests for fromIterable()"],["8019422f","2018-01-26","feat(rstream): add DEBUG flag to toggle tracing"],["ad548627","2018-01-25","feat(rstream): allow partial ISubscriber's for subscribe()"],["55c3b041","2018-01-25","fix(rstream-log): update module re-exports"],["5c85ab9b","2018-01-25","fix(rstream): update fromPromise() cancellation"],["0f601d5c","2018-01-25","fix(rstream): Stream.cancel()"],["19f27b94","2018-01-25","refactor(rstream): update ISubscriber.error() impls"],["0acf4e22","2018-01-25","Publish"],["f6ca3f33","2018-01-25","feat(rstream): add sidechainToggle(), minor update sidechainPartition()"],["2557c3b3","2018-01-25","Publish"],["4048bec4","2018-01-25","feat(rstream-log): add support for body formatter (formatString()), add type aliases"],["bc26d097","2018-01-25","feat(rstream-log): add node check for writeFile()"],["8304c825","2018-01-25","feat(rstream-log): add ILogger"],["eef65b9e","2018-01-25","fix(rstream): don't throw resolve() error, only warning msg"],["4e5a2ee1","2018-01-25","feat(rstream): add fromRAF() fallback for node, add docs"],["592a2423","2018-01-25","fix(rstream): subscription generics if transducer is used"],["898be349","2018-01-25","Publish"],["007f361f","2018-01-25","docs(transducers): add/update docs"],["a2c3bc42","2018-01-25","refactor(transducers): update reverse(), add deps"],["0c116c1c","2018-01-25","refactor(transducers): simplify concat(), add docs"],["b3ce275b","2018-01-24","fix(transducers): include 1st val in benchmark()"],["75bb161c","2018-01-24","fix(transducers): base64 imports"],["e290d759","2018-01-24","fix(all): project links in readme files"],["dc145a55","2018-01-24","fix(main): readme"],["358d5abf","2018-01-24","Publish"],["00f9c12b","2018-01-24","update packages (npm publishConfig)"],["04ff6e9c","2018-01-24","feat(all): initial re-import as monorepo, update readme files, cleanup imports"]] \ No newline at end of file +[ + ["d990c3c2", "2019-02-08", "perf(geom-isoline): minor optimizations"], + ["3ed4ea12", "2019-02-07", "fix(hdom): fix #72, update normalizeElement()"], + [ + "2b3dd7f4", + "2019-02-05", + "feat(examples): dynamic chart width (package-stats)" + ], + ["0715665a", "2019-02-05", "docs(geom-voronoi): add example screenshot"], + ["74fb4d83", "2019-02-05", "Publish"], + ["3b7d8cee", "2019-02-05", "docs: update main readme"], + [ + "c4aaa82b", + "2019-02-05", + "build: update various geom packages (deps, tags & readmes)" + ], + [ + "134c353f", + "2019-02-05", + "Merge branch 'develop' of github.com:thi-ng/umbrella into develop" + ], + ["cf7dc3a3", "2019-02-05", "feat(bencode): re-import updated bencode pkg"], + ["f2612a6b", "2019-02-05", "feat(bencode): re-import updated bencode pkg"], + ["9d8dd32e", "2019-02-05", "refactor(vectors): update imports (zip)"], + [ + "7f4e3989", + "2019-02-05", + "refactor(geom-tessellate): update imports (zip)" + ], + ["5204a7fe", "2019-02-05", "refactor(geom): update imports (zip)"], + ["29045902", "2019-02-05", "refactor(color): update imports (zip)"], + [ + "f15ea5fc", + "2019-02-05", + "refactor(examples): update deps & imports in various examples" + ], + [ + "d1151cea", + "2019-02-05", + "refactor(transducers): deprecate & rename tuples() => zip()" + ], + [ + "a7c1ef7b", + "2019-02-05", + "refactor(transducers): migrate binary related ops to new package" + ], + [ + "02877c79", + "2019-02-05", + "feat(transducers-binary): extract as new pkg from @thi.ng/transducers" + ], + [ + "ae83bb29", + "2019-02-05", + "fix(transducers): ensure all vals in hexDump iterator version" + ], + ["57d4488a", "2019-02-05", "feat(math): add PHI const"], + ["8d61b710", "2019-02-05", "refactor(examples): minor update iso-plasma"], + ["678c3ff0", "2019-02-02", "refactor(examples): update iso-plasma"], + ["37fb295f", "2019-02-02", "feat(examples): add iso-plasma demo"], + ["bd1754d5", "2019-02-01", "feat(geom-accel): add selectVals() impl"], + [ + "4bde37e1", + "2019-02-01", + "feat(geom-api): add ISpatialAccel.selectVals()" + ], + ["13f655a6", "2019-02-01", "docs: update main readme"], + [ + "d7ccc887", + "2019-02-01", + "refactor(vector-pools): update AttribPool & VecPool ctors" + ], + [ + "6d15686a", + "2019-02-01", + "refactor(malloc): update MemPoolOpts & MemPool ctor args" + ], + [ + "e30b2111", + "2019-02-01", + "feat(geom-isoline): import package (ported from clojure)" + ], + [ + "b7d162fa", + "2019-02-01", + "feat(vector-pools): update & fix AttribPool resize logic" + ], + ["1b72d1d4", "2019-01-31", "build: update deps in unreleased packages"], + ["3529c2f3", "2019-01-31", "Merge branch 'master' into develop"], + ["50a5098a", "2019-01-31", "Publish"], + [ + "3adabc4d", + "2019-01-31", + "fix(strings): fix #70, replace kebab() regex w/ legacy version" + ], + [ + "a55f4770", + "2019-01-31", + "feat(malloc): add reallocArray(), update realloc() & compact(), tests" + ], + ["bf8b28fc", "2019-01-31", "feat(malloc): add realloc(), update free()"], + [ + "16b48b38", + "2019-01-31", + "fix(vector-pools): AttribPool opts & default handling" + ], + [ + "4acc8318", + "2019-01-30", + "feat(examples): update hdom-canvas-shapes (add ellipse test)" + ], + [ + "ea322265", + "2019-01-30", + "refactor(geom-isec): update/merge intersectRayRect/AABB" + ], + [ + "5f7dd635", + "2019-01-30", + "feat(geom): add ray-rect/aabb impls for intersects()" + ], + [ + "93e2ea65", + "2019-01-30", + "feat(geom-isec): add ray-rect/aabb tests, fix ray-line, add NONE, update docs" + ], + [ + "4d19aa20", + "2019-01-29", + "perf(geom-voronoi): update computeDual(), update isBoundary()" + ], + [ + "2ff68db7", + "2019-01-29", + "feat(geom-voronoi): add support for vertex user data, tolerances, refactor QE changes" + ], + [ + "426cd37f", + "2019-01-29", + "refactor(quad-edge): replace QuadEdge class w/ type alias, add docs" + ], + ["f249b7e1", "2019-01-29", "docs: update main readme"], + ["613ffeba", "2019-01-29", "Merge branch 'feature/geom-qe' into develop"], + ["b11837a2", "2019-01-29", "docs(geom): update readme"], + [ + "c903293f", + "2019-01-29", + "feat(geom-voronoi): re-import & update QE delaunay/voronoi pkg (MBP2010)" + ], + [ + "ee76797b", + "2019-01-29", + "feat(quad-edge): re-import & update quad edge impl (MBP2010)" + ], + ["4b852882", "2019-01-29", "refactor(geom): minor update clippedLine()"], + ["084883eb", "2019-01-29", "refactor(geom-clip): minor update liangBarsky"], + [ + "6d14f2b7", + "2019-01-28", + "refactor(geom): swap Group ctor & factory arg order" + ], + ["af099ee5", "2019-01-28", "build(geom): update geom-clip dep & refs"], + [ + "004d7f46", + "2019-01-28", + "build(geom-clip): rename pkg geom-clip-convex => geom-clip, update deps" + ], + [ + "6391d104", + "2019-01-28", + "refactor(geom-tessellate): update imports / deps" + ], + ["31e369bd", "2019-01-28", "feat(math): add simplifyRatio()"], + [ + "226645fd", + "2019-01-28", + "refactor(geom): update pointInside & classifyPoint impls (delegate)" + ], + [ + "895102d4", + "2019-01-28", + "feat(geom-poly-utils): add convexity(), remove obsolete/migrated point checks" + ], + ["6ee03ebc", "2019-01-28", "feat(geom-api): re-add Convexity enum"], + [ + "2b235461", + "2019-01-28", + "feat(geom-isec): migrate point intersection/containment checks" + ], + ["11bf7232", "2019-01-28", "minor(geom-closest-point): minor updates"], + ["f9dd3037", "2019-01-28", "docs(vectors): update docstrings"], + [ + "e2047df3", + "2019-01-25", + "Merge branch 'feature/geom-refactor' into develop" + ], + [ + "df8332d0", + "2019-01-25", + "refactor(geom): remove obsolete/migrated fns, update deps, readme" + ], + [ + "37741081", + "2019-01-25", + "fet(geom-hull): extract from geom as new package" + ], + [ + "68a26f44", + "2019-01-25", + "feat(geom-poly-utils): move barycentric fns from main geom pkg" + ], + ["74aa9543", "2019-01-25", "docs(geom): update readme"], + [ + "f6a621a3", + "2019-01-25", + "docs(geom-subdiv-curve): add docs, minor updates subdivide()" + ], + ["87fddb89", "2019-01-25", "refactor(geom-api): minor update SubdivKernel"], + [ + "598fca55", + "2019-01-25", + "refactor(poisson): minor optimizations, update PoissonOpts & defaults" + ], + [ + "bee1c89c", + "2019-01-24", + "feat(poisson): add geom-api dep, optimize search" + ], + [ + "9022d5bb", + "2019-01-24", + "perf(geom-accel): optimize single nearest point search, fix select()" + ], + ["18ce6c96", "2019-01-24", "refactor(geom-api): update ISpatialAccel"], + [ + "5c98ed70", + "2019-01-24", + "refactor(geom-api): split into separate files, add ISpatialAccel" + ], + ["03352e11", "2019-01-23", "refactor(examples): update geom-tessel demo"], + ["b223603d", "2019-01-23", "refactor(geom): update to use geom-api types"], + [ + "f7ad4d3b", + "2019-01-23", + "refactor(geom-tessellate): update to use geom-api types" + ], + [ + "0964a956", + "2019-01-23", + "refactor(geom-subdiv-curve): update to use geom-api types" + ], + [ + "5b674154", + "2019-01-23", + "refactor(geom-splines): update to use geom-api types" + ], + [ + "8d878b99", + "2019-01-23", + "refactor(geom-resample): update to use geom-api types, add douglas-peucker" + ], + [ + "27c4bf07", + "2019-01-23", + "refactor(geom-isec): update return types, use geom-api" + ], + ["47fb5e7b", "2019-01-23", "minor(geom-clip-convex): update imports"], + [ + "e36e2213", + "2019-01-23", + "refactor(geom-arc): update to use geom-api types" + ], + [ + "4e53293d", + "2019-01-23", + "feat(geom-api): extract from geom as new package" + ], + ["02231a3a", "2019-01-23", "build: update make-module script"], + ["407e9a54", "2019-01-23", "docs: update readmes"], + [ + "fb532b8c", + "2019-01-23", + "refactor(geom): remove obsolete/extracted internal ops, update publics" + ], + [ + "cb2429c4", + "2019-01-23", + "feat(geom-tessellate): extract from geom as new package" + ], + [ + "324a5162", + "2019-01-23", + "feat(geom-subdiv-curve): extract from geom as new package" + ], + [ + "5ef4c56d", + "2019-01-23", + "feat(geom-poly-utils): extract from geom as new package" + ], + [ + "798de06b", + "2019-01-23", + "feat(geom-closest-point): add more fns, update pkg" + ], + [ + "2054574a", + "2019-01-23", + "fix(geom-arc): add bounds return type, add missing re-export, update pkg" + ], + [ + "2440ffdd", + "2019-01-23", + "feat(vectors): add corner2, clockwise2, signedAreaC2, isInArray fns" + ], + [ + "9576920b", + "2019-01-23", + "build: simplify bundle-module script, update build cmds in all packages" + ], + [ + "58e0a05d", + "2019-01-23", + "feat(vectors): add VecPair type alias, add copyVectors()" + ], + [ + "15d67121", + "2019-01-23", + "feat(geom-clip-convex): extract from geom as new package" + ], + [ + "027150a6", + "2019-01-23", + "feat(geom-splines): extract from geom as new package" + ], + [ + "6cc8c738", + "2019-01-23", + "feat(geom-arc): extract from geom as new package (#69)" + ], + [ + "79abd0ba", + "2019-01-23", + "feat(geom-resample): extract from geom as new package" + ], + [ + "285dde49", + "2019-01-23", + "feat(geom-isec): extract from geom as new package" + ], + [ + "4ff5005a", + "2019-01-23", + "feat(geom-closest-point): extract from geom as new package" + ], + ["cae83948", "2019-01-22", "feat(math): add minError() search"], + ["e998610c", "2019-01-22", "Publish"], + [ + "35a0a59e", + "2019-01-22", + "fix(examples): update canvas examples due to recent package changes" + ], + ["c6023793", "2019-01-22", "feat(geom): add asPolyline() multi-fn"], + ["a017b10a", "2019-01-22", "feat(geom): add attrib support to PathBuilder"], + [ + "8c1df496", + "2019-01-22", + "fix(geom): update Rect.toHiccup() format (separate widht/height vals)" + ], + [ + "1d92c8c3", + "2019-01-22", + "feat(hdom-canvas): add color dep, update color attrib handling" + ], + [ + "783d9faf", + "2019-01-22", + "docs(hiccup-svg): update readme, add attrib conv notes, fix example" + ], + [ + "7f6011e7", + "2019-01-22", + "feat(hiccup-svg): add color dep, add attrib conversion for all elements" + ], + ["571fc704", "2019-01-21", "docs: update main readme"], + [ + "124acdb1", + "2019-01-21", + "docs(poisson): add/update doc strings, readme, example screenshot" + ], + ["d098aff5", "2019-01-21", "Publish"], + [ + "193f9d4a", + "2019-01-21", + "feat(poisson): re-import & update poisson package (MBP2010)" + ], + [ + "8fd5728b", + "2019-01-21", + "fix(geom-accel): add root null check for select/selectKeys()" + ], + [ + "3d499ad5", + "2019-01-21", + "refactor(geom): update tangentAt(), use direction() from vectors pkg" + ], + [ + "07d5f8fc", + "2019-01-21", + "feat(vectors): migrate direction(), normalLeft/Right2() from geom pkg" + ], + ["862ed083", "2019-01-21", "docs(color): update readme"], + ["4cd3850b", "2019-01-21", "docs(vectors): update readme"], + ["d7053813", "2019-01-21", "docs(vector-pools): update readme"], + ["0d10d507", "2019-01-21", "docs: prune changelogs"], + ["348e7303", "2019-01-21", "Publish"], + [ + "b9cea8cc", + "2019-01-21", + "refactor(vectors): update angleBetween*() fns, add absInner opt arg" + ], + ["a78bd87b", "2019-01-21", "feat(math): add absInnerAngle()"], + [ + "7c1bf047", + "2019-01-21", + "refactor(examples): update gesture-analysis demo" + ], + ["822d8fba", "2019-01-21", "docs: update readme links / package names"], + [ + "31595ebe", + "2019-01-20", + "Merge branch 'master' of github.com:thi-ng/umbrella" + ], + ["51723f99", "2019-01-20", "build(pointfree-lang): fix UMD identifier"], + [ + "15e4cb2d", + "2019-01-20", + "Merge branch 'feature/vec-refactor' into develop" + ], + ["b5842fa7", "2019-01-20", "docs(geom): update readme"], + ["74b7a38a", "2019-01-20", "build(vectors): refix version to previous"], + [ + "0779337d", + "2019-01-20", + "build: update vectors3 => vectors references everywhere" + ], + [ + "0fd2498e", + "2019-01-20", + "build(vectors): replace old vectors package w/ vectors3 (renamed back to vectors)" + ], + ["4bd77082", "2019-01-20", "build: update geom3 => geom references"], + [ + "682385a1", + "2019-01-20", + "build(geom): replace old geom package w/ geom3" + ], + [ + "ff503669", + "2019-01-20", + "build: update depgraph script to display per package deps/dependents" + ], + ["2f26cf68", "2019-01-20", "docs(hdom-canvas): fix readme example"], + [ + "8e2c8b5c", + "2019-01-20", + "refactor(geom): update withAttribs() return type" + ], + [ + "9a507694", + "2019-01-20", + "feat(hdom-canvas): add ellipse() / ellipticArc(), update readme" + ], + [ + "6f341c5c", + "2019-01-20", + "docs(vector-pools): fix AttribPool example layout" + ], + [ + "db4a2018", + "2019-01-20", + "feat(geom): re-add barycentric conversions, collation mappers (still unused)" + ], + ["08f7bd16", "2019-01-20", "docs(matrices): add docstrings for most fns"], + [ + "2aceab97", + "2019-01-20", + "feat(matrices): add m22 & m23 matrix converters" + ], + [ + "311b0074", + "2019-01-20", + "feat(vectors): add default output handling for set/setC/setS fns" + ], + [ + "12ad59a1", + "2019-01-20", + "refactor(examples): update geom-knn & geom-tessel demos" + ], + [ + "5ca58032", + "2019-01-19", + "refactor(color): remove circular dependencies, update parseCss()" + ], + [ + "5270143a", + "2019-01-19", + "refactor(defmulti): remove optional excess args from type sigs" + ], + ["5d087367", "2019-01-19", "refactor(examples): update geom-knn demo"], + [ + "485051db", + "2019-01-19", + "refactor(geom-accel): update to use new vectors package" + ], + ["46bb8730", "2019-01-19", "build: remove obsolete geom2 package"], + [ + "370f9280", + "2019-01-19", + "fix(hiccup-svg): convert path arc segment axis theta to degrees" + ], + [ + "63b3a5d9", + "2019-01-19", + "feat(geom): update closestPoint(), add support for Arc" + ], + [ + "0e5e7768", + "2019-01-19", + "feat(geom): add arcPointAt() helper, refactor Arc, minor other updates" + ], + ["62ec49fe", "2019-01-19", "fix(geom): update arcFrom2Points()"], + [ + "910529dd", + "2019-01-19", + "feat(geom): add splitNearPoint() for line & polyline, update Sampler" + ], + [ + "499e14b3", + "2019-01-18", + "refactor(geom): add tessellate() multi-fn, move/rename tessellators" + ], + [ + "1d754eb9", + "2019-01-18", + "feat(geom): add splitNearPoint(), Sampler.closestT(), internal restructure" + ], + ["0451f8f6", "2019-01-18", "docs: update main readme"], + ["9623b4e9", "2019-01-18", "build(geom): add @thi.ng/compose dependency"], + ["9a4570bf", "2019-01-18", "minor(geom): minor updates"], + ["56f60372", "2019-01-18", "feat(geom): add flip() impls"], + [ + "ebc9a981", + "2019-01-18", + "feat(geom): add pointAt() impls for Cubic/Quadratic" + ], + [ + "eaf1a1b0", + "2019-01-18", + "feat(geom): add closestPoint() impls for splines, line, polygons, polyline" + ], + [ + "627e20d4", + "2019-01-18", + "feat(geom): add transform() impls for Cubic/Quadratic" + ], + [ + "d763621c", + "2019-01-18", + "feat(geom): add clippedLine(), minor update liangBarsky()" + ], + [ + "cd59f664", + "2019-01-18", + "perf(geom): use squared dist for classifyPoint() (circle)" + ], + [ + "e834597c", + "2019-01-18", + "feat(geom): add/update edges(), pointInside() & classifyPoint() impls" + ], + [ + "f5a53ca0", + "2019-01-18", + "feat(geom): re-add vertices() impls for Cubic/Quadratic" + ], + ["3c9a7b0f", "2019-01-18", "feat(geom): re-add pathFromSvg()"], + [ + "66267e22", + "2019-01-18", + "feat(geom): add intersection checks & intersects() multi-fn" + ], + ["f1f428a2", "2019-01-17", "feat(geom): re-add tessellators"], + ["9f91cfa1", "2019-01-17", "fix(api): update assert(), re-export mixin()"], + ["5f873009", "2019-01-17", "feat(vectors): add randMinMax"], + [ + "d09cc795", + "2019-01-17", + "feat(geom): add clipConvex, scatter, warpPoints" + ], + [ + "61cfb0f1", + "2019-01-16", + "feat(geom): add path builder, path & arc op impls" + ], + [ + "e81d8c31", + "2019-01-16", + "feat(vectors): update/split angleBetween for 2d/3d" + ], + ["df49c71c", "2019-01-16", "Merge branch 'master' into develop"], + [ + "a6e6f2af", + "2019-01-16", + "Merge pull request #68 from evilive3000/fix-cache-ltru" + ], + [ + "c3762e97", + "2019-01-16", + "fix(cache): TLRU: expected behavior on getSet()" + ], + [ + "2cc682a6", + "2019-01-16", + "fix(examples): add release() lifecycle method (hdom-inner-html)" + ], + ["4effc0ec", "2019-01-16", "feat(examples): add hdom-inner-html demo #67"], + [ + "fea8fbe3", + "2019-01-16", + "feat(geom): re-add arc, cubic, quadratic ops, splitAt & other ops" + ], + ["18437026", "2019-01-16", "perf(vectors): update copy()"], + ["446a1832", "2019-01-16", "fix(vectors): minor update opt arg in VecOp*"], + ["66e45ccd", "2019-01-15", "build: update .npmignore files"], + [ + "253b1be9", + "2019-01-15", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["a75f1920", "2019-01-15", "docs: update/fix various readmes"], + ["1cfefdab", "2019-01-15", "refactor(malloc): update imports"], + ["c8d8a37e", "2019-01-15", "refactor(malloc): add/extract types to api.ts"], + [ + "e04eb294", + "2019-01-11", + "refactor(defmulti): update imports, fix tests (cherry picked from cdd8659a)" + ], + [ + "89dafa45", + "2019-01-15", + "build: update bundle-module script, disable minification in UMD outputs" + ], + ["b63d2589", "2019-01-15", "docs(transducers): update cat() docstring"], + ["b70e84d7", "2019-01-15", "build: update .npmignore files (add .meta)"], + ["9eb6f2d2", "2019-01-15", "build: update rollup dev dep"], + [ + "491980c3", + "2019-01-15", + "Merge branch 'develop' into feature/vec-refactor" + ], + [ + "d118464b", + "2019-01-15", + "test(vectors): update tests (due to math eqDelta change in eps handling)" + ], + [ + "c0e3a0bc", + "2019-01-15", + "feat(geom): add temp geom3 package (another refactored version of geom2)" + ], + [ + "e28f56ec", + "2019-01-15", + "Merge branch 'develop' into feature/vec-refactor" + ], + [ + "50180096", + "2019-01-15", + "feat(math): update eqDelta w/ adaptive eps, rename old => eqDeltaFixed" + ], + [ + "a39811c6", + "2019-01-15", + "feat(hiccup-svg): add ellipse shape type, update convert()" + ], + ["d14c94b2", "2019-01-15", "build: disable minification for UMD outputs"], + ["c12ad1cc", "2019-01-15", "test(vectors): update eqDelta tests"], + ["18aeb49c", "2019-01-15", "build(vectors): add memoize dep"], + ["61e40638", "2019-01-14", "feat(vectors): add addm/addmN, subm/submN"], + ["d5ba06a4", "2019-01-11", "build: remove obsolete temp package vectors2"], + [ + "aa995682", + "2019-01-11", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["507218aa", "2019-01-11", "minor(examples): update package-stats"], + [ + "fcbc0c27", + "2019-01-11", + "build: update bundle-module, strip comments, add source maps & dev deps" + ], + ["048bdb1c", "2019-01-11", "refactor(vectors2): update imports"], + ["f3a5e0ff", "2019-01-11", "refactor(malloc): update imports"], + ["c41b96fb", "2019-01-11", "refactor(geom): update imports, fix tests"], + ["cdd8659a", "2019-01-11", "refactor(defmulti): update imports, fix tests"], + ["c9da5485", "2019-01-11", "build(examples): update geom-tessel tsconfig"], + [ + "82f8ef27", + "2019-01-10", + "revert(hiccup-svg): undo merge mistake in convert.ts" + ], + [ + "a7ea1fc3", + "2019-01-10", + "build(vectors): build: update package scripts, outputs, imports" + ], + [ + "d4eddef2", + "2019-01-10", + "build(vectors2): build: update package scripts, outputs, imports" + ], + [ + "372c199c", + "2019-01-10", + "build(vector-pools): build: update package scripts, outputs, imports" + ], + [ + "5d25c1ae", + "2019-01-10", + "build(matrices): build: update package scripts, outputs, imports" + ], + [ + "e247386c", + "2019-01-10", + "build(geom): build: update package scripts, outputs, imports" + ], + [ + "4e48cb98", + "2019-01-10", + "build(color): build: update package scripts, outputs, imports" + ], + [ + "d7d237d0", + "2019-01-10", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["ab159105", "2019-01-10", "test(api): fix import in mixin test"], + ["c91df5fc", "2019-01-10", "build: add test-only yarn script"], + [ + "6be3a871", + "2019-01-10", + "build: fix cjs output path in bundle-module script" + ], + [ + "3741663f", + "2019-01-10", + "Merge branch 'feature/multi-output' into develop" + ], + ["f6e3cdd5", "2019-01-10", "docs(examples): add troubleshooting notes"], + [ + "bbe636f4", + "2019-01-10", + "fix(examples): add quote escaping in xml-converter" + ], + [ + "bb3db27c", + "2019-01-10", + "build(examples): update tsconfig for commit-table-ssr" + ], + [ + "cc26ae98", + "2019-01-10", + "docs(examples): update readmes to refer to wiki build instructions" + ], + [ + "8f270dfa", + "2019-01-10", + "build: update project tpl scripts, ignore files" + ], + ["1f01bf8f", "2019-01-10", "build: update make-module script"], + [ + "4df9ec41", + "2019-01-10", + "build: update bundle-module outputs, emit meta data, update .gitignore" + ], + ["a894a24a", "2019-01-10", "fix(transducers): update juxt re-export"], + [ + "5c3080d7", + "2019-01-10", + "build: temporarily add webpack until parcel-bundler/parcel#2513 is fixed" + ], + [ + "bac59db6", + "2019-01-10", + "feat(examples): add package-stats charting example" + ], + ["27438f9c", "2019-01-09", "minor(examples): cleanup"], + ["4e28b5a6", "2019-01-09", "build(examples): update dev deps"], + [ + "1618c136", + "2019-01-09", + "build(examples): enable scope hoisting in `yarn build` scripts" + ], + ["d2d7952e", "2019-01-08", "minor: update imports in readme's / examples"], + ["3f1b79de", "2019-01-08", "build: update .gitignore"], + [ + "3747ad7b", + "2019-01-08", + "refactor(examples): update imports & deps of all examples" + ], + ["3b8576f3", "2019-01-08", "fix(csp): disable __State reverse enum lookup"], + [ + "d89f28fd", + "2019-01-08", + "fix(rstream-log): remove __Level reverse enum lookup, update Level (non const)" + ], + [ + "19449e8d", + "2019-01-08", + "fix(rstream-gestures): disable __GestureType reverse enum export" + ], + [ + "b238a3a9", + "2019-01-08", + "fix(rstream): disable __State reverse enum lookups" + ], + ["227be4b5", "2019-01-08", "fix(pointfree-lang): update NodeType handling"], + [ + "b198c195", + "2019-01-08", + "fix(hiccup-markdown): re-export TagFactories interface" + ], + [ + "f912a84a", + "2019-01-08", + "build: update package scripts, outputs, imports in remaining packages" + ], + [ + "b54b703d", + "2019-01-08", + "build: update package build scripts & outputs, imports in ~50 packages" + ], + [ + "f913d7bf", + "2019-01-08", + "build(api): update package build scripts / outputs" + ], + [ + "7fee8573", + "2019-01-08", + "build: update shared dev deps, rewrite bundle-module script" + ], + [ + "4e768394", + "2019-01-07", + "Merge branch 'develop' into feature/multi-output" + ], + ["d3944fb0", "2019-01-07", "build: switch travis to use node 10"], + [ + "a42b2e11", + "2019-01-07", + "refactor(rstream-query): use rstream nextID() util (fix regression)" + ], + [ + "3e1467fa", + "2019-01-07", + "refactor(rstream-log): use rstream nextID() util (fix regression)" + ], + [ + "c28ce64f", + "2019-01-07", + "Merge branch 'develop' into feature/multi-output" + ], + [ + "b31065bb", + "2019-01-07", + "Merge branch 'develop' of github.com:thi-ng/umbrella into develop" + ], + [ + "28f77e60", + "2019-01-07", + "build: update tsconfig & .npmignore files in all packages" + ], + [ + "4be67c59", + "2019-01-07", + "build: prep api, atom, bench, binary, checks, equiv, errors, paths for multi outputs" + ], + [ + "3df29305", + "2019-01-06", + "Merge pull request #66 from acarabott/feature/scaleWithCenter" + ], + [ + "92bce73d", + "2019-01-06", + "fix(vectors): fix NaNs in Mat23.scaleWithCenter" + ], + [ + "d1e275bd", + "2019-01-05", + "fix(rstream): avoid Subscription ctor to workaround parceljs build issue" + ], + [ + "e201ca8d", + "2019-01-05", + "refactor(rstream): replace Subscription.NEXT_ID w/ nextID() util" + ], + [ + "a313d830", + "2019-01-05", + "build: add/update dev deps, update build scripts in all packages" + ], + ["ce4b5283", "2019-01-05", "refactor(transducers-hdom): use arrow fns"], + ["e103d740", "2019-01-05", "refactor(transducers-fsm): use arrow fns"], + ["48670f58", "2019-01-05", "refactor(memoize): use arrow fns"], + ["5d530286", "2019-01-05", "refactor(csp): use arrow fns"], + ["e9f0542a", "2019-01-05", "refactor(transducers): use arrow fns"], + ["6eba2415", "2019-01-05", "refactor(rle-pack): use arrow fns"], + ["762db4e3", "2019-01-05", "refactor(rstream-csp): use arrow fns"], + ["8904cb4c", "2019-01-05", "refactor(rstream-gestures): use arrow fns"], + ["393d23ed", "2019-01-05", "minor(rstream-query): update formatting"], + ["14c00b29", "2019-01-05", "refactor(rstream-log): use arrow fns"], + ["ff9f8e0c", "2019-01-05", "minor(rstream-graph): update formatting"], + [ + "6c3ea083", + "2019-01-05", + "refactor(rstream): use arrow fns, update formatting" + ], + ["e0f7cb85", "2019-01-05", "minor(resolve-map): update formatting"], + ["560207a0", "2019-01-05", "refactor(math): use arrow fns"], + ["ad5574b9", "2019-01-05", "refactor(iterators): use arrow fns"], + ["3b74de92", "2019-01-05", "refactor(hiccup-css): use arrow fns"], + ["d9f4bd3f", "2019-01-05", "refactor(errors): use arrow fns"], + ["35377bd5", "2019-01-05", "refactor(compose): use arrow fns"], + ["025412a0", "2019-01-05", "refactor(compare): use arrow fns"], + [ + "aaf2723f", + "2019-01-05", + "refactor(associative): use arrow fns, update formatting" + ], + ["30c59fd5", "2019-01-05", "Merge branch 'feature/arrowfns' into develop"], + ["fc22a27e", "2019-01-05", "refactor(paths): update all as arrow fns"], + ["b70a3e1a", "2019-01-05", "refactor(checks): update all as arrow fns"], + ["3038a844", "2019-01-04", "docs(hiccup-markdown): update readme"], + ["634e2504", "2019-01-04", "Publish"], + [ + "343280d8", + "2019-01-04", + "refactor(examples): update MD demo, use parser from hiccup-markdown package" + ], + [ + "35db07fe", + "2019-01-04", + "feat(hiccup-markdown): add & refactor markdown parser (from example), update docs" + ], + ["5f09d3ec", "2019-01-04", "fix(examples): add missing return types"], + [ + "ffc68cef", + "2019-01-04", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["6030753a", "2019-01-04", "Publish"], + ["492992d7", "2019-01-04", "docs: update package list in main readme"], + ["17c14b49", "2019-01-04", "docs(examples): update readmes"], + ["0a505c1a", "2019-01-04", "docs(fsm): update readme & package"], + ["98081e3a", "2019-01-04", "Merge branch 'feature/fsm' into develop"], + [ + "81e3fc79", + "2019-01-04", + "feat(fsm): add never(), optimize alts(), add docs for all matchers" + ], + ["297356dd", "2019-01-04", "docs(examples): update readme"], + [ + "120a7afd", + "2019-01-04", + "refactor(examples): remove 2nd table row in collectTable()" + ], + [ + "b60bf31a", + "2019-01-04", + "refactor(examples): cleanup parser & rules, tag handling, update readme" + ], + ["9585b86e", "2019-01-04", "feat(examples): add initial MD table support"], + ["a9336075", "2019-01-04", "feat(fsm): update not()"], + [ + "980d4888", + "2019-01-04", + "feat(examples): update MD parser, styles, readme" + ], + [ + "992f31ac", + "2019-01-04", + "feat(fsm): add always(), lit(), not(), cleanup imports" + ], + [ + "995a104b", + "2019-01-03", + "refactor(examples): update title & blockquote parsers/style" + ], + [ + "4a9bb3d6", + "2019-01-03", + "feat(fsm): add support for lookahead-1, add docs" + ], + ["f9cece70", "2019-01-03", "refactor(examples): update MD title parser"], + [ + "55671fc7", + "2019-01-03", + "feat(fsm): add repeat(), success(), refactor all matchers" + ], + [ + "36cadc96", + "2019-01-03", + "feat(examples): update tags, add hrule, blockquote, update CSS / readme" + ], + [ + "b04e0747", + "2019-01-03", + "feat(examples): update MD parser, add parse rules & custom tag support" + ], + ["9875cda8", "2019-01-03", "feat(examples): add markdown parser example"], + ["e03390b1", "2019-01-03", "feat(fsm): import fsm package"], + ["731ede02", "2019-01-02", "build: update deps (defmulti / transducers)"], + [ + "5b98d55e", + "2019-01-02", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["26a29cf1", "2019-01-02", "Publish"], + [ + "1d29153c", + "2019-01-02", + "feat(defmulti): add opt fallback arg for defmultiN(), update docs" + ], + [ + "cd175866", + "2019-01-02", + "fix(transducers): add reduced() handling for cat()" + ], + [ + "161199f4", + "2019-01-02", + "feat(geom): add/rename type ids, add sphere, isec fns" + ], + [ + "2e6d1965", + "2019-01-02", + "fix(vectors): disable default prefix for random*() fns" + ], + ["2fb2aa32", "2019-01-01", "build: update deps"], + [ + "ba755f8a", + "2019-01-01", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["7729d993", "2019-01-01", "Publish"], + [ + "488698a6", + "2019-01-01", + "feat(defmulti): add addAll(), add/update doc strings" + ], + [ + "d47798ed", + "2019-01-01", + "refactor(examples): update gesture analysis demo" + ], + [ + "b10c8d67", + "2019-01-01", + "refactor(geom): prep/update intersectShape() w/ new dispatch fn" + ], + ["c0008a7a", "2018-12-31", "minor(geom): update formatting"], + ["7cf5f7c4", "2018-12-31", "refactor(geom): update subdivKernel* fns"], + [ + "76c343c3", + "2018-12-31", + "feat(geom): add pointAt/tangentAt impls for circle/line" + ], + ["b9125168", "2018-12-31", "feat(geom): add ray skeleton impl"], + ["c7052171", "2018-12-31", "fix(vectors): cartesian2/3"], + [ + "52fb9399", + "2018-12-31", + "feat(matrices): add quatToMat33, update readme" + ], + [ + "4c6fe066", + "2018-12-31", + "fix(matrices): re-add persp divide in mulV344()" + ], + [ + "4f024918", + "2018-12-31", + "fix(matrices): scaleWithCenter* (add missing concat() arg)" + ], + [ + "6d58c309", + "2018-12-30", + "docs: rename pd image (because of GH CDN issues), update readme" + ], + ["cfc88744", "2018-12-30", "docs(color): add porterduff image"], + ["83a46311", "2018-12-30", "docs: fix readme links"], + ["0ee2be0a", "2018-12-30", "docs: update readmes"], + [ + "10fc9cc5", + "2018-12-30", + "docs(matrices): update readme (add full API list)" + ], + ["4f2f512c", "2018-12-30", "build(matrices): update deps"], + [ + "ae7a039e", + "2018-12-30", + "feat(matrices): add cwise matrix multiply, rename mul* => mulM*, move mulQ" + ], + ["c70189aa", "2018-12-30", "docs(vectors): update readme"], + ["7e19e7b4", "2018-12-30", "minor(vectors): minor update vop()"], + [ + "66036e6c", + "2018-12-30", + "fix(vectors): update gvec prop lookup & interning" + ], + [ + "6c9fe88e", + "2018-12-30", + "refactor(vectors): rename addWeighted*() => addW*(), update package kw" + ], + [ + "064d61c5", + "2018-12-30", + "docs(vectors): update readme & package keywords" + ], + ["d462ae0a", "2018-12-30", "perf(matrices): use setC6() for M23 ops"], + [ + "809383c9", + "2018-12-30", + "refactor(matrices): extract m33to44/m44to33() into own files, update re-exports" + ], + ["0ee306a2", "2018-12-30", "feat(vectors): add setC6()"], + [ + "0b07ac86", + "2018-12-30", + "fix(matrices): inject default output handling code" + ], + [ + "b5adea6f", + "2018-12-30", + "refactor(matrices): replace setValues*() w/ setC*(), update dotC*() use" + ], + ["b03b9192", "2018-12-30", "feat(matrices): add quaternion fns"], + [ + "06dd9634", + "2018-12-30", + "fix(vectors): result handling jitter()/project()" + ], + [ + "745053c5", + "2018-12-30", + "refactor(vector): minor updates arg/result handling" + ], + [ + "cfe333fe", + "2018-12-30", + "refactor(vectors): simplify various ops, improve tpl re-use" + ], + ["6b3608da", "2018-12-30", "fix(vectors): sum() impls"], + [ + "9b789bca", + "2018-12-30", + "refactor(vectors): simplify various ops, use setC*()" + ], + [ + "809bf9b9", + "2018-12-30", + "refactor(vectors): rename dotValues*() => dotC*()" + ], + ["6857f347", "2018-12-30", "feat(vectors): add clamp01(), clamp11() fns"], + [ + "dc6f4661", + "2018-12-30", + "refactor(vectors): add defMathOp()/defMathNOp(), update basic math ops" + ], + ["784f5c34", "2018-12-29", "build: update deps"], + [ + "b849bd1b", + "2018-12-29", + "feat(color): add alpha()/setAlpha(), add docs, re-exports, update readme" + ], + [ + "e7bb46b7", + "2018-12-29", + "feat(color): add Hue enum, closestHue*() fns, namedHueRgba()" + ], + ["172f5070", "2018-12-29", "docs(color): update readme"], + ["9d4fffa1", "2018-12-29", "build(color): add package keywords"], + [ + "aa303442", + "2018-12-29", + "feat(color): add convert() fallback, minor other updates" + ], + ["445b8c1f", "2018-12-29", "feat(color): add luminance defmulti"], + ["36b7d038", "2018-12-29", "refactor(color): rename, update matrix ops"], + [ + "f2cac286", + "2018-12-29", + "refactor(color): update type factory fns & ensureArgs()" + ], + [ + "a0f19956", + "2018-12-29", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["b2cab4d0", "2018-12-29", "Publish"], + [ + "a90a712c", + "2018-12-29", + "fix(transducers): interpolate() interval selection, add minPos/maxPos" + ], + [ + "b0d28788", + "2018-12-29", + "refactor(color): update multiCosineGradient(), update readme" + ], + [ + "0546839d", + "2018-12-29", + "refactor(color): ColorMode const enum, update convert() dispatcher" + ], + ["a5c53c38", "2018-12-29", "fix(color): add/update conversions"], + ["04c38372", "2018-12-28", "refactor(color): update converters"], + [ + "4ca7a23d", + "2018-12-28", + "Merge branch 'feature/vec-refactor' into feature/color" + ], + [ + "a72562cf", + "2018-12-28", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["eae8d140", "2018-12-28", "Publish"], + [ + "846ab5ca", + "2018-12-28", + "feat(transducers): add interpolate() iterator, update readme" + ], + ["dbbb26cf", "2018-12-28", "feat(color): add multiCosineGradient()"], + ["46013514", "2018-12-28", "refactor(color): update conversions"], + ["0a9456bf", "2018-12-28", "docs(color): update readme"], + ["1c28c22b", "2018-12-28", "fix(color): HCYA field names"], + [ + "e930d736", + "2018-12-28", + "feat(color): add more color spaces, refactor, rename, simplify" + ], + [ + "714381de", + "2018-12-27", + "perf(color): refactor porterDiff as HOF, update all PD ops, add docs" + ], + [ + "d0b1e60e", + "2018-12-27", + "refactor(color): add AColor, re-use for existing wrappers, update deps" + ], + [ + "f515f6cb", + "2018-12-27", + "Merge branch 'feature/vec-refactor' into feature/color" + ], + ["ef4562a2", "2018-12-27", "build: update deps"], + [ + "95ac1e86", + "2018-12-27", + "Merge branch 'feature/vec-refactor' into feature/color" + ], + [ + "5b49e70d", + "2018-12-27", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["ea0dee0f", "2018-12-27", "Publish"], + [ + "3f9b2443", + "2018-12-27", + "refactor(pointfree): re-use comp() from thi.ng/compose" + ], + ["1ebfea95", "2018-12-26", "fix(compose): fix comp() for arities >10"], + [ + "0061b21f", + "2018-12-26", + "feat(compose): add threadFirst/Last, rename compI => compL" + ], + ["5788646f", "2018-12-26", "feat(color): add/update class wrappers"], + [ + "7a735f2d", + "2018-12-25", + "refactor(vectors): update gvec, Vec2/3/4, extract iterator impl" + ], + [ + "7bcd21ac", + "2018-12-24", + "Merge branch 'feature/vec-refactor' into feature/color" + ], + [ + "aa5ad976", + "2018-12-24", + "fix(vectors): update field names in declareIndex()" + ], + [ + "0caf599b", + "2018-12-24", + "Merge branch 'feature/vec-refactor' into feature/color" + ], + [ + "5620483b", + "2018-12-24", + "refactor(vector-pools): update IVector refs (new field names)" + ], + [ + "0c0fce6a", + "2018-12-24", + "feat(vectors): update gvec, add generic setS()" + ], + [ + "6e6a33ce", + "2018-12-24", + "refactor(vectors): update IVector (rename fields), add ICopyView" + ], + [ + "c2556c2e", + "2018-12-24", + "refactor(vectors): update declareIndices, extract single declareIndex fn" + ], + [ + "610699ab", + "2018-12-24", + "feat(color): add RGBA/HSLA wrapper types, update convert" + ], + [ + "404ac54b", + "2018-12-24", + "feat(color): add HSI converters, add clampH(), minor refactors" + ], + [ + "a5d2f98e", + "2018-12-23", + "feat(color): add Porter-Duff ops, pre/post-multiply, update types" + ], + ["8fa05c3d", "2018-12-22", "feat(math): add constants"], + ["eb5f6391", "2018-12-22", "feat(vectors): add setC()"], + ["0b51ef1c", "2018-12-22", "feat(color): add new package"], + [ + "946af71e", + "2018-12-21", + "Merge branch 'feature/vec-refactor' into feature/color" + ], + [ + "0099c27c", + "2018-12-21", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["ec6084b5", "2018-12-21", "Publish"], + [ + "6618c226", + "2018-12-21", + "feat(hdom): add support for event listener options, update readme" + ], + [ + "696a0ce3", + "2018-12-21", + "Merge branch 'feature/vec-refactor' into feature/color" + ], + ["f617c7ec", "2018-12-21", "Merge branch 'develop' into feature/color"], + [ + "e49d3caa", + "2018-12-21", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["62418f90", "2018-12-21", "Publish"], + [ + "9f48a760", + "2018-12-21", + "fix(hdom): fix #63 update removeChild() (IE11)" + ], + ["e2874932", "2018-12-21", "build(geom): update deps"], + ["c8e25bb0", "2018-12-21", "build(vectors): update deps"], + [ + "b130a944", + "2018-12-21", + "refactor(vectors): rename mapBufferV* fns => mapV*" + ], + [ + "8b582cb5", + "2018-12-21", + "refactor(vectors): extract & reuse Vec2/3/4 static fns, add copyView()" + ], + [ + "a916f3e7", + "2018-12-20", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["802fab85", "2018-12-20", "Publish"], + [ + "61b7b117", + "2018-12-20", + "feat(iterators): add `children` arg for walk()/walkIterator()" + ], + ["f44070e4", "2018-12-20", "Publish"], + ["caad2d38", "2018-12-20", "docs: update package list"], + [ + "9984c51d", + "2018-12-20", + "Merge branch 'feature/hiccup-markdown' into develop" + ], + ["58f591e8", "2018-12-20", "feat(hiccup-markdown): add new package"], + ["df38394e", "2018-12-20", "refactor(hiccup): export normalize() fn"], + ["9884a67c", "2018-12-19", "build: update depgraph script"], + ["2a43bf37", "2018-12-19", "Publish"], + [ + "a78c6a7f", + "2018-12-19", + "feat(intervals): add Interval.parse(), update docs, readme, deps" + ], + [ + "6d753f98", + "2018-12-18", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["47782618", "2018-12-18", "Publish"], + ["8545ded8", "2018-12-18", "Merge branch 'develop'"], + ["82814288", "2018-12-18", "docs: update package list"], + ["14a8a634", "2018-12-18", "docs: update package list"], + ["b0a31426", "2018-12-18", "feat(intervals): add new package"], + ["33bcd152", "2018-12-17", "Publish"], + ["04705053", "2018-12-17", "fix(transducers): add return type for range()"], + ["aa128298", "2018-12-17", "build: update deps"], + [ + "6201c9b8", + "2018-12-17", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["1d5278f8", "2018-12-16", "Publish"], + ["6d85c626", "2018-12-16", "fix(hdom): life cycle init / release handling"], + ["159ce8f6", "2018-12-15", "Publish"], + ["a3290b08", "2018-12-15", "build: update deps in make-* scripts"], + ["32847a91", "2018-12-15", "build(examples): update deps"], + [ + "aac8b6f6", + "2018-12-15", + "feat(hiccup-css): add animation(), add test & update readme" + ], + [ + "3b3e5032", + "2018-12-14", + "fix(pointfree-lang): update parser stubs (TS3.2.x)" + ], + ["0436c506", "2018-12-14", "build: update dev deps in all packages"], + ["dae12057", "2018-12-14", "minor(hiccup-carbon-icons): fix repo link"], + ["a7491117", "2018-12-14", "Publish"], + ["d734b570", "2018-12-14", "docs: update package list (main readme)"], + [ + "da441c18", + "2018-12-14", + "feat(hdom-components): merge button & button group attribs" + ], + ["6b04e160", "2018-12-14", "feat(hiccup-carbon-icons): add new package"], + [ + "b86737a6", + "2018-12-14", + "feat(examples): update xml-converter cli arg handling (var name)" + ], + ["87e6cb31", "2018-12-13", "docs: update main readme"], + [ + "388c14b4", + "2018-12-13", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["e36a7ee0", "2018-12-13", "Publish"], + ["151e1422", "2018-12-13", "docs(hdom): update readme"], + ["fbbf5f90", "2018-12-13", "minor(examples): update source links"], + ["582c69ff", "2018-12-13", "Merge branch 'feature/hdom-skip' into develop"], + ["fea3d777", "2018-12-13", "fix(examples): minor update hdom-benchmark2"], + [ + "8155bf4b", + "2018-12-13", + "feat(examples): add proper DOM stats calculation, remove interlacing (obsolete)" + ], + [ + "2ff75609", + "2018-12-13", + "perf(examples): update __skip handling in hdom-benchmark2" + ], + [ + "92c11107", + "2018-12-13", + "feat(examples): improve axis tick resolution estimate in crypto-chart" + ], + [ + "c3b1528f", + "2018-12-13", + "feat(examples): add more UI & controls to hdom-benchmark2" + ], + [ + "a40c0f5e", + "2018-12-13", + "minor(hdom-components): minor updates fpsCounter()" + ], + ["10afa0d5", "2018-12-13", "docs(examples): update hdom-skip comments"], + ["db4d0a58", "2018-12-13", "Merge branch 'develop' into feature/hdom-skip"], + ["1b298f76", "2018-12-13", "fix(strings): update kebab()"], + ["8dcc73a1", "2018-12-13", "feat(strings): add slugify()"], + ["ba0d5e5c", "2018-12-13", "docs(examples): update readme list"], + [ + "73a298df", + "2018-12-13", + "refactor(hdom-components): emit int coords for sparkline" + ], + ["baa1dfef", "2018-12-13", "feat(examples): add hdom-benchmark2 example"], + [ + "ebd33808", + "2018-12-13", + "feat(hdom-components): add FPS counter & sparkline components, update deps" + ], + [ + "c1fecc4d", + "2018-12-12", + "refactor(hdom-mock): update text node handling, tests, add readme" + ], + ["1dc6e721", "2018-12-12", "minor(hdom): intern strings"], + ["046ab206", "2018-12-12", "minor(hiccup): reformat"], + [ + "d3500df5", + "2018-12-12", + "feat(hiccup): add __skip support, add test, update readme" + ], + [ + "5609d24a", + "2018-12-11", + "feat(hdom-mock): add hdom-mock package and implementation, add initial tests" + ], + [ + "fe9a3120", + "2018-12-11", + "refactor(hdom): update createTextElement() sig, update docstrings" + ], + [ + "6db31708", + "2018-12-11", + "fix(transducers-hdom): integrate recent hdom updates" + ], + [ + "43327c9e", + "2018-12-11", + "refactor(hdom-canvas): update HDOMImplementation, add __skip support, reformat" + ], + ["69b29ad7", "2018-12-11", "docs(hdom): add __skip attrib docstring"], + [ + "6f2e8ee0", + "2018-12-11", + "refactor(hdom): extend & simplify HDOMImplementation, update DEFAULT_IMPL" + ], + ["8dc755d9", "2018-12-10", "minor(examples): fix typo"], + ["6d387dbd", "2018-12-10", "feat(examples): add hdom-skip example"], + [ + "a4e67362", + "2018-12-10", + "feat(hdom): add initial __skip ctrl attrib handling in diffTree()" + ], + [ + "42eab0bc", + "2018-12-09", + "Merge branch 'develop' into feature/vec-refactor" + ], + [ + "97bf837e", + "2018-12-09", + "doc(vectors): update readme (add note about vectors3 & matrices)" + ], + [ + "ceb404c4", + "2018-12-09", + "doc(geom): update readme (add note about geom2)" + ], + ["6726925b", "2018-12-09", "docs: add links to WIP packages"], + ["71300e92", "2018-12-09", "docs: update main readme"], + ["20e0884b", "2018-12-09", "Publish"], + ["19b0a554", "2018-12-09", "perf(diff): further array caching/reuse"], + [ + "cfdc4d76", + "2018-12-08", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["6e361d62", "2018-12-08", "Publish"], + [ + "a7e9def5", + "2018-12-08", + "refactor(hdom-canvas): update diffArray call site" + ], + ["c3f6f98c", "2018-12-08", "refactor(hdom): minor update diff call sites"], + [ + "64feacfb", + "2018-12-08", + "refactor(diff): flatten linear edit logs, update readme & arg order" + ], + ["b627f60c", "2018-12-08", "Merge branch 'feature/hdom-perf' into develop"], + [ + "8165005c", + "2018-12-08", + "refactor(equiv): minor update (intern string consts)" + ], + [ + "899941f0", + "2018-12-08", + "perf(hdom-canvas): update diffTree() to compute edit dist only" + ], + [ + "e9b067b7", + "2018-12-08", + "refactor(hdom): update diffTree & diffAttributes (@thi.ng/diff updates)" + ], + [ + "e8356cd2", + "2018-12-08", + "perf(diff): flatten linear edit logs, rewrite diffObject(), add DiffMode" + ], + [ + "d1ee6d9e", + "2018-12-08", + "perf(diff): reduce amount of temp/internal array allocs (diffArray)" + ], + [ + "6c6da825", + "2018-12-08", + "feat(diff): add fast paths for simple cases, add tests, refactor as arrow fns" + ], + [ + "34b515b2", + "2018-12-08", + "Merge branch 'develop' into feature/vec-refactor" + ], + [ + "9878c556", + "2018-12-03", + "feat(examples): add ClojureX talk-slides example (presentation tool)" + ], + [ + "b08b8e55", + "2018-12-01", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["88efaa91", "2018-12-01", "Publish"], + [ + "ba8bad68", + "2018-12-01", + "minor(transducers): manual array destructuring in reduce/iterator" + ], + [ + "0e77d2c6", + "2018-12-01", + "refactor(transducers): implement range() as class w/ IReducible impl" + ], + [ + "57836390", + "2018-12-01", + "refactor(examples): update geom-tessel example to use new geom lib" + ], + [ + "0b351e12", + "2018-12-01", + "refactor(examples): move gradient defs (mandelbrot)" + ], + [ + "896855de", + "2018-12-01", + "feat(geom): re-add arcLength() impls, update imports" + ], + [ + "d4172ee3", + "2018-12-01", + "refactor(geom): update everything to use new vectors package" + ], + [ + "68806d93", + "2018-11-30", + "feat(vectors): add 2d/3d constants, update Vec2/3" + ], + [ + "87510f74", + "2018-11-30", + "feat(vectors): add addWeighted, eqDeltaArray, mixCubic, mixQuadratic" + ], + ["9f36a681", "2018-11-30", "docs(vectors): update readme"], + ["84ab9b25", "2018-11-30", "docs(vectors): update readme"], + [ + "b415c803", + "2018-11-30", + "refactor(vector-pools): update AttribPool internals" + ], + ["21d107d9", "2018-11-30", "docs(vector-pools): update/fix readme"], + ["27ea8c4a", "2018-11-30", "minor(vector-pools): fix typos in readme"], + ["3a51a42d", "2018-11-30", "docs(vector-pools): fix readme links"], + [ + "fd54d323", + "2018-11-30", + "feat(vector-pools): update readme, add examples" + ], + [ + "4fe2047e", + "2018-11-30", + "feat(vector-pools): add GLType alias, AttribPoolOpts, update pool impls" + ], + [ + "019c0af3", + "2018-11-30", + "feat(vector-pools): add AttribPool, refactor lists" + ], + [ + "25b97891", + "2018-11-30", + "refactor(vectors): add StridedVec, update IVector, AVec" + ], + ["d381ace2", "2018-11-29", "feat(api): add assert()"], + [ + "c31ce8ad", + "2018-11-28", + "refactor(vector-pools): various minor updates & fixes" + ], + [ + "48d5d572", + "2018-11-28", + "feat(vector-pools): add VecPool, VecArrayList & VecLinkedList" + ], + ["ea6bafaf", "2018-11-28", "feat(malloc): expose SIZEOF, add wrap()"], + [ + "6cb3b92b", + "2018-11-28", + "feat(vectors): add IVector interface impls for gvec()" + ], + [ + "63458c2c", + "2018-11-28", + "feat(vectors): add proxied gvec(), update mapBuffer*() docs" + ], + ["1fe9650d", "2018-11-27", "feat(vectors): add mapBuffer*() fns"], + ["c3d19141", "2018-11-27", "feat(vectors): add Vec2/3/4.iterator()"], + [ + "4a8295b7", + "2018-11-27", + "feature(vectors): update swizzle*() to support in-place updates" + ], + ["27f65f9e", "2018-11-27", "feat(matrices): add rotationAroundAxis33/44()"], + [ + "28f04ac1", + "2018-11-27", + "feat(vectors): add project(), signedArea2(), update orthoNormal3()" + ], + [ + "a373e55b", + "2018-11-27", + "feat(vectors): update `out` default behavior & codegens, bugfixes" + ], + [ + "d9e1b2ec", + "2018-11-27", + "feat(matrices): add viewport(), project/unproject(), update invert()" + ], + ["16d56a37", "2018-11-27", "feat(matrices): add trace()"], + ["28fd0f1f", "2018-11-27", "feat(vectors): add sum()"], + ["f1a5cf12", "2018-11-27", "feat(matrices): add M44 factories"], + ["97ac629d", "2018-11-27", "feat(vectors): add/update ops, add docstrings"], + ["35babfc6", "2018-11-27", "feat(matrices): add more matrix ops"], + [ + "f04e79e9", + "2018-11-26", + "feat(matrices): add more matrix ops, optimize & simplify" + ], + [ + "e19f6223", + "2018-11-26", + "feat(vectors): add faceForward, invSqrt & dotValues* fns" + ], + ["b697fd5d", "2018-11-26", "refactor(vectors): update codegens"], + [ + "8e6ddca9", + "2018-11-26", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["bb625eb0", "2018-11-26", "Publish"], + ["18ffdb79", "2018-11-26", "fix(vectors): update VecOpSRoVV & dotS impls"], + [ + "f940672e", + "2018-11-26", + "feat(matrices): extract matrix ops to own package" + ], + [ + "52273cde", + "2018-11-25", + "feat(vectors): re-add (some) strided ops, update codegens, simplify" + ], + [ + "b4fffe85", + "2018-11-25", + "feat(vectors): add cosh, sinh, tanh, round, jitter, wrap" + ], + [ + "7448c6b6", + "2018-11-25", + "feat(vectors): re-add Vec2/3/4, clamp, reflect, refract, restructure package" + ], + [ + "18d44342", + "2018-11-25", + "refactor(vectors): update eqDelta & compileHOF()" + ], + [ + "bfbaaa9b", + "2018-11-25", + "feat(vectors2): update rand codegen tpls & compileHOF/GHOF" + ], + [ + "26d41996", + "2018-11-25", + "feat(vectors): add yet another version of vectors package" + ], + [ + "bb7e003d", + "2018-11-25", + "Merge pull request #62 from acarabott/feature/hdom-canvas-text-maxWidth" + ], + [ + "97965d89", + "2018-11-24", + "fix(hdom-canvas): actually pass maxWidth argument to text function" + ], + ["3f7fe2ad", "2018-11-24", "build(vectors): update deps"], + [ + "82186aa6", + "2018-11-24", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["bb18d7a2", "2018-11-24", "Publish"], + ["d210668e", "2018-11-24", "docs: update package list"], + [ + "4aea85d2", + "2018-11-24", + "feat(random): re-import, extend & refactor random package (MBP2010)" + ], + [ + "65ee909f", + "2018-11-24", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["364f27e3", "2018-11-24", "Publish"], + ["02ec7a7a", "2018-11-24", "docs(hdom-canvas): update readme"], + ["3872e379", "2018-11-24", "assets: add mandelbrot screenshot"], + ["738091d5", "2018-11-24", "docs(examples): update list (readme)"], + ["ca47a885", "2018-11-24", "docs(rstream): update readme"], + ["9ef64f16", "2018-11-23", "Merge branch 'feature/rs-tunnel' into develop"], + ["c6eec4ef", "2018-11-23", "fix(examples): add download fn (mandelbrot)"], + ["46c2882e", "2018-11-23", "fix(rstream): make maxWorkers optional"], + ["a47edd53", "2018-11-23", "feat(examples): update mandelbrot demo"], + [ + "67a5b104", + "2018-11-23", + "feat(rstream): add support multiple workers in Tunnel & TunnelOpts" + ], + [ + "f24e69ea", + "2018-11-23", + "refactor(rstream): move tunnel to /subs, add docs" + ], + ["a39b98c0", "2018-11-23", "Merge branch 'develop' into feature/rs-tunnel"], + [ + "4592fbb5", + "2018-11-23", + "Merge pull request #61 from acarabott/feature/hdom-canvas-text-maxWidth" + ], + [ + "4d1fa1c5", + "2018-11-23", + "minor(hdom-canvas): add maxWidth param to text draw call" + ], + ["2a4bd412", "2018-11-22", "feat(examples): add gradients, simplify"], + [ + "1b567440", + "2018-11-22", + "refactor(examples): minor updates mandelbrot demo" + ], + [ + "70ea4bd6", + "2018-11-21", + "feat(examples): add key controls & wheel zoom to mandelbrot demo" + ], + [ + "bab55c3c", + "2018-11-21", + "feat(rstream-gestures): add absZoom option (abs vs. relative)" + ], + [ + "9549067e", + "2018-11-21", + "fix: update build-examples script (multiple js outputs)" + ], + ["a68b9f9a", "2018-11-21", "refactor(examples): update mandelbrot demo"], + [ + "4cab7080", + "2018-11-21", + "fix: upload-examples script (if multiple sources)" + ], + [ + "80679d3c", + "2018-11-21", + "feat(examples): add mandelbrot worker/tunnel example" + ], + [ + "ef0fe42c", + "2018-11-21", + "feat(rstream): add StreamSync.getSources() / getSourceForID()" + ], + ["4750e796", "2018-11-21", "feat(rstream): add worker tunnel() sub"], + [ + "7007d633", + "2018-11-19", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["e044a6a2", "2018-11-19", "Publish"], + [ + "143c47cd", + "2018-11-19", + "fix(math): fix #60, add range check for norm()" + ], + ["71c568c3", "2018-11-13", "Publish"], + [ + "9334f833", + "2018-11-13", + "feat(interceptors): update forwardSideFx(), refactor iceps as arrow fns" + ], + ["62b3c312", "2018-11-13", "Publish"], + [ + "1d085bff", + "2018-11-13", + "refactor(router): update Route, RouteMatch & minor optimizations" + ], + [ + "9b4a7b45", + "2018-11-12", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["4bf18805", "2018-11-12", "Publish"], + [ + "4048849d", + "2018-11-12", + "Merge branch 'develop' of github.com:thi-ng/umbrella into develop" + ], + [ + "068255f6", + "2018-11-12", + "Merge pull request #59 from acarabott/feature/linecap" + ], + [ + "734a1428", + "2018-11-12", + "minor(hdom-canvas): fix default key for lineCap" + ], + [ + "74827068", + "2018-11-09", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["a4bc35bd", "2018-11-08", "Publish"], + [ + "33e915b4", + "2018-11-08", + "feat(strings): add configurable units() HOF & presets" + ], + ["6eaa5f5f", "2018-11-07", "Publish"], + [ + "b0a4b65e", + "2018-11-07", + "refactor(examples): update hdom-dyn-context demo" + ], + [ + "52a47f0f", + "2018-11-07", + "refactor(transducers-hdom): update auto-deref ctx behavior" + ], + ["30161166", "2018-11-07", "feat(hdom): update auto-deref ctx behavior"], + [ + "749925f0", + "2018-11-07", + "feat(hiccup): update derefContext() to only apply to selected keys" + ], + ["5a3b860e", "2018-11-07", "feat(vectors): update VecPool & NDArray1"], + [ + "34930b31", + "2018-11-07", + "refactor(malloc): update package structure, fix stats()" + ], + [ + "c3751198", + "2018-11-06", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["d2797516", "2018-11-06", "feat(examples): add hdom-dyn-context demo"], + ["79a6a365", "2018-11-06", "Publish"], + [ + "e91dbbc1", + "2018-11-06", + "feat(transducers-hdom): add support for dynamic user context vals" + ], + [ + "6a3a8739", + "2018-11-06", + "feat(hdom): add support for dynamic user context vals" + ], + [ + "a9478732", + "2018-11-06", + "feat(hiccup): add support for dynamic user context values" + ], + [ + "dc2c487d", + "2018-11-06", + "refactor(geom): update implementations() call sites" + ], + [ + "a24715e7", + "2018-11-06", + "refactor(defmulti): merge relations() w/ implementations(), update readme" + ], + [ + "3713c02a", + "2018-11-06", + "refactor(hiccup-svg): update convertTransforms(), update formatting" + ], + [ + "9f03889b", + "2018-11-06", + "minor(geom): add/update edges()/vertices() arg types" + ], + [ + "9a18620d", + "2018-11-06", + "minor(hiccup-svg): update path conversion/creation" + ], + ["c0134fda", "2018-11-06", "minor(geom): update imports"], + [ + "94a40cc5", + "2018-11-06", + "fix(geom): Path2 transform() & translate(), add asCubic() impl" + ], + ["df9b9f9f", "2018-11-06", "fix(geom): asCubic() for arc"], + [ + "9d60ad09", + "2018-11-06", + "perf(geom): emit hline/vline segments if possible" + ], + [ + "c4db51aa", + "2018-11-06", + "feat(vectors): add IMatrix & impls for Mat23/33/44, add/update accessors" + ], + ["4066c80f", "2018-11-06", "feat(defmulti): add relations()"], + [ + "35bd0679", + "2018-11-06", + "feat(geom): add new / update all types / ops, add tests" + ], + [ + "c41d12c0", + "2018-11-03", + "feat(vectors): re-add quaternion, various refactorings" + ], + ["358169fd", "2018-11-01", "feat(geom): add/update shape types"], + [ + "e197f908", + "2018-11-01", + "feat(hiccup-svg): add toHiccup() support in convertTree()" + ], + ["30f61da5", "2018-11-01", "feat(vectors): add eqDeltaArray()"], + [ + "0043fb5d", + "2018-11-01", + "feat(math): add cossin(), add opt scale arg for sincos()" + ], + ["184d55da", "2018-10-31", "build(vectors): update deps"], + [ + "954e0c28", + "2018-10-31", + "feat(vectors): add generic impls for common vec ops" + ], + [ + "816c9c01", + "2018-10-31", + "feat(strings): add floatFixedWidth(), update float()" + ], + [ + "766fdee2", + "2018-10-31", + "feat(vectors): re-add vec4, mat23/33/44, nd arrays" + ], + ["e3727ce9", "2018-10-27", "refactor(malloc): add/extract types to api.ts"], + [ + "228e08a1", + "2018-10-27", + "Merge branch 'develop' into feature/vec-refactor" + ], + ["46bf1a73", "2018-10-27", "Publish"], + [ + "c5b0f2f5", + "2018-10-27", + "feat(malloc): add MemPoolOpts, fix top block alloc, update tests, readme" + ], + [ + "cfd88555", + "2018-10-27", + "feat(geom): re-add & update more types / shape ops" + ], + [ + "a070016c", + "2018-10-27", + "feat(vectors): add VecPool skeleton, add more types, export codegen fns" + ], + [ + "51c4a49f", + "2018-10-26", + "feat(vectors): add/update types, multi-methods, minor optimizations" + ], + [ + "125c784f", + "2018-10-26", + "feat(defmulti): add versions w/ 1 optional typed arg, add .impls()" + ], + [ + "252f66db", + "2018-10-25", + "feat(geom): re-add more classes & methods, add svg conversions" + ], + [ + "505ca49c", + "2018-10-25", + "feat(vectors): add vec2n/vec3n(), copy() methods, update deps" + ], + [ + "fde2db21", + "2018-10-25", + "feat(defmulti): add callable() & implementations(), update readme" + ], + [ + "fe14b791", + "2018-10-24", + "Merge branch 'develop' into feature/vec-refactor" + ], + [ + "accda790", + "2018-10-24", + "fix(rstream-gestures): Publish (0.5.16 had publish error)" + ], + ["673bf50f", "2018-10-24", "Publish"], + [ + "a8c38987", + "2018-10-24", + "feat(defmulti): add support for dispatch value relationships / hierarchy" + ], + ["7b740ab8", "2018-10-24", "docs(malloc): update readme"], + [ + "4f156b04", + "2018-10-24", + "Merge branch 'develop' of github.com:thi-ng/umbrella into develop" + ], + [ + "724fe28f", + "2018-10-24", + "feat: add temp geom2 & vectors2 packages (defmulti API)" + ], + [ + "f271b78b", + "2018-10-24", + "Merge pull request #57 from acarabott/feature/rstream-gesture-local" + ], + [ + "f1f6af4d", + "2018-10-23", + "fix(rstream-gestures): fix incorrect local position when scrolled" + ], + ["5bb51391", "2018-10-21", "Publish"], + [ + "abba2d62", + "2018-10-21", + "Merge branch 'feature/geom-accel' into develop" + ], + ["be7acc33", "2018-10-21", "refactor(examples): update geom-knn demo"], + [ + "b47e6413", + "2018-10-21", + "feat(geom-accel): add KV support, update select/selectKeys()" + ], + ["c387887d", "2018-10-21", "docs: update package list"], + [ + "51071ac7", + "2018-10-21", + "Merge branch 'develop' into feature/geom-accel" + ], + ["6f8a8963", "2018-10-21", "docs: update package list"], + ["b7457cef", "2018-10-21", "Merge branch 'feature/malloc' into develop"], + [ + "4b72cda6", + "2018-10-21", + "feat(malloc): add freeAll(), release(), tests & benchmarks, update docs" + ], + ["40f07876", "2018-10-21", "docs(malloc): add docs to readme"], + ["787102a4", "2018-10-21", "fix(malloc): add size check, update readme"], + [ + "89f2bc28", + "2018-10-21", + "feat(malloc): re-add block compaction & splitting, update readme" + ], + [ + "2cf20c90", + "2018-10-21", + "feat(malloc): initial import @thi.ng/malloc package" + ], + ["ce131d48", "2018-10-19", "feat(geom): add IToCubic, add/update impls"], + [ + "4a47daa4", + "2018-10-19", + "feat(math): migrate mixCubic()/mixQuadratic() from geom package" + ], + ["85426d98", "2018-10-19", "fix(hiccup-svg): fix arc segment handling"], + ["f891c419", "2018-10-19", "feat(math): add sincos() & roundEps()"], + ["2469992e", "2018-10-18", "build(geom-accel): update deps (add morton)"], + [ + "ac2f3e83", + "2018-10-18", + "feat(morton): update/add muxScaled2/3 versions, add error handling" + ], + [ + "971dfb45", + "2018-10-18", + "Merge pull request #55 from acarabott/feature/readme-arc" + ], + [ + "b9cfb56f", + "2018-10-18", + "minor(hdom-canvas): add arc, hline, vline to readme" + ], + ["1063fea9", "2018-10-18", "feat(heaps): add pushPopAll()"], + ["f0deebb9", "2018-10-18", "minor(examples): update geom-knn"], + [ + "b31b4807", + "2018-10-18", + "refactor(hdom-canvas): update points() to accept iterables" + ], + [ + "0c76c024", + "2018-10-18", + "refactor(geom-accel): move iterator into KdNode" + ], + ["aa01a2de", "2018-10-18", "build: update .gitignore"], + ["f82c8b16", "2018-10-18", "feat(examples): add geom-knn example"], + [ + "e14ac8b1", + "2018-10-18", + "feat(geom-accel): re-import geom-accel skeleton (MBP2010)" + ], + ["f7bbfde4", "2018-10-18", "refactor(heaps): public fields"], + [ + "0cf708f4", + "2018-10-18", + "feat(bench): add timedResult() / benchResult()" + ], + [ + "6e0972e9", + "2018-10-17", + "build: further updates dev deps in all packages" + ], + ["f01551ac", "2018-10-17", "build: update make-module/example scripts"], + ["e6cef6b3", "2018-10-17", "build(examples): update dev deps"], + ["1ebae947", "2018-10-17", "build: update dev deps (TS3.1, parcel etc.)"], + ["348cdd4e", "2018-10-17", "docs(examples): update table"], + ["3569d242", "2018-10-17", "feat(examples): add geom-tessel example"], + [ + "d4d44b32", + "2018-10-17", + "fix(examples): update @thi.ng/math occurrences" + ], + ["cf2970aa", "2018-10-17", "minor: update readme"], + ["6e563377", "2018-10-17", "Publish"], + ["39d414f5", "2018-10-17", "docs: update package list in main readme"], + ["940fc312", "2018-10-17", "build(dsp): update package"], + ["456a2ee3", "2018-10-17", "build(math): update package desc"], + ["10cf5646", "2018-10-17", "build: update gitignore & yarn.lock"], + ["83ef61a1", "2018-10-17", "docs(geom): update readme, add/move assets"], + [ + "ffea836f", + "2018-10-17", + "refactor(geom): update deps & @thi.ng/math imports" + ], + [ + "0967929f", + "2018-10-17", + "feat(vectors): replace math.ts w/ imports from @thi.ng/maths package" + ], + [ + "f257330e", + "2018-10-16", + "refactor(transducers): add ensureArrayLike(), update permutations()" + ], + ["1bd9fd43", "2018-10-16", "docs(heaps): update readme"], + [ + "501536b9", + "2018-10-16", + "feat(morton): import & update @thi.ng/morton package (MBP2010)" + ], + ["6851f2c4", "2018-10-16", "feat(compose): add partial(), update readme"], + ["405cf51a", "2018-10-16", "feat(dlogic): add @thi.ng/dlogic package"], + ["458d4a07", "2018-10-16", "feat(binary): add @thi.ng/binary package"], + [ + "889730f8", + "2018-10-16", + "feat(dsp): add oscillators as @thi.ng/dsp package (from synstack / VEX)" + ], + [ + "4af1fba3", + "2018-10-16", + "feat(math): extract maths fns from @thi.ng/vectors as new package" + ], + ["e085136b", "2018-10-13", "Merge branch 'develop' into feature/geom"], + [ + "2e9f0486", + "2018-10-13", + "refactor(geom): update arg handling, update readme" + ], + [ + "328a9b03", + "2018-10-13", + "Merge pull request #54 from acarabott/feature/transducer-links" + ], + [ + "08372abd", + "2018-10-13", + "minor(transducers): fix links to reducers in README" + ], + [ + "2546039a", + "2018-10-13", + "Merge pull request #53 from acarabott/feature/baseline" + ], + ["6a9747bf", "2018-10-13", "minor(hdom-canvas): baseLine -> baseline"], + ["fa87f1e9", "2018-10-11", "feat(geom): add/update tessellate() impls"], + [ + "555fc515", + "2018-10-10", + "feat(geom): add/update factory fns, arg handling, tessel, poly area" + ], + [ + "3a20ef34", + "2018-10-10", + "feat(geom): add/update various shape impls & ops" + ], + [ + "296e1e07", + "2018-10-08", + "refactor: update Infinity consts in various packages" + ], + [ + "d655ec29", + "2018-10-08", + "feat(geom): re-import & refactor partial port of thi.ng/geom (clojure)" + ], + [ + "ff435be6", + "2018-10-07", + "minor(hdom-canvas): rename arc() => circularArc()" + ], + [ + "b2f9af93", + "2018-10-07", + "refactor(vectors): replace static Vec2/3/4 methods w/ IVector impls" + ], + [ + "221fb7f6", + "2018-10-06", + "feat(vectors): add collate & eqDelta fns, update ctors" + ], + ["6094738e", "2018-10-03", "feat(defmulti): add varargs support"], + ["2657df66", "2018-09-30", "feat(geom): add/update interfaces & impls"], + [ + "775cc8a7", + "2018-09-30", + "fix(hdom-components): add Canvas2DContextAttributes (removed in TS3.1)" + ], + ["1ef23611", "2018-09-30", "fix(transducers): minor TS3.1 fixes"], + [ + "515e5ba5", + "2018-09-30", + "feat(transducers): update wrap*() fns to accept iterables" + ], + [ + "aa6b1206", + "2018-09-30", + "feat(geom): re-add Arc2, update Circle2, update helper fns" + ], + [ + "3b1bf647", + "2018-09-30", + "feat(geom): add ICollate & ICopy impls, re-add/update convexHull2" + ], + ["2ba99311", "2018-09-30", "build(geom): update dev deps & yarn.lock"], + [ + "473ec800", + "2018-09-30", + "feat(vectors): add axis consts, add/update ops" + ], + [ + "6a0f8aa9", + "2018-09-29", + "feat(vectors): add comparators & ICompare impls for vec2/3/4" + ], + [ + "9fb2091a", + "2018-09-29", + "refactor(geom): add interfaces, split out common.ts into /func folder" + ], + ["34312d8f", "2018-09-29", "feat(vectors): add IMinMax interface"], + [ + "9c27c77f", + "2018-09-29", + "feat(geom): update all shape types, add interfaces & ops, update tests" + ], + [ + "5c44ad98", + "2018-09-29", + "feat(vectors): add operation specific interfaces, rename Vec3.toPolar()" + ], + ["22f6aab4", "2018-09-29", "Merge branch 'develop' into feature/geom"], + ["4f15ea80", "2018-09-28", "Publish"], + [ + "8399ec2f", + "2018-09-28", + "docs(vectors): fix docstrings, hide CommonOpts type alias" + ], + [ + "f2114d52", + "2018-09-28", + "Merge branch 'feature/vec-codegen' into develop" + ], + [ + "247dec02", + "2018-09-28", + "refactor(vectors): generate more ops, move declareIndices() (#51)" + ], + [ + "719b27ac", + "2018-09-28", + "refactor(vectors): rewrite codegen, add more types & gen ops (#51)" + ], + [ + "9bee7f85", + "2018-09-28", + "refactor(vectors): use codegen for unary vec2/3/4 ops" + ], + [ + "b5ed2545", + "2018-09-28", + "feat(vectors): add vector ops codegen, update basic vec2/3/4 ops (#51)" + ], + [ + "d964865e", + "2018-09-28", + "docs(hdom): add xml-converter example link & screenshot" + ], + [ + "6db26c2b", + "2018-09-28", + "feat(examples): add copy-to-clipboard, extract UI config & components" + ], + ["5cfbf70d", "2018-09-27", "feat(examples): update css"], + ["71cbd19a", "2018-09-27", "fix(examples): fix attrib format"], + [ + "95ba4f6d", + "2018-09-27", + "feat(examples): extend xml-converter, add CLI version, update docs" + ], + ["2f014471", "2018-09-26", "Publish"], + ["4b78c8a3", "2018-09-26", "minor(examples): xml-converter"], + ["96367021", "2018-09-26", "docs(hdom): add/update docs (fix #47)"], + ["0a49d0a5", "2018-09-25", "fix: update .gitignore (fixes #46, fixes #50)"], + [ + "ad1bac8f", + "2018-09-25", + "refactor(examples): refactor hiccup formatter, minor fixes" + ], + [ + "823d828d", + "2018-09-25", + "fix(transducers): fix matchLast(), fix & update return match*() types" + ], + [ + "61af7e51", + "2018-09-25", + "Merge branch 'master' of github.com:thi-ng/umbrella" + ], + [ + "b8a93ea8", + "2018-09-25", + "fix(examples): add null check & parseAttrib() in transformCSS()" + ], + ["3abfc42c", "2018-09-25", "Merge pull request #49 from nkint/patch-1"], + ["a169d2df", "2018-09-25", "fix(examples): add missing index.html (#46)"], + ["04872dbe", "2018-09-25", "Publish"], + [ + "79cf49e1", + "2018-09-25", + "feat(examples): add value coercions & re-formatter (xml-converter)" + ], + [ + "0cce0488", + "2018-09-25", + "feat(strings): add splice(), refactor repeat(), add tests" + ], + ["8b8bf885", "2018-09-25", "typo"], + [ + "0cddc7d6", + "2018-09-25", + "feat(example): update xml-converter (add boolean attrib support)" + ], + [ + "5119b67e", + "2018-09-25", + "feat(sax): add opt support for boolean attribs, add tests" + ], + ["5a893d5b", "2018-09-25", "docs(examples): update table"], + ["436edc0f", "2018-09-25", "Publish"], + [ + "50fa6492", + "2018-09-25", + "fix(hdom): add DEFAULT_IMPL to re-exports (#47)" + ], + ["febe3c36", "2018-09-25", "Publish"], + ["cb263002", "2018-09-25", "feat(examples): add xml-converter example"], + ["8cbfb97e", "2018-09-24", "fix(strings): rename number parsers"], + [ + "888ea747", + "2018-09-24", + "fix(examples): rename `prepare` script aliases" + ], + [ + "c0a8926b", + "2018-09-24", + "fix(examples): rename `prepare` script alias, add commits.json (#46)" + ], + ["cf05efbf", "2018-09-24", "Publish"], + [ + "665564c7", + "2018-09-24", + "feat(sax): update parse() to return iterator if input given (optional)" + ], + ["fc6a4d32", "2018-09-24", "perf(rstream-log): `Level` => const enum"], + [ + "8e4fc902", + "2018-09-24", + "perf(rstream-gestures): `GestureType` => const enum" + ], + ["7ac83c6f", "2018-09-24", "perf(rstream): `State` => const enum"], + [ + "a7b9a427", + "2018-09-24", + "perf(pointfree-lang): `NodeType` => const enum" + ], + ["c3e8d689", "2018-09-24", "perf(csp): `State` => const enum"], + [ + "39f7fb0c", + "2018-09-24", + "build: add `preserveConstEnums` to global tsconfig" + ], + [ + "657a3088", + "2018-09-24", + "docs: fix twitter badges, update make-module script" + ], + [ + "89ab34a3", + "2018-09-24", + "Merge branch 'master' of github.com:thi-ng/umbrella" + ], + ["94f64698", "2018-09-24", "docs: update all readme files"], + ["56bfecbc", "2018-09-23", "Merge pull request #45 from rgtk/patch-1"], + ["b2a24f8c", "2018-09-23", "Fix links to @thi.ng/transducers"], + ["edf68556", "2018-09-23", "Publish"], + ["7cd08281", "2018-09-23", "docs(hdom): update readme"], + [ + "4a2f79b8", + "2018-09-23", + "refactor(hdom): minor refactoring, fix/update docs" + ], + [ + "1d8eeb4d", + "2018-09-23", + "feat(hiccup): emmet class & class attrib merging in normalize()" + ], + ["ff5e5550", "2018-09-23", "docs(rstream): re-org readme"], + ["ed3f10b5", "2018-09-23", "docs(hdom): fix/update changelog"], + ["bb224a75", "2018-09-22", "docs(examples): update readme"], + ["02548fd2", "2018-09-22", "Publish"], + ["70de921a", "2018-09-22", "build: add npm registry for publish script"], + ["ee0c2b96", "2018-09-22", "build: update yarn.lock"], + [ + "897f2b36", + "2018-09-22", + "docs: update branch links (all back to master now)" + ], + ["39d35d93", "2018-09-22", "chore(examples): add missing .gitignore"], + [ + "4bc64394", + "2018-09-22", + "chore: add HMR handling to make-example script" + ], + ["387376ed", "2018-09-22", "docs(hdom): major update readme"], + ["86bdd06d", "2018-09-22", "feat(examples): add svg-barchart demo"], + ["5ef9cf0e", "2018-09-22", "feat(hdom): add renderOnce()"], + ["06dccee4", "2018-09-21", "docs(hdom): update readme"], + [ + "8441afcb", + "2018-09-21", + "assets: add new diagram sources (hdom & interceptors)" + ], + ["bb5569f7", "2018-09-21", "build: update yarn.lock"], + [ + "0dcc1b86", + "2018-09-21", + "refactor(rstream): remove Stream.NEXT_ID, replace w/ Subscription field" + ], + [ + "8aa66055", + "2018-09-21", + "build: update example generator & build scripts" + ], + [ + "efcbe2de", + "2018-09-21", + "minor(examples): fix sort icon in triple-query" + ], + [ + "7c4dc3f0", + "2018-09-21", + "fix(examples): update commit-table-ssr to work w/ parceljs, update docs" + ], + ["22732421", "2018-09-21", "build(examples): update yarn build commands"], + ["1ee6c43a", "2018-09-21", "build: update typedoc dep"], + ["022101f3", "2018-09-21", "fix(transducers): add missing type annotation"], + [ + "78b1f4ac", + "2018-09-21", + "fix(transducers-hdom): add missing type annotation" + ], + [ + "3cd03bd7", + "2018-09-20", + "assets(examples): add gesture-analysis screenshot" + ], + ["288b68d9", "2018-09-20", "feat(rstream): add trigger() generics"], + ["75889156", "2018-09-20", "docs(rstream): update readme & doc strings"], + ["d5ec6fd8", "2018-09-20", "docs(rstream): add docs, update readme"], + ["dbdb72ec", "2018-09-20", "docs(rstream): add diagrams"], + ["bbb87f4a", "2018-09-20", "docs(hdom): update readme"], + [ + "1ac1110b", + "2018-09-20", + "feat(examples): rename interceptor-basics, add more simpler version" + ], + ["6d6fae33", "2018-09-20", "refactor(hdom): allow HDOMOpts extensions"], + ["74816eb0", "2018-09-20", "docs(hdom): update readme"], + ["46d851b6", "2018-09-19", "feat(examples): add hdom-canvas-draw demo"], + [ + "09a821b2", + "2018-09-19", + "refactor(hdom-canvas): switch canvas back to lifecycle object form" + ], + ["e390a54d", "2018-09-19", "feat(api): add `IToHiccup` interface"], + ["929c6f42", "2018-09-19", "feat(rstream): add trigger() utility stream"], + [ + "e82e3122", + "2018-09-19", + "feat(examples): add SVG export comment to hdom-canvas-shapes" + ], + ["de17db8f", "2018-09-19", "perf(hdom): minor updates"], + [ + "53a1d2c0", + "2018-09-19", + "refactor(hdom-canvas): add _serialize control attrib to root group" + ], + [ + "363c241c", + "2018-09-19", + "feat(hiccup): add control attrib handling, add comment support" + ], + ["bca4cc4b", "2018-09-17", "Publish"], + ["b488d2b3", "2018-09-17", "feat(transducers): add randomID()"], + [ + "f001314d", + "2018-09-17", + "fix(transducers): str() initial result handling" + ], + [ + "eb674268", + "2018-09-17", + "fix(transducers): update arg types for choices() & weightedRandom()" + ], + ["bd228110", "2018-09-17", "Publish"], + ["3e647a18", "2018-09-17", "fix(atom): add .value getter to IView"], + ["76309858", "2018-09-17", "minor(examples): update clock example"], + ["38125686", "2018-09-17", "docs: add hdom-canvas to package table"], + ["60f00590", "2018-09-17", "build(examples): fix deps, update readmes"], + ["7bbd1bcf", "2018-09-17", "docs(hdom-canvas): update links"], + ["95c462a5", "2018-09-17", "Publish"], + ["decc26b2", "2018-09-17", "build: update deps"], + ["b9738cc4", "2018-09-17", "v1.2.0"], + ["b43fcb39", "2018-09-17", "v2.0.0-alpha"], + ["f424fa92", "2018-09-17", "Publish"], + ["d4487066", "2018-09-17", "v1.1.0"], + ["3835cf43", "2018-09-17", "v2.2.0"], + ["ff919070", "2018-09-17", "v0.4.0"], + ["339342b3", "2018-09-17", "v0.1.9"], + ["7481df23", "2018-09-17", "v1.5.9"], + [ + "4297d649", + "2018-09-17", + "Merge branch 'feature/hdom-canvas' into develop" + ], + ["4fe6a742", "2018-09-17", "Merge branch 'feature/hdom-v5' into develop"], + ["eb4e6891", "2018-09-17", "refactor(examples): minor updates"], + [ + "ae4b6212", + "2018-09-16", + "perf(hdom-canvas): inline type checks, update deps & readme" + ], + [ + "a52f83c4", + "2018-09-16", + "fix(hdom-canvas): update __normalize handling, rename fns" + ], + [ + "382c45ca", + "2018-09-16", + "perf(hdom): update diffTree(), inline node type checks" + ], + [ + "224a537a", + "2018-09-16", + "perf(checks): inline checks in isNotStringAndIterable()" + ], + ["b93dc745", "2018-09-16", "feat(examples): add static canvas test"], + [ + "74547aa6", + "2018-09-16", + "feat(hdom-canvas): update canvas component & diffTree impl, update docs" + ], + [ + "3b628326", + "2018-09-16", + "refactor(hiccup-svg): update points(), minor fixes, add docs" + ], + ["ebfcf159", "2018-09-16", "refactor(hdom): export diff related fns"], + ["bb7e08a8", "2018-09-16", "refactor(examples): update canvas demo"], + [ + "5de02559", + "2018-09-16", + "feat(hdom-canvas): add HDPI auto-adjustment, update docs" + ], + [ + "b219d67a", + "2018-09-15", + "Merge branch 'feature/hdom-v5' into feature/hdom-canvas" + ], + ["d9af2e5f", "2018-09-15", "refactor(hdom): update custom equiv()"], + ["6c33901f", "2018-09-15", "fix(hdom): delegate diffTree() to branch impl"], + [ + "3de83bb7", + "2018-09-15", + "refactor(hiccup): add `button` to NO_SPANS elements" + ], + [ + "adaaa7a0", + "2018-09-15", + "feat(hdom-canvas): add warning msg for hydrateTree() impl" + ], + [ + "ae1371d8", + "2018-09-15", + "Merge branch 'feature/hdom-v5' into feature/hdom-canvas" + ], + [ + "05920636", + "2018-09-15", + "fix(hdom): exclude hdom control attribs in setAttrib()" + ], + [ + "4e230164", + "2018-09-15", + "feat(vectors): add random vector ops for Vec2/3/4 & GVec" + ], + ["8e796480", "2018-09-15", "Merge branch 'develop' into feature/geom"], + [ + "6a76bfd1", + "2018-09-15", + "Merge branch 'develop' into feature/hdom-canvas" + ], + ["442f14f4", "2018-09-15", "Merge branch 'develop' into feature/hdom-v5"], + ["7963e256", "2018-09-15", "feat(strings): add U24 hex preset"], + ["be25c48e", "2018-09-15", "feat(examples): add circles test"], + [ + "56b919d8", + "2018-09-15", + "Merge branch 'feature/hdom-canvas' into feature/geom" + ], + [ + "2bb41d45", + "2018-09-14", + "docs(examples): update crypto readme (replace diagram)" + ], + [ + "1d463ea6", + "2018-09-14", + "build(examples): update deps (hdom-canvas-shapes)" + ], + [ + "141e7c86", + "2018-09-14", + "docs(examples): add dflow diagram, update readme" + ], + ["42c1c403", "2018-09-14", "fix(examples): add missing file download.ts"], + [ + "7778c404", + "2018-09-14", + "Merge branch 'feature/hdom-canvas' into feature/geom" + ], + [ + "6e20e3e2", + "2018-09-14", + "feat(hiccup): add `.toHiccup()` interface support" + ], + [ + "8ecdd139", + "2018-09-14", + "feat(hdom-canvas): add `.toHiccup()` interface support" + ], + [ + "54ba0ce1", + "2018-09-14", + "feat(hdom): add `.toHiccup()` interface support" + ], + ["177855c3", "2018-09-14", "feat(examples): add geom circle test"], + [ + "c03259cb", + "2018-09-14", + "feat(geom): import (updated) old thi.ng/geom package (minus vectors)" + ], + ["f25db9a2", "2018-09-14", "docs(hdom-canvas): update readme"], + [ + "b8f79568", + "2018-09-14", + "feat(examples): add SVG conversion & export to hdom-canvas-shapes" + ], + [ + "3acb0dd8", + "2018-09-14", + "fix(hiccup-svg): update points() to use \"xlink:href\" (fix for safari)" + ], + [ + "7a6cf519", + "2018-09-14", + "feat(hiccup-svg): re-parse alpha colors in gradients (fix for safari)" + ], + [ + "d4122694", + "2018-09-14", + "feat(hdom-canvas): update points() to use circle or rect shapes" + ], + [ + "214cb62d", + "2018-09-14", + "feat(hiccup-svg): add custom shape support for points(), use instancing" + ], + [ + "cf4add3e", + "2018-09-14", + "refactor(hiccup-svg): update attrib conversion" + ], + [ + "a00761ba", + "2018-09-14", + "refactor(examples): update svg `text` arg order (hiccup-svg update)" + ], + [ + "f45f4ff0", + "2018-09-14", + "refactor(examples): update gradient def in svg-waveform" + ], + [ + "c20b24a7", + "2018-09-14", + "refactor(hdom-canvas): swap `img` args to be more consistent w/ others" + ], + [ + "4cb8cf72", + "2018-09-14", + "feat(hiccup-svg): add new elements, update convertTree(), refactor" + ], + [ + "0c4dddce", + "2018-09-14", + "feat(hiccup-svg): add convertTree() interop helpers (#44)" + ], + ["fb9c704d", "2018-09-14", "docs(hdom-canvas): update readme"], + ["de61c215", "2018-09-14", "feat(hdom-canvas): add `defs` node/group type"], + ["75002fad", "2018-09-13", "build: update upload-examples"], + [ + "17d13866", + "2018-09-13", + "feat(examples): use location.hash to select tests, update assets" + ], + ["c8d7a7c9", "2018-09-13", "feat(examples): update canvas image test"], + [ + "f7af43c1", + "2018-09-13", + "Merge branch 'feature/hdom-v5' into feature/hdom-canvas" + ], + ["c2859105", "2018-09-13", "perf(checks): update isPlainObject()"], + [ + "bde18d50", + "2018-09-13", + "refactor(hdom): use custom equiv also for diffAttributes()" + ], + [ + "481d9d34", + "2018-09-13", + "perf(diff): update diffObject() & add IOC support for custom equiv fn" + ], + ["a9e173e7", "2018-09-13", "test(hdom): update tests"], + [ + "96beaf38", + "2018-09-13", + "refactor(hdom): trial run of custom equiv() impl for diffTree()" + ], + [ + "ee55accd", + "2018-09-13", + "perf(equiv): inline & refactor type checks, add IOC support for helpers" + ], + ["360f15af", "2018-09-13", "feat(examples): add canvas image test"], + ["6b62067b", "2018-09-13", "docs(hdom-canvas): update readme"], + ["99020cad", "2018-09-13", "docs(hdom-canvas): update readme"], + ["5aa9d46a", "2018-09-13", "refactor(hdom-canvas): update attrib aliases"], + [ + "b6c1e42e", + "2018-09-13", + "docs(examples): update hdom-canvas-* build instructions" + ], + ["2b16d24d", "2018-09-13", "docs(examples): update readme"], + ["2fa4c56c", "2018-09-13", "refactor(examples): update hdom-canvas-shapes"], + [ + "6496e47b", + "2018-09-13", + "feat(hdom-canvas): add new shape types, add canvas attribs, refactor" + ], + ["5a3c3147", "2018-09-13", "refactor(examples): minor updates shape test"], + ["98735395", "2018-09-13", "docs(examples): update example table (readme)"], + ["7aae4333", "2018-09-13", "feat(examples): add hdom-canvas-shapes"], + [ + "81fe154d", + "2018-09-13", + "feat(hdom-canvas): fix #43, add gradient support" + ], + [ + "d5e01ff8", + "2018-09-12", + "Merge branch 'feature/hdom-v5' into feature/hdom-canvas" + ], + ["e4f780c7", "2018-09-12", "fix(hdom): minor fix (hydrateDOM)"], + [ + "81a39ba7", + "2018-09-12", + "refactor(hdom-canvas): update to reflect hdom api changes" + ], + [ + "700352de", + "2018-09-12", + "Merge branch 'feature/hdom-v5' into feature/hdom-canvas" + ], + [ + "832e419c", + "2018-09-12", + "fix(transducers-hdom): update to work w/ new @thi.ng/hdom v5 API" + ], + ["1ac245f8", "2018-09-12", "feat(hdom): reorg & extend HDOMImplementation"], + ["66c007de", "2018-09-12", "feat(checks): add isNotStringAndIterable()"], + [ + "764373a7", + "2018-09-12", + "feat(hdom-canvas): add rounded rect option (as path)" + ], + [ + "2a973fd1", + "2018-09-12", + "Merge branch 'feature/hdom-v5' into feature/hdom-canvas" + ], + [ + "1cfad519", + "2018-09-12", + "refactor(hdom-canvas): update canvas component, add docs" + ], + [ + "2e3fb660", + "2018-09-12", + "perf(hdom): add opt `__release` attrib to disable releaseDeep()" + ], + [ + "cfadbe3e", + "2018-09-12", + "refactor(examples): update clock main group attribs" + ], + [ + "1d24a166", + "2018-09-12", + "feat(hdom-canvas): add canvas-specific normalizeTree() impl" + ], + [ + "59bb19c2", + "2018-09-11", + "feat(hdom): update normalizeTree, add to HDOMImplementation" + ], + [ + "82cd9389", + "2018-09-11", + "feat(hdom-canvas): add path shape type, embedded fn & iterator handling" + ], + [ + "c69454b0", + "2018-09-11", + "refactor(examples): update attribs & scengraph in hdom-canvas-clock" + ], + [ + "ccbf53cf", + "2018-09-11", + "feat(hdom-canvas): implement drawing state inheritance & restoration" + ], + [ + "17060403", + "2018-09-11", + "build(examples): enable source maps in all examples, update make-example" + ], + [ + "d93efa86", + "2018-09-11", + "refactor(examples): minor updates hdom-canvas-clock, enable source map" + ], + [ + "d3acb707", + "2018-09-11", + "feat(hdom-canvas): add more shapes/prims, update transform handling" + ], + [ + "b4a37dd3", + "2018-09-10", + "Merge branch 'develop' into feature/hdom-canvas" + ], + ["685fd0bd", "2018-09-10", "Merge branch 'develop' into feature/hdom-v5"], + ["bdb57f83", "2018-09-10", "Publish"], + ["f4cc0dda", "2018-09-10", "refactor(vectors): Vec3/4 toString() impls"], + ["ae261ab5", "2018-09-10", "fix(vectors): GVec.copy() / get()"], + ["07d1ccfc", "2018-09-10", "fix(vectors): Mat23/33/44 toString() impls"], + [ + "3dd00725", + "2018-09-10", + "feat(vectors): add matrix index & property accessors" + ], + ["54e59a08", "2018-09-10", "fix(examples): re-enable HMR logic"], + [ + "dc618983", + "2018-09-10", + "refactor(hdom-canvas): rename types due to hdom update" + ], + [ + "5546c0d2", + "2018-09-10", + "Merge branch 'feature/hdom-v5' into feature/hdom-canvas" + ], + [ + "cc73c769", + "2018-09-10", + "refactor(hdom): rename HDOMOps => HDOMImplementation, add docs" + ], + [ + "ada7d34e", + "2018-09-10", + "build: add max-age cache header (upload-examples)" + ], + ["2fdcf104", "2018-09-10", "refactor(examples): update clock demo"], + ["689e775e", "2018-09-10", "feat(examples): add hdom-canvas-clock demo"], + [ + "f41014eb", + "2018-09-10", + "feat(hdom-canvas): rename package, add text support, refactor" + ], + [ + "60f12c5d", + "2018-09-10", + "feat(hiccup-canvas): add canvas comp, createTree impl, update deps" + ], + [ + "46c5cd2c", + "2018-09-10", + "Merge branch 'feature/hdom-v5' into feature/hiccup-canvas" + ], + ["525d90d5", "2018-09-10", "feat(hdom): generalize diffElement() (#4)"], + [ + "5cb4350f", + "2018-09-09", + "feat(hdom): add optional support for blocking normalize & diff" + ], + ["c47711f9", "2018-09-09", "refactor(hiccup-canvas): add notes"], + [ + "84a6f441", + "2018-09-09", + "Merge branch 'develop' into feature/hiccup-canvas" + ], + ["146868d1", "2018-09-09", "build: update make-module script"], + ["890eb97c", "2018-09-09", "docs(compose): add missing package desc"], + ["266d02b0", "2018-09-09", "docs: update badges in all readme files"], + [ + "eb284f01", + "2018-09-09", + "feat(hiccup-canvas): add hiccup-canvas package" + ], + ["9bde777a", "2018-09-08", "fix(examples): add missing html file"], + ["d003cab6", "2018-09-08", "docs(examples): update readme"], + ["6051439d", "2018-09-08", "feat(examples): add gesture-analysis example"], + ["bfd3c2f2", "2018-09-08", "Publish"], + ["06f61cf4", "2018-09-08", "fix: missing comma in make-example script"], + ["8856a18f", "2018-09-08", "test(rstream): add merge-only sync tests"], + [ + "1f22867f", + "2018-09-08", + "feat(transducers): rename window() => slidingWindow(), update readme" + ], + [ + "2916432d", + "2018-09-08", + "docs(transducers): update partitionSync() docs" + ], + [ + "162aa2d5", + "2018-09-08", + "feat(rstream): add merge-only mode for StreamSync, update docs" + ], + [ + "d8fdc018", + "2018-09-08", + "feat(transducers): update partitionSync() xform & PartitionSyncOpts" + ], + ["2f0f3d48", "2018-09-08", "feat(transducers): add window() xform"], + ["014bd980", "2018-09-07", "fix: update upload-examples script"], + [ + "b4c2e1c0", + "2018-09-07", + "build: update `yarn examples` command, update readme" + ], + [ + "81610117", + "2018-09-07", + "build: add build-examples, update make-example script" + ], + [ + "316ad6ae", + "2018-09-07", + "build(examples): update all examples to use parcel instead of webpack" + ], + [ + "b1ef187d", + "2018-09-07", + "build: update lerna, replace webpack deps w/ parcel" + ], + ["42d142dc", "2018-09-06", "Publish"], + ["d54dffb0", "2018-09-06", "docs(examples): update table"], + ["cf516aa5", "2018-09-06", "Merge branch 'feature/defonce' into develop"], + [ + "83fa7ade", + "2018-09-06", + "feat(examples): add hmr-basics demo (fixes #40)" + ], + ["61bed88b", "2018-09-06", "feat(memoize): add defonce()"], + ["e0f83c4a", "2018-09-05", "Publish"], + [ + "2eec7006", + "2018-09-05", + "feat(vectors): add/update transformVectors*(), update types" + ], + [ + "2d5d0c86", + "2018-09-05", + "refactor(vectors): rename immutable vec ops, update readme table" + ], + ["f7df4cba", "2018-09-05", "chore: update .gitignore (add gtm)"], + ["c4631533", "2018-09-05", "test(vectors): add benchmarks"], + ["2583380b", "2018-09-04", "docs(vectors): update readme"], + ["a3c04076", "2018-09-04", "feat(vectors): add immutable vec2/3/4 ops"], + ["be6ae489", "2018-09-03", "Publish"], + [ + "9510f01a", + "2018-09-03", + "feat(vectors): add new vector ops, update readme" + ], + ["a5b3f84c", "2018-09-03", "docs(vectors): add/update doc strings"], + ["7001b7a8", "2018-09-03", "refactor(vectors): update matrix factories"], + ["f0ccd0c5", "2018-09-03", "feat(vectors): add mixBilinear1/2/3/4"], + [ + "ad131513", + "2018-09-03", + "fix(vectors): update GVec method args (readonly)" + ], + [ + "25ea00ca", + "2018-09-03", + "fix(vectors): add opt normalize for angleBetween2/3" + ], + ["c0fbb4ed", "2018-09-03", "fix(vectors): add missing arg types"], + ["34ffe9d7", "2018-09-03", "docs(hdom): update/fix docs & readme"], + ["4a16bd56", "2018-09-03", "refactor(transducers): update normRange()"], + ["16aa0c46", "2018-09-03", "feat(vectors): add Vec*.intoBuffer() impls"], + ["ba386e52", "2018-09-01", "Publish"], + ["6acb05bb", "2018-09-01", "build(examples): fix deps"], + [ + "1795f187", + "2018-09-01", + "refactor(vectors): update Vec2/3/4 index signatures" + ], + ["fc7c670b", "2018-09-01", "Publish"], + ["e5662a0a", "2018-09-01", "docs(paths): update readme, add tests"], + [ + "a7104535", + "2018-09-01", + "fix(resolve-map): deep resolve of yet unknown path values" + ], + [ + "f0183530", + "2018-09-01", + "feat(paths): add exists() path checker & tests" + ], + ["e66a4929", "2018-09-01", "fix(hdom): fix local import"], + ["71ee43ca", "2018-09-01", "Publish"], + ["e7016b42", "2018-09-01", "docs(hdom): fix screenshot link"], + ["a8282925", "2018-09-01", "Publish"], + ["d2b4fafb", "2018-09-01", "fix(vectors): add missing deps"], + [ + "208e57d2", + "2018-09-01", + "docs: update various readme's, add/move screenshots" + ], + ["7fa3852a", "2018-08-31", "Publish"], + ["1060b2a3", "2018-08-31", "docs(hdom): update readme, add hydrate docs"], + [ + "473aadc1", + "2018-08-31", + "refactor(examples): update crypto-chart to use `updateDOM` xform" + ], + [ + "1a6741a1", + "2018-08-31", + "refactor(examples): update `updateDOM()` transducer call sites" + ], + [ + "0f396948", + "2018-08-31", + "feat(transducers-hdom): add DOM hydration support, rename (#39)" + ], + ["5e74a9c0", "2018-08-31", "feat(hdom): update HDOMOpts & start()"], + ["1e8b4efa", "2018-08-31", "fix(hiccup): serialize() args"], + ["52417e37", "2018-08-31", "fix(examples): minor update hydrate demo"], + ["e7607f53", "2018-08-31", "docs(examples): update readmes"], + ["0d34bb7d", "2018-08-31", "feat(examples): add hydrate-basics example"], + [ + "26bc7e74", + "2018-08-31", + "refactor(examples): update hdom start() call sites to new API" + ], + [ + "d55d9303", + "2018-08-31", + "refactor(hdom): minor update HDOMOpts & start()" + ], + [ + "9f8010db", + "2018-08-31", + "feat(hdom): add DOM hydration support (SSR), update start() (#39)" + ], + [ + "1b97a25a", + "2018-08-31", + "fix(hiccup): disable spans for certain element types" + ], + [ + "1b0deb22", + "2018-08-31", + "feat(hiccup): add optional support for spans & auto keying (#39)" + ], + ["b8d944eb", "2018-08-31", "refactor(vectors): update matrices & types"], + ["0a806011", "2018-08-30", "refactor(vectors): update mulV*() arg order"], + ["80f291b5", "2018-08-30", "Publish"], + [ + "461adeef", + "2018-08-30", + "docs(resolve-map): fix #35, update docs & tests" + ], + ["0673f0f4", "2018-08-30", "fix(examples): fix #38, add missing dep"], + ["75d6409e", "2018-08-30", "build: update yarn.lock"], + ["d1b77cfe", "2018-08-30", "docs(vectors): update readme"], + [ + "d5cec948", + "2018-08-30", + "feat(vectors): update types, update GVec, add maths fns, swap impls" + ], + [ + "bdb5d377", + "2018-08-29", + "feat(vectors): consolidate vector consts, add toJSON() impls" + ], + ["bb55adf3", "2018-08-29", "Merge branch 'develop' into feature/webgl"], + [ + "b82a22f5", + "2018-08-29", + "refactor(vectors): simplify prop accessors (DRY)" + ], + ["f5795eee", "2018-08-28", "Publish"], + ["cd834f82", "2018-08-28", "feat(vectors): add more vec2/3 ops"], + ["4a373674", "2018-08-28", "feat(bench): add opt prefix arg, update docs"], + ["39cced5f", "2018-08-28", "minor(examples): add cursor css for dial"], + ["986e954f", "2018-08-27", "Publish"], + [ + "5afb5791", + "2018-08-27", + "Merge pull request #34 from andrew8er/pr/fix-rstream-resolve-errors" + ], + [ + "34a97b47", + "2018-08-27", + "fix(rstream): Fix unbound this in method call expression" + ], + ["917d81d1", "2018-08-27", "Publish"], + ["dee0476d", "2018-08-27", "docs(examples): update list of examples"], + [ + "d7235a3e", + "2018-08-27", + "feat(examples): add mouse & touch events for canvas-dial, refactor" + ], + [ + "a0cbd2b8", + "2018-08-27", + "feat(atom): add .value accessor aliases (for deref()/reset())" + ], + ["cfb2b747", "2018-08-27", "feat(vectors): add mix1(), minor cleanups"], + [ + "ccc40a9d", + "2018-08-27", + "feat(rstream-gestures): add options for local & scaled positions" + ], + [ + "b25edbec", + "2018-08-27", + "fix(hdom-components): call canvas update from init()" + ], + ["3f27acd7", "2018-08-27", "docs(rstream): update merge() docs"], + ["b5633b18", "2018-08-27", "feat(examples): add canvas-dial example (WIP)"], + [ + "135d6f1b", + "2018-08-27", + "feat(hdom-components): add HDPI adaptation helper for canvas comps" + ], + ["9d542b92", "2018-08-26", "minor(examples): fix/update comments"], + [ + "80a5f300", + "2018-08-26", + "feat(examples): add client/browser version of commit-log" + ], + [ + "318401c0", + "2018-08-25", + "refactor(examples): update components, add docs" + ], + [ + "37718855", + "2018-08-25", + "refactor(examples): further DRY & readme updates" + ], + ["82db75b2", "2018-08-25", "docs: fix example table"], + ["0cd261cf", "2018-08-25", "docs(example): update example list"], + ["fca0b13d", "2018-08-25", "docs(examples): add more comments"], + ["ae383f8e", "2018-08-25", "refactor(examples): simplify date handling"], + [ + "4be74bae", + "2018-08-25", + "fix(examples): commit log parsing, minor update html()" + ], + [ + "d0b1a1e4", + "2018-08-25", + "feat(examples): add commit-table-ssr express server / git commit log demo" + ], + ["80cae22d", "2018-08-25", "chore: update make-module script"], + ["866f3cdd", "2018-08-25", "refactor(cache): update iterator methods"], + ["8e9ba347", "2018-08-24", "Publish"], + ["113b424b", "2018-08-24", "docs: fix links in readmes"], + ["f9a1cc2a", "2018-08-24", "docs(transducers-stats): fix screenshot link"], + ["89e1bd51", "2018-08-24", "docs(rle-pack): fix diagram link"], + ["1c92f223", "2018-08-24", "Publish"], + ["cff9d18a", "2018-08-24", "docs(transducers): update readme examples"], + ["7a5be213", "2018-08-24", "fix(transducers): arg handling in rename()"], + ["389aff82", "2018-08-24", "build: update yarn.lock"], + ["b3f94159", "2018-08-24", "Merge branch 'feature/tx-v2' into develop"], + ["3057237f", "2018-08-24", "refactor(iges): transducer imports & usage"], + [ + "28110726", + "2018-08-24", + "assets(examples): update crypto-chart screenshot" + ], + ["2a443a56", "2018-08-24", "docs(transducers-stats): update readme"], + ["024a4e96", "2018-08-24", "docs(transducers): update readme"], + ["832e57f1", "2018-08-24", "fix(transducers): copy&paste error (push)"], + [ + "d861bdd1", + "2018-08-24", + "fix(transducers): iterator1() final reduced value handling" + ], + [ + "599f2b66", + "2018-08-24", + "feat(transducers): update base64Encode() to return string if input given" + ], + ["1025996e", "2018-08-24", "docs(rle-pack): update readme & diagram"], + [ + "40415217", + "2018-08-24", + "feat(rle-pack): further update data format (non-repeats)" + ], + [ + "694a2537", + "2018-08-24", + "feat(rle-pack): update data format, custom repeat sizes, rename fns" + ], + [ + "89b4ad5d", + "2018-08-23", + "feat(transducers): update all reducers to accept opt iterables" + ], + [ + "2c3a1147", + "2018-08-23", + "feat(transducers): add GroupByOpts interface, update groupBy* reducers" + ], + [ + "8565edb8", + "2018-08-23", + "fix(rle-pack): fix initial repeat counts in encodeBytes(), update readme" + ], + [ + "0bd860e6", + "2018-08-23", + "feat(transducers): add fill() & fillN() reducers" + ], + [ + "fb3c04da", + "2018-08-23", + "refactor(vectors): make Vec & Mat type aliases of NumericArray" + ], + [ + "519394b3", + "2018-08-23", + "feat(api): add NumericArray and TypedArray types" + ], + ["ecfcdcd9", "2018-08-23", "build: update yarn.lock"], + ["116ede83", "2018-08-23", "docs(transducers): update readme"], + [ + "c716e4ac", + "2018-08-23", + "add(transducers): add IReducible support for transduce() & run()" + ], + [ + "1280cfd5", + "2018-08-22", + "feat(dcons): add IReducible impl, update deps & imports" + ], + [ + "f14f7ce5", + "2018-08-22", + "feat(associative): add IReducible impls for SortedMap & SortedSet" + ], + [ + "9d83255a", + "2018-08-22", + "perf(transducers): add IReducible, update reduce()" + ], + [ + "fd8e7614", + "2018-08-09", + "feat(rle-pack): add support for custom input word sizes" + ], + ["4fdd3c92", "2018-08-09", "docs(transducers): update readme"], + ["3e659181", "2018-08-09", "minor(transducers): fix comp import"], + [ + "1434b0ed", + "2018-08-09", + "refactor(hdom): remove thi.ng/iterators dependency" + ], + ["802c5b44", "2018-08-09", "build(memoize): update/fix dev deps"], + [ + "f3d46460", + "2018-08-09", + "refactor(rstream): use SEMAPHORE from thi.ng/api, not transducers" + ], + ["5d5c70ab", "2018-08-09", "Merge branch 'master' into feature/tx-v2"], + ["e9c8ddc6", "2018-08-09", "chore(strings): update exports, add docs"], + ["653a175a", "2018-08-09", "feat(strings): add case converters"], + [ + "5209c426", + "2018-08-09", + "fix(strings): buffer length (for null inputs) (`center()`)" + ], + [ + "1a20bc2f", + "2018-08-09", + "feat(strings): add truncateLeft() & wrap() stringers" + ], + [ + "3a8bd088", + "2018-08-09", + "refactor(transducers): replace local types w/ external defs" + ], + [ + "ca0a04e7", + "2018-08-09", + "feat(compose): extract comp() & juxt() to new @thi.ng/compose package" + ], + [ + "bea7a1fd", + "2018-08-09", + "refactor(resolve-map): replace SEMAPHORE const w/ thi.ng/api def" + ], + [ + "9b443cb4", + "2018-08-09", + "refactor(hdom): replace SEMAPHORE const w/ thi.ng/api def" + ], + [ + "c22ac3ce", + "2018-08-09", + "refactor(associative): replace Pair & SEMAPHORE w/ identical thi.ng/api defs" + ], + [ + "cf30ba26", + "2018-08-09", + "feat(api): add new/move type aliases into api.ts" + ], + [ + "c9ac981a", + "2018-08-09", + "feat(transducers-stats): make xforms iterable if input given" + ], + [ + "ab662d8a", + "2018-08-09", + "perf(transducers): add iterator1(), update various xforms" + ], + ["d130aaa1", "2018-08-08", "build: fix transducer versions"], + [ + "8a111efd", + "2018-08-08", + "refactor(transducers): add shared SortOpts, update xforms" + ], + ["3e6c4624", "2018-08-08", "chore: update .gitignore"], + ["afb267a0", "2018-08-08", "docs: add graphviz dot files"], + [ + "dcccbcba", + "2018-08-08", + "refactor(examples): simplify transducer usages" + ], + [ + "c17cb087", + "2018-08-08", + "refactor(hdom-components): update/replace deps (iterators => transducers)" + ], + [ + "420cfe37", + "2018-08-08", + "test(csp): fix regression to due transducers update" + ], + [ + "d6352267", + "2018-08-08", + "refactor(dgraph): update/replace deps (iterators => transducers)" + ], + [ + "78d0a844", + "2018-08-08", + "fix(iges): regression to due transducers update" + ], + [ + "065d78ba", + "2018-08-08", + "refactor(cache): update/replace deps (iterators => transducers)" + ], + [ + "abe1a886", + "2018-08-08", + "refactor(associative): update/replace deps (iterators => transducers)" + ], + [ + "eb1714f5", + "2018-08-08", + "refactor(rstream-query): simplify transducer uses" + ], + [ + "cd5c6ff1", + "2018-08-08", + "refactor(rstream): update StreamSync transducer init" + ], + [ + "bae8a1d8", + "2018-08-08", + "feat(transducers): update all xforms to also work as iterator" + ], + [ + "e713704f", + "2018-08-08", + "refactor(transducers): rename inspect() => trace()" + ], + [ + "45e49930", + "2018-08-08", + "refactor(transducers): add ReductionFn type alias, update Reducer" + ], + ["723da5bb", "2018-08-08", "fix(transducers): hex type decl"], + ["ea768ad0", "2018-08-08", "Publish"], + [ + "6a0db9c7", + "2018-08-08", + "refactor(examples): replace hex() => radix(), update deps" + ], + [ + "b1ea9a55", + "2018-08-08", + "refactor(transducers): deprecate hex(), update hexDump() xform & deps" + ], + ["5864f2cd", "2018-08-08", "feat(strings): add opt prefix arg for radix()"], + [ + "a5e2c28a", + "2018-08-08", + "feat(transducers): add partitionBits() xform & tests" + ], + ["6eb97b58", "2018-08-08", "Publish"], + ["b2ebbfc8", "2018-08-08", "fix(strings): float type decl"], + ["0f2cf77d", "2018-08-08", "Publish"], + ["a14e5b24", "2018-08-08", "docs: update readmes"], + [ + "56d64c50", + "2018-08-08", + "refactor(examples): update crypto-chart to use @thi.ng/strings" + ], + ["df067d84", "2018-08-08", "refactor(iges): update to use @thi.ng/strings"], + [ + "40781eb3", + "2018-08-08", + "feat(strings): re-import & update @thi.ng/strings from MBP2010" + ], + ["369f375d", "2018-08-08", "build(memoize): update deps"], + [ + "2bc092d4", + "2018-08-08", + "feat(memoize): add optional cache arg for memoizeJ()" + ], + ["adc49285", "2018-08-07", "feat(memoize): add @thi.ng/memoize package"], + ["252411aa", "2018-08-06", "Publish"], + ["46d02f34", "2018-08-06", "refactor(examples): update rstream examples"], + ["378772fb", "2018-08-06", "fix(rstream): add generics for stream()"], + ["ec777c09", "2018-08-03", "Publish"], + ["f7500359", "2018-08-03", "docs: add rootlevel license file"], + [ + "7c54c68f", + "2018-08-03", + "refactor(examples): minor update rstream examples" + ], + [ + "361f8b43", + "2018-08-03", + "refactor(rstream-query): remove obsolete `reset` in addJoin()" + ], + [ + "f9466317", + "2018-08-03", + "refactor(rstream-graph): remove obsolete `reset` in node() factory" + ], + ["32810900", "2018-08-03", "test(rstream): update tests"], + ["e1f4667c", "2018-08-03", "chore(rstream): remove obsolete file"], + [ + "9101e089", + "2018-08-03", + "docs(rstream): add/update docs for all remaining stream constructs" + ], + [ + "e97aac0d", + "2018-08-03", + "feat(rstream): add stream() & subscription() factories, add/update docs" + ], + [ + "55499cc4", + "2018-08-03", + "feat(rstream): update StreamSync to use `reset: false` by default, update docs" + ], + ["2f0235ea", "2018-08-03", "docs: update main readme"], + ["4a9b4cce", "2018-08-03", "Publish"], + [ + "c5afc7b3", + "2018-08-03", + "refactor(examples): simplify rstream-hdom example" + ], + [ + "fdc7630b", + "2018-08-03", + "refactor(iges): only expect ArrayLike points/vectors, minor other updates" + ], + ["9ea44beb", "2018-08-03", "test(transducers): add padLast() tests"], + ["e50fd10e", "2018-08-03", "feat(transducers): add peek() helper fn"], + [ + "ff91987f", + "2018-08-03", + "docs(transducers): add docs & examples for ~50% of all transducers" + ], + [ + "69d25c8c", + "2018-08-02", + "refactor(examples): update transducers-hdom example" + ], + [ + "949a5d46", + "2018-08-02", + "fix(transducers-hdom): support hdom user context" + ], + ["feae35b0", "2018-08-02", "Publish"], + ["8ee1b103", "2018-08-02", "Merge branch 'develop'"], + [ + "698bb60d", + "2018-08-02", + "fix(examples): add missing files (triple-query)" + ], + ["3e70c31a", "2018-08-02", "feat(examples): add transducers-hdom example"], + [ + "7efce7a7", + "2018-08-02", + "feat(transducers-hdom): add new package @thi.ng/transducers-hdom" + ], + [ + "d4aa5ea2", + "2018-08-02", + "refactor(examples): add new types for crypto-chart example" + ], + ["bc26fb33", "2018-08-02", "Publish"], + ["381ad971", "2018-08-02", "Merge branch 'develop'"], + ["4ce80e79", "2018-08-02", "docs(vectors): update readme"], + [ + "befc7785", + "2018-08-02", + "refactor(vectors): update cylindrical coord conversion, add Vec3 methods" + ], + [ + "74f939c3", + "2018-08-02", + "feat(vectors): add toCylindrical3() / fromCylindrical3()" + ], + [ + "3039a35a", + "2018-08-02", + "feat(vectors): make Vec2/3/4 array-like, add IEquiv impls, add tests" + ], + [ + "2a13f28c", + "2018-08-02", + "feat(vectors): add gvec size checks, add IEquiv & Iterable impls" + ], + [ + "d007a8ae", + "2018-08-02", + "docs(examples): update example table (add triple-query)" + ], + ["248150ee", "2018-08-01", "Publish"], + [ + "b1cf171f", + "2018-08-01", + "chore: update make-* scripts, add cloc stats script" + ], + ["748131a3", "2018-08-01", "chore: update .gitignore"], + [ + "cbfd65a3", + "2018-08-01", + "fix(examples): add utf meta to all example html files" + ], + ["1a8ff8a6", "2018-08-01", "refactor(examples): cleanup imports"], + ["4db3fa83", "2018-08-01", "refactor(rstream-query): cleanup imports"], + ["c1690170", "2018-08-01", "refactor(rstream-dot): cleanup imports"], + ["0f7e82ae", "2018-08-01", "refactor(rstream): cleanup imports"], + ["14672731", "2018-08-01", "refactor(hdom): cleanup imports"], + ["e0ce1061", "2018-08-01", "Publish"], + [ + "68f59f21", + "2018-08-01", + "refactor(vectors): add IVec to all vector class wrappers" + ], + [ + "3ca2cbf1", + "2018-08-01", + "refactor(iges): make fill mode optional for addPolyline2d()" + ], + ["2ac23a34", "2018-08-01", "Merge branch 'feature/iges' into develop"], + ["ee24ede1", "2018-08-01", "Merge branch 'feature/ts3' into develop"], + [ + "e7d2675d", + "2018-08-01", + "feat(examples): add triple-query example project" + ], + ["0f01cc36", "2018-08-01", "minor: markdown fixes in various readmes"], + ["542540f0", "2018-08-01", "build(examples): update webpack deps"], + ["2ecd5384", "2018-08-01", "refactor(router): TS3.0 PropertyKey handling"], + [ + "bf2a3074", + "2018-08-01", + "refactor(pointfree): TS3.0 PropertyKey handling" + ], + [ + "38372cc9", + "2018-08-01", + "refactor(interceptors): TS3.0 PropertyKey handling" + ], + [ + "30d65d4b", + "2018-08-01", + "refactor(defmulti): TS3.0 PropertyKey handling" + ], + [ + "2234313c", + "2018-08-01", + "refactor(associative): TS3.0 PropertyKey handling" + ], + ["20478072", "2018-08-01", "refactor(api): TS3.0 PropertyKey handling"], + [ + "c7f72440", + "2018-08-01", + "build: update dev dependencies in all packages & examples" + ], + ["56a1f0eb", "2018-07-30", "Publish"], + [ + "3534274a", + "2018-07-30", + "fix(vectors): get*() return types, refactor using set*()" + ], + ["0ca667a4", "2018-07-30", "Publish"], + [ + "3de5cea4", + "2018-07-30", + "fix(vectors): naming convention, add function overview tables" + ], + ["474f8df5", "2018-07-29", "Merge branch 'develop' into feature/iges"], + ["e82d97a7", "2018-07-29", "docs: update package list main readme"], + ["aef277f8", "2018-07-29", "Publish"], + ["ae1da134", "2018-07-29", "docs(vectors): update readme & package info"], + ["acedfae8", "2018-07-29", "Merge branch 'feature/geom' into develop"], + ["93b268a6", "2018-07-29", "docs(vectors): update readme"], + ["6571b8a3", "2018-07-29", "test(vectors): add gvec tests"], + [ + "d2bdf79e", + "2018-07-29", + "refactor(vector): update eqDelta impls, rename array transformers" + ], + [ + "54b3db2d", + "2018-07-29", + "feat(vectors): update get & copy fns to retain buffer types" + ], + [ + "f99cf3dc", + "2018-07-29", + "refactor(vectors): add gvec default length args" + ], + [ + "5bba592d", + "2018-07-29", + "feat(vectors): add swizzle fns, update/unify fn naming" + ], + [ + "e3c61675", + "2018-07-29", + "feat(vectors): add generic vec fns & class wrapper" + ], + [ + "1f0551d0", + "2018-07-28", + "refactor(vectors): various small fixes/additions (matrices)" + ], + [ + "1ec75e61", + "2018-07-27", + "feat(vectors): re-add matrix class wrappers, update vec classes" + ], + ["29500b6d", "2018-07-26", "build: add babel-minify dev dependency"], + [ + "21b04f06", + "2018-07-26", + "feat(vectors): re-import updated mat44, add orthoNormal3" + ], + ["eb3f66fb", "2018-07-26", "test(vectors): add tests"], + [ + "4fdda6a9", + "2018-07-26", + "feat(vectors): re-import updated mat23/33/44 functions" + ], + ["2a5a744d", "2018-07-25", "fix(vectors): copy/paste mistakes, add tests"], + [ + "e289db2b", + "2018-07-25", + "refactor(vectors): add op22/32, simplify various vec2/3 ops" + ], + ["b59fadfd", "2018-07-25", "feat(vectors): add vec4 ops & class wrapper"], + [ + "35af6a56", + "2018-07-25", + "feat(vectors): add minor/majorAxis(), minor/major2/3" + ], + ["5c52f771", "2018-07-25", "Merge branch 'develop' into feature/geom"], + ["5a3b9988", "2018-07-25", "Publish"], + [ + "a322e001", + "2018-07-25", + "fix(transducers-stats): fix naming of MACD results (#31)" + ], + ["03f94352", "2018-07-25", "Publish"], + ["d967f94e", "2018-07-25", "docs(transducers-stats): update docs & readme"], + [ + "c97cb75c", + "2018-07-25", + "feat(transducers-stats): add BollingerBand value interface" + ], + ["b92aaa58", "2018-07-25", "feat(transducers-stats): add MACD (fixes #31)"], + [ + "d1541539", + "2018-07-25", + "feat(vectors): re-import vector types from old thi.ng/geom TS version" + ], + [ + "f7a084ae", + "2018-07-24", + "feat(iges): add PolylineMode enum, update addPolyline2d()" + ], + ["e349cb6a", "2018-07-23", "docs(transducers): update readmes"], + ["e7772934", "2018-07-21", "Publish"], + [ + "0b0a7ca9", + "2018-07-21", + "feat(transducers-stats): add stochastic oscillator, refactor" + ], + [ + "2953caaa", + "2018-07-21", + "feat(examples): add MA mode dropdown, update crypto-chart dataflow" + ], + [ + "e3def294", + "2018-07-21", + "refactor(examples): switch to WMA plots in crypto-chart demo" + ], + ["fde777d0", "2018-07-21", "docs: update main readme"], + [ + "76dc450d", + "2018-07-21", + "feat(range-coder): re-import @thi.ng/range-coder package from MB2010" + ], + ["8389a2c7", "2018-07-20", "Publish"], + ["7cfb8e5a", "2018-07-20", "minor(rstream): remove obsolete args (pubsub)"], + [ + "a59c5c94", + "2018-07-20", + "perf(rstream): optimize dispatch if only single child" + ], + ["cd751fb4", "2018-07-20", "feat(rstream): add reset option for timeout()"], + [ + "7b10e0c9", + "2018-07-20", + "Merge pull request #30 from andrew8er/feature/rstream-add-timeout" + ], + ["e8009a68", "2018-07-19", "docs(transducers-stats): update readme links"], + ["52ce30c4", "2018-07-19", "docs: update main readme"], + ["7e497439", "2018-07-19", "build(transducers-stats): update package deps"], + ["1de746b2", "2018-07-19", "Merge branch 'feature/tx-stats' into develop"], + ["7df3ce04", "2018-07-19", "feat(transducers-stats): add other xforms"], + [ + "7a5812fb", + "2018-07-19", + "feat(transducers-stats): add @thi.ng/transducers-stats package" + ], + ["1fe612de", "2018-07-19", "docs(transducers): reapply MD fixes"], + ["3a2aa7a6", "2018-07-19", "Merge branch 'master' into develop"], + [ + "78701493", + "2018-07-19", + "feat(examples): update axis ticks, add more symbols, refactor SMAs" + ], + ["08db846b", "2018-07-19", "docs(transducers): update readme"], + ["64de94b5", "2018-07-19", "Publish"], + [ + "9874acec", + "2018-07-19", + "perf(transducers): update movingAverage() xform, add docs" + ], + ["482943c8", "2018-07-18", "docs(transducers): add/update doc strings"], + ["ccc37c67", "2018-07-18", "feat(transducer): add asIterable() helper"], + [ + "092154c7", + "2018-07-18", + "feat(transducers): allow key arrays for rename(), simplify call sites" + ], + [ + "9b07d12a", + "2018-07-18", + "feat(transducers): add juxtR() for multiplexed reductions from same src" + ], + ["aa55973e", "2018-07-17", "feat(rstream): Add a timeout() subscription"], + ["2733684e", "2018-07-16", "Publish"], + [ + "732a0967", + "2018-07-16", + "docs(examples): update readme & dataflow diagram" + ], + [ + "3edbaefc", + "2018-07-16", + "feat(examples): add auto-refresh, add data credits" + ], + [ + "9be20180", + "2018-07-16", + "fix(rstream): emit first value immediately in fromInterval()" + ], + [ + "0508e40a", + "2018-07-16", + "docs(examples): add/update types in rstream-hdom" + ], + [ + "694e6c64", + "2018-07-16", + "feat(examples): improve time labels on crypto-chart" + ], + [ + "3c1c29ac", + "2018-07-16", + "refactor(examples): remove atom usage from rstream-hdom demo, update docs" + ], + [ + "7cd78e03", + "2018-07-15", + "feat(examples): add theme support for crypto chart, update diagram" + ], + ["9ff8d352", "2018-07-15", "docs(examples): update list of demos"], + ["f1e3d081", "2018-07-15", "docs(examples): add dataflow graph to readme"], + [ + "6989b8db", + "2018-07-15", + "docs(examples): temp fix live demo link in readme" + ], + ["9b26c4b4", "2018-07-15", "Publish"], + [ + "24829454", + "2018-07-15", + "fix(resolve-map): add support for alt ES6 destructure form `{a: b}`" + ], + [ + "08a7600a", + "2018-07-15", + "build(hdom-components): update @types/webgl dep" + ], + ["2d7e7cdf", "2018-07-15", "build: update dev dependencies"], + [ + "c95a3701", + "2018-07-15", + "docs(example): add API ref link, update readme" + ], + ["a8487edc", "2018-07-15", "feat(examples): add crypto chart example"], + ["20b028c6", "2018-07-13", "chore: update make-module script"], + ["4f19be90", "2018-07-13", "docs: fix various markdown issues"], + ["973f1a42", "2018-07-13", "Publish"], + [ + "ee48a94c", + "2018-07-13", + "fix(rstream-gestures): touchevent check in safari" + ], + ["d636876d", "2018-07-13", "Publish"], + [ + "976a6d85", + "2018-07-13", + "refactor(iges): update formatParams(), optimize iges file size" + ], + ["81223dca", "2018-07-13", "feat(transducers): add wordWrap() xform"], + ["634de84d", "2018-07-12", "docs: add @thi.ng/iges to package list"], + ["3935d9a5", "2018-07-12", "Publish"], + ["eb6dfa9b", "2018-07-12", "build(iges): update package info"], + ["b841269a", "2018-07-12", "Merge branch 'feature/iges' into develop"], + [ + "087f3480", + "2018-07-12", + "refactor(iges): emit compressed globals section" + ], + [ + "7f1b2d46", + "2018-07-12", + "feat(iges): re-import & update IGES exporter (via MBP2010)" + ], + ["d061c7d0", "2018-07-11", "Publish"], + [ + "73c7b8ac", + "2018-07-11", + "perf(interceptors): update valueSetter()/valueUpdater()" + ], + [ + "ad4caad9", + "2018-07-11", + "feat(paths): add updater(), refactor updateIn(), update readme" + ], + ["fd23a34e", "2018-07-11", "docs(sax): minor update readme"], + [ + "ef161341", + "2018-07-11", + "docs(sax): add tests & DOM parsing example to readme" + ], + ["8cd279a8", "2018-07-10", "Publish"], + [ + "126103b3", + "2018-07-10", + "fix(hdom): always update \"value\" attrib last in diffAttributes()" + ], + [ + "fcfd4bf8", + "2018-07-09", + "docs(hiccup-css): fix #26, add pseudo-class & attrib selector docs" + ], + ["e4b62d8b", "2018-07-09", "Publish"], + ["22890961", "2018-07-09", "docs(rstream): add AUTHORS.md"], + [ + "d485bfa5", + "2018-07-09", + "Merge pull request #28 from andrew8er/pr/rstream-fix-transduce" + ], + [ + "03543ee9", + "2018-07-09", + "fix(transducers): revert mean() from regression introduced in 095e6ef" + ], + [ + "9513ddd8", + "2018-07-09", + "Merge branch 'master' into pr/rstream-fix-transduce" + ], + [ + "5ec61406", + "2018-07-09", + "build(examples): add missing html/webpack config for rstream-hdom demo" + ], + ["8321660c", "2018-07-09", "feat(examples): add rstream-hdom example"], + [ + "7f2d5dd2", + "2018-07-09", + "fix(rstream): Fix potential reference error in transduce()" + ], + ["84f23d35", "2018-07-09", "Publish"], + [ + "095e6ef3", + "2018-07-09", + "refactor(transducers): add reducer() helper, update existing reducers" + ], + ["0430c769", "2018-07-04", "Publish"], + ["dbbeffb3", "2018-07-04", "docs(paths): update docs & readme"], + ["c7f2f92d", "2018-07-04", "test(paths): add/update tests"], + [ + "3d9d6200", + "2018-07-04", + "feat(paths): update setter() to support arrays, optimize (~2.5x faster)" + ], + ["7fb407c0", "2018-07-04", "Publish"], + ["36165be8", "2018-07-04", "minor(rstream-graph): formatting"], + [ + "de17340a", + "2018-07-04", + "feat(rstream-gestures): add event & preventDefault opts, update docs" + ], + [ + "d5ac2643", + "2018-07-04", + "feat(rstream): add support for event listener opts in `fromEvent()`" + ], + ["9ffa346d", "2018-07-03", "Publish"], + [ + "677c7cc0", + "2018-07-03", + "feat(transducers): add ensureArray(), refactor reverse()" + ], + [ + "17d412af", + "2018-07-03", + "test(rstream-graph): increase timeout to avoid travis errors" + ], + ["a5942022", "2018-07-03", "Publish"], + ["33f0d197", "2018-07-03", "fix(associative): minor SortedSet fixes"], + [ + "1e185011", + "2018-06-29", + "Merge pull request #24 from andrew8er/pr/rstream-transduce-unsubscibe-on-error" + ], + [ + "8c7d9376", + "2018-06-28", + "fix(rstream): unsubscribe on error in transduce()" + ], + ["576f1da3", "2018-06-25", "Publish"], + ["c4fad707", "2018-06-25", "fix(rstream-graph): individual node outputs"], + ["eb2015df", "2018-06-21", "Publish"], + [ + "d0b1e5c4", + "2018-06-21", + "feat(rstream-graph): add stop(), fix `const` inputs, update docs/readme" + ], + [ + "cc5b7367", + "2018-06-21", + "feat(rstream): option to avoid auto-closing `fromInterval()`, add docs" + ], + [ + "4611e8e0", + "2018-06-21", + "chore: update repo & homepage fields in all packages" + ], + ["2223bded", "2018-06-21", "docs: fix package links in readmes"], + ["a3b245c8", "2018-06-20", "Publish"], + ["cd863214", "2018-06-20", "docs(transducers-fsm): fix readme (example)"], + ["60dca8ee", "2018-06-20", "Publish"], + [ + "882f3949", + "2018-06-20", + "feat(sax): add children & trim opts, add CDATA support" + ], + ["6cf0d915", "2018-06-19", "Publish"], + ["eed50b81", "2018-06-19", "docs: update main readme"], + [ + "343e07f1", + "2018-06-19", + "refactor(sax): wrap FSM handler results as arrays, update ELEM_SINGLE" + ], + [ + "a9ca1351", + "2018-06-19", + "feat(transducers-fsm): support multiple results, add tests, update readme" + ], + ["8959b938", "2018-06-19", "docs(sax): update readme (add SVG example)"], + [ + "bbd3b4ba", + "2018-06-19", + "docs(transducers-fsm): update readme, whitespace" + ], + [ + "bc261e57", + "2018-06-19", + "feat(transducers): add matchFirst()/matchLast() xforms, update readme" + ], + [ + "e824b6bb", + "2018-06-19", + "feat(sax): add support for escape seqs, minor optimizations" + ], + ["4e7fca56", "2018-06-18", "chore: update make-module script"], + [ + "30811ce5", + "2018-06-18", + "docs(transducers-fsm): update package keywords" + ], + ["cc11ade5", "2018-06-18", "Publish"], + ["0e4662d1", "2018-06-18", "fix(sax): correct docs in readme"], + ["278a86c2", "2018-06-18", "Publish"], + ["b5b26300", "2018-06-18", "docs: update package docs (bench / dot)"], + ["42e22921", "2018-06-18", "docs: update readmes (add/fix links)"], + ["10e807c5", "2018-06-18", "Merge branch 'feature/sax' into develop"], + ["3589e155", "2018-06-18", "fix(checks): isOdd() for negative values"], + ["23b9cc2e", "2018-06-18", "docs(transducers-fsm): update docs & readme"], + [ + "0f2fcdff", + "2018-06-18", + "feat(sax): add entity support, update result format, update states" + ], + [ + "56deb455", + "2018-06-17", + "refactor(sax): remove extracted FSM transducer & types, update readme" + ], + ["7c3c2903", "2018-06-17", "feat(transducers-fsm): inital import"], + [ + "64f23789", + "2018-06-17", + "feat(sax): update error handling, add parse() wrapper, add FSMOpts" + ], + [ + "a4766a54", + "2018-06-17", + "feat(sax): add support for proc & doctype elements, update `end` results" + ], + [ + "3dea9549", + "2018-06-17", + "feat(sax): emit child elements with `end` results, support comments" + ], + ["74f7d02e", "2018-06-17", "refactor(sax): extract parser sub-states"], + ["dce189f9", "2018-06-17", "feat(sax): initial import"], + ["f13138a4", "2018-06-08", "Publish"], + ["e1a8c915", "2018-06-08", "docs(hiccup-css): update readme"], + [ + "cffab49d", + "2018-06-08", + "Merge branch 'feature/hcss-inject' into develop" + ], + ["8d6e6c86", "2018-06-08", "feat(hiccup-css): add injectStyleSheet()"], + ["244bf213", "2018-06-08", "feat(hiccup-css): add class scoping support"], + ["b358c1a7", "2018-06-07", "Publish"], + ["e0535b4c", "2018-06-07", "docs(resolve-map): update readme"], + ["0beaffb1", "2018-06-07", "docs(resolve-map): update readme"], + [ + "0fc2305e", + "2018-06-07", + "fix(rstream-graph): rename `resolveMap` => `resolve` due to upstream changes" + ], + [ + "35deb3b8", + "2018-06-07", + "Merge branch 'feature/resolve-auto' into develop" + ], + [ + "e61c3b59", + "2018-06-07", + "feat(resolve-map): add cycle detection, fix edge cases" + ], + [ + "57f1ed5f", + "2018-06-06", + "feat(resolve-map): add ES6 destructuring shorthands for function vals" + ], + ["93b40b78", "2018-06-06", "Publish"], + ["720b1f18", "2018-06-06", "docs(rstream-graph): update api docs & readme"], + [ + "576668e3", + "2018-06-06", + "Merge branch 'feature/rs-graph-outputs' into develop" + ], + [ + "48c796f5", + "2018-06-06", + "fix(resolve-map): also use _resolvePath for plain lookups, optimize" + ], + [ + "dd2cbd44", + "2018-06-06", + "refactor(examples): update rstream-graph examples" + ], + [ + "1a09b61e", + "2018-06-06", + "minor(rstream-graph): minor fix exported types" + ], + ["558f4f8c", "2018-06-06", "fix(resolve-map): add private _resolveDeep"], + [ + "f2e0df25", + "2018-06-06", + "feat(rstream-graph): add full/optional support for multiple node outputs" + ], + [ + "dc6e0acc", + "2018-06-06", + "refactor(resolve-map): export absPath(), add LookupPath type alias" + ], + [ + "be21c4c2", + "2018-06-06", + "feat(rstream-graph): update NodeOutput, support multiple handlers" + ], + ["de48e134", "2018-06-05", "build: add yarn bootstrap"], + ["67c7e17d", "2018-05-30", "Publish"], + ["45785229", "2018-05-30", "Merge branch 'develop'"], + ["b267c999", "2018-05-30", "Merge branch 'feature/command' into develop"], + [ + "7ac6227d", + "2018-05-30", + "feat(atom): provide prev/curr states to history event listeners" + ], + ["94225989", "2018-05-29", "feat(atom): add INotify impl for History"], + ["44998ca0", "2018-05-20", "Publish"], + [ + "ad56421a", + "2018-05-20", + "refactor(rstream-graph): allow fn vals in GraphSpec too, update test" + ], + ["b7560989", "2018-05-20", "Publish"], + [ + "0818498a", + "2018-05-20", + "feat(rstream-graph): update types, initGraph(), node1(), add tests" + ], + ["c880a633", "2018-05-20", "Publish"], + [ + "773829e4", + "2018-05-20", + "minor(rstream): add alt subscribe() overrides (disabled)" + ], + [ + "846aaf97", + "2018-05-20", + "feat(rstream): re-implement bisect() using PubSub, update tests" + ], + [ + "cbc600e7", + "2018-05-20", + "fix(rstream): minor update PubSub topic fn return type" + ], + [ + "23fdd398", + "2018-05-19", + "feat(rstream): update resolve(), update subscribe() overrides" + ], + ["0e103c50", "2018-05-16", "Publish"], + ["0c292503", "2018-05-16", "feat(examples): add input clearing"], + ["7e1028a2", "2018-05-15", "fix(examples): tab handling in fuzzy dropdown"], + [ + "2482b16e", + "2018-05-15", + "fix(hdom): delay init() lifecycle call to ensure children are available" + ], + ["81b596f6", "2018-05-15", "refactor(examples): update highlightMatches()"], + ["db58ebc7", "2018-05-15", "feat(examples): add fuzzy match highlighting"], + [ + "09d531a7", + "2018-05-15", + "feat(exmples): add hdom-dropdown-fuzzy (unfinished)" + ], + ["577bdde8", "2018-05-15", "docs: add discord badge"], + ["7349ef43", "2018-05-15", "test(hdom): fix/update lifecycle test"], + ["5595cc2a", "2018-05-14", "Publish"], + ["4dd97abd", "2018-05-14", "docs: update readmes (compare / equiv)"], + ["4b94a1b9", "2018-05-14", "docs(api): update doc strings"], + ["f7b6b342", "2018-05-14", "Publish"], + ["191bc981", "2018-05-14", "chore: update package keywords"], + [ + "ade96f86", + "2018-05-14", + "fix(hdom): component obj lifecycle method thisArg handling" + ], + ["c54f7357", "2018-05-14", "test(transducers): remove obsolete test file"], + [ + "e238541f", + "2018-05-14", + "refactor(transducers): replace wrapBoth/Left/Right w/ wrap()" + ], + ["fbba5d27", "2018-05-14", "Publish"], + ["d59b0af3", "2018-05-14", "docs(transducers): update readme"], + ["37362dd2", "2018-05-14", "test(transducers): add fuzzy tests"], + [ + "fc6acd16", + "2018-05-14", + "chore(transducers): update deps, readme, re-exports" + ], + ["2bebba28", "2018-05-14", "feat(transducers): add filterFuzzy() xform"], + ["306625df", "2018-05-14", "feat(transducers): add wrap*() iterators"], + ["9efa5762", "2018-05-14", "docs(resolve-map): update readme"], + ["4591d5d5", "2018-05-14", "minor(examples): update dropdown html"], + ["2076d25b", "2018-05-14", "docs(resolve-map): add readme example"], + ["ea185897", "2018-05-14", "Publish"], + ["6661fc3a", "2018-05-14", "feat(examples): add hdom-dropdown example"], + [ + "5e729701", + "2018-05-14", + "feat(interceptors): update dispatch() / dispatchNow()" + ], + ["644d1ffe", "2018-05-13", "docs(hdom): update readme example"], + ["5d6e762d", "2018-05-13", "Publish"], + ["609d66dd", "2018-05-13", "docs(hdom): update readme"], + [ + "01f0fa56", + "2018-05-13", + "Merge branch 'feature/hiccup-context' into develop" + ], + ["f8fe5001", "2018-05-13", "docs(hiccup): update readme"], + ["67015ce9", "2018-05-13", "refactor(examples): update svg examples"], + [ + "dc775404", + "2018-05-13", + "docs(hiccup-svg): resolve #19, update readme, add invocation notes" + ], + [ + "373701b0", + "2018-05-13", + "feat(pointfree): add execjs for host calls, update readme" + ], + ["396faec8", "2018-05-13", "refactor(hiccup-svg): rename svgdoc => svg"], + ["765e7302", "2018-05-13", "docs(hiccup): update readme"], + ["b1cb7d9a", "2018-05-12", "perf(hiccup): update css()"], + [ + "feca5666", + "2018-05-12", + "refactor(hiccup): fix #19, add support for context object" + ], + ["4b8caec9", "2018-05-12", "docs: update main readme"], + ["2d4fd682", "2018-05-12", "docs: update all readme's (add deps links)"], + ["6ff48a41", "2018-05-12", "docs(defmulti): update readme"], + ["8b2e67ce", "2018-05-12", "Publish"], + ["41ce19c5", "2018-05-12", "test(csp): update IEnabled test impl"], + ["67f0e546", "2018-05-12", "refactor(dcons): update pop()"], + ["9b388604", "2018-05-11", "refactor(api): update interfaces, add docs"], + ["04b66b2f", "2018-05-11", "Publish"], + [ + "fbb721f8", + "2018-05-11", + "docs: remove dep graph from main readme, update package" + ], + [ + "eeed25ed", + "2018-05-11", + "feat(defmulti): add generics, update docs & readme" + ], + ["011519d7", "2018-05-11", "docs: update dep graph"], + ["2fd3d822", "2018-05-11", "Publish"], + [ + "126ecf36", + "2018-05-11", + "feat(defmulti): add defmultiN(), update readme, add tests" + ], + ["5391d986", "2018-05-11", "fix(pointfree): minor update error handling"], + [ + "5227dd1f", + "2018-05-11", + "refactor(errors): update return types (`never`)" + ], + ["790d0130", "2018-05-11", "test(defmulti): add tests"], + ["8c74a99d", "2018-05-10", "docs: update dep graph"], + ["08cef30e", "2018-05-10", "Publish"], + ["304669de", "2018-05-10", "Merge branch 'feature/defmulti' into develop"], + ["7ae718c5", "2018-05-10", "docs: update main readme"], + ["edc66bf2", "2018-05-10", "feat(defmulti): add @thi.ng/defmulti package"], + ["a818acd4", "2018-05-10", "docs(transducers): update readme"], + ["e6f2972b", "2018-05-10", "docs: update dep graph"], + ["051a05db", "2018-05-10", "Publish"], + ["55f29b8f", "2018-05-10", "feat(transducers): add normRange() iterator"], + ["bd1fba33", "2018-05-10", "docs: update dep graph"], + ["c72e81c3", "2018-05-10", "Publish"], + ["7af3ef86", "2018-05-10", "docs: update readmes"], + ["6349b918", "2018-05-10", "Merge branch 'feature/api-split' into develop"], + ["fc7c5c70", "2018-05-10", "refactor(examples): update imports"], + ["bdf5bf06", "2018-05-10", "refactor(examples): update imports"], + [ + "bc456364", + "2018-05-10", + "refactor: update deps & imports in all packages due to @thi.ng/api split" + ], + [ + "f051ca3c", + "2018-05-10", + "refactor(api): remove obsolete files from package" + ], + ["9466d4b2", "2018-05-10", "feat(bench): add new package @thi.ng/bench"], + [ + "e4a87c41", + "2018-05-10", + "feat(compare): add new package @thi.ng/compare" + ], + ["1e97856f", "2018-05-10", "feat(errors): add new package @thi.ng/errors"], + ["6d12ae08", "2018-05-10", "feat(equiv): add new package @thi.ng/equiv"], + ["aba06b0c", "2018-05-10", "docs(examples): fix link"], + ["34903210", "2018-05-10", "feat(examples): add icon button"], + ["a49e30cf", "2018-05-10", "Merge branch 'master' into develop"], + ["d5f1037a", "2018-05-10", "fix(examples): fix #22, update router-basics"], + ["7a8e43ea", "2018-05-10", "docs(examples): update readmes"], + ["cea77deb", "2018-05-09", "feat(examples): add hdom-theme-adr-0003 demo"], + ["5af437c1", "2018-05-09", "docs(hdom-components): add ADR-0003"], + [ + "b4476cb9", + "2018-05-09", + "refactor(hdom-components): add ButtonGroup type alias" + ], + ["1dd6e9a2", "2018-05-09", "docs: update dep graph"], + ["5da6c578", "2018-05-09", "Publish"], + ["6e7599ac", "2018-05-09", "docs(resolve-map): update/fix doc strings"], + ["5d2a3fe8", "2018-05-09", "refactor(resolve-map): fix #21"], + [ + "68ca46d2", + "2018-05-09", + "feat(dgraph): add leaves() & roots() iterators, update sort()" + ], + ["91a2b748", "2018-05-09", "docs: add @thi.ng/dot to main readme"], + ["b5132b3d", "2018-05-09", "docs: update dep graph"], + ["850716bc", "2018-05-09", "Publish"], + [ + "d8d9435e", + "2018-05-09", + "build: update deps in all packages, examples & scripts" + ], + [ + "68ea0864", + "2018-05-09", + "fix(hdom): native boolean attrib handling (e.g. \"checked\")" + ], + ["ede76916", "2018-05-09", "docs(hdom-components): update readme"], + [ + "053c8c6f", + "2018-05-09", + "feat(rstream-gestures): add zoom smooth config option, update readme" + ], + ["b52c503e", "2018-05-09", "docs: update readme's"], + [ + "5991be61", + "2018-05-09", + "feat(associative): add new functions, update arg & return types" + ], + ["c0950d65", "2018-05-08", "feat(hdom-components): add buttonGroup"], + ["5416887a", "2018-05-07", "doc(hdom-components): update ADR-0002"], + ["c0fef3d3", "2018-05-07", " doc(hdom-components): update ADR-0002"], + [ + "a9574a0b", + "2018-05-07", + "feat(associative): add mapKeysObj() / mapKeysMap()" + ], + [ + "cefb1994", + "2018-05-07", + "refactor(hdom-components): remove CanvasOpts, update re-exports" + ], + [ + "4f8e7bab", + "2018-05-07", + "refactor(hdom-components): update notification & appLink comps" + ], + [ + "a11803c4", + "2018-05-07", + "feat(hdom-components): add notification component" + ], + ["ec41eb9c", "2018-05-07", "refactor(hdom-components): update button args"], + ["5e815256", "2018-05-05", "doc(hdom-components): add ADRs"], + ["cef3c6a8", "2018-05-05", "feat(hdom-components): add button component"], + [ + "334a4d24", + "2018-05-04", + "refactor(hdom-components): make pager more customizable" + ], + [ + "23b64517", + "2018-05-04", + "refactor(dot): replace NodeShape enum, minor other refactoring, add example" + ], + ["500dfa3b", "2018-05-03", "feat(dot): initial import @thi.ng/dot"], + ["f9a2daf2", "2018-05-02", "feat(hdom-components): add title component"], + [ + "6748515b", + "2018-05-02", + "feat(interceptors): add dispatch/dispatchNow() helper interceptors" + ], + ["5a6ce274", "2018-05-02", "build(examples): update packages"], + ["cbfa44b7", "2018-05-02", "build: update dev deps in all packages"], + [ + "efb288df", + "2018-05-01", + "feat(hdom-components): add pager component, add @thi.ng/iterators dep" + ], + ["b2806236", "2018-05-01", "docs: update dep graph"], + ["212e5013", "2018-05-01", "Publish"], + ["146fad62", "2018-05-01", "build: update upload-examples script"], + ["593654a7", "2018-05-01", "docs: update dep graph"], + ["a93cb98b", "2018-05-01", "fix(hdom): boolean attrib reset/removal"], + ["698438a5", "2018-04-30", "docs: update dep graph"], + ["f6e944c6", "2018-04-30", "Publish"], + ["7a543a50", "2018-04-30", "perf(hdom): only build linear diff edit log"], + [ + "431527a5", + "2018-04-30", + "perf(diff): add option to only build linear edit log" + ], + ["12b8dcb3", "2018-04-30", "fix(examples): CA dropdown"], + ["c2a5bcb3", "2018-04-29", "docs: update dep graph"], + ["5888f224", "2018-04-29", "Publish"], + ["95c57ec3", "2018-04-29", "Merge branch 'hotfix/arraylike'"], + ["491a6f85", "2018-04-29", "revert: b86d5b2"], + [ + "31ec3af4", + "2018-04-29", + "perf(hdom): update event handling in diffAttributes()" + ], + ["a7c5eafc", "2018-04-29", "refactor(examples): update todo list"], + ["b86d5b25", "2018-04-29", "refactor(examples): update hdom-basics"], + [ + "7fdf1721", + "2018-04-29", + "perf(api): major speedup equivObject(), update equivSet()" + ], + ["76920f75", "2018-04-29", "fix(checks): return type isMap()"], + [ + "ac60404e", + "2018-04-29", + "fix(checks): exclude functions in isArrayLike()" + ], + ["a6dc02e4", "2018-04-28", "docs: update dep graph"], + ["048632a4", "2018-04-28", "Publish"], + [ + "c4d8851d", + "2018-04-28", + "fix(interceptors): multiple sidefx value assignment" + ], + [ + "2aaa134a", + "2018-04-28", + "refactor(examples): minor update rstream-grid, add missing files" + ], + ["7c3faed2", "2018-04-28", "docs(interceptors): update readme"], + ["cba30e36", "2018-04-28", "docs(examples): update readme"], + ["1c469afa", "2018-04-28", "minor(examples): update rstream-grid sidebar"], + ["115dff2b", "2018-04-28", "docs: update dep graph"], + ["df55f40b", "2018-04-28", "Publish"], + [ + "661e34f5", + "2018-04-28", + "feat(examples): add rstream-grid dataflow demo" + ], + ["f4a095a5", "2018-04-28", "feat(interceptors): add dispatchLater()"], + ["f84fe450", "2018-04-27", "docs: update dep graph"], + ["8f5b3d91", "2018-04-27", "Publish"], + [ + "6f95bcb3", + "2018-04-27", + "feat(rstream-query): add obj->triple converter, update readme & example" + ], + ["d03520d8", "2018-04-26", "docs: update dep graph"], + ["085a81d9", "2018-04-26", "Publish"], + ["af6c807e", "2018-04-26", "style: reformat/sort imports in all packages"], + [ + "d36a5eaf", + "2018-04-26", + "refactor(rstream-query): simplify case selection in addPatternQuery()" + ], + ["2ab5af5d", "2018-04-26", "build: update/add upload scripts"], + ["5c048615", "2018-04-26", "docs: update dep graph"], + ["7fa54577", "2018-04-26", "Publish"], + [ + "ced200af", + "2018-04-26", + "docs(rstream-query): update readme, diag, add example" + ], + [ + "75f2af2e", + "2018-04-26", + "perf(rstream-query): optimize pattern queries, fix bindVars()" + ], + ["6bcd5dd4", "2018-04-26", "docs: update dep graph"], + ["6d261caa", "2018-04-26", "Publish"], + ["f5735a66", "2018-04-26", "Merge branch 'feature/rs-query' into develop"], + [ + "d093a5c8", + "2018-04-26", + "feat(rstream-query): add query spec types, addQueryFromSpec(), dedupe xforms" + ], + [ + "2ac8bff3", + "2018-04-26", + "feat(api): support more types in equiv(), add tests" + ], + ["a865f62b", "2018-04-26", "feat(checks): add date, map, nan, set checks"], + [ + "d057d954", + "2018-04-26", + "feat(rstream-dot): add option to include stream values in diag" + ], + [ + "76f00c36", + "2018-04-26", + "refactor(rstream): update ISubscribable (add IDeref parent)" + ], + [ + "679c4e08", + "2018-04-26", + "feat(rstream-query): add path query, multi-joins, pattern query reuse" + ], + [ + "9b5c58ac", + "2018-04-25", + "feat(rstream-query): rename TripleStore methods, use Set-like API" + ], + [ + "443ff8f6", + "2018-04-25", + "feat(rstream-query): add removeTriple(), simplify wildcard subqueries" + ], + [ + "c5f36a2d", + "2018-04-25", + "feat(rstream-query): add addQueryJoin(), add type aliases, update tests" + ], + ["7d927144", "2018-04-25", "docs: update dep graph"], + ["6215335f", "2018-04-25", "Publish"], + ["888f4e56", "2018-04-25", "build: update package keywords"], + ["cf388ddb", "2018-04-25", "docs: update rstream-* readmes"], + ["28cf39f9", "2018-04-25", "build: temporarily force node v9 for travis"], + ["72aa848a", "2018-04-25", "docs: update dep graph"], + ["a3e0cf82", "2018-04-25", "Publish"], + ["cc286e12", "2018-04-25", "fix(rstream): minor fix StreamSync.addAll()"], + ["fa36f989", "2018-04-25", "docs: update main readme"], + ["60bd67a4", "2018-04-25", "docs: update dep graph"], + ["8fc5fb40", "2018-04-25", "Publish"], + ["2f3bdaea", "2018-04-25", "build: update make-module script"], + [ + "b121c476", + "2018-04-25", + "refactor(rstream-query): rename types, update readme" + ], + ["97a6e945", "2018-04-24", "docs: update various readmes"], + ["781ae217", "2018-04-24", "test(rstream-query): add query tests"], + [ + "d9b845e0", + "2018-04-24", + "feat(rstream-query): add param queries w/ variables, update addPatternQuery" + ], + ["6368cd2d", "2018-04-24", "docs(rstream-dot): update readme, add diagram"], + [ + "3135da20", + "2018-04-24", + "docs(examples): update rs-dlow diagram & readme" + ], + [ + "a68eca0b", + "2018-04-24", + "feat(rstream-query): add IToDot impl for graphviz conversion/viz" + ], + [ + "7ffaa615", + "2018-04-24", + "feat(rstream-dot): add xform edge labels, extract types to api.ts" + ], + ["32fb7ff9", "2018-04-24", "docs(rstream-graph): update readme"], + [ + "2b9a8883", + "2018-04-24", + "refactor(rstream-graph): extract ensureInputs(), update docs" + ], + [ + "e11b9a80", + "2018-04-24", + "refactor(examples): update rstream-dataflow to use new specs" + ], + [ + "d564e109", + "2018-04-24", + "refactor(rstream-graph): update node input specs & node factories" + ], + [ + "3408c137", + "2018-04-24", + "feat(rstream-gestures): allows partial opts, add ID option" + ], + [ + "b3928174", + "2018-04-24", + "perf(rstream): support (re)named StreamSync inputs" + ], + [ + "66ec92fb", + "2018-04-24", + "feat(rstream-query): update index & sub-query caching/reuse" + ], + [ + "d35b5ff1", + "2018-04-24", + "feat(examples): add graphviz DOT output for rstream-dataflow" + ], + [ + "704025a9", + "2018-04-24", + "feat(rstream-dot): support multiple roots in walk()" + ], + [ + "0153903d", + "2018-04-24", + "feat(rstream-graph): add IDs for all generated nodes, rename factory type" + ], + [ + "e72478ab", + "2018-04-24", + "feat(rstream-dot): initial import @thi.ng/rstream-dot package" + ], + [ + "33f55b3e", + "2018-04-24", + "feat(rstream): add owner meta data & IDs for merge/sync inputs" + ], + ["16fabb8c", "2018-04-23", "refactor(rstream-query): simplify addQuery()"], + [ + "a4aa4cb3", + "2018-04-23", + "refactor(rstream-query): simplify query handling, optimize addFact()" + ], + ["ef3903e4", "2018-04-23", "feat(rstream-query): initial import"], + ["c73b0be9", "2018-04-22", "docs: update dep graph"], + ["d4423f2c", "2018-04-22", "Publish"], + ["03cee0fa", "2018-04-22", "build(heaps): update package desc"], + [ + "aa78d77e", + "2018-04-22", + "fix(cache): TLRUCache.get(), add tests, update package" + ], + ["7d38e5b0", "2018-04-22", "test(cache): add tests"], + [ + "9d53ae33", + "2018-04-22", + "feat(cache): add TLRUCache.prune(), fix ensureSize()" + ], + ["fa67252c", "2018-04-22", "docs: update dep graph"], + ["23e36a10", "2018-04-22", "Publish"], + ["944aaf6d", "2018-04-22", "test(heaps): add tests"], + ["fccb3af1", "2018-04-22", "feat(heaps): iterator now returns min() seq"], + [ + "58945727", + "2018-04-22", + "fix(heaps): add DHeap ICopy/IEmpty impls, fix return types" + ], + [ + "c4bbee0a", + "2018-04-22", + "feat(heaps): add min/max(), update heapify() and percolate methods" + ], + ["34996f23", "2018-04-22", "docs: update package list main readme"], + ["d6e175db", "2018-04-22", "docs: update dep graph"], + ["17ccbb1f", "2018-04-22", "Publish"], + ["05a68dbe", "2018-04-22", "Merge branch 'feature/lru' into develop"], + ["b83c0300", "2018-04-22", "minor(cache): cleanup"], + [ + "ab4abf55", + "2018-04-22", + "refactor(heaps): major update / simplify, fix DHeap, add accessors" + ], + ["24113b27", "2018-04-21", "docs(cache): update readme"], + ["574b5d96", "2018-04-21", "feat(cache): add TLRUCache"], + [ + "c4a9c074", + "2018-04-21", + "fix(cache): recompute size in LRUCache.delete(), extract removeEntry()" + ], + ["0ea0847d", "2018-04-21", "feat(heaps): import @thi.ng/heaps package"], + [ + "26c4cfd0", + "2018-04-21", + "feat(cache): add MRUCache, update package & readme" + ], + [ + "00ca831f", + "2018-04-21", + "refactor(cache): make LRU ops O(1), update/remove (some) interfaces" + ], + ["19f7e761", "2018-04-21", "feat(dcons): add asHead()/asTail()"], + ["3947419c", "2018-04-21", "fix(cache): don't insert new val if > maxsize"], + ["1c9d73f5", "2018-04-21", "docs(cache): update readme"], + [ + "d37a91eb", + "2018-04-21", + "refactor(cache): update/extend ICache & LRUCache, update readme" + ], + [ + "7bbbfa88", + "2018-04-20", + "feat(cache): initial import @thi.ng/cache package" + ], + ["dab48115", "2018-04-20", "docs: update dep graph"], + ["ff5705d4", "2018-04-20", "Publish"], + ["a335a66e", "2018-04-20", "docs(rstream): update readme"], + [ + "ba10907c", + "2018-04-20", + "feat(rstream): allow arbitrary PubSub topic vals, add @thi.ng/associative dep" + ], + [ + "bb11ddfb", + "2018-04-20", + "fix(associative): allow partial options arg for EquivMap ctor" + ], + [ + "27a098d7", + "2018-04-20", + "feat(rstream): add PubSub, add ISubscribableSubscriber, remove cache()" + ], + ["40903ea2", "2018-04-19", "docs: update dep graph"], + ["e0e95587", "2018-04-19", "Publish"], + ["d40f3a82", "2018-04-19", "docs: update dep graph"], + ["f77b443d", "2018-04-19", "Publish"], + [ + "87e3b488", + "2018-04-19", + "feat(interceptors): add EV_TOGGLE_VALUE handler, update EV_UNDO/REDO" + ], + ["920a3406", "2018-04-19", "docs(hdom): update readme"], + ["a2320ff2", "2018-04-18", "docs(paths): update readme"], + ["e0b41d81", "2018-04-18", "docs: update dep graph"], + ["59806881", "2018-04-18", "Publish"], + ["b7dff0ea", "2018-04-18", "fix(rstream-graph): import path"], + ["6fcc2358", "2018-04-18", "docs: update dep graph"], + ["adc2fb4a", "2018-04-18", "Publish"], + [ + "3b7c9d97", + "2018-04-18", + "fix(transducers): add generics for compR(), fix types in mapNth()" + ], + [ + "4c014b18", + "2018-04-18", + "Merge pull request #17 from andrew8er/pr/compr-types" + ], + ["c26fed40", "2018-04-18", "docs: update dep graph"], + ["88283db1", "2018-04-18", "Publish"], + ["3087776e", "2018-04-18", "fix(rstream-log): ID handling in Logger ctor"], + ["08af60af", "2018-04-18", "refactor(rstream-log): minor update matchID()"], + ["de474933", "2018-04-18", "docs(rstream-log): fix typo"], + ["0de3d200", "2018-04-18", "docs(examples): add undo info (svg-waveform)"], + ["c67607b7", "2018-04-18", "build(examples): update dev deps"], + ["bb60cb9f", "2018-04-18", "build: update dev deps"], + ["b8bb801a", "2018-04-17", "docs: update dep graph"], + ["7e585e2b", "2018-04-17", "Publish"], + [ + "8f3a3d10", + "2018-04-17", + "feat(paths): add setInMany() and mutInMany(), add @thi.ng/api dependency" + ], + ["78b998cb", "2018-04-17", "docs: update dep graph"], + ["fbe15446", "2018-04-17", "Publish"], + [ + "2e32c3b9", + "2018-04-17", + "feat(examples): add instrumentation to router-basics demo" + ], + [ + "1a6ac54d", + "2018-04-17", + "feat(interceptors): add event handler instrumentation" + ], + ["5107dcad", "2018-04-17", "docs: update dep graph"], + ["e5185cf2", "2018-04-17", "Publish"], + [ + "d7ff997b", + "2018-04-17", + "fix(interceptors): filter out undefined sidefx vals" + ], + [ + "de89f00d", + "2018-04-17", + "fix(transducers): Provide argument types for compR() and deepTransform()" + ], + ["a9a7bfae", "2018-04-16", "docs: update dep graph"], + ["b523e9ef", "2018-04-16", "Publish"], + [ + "5ddb19c6", + "2018-04-16", + "feat(rstream-graph): add addNode()/removeNode()" + ], + [ + "8bcc2870", + "2018-04-16", + "feat(rstream): add StreamMerge/Sync.removeID() & removeAllIDs()" + ], + [ + "a379d12d", + "2018-04-16", + "feat(resolve-map): support relative parent refs, update tests/readme" + ], + ["e643e7fe", "2018-04-16", "docs: update dep graph"], + ["df039db1", "2018-04-16", "Publish"], + [ + "144f2684", + "2018-04-16", + "Merge branch 'feature/rm-refactor' into develop" + ], + [ + "6992e82b", + "2018-04-16", + "feat(resolve-map): resolve each ref only once, re-use resolved results" + ], + ["4c1bd85c", "2018-04-16", "feat(paths): add mutator() & mutIn()"], + ["b00b5a28", "2018-04-16", "docs: update dep graph"], + ["dbb96fe2", "2018-04-16", "Publish"], + [ + "56d919c0", + "2018-04-16", + "fix(rstream-graph): create null sub for ID renaming" + ], + ["f5aba033", "2018-04-16", "docs: update dep graph"], + ["17584b5d", "2018-04-16", "Publish"], + [ + "9a83d4ef", + "2018-04-16", + "fix(interceptors): update undo handling to support history cursors" + ], + ["b856fecc", "2018-04-15", "docs(associative): update readme"], + ["c7e760ea", "2018-04-15", "docs: update dep graph"], + ["3111409c", "2018-04-15", "Publish"], + ["df32a59e", "2018-04-15", "docs(rstream-gestures): update package"], + [ + "e6c75b4a", + "2018-04-15", + "refactor(rstream-log): update package structure & readme example" + ], + ["2164ddfd", "2018-04-15", "feat(rstream): add Subscription.transform()"], + ["7cf93fc5", "2018-04-15", "docs(rstream): update readme"], + ["b667c88c", "2018-04-15", "docs(examples): update readme"], + ["f39affc1", "2018-04-15", "docs: update main readme"], + ["2942d1c3", "2018-04-15", "docs: update dep graph"], + ["f2ae6d24", "2018-04-15", "Publish"], + [ + "1479cd1e", + "2018-04-15", + "Merge branch 'feature/rstream-graph' into develop" + ], + [ + "a0063992", + "2018-04-15", + "refactor(examples): simplify rstream-dataflow example" + ], + [ + "619b4b37", + "2018-04-15", + "feat(rstream-graph): initial import @thi.ng/rstream-graph" + ], + ["937e5025", "2018-04-15", "docs: update dep graph"], + ["e6d7882d", "2018-04-15", "Publish"], + [ + "9ae2e035", + "2018-04-15", + "build(examples): update project structure for router-basics/svg-waveform" + ], + [ + "a597e728", + "2018-04-15", + "feat(examples): add undo/redo feature to svg-waveform, update components" + ], + [ + "a1d9ae68", + "2018-04-15", + "refactor(interceptors): refactor undo handling" + ], + [ + "cf42260c", + "2018-04-15", + "feat(atom): update History.record(), add IHistory interface" + ], + [ + "3c92f7e6", + "2018-04-15", + "feat(interceptors): add undo/redo handlers/fx & snapshot() interceptor" + ], + [ + "a102eb7c", + "2018-04-15", + "feat(interceptors): add default FX_UNDO/REDO side fx" + ], + [ + "ba0c876d", + "2018-04-14", + "refactor(interceptors): also pass ctx to sidefx handlers" + ], + [ + "183af614", + "2018-04-14", + "feat(interceptors): update processQueue(), expose full ctx to handlers" + ], + ["d539b4f3", "2018-04-14", "docs: update dep graph"], + ["83be0dce", "2018-04-14", "Publish"], + ["010f32e9", "2018-04-14", "docs: update readme files"], + ["9eec054a", "2018-04-14", "Merge branch 'develop'"], + [ + "85f5fdd4", + "2018-04-14", + "Merge branch 'feature/rs-gestures' into develop" + ], + ["885fcf15", "2018-04-14", "build: update make-module script"], + ["3f8dbc9e", "2018-04-14", "refactor(examples): update rs-dataflow demo"], + [ + "de1ac7bb", + "2018-04-14", + "feat(rstream-gestures): initial import @thi.ng/rstream-gestures" + ], + ["4755212f", "2018-04-14", "docs: update readme's"], + ["7b510487", "2018-04-14", "build(examples): add html & webpack config"], + ["6198899d", "2018-04-14", "docs: update dep graph"], + ["0243b44d", "2018-04-14", "Publish"], + ["c6b3025c", "2018-04-14", "build: import depgraph script"], + ["9e98ce12", "2018-04-14", "refactor(examples): update svg-waveform demo"], + ["1b21710a", "2018-04-13", "feat(examples): add svg-waveform example"], + [ + "584223ca", + "2018-04-13", + "refactor(examples): rename interceptors in interceptor-basics," + ], + [ + "86883e3c", + "2018-04-13", + "feat(interceptors): add ensureStateRange() & ensureParamRange() iceps" + ], + ["6da2d397", "2018-04-13", "docs: update dep graph"], + ["816950a8", "2018-04-13", "Publish"], + ["07628f67", "2018-04-13", "build: fix package clean tasks"], + [ + "d798cee3", + "2018-04-13", + "refactor(dgraph): regression update due to @thi.ng/associative changes" + ], + ["bfabe802", "2018-04-13", "feat(associative): add renameKeysMap"], + [ + "1f8af6c4", + "2018-04-13", + "refactor(associative): update EquivMap, update SortedSet, add docs" + ], + ["d1178acf", "2018-04-13", "perf(associative): update equiv() impls"], + ["76e5c853", "2018-04-13", "docs: update dep graph"], + ["f4b4067e", "2018-04-13", "Publish"], + ["26361437", "2018-04-13", "refactor(dgraph): update ArrayMap/Set refs"], + ["2f33389a", "2018-04-13", "docs(associative): update readme"], + [ + "87560270", + "2018-04-13", + "refactor(associative): rename EquivMap/Set => ArrayMap/Set, export interfaces" + ], + [ + "a7698563", + "2018-04-13", + "refactor(associative): add private impls for EquivMap/Set" + ], + [ + "cb4976fe", + "2018-04-12", + "feat(associative): add SortedSet, update SortedMap" + ], + [ + "ae0eae8e", + "2018-04-12", + "feat(associative): add SortedMap & tests, minor refactor EquivMap" + ], + ["82be16d4", "2018-04-11", "docs: update dep graph"], + ["3c1e2dd7", "2018-04-11", "Publish"], + [ + "52c75085", + "2018-04-11", + "feat(transducers): add run() for executing side effects only, update readme" + ], + ["5f94efa0", "2018-04-10", "docs: update dep graph"], + ["fa794a6e", "2018-04-10", "Publish"], + ["675847b8", "2018-04-10", "fix(dgraph): update corrupted deps"], + ["9b1c7bdb", "2018-04-10", "docs: update dep graph"], + ["5dd34261", "2018-04-10", "Publish"], + ["26d8ed85", "2018-04-10", "v0.1.0"], + ["efe606e1", "2018-04-10", "build(dgraph): update package desc"], + ["e7a5c93e", "2018-04-10", "build(associative): update package desc"], + ["207dd992", "2018-04-10", "docs: update package list main readme"], + ["371cd42f", "2018-04-10", "build(associative): update deps (dcons)"], + ["3e90117a", "2018-04-10", "Merge branch 'feature/dgraph' into develop"], + ["0dc9f646", "2018-04-10", "feat(associative): add EquivSet.first()"], + [ + "e086be6b", + "2018-04-10", + "feat(dgraph): re-import DGraph impl & tests, update readme" + ], + [ + "10c089a3", + "2018-04-10", + "feat(dcons): add IEmpty impl, minor refactoring" + ], + [ + "cc70dbce", + "2018-04-10", + "feat(associative): initial import @thi.ng/associative" + ], + ["fd27a946", "2018-04-09", "build: update lerna"], + ["69efee12", "2018-04-09", "docs(hdom): add authors.md"], + ["2357355a", "2018-04-09", "docs: update dep graph"], + ["c2cd9fbc", "2018-04-09", "Publish"], + [ + "2a91e302", + "2018-04-09", + "perf(hdom): intern imported checks, update normalizeTree(), add docs, fix tests" + ], + ["7e3070a2", "2018-04-09", "docs: update dep graph"], + ["d9aeed47", "2018-04-09", "Publish"], + [ + "b9d9a493", + "2018-04-09", + "fix(hiccup-svg): path(), update add null check for points()" + ], + ["acc9c13b", "2018-04-09", "refactor(examples): update router demo"], + ["5dfcd1ad", "2018-04-08", "docs: update dep graph"], + ["179efc44", "2018-04-08", "Publish"], + ["6f45ec6d", "2018-04-08", "v0.1.0"], + ["2458b15f", "2018-04-08", "docs(hiccup-svg): update readme"], + ["fcf1404e", "2018-04-08", "refactor(hiccup): remove obsolete deref check"], + ["4ed84eb5", "2018-04-08", "docs(hdom): update readme"], + ["a904599c", "2018-04-08", "docs(hdom): update/fix readme"], + ["d832c9d2", "2018-04-08", "docs(hdom): update readme & doc strings"], + [ + "3e7e0256", + "2018-04-08", + "Merge branch 'feature/hdom-context' into develop" + ], + [ + "905467c1", + "2018-04-08", + "refactor(examples): update cellular-automata & hdom-benchmark" + ], + [ + "0873832d", + "2018-04-08", + "refactor(hdom-components): update dropdown components" + ], + [ + "4a18e884", + "2018-04-08", + "refactor(examples): update webgl demo to use new canvas component" + ], + ["8b0d6015", "2018-04-08", "build: update main yarn.lock"], + [ + "7c88a3fc", + "2018-04-08", + "feat(hdom-components): update canvas handlers, add webgl2 version" + ], + ["e06e5042", "2018-04-08", "refactor(examples): update todo-list"], + ["6faa38a0", "2018-04-08", "refactor(examples): update webgl demo"], + ["1e798ce7", "2018-04-08", "docs: add hiccup-svg to main readme"], + ["7e0aeb68", "2018-04-08", "refactor(examples): update pointfree-svg"], + [ + "afccabdc", + "2018-04-08", + "feat(hiccup-svg): re-add svg fns as new @thi.ng/hiccup-svg package" + ], + [ + "86d1f0d9", + "2018-04-08", + "refactor(hdom-components): remove svg, update canvas (hdom context support)" + ], + [ + "a8a55a4f", + "2018-04-08", + "refactor(examples): major update router-basics (hdom context usage)" + ], + [ + "14b9cecc", + "2018-04-08", + "refactor(examples): update dashboard, hdom-basics & hdom-benchmark" + ], + [ + "70cfe06c", + "2018-04-08", + "feat(hdom): fix #13, add support for user context and pass to components" + ], + [ + "40d706b6", + "2018-04-07", + "feat(checks): add hasPerformance() check (performance.now)" + ], + ["d310345f", "2018-04-07", "feat(api): add bench() & timed() utils"], + [ + "4d79f763", + "2018-04-07", + "refactor(examples): add GestureEvent (rs-dflow)" + ], + [ + "c1c81bd0", + "2018-04-07", + "refactor(interceptors): update Event id type (string => PropertyKey)" + ], + ["37ba4d17", "2018-04-05", "refactor(examples): update rstream-dflow"], + ["a19f8a4d", "2018-04-05", "feat(examples): update rstream-dflow example"], + ["dccfc827", "2018-04-05", "docs(rstream): update readme"], + [ + "8ce73078", + "2018-04-05", + "refactor(examples): minor updates rstream-dflow" + ], + [ + "fce54223", + "2018-04-05", + "build(dgraph): import dgraph package stub to avoid travis build errors" + ], + ["8eb7e68c", "2018-04-05", "fix(examples): update GH links in html files"], + ["f9bfc9d7", "2018-04-05", "docs(hdom): update readme"], + ["56f4a26a", "2018-04-05", "docs: update dep graph"], + ["45c7daf4", "2018-04-05", "Publish"], + ["48310a68", "2018-04-05", "fix(rstream): correct wrong isString() import"], + ["9ab15442", "2018-04-05", "docs(examples): update doc strings"], + ["04b9c087", "2018-04-05", "docs(examples): update readme"], + ["23327874", "2018-04-05", "docs(examples): update rs-dflow example"], + [ + "ae27bd65", + "2018-04-05", + "refactor(examples): update rstream-dflow example" + ], + [ + "218150a9", + "2018-04-04", + "docs(examples): update readme, add dflow graph viz" + ], + ["72a96130", "2018-04-04", "feat(examples): add rstream-dataflow example"], + ["1eb8b12c", "2018-04-04", "docs: update dep graph"], + ["343956d3", "2018-04-04", "Publish"], + [ + "bffc4430", + "2018-04-04", + "fix(checks): add prototype check for isPlainObject(), add tests" + ], + [ + "9c91dc34", + "2018-04-03", + "fix(examples): minor update pointfree-svg example" + ], + ["9621f1b1", "2018-04-03", "docs: update dep graph"], + ["5276322a", "2018-04-03", "Publish"], + [ + "68727859", + "2018-04-03", + "Merge branch 'feature/pointfree-lang' into develop" + ], + ["ca5dfd3c", "2018-04-03", "docs(pointfree-lang): update readme"], + [ + "3310ec3d", + "2018-04-03", + "feat(pointfree-lang): implement dynamic var scoping & local var grammar" + ], + [ + "1c899a18", + "2018-04-03", + "refactor(pointfree-lang): rename grammar rule / nodetype MAP=>OBJ, add docs" + ], + [ + "5450e507", + "2018-04-03", + "fix(pointfree-lang): update grammar (parse order), add tests" + ], + [ + "769e84da", + "2018-04-03", + "feat(pointfree-lang): overhaul visitor quote/array & map handling, grammar" + ], + [ + "2101e926", + "2018-04-03", + "feat(pointfree): add math ops, update load/loadkey, update tests" + ], + ["26905f09", "2018-04-02", "refactor(examples): update pf svg example"], + [ + "ee684c7b", + "2018-04-02", + "feat(pointfree-lang): update grammar, aliases, ASTNode, NodeType" + ], + [ + "92d2d685", + "2018-04-01", + "refactor(pointfree): update/rename storeat => setat, update tests" + ], + ["68a8dba6", "2018-04-01", "feat(pointfree): add copy() word"], + ["42cc7786", "2018-04-01", "docs: update dep graph"], + ["996b5ff7", "2018-04-01", "Publish"], + ["4c7e9068", "2018-04-01", "docs: update all package readme's"], + ["cb7276e6", "2018-04-01", "chore: update make-module/example scripts"], + ["d4951f5e", "2018-04-01", "docs(examples): update all example readme's"], + [ + "c7521980", + "2018-04-01", + "build: add missing package descriptions, update yarn.lock" + ], + [ + "c2d22337", + "2018-04-01", + "Merge branch 'feature/examples-webpack' into develop" + ], + [ + "e2ac1852", + "2018-04-01", + "build: update dev dependencies for all packages & examples" + ], + [ + "bc264d39", + "2018-03-31", + "build(examples): update tsconfig for all examples" + ], + [ + "8273674d", + "2018-03-31", + "build(examples): update all examples to use webpack 4.4.*" + ], + [ + "1022ab67", + "2018-03-31", + "fix(examples): update stack comment for write-file" + ], + ["89ea6331", "2018-03-31", "fix(examples): update readme (pf-svg)"], + ["f3477690", "2018-03-31", "docs(pointfree-lang): update readme"], + ["7b5a36fd", "2018-03-31", "docs(examples): update example list"], + [ + "3f33b651", + "2018-03-31", + "refactor(examples): update pointfree-svg demo/readme" + ], + [ + "208b5c39", + "2018-03-31", + "fix(pointfree-lang): object literal grammar rule (allow initial WS)" + ], + ["910b7187", "2018-03-31", "feat(examples): add pointfree-svg demo"], + ["a0e0a0ca", "2018-03-31", "docs: update dep graph"], + ["6d836772", "2018-03-31", "Publish"], + [ + "659cce91", + "2018-03-31", + "fix(pointfree-lang): add ensureEnv, update re-exports, update readme" + ], + ["a0bf7810", "2018-03-31", "fix(pointfree): reexport ensureStack fns"], + ["b16c8500", "2018-03-31", "docs(pointfree-lang): fix readme link"], + ["fbb17957", "2018-03-31", "docs(pointfree-lang): fix grammar link"], + ["f2a56266", "2018-03-31", "docs: update main readme"], + ["430caf03", "2018-03-31", "docs: update dep graph"], + ["6f743ae1", "2018-03-31", "Publish"], + ["9e43405a", "2018-03-31", "docs: update pointfree readme's"], + ["32e2da0d", "2018-03-31", "docs: update dep graph"], + ["82008c38", "2018-03-31", "v0.1.0"], + [ + "d838610f", + "2018-03-31", + "Merge branch 'feature/pointfree-lang' into develop" + ], + ["0623df69", "2018-03-31", "build: add pegjs dev dependency"], + [ + "3dec35a8", + "2018-03-31", + "feat(pointfree-lang): initial import @thi.ng/pointfree-lang" + ], + ["5db90c53", "2018-03-31", "feat(pointfree): add caseq()"], + ["0da93da6", "2018-03-29", "docs: update dep graph"], + ["fdfbe425", "2018-03-29", "Publish"], + ["d47d0b36", "2018-03-29", "docs(pointfree): update readme"], + [ + "b096e436", + "2018-03-29", + "feat(pointfree): add more dataflow combinators, words & tests" + ], + ["c0a653b6", "2018-03-29", "docs(pointfree): update readme"], + ["9f866da4", "2018-03-29", "docs(pointfree): update readme"], + [ + "3dc30a8e", + "2018-03-29", + "feat(pointfree): add combinators, update controlflow words, remove execq" + ], + ["39b59677", "2018-03-29", "docs: update dep graph"], + ["6b5033f0", "2018-03-29", "Publish"], + ["6cbacec7", "2018-03-29", "feat(hdom-components): add svg line()"], + ["0baf1f8a", "2018-03-29", "docs(pointfree): update readme & package"], + ["fe1f3a3a", "2018-03-29", "test(pointfree): add tests"], + [ + "943b4f9c", + "2018-03-29", + "feat(pointfree): add new words, constructs, aliases, fix re-exports" + ], + [ + "221ece65", + "2018-03-29", + "build: update make-module/make-example scripts" + ], + ["6904d440", "2018-03-28", "docs: update dep graph"], + ["aa9439ef", "2018-03-28", "Publish"], + ["9b00a25f", "2018-03-28", "build: add benchmark dev dep"], + ["e35a2ca1", "2018-03-28", "build(paths): update package"], + ["e52b8693", "2018-03-28", "feat(pointfree): major update readme, package"], + [ + "0f0c382f", + "2018-03-28", + "feat(pointfree): add new words, rename words, remove mapnth, pushl2" + ], + [ + "10d5a347", + "2018-03-28", + "fix(pointfree): add 0-arity comp() (identity fn)" + ], + [ + "ba0bcc21", + "2018-03-27", + "refactor(pointfree): rename core words & change case" + ], + [ + "1c4cd2f3", + "2018-03-27", + "feat(pointfree): add rstack, update StackContext" + ], + [ + "50cc65fe", + "2018-03-26", + "build: update yarn scripts / add missing nyc dev dep" + ], + [ + "2b7e99b9", + "2018-03-26", + "fix(api): illegalState() creates IllegalStateError" + ], + ["1a01f9a0", "2018-03-26", "fix(pointfree): wordU(), add tests"], + [ + "3252554f", + "2018-03-26", + "feat(pointfree): further restructure, perf, add tests" + ], + ["a48361d6", "2018-03-25", "feat(pointfree): major refactor & restructure"], + ["d1564bb1", "2018-03-25", "docs(pointfree): update readme"], + [ + "79b4ce32", + "2018-03-25", + "feat(pointfree): update all words to return stack" + ], + [ + "f3f0bec1", + "2018-03-24", + "feat(pointfree): update word/wordU, add append(), tuple(), join()" + ], + ["06987133", "2018-03-23", "docs: update dep graph"], + ["c5bcdafa", "2018-03-23", "Publish"], + ["be9ba2fd", "2018-03-23", "Merge branch 'hotfix/pointfree'"], + ["f211c397", "2018-03-23", "fix(pointfree): fix readme/docs"], + ["51a6e500", "2018-03-23", "docs: update dep graph"], + ["0e4858c9", "2018-03-23", "Publish"], + ["15ffd34d", "2018-03-23", "test(pointfree): add tests"], + [ + "6cac0c7d", + "2018-03-23", + "feat(pointfree): support data vals in program, add collect(), update readme" + ], + [ + "f75486d4", + "2018-03-23", + "feat(pointfree): add unwrap, quatations, math/bitops, array/obj access" + ], + ["884a8bfa", "2018-03-23", "docs: update main readme/depgraph"], + ["e635dafd", "2018-03-23", "Merge branch 'feature/pointfree' into develop"], + ["4d4e5e1b", "2018-03-23", "v0.1.0"], + ["6aef8807", "2018-03-23", "build(pointfree): update package info"], + [ + "58f5716c", + "2018-03-23", + "feat(pointfree): add dropIf, neg, nop, update cond,condM, add docs/readme" + ], + [ + "25bbf05c", + "2018-03-22", + "feat(pointfree): initial import of refactored @thi.ng/pointfree package" + ], + ["92e4ff8f", "2018-03-21", "docs: update main readme"], + ["b153067c", "2018-03-21", "docs: update dep graph"], + ["fb42cb5a", "2018-03-21", "Publish"], + ["218c2304", "2018-03-21", "Merge branch 'feature/iwatch' into develop"], + ["ca099e57", "2018-03-21", "refactor(transducers): update error handling"], + [ + "8a3e72ee", + "2018-03-21", + "feat(rstream-log): update error handling, add @thi.ng/api dep" + ], + [ + "1ce7054f", + "2018-03-21", + "feat(rstream): update error handling, add @thi.ng/api dep" + ], + ["adc559ae", "2018-03-21", "refactor(router): update error handling"], + [ + "9316a6ca", + "2018-03-21", + "feat(iterators): update error handling, add @thi.ng/api dep" + ], + [ + "501d56f8", + "2018-03-21", + "feat(interceptors): update error handling, add @thi.ng/api dep" + ], + ["0cfc2270", "2018-03-21", "refactor(hiccup-css): update error handling"], + [ + "a3238abf", + "2018-03-21", + "feat(hiccup): update error handling, add @thi.ng/api dep" + ], + [ + "f5173f1d", + "2018-03-21", + "feat(hdom): update error handling, add @thi.ng/api dep" + ], + ["a046b285", "2018-03-21", "refactor(dcons): update error handling"], + ["5087ffe3", "2018-03-21", "refactor(cso): update error handling"], + [ + "0fc10388", + "2018-03-21", + "feat(bitstream): update error handling, add @thi.ng/atom dep" + ], + ["ea7b1752", "2018-03-21", "refactor(atom): update error handling"], + ["4d3785f9", "2018-03-21", "feat(api): add error types & ctor fns"], + [ + "d93940a4", + "2018-03-21", + "feat(atom): consider parent validators in History update fns" + ], + [ + "3b1d563a", + "2018-03-21", + "feat(atom): add CursorOpts and cursor validation, update ctor, add tests" + ], + [ + "bae1647c", + "2018-03-21", + "feat(atom): add optional validation predicate for Atom, add tests" + ], + ["47643f96", "2018-03-21", "test(api): add INotify tests"], + ["b3287808", "2018-03-21", "refactor(router): update INotify dummy impl"], + [ + "fbb19acd", + "2018-03-21", + "refactor(api): update mixins, IEnable / INotify return types" + ], + ["0d67e73e", "2018-03-21", "build: limit travis build branches"], + ["96bb0198", "2018-03-21", "docs: update dep graph"], + ["b2778585", "2018-03-21", "Publish"], + [ + "2a1264a2", + "2018-03-21", + "refactor(rstream-log): update Logger ctor arg handling" + ], + [ + "e58c5e01", + "2018-03-21", + "Merge branch 'feature/rstream-refactor' into develop" + ], + [ + "deb59a15", + "2018-03-21", + "docs(rstream): update readme, add dataflow example" + ], + ["276ede6a", "2018-03-20", "docs(rstream): update readme"], + [ + "907d5995", + "2018-03-20", + "feat(rstream): add IDeref impl for Subscription" + ], + [ + "1fee7d5c", + "2018-03-20", + "feat(rstream): add merge()/sync() ctor wrappers" + ], + [ + "eec56dec", + "2018-03-20", + "feat(rstream): add transduce(), update re-exports" + ], + [ + "42b343aa", + "2018-03-20", + "test(rstream): add StreamSync & Subscription tests" + ], + [ + "26f15b23", + "2018-03-20", + "refactor(rstream): simplify unsubscribe() logic" + ], + [ + "a1c58418", + "2018-03-20", + "docs(rstream): add Cache deprecation docstring" + ], + [ + "6b87bca4", + "2018-03-20", + "feat(rstream): Subscription stores last value and passes to new subs" + ], + [ + "ebe222c9", + "2018-03-20", + "refactor(rstream): update & StreamMerge/SyncOpts, minor fixes StreamSync" + ], + [ + "80264093", + "2018-03-20", + "feat(rstream): fix #6 update StreamMerge to support transduced input streams" + ], + ["db61b0bd", "2018-03-20", "test(rstream): add/update sidechain* tests"], + [ + "d18a1158", + "2018-03-20", + "feat(rstream): update Sidechain*.next(), add unsubscribe()" + ], + ["7dce160c", "2018-03-20", "minor(rstream): fromPromise()"], + [ + "41bb385f", + "2018-03-20", + "feat(rstream): add fromView(), update fromAtom() docs, update re-exports" + ], + [ + "01a751e2", + "2018-03-20", + "feat(rstream): update Subscription.unsubscribe()" + ], + [ + "2ad2f485", + "2018-03-20", + "fix(rstream): bisect() add downstream impl checks, add tests" + ], + [ + "6f5ec040", + "2018-03-20", + "test(rstream): remove obsolete fromPromise error test case" + ], + [ + "47b6a924", + "2018-03-20", + "refactor(rstream): simplify Subscription, update all impls" + ], + [ + "64c16255", + "2018-03-19", + "Merge branch 'develop' into feature/rstream-refactor" + ], + ["5bf5ce61", "2018-03-19", "docs: update dep graph"], + ["1c5d96f7", "2018-03-19", "Publish"], + [ + "ff802a45", + "2018-03-19", + "refactor(rstream): simplify StreamMerge source handling" + ], + [ + "f7029efd", + "2018-03-19", + "refactor(rstream): minor cleanup/perf StreamSync" + ], + ["791a993f", "2018-03-19", "feat(rstream): add StreamSync"], + [ + "c7364334", + "2018-03-19", + "refactor(rstream): add/update Stream ctor arities" + ], + ["abc195a4", "2018-03-19", "feat(transducers): add mapVals() xform"], + [ + "3bc8d54a", + "2018-03-19", + "refactor(transducers): update labeled(), mapIndexed(), partition()" + ], + ["bebd1186", "2018-03-19", "feat(transducers): add partitionSync() xform"], + ["627dd7a4", "2018-03-19", "docs: update dep graph"], + ["b316114f", "2018-03-19", "Publish"], + ["76c5e0a4", "2018-03-19", "fix(interceptors): InterceptorPredicate args"], + ["dbb046e8", "2018-03-18", "docs: update dep graph"], + ["a69b5141", "2018-03-18", "Publish"], + [ + "c0ec2745", + "2018-03-18", + "feat(atom): add optional support for eager views, update tests/readme" + ], + [ + "f295a475", + "2018-03-18", + "build(examples): update all @thi.ng deps to use \"latest\"" + ], + ["4e91374b", "2018-03-18", "docs: update dep graph"], + ["6b92bf67", "2018-03-18", "Publish"], + ["eaeccf47", "2018-03-18", "fix(paths): fix setter fast paths"], + ["e022cdf0", "2018-03-18", "docs: update dep graph"], + ["8cee5b5f", "2018-03-18", "Publish"], + [ + "92f0e27e", + "2018-03-18", + "fix(paths): fix setIn fast paths for path length 3/4" + ], + [ + "2376e02f", + "2018-03-18", + "build: fix changelogs for atom/interceptors/paths" + ], + ["4c0212fb", "2018-03-18", "docs(resolve-map): fix link in readme"], + [ + "b6a8da58", + "2018-03-18", + "build(examples): update deps & imports for all examples" + ], + ["2c1a85bc", "2018-03-17", "docs: update dep graph"], + ["c3cac0c0", "2018-03-17", "Publish"], + ["1e7ef2b6", "2018-03-17", "build: fix atom deps in downstream packages"], + ["8281609c", "2018-03-17", "minor(atom): fix typo in package"], + ["a41a208e", "2018-03-17", "v1.0.0"], + ["9a1cc521", "2018-03-17", "docs: update dep graph"], + ["c0c3e64c", "2018-03-17", "v1.0.0"], + ["0d13982c", "2018-03-17", "v0.1.0"], + ["95f6b392", "2018-03-17", "Merge branch 'feature/lazymap' into develop"], + ["d34bd146", "2018-03-17", "build: update make-module script (deps)"], + ["e1cf4aba", "2018-03-17", "docs(interceptors): update readme"], + ["9a651cd9", "2018-03-17", "docs(atom): update readme"], + [ + "1273efbd", + "2018-03-17", + "refactor(atom): extract @thi.ng/paths & @thi.ng/interceptors functionality" + ], + ["763ea89f", "2018-03-17", "docs: update package list in main readme"], + [ + "195a6ffd", + "2018-03-17", + "feat(interceptors): add/extract @thi.ng/interceptors package from @thi.ng/atom" + ], + [ + "422c2c4e", + "2018-03-17", + "feat(resolve-map): add @thi.ng/resolve-map package" + ], + [ + "f9f6eb1e", + "2018-03-17", + "feat(paths): add/extract @thi.ng/paths from @thi.ng/atom" + ], + ["d3d66436", "2018-03-16", "refactor(examples): update router-basics"], + [ + "f1bc74d2", + "2018-03-16", + "docs: update readme files (add create-hdom-app instructions)" + ], + ["8596cd07", "2018-03-16", "docs: update dep graph"], + ["6383233e", "2018-03-16", "Publish"], + ["357c46e0", "2018-03-16", "feat(atom): add forwardSideFx() interceptor"], + [ + "e52e7e51", + "2018-03-16", + "feat(atom): add FX_FETCH & FX_DELAY sidefx impl, update docs" + ], + ["6378eb0b", "2018-03-15", "fix(examples): re-add html"], + [ + "633093ea", + "2018-03-15", + "refactor(examples): update router-basics (create-hdom-app tpl)" + ], + ["6deb4e33", "2018-03-14", "build(examples): update hdom deps"], + ["c0432cb4", "2018-03-14", "docs: update dep graph"], + ["fff77886", "2018-03-14", "Publish"], + ["3a0e97d2", "2018-03-14", "test(hdom): add tests, update package"], + ["25d0c309", "2018-03-14", "test(hiccup): add deref tests"], + [ + "14356895", + "2018-03-14", + "Merge branch 'feature/hdom-deref' into develop" + ], + [ + "c85b1f81", + "2018-03-14", + "refactor(examples): remove obsolete .deref() calls" + ], + [ + "93343d63", + "2018-03-14", + "feat(hiccup): support fn values in style objects" + ], + [ + "28b0b578", + "2018-03-14", + "refactor(hdom): disable deref() for attrib objects" + ], + [ + "de839e89", + "2018-03-14", + "refactor(hiccup): disable deref() for attrib objects" + ], + ["0fe6c44c", "2018-03-14", "feat(hdom): add auto deref() support"], + ["0d2c16fc", "2018-03-14", "feat(hiccup): add auto deref() support"], + ["2351240d", "2018-03-14", "minor(examples): typo"], + ["c5cee483", "2018-03-12", "minor(examples): readme"], + ["15acdb5c", "2018-03-12", "minor(examples): typos"], + ["ee118999", "2018-03-12", "docs(examples): update readme"], + ["8eb0a610", "2018-03-12", "docs(examples): add README for example dir"], + ["fc61aae6", "2018-03-12", "minor(examples): add filesize info"], + [ + "777b1b05", + "2018-03-11", + "refactor(examples): more stateless components, add docs" + ], + ["49008ccf", "2018-03-11", "docs(examples): update readme"], + ["eb73ae93", "2018-03-11", "refactor(examples): update router demo"], + ["5b412e7d", "2018-03-11", "docs: update dep graph"], + ["a9b09f16", "2018-03-11", "Publish"], + ["10ea19f5", "2018-03-11", "docs(atom): update readme & doc strings"], + ["0ca0bf3e", "2018-03-11", "fix(atom): ignore side fx with null values"], + ["5e8cbc98", "2018-03-11", "docs: update dep graph"], + ["e62dace5", "2018-03-11", "Publish"], + ["bd8c8b1e", "2018-03-11", "Merge branch 'feature/router' into develop"], + ["eac0e96f", "2018-03-11", "docs(router): update readme & package"], + [ + "71b19a43", + "2018-03-10", + "feat(examples): major update router example app" + ], + ["d8b8d978", "2018-03-10", "docs: add router package links to main readme"], + ["51b02e2b", "2018-03-10", "feat(examples): add router-basics demo"], + [ + "07b4e060", + "2018-03-10", + "feat(router): re-import router package (MBP2010), minor refactor & fixes" + ], + ["019943e2", "2018-03-09", "docs: update dep graph"], + ["95d6a4e2", "2018-03-09", "Publish"], + ["c7e69def", "2018-03-09", "refactor(examples): minor updates"], + ["3fae2496", "2018-03-09", "feat(atom): add/extract StatelessEventBus"], + ["667691ce", "2018-03-09", "feat(atom): update EventBus ctor, add deref()"], + ["59085e0c", "2018-03-09", "fix(atom): add interceptors to re-exports"], + ["9b3d91e5", "2018-03-09", "feat(atom): add IRelease impls"], + ["3bf9fbaa", "2018-03-09", "docs(atom): update all doc strings"], + [ + "e96cc991", + "2018-03-09", + "refactor(atom): minor update event bus, add/update docs" + ], + ["15ae0643", "2018-03-09", "docs: update dep graph"], + ["a26e25cf", "2018-03-09", "Publish"], + ["a48b7762", "2018-03-08", "refactor(examples): update async-effect"], + ["4d7613d8", "2018-03-08", "refactor(examples): update interceptor-basics"], + ["fb9b19c4", "2018-03-08", "docs(atom): minor update View docs"], + [ + "359c4f5a", + "2018-03-08", + "feat(atom): add valueSetter/Updater() interceptors" + ], + ["443875c8", "2018-03-08", "refactor(atom): update InterceptorFn handling"], + [ + "1fd43d7c", + "2018-03-08", + "feat(atom): add default handlers, add/rename event/fx const values, add checks" + ], + ["c5d5ed56", "2018-03-08", "build(examples): update all deps"], + ["89a0b20d", "2018-03-08", "docs: update dep graph"], + ["f018fb12", "2018-03-08", "Publish"], + [ + "cb9c808e", + "2018-03-08", + "Merge branch 'feature/atom-async-dispatch' into develop" + ], + [ + "a6beda9d", + "2018-03-08", + "refactor(examples): update async & interceptor demos" + ], + ["3303c3b4", "2018-03-08", "docs(atom): update readme"], + [ + "56866e07", + "2018-03-08", + "feat(atom): add async dispatch effect, update event bus & api types" + ], + [ + "9900e991", + "2018-03-08", + "feat(checks): add isPromise() & isPromiseLike()" + ], + ["fb4f3095", "2018-03-08", "docs: update dep graph"], + ["99a87e6a", "2018-03-08", "Publish"], + ["52fff093", "2018-03-08", "docs(examples): update async readme & html"], + ["c9794acb", "2018-03-07", "feat(examples): add async fx example"], + [ + "9e5239bc", + "2018-03-07", + "fix(atom): add EventBus to module re-exports, minor cleanup" + ], + ["5b21c147", "2018-03-07", "build(examples): update interceptor deps"], + [ + "7dcfce05", + "2018-03-07", + "refactor(examples): update interceptor example" + ], + ["85e04957", "2018-03-07", "docs: update dep graph"], + ["851efd23", "2018-03-07", "Publish"], + [ + "1adb703a", + "2018-03-07", + "refactor(examples): update interceptor example" + ], + [ + "1ab803aa", + "2018-03-07", + "refactor(atom): update InterceptorFn, ensureXXX(), update deps, add docs" + ], + ["eec7bc4c", "2018-03-07", "docs: update dep graph"], + ["b877a069", "2018-03-07", "Publish"], + ["fb74b8a7", "2018-03-07", "Merge branch 'feature/iceps' into develop"], + ["4958606b", "2018-03-07", "feat(examples): add interceptors example"], + ["a0d662bb", "2018-03-07", "build(atom): add @thi.ng/dcons dep"], + [ + "e01bf733", + "2018-03-07", + "feat(atom): re-add refactored EventBus & interceptor handling" + ], + ["be46af3f", "2018-03-06", "feat(examples): add svg viz to devcards demo"], + ["79245a35", "2018-03-05", "minor(examples): typos"], + ["f40143be", "2018-03-05", "fix(examples): add/update devcard links"], + [ + "8019df82", + "2018-03-05", + "build(examples): add missing html/webpack files, update deps" + ], + [ + "9becd43d", + "2018-03-05", + "Merge branch 'master' of github.com:thi-ng/umbrella" + ], + ["58e75591", "2018-03-05", "docs: update dep graph"], + ["f38885de", "2018-03-05", "Publish"], + [ + "df4e98fb", + "2018-03-05", + "Merge branch 'feature/ex-mstates' into develop" + ], + ["1041d90c", "2018-03-05", "feat(examples): add devcards example"], + [ + "a200beb8", + "2018-03-05", + "feat(hdom): add support for frame skipping, add docs" + ], + [ + "a7e61a4e", + "2018-03-05", + "feat(atom): update IAtom, add resetIn() & swapIn() impls" + ], + [ + "17a11710", + "2018-03-05", + "Merge branch 'feature/hcss-refactor' into develop" + ], + [ + "22bc29c9", + "2018-03-05", + "docs(hiccup-css): add doc strings for attrib fns" + ], + ["721583a7", "2018-03-05", "refactor(hiccup-css): internal restructure"], + ["34d699fc", "2018-03-05", "chore: update issue tpl instructions"], + ["dd09f0bf", "2018-03-05", "docs: update dep graph"], + ["203a3a6e", "2018-03-05", "Publish"], + [ + "2e3942ac", + "2018-03-05", + "docs(hiccup-css): add doc strings, update readme" + ], + [ + "105bbf4e", + "2018-03-05", + "perf(hiccup-css): no empty Set() creation, change type check order in css()" + ], + ["870da99d", "2018-03-05", "docs: update readme"], + ["0c23d2b6", "2018-03-05", "docs: update dep graph"], + ["1e08ce24", "2018-03-05", "v0.1.0"], + ["69036ad1", "2018-03-05", "minor(hiccup-css): update package desc"], + ["5d946cb0", "2018-03-05", "Merge branch 'develop'"], + [ + "d6f8b066", + "2018-03-05", + "Merge branch 'feature/hiccup-css' into develop" + ], + ["8a665313", "2018-03-05", "build(hiccup-dom): update ignore files"], + ["bafb533e", "2018-03-05", "docs(hiccup-css): update readme"], + ["24983d37", "2018-03-05", "test(hiccup-css): update tests"], + [ + "0f416efe", + "2018-03-05", + "feat(hiccup-css): add comment() indentation support" + ], + ["f3190fff", "2018-03-05", "fix(hiccup-css): fn & auto-prefix handling"], + [ + "787d0aba", + "2018-03-05", + "feat(hiccup-css): add more unit types, update px/ms" + ], + [ + "02bff871", + "2018-03-05", + "feat(hiccup-css): add support for iterators as arg type to css()" + ], + ["cbb9b7f0", "2018-03-04", "test(hiccup-css): add/update tests"], + [ + "a6231172", + "2018-03-04", + "refactor(hiccup-css): format @keyframe stops, rename perc() => percent()" + ], + ["e347c292", "2018-03-04", "fix(hiccup-css): @import query separator"], + [ + "57533c76", + "2018-03-04", + "feat(hiccup-css): update conditional handling, add formatCond()" + ], + [ + "428de3c7", + "2018-03-04", + "feat(hiccup-css): update fn handling, add iterator support, units, comment" + ], + ["bdc63496", "2018-03-04", "minor: fix typos"], + ["c20f2df6", "2018-03-04", "Create CONTRIBUTING.md"], + ["6de6b279", "2018-03-03", "perf(hiccup-dom): minor optimizations"], + [ + "ebbc4910", + "2018-03-03", + "feat(hiccup-css): add attrib fn, at-rules, quoted fns, decl value arrays" + ], + ["e687230c", "2018-03-03", "feat(hiccup-css): add default vendor prefixes"], + [ + "a53d2a5f", + "2018-03-03", + "feat(hiccup-css): add keyframes(), split module into separate src files" + ], + [ + "d837199d", + "2018-03-03", + "feat(hiccup-css): add CSSOpts, mediaQuery(), fn expansion" + ], + [ + "5247b8f4", + "2018-03-03", + "feat(hiccup-css): add/fix class handling, update Format" + ], + [ + "3a4cf1e6", + "2018-03-03", + "feat(hiccup-css): add package @thi.ng/hiccup-css" + ], + ["92fb7b07", "2018-03-03", "chore(examples): update links in html files"], + ["b6d350b3", "2018-03-03", "docs: update dep graph"], + ["6c628213", "2018-03-03", "docs(hdom): fix diagram link"], + ["db98e5e5", "2018-03-03", "chore: update make-example"], + ["2f5f0b2e", "2018-03-03", "build(examples): update all example deps"], + ["45291b3d", "2018-03-03", "Publish"], + ["9099607d", "2018-03-03", "docs: update readme's"], + [ + "752a78bb", + "2018-03-03", + "feat(hdom-components): rename package hiccup-dom-component => hdom-components" + ], + ["79e1b097", "2018-03-03", "docs(hdom): update readme"], + [ + "f1c53150", + "2018-03-03", + "refactor(hdom): rename package hiccup-dom => hdom" + ], + ["ae47c4db", "2018-03-03", "docs: update dep graph"], + ["e405ebdf", "2018-03-03", "Publish"], + [ + "8c180bc6", + "2018-03-03", + "refactor(transducers): extract compR() into its own file, update refs, update readme" + ], + [ + "2f5abce3", + "2018-03-02", + "refactor(transducers): update swizzler() arg types" + ], + [ + "488462e1", + "2018-03-02", + "refactor(transducers): update permutations()/permutationsN(), add tests" + ], + [ + "91938ede", + "2018-03-02", + "feat(transducers): add permutations()/permutationsN() generators" + ], + ["aa042602", "2018-03-02", "docs: update dep graph"], + ["3d8a6d3c", "2018-03-02", "Publish"], + ["2316d4d1", "2018-03-02", "test(transducers): add flatten() tests"], + ["3d8aa324", "2018-03-02", "fix(transducers): flattenWith()"], + ["befaceb0", "2018-03-01", "docs(atom): update readme example"], + ["3dcc3cb8", "2018-03-01", "docs(atom): update example"], + [ + "dd665920", + "2018-03-01", + "feat(examples): add login-form demo to illustrate state handling" + ], + ["118cf92f", "2018-03-01", "docs: update dep graph"], + ["1f61f49d", "2018-03-01", "Publish"], + ["ae7c7f5d", "2018-03-01", "docs(atom): update readme, add View examples"], + ["3e55a058", "2018-03-01", "fix(atom): re-export api.ts"], + ["341255c9", "2018-03-01", "refactor(atom): include `path` in IView"], + ["0206f339", "2018-03-01", "docs: update dep graph"], + ["5308cab5", "2018-03-01", "Publish"], + ["a0ce6e76", "2018-03-01", "refactor(atom): update Path type references"], + [ + "9ad83b27", + "2018-03-01", + "feat(atom): add IView, IViewable, impl for Atom, Cursor, History" + ], + ["1fa829d6", "2018-03-01", "test(atom): add/update tests"], + [ + "8c0c621c", + "2018-03-01", + "feat(atom): add View type to create derrived views/value subscriptions" + ], + [ + "55c6a7d5", + "2018-03-01", + "perf(atom): add optimized setter() for path len < 5, fix toPath()" + ], + [ + "ed23376d", + "2018-03-01", + "perf(atom): add optimized getters for path len < 5" + ], + ["ff21d9f4", "2018-02-28", "docs: update dep graph"], + ["6779def4", "2018-02-28", "Publish"], + ["a86b6775", "2018-02-28", "docs(hiccup-dom): fix readme link"], + [ + "ca17389c", + "2018-02-28", + "feat(hiccup-dom): add support for function attribs, add docs" + ], + [ + "050a5656", + "2018-02-28", + "docs(hiccup-dom): update initial readme example" + ], + [ + "c7e2f816", + "2018-02-27", + "Merge branch 'master' of github.com:thi-ng/umbrella" + ], + ["eafc5dd6", "2018-02-27", "build(examples): update deps"], + ["4a8feffc", "2018-02-27", "docs(hiccup-dom): fix #7, update readme"], + ["61e87665", "2018-02-27", "docs(hiccup-dom): update readme"], + ["9593fd13", "2018-02-27", "docs: update dep graph"], + ["b8a6e1af", "2018-02-27", "Publish"], + ["70720a37", "2018-02-27", "refactor(examples): minor updates"], + [ + "8a070ff2", + "2018-02-27", + "feat(hiccup-dom): start(), add optional spans arg" + ], + ["9b2c1606", "2018-02-27", "minor(hiccup-dom): update arg types"], + [ + "f5b66753", + "2018-02-27", + "feat(hiccup-dom): fix #11, update normalizeTree/normalizeElement" + ], + ["6e0dfa1d", "2018-02-27", "feat(diff): update diffArray, generic types"], + ["621868b4", "2018-02-26", "docs: update dep graph"], + ["9ff8c0af", "2018-02-26", "Publish"], + ["45d63858", "2018-02-26", "refactor(hiccup): sort void tags"], + [ + "9824844a", + "2018-02-26", + "feat(transducers): add keys()/vals() iterators, refactor pairs()" + ], + [ + "061c9088", + "2018-02-26", + "Merge pull request #12 from jarvismartin/minor-fix" + ], + [ + "f6143eb7", + "2018-02-25", + "Merge branch 'master' of github.com:thi-ng/umbrella into minor-fix" + ], + ["c34271f7", "2018-02-24", "docs: update dep graph"], + ["1b16d920", "2018-02-24", "Publish"], + [ + "44f33dfc", + "2018-02-24", + "feat(hiccup): add support for more SVG tags (66 total)" + ], + [ + "214fe4d0", + "2018-02-23", + "feat(hiccup-dom-components): add gradient, group, path SVG funcs" + ], + ["8180e149", "2018-02-23", "spelling fix"], + [ + "68d9f838", + "2018-02-23", + "Merge branch 'master' of github.com:thi-ng/umbrella" + ], + ["ca68a978", "2018-02-23", "minor grammar fix"], + ["b3891d52", "2018-02-23", "refactor(examples): simplify json-components"], + ["1834f812", "2018-02-23", "docs: update dep graph"], + ["8a620583", "2018-02-23", "Publish"], + [ + "2a11ff6f", + "2018-02-23", + "refactor(transducers): add TransformSubSpec, fix test, minor update docs" + ], + ["223669b1", "2018-02-23", "test(transducers): add tests"], + [ + "f0fdfa10", + "2018-02-23", + "feat(transducers): add deepTransform & mapDeep xform" + ], + [ + "65f794f6", + "2018-02-19", + "build: add .gitignore gen for make-example script" + ], + [ + "f7c6e0c9", + "2018-02-19", + "Merge pull request #10 from jarvismartin/example-gitignores" + ], + ["955eecc4", "2018-02-19", "add .gitignore files to examples"], + [ + "e1f87d6b", + "2018-02-19", + "fix(examples): update packages & readme's (fix #9), deps in make-example" + ], + [ + "c2123e58", + "2018-02-19", + "Merge pull request #9 from jarvismartin/examples-work-on-debian" + ], + ["31a4710a", "2018-02-19", "build(examples): update CA deps (transducers)"], + [ + "9b664d25", + "2018-02-19", + "refactor(examples): simplify CA transducers, update rule format/handling" + ], + ["2c2030d2", "2018-02-19", "docs: update dep graph"], + ["afa74728", "2018-02-19", "Publish"], + [ + "193058d5", + "2018-02-19", + "feat(transducers): add lookup1d/2d/3d helpers, update re-exports" + ], + ["813b2cac", "2018-02-19", "make examples work on Debian systems"], + ["77c95322", "2018-02-19", "refactor(examples): update webgl demo"], + ["73dd1dc5", "2018-02-19", "docs: update dep graph"], + ["9c8e877a", "2018-02-19", "build(examples): update CA deps"], + ["7f8c6cd0", "2018-02-19", "Publish"], + [ + "3627087b", + "2018-02-19", + "docs: add hiccup-dom-components to main readme" + ], + [ + "ac831234", + "2018-02-19", + "build(hiccup-dom-components): add missing deps" + ], + ["9fe096a3", "2018-02-19", "build: update yarn.lock"], + [ + "2394396e", + "2018-02-19", + "feat(examples): add CA presets, refactor rule handling" + ], + ["511c4980", "2018-02-19", "feat(hiccup-dom-components): initial import"], + ["df93af6d", "2018-02-18", "feat(examples): add randomize buttons (CA)"], + ["fde83d59", "2018-02-18", "build(examples): update example deps"], + ["b8c03743", "2018-02-18", "docs: update dep graph"], + ["06830ce6", "2018-02-18", "Publish"], + ["69b3c6a4", "2018-02-18", "docs: update readme files"], + ["074f94ff", "2018-02-18", "build: update deps"], + [ + "5a728cb9", + "2018-02-18", + "refactor(rstream-log): update Logger ctor due to changes in StreamMerge" + ], + [ + "4942e2ea", + "2018-02-18", + "feat(rstream): fix #8, support infinite StreamMerge's, update ctor" + ], + [ + "ca1caae5", + "2018-02-18", + "refactor(rstream): don't throw in unsubscribe() if no parent" + ], + ["5c106cfa", "2018-02-18", "docs(examples): add more CA config links"], + ["d6d3310d", "2018-02-18", "feat(examples): add cellular automata example"], + ["d023bd5f", "2018-02-18", "chore(transducers): update re-exports, readme"], + [ + "ab8a8558", + "2018-02-18", + "feat(transducers): add convolve2d xform & types" + ], + ["d7b1d0df", "2018-02-18", "feat(transducers): add movingMedian() xform"], + ["48f8bb85", "2018-02-18", "fix(transducers): update imports `step()`"], + [ + "63a49530", + "2018-02-18", + "refactor(transducers): add/update range2d/range3d arity handling" + ], + ["e71a4c90", "2018-02-17", "docs(atom): update readme"], + [ + "2e34f389", + "2018-02-17", + "refactor(atom): update history reset/swap, record before applying val" + ], + ["b593a9b9", "2018-02-17", "feat(atom): add deleteIn()"], + ["fbc819ed", "2018-02-17", "fix(atom): empty path handling getter/setter"], + [ + "7d50c1ca", + "2018-02-17", + "refactor(examples): simplify todo atom handling" + ], + [ + "b5ee8e45", + "2018-02-17", + "refactor(atom): use @thi.ng/api/equiv as default History predicate" + ], + [ + "398c32af", + "2018-02-17", + "refactor(atom): don't mutate getter/setter path args, update updateIn" + ], + ["6f6e7e5b", "2018-02-17", "feat(atom): add getIn/setIn/updateIn"], + ["d38f47e0", "2018-02-16", "test(transducers): add range2d tests"], + [ + "722042b1", + "2018-02-16", + "feat(transducers): add range2d / range3d generators" + ], + ["47d5df09", "2018-02-15", "chore: update issue tpl"], + ["c9ec713f", "2018-02-15", "Create issue_template.md"], + ["4d1de860", "2018-02-08", "docs: update dep graph"], + ["3fc88b25", "2018-02-08", "Publish"], + [ + "445c8575", + "2018-02-08", + "refactor(transducers): re-use even/odd from @thi.ng/checks" + ], + [ + "68f8fc23", + "2018-02-08", + "feat(checks): add new predicates, refactor existing" + ], + [ + "080c2ee5", + "2018-02-07", + "fix(csp): fix #5, more example fixes (rfn calls)" + ], + ["a10a487c", "2018-02-07", "fix(csp): fix #5, example in readme"], + ["972a23e1", "2018-02-05", "style: update const/let assignments"], + ["623bc492", "2018-02-05", "refactor(examples): update webgl demo"], + ["5281d9a8", "2018-02-05", "feat(examples): add webgl example"], + ["eb12a165", "2018-02-04", "build: update upload-docs script"], + ["3ee6755f", "2018-02-04", "fix(examples): minor fixes index.html"], + [ + "855d8039", + "2018-02-04", + "feat(transducers): add page() xform, update readme" + ], + ["596ed7a2", "2018-02-04", "docs: update dep graph"], + ["17e447f6", "2018-02-04", "Publish"], + [ + "1f4f4b8c", + "2018-02-04", + "fix(hiccup-dom): support parent DOM ID as arg start()" + ], + ["d8fea714", "2018-02-03", "docs: update dep graph"], + ["3daf7962", "2018-02-03", "Publish"], + [ + "4edf45fc", + "2018-02-03", + "fix(hiccup-dom): fix #3, update start() to be cancellable, add docs" + ], + ["ae34f077", "2018-02-03", "docs(hiccup-dom): fix readme link"], + [ + "b6d95fbe", + "2018-02-03", + "feat(examples): add json demo theme support, update docs" + ], + [ + "83cd1a21", + "2018-02-03", + "refactor(examples): minor update json-components" + ], + ["edfaa6bd", "2018-02-03", "build(examples): update deps"], + ["07da7cca", "2018-02-03", "docs: update dep graph"], + ["c3b54f98", "2018-02-03", "Publish"], + [ + "b524145b", + "2018-02-03", + "feat(examples): add reactive json editor component" + ], + ["10c119b2", "2018-02-03", "refactor(hiccup-dom): minor update ILifeCycle"], + ["944cbb3b", "2018-02-03", "fix(hiccup-dom): add NO_SPANS config"], + ["d8fa4cae", "2018-02-03", "fix(examples): update index.html"], + ["d5460b70", "2018-02-03", "docs(hiccup-dom): update readme"], + ["5d8478e1", "2018-02-03", "fix(examples): add missing files"], + ["3156e888", "2018-02-03", "fix(examples): update deps"], + ["2e4e51c5", "2018-02-03", "feat(examples): add json component demo"], + [ + "f30579ce", + "2018-02-03", + "Merge branch 'master' of github.com:thi-ng/umbrella" + ], + ["adb04f07", "2018-02-03", "merge with #2"], + ["c09bb89d", "2018-02-03", "docs(hiccup-dom): add svg example links"], + ["aa48d3be", "2018-02-03", "feat(examples): add svg particles demo"], + ["1b007e69", "2018-02-03", "Merge pull request #2 from forresto/patch-1"], + ["7ae6af3b", "2018-02-02", "Is c 3 here?"], + ["96004efe", "2018-02-03", "docs(atom): fix readme example"], + ["8ebc6242", "2018-02-03", "docs(atom): update readme"], + ["ad62c56f", "2018-02-03", "build(examples): update deps"], + ["5aed12b6", "2018-02-03", "docs: update dep graph"], + ["99a943ac", "2018-02-03", "Publish"], + [ + "8106d16f", + "2018-02-02", + "build: update main package build commands, update make-example script, readme" + ], + [ + "309c7d7c", + "2018-02-02", + "build(examples): update example build commands" + ], + ["29267799", "2018-02-02", "refactor(examples): update event attribs"], + [ + "7cc5c93a", + "2018-02-02", + "refactor(hiccup-dom): update event attrib naming convention, update readme" + ], + [ + "7ae706eb", + "2018-02-02", + "feat(hiccup): skip fn exec for event attribs, update tests, readme" + ], + ["ab7154a8", "2018-02-02", "docs(hiccup-dom): update readme"], + ["38699b96", "2018-02-02", "docs(hiccup-dom): add diagram"], + ["62af1537", "2018-02-02", "docs: update dep graph"], + ["ec0132c6", "2018-02-02", "Publish"], + [ + "d134d5b7", + "2018-02-02", + "refactor(hiccup-dom): add interfaces (still unused)" + ], + ["324d2fa2", "2018-02-02", "docs(examples): add benchmark docs"], + ["448e8396", "2018-02-02", "perf(diff): add fail fasts"], + ["98485760", "2018-02-02", "refactor(checks): isPlainObject()"], + ["110a9deb", "2018-02-02", "fix(api): update compare() & equiv()"], + [ + "0f57ff90", + "2018-02-02", + "docs(atom): update readme, add history example" + ], + ["10d9ecbf", "2018-02-02", "docs(hiccup-dom): fix example link"], + ["17b43036", "2018-02-02", "docs(hiccup-dom): update readme"], + ["d573bc53", "2018-02-02", "docs: update hiccup* readme files"], + ["7cfca0d8", "2018-02-02", "docs: update main readme"], + ["e4f8fe16", "2018-02-02", "docs(hiccup-dom): update readme"], + ["c2fed170", "2018-02-02", "feat(examples): add hdom-basics example"], + ["5e6eb832", "2018-02-02", "chore: add make-example script"], + ["e69774df", "2018-02-02", "fix(examples): benchmark"], + ["e939586a", "2018-02-02", "feat(examples): add hdom benchmark"], + ["0a41be9e", "2018-02-01", "docs: fix readme"], + ["afb869b0", "2018-02-01", "docs: add/update readme files"], + ["d52630c6", "2018-02-01", "docs: update dep graph"], + ["10a4f910", "2018-02-01", "Publish"], + ["12590847", "2018-02-01", "docs: update dep graph"], + ["24ea4ca9", "2018-02-01", "docs: update readme files"], + [ + "25c9f785", + "2018-02-01", + "feat(atom,hiccup-dom): add example projects (todo list & dashboard)" + ], + ["1f6bb589", "2018-02-01", "fix(hiccup-dom): boolean attribs"], + [ + "8218814f", + "2018-02-01", + "fix(atom): truncate redo stack in record(), swap() return type" + ], + ["c5b6e0fa", "2018-02-01", "feat(atom): add History.canUndo/Redo()"], + ["36cc9561", "2018-02-01", "fix(atom): cursor swap() return type"], + ["094e4869", "2018-02-01", "docs(hiccup-dom): fix links in readme"], + ["d373cab1", "2018-02-01", "docs: update main readme"], + ["00ad5d84", "2018-02-01", "docs: update dep graph"], + ["794b1fd5", "2018-02-01", "Publish"], + ["326d3c31", "2018-02-01", "build: update .npmignore"], + ["3101698d", "2018-02-01", "feat(hiccup-dom): add start(), update readme"], + ["beebe435", "2018-02-01", "chore: update keywords for all packages"], + ["5d7c10a3", "2018-02-01", "test(rstream): fix tests (TS 2.7.*)"], + ["4cc4bbc0", "2018-02-01", "build: cleanup/update deps"], + ["30ffd009", "2018-02-01", "feat(hiccup-dom): re-import package (MBP2010)"], + ["4d0d437b", "2018-02-01", "feat(diff): re-import diff package (MBP2010)"], + [ + "0439d24b", + "2018-02-01", + "refactor(hiccup): update/add deps, restructure/split into sub-modules" + ], + [ + "febe39f1", + "2018-02-01", + "fix(transducers): update comp() for typescript 2.7.*" + ], + ["a580f722", "2018-02-01", "build: update deps (typescript & typedoc)"], + ["ea638bef", "2018-02-01", "feat(rstream): add Cache subscription class"], + [ + "1354e298", + "2018-02-01", + "fix(api): fix equiv string handling, update tests" + ], + [ + "878520e6", + "2018-02-01", + "feat(api): update equiv() null handling, add tests" + ], + ["03c1d97a", "2018-01-31", "docs: update dep graph"], + ["5a3c0cce", "2018-01-31", "Publish"], + [ + "59d2a8a1", + "2018-01-31", + "docs(rstream): add undo/redo example to readme" + ], + [ + "54cd5261", + "2018-01-31", + "fix(rstream): subscription unhandled error handling" + ], + ["4c703cd4", "2018-01-31", "docs: update dep graph"], + ["92a923cf", "2018-01-31", "Publish"], + ["365e0d2b", "2018-01-31", "build: update main package commands"], + [ + "d58cf70d", + "2018-01-31", + "feat(rstream): add changed predicate for fromAtom(), add tests" + ], + ["dd155dfd", "2018-01-31", "docs(atom): add docs for getter/setter"], + [ + "55383621", + "2018-01-31", + "feat(atom): add full IAtom impl for History, update tests" + ], + ["4753afb8", "2018-01-31", "refactor(transducers): use Predicate2"], + ["79989e52", "2018-01-31", "refactor(dcons): use Predicate"], + ["42bbb864", "2018-01-31", "refactor(iterators): use Predicate/Predicate2"], + [ + "fbf8453c", + "2018-01-31", + "feat(api): add Predicate2 & StatefulPredicate2 types" + ], + ["b180917c", "2018-01-31", "docs: update dep graph"], + ["2746e8b3", "2018-01-31", "Publish"], + ["911ff183", "2018-01-31", "test(atom): add/update tests"], + [ + "e1b57dea", + "2018-01-31", + "feat(atom): add IReset/ISwap impls for History" + ], + ["282d9896", "2018-01-31", "fix(atom): cursor ctor arg checks"], + [ + "74ecdf18", + "2018-01-31", + "refactor(atom): extract IReset, ISwap from IAtom" + ], + ["035c51a3", "2018-01-31", "feat(atom): add History, add/update tests"], + ["2c88537e", "2018-01-30", "fix: links in readme"], + ["bbbc869c", "2018-01-30", "deploy: add upload-docs script"], + ["dee5f53c", "2018-01-30", "docs: update readme"], + ["da037723", "2018-01-30", "docs: update dep graph"], + ["95c728e0", "2018-01-30", "Publish"], + ["7f345bcc", "2018-01-30", "chore: update make-module"], + [ + "22b02a2d", + "2018-01-29", + "build: add main package commands, update readme" + ], + ["768f2ea7", "2018-01-29", "chore: update ignore files"], + ["0b5ca037", "2018-01-29", "build: add nyc coverage dev deps & commands"], + ["dc0958b7", "2018-01-29", "chore: update ignore files"], + ["c863018c", "2018-01-29", "test(iterator): add/update tests"], + ["f6530225", "2018-01-29", "docs: update dep graph"], + ["a508b05e", "2018-01-29", "Publish"], + [ + "4c242c93", + "2018-01-29", + "test(rstream): remove sidechainPartition interval test due to unpredictable timing" + ], + [ + "382aa05e", + "2018-01-29", + "fix(rstream): fatal recursion w/ error handling" + ], + ["1a0004f7", "2018-01-29", "test(rstream): increase timeout for travis"], + ["7bdc5617", "2018-01-29", "docs(iterators): update readme"], + ["651d07c0", "2018-01-29", "refactor(iterators): remove default exports"], + ["1e9dc852", "2018-01-29", "docs: add links for badges"], + ["925645ae", "2018-01-29", "docs: add travis badge"], + ["2d42787c", "2018-01-29", "build: update travis.yml"], + ["dfbd7efe", "2018-01-29", "docs(transducers): update padLast docs"], + [ + "e6477679", + "2018-01-29", + "test: add travis.yml, update main package / readme" + ], + ["9c2db625", "2018-01-29", "chore: update make-module script"], + ["6a125e83", "2018-01-29", "test: add test stubs, fix existing"], + ["b952a357", "2018-01-29", "build: update/fix all tsconfig files"], + ["85b280bf", "2018-01-29", "build: update commands in all packages"], + ["94333dfd", "2018-01-29", "test(atom): add/update tests"], + ["17d5c999", "2018-01-29", "docs: update dep graph"], + ["83b6e1a1", "2018-01-29", "Publish"], + [ + "5dce8a2f", + "2018-01-29", + "feat(atom): add nested path getter / setter compilers" + ], + ["1ae5f635", "2018-01-29", "docs: update dep graph"], + ["1ef8b45d", "2018-01-29", "Publish"], + ["b526376c", "2018-01-29", "docs: update readme"], + ["71c40ad0", "2018-01-29", "docs: update readme"], + ["ccd8e820", "2018-01-29", "test(rstream): update tests (fromPromise())"], + [ + "822b297f", + "2018-01-29", + "fix(rstream): fix #1 update fromPromise(), add test" + ], + [ + "33b3e16c", + "2018-01-29", + "chore: update package cmds & make-module script" + ], + ["1abd3cd1", "2018-01-29", "chore: add license files"], + ["0abfc62d", "2018-01-29", "docs(all) update dep graph"], + ["435c771f", "2018-01-29", "Publish"], + [ + "cca801b7", + "2018-01-29", + "fix(atom): cursor IWatch impls (replace stubs)" + ], + ["318e62ba", "2018-01-29", "docs: update main readme"], + ["5ca9b983", "2018-01-29", "chore: update make-module script"], + ["e45f3bd7", "2018-01-29", "chore(all): update depgraph commit msg format"], + [ + "d774e324", + "2018-01-29", + "perf(transducers): avoid result object cloning in struct() xform" + ], + ["ac12051f", "2018-01-29", "update dep graph"], + ["28771016", "2018-01-29", "Publish"], + [ + "1bc6ee6f", + "2018-01-29", + "build(rstream-csp): minor fix package & readme" + ], + [ + "ca3994ad", + "2018-01-29", + "feat(rstream): add atom dep, add fromAtom() & docs" + ], + [ + "04c3d592", + "2018-01-29", + "feat(atom): add Cursor, update interfaces, types, readme" + ], + [ + "52c25a84", + "2018-01-28", + "build(all): add tslint workspace dev dependency" + ], + [ + "fefc2835", + "2018-01-28", + "feat(atom): re-import atom package from MBP2010, update main readme" + ], + [ + "bddd5ce7", + "2018-01-28", + "feat(api): update IWatch & mixin, boolean returns" + ], + ["55ba0e13", "2018-01-28", "feat(rstream): add fromPromises(), add docs"], + ["2247f72f", "2018-01-28", "feat(rstream): add trace() error handler"], + ["ababaa1c", "2018-01-28", "docs(all): update readme"], + ["68e38136", "2018-01-28", "update dep graph"], + ["a87badef", "2018-01-28", "Publish"], + ["f83bd18e", "2018-01-28", "docs(rstream-csp): fix readme example"], + [ + "a6e49b34", + "2018-01-28", + "build(all): fix depgraph command in main package" + ], + ["d376f872", "2018-01-28", "update dep graph"], + ["8b53d6e1", "2018-01-28", "Publish"], + ["079a052c", "2018-01-28", "docs(all): update main readme, add dep graph"], + ["03ad992a", "2018-01-28", "chore(all): update ignore files"], + ["eb49e575", "2018-01-28", "test(csp): update test examples"], + ["13f0bd12", "2018-01-28", "test(hiccup): refactor all tests"], + [ + "c677539f", + "2018-01-28", + "build(all): update lerna config, main package, add make-module script" + ], + ["fcd01ba6", "2018-01-28", "build(rstream-log): update deps"], + ["28eee5f3", "2018-01-28", "build(transducers): update deps"], + [ + "174aaba7", + "2018-01-28", + "docs(transducers): update readme & doc comments" + ], + ["c2211223", "2018-01-28", "docs(rstream): update readme & doc comments"], + [ + "e37f6a13", + "2018-01-28", + "feat(rstream-csp): add new package, remove CSP dep from rstream" + ], + ["c74353b1", "2018-01-28", "feat(api): add StatefulPredicate"], + [ + "7b21aa64", + "2018-01-27", + "feat(transducers): add noop() xform, update readme" + ], + ["44db970b", "2018-01-27", "fix(transducers): scan() complete handling"], + ["b7c62341", "2018-01-27", "docs(transducers): update readme, add docs"], + [ + "45d6bc66", + "2018-01-27", + "feat(transducers): update re-exports, extract throttleTime() into own file" + ], + [ + "8e5204d2", + "2018-01-27", + "fix(transducers): add \"complete\" step handling in scan()" + ], + [ + "e1a282cb", + "2018-01-27", + "feat(transducers): update throttle(), refactor take/dropNth" + ], + ["0b3c7860", "2018-01-27", "feat(transducers): add labeled() xform"], + ["931b67f7", "2018-01-27", "feat(transducers): add multiplexObj()"], + ["63344e45", "2018-01-27", "feat(transducers): add every(), some() rfns"], + [ + "e555ff55", + "2018-01-27", + "feat(transducers): update re-exports, minor update reductions()" + ], + [ + "4b8d037a", + "2018-01-27", + "feat(transducers): update frequencies() & groupByMap()" + ], + [ + "e268e356", + "2018-01-27", + "refactor(transducers): rename join() => str() rfn" + ], + [ + "beb2cee8", + "2018-01-27", + "feat(transducers): add multiplex() xform & docs" + ], + [ + "1f32fc0c", + "2018-01-27", + "feat(transducers): update step() to support multiple results" + ], + [ + "58f14775", + "2018-01-27", + "refactor(transducers): udate cat() to accept iterables, not just arrays" + ], + [ + "e50fa261", + "2018-01-27", + "feat(transducers): add utf8Encode()/utf8Decode() xforms" + ], + ["57ceecee", "2018-01-26", "Publish"], + ["76c67349", "2018-01-26", "fix(rstream-log): imports"], + ["eb31ec6a", "2018-01-26", "build(rstream): 0.5.1 publish"], + ["22f1b6af", "2018-01-26", "build(all): fix repo links in all packages"], + ["c776df18", "2018-01-26", "build(all): fix pub script aliases"], + ["32fc705a", "2018-01-26", "Publish"], + [ + "de4e8192", + "2018-01-26", + "refactor(rstream): allow extra props in ISubscriber" + ], + ["fdc08897", "2018-01-26", "test(rstream): update promise tests"], + [ + "4bb9f918", + "2018-01-26", + "fix(rstream): Resolver error/rejection handling" + ], + [ + "23e38f79", + "2018-01-26", + "fix(rstream): only handle done() in IDLE or ACTIVE states, else ignore" + ], + ["b4f87853", "2018-01-26", "test(rstream): add/update tests"], + ["3d2f8b91", "2018-01-26", "fix(rstream): fromPromise() error handling"], + [ + "a0647fed", + "2018-01-26", + "refactor(rstream): update/fix Subscription.error() handling" + ], + ["3172eb6d", "2018-01-26", "test(rstream): add transducer test"], + [ + "9cf95541", + "2018-01-26", + "refactor(rstream): change SidechainToggle ctor arg order, add tests" + ], + ["d36a9ff8", "2018-01-26", "feat(rstream): add fromIterableSync()"], + [ + "f1956922", + "2018-01-26", + "feat(rstream): Stream calls done() w/ last unsub" + ], + ["0039ef38", "2018-01-26", "test(rstream): add/update tests"], + [ + "ec985b33", + "2018-01-26", + "feat(rstream): make Stream source arg optional" + ], + ["d3cbda2a", "2018-01-26", "test(rstream): add/update tests"], + ["91e8cad5", "2018-01-26", "feat(rstream): update StreamMerge"], + [ + "887c29bb", + "2018-01-26", + "refactor(rstream): add Subscription.ensureState()" + ], + ["7d066773", "2018-01-26", "test(rstream): add tests for fromIterable()"], + [ + "8019422f", + "2018-01-26", + "feat(rstream): add DEBUG flag to toggle tracing" + ], + [ + "ad548627", + "2018-01-25", + "feat(rstream): allow partial ISubscriber's for subscribe()" + ], + ["55c3b041", "2018-01-25", "fix(rstream-log): update module re-exports"], + [ + "5c85ab9b", + "2018-01-25", + "fix(rstream): update fromPromise() cancellation" + ], + ["0f601d5c", "2018-01-25", "fix(rstream): Stream.cancel()"], + [ + "19f27b94", + "2018-01-25", + "refactor(rstream): update ISubscriber.error() impls" + ], + ["0acf4e22", "2018-01-25", "Publish"], + [ + "f6ca3f33", + "2018-01-25", + "feat(rstream): add sidechainToggle(), minor update sidechainPartition()" + ], + ["2557c3b3", "2018-01-25", "Publish"], + [ + "4048bec4", + "2018-01-25", + "feat(rstream-log): add support for body formatter (formatString()), add type aliases" + ], + [ + "bc26d097", + "2018-01-25", + "feat(rstream-log): add node check for writeFile()" + ], + ["8304c825", "2018-01-25", "feat(rstream-log): add ILogger"], + [ + "eef65b9e", + "2018-01-25", + "fix(rstream): don't throw resolve() error, only warning msg" + ], + [ + "4e5a2ee1", + "2018-01-25", + "feat(rstream): add fromRAF() fallback for node, add docs" + ], + [ + "592a2423", + "2018-01-25", + "fix(rstream): subscription generics if transducer is used" + ], + ["898be349", "2018-01-25", "Publish"], + ["007f361f", "2018-01-25", "docs(transducers): add/update docs"], + [ + "a2c3bc42", + "2018-01-25", + "refactor(transducers): update reverse(), add deps" + ], + [ + "0c116c1c", + "2018-01-25", + "refactor(transducers): simplify concat(), add docs" + ], + [ + "b3ce275b", + "2018-01-24", + "fix(transducers): include 1st val in benchmark()" + ], + ["75bb161c", "2018-01-24", "fix(transducers): base64 imports"], + ["e290d759", "2018-01-24", "fix(all): project links in readme files"], + ["dc145a55", "2018-01-24", "fix(main): readme"], + ["358d5abf", "2018-01-24", "Publish"], + ["00f9c12b", "2018-01-24", "update packages (npm publishConfig)"], + [ + "04ff6e9c", + "2018-01-24", + "feat(all): initial re-import as monorepo, update readme files, cleanup imports" + ] +] diff --git a/examples/hdom-vscroller/src/index.ts b/examples/hdom-vscroller/src/index.ts index 3cfe6422b9..627f697859 100644 --- a/examples/hdom-vscroller/src/index.ts +++ b/examples/hdom-vscroller/src/index.ts @@ -36,19 +36,19 @@ const queryFilter = (_: any, query: EventListener, items: any[]) => [ "div.pv2.ph3.bg-black.white", "Filter: ", ["input", { type: "text", oninput: setQuery, value: query }], - ` (${items.length})` + ` (${items.length})`, ]; const repoLink = (_: any, sha: string, body: any) => [ "a.link.blue", { href: `${REPO_BASE}commit/${sha}` }, - body + body, ]; const packageLink = (_: any, name: any) => [ "a.link.blue", { href: `${REPO_BASE}tree/develop/packages/${name.substr(8)}` }, - name + name, ]; const commit = (i: number, [sha, date, msg]: Commit) => [ @@ -56,15 +56,15 @@ const commit = (i: number, [sha, date, msg]: Commit) => [ ["div.dib.w-30.w-20-m.w-10-l.ph3", date], [ "div.dib.w-70.w-80-m.w-90-l.ph3.overflow-x-hidden.nowrap", - [repoLink, sha, msg] - ] + [repoLink, sha, msg], + ], ]; const pkgSummary = ([name, desc]: Package) => [ "div.flex.items-center.lh-copy.pa3.ph0-l.bb.b--black-10", { style: { height: "96px" } }, ["img.w2.h2", { src: LOGO }], - ["div.pl3.flex-auto.f7", ["h3.ma0", [packageLink, name]], desc] + ["div.pl3.flex-auto.f7", ["h3.ma0", [packageLink, name]], desc], ]; const app = () => [ @@ -80,7 +80,7 @@ const app = () => [ numVisible: 10, numItems: filtered.length, itemHeight: 31, - items: mapIndexed(commit, 0, filtered) + items: mapIndexed(commit, 0, filtered), }), ["h3.ph2", "Packages"], virtualScroller({ @@ -93,8 +93,8 @@ const app = () => [ numVisible: 2, numItems: PACKAGES.length, itemHeight: 96, - items: map(pkgSummary, PACKAGES) - }) + items: map(pkgSummary, PACKAGES), + }), ]; const cancel = start(app); diff --git a/examples/hdom-vscroller/src/packages.json b/examples/hdom-vscroller/src/packages.json index 8b070eaa3f..170e47c293 100644 --- a/examples/hdom-vscroller/src/packages.json +++ b/examples/hdom-vscroller/src/packages.json @@ -1 +1,245 @@ -[["@thi.ng/api","Common, generic types & interfaces for thi.ng projects"],["@thi.ng/associative","Alternative Set & Map data type implementations with customizable equality semantics & supporting operations"],["@thi.ng/atom","Mutable wrappers for nested immutable values w/ optional undo/redo history"],["@thi.ng/bench","Basic benchmarking helpers"],["@thi.ng/bencode","TODO"],["@thi.ng/binary","Assorted binary / bitwise operations, conversions, utilities."],["@thi.ng/bitstream","ES6 iterator based read/write bit streams & support for variable word widths"],["@thi.ng/cache","In-memory cache implementations with ES6 Map-like API and different eviction strategies"],["@thi.ng/checks","Single-function sub-modules for type, feature & value checks"],["@thi.ng/color","TODO"],["@thi.ng/compare","Comparator with optional delegation for types implementing @thi.ng/api/ICompare interface"],["@thi.ng/compose","Arity-optimized functional composition helpers"],["@thi.ng/csp","ES6 promise based CSP implementation"],["@thi.ng/dcons","Comprehensive doubly linked list structure w/ iterator support"],["@thi.ng/defmulti","Dynamically extensible multiple dispatch via user supplied dispatch function."],["@thi.ng/dgraph","Type-agnostic directed acyclic graph (DAG) & graph operations"],["@thi.ng/diff","Array & object Diff"],["@thi.ng/dlogic","Assorted digital logic ops / constructs."],["@thi.ng/dot","Graphviz DOM abstraction as vanilla JS objects & serialization to DOT format"],["@thi.ng/dsp","Assorted DSP utils, oscillators etc."],["@thi.ng/equiv","Extensible deep equivalence checking for any data types"],["@thi.ng/errors","Custom error types and helper fns."],["@thi.ng/fsm","Composable primitives for building declarative, transducer based Finite-State machines & parsers for arbitrary data streams"],["@thi.ng/geom","TODO"],["@thi.ng/geom-accel","nD spatial indexing data structures"],["@thi.ng/geom-api","Shared type & interface declarations for @thi.ng/geom packages"],["@thi.ng/geom-arc","2D circular / elliptic arc operations"],["@thi.ng/geom-clip","2D line & convex polygon clipping (Liang-Barsky / Sutherland-Hodgeman)"],["@thi.ng/geom-closest-point","Closest point / proximity helpers"],["@thi.ng/geom-hull","Fast 2D convex hull (Graham Scan)"],["@thi.ng/geom-isec","2D/3D shape intersection checks"],["@thi.ng/geom-isoline","Fast 2D contour line extraction / generation"],["@thi.ng/geom-poly-utils","Polygon / triangle analysis & processing utilities"],["@thi.ng/geom-resample","Customizable nD polyline interpolation, re-sampling, splitting & nearest point computation"],["@thi.ng/geom-splines","nD cubic & quadratic curve analysis, conversion, interpolation, splitting"],["@thi.ng/geom-subdiv-curve","Freely customizable, iterative subdivision curves for open / closed input geometries"],["@thi.ng/geom-tessellate","2D/3D polygon tessellators"],["@thi.ng/geom-voronoi","Fast, incremental 2D Delaunay & Voronoi mesh implementation"],["@thi.ng/hdom","Lightweight vanilla ES6 UI component trees with customizable branch-local behaviors"],["@thi.ng/hdom-canvas","Declarative canvas scenegraph & visualization for @thi.ng/hdom"],["@thi.ng/hdom-components","Raw, skinnable UI & SVG components for @thi.ng/hdom"],["@thi.ng/hdom-mock","Mock base implementation for @thi.ng/hdom API"],["@thi.ng/heaps","Generic binary heap & d-ary heap implementations with customizable ordering"],["@thi.ng/hiccup","HTML/SVG/XML serialization of nested data structures, iterables & closures"],["@thi.ng/hiccup-carbon-icons","TODO"],["@thi.ng/hiccup-css","CSS from nested JS data structures"],["@thi.ng/hiccup-markdown","Markdown serialization of hiccup DOM trees"],["@thi.ng/hiccup-svg","SVG element functions for @thi.ng/hiccup & @thi.ng/hdom"],["@thi.ng/iges","IGES 5.3 serializer for (currently only) polygonal geometry, both open & closed"],["@thi.ng/interceptors","Interceptor based event bus, side effect & immutable state handling"],["@thi.ng/intervals","Closed/open/semi-open interval data type, queries & operations"],["@thi.ng/iterators","clojure.core inspired, composable ES6 iterators & generators"],["@thi.ng/malloc","ArrayBuffer based malloc() impl for hybrid JS/WASM use cases, based on thi.ng/tinyalloc"],["@thi.ng/math","Assorted common math functions & utilities"],["@thi.ng/matrices","Matrix & quaternion operations for 2D/3D geometry processing"],["@thi.ng/memoize","Function memoization with configurable caches"],["@thi.ng/morton","Z-order-curve / Morton encoding & decoding for 1D, 2D, 3D"],["@thi.ng/paths","immutable, optimized path-based object property / array accessors"],["@thi.ng/pointfree","Pointfree functional composition / Forth style stack execution engine"],["@thi.ng/pointfree-lang","Forth style syntax layer/compiler for the @thi.ng/pointfree DSL"],["@thi.ng/poisson","nD Poisson-disc sampling w/ support for spatial density functions and custom PRNGs"],["@thi.ng/quad-edge","Quadedge data structure after Guibas & Stolfi"],["@thi.ng/random","Pseudo-random number generators w/ unified API"],["@thi.ng/range-coder","Binary data range encoder / decoder"],["@thi.ng/resolve-map","DAG resolution of vanilla objects & arrays with internally linked values"],["@thi.ng/rle-pack","Binary run-length encoding packer w/ flexible repeat bit widths"],["@thi.ng/router","Generic router for browser & non-browser based applications"],["@thi.ng/rstream","Reactive multi-tap streams, dataflow & transformation pipeline constructs"],["@thi.ng/rstream-csp","@thi.ng/csp bridge module for @thi.ng/rstream"],["@thi.ng/rstream-dot","Graphviz DOT conversion of @thi.ng/rstream dataflow graph topologies"],["@thi.ng/rstream-gestures","Unified mouse, mouse wheel & single-touch event stream abstraction"],["@thi.ng/rstream-graph","Declarative dataflow graph construction for @thi.ng/rstream"],["@thi.ng/rstream-log","Structured, multilevel & hierarchical loggers based on @thi.ng/rstream"],["@thi.ng/rstream-query","@thi.ng/rstream based triple store & reactive query engine"],["@thi.ng/sax","Transducer-based, SAX-like, non-validating, speedy & tiny XML parser"],["@thi.ng/strings","Various string formatting & utility functions"],["@thi.ng/transducers","Lightweight transducer implementations for ES6 / TypeScript"],["@thi.ng/transducers-binary","TODO"],["@thi.ng/transducers-fsm","Transducer-based Finite State Machine transformer"],["@thi.ng/transducers-hdom","Transducer based UI updater for @thi.ng/hdom"],["@thi.ng/transducers-stats","Transducers for statistical / technical analysis"],["@thi.ng/unionstruct","C-style struct, union and bitfield views of ArrayBuffers"],["@thi.ng/vector-pools","TODO"],["@thi.ng/vectors","Optimized 2d/3d/4d and arbitrary length vector operations"]] \ No newline at end of file +[ + ["@thi.ng/api", "Common, generic types & interfaces for thi.ng projects"], + [ + "@thi.ng/associative", + "Alternative Set & Map data type implementations with customizable equality semantics & supporting operations" + ], + [ + "@thi.ng/atom", + "Mutable wrappers for nested immutable values w/ optional undo/redo history" + ], + ["@thi.ng/bench", "Basic benchmarking helpers"], + ["@thi.ng/bencode", "TODO"], + [ + "@thi.ng/binary", + "Assorted binary / bitwise operations, conversions, utilities." + ], + [ + "@thi.ng/bitstream", + "ES6 iterator based read/write bit streams & support for variable word widths" + ], + [ + "@thi.ng/cache", + "In-memory cache implementations with ES6 Map-like API and different eviction strategies" + ], + [ + "@thi.ng/checks", + "Single-function sub-modules for type, feature & value checks" + ], + ["@thi.ng/color", "TODO"], + [ + "@thi.ng/compare", + "Comparator with optional delegation for types implementing @thi.ng/api/ICompare interface" + ], + ["@thi.ng/compose", "Arity-optimized functional composition helpers"], + ["@thi.ng/csp", "ES6 promise based CSP implementation"], + [ + "@thi.ng/dcons", + "Comprehensive doubly linked list structure w/ iterator support" + ], + [ + "@thi.ng/defmulti", + "Dynamically extensible multiple dispatch via user supplied dispatch function." + ], + [ + "@thi.ng/dgraph", + "Type-agnostic directed acyclic graph (DAG) & graph operations" + ], + ["@thi.ng/diff", "Array & object Diff"], + ["@thi.ng/dlogic", "Assorted digital logic ops / constructs."], + [ + "@thi.ng/dot", + "Graphviz DOM abstraction as vanilla JS objects & serialization to DOT format" + ], + ["@thi.ng/dsp", "Assorted DSP utils, oscillators etc."], + [ + "@thi.ng/equiv", + "Extensible deep equivalence checking for any data types" + ], + ["@thi.ng/errors", "Custom error types and helper fns."], + [ + "@thi.ng/fsm", + "Composable primitives for building declarative, transducer based Finite-State machines & parsers for arbitrary data streams" + ], + ["@thi.ng/geom", "TODO"], + ["@thi.ng/geom-accel", "nD spatial indexing data structures"], + [ + "@thi.ng/geom-api", + "Shared type & interface declarations for @thi.ng/geom packages" + ], + ["@thi.ng/geom-arc", "2D circular / elliptic arc operations"], + [ + "@thi.ng/geom-clip", + "2D line & convex polygon clipping (Liang-Barsky / Sutherland-Hodgeman)" + ], + ["@thi.ng/geom-closest-point", "Closest point / proximity helpers"], + ["@thi.ng/geom-hull", "Fast 2D convex hull (Graham Scan)"], + ["@thi.ng/geom-isec", "2D/3D shape intersection checks"], + ["@thi.ng/geom-isoline", "Fast 2D contour line extraction / generation"], + [ + "@thi.ng/geom-poly-utils", + "Polygon / triangle analysis & processing utilities" + ], + [ + "@thi.ng/geom-resample", + "Customizable nD polyline interpolation, re-sampling, splitting & nearest point computation" + ], + [ + "@thi.ng/geom-splines", + "nD cubic & quadratic curve analysis, conversion, interpolation, splitting" + ], + [ + "@thi.ng/geom-subdiv-curve", + "Freely customizable, iterative subdivision curves for open / closed input geometries" + ], + ["@thi.ng/geom-tessellate", "2D/3D polygon tessellators"], + [ + "@thi.ng/geom-voronoi", + "Fast, incremental 2D Delaunay & Voronoi mesh implementation" + ], + [ + "@thi.ng/hdom", + "Lightweight vanilla ES6 UI component trees with customizable branch-local behaviors" + ], + [ + "@thi.ng/hdom-canvas", + "Declarative canvas scenegraph & visualization for @thi.ng/hdom" + ], + [ + "@thi.ng/hdom-components", + "Raw, skinnable UI & SVG components for @thi.ng/hdom" + ], + ["@thi.ng/hdom-mock", "Mock base implementation for @thi.ng/hdom API"], + [ + "@thi.ng/heaps", + "Generic binary heap & d-ary heap implementations with customizable ordering" + ], + [ + "@thi.ng/hiccup", + "HTML/SVG/XML serialization of nested data structures, iterables & closures" + ], + ["@thi.ng/hiccup-carbon-icons", "TODO"], + ["@thi.ng/hiccup-css", "CSS from nested JS data structures"], + ["@thi.ng/hiccup-markdown", "Markdown serialization of hiccup DOM trees"], + [ + "@thi.ng/hiccup-svg", + "SVG element functions for @thi.ng/hiccup & @thi.ng/hdom" + ], + [ + "@thi.ng/iges", + "IGES 5.3 serializer for (currently only) polygonal geometry, both open & closed" + ], + [ + "@thi.ng/interceptors", + "Interceptor based event bus, side effect & immutable state handling" + ], + [ + "@thi.ng/intervals", + "Closed/open/semi-open interval data type, queries & operations" + ], + [ + "@thi.ng/iterators", + "clojure.core inspired, composable ES6 iterators & generators" + ], + [ + "@thi.ng/malloc", + "ArrayBuffer based malloc() impl for hybrid JS/WASM use cases, based on thi.ng/tinyalloc" + ], + ["@thi.ng/math", "Assorted common math functions & utilities"], + [ + "@thi.ng/matrices", + "Matrix & quaternion operations for 2D/3D geometry processing" + ], + ["@thi.ng/memoize", "Function memoization with configurable caches"], + [ + "@thi.ng/morton", + "Z-order-curve / Morton encoding & decoding for 1D, 2D, 3D" + ], + [ + "@thi.ng/paths", + "immutable, optimized path-based object property / array accessors" + ], + [ + "@thi.ng/pointfree", + "Pointfree functional composition / Forth style stack execution engine" + ], + [ + "@thi.ng/pointfree-lang", + "Forth style syntax layer/compiler for the @thi.ng/pointfree DSL" + ], + [ + "@thi.ng/poisson", + "nD Poisson-disc sampling w/ support for spatial density functions and custom PRNGs" + ], + ["@thi.ng/quad-edge", "Quadedge data structure after Guibas & Stolfi"], + ["@thi.ng/random", "Pseudo-random number generators w/ unified API"], + ["@thi.ng/range-coder", "Binary data range encoder / decoder"], + [ + "@thi.ng/resolve-map", + "DAG resolution of vanilla objects & arrays with internally linked values" + ], + [ + "@thi.ng/rle-pack", + "Binary run-length encoding packer w/ flexible repeat bit widths" + ], + [ + "@thi.ng/router", + "Generic router for browser & non-browser based applications" + ], + [ + "@thi.ng/rstream", + "Reactive multi-tap streams, dataflow & transformation pipeline constructs" + ], + ["@thi.ng/rstream-csp", "@thi.ng/csp bridge module for @thi.ng/rstream"], + [ + "@thi.ng/rstream-dot", + "Graphviz DOT conversion of @thi.ng/rstream dataflow graph topologies" + ], + [ + "@thi.ng/rstream-gestures", + "Unified mouse, mouse wheel & single-touch event stream abstraction" + ], + [ + "@thi.ng/rstream-graph", + "Declarative dataflow graph construction for @thi.ng/rstream" + ], + [ + "@thi.ng/rstream-log", + "Structured, multilevel & hierarchical loggers based on @thi.ng/rstream" + ], + [ + "@thi.ng/rstream-query", + "@thi.ng/rstream based triple store & reactive query engine" + ], + [ + "@thi.ng/sax", + "Transducer-based, SAX-like, non-validating, speedy & tiny XML parser" + ], + ["@thi.ng/strings", "Various string formatting & utility functions"], + [ + "@thi.ng/transducers", + "Lightweight transducer implementations for ES6 / TypeScript" + ], + ["@thi.ng/transducers-binary", "TODO"], + [ + "@thi.ng/transducers-fsm", + "Transducer-based Finite State Machine transformer" + ], + [ + "@thi.ng/transducers-hdom", + "Transducer based UI updater for @thi.ng/hdom" + ], + [ + "@thi.ng/transducers-stats", + "Transducers for statistical / technical analysis" + ], + [ + "@thi.ng/unionstruct", + "C-style struct, union and bitfield views of ArrayBuffers" + ], + ["@thi.ng/vector-pools", "TODO"], + [ + "@thi.ng/vectors", + "Optimized 2d/3d/4d and arbitrary length vector operations" + ] +] diff --git a/examples/hdom-vscroller/src/vscroller.ts b/examples/hdom-vscroller/src/vscroller.ts index c7c23efa54..089e11abc1 100644 --- a/examples/hdom-vscroller/src/vscroller.ts +++ b/examples/hdom-vscroller/src/vscroller.ts @@ -1,10 +1,5 @@ import { Fn2 } from "@thi.ng/api"; -import { - comp, - drop, - iterator, - take -} from "@thi.ng/transducers"; +import { comp, drop, iterator, take } from "@thi.ng/transducers"; interface VScrollOpts { /** @@ -45,7 +40,7 @@ export const virtualScroller = ({ numVisible, numItems, itemHeight, - items + items, }: VScrollOpts) => [ "div.overflow-y-scroll", { @@ -59,18 +54,19 @@ export const virtualScroller = ({ }, scrollTop: top, style: { - height: `${numVisible * itemHeight}px` - } + height: `${numVisible * itemHeight}px`, + }, }, [ "div", { style: { height: `${numItems * itemHeight}px`, - "padding-top": `${Math.min(start, numItems - numVisible) * - itemHeight}px` - } + "padding-top": `${ + Math.min(start, numItems - numVisible) * itemHeight + }px`, + }, }, - iterator(comp(drop(start), take(numVisible + 1)), items) - ] + iterator(comp(drop(start), take(numVisible + 1)), items), + ], ]; diff --git a/examples/hmr-basics/src/app.ts b/examples/hmr-basics/src/app.ts index 281c654525..a9123b8cdc 100644 --- a/examples/hmr-basics/src/app.ts +++ b/examples/hmr-basics/src/app.ts @@ -11,26 +11,26 @@ export const app = ({ now, state }: any) => [ "ul.ma0.pv3.bb", [item, "Now:", now], [item, "Launched at:", state.launched], - [item, "Seed:", state.seed] + [item, "Seed:", state.seed], ], [ "div.mt3", "Edit ", [repoLink, "src/app.ts"], - " to see hot module replacement in action." - ] + " to see hot module replacement in action.", + ], ]; const item = (_: any, label: string, value: any) => [ "li", ["span.dib.b.w4", label], - value + value, ]; const repoLink = (_: any, file: string) => [ "a.pa1.link.black.bg-light-gray", { - href: `https://github.com/thi-ng/umbrella/tree/develop/examples/hmr-basics/${file}` + href: `https://github.com/thi-ng/umbrella/tree/develop/examples/hmr-basics/${file}`, }, - file + file, ]; diff --git a/examples/hmr-basics/src/index.ts b/examples/hmr-basics/src/index.ts index 224542117d..0ccd288af8 100644 --- a/examples/hmr-basics/src/index.ts +++ b/examples/hmr-basics/src/index.ts @@ -8,8 +8,8 @@ import { state } from "./state"; const ui = sync({ src: { state: fromAtom(state), - now: fromInterval(1000).transform(map((_) => new Date())) - } + now: fromInterval(1000).transform(map((_) => new Date())), + }, }); // then transform using root component function // and hdom differential DOM updater diff --git a/examples/hmr-basics/src/state.ts b/examples/hmr-basics/src/state.ts index b3c7dbc027..a41ea7c0b3 100644 --- a/examples/hmr-basics/src/state.ts +++ b/examples/hmr-basics/src/state.ts @@ -10,6 +10,6 @@ export const state = defonce( () => new Atom({ launched: new Date(), - seed: (Math.random() * 100) | 0 + seed: (Math.random() * 100) | 0, }) ); diff --git a/examples/hydrate-basics/src/index.ts b/examples/hydrate-basics/src/index.ts index f909e33471..b4603aa323 100644 --- a/examples/hydrate-basics/src/index.ts +++ b/examples/hydrate-basics/src/index.ts @@ -7,7 +7,7 @@ import type { IDeref } from "@thi.ng/api"; // basic state container const state = new Atom({ bg: "red", - freq: 0.01 + freq: 0.01, }); // state updates @@ -18,7 +18,7 @@ const setFreq = (x: number) => state.resetIn(["freq"], x); const app = () => { // HOF canvas component w/ life cycle methods see for further // reference: - // https://github.com/thi-ng/umbrella/blob/master/packages/hdom-components/src/canvas.ts + // https://github.com/thi-ng/umbrella/blob/develop/packages/hdom-components/src/canvas.ts // // when serializing to html only the component's `render` method // will be invoked. the component's `init` is invoked later when @@ -36,7 +36,7 @@ const app = () => { ctx.lineTo(x, y + y * Math.sin((time + x) * freq)); } ctx.stroke(); - } + }, }); // when serializing to HTML all event attributes w/ function values // will be excluded, however the event listeners will be attached @@ -49,7 +49,7 @@ const app = () => { "div#root.w-50-ns.flex.ma2.sans-serif", [ "div.w-50-ns", - [canvas, { width: 200, height: 200 }, state.bg, state.freq] + [canvas, { width: 200, height: 200 }, state.bg, state.freq], ], [ "div.w-50-ns", @@ -63,16 +63,16 @@ const app = () => { id: "bg", class: "w-100", onchange: (e: Event) => - setBg((e.target).value) + setBg((e.target).value), }, [ ["", "Choose..."], ["red", "Red"], ["green", "Green"], - ["blue", "Blue"] + ["blue", "Blue"], ], - state.bg - ] + state.bg, + ], ], [ "label.db.mb3", @@ -93,11 +93,11 @@ const app = () => { parseFloat( (e.target).value ) - ) - } - ] - ] - ] + ), + }, + ], + ], + ], ]; }; }; diff --git a/examples/imgui/src/index.ts b/examples/imgui/src/index.ts index 5b15bcc63b..0d8c6d4b51 100644 --- a/examples/imgui/src/index.ts +++ b/examples/imgui/src/index.ts @@ -8,24 +8,10 @@ import { clamp, PI } from "@thi.ng/math"; import { setInManyUnsafe } from "@thi.ng/paths"; import { gestureStream } from "@thi.ng/rstream-gestures"; import { float } from "@thi.ng/strings"; -import { - comp, - iterator, - map, - mapcat, - step -} from "@thi.ng/transducers"; +import { comp, iterator, map, mapcat, step } from "@thi.ng/transducers"; import { updateDOM } from "@thi.ng/transducers-hdom"; import { sma } from "@thi.ng/transducers-stats"; -import { - add2, - hash, - min2, - setC2, - Vec, - vecOf, - ZERO2 -} from "@thi.ng/vectors"; +import { add2, hash, min2, setC2, Vec, vecOf, ZERO2 } from "@thi.ng/vectors"; import { buttonH, buttonV, diff --git a/examples/interceptor-basics/src/index.ts b/examples/interceptor-basics/src/index.ts index ba64e4b571..c6f77cbd6d 100644 --- a/examples/interceptor-basics/src/index.ts +++ b/examples/interceptor-basics/src/index.ts @@ -4,7 +4,7 @@ import { dispatchNow, EventBus, FX_STATE, - valueUpdater + valueUpdater, } from "@thi.ng/interceptors"; import { choices } from "@thi.ng/transducers"; @@ -18,13 +18,13 @@ const db = new Atom({}); // see @thi.ng/interceptors for more details const bus = new EventBus(db, { init: () => ({ - [FX_STATE]: { clicks: 0, color: "grey" } + [FX_STATE]: { clicks: 0, color: "grey" }, }), "inc-counter": [ valueUpdater("clicks", (x: number) => x + 1), - dispatchNow(["randomize-color"]) + dispatchNow(["randomize-color"]), ], - "randomize-color": valueUpdater("color", () => colors.next().value) + "randomize-color": valueUpdater("color", () => colors.next().value), }); start( @@ -38,11 +38,11 @@ start( { style: { padding: "1rem", - background: ctx.db.value.color + background: ctx.db.value.color, }, - onclick: () => ctx.bus.dispatch(["inc-counter"]) + onclick: () => ctx.bus.dispatch(["inc-counter"]), }, - `clicks: ${ctx.db.value.clicks}` + `clicks: ${ctx.db.value.clicks}`, ] : null, // hdom options incl. diff --git a/examples/iso-plasma/src/index.ts b/examples/iso-plasma/src/index.ts index 787b21066e..fced25d15f 100644 --- a/examples/iso-plasma/src/index.ts +++ b/examples/iso-plasma/src/index.ts @@ -10,7 +10,7 @@ import { mapcat, mapIndexed, range, - range2d + range2d, } from "@thi.ng/transducers"; import type { Fn } from "@thi.ng/api"; import type { Vec } from "@thi.ng/vectors"; @@ -55,7 +55,7 @@ const app = () => { return [ canvas, { width: 600, height: 600 }, - ["g", { scale: 600 / W, weight: 0.05, __diff: false }, contours] + ["g", { scale: 600 / W, weight: 0.05, __diff: false }, contours], ]; }; diff --git a/examples/json-components/src/index.ts b/examples/json-components/src/index.ts index 3cd7e6a86e..a1bffaf63d 100644 --- a/examples/json-components/src/index.ts +++ b/examples/json-components/src/index.ts @@ -7,28 +7,28 @@ let db = [ meta: { author: { name: "Alice Bobbera", - email: "a@b.it" + email: "a@b.it", }, created: "2018-02-03T12:13:14Z", - tags: ["drama", "queen"] + tags: ["drama", "queen"], }, title: "UI components for Dummies", content: - "Sed doloribus molestias voluptatem ut delectus vitae quo eum. Ut praesentium sed omnis sequi rerum praesentium aperiam modi. Occaecati voluptatum quis vel facere quis quisquam." + "Sed doloribus molestias voluptatem ut delectus vitae quo eum. Ut praesentium sed omnis sequi rerum praesentium aperiam modi. Occaecati voluptatum quis vel facere quis quisquam.", }, { meta: { author: { name: "Charlie Doran", - email: "c@d.es" + email: "c@d.es", }, created: "2018-02-02T01:23:45Z", - tags: ["simplicity", "rules"] + tags: ["simplicity", "rules"], }, title: "Look ma, so simple", content: - "Ratione necessitatibus doloremque itaque. Nihil hic alias cumque beatae esse sapiente incidunt. Illum vel eveniet officia." - } + "Ratione necessitatibus doloremque itaque. Nihil hic alias cumque beatae esse sapiente incidunt. Illum vel eveniet officia.", + }, ]; // component functions for individual keys in the JSON objects @@ -39,18 +39,18 @@ const item = (theme: any) => (item: any) => [ `div.item.${theme}`, item.title, item.meta, - item.content + item.content, ]; const meta = (meta: any) => ["div.meta", meta.author, meta.created, meta.tags]; const author = (author: any) => [ "div", ["strong", "author: "], - link(`mailto:${author.email}`, author.name) + link(`mailto:${author.email}`, author.name), ]; const date = (iso: string) => [ "div", ["strong", "date: "], - new Date(Date.parse(iso)).toLocaleString() + new Date(Date.parse(iso)).toLocaleString(), ]; const link = (href: string, body: any) => ["a", { href }, body]; const tag = (tag: string) => ["li", link("#", tag)]; @@ -74,11 +74,11 @@ const itemSpec: TransformSubSpec = { { author, tags, - created: date - } + created: date, + }, ], title, - content + content, }; // build themed component instances using @thi.ng/tranducers' deepTransform() @@ -101,9 +101,9 @@ const editor = (() => { try { db = JSON.parse((e.target).value); } catch (_) {} - } + }, }, - body + body, ]; })(); @@ -114,6 +114,6 @@ start(() => [ [ "div", ["div", ["h2", "Light theme"], ...db.map(itemLight)], - ["div", ["h2", "Dark theme"], ...db.map(itemDark)] - ] + ["div", ["h2", "Dark theme"], ...db.map(itemDark)], + ], ]); diff --git a/examples/login-form/src/index.ts b/examples/login-form/src/index.ts index fc714751ca..5535b89558 100644 --- a/examples/login-form/src/index.ts +++ b/examples/login-form/src/index.ts @@ -92,9 +92,10 @@ const uiViews: any = { const currView = defView( db, ["state"], - (state) => uiViews[state] || ["div", ["h1", `No component for state: ${state}`]] + (state) => + uiViews[state] || ["div", ["h1", `No component for state: ${state}`]] ); // app root component // embedded view (will auto-deref) -start(() => ["div", currView]); \ No newline at end of file +start(() => ["div", currView]); diff --git a/examples/mandelbrot/src/gradient.ts b/examples/mandelbrot/src/gradient.ts index 66ea0220cd..92e83593d4 100644 --- a/examples/mandelbrot/src/gradient.ts +++ b/examples/mandelbrot/src/gradient.ts @@ -6,7 +6,7 @@ import { normRange, push, transduce, - zip + zip, } from "@thi.ng/transducers"; // see http://dev.thi.ng/gradients/ @@ -49,30 +49,30 @@ export const GRADIENTS = [ [0.5, 0.5, 0.5], [0.5, 0.5, 0.5], [-1.0, -1.0, -1.0], - [0.0, 0.1, 0.2] + [0.0, 0.1, 0.2], ], [ [0.5, 0.5, 0.5], [0.5, 0.5, 0.5], [0.5, 0.618, 0.5], - [-1.0, 0.828, -0.152] + [-1.0, 0.828, -0.152], ], [ [0.402, 0.654, 0.247], [0.835, 0.668, 0.42], [1.226, 1.553, 1.445], - [2.684, 6.256, 4.065] + [2.684, 6.256, 4.065], ], [ [0.5, 0.5, 0.5], [0.5, 0.5, 0.5], [0.5, 0.5, 0.5], - [0.5, 0.5, 0.5] + [0.5, 0.5, 0.5], ], [ [0.5, 0.5, 0.5], [1.0, 1.0, 1.0], [10.0, 10.0, 10.0], - [0.0, 0.0, 0.0] - ] + [0.0, 0.0, 0.0], + ], ].map(partial(cosineGradient, 256)); diff --git a/examples/mandelbrot/src/index.ts b/examples/mandelbrot/src/index.ts index 21bbc1a734..9e60f8f2ac 100644 --- a/examples/mandelbrot/src/index.ts +++ b/examples/mandelbrot/src/index.ts @@ -2,12 +2,7 @@ import { download } from "@thi.ng/dl-asset"; import { equiv } from "@thi.ng/equiv"; import { canvas2D } from "@thi.ng/hdom-components"; import { fit, mix } from "@thi.ng/math"; -import { - stream, - Stream, - sync, - tunnel -} from "@thi.ng/rstream"; +import { stream, Stream, sync, tunnel } from "@thi.ng/rstream"; import { gestureStream, GestureType } from "@thi.ng/rstream-gestures"; import { padLeft } from "@thi.ng/strings"; import { map } from "@thi.ng/transducers"; @@ -40,7 +35,7 @@ const sel2 = stream(); // main stream combinator const main = sync({ - src: { x1, y1, x2, y2, iter, gradient, sel1, sel2 } + src: { x1, y1, x2, y2, iter, gradient, sel1, sel2 }, }); // URL hash updater @@ -48,7 +43,7 @@ main.subscribe({ next: ({ x1, y1, x2, y2, iter, gradient }) => (location.hash = `${ff(x1)};${ff(y1)};${ff(x2)};${ff( y2 - )};${iter};${gradient}`) + )};${iter};${gradient}`), }); // update param streams to trigger new render @@ -124,14 +119,14 @@ const app = () => { ); setTimeout(() => updateZoom(-0.02), 100); } - } + }, }); // also initialize gesture stream for allowing users to draw // target zoom rectangle gestureStream(el, { scale: true, absZoom: false, - smooth: 1e-3 + smooth: 1e-3, }).subscribe({ next(e) { const _x1 = x1.deref()!; @@ -178,7 +173,7 @@ const app = () => { break; default: } - } + }, }); // key controls fine tuning region window.addEventListener("keydown", (e) => { @@ -223,7 +218,7 @@ const app = () => { ctx.strokeStyle = "red"; ctx.strokeRect(a[0], a[1], b[0] - a[0], b[1] - a[1]); } - } + }, }); // return actual root component function return ({ sel1, sel2 }: any) => { @@ -243,9 +238,9 @@ const app = () => { "button", { onclick: () => - newRender.apply(null, DEFAULT_CONFIG) + newRender.apply(null, DEFAULT_CONFIG), }, - "reset" + "reset", ], [ "div", @@ -255,11 +250,11 @@ const app = () => { ["li", "Mouse wheel to zoom in / out"], [ "li", - "Cursor keys to fine tune region (+ Shift for bigger steps)" - ] - ] - ] - ] + "Cursor keys to fine tune region (+ Shift for bigger steps)", + ], + ], + ], + ], ]; }; }; @@ -285,9 +280,9 @@ const slider = ( step, value: stream.deref(), oninput: (e: Event) => - stream.next(parseFloat((e.target).value)) - } - ] + stream.next(parseFloat((e.target).value)), + }, + ], ]; // attach root component & DOM update to main stream @@ -296,12 +291,11 @@ main.transform(map(app()), updateDOM()); // init parameter streams, if possible from location.hash newRender.apply( null, - (location.hash.length > 1 - ? location.hash - .substr(1) - .split(";") - .map(parseFloat) - : DEFAULT_CONFIG) + ( + (location.hash.length > 1 + ? location.hash.substr(1).split(";").map(parseFloat) + : DEFAULT_CONFIG) + ) ); // HMR handling diff --git a/examples/markdown/src/index.ts b/examples/markdown/src/index.ts index 3c5084616c..d4013fa6ba 100644 --- a/examples/markdown/src/index.ts +++ b/examples/markdown/src/index.ts @@ -16,23 +16,23 @@ const CUSTOM_TAGS: Partial = { codeblock: (lang, body) => [ "pre.bg-washed-yellow.pa3.f7.overflow-x-scroll", { lang: lang || "code" }, - ["code", body] + ["code", body], ], link: (href, body) => [ "a.link.dark-blue.hover-white.hover-bg-dark-blue.b", { href }, - body + body, ], strike: (body) => ["del.bg-washed-red", body], table: (xs) => ["table.w-100.collapse.ba.b--black-10", ["tbody", ...xs]], tr: (_, xs) => ["tr.striped--near-white", ...xs], - td: (i, xs) => [i < 1 ? "th.pa2.ttu.tl" : "td.pa2", ...xs] + td: (i, xs) => [i < 1 ? "th.pa2.ttu.tl" : "td.pa2", ...xs], }; // UI root component const app = (input: Stream) => ({ src, - parsed: [hiccup, time] + parsed: [hiccup, time], }: any) => [ "div.flex.vh-100.sans-serif.flex-column.flex-row-l", [ @@ -42,18 +42,18 @@ const app = (input: Stream) => ({ { value: src, oninput: (e: Event) => - input.next((e.target).value) - } - ] + input.next((e.target).value), + }, + ], ], [ "div.w-100.h-50.w-50-l.vh-100-l.overflow-y-scroll.pa3.lh-copy", [ "div.pa2.bg-yellow.purple.f7", - `Parsed ${src.length} chars in ${time}ms` + `Parsed ${src.length} chars in ${time}ms`, ], - ...hiccup - ] + ...hiccup, + ], ]; // markdown input stream @@ -64,7 +64,9 @@ src.transform( map((src) => ({ src, // append exta newline to force last paragraph (see readme) - parsed: timedResult(() => [...iterator(parse(CUSTOM_TAGS), src + "\n")]) + parsed: timedResult(() => [ + ...iterator(parse(CUSTOM_TAGS), src + "\n"), + ]), })), map(app(src)), updateDOM() diff --git a/examples/multitouch/src/index.ts b/examples/multitouch/src/index.ts index b775e8e30f..03ac3fee54 100644 --- a/examples/multitouch/src/index.ts +++ b/examples/multitouch/src/index.ts @@ -1,7 +1,11 @@ import { canvas } from "@thi.ng/hdom-canvas"; import { memoize1 } from "@thi.ng/memoize"; import { CloseMode, sync, trigger } from "@thi.ng/rstream"; -import { GestureEvent, GestureInfo, gestureStream } from "@thi.ng/rstream-gestures"; +import { + GestureEvent, + GestureInfo, + gestureStream, +} from "@thi.ng/rstream-gestures"; import { map, mapcat } from "@thi.ng/transducers"; import { updateDOM } from "@thi.ng/transducers-hdom"; @@ -13,7 +17,7 @@ const MTCanvas = memoize1((id: string) => { ...canvas, init(el: HTMLElement) { main.add(gestureStream(el), el.id); - } + }, }; return (attribs: any, gesture?: GestureEvent) => [ _canvas, @@ -28,18 +32,18 @@ const MTCanvas = memoize1((id: string) => { ["circle", {}, i.pos, 20 * (gesture?.zoom || 1)], i.start ? ["line", { stroke: "#333" }, i.start, i.pos] - : null + : null, ], gesture?.active || [] - ) - ] + ), + ], ]; }); // main stream w/ initial trigger input const main = sync({ src: { temp: trigger() }, - closeIn: CloseMode.NEVER + closeIn: CloseMode.NEVER, }); main.transform( @@ -48,7 +52,7 @@ main.transform( ["h1", "Multitouch"], [ "p", - "Click/touch & drag in the yellow area below. Multiple cursors only supported via touch." + "Click/touch & drag in the yellow area below. Multiple cursors only supported via touch.", ], MTCanvas("main")({ width: 480, height: 360 }, main || {}), [ @@ -56,9 +60,9 @@ main.transform( [ "textarea.code.f7", { cols: 60, rows: 25 }, - JSON.stringify(main, null, 2) - ] - ] + JSON.stringify(main, null, 2), + ], + ], ]), updateDOM() ); diff --git a/examples/package-stats/src/dep-chart.ts b/examples/package-stats/src/dep-chart.ts index 71a93920d4..ee7b9c5018 100644 --- a/examples/package-stats/src/dep-chart.ts +++ b/examples/package-stats/src/dep-chart.ts @@ -14,7 +14,7 @@ import { reducer, repeat, transduce, - zip + zip, } from "@thi.ng/transducers"; import * as fs from "fs"; import { barChart, labeledTickX, labeledTickY } from "./viz"; @@ -35,7 +35,7 @@ const packages: { id: string; v: string; deps: string[] }[] = transduce( map((p) => ({ id: p.name, v: p.version, - deps: p.dependencies ? Object.keys(p.dependencies) : [] + deps: p.dependencies ? Object.keys(p.dependencies) : [], })) ), push(), @@ -44,7 +44,10 @@ const packages: { id: string; v: string; deps: string[] }[] = transduce( const graph = transduce( mapcat((p: any) => zip(repeat(p.id), p.deps)), - reducer(() => new DGraph(), (g, [p, d]: any) => g.addDependency(p, d)), + reducer( + () => new DGraph(), + (g, [p, d]: any) => g.addDependency(p, d) + ), packages ); @@ -65,29 +68,29 @@ fs.writeFileSync( width: width, height: 260, "font-size": "10px", - "font-family": "Iosevka-Term-Light, Menlo, sans-serif" + "font-family": "Iosevka-Term-Light, Menlo, sans-serif", }, x: { axis: [50, width - 15, 170], domain: [0, packageDeps.length, 1], range: [50, width - 5], ticks: [...map((x) => x[0].substr(8), packageDeps)], - label: labeledTickX + label: labeledTickX, }, y: { axis: [170, 10, 35], domain: [0, maxDeps, 10], range: [160, 20], - label: labeledTickY(width - 15) + label: labeledTickY(width - 15), }, axis: "#666", - fill: "#0cc" + fill: "#0cc", }, mapIndexed((i, m) => [i, m[1]], packageDeps), group( { "font-size": "20px", "text-anchor": "middle" }, text([width / 2 + 25, 28], "@thi.ng/umbrella internal re-use"), text([width / 2 + 25, 56], "(transitive dependents)") - ) + ), ]) ); diff --git a/examples/package-stats/src/viz.ts b/examples/package-stats/src/viz.ts index e32f53ab23..7fb4fe2ac9 100644 --- a/examples/package-stats/src/viz.ts +++ b/examples/package-stats/src/viz.ts @@ -1,17 +1,6 @@ -import { - group, - line, - rect, - svg, - text -} from "@thi.ng/hiccup-svg"; +import { group, line, rect, svg, text } from "@thi.ng/hiccup-svg"; import { fit, fit01 } from "@thi.ng/math"; -import { - map, - mapcat, - mapIndexed, - range -} from "@thi.ng/transducers"; +import { map, mapcat, mapIndexed, range } from "@thi.ng/transducers"; // iterator of range mapped tuples: `[mapped, orig]` const mappedRange = ( @@ -49,15 +38,15 @@ export const labeledTickX = (y: number) => ([x, n]: any[]) => [ text([x, y + 15], n, { stroke: "none", "text-anchor": "end", - transform: `rotate(-45 ${x} ${y + 15})` - }) + transform: `rotate(-45 ${x} ${y + 15})`, + }), ]; export const labeledTickY = (width: number, fmt = (x: number) => String(x)) => ( x: number ) => ([y, n]: [number, any]) => [ ...tick(x - 5, y, x, y, x - 10, y + 4, n > 0 ? fmt(n) : 0), - n > 0 ? line([x + 20, y], [width, y], { "stroke-dasharray": "1 3" }) : null + n > 0 ? line([x + 20, y], [width, y], { "stroke-dasharray": "1 3" }) : null, ]; // x-axis with ticks as SVG group @@ -70,7 +59,7 @@ export const axisX = ({ axis: a, domain: d, range: r, label, ticks }: any) => [ ticks ? mappedTicks(r[0], r[1], ticks) : mappedRange(d[0], d[1], d[2], r[0], r[1]) - ) + ), ]; // y-axis with ticks as SVG group @@ -83,7 +72,7 @@ export const axisY = ({ axis: a, domain: d, range: r, label, ticks }: any) => [ ticks ? mappedTicks(r[0], r[1], ticks) : mappedRange(d[0], d[1], d[2], r[0], r[1]) - ) + ), ]; // mapping fn to create a single bar from `[domainPos, value]` diff --git a/examples/pixel-basics/src/index.ts b/examples/pixel-basics/src/index.ts index 2ef8e384f4..800840742d 100644 --- a/examples/pixel-basics/src/index.ts +++ b/examples/pixel-basics/src/index.ts @@ -4,7 +4,7 @@ import { GRAY8, imagePromise, PackedBuffer, - RGB565 + RGB565, } from "@thi.ng/pixel"; import { SRC_OVER_I } from "@thi.ng/porter-duff"; import IMG from "../assets/haystack.jpg"; @@ -21,7 +21,7 @@ Promise.all([IMG, LOGO].map(imagePromise)).then(([img, logo]) => { .premultiply() .blend(SRC_OVER_I, buf, { dx: 10, - dy: 10 + dy: 10, }); // extract sub-image diff --git a/examples/pointfree-svg/src/index.ts b/examples/pointfree-svg/src/index.ts index 90647e1a4f..f2f9a05d24 100644 --- a/examples/pointfree-svg/src/index.ts +++ b/examples/pointfree-svg/src/index.ts @@ -79,7 +79,7 @@ const env = ffi( "svg.line": svg.line, "svg.circle": svg.circle, "svg.svg": svg.svg, - shapes: [] + shapes: [], }, // foreign function interface (FFI) // custom words usable by the DSL @@ -92,7 +92,7 @@ const env = ffi( ensureStack(stack, 2); fs.writeFileSync(stack.pop(), stack.pop()); return ctx; - } + }, } ); // compile lib (resulting words are stored in env) diff --git a/examples/poly-spline/src/index.ts b/examples/poly-spline/src/index.ts index e4e3ca79a8..33a3618595 100644 --- a/examples/poly-spline/src/index.ts +++ b/examples/poly-spline/src/index.ts @@ -7,15 +7,10 @@ import { pathFromCubics, star, svgDoc, - withAttribs + withAttribs, } from "@thi.ng/geom"; import { convertTree } from "@thi.ng/hiccup-svg"; -import { - fromRAF, - stream, - Stream, - sync -} from "@thi.ng/rstream"; +import { fromRAF, stream, Stream, sync } from "@thi.ng/rstream"; import { comp, iterator, @@ -23,13 +18,13 @@ import { mapcat, partition, reducer, - scan + scan, } from "@thi.ng/transducers"; import { updateDOM } from "@thi.ng/transducers-hdom"; const BUTTONS = { blue: "bg-blue white hover-bg-light-blue hover-navy", - green: "bg-green white hover-bg-light-green hover-dark-green" + green: "bg-green white hover-bg-light-green hover-dark-green", }; // HOF event listener to emit a value on given stream @@ -46,9 +41,9 @@ const button = ( { href: "#", onclick, - class: "dib w4 mr2 pa2 link " + clazz + class: "dib w4 mr2 pa2 link " + clazz, }, - label + label, ]; // slider UI component @@ -66,10 +61,10 @@ const slider = ( type: "range", value: stream.deref(), oninput: (e: any) => stream.next(parseFloat(e.target.value)), - ...attribs - } + ...attribs, + }, ], - stream.deref()!.toFixed(1) + stream.deref()!.toFixed(1), ]; // main app component / stream transformer @@ -86,7 +81,7 @@ const app = ( const cubics = asCubic(poly, { breakPoints: mode, scale: scale * (uniform ? uniScale : 1), - uniform + uniform, }); // visualize control points as circles const controlPoints = iterator( @@ -114,26 +109,26 @@ const app = ( button, BUTTONS.blue, emitOnStream(_mode, true), - mode ? "break points" : "control points" + mode ? "break points" : "control points", ], [ button, BUTTONS.green, emitOnStream(_uniform, true), - uniform ? "uniform" : "non-uniform" + uniform ? "uniform" : "non-uniform", ], [ slider, { min: -1.3, max: 1.3, step: 0.1 }, _scale, - "tangent scale" + "tangent scale", ], [ slider, { min: 0, max: 100, step: 1, disabled: !uniform }, _uniScale, - "uniform scale" - ] + "uniform scale", + ], ], [ "div", @@ -143,7 +138,7 @@ const app = ( // using SVG and hence will need to call `convertTree()` to // transform the hiccup format into a SVG compatible format // see: - // https://github.com/thi-ng/umbrella/blob/master/packages/hiccup-svg/src/convert.ts#L34 + // https://github.com/thi-ng/umbrella/blob/develop/packages/hiccup-svg/src/convert.ts#L34 convertTree( svgDoc( { @@ -152,17 +147,17 @@ const app = ( viewBox: "-150 -150 300 300", fill: "none", stroke: "#ccc", - "stroke-width": 0.25 + "stroke-width": 0.25, }, poly, withAttribs(pathFromCubics(cubics), { stroke: mode ? "blue" : "red", - "stroke-width": 1 + "stroke-width": 1, }), group({ stroke: "#333" }, [...controlPoints, ...handles]) ) - ) - ] + ), + ], ]; }; @@ -195,8 +190,8 @@ const main = sync({ mode: mode.transform(toggle), uniform: uniform.transform(toggle), scale, - uniScale - } + uniScale, + }, }); // transform to create & apply UI diff --git a/examples/porter-duff/src/index.ts b/examples/porter-duff/src/index.ts index 2f6b305491..d21c60f6b6 100644 --- a/examples/porter-duff/src/index.ts +++ b/examples/porter-duff/src/index.ts @@ -1,9 +1,4 @@ -import { - ABGR8888, - canvas2d, - imagePromise, - PackedBuffer -} from "@thi.ng/pixel"; +import { ABGR8888, canvas2d, imagePromise, PackedBuffer } from "@thi.ng/pixel"; import { DEST_ATOP_I, DEST_I, @@ -16,7 +11,7 @@ import { SRC_IN_I, SRC_OUT_I, SRC_OVER_I, - XOR_I + XOR_I, } from "@thi.ng/porter-duff"; import IMG2 from "../assets/plus.png"; import IMG from "../assets/ring.png"; @@ -33,7 +28,7 @@ const MODES: any = { SRC_ATOP: SRC_ATOP_I, DEST_ATOP: DEST_ATOP_I, XOR: XOR_I, - PLUS: PLUS_I + PLUS: PLUS_I, }; const IDS = Object.keys(MODES); diff --git a/examples/ramp-synth/src/api.ts b/examples/ramp-synth/src/api.ts index c76933363f..c984c3bf91 100644 --- a/examples/ramp-synth/src/api.ts +++ b/examples/ramp-synth/src/api.ts @@ -13,14 +13,14 @@ export const PRESETS: Vec[][] = [ [ [0, 0], [0.98, 1], - [1, 0] + [1, 0], ], [ [0.25, 0.5], [0.5, 1], [0.625, 0.1], - [0.75, 0.5] + [0.75, 0.5], ], [...map((i) => [i / 20, i & 1 ? i / 20 : 0], range(21))], - [...map((i) => [i / 12, i % 3 ? 1 : 0.25], range(13))] + [...map((i) => [i / 12, i % 3 ? 1 : 0.25], range(13))], ]; diff --git a/examples/ramp-synth/src/components.ts b/examples/ramp-synth/src/components.ts index fc58d04107..bf3e7fa8f7 100644 --- a/examples/ramp-synth/src/components.ts +++ b/examples/ramp-synth/src/components.ts @@ -10,8 +10,8 @@ const tick = (x: number) => [ [0, -2], [4, 3], [4, 9], - [-4, 9] - ] + [-4, 9], + ], ]; export const rampViz = (ramp: IRamp, width: number, height: number) => { @@ -27,13 +27,13 @@ export const rampViz = (ramp: IRamp, width: number, height: number) => { [0, 1 - cp[0][1]], ...map((p) => [p[0], 1 - p[1]], ramp.interpolatedPoints()), [1, 1 - peek(cp)[1]], - [1, 1] - ] + [1, 1], + ], ], [ "g", { translate: [0, height] }, - ...ramp.stops.map((p) => tick(width * p[0])) - ] + ...ramp.stops.map((p) => tick(width * p[0])), + ], ]; }; diff --git a/examples/ramp-synth/src/index.ts b/examples/ramp-synth/src/index.ts index 05031403ac..f9977b51dd 100644 --- a/examples/ramp-synth/src/index.ts +++ b/examples/ramp-synth/src/index.ts @@ -12,14 +12,9 @@ import { PAD, PRESETS, SNAP, - WIDTH + WIDTH, } from "./api"; -import { - initAudio, - isAudioActive, - stopAudio, - updateAudio -} from "./audio"; +import { initAudio, isAudioActive, stopAudio, updateAudio } from "./audio"; import { rampViz } from "./components"; const timeForPos = (x: number) => fitClamped(x, PAD, WIDTH - PAD, 0, 1); @@ -75,13 +70,13 @@ const gradient = [ { id: "ramp", from: [0, 0], - to: [0, 1] + to: [0, 1], }, [ [0, "#99b"], - [1, "#111"] - ] - ] + [1, "#111"], + ], + ], ]; start(() => { @@ -117,14 +112,14 @@ start(() => { currID = editRamp(mpos, currID); } } - } + }, }, gradient, [ "g", { translate: [PAD, PAD], - __diff: false + __diff: false, }, rampViz(ramp, CWIDTH, CHEIGHT), [ @@ -135,9 +130,9 @@ start(() => { "circle", { fill: "red" }, [0, (1 - ramp.at(currT)) * CHEIGHT], - 3 - ] - ] + 3, + ], + ], ], selID !== -1 || currID !== -1 || @@ -148,9 +143,9 @@ start(() => { ["line", {}, [mpos[0], PAD], [mpos[0], PAD + CHEIGHT]], mpos[1] < HEIGHT - PAD ? ["line", {}, [PAD, mpos[1]], [PAD + CWIDTH, mpos[1]]] - : null + : null, ] - : null + : null, ]; }); @@ -180,7 +175,7 @@ window.addEventListener("keydown", (e) => { ...repeatedly( () => [Math.random(), Math.random()], Math.random() * 37 + 3 - ) + ), ]; ramp.sort(); updateAudio(ramp); diff --git a/examples/rotating-voronoi/src/controllers.ts b/examples/rotating-voronoi/src/controllers.ts index 77cc68d348..666c01fb1e 100644 --- a/examples/rotating-voronoi/src/controllers.ts +++ b/examples/rotating-voronoi/src/controllers.ts @@ -21,9 +21,9 @@ export const slider = ( const target = e.target as HTMLInputElement; const value = target && target.value; onChange(parseFloat(value)); - } - } - ] + }, + }, + ], ]; }; @@ -44,9 +44,9 @@ export const checkbox = ( const target = e.target as HTMLInputElement; const checked = target && target.checked; onChange(checked); - } - } + }, + }, ], - ["label", { for: label }, label] + ["label", { for: label }, label], ]; }; diff --git a/examples/rotating-voronoi/src/index.ts b/examples/rotating-voronoi/src/index.ts index b78d7e85ac..d777f8df87 100644 --- a/examples/rotating-voronoi/src/index.ts +++ b/examples/rotating-voronoi/src/index.ts @@ -8,7 +8,7 @@ import { polygon, rect, svgDoc, - vertices + vertices, } from "@thi.ng/geom"; import { simplify } from "@thi.ng/geom-resample"; import { DVMesh } from "@thi.ng/geom-voronoi"; @@ -25,7 +25,7 @@ import { frameStreamConditional, keyStreamConditional, mainStream, - scaleStream + scaleStream, } from "./stream-state"; const edge = window.innerWidth * 0.7; @@ -40,7 +40,7 @@ const startingCircles: Array<[number, number, boolean]> = [ [radius / 1, rndInt(4, 20), true], [radius / 2, rndInt(4, 20), false], [radius / 4, rndInt(4, 20), true], - [radius / 8, rndInt(4, 20), false] + [radius / 8, rndInt(4, 20), false], ]; const pointsInCircle = ( @@ -52,7 +52,7 @@ const pointsInCircle = ( ...map( (index) => cartesian2(null, [_radius, index * TAU + _angle], _center), normRange(_num, false) - ) + ), ]; scaleStream.next(1); @@ -76,7 +76,7 @@ function computeVoronoi(state: AppState) { clockwise ? delta : PI - delta ), startingCircles - ) + ), ]; const bounds = rect([width, height], { fill: "black" }); @@ -92,7 +92,7 @@ function computeVoronoi(state: AppState) { cells.map((cell) => pathFromCubics( asCubic(polygon(simplify(cell, 0.5, true)), { - scale: state.scaleValue + scale: state.scaleValue, }) ) ) @@ -101,8 +101,8 @@ function computeVoronoi(state: AppState) { points(doSave ? [] : startPoints, { size: 4, shape: "circle", - fill: "gray" - }) + fill: "gray", + }), ]; if (doSave) { @@ -112,7 +112,7 @@ function computeVoronoi(state: AppState) { width, height, viewBox: `0 0 ${width} ${height}`, - "stroke-width": 0.25 + "stroke-width": 0.25, }, ...voronoi ) @@ -137,9 +137,9 @@ function appRender(state: AppState) { "a", { href: - "https://observablehq.com/@mbostock/rotating-voronoi" + "https://observablehq.com/@mbostock/rotating-voronoi", }, - " observablehq sketch" + " observablehq sketch", ], ". ", @@ -148,11 +148,11 @@ function appRender(state: AppState) { "a", { href: - "https://www.flickr.com/photos/quasimondo/8254540763/" + "https://www.flickr.com/photos/quasimondo/8254540763/", }, - "ornament" + "ornament", ], - " by Mario Klingemann." + " by Mario Klingemann.", ], ["p", "Press `s` to save the SVG file."], [ @@ -169,14 +169,14 @@ function appRender(state: AppState) { state.animationValue, (x: boolean) => animationStream.next(x), "Animation" - ) - ] + ), + ], ], [ "div.flex.justify-center", - [canvas, { width, height }, ...computeVoronoi(state)] - ] - ] + [canvas, { width, height }, ...computeVoronoi(state)], + ], + ], ]; } diff --git a/examples/rotating-voronoi/src/stream-state.ts b/examples/rotating-voronoi/src/stream-state.ts index 7da50bf04b..d3ac2d5c45 100644 --- a/examples/rotating-voronoi/src/stream-state.ts +++ b/examples/rotating-voronoi/src/stream-state.ts @@ -3,14 +3,9 @@ import { fromRAF, sidechainToggle, stream, - sync + sync, } from "@thi.ng/rstream"; -import { - add, - map, - mapcat, - scan -} from "@thi.ng/transducers"; +import { add, map, mapcat, scan } from "@thi.ng/transducers"; export const keyStreamConditional = fromDOMEvent(document, "keyup").transform( mapcat((x) => [x.key, null]) @@ -20,7 +15,10 @@ export const scaleStream = stream(); export const animationStream = stream(); export const frameStreamConditional = fromRAF() .subscribe(sidechainToggle(animationStream)) - .transform(map(() => 1), scan(add())); + .transform( + map(() => 1), + scan(add()) + ); export type AppState = { scaleValue: number; @@ -34,6 +32,6 @@ export const mainStream = sync({ scaleValue: scaleStream, animationValue: animationStream, frameValue: frameStreamConditional, - keyValue: keyStreamConditional - } + keyValue: keyStreamConditional, + }, }); diff --git a/examples/router-basics/src/components/all-users.ts b/examples/router-basics/src/components/all-users.ts index eb471e1ca7..4e5e5ce28a 100644 --- a/examples/router-basics/src/components/all-users.ts +++ b/examples/router-basics/src/components/all-users.ts @@ -4,7 +4,6 @@ import { USER_PROFILE } from "../routes"; import { routeLink } from "./route-link"; import { status } from "./status"; - /** * Dummy user list component. Triggers JSON I/O request if user data has * not been loaded yet. @@ -32,7 +31,7 @@ function userList(ctx: AppContext) { list && [ "section", ctx.ui.userlist.root, - list.map((u) => [user, u, !!profiles![u.id]]) + list.map((u) => [user, u, !!profiles![u.id]]), ] ); } @@ -59,10 +58,10 @@ function user(ctx: AppContext, user: User, cached: boolean) { [ "h1", ui.title, - [routeLink, USER_PROFILE.id, { id: user.id }, null, user.name] + [routeLink, USER_PROFILE.id, { id: user.id }, null, user.name], ], - ["h2", ui.subtitle, `@${user.alias}`] + ["h2", ui.subtitle, `@${user.alias}`], ], - cached ? ["div", ui.meta, "cached"] : undefined + cached ? ["div", ui.meta, "cached"] : undefined, ]; } diff --git a/examples/router-basics/src/components/contact.ts b/examples/router-basics/src/components/contact.ts index 7b8366456a..8beb21ef4b 100644 --- a/examples/router-basics/src/components/contact.ts +++ b/examples/router-basics/src/components/contact.ts @@ -16,8 +16,8 @@ export function contact(ctx: AppContext) { [ ["https://github.com/thi-ng/umbrella", "GitHub"], ["https://twitter.com/toxi", "Twitter"], - ["https://medium.com/@thi.ng", "Medium"] - ].map((link) => [externalLink, ctx.ui.contact.link, ...link]) - ] + ["https://medium.com/@thi.ng", "Medium"], + ].map((link) => [externalLink, ctx.ui.contact.link, ...link]), + ], ]; } diff --git a/examples/router-basics/src/components/debug-container.ts b/examples/router-basics/src/components/debug-container.ts index a8cd790cef..95595704f4 100644 --- a/examples/router-basics/src/components/debug-container.ts +++ b/examples/router-basics/src/components/debug-container.ts @@ -17,8 +17,8 @@ export function debugContainer(ctx: AppContext, debug: any, json: string) { eventLink, [TOGGLE_DEBUG], ctx.ui.debugToggle, - debug ? "close \u25bc" : "open \u25b2" + debug ? "close \u25bc" : "open \u25b2", ], - ["pre", ctx.ui.code, json] + ["pre", ctx.ui.code, json], ]; } diff --git a/examples/router-basics/src/components/event-link.ts b/examples/router-basics/src/components/event-link.ts index 54b16df65f..9bf686a798 100644 --- a/examples/router-basics/src/components/event-link.ts +++ b/examples/router-basics/src/components/event-link.ts @@ -1,7 +1,6 @@ import type { Event } from "@thi.ng/interceptors"; import type { AppContext } from "../api"; - /** * Customizable hyperlink component emitting given event on app's event * bus when clicked. @@ -24,8 +23,8 @@ export function eventLink( onclick: (e: any) => { e.preventDefault(); ctx.bus.dispatch(event); - } + }, }, - body + body, ]; } diff --git a/examples/router-basics/src/components/home.ts b/examples/router-basics/src/components/home.ts index dc4a6eb727..7a428fc715 100644 --- a/examples/router-basics/src/components/home.ts +++ b/examples/router-basics/src/components/home.ts @@ -17,9 +17,9 @@ export function home(ctx: AppContext) { externalLink, ctx.ui.bodyLink, "https://github.com/thi-ng/umbrella", - "@thi.ng/umbrella" + "@thi.ng/umbrella", ], - " libraries." + " libraries.", ], [ "p", @@ -41,15 +41,15 @@ export function home(ctx: AppContext) { externalLink, ctx.ui.bodyLink, "http://tachyons.io/", - "Tachyons CSS" - ] - ] - ] + "Tachyons CSS", + ], + ], + ], ], [ "p", - "Please see the related blog post and the commented source code for more details." + "Please see the related blog post and the commented source code for more details.", ], - ["p", "(total app file size: 11.2KB)"] + ["p", "(total app file size: 11.2KB)"], ]; } diff --git a/examples/router-basics/src/components/nav.ts b/examples/router-basics/src/components/nav.ts index a595e4af62..6fc742b500 100644 --- a/examples/router-basics/src/components/nav.ts +++ b/examples/router-basics/src/components/nav.ts @@ -2,7 +2,6 @@ import { CONTACT, HOME, USER_LIST } from "../routes"; import { routeLink } from "./route-link"; import type { AppContext } from "../api"; - /** * Main nav component with hard coded routes. * @@ -18,7 +17,7 @@ export function nav(ctx: AppContext) { ui.inner, [routeLink, HOME.id, null, ui.link, "Home"], [routeLink, USER_LIST.id, null, ui.link, "Users"], - [routeLink, CONTACT.id, null, ui.linkLast, "Contact"] - ] + [routeLink, CONTACT.id, null, ui.linkLast, "Contact"], + ], ]; } diff --git a/examples/router-basics/src/components/route-link.ts b/examples/router-basics/src/components/route-link.ts index 456e5f0134..cd98befb0d 100644 --- a/examples/router-basics/src/components/route-link.ts +++ b/examples/router-basics/src/components/route-link.ts @@ -24,8 +24,8 @@ export function routeLink( onclick: (e: Event) => { e.preventDefault(); ctx.bus.dispatch([ROUTE_TO, [routeID, routeParams]]); - } + }, }, - body + body, ]; } diff --git a/examples/router-basics/src/components/user-profile.ts b/examples/router-basics/src/components/user-profile.ts index 27d77be7d3..757505928c 100644 --- a/examples/router-basics/src/components/user-profile.ts +++ b/examples/router-basics/src/components/user-profile.ts @@ -30,7 +30,7 @@ function userCard(ctx: AppContext, id: number) { ["h3", ui.title, user.name], user.job, ["hr", ui.sep], - ["p", ui.body, user.desc] + ["p", ui.body, user.desc], ] : undefined; } diff --git a/examples/router-basics/src/config.ts b/examples/router-basics/src/config.ts index 6f9c55f9e8..0756b01667 100644 --- a/examples/router-basics/src/config.ts +++ b/examples/router-basics/src/config.ts @@ -4,7 +4,7 @@ import { FX_DELAY, FX_DISPATCH_ASYNC, FX_DISPATCH_NOW, - valueUpdater + valueUpdater, } from "@thi.ng/interceptors"; import { AppConfig, StatusType } from "./api"; import { allUsers } from "./components/all-users"; @@ -19,7 +19,7 @@ import * as routes from "./routes"; export const CONFIG: AppConfig = { // router configuration // docs here: - // https://github.com/thi-ng/umbrella/blob/master/packages/router/src/api.ts#L100 + // https://github.com/thi-ng/umbrella/blob/develop/packages/router/src/api.ts#L100 router: { // use URI hash for routes (KISS) useFragment: true, @@ -31,8 +31,8 @@ export const CONFIG: AppConfig = { routes.HOME, routes.CONTACT, routes.USER_PROFILE, - routes.USER_LIST - ] + routes.USER_LIST, + ], }, // event handlers events are queued and batch processed in app's RAF @@ -44,31 +44,31 @@ export const CONFIG: AppConfig = { // and only side effect functions execute any "real" work. // see EventBus docs here: - // https://github.com/thi-ng/umbrella/blob/master/packages/atom/src/event-bus.ts#L14 + // https://github.com/thi-ng/umbrella/blob/develop/packages/atom/src/event-bus.ts#L14 events: { // sets status to "done" [ev.DONE]: () => ({ - [FX_DISPATCH_NOW]: [ev.SET_STATUS, [StatusType.DONE, "done"]] + [FX_DISPATCH_NOW]: [ev.SET_STATUS, [StatusType.DONE, "done"]], }), // sets status to thrown error's message [ev.ERROR]: (_, [__, err]) => ({ - [FX_DISPATCH_NOW]: [ev.SET_STATUS, [StatusType.ERROR, err.message]] + [FX_DISPATCH_NOW]: [ev.SET_STATUS, [StatusType.ERROR, err.message]], }), // triggers loading of JSON for single user, sets status [ev.LOAD_USER]: (_, [__, id]) => ({ [FX_DISPATCH_NOW]: [ ev.SET_STATUS, - [StatusType.INFO, `loading user data...`] + [StatusType.INFO, `loading user data...`], ], [FX_DISPATCH_ASYNC]: [ fx.JSON, `assets/user-${id}.json`, ev.RECEIVE_USER, - ev.LOAD_USER_ERROR - ] + ev.LOAD_USER_ERROR, + ], }), // triggered after successful IO @@ -79,9 +79,9 @@ export const CONFIG: AppConfig = { [EV_SET_VALUE, [["users", json.id], json]], [ ev.SET_STATUS, - [StatusType.SUCCESS, "JSON successfully loaded", true] - ] - ] + [StatusType.SUCCESS, "JSON successfully loaded", true], + ], + ], }), // error event for user profile IO requests (i.e. in this demo for user ID 3) @@ -92,22 +92,22 @@ export const CONFIG: AppConfig = { FX_DELAY, [1000, [routes.USER_LIST.id]], ev.ROUTE_TO, - ev.ERROR - ] + ev.ERROR, + ], }), // triggers loading of JSON summary of all users, sets status [ev.LOAD_USER_LIST]: () => ({ [FX_DISPATCH_NOW]: [ ev.SET_STATUS, - [StatusType.INFO, `loading user data...`] + [StatusType.INFO, `loading user data...`], ], [FX_DISPATCH_ASYNC]: [ fx.JSON, `assets/users.json`, ev.RECEIVE_USERS, - ev.ERROR - ] + ev.ERROR, + ], }), // triggered after successful IO @@ -117,9 +117,9 @@ export const CONFIG: AppConfig = { [EV_SET_VALUE, ["userlist", json]], [ ev.SET_STATUS, - [StatusType.SUCCESS, "JSON successfully loaded", true] - ] - ] + [StatusType.SUCCESS, "JSON successfully loaded", true], + ], + ], }), // stores status (a tuple of `[type, message, done?]`) in app state @@ -130,11 +130,11 @@ export const CONFIG: AppConfig = { [FX_DISPATCH_ASYNC]: status[0] !== StatusType.DONE && status[2] ? [FX_DELAY, [1000], ev.DONE, ev.ERROR] - : undefined + : undefined, }), // toggles debug state flag on/off - [ev.TOGGLE_DEBUG]: valueUpdater("debug", (x) => x ^ 1) + [ev.TOGGLE_DEBUG]: valueUpdater("debug", (x) => x ^ 1), }, // side effects @@ -146,7 +146,7 @@ export const CONFIG: AppConfig = { throw new Error(resp.statusText); } return resp.json(); - }) + }), }, // mapping route IDs to their respective UI component functions @@ -156,7 +156,7 @@ export const CONFIG: AppConfig = { [routes.HOME.id]: home, [routes.CONTACT.id]: contact, [routes.USER_LIST.id]: allUsers, - [routes.USER_PROFILE.id]: userProfile + [routes.USER_PROFILE.id]: userProfile, }, // DOM root element (or ID) @@ -168,7 +168,7 @@ export const CONFIG: AppConfig = { users: {}, userlist: [], route: {}, - debug: 1 + debug: 1, }, // derived view declarations @@ -181,7 +181,7 @@ export const CONFIG: AppConfig = { users: ["users", (users) => users || {}], userlist: "userlist", status: "status", - debug: "debug" + debug: "debug", }, // component CSS class config using tachyons-css @@ -193,51 +193,51 @@ export const CONFIG: AppConfig = { // http://tachyons.io/ ui: { bodyCopy: { - class: "center measure-narrow measure-ns tc lh-copy black-70" + class: "center measure-narrow measure-ns tc lh-copy black-70", }, bodyLink: { class: "link dim black" }, card: { container: { class: - "mw5 center bg-white br3 pa3 pa4-ns mv3 ba b--black-10 tc" + "mw5 center bg-white br3 pa3 pa4-ns mv3 ba b--black-10 tc", }, thumb: { class: "br-100 h3 w3 dib" }, title: { class: "ma1" }, sep: { class: "mt3 mw3 bb bw1 b--black-10" }, - body: { class: "lh-copy measure center f6 black-70" } + body: { class: "lh-copy measure center f6 black-70" }, }, code: { class: "ma0 ml4 pa2 f7 bg-light-gray code overflow-x-hidden" }, column: { content: [{ class: "w-90-ns ma2" }, { class: "w-50-ns ma2" }], debug: [ { class: "w-10-ns ma2 close" }, - { class: "w-50-ns ma2 open" } - ] + { class: "w-50-ns ma2 open" }, + ], }, contact: { - link: { class: "db pb2 link dim black" } + link: { class: "db pb2 link dim black" }, }, debugToggle: { class: "toggle pointer" }, nav: { inner: { class: "tc pb3" }, title: { class: "black f1 lh-title tc db mb2 mb2-ns" }, link: { class: "pointer link dim gray f6 f5-ns dib mr3" }, - linkLast: { class: "pointer link dim gray f6 f5-ns dib" } + linkLast: { class: "pointer link dim gray f6 f5-ns dib" }, }, root: { class: "flex-ns sans-serif ma0" }, status: { [StatusType.DONE]: { - class: "pa2 bg-light-yellow gold tc fadeout bg-animate" + class: "pa2 bg-light-yellow gold tc fadeout bg-animate", }, [StatusType.INFO]: { - class: "pa2 bg-light-yellow gold tc bg-animate" + class: "pa2 bg-light-yellow gold tc bg-animate", }, [StatusType.SUCCESS]: { - class: "pa2 bg-light-green green tc bg-animate" + class: "pa2 bg-light-green green tc bg-animate", }, [StatusType.ERROR]: { - class: "pa2 bg-light-red dark-red tc bg-animate" - } + class: "pa2 bg-light-red dark-red tc bg-animate", + }, }, userlist: { root: { class: "measure center" }, @@ -247,7 +247,7 @@ export const CONFIG: AppConfig = { body: { class: "dtc v-mid pl3" }, title: { class: "pointer f6 f5-ns fw6 lh-title black mv0" }, subtitle: { class: "f6 fw4 mt0 mb0 black-60" }, - meta: { class: "dtc tr v-mid black-60 f7" } - } - } + meta: { class: "dtc tr v-mid black-60 f7" }, + }, + }, }; diff --git a/examples/router-basics/src/effects.ts b/examples/router-basics/src/effects.ts index 3f09c7d3b6..492d776e29 100644 --- a/examples/router-basics/src/effects.ts +++ b/examples/router-basics/src/effects.ts @@ -1,7 +1,7 @@ // best practice tip: define event & effect names as consts or enums // and avoid hardcoded strings for more safety and easier refactoring // also see pre-defined event handlers & interceptors in @thi.ng/atom: -// https://github.com/thi-ng/umbrella/blob/master/packages/interceptors/src/api.ts#L14 +// https://github.com/thi-ng/umbrella/blob/develop/packages/interceptors/src/api.ts#L14 export const JSON = "load-json"; export const ROUTE_TO = "route-to"; diff --git a/examples/router-basics/src/routes.ts b/examples/router-basics/src/routes.ts index 1b4f801d0d..f0a4723688 100644 --- a/examples/router-basics/src/routes.ts +++ b/examples/router-basics/src/routes.ts @@ -6,22 +6,22 @@ import { Route } from "@thi.ng/router"; // the `match` arrays specify the individual route elements // docs here: -// https://github.com/thi-ng/umbrella/blob/master/packages/router/ -// https://github.com/thi-ng/umbrella/blob/master/packages/router/src/api.ts#L31 +// https://github.com/thi-ng/umbrella/blob/develop/packages/router/ +// https://github.com/thi-ng/umbrella/blob/develop/packages/router/src/api.ts#L31 export const HOME: Route = { id: "home", - match: ["home"] + match: ["home"], }; export const CONTACT: Route = { id: "contact", - match: ["contact"] + match: ["contact"], }; export const USER_LIST: Route = { id: "user-list", - match: ["users"] + match: ["users"], }; // this is a parametric route w/ parameter coercion & validation @@ -35,7 +35,7 @@ export const USER_PROFILE: Route = { validate: { id: { coerce: (x) => parseInt(x), - check: (x) => x > 0 && x < 100 - } - } + check: (x) => x > 0 && x < 100, + }, + }, }; diff --git a/examples/rstream-dataflow/src/circle.ts b/examples/rstream-dataflow/src/circle.ts index 9d4312362f..dcd6a8e31b 100644 --- a/examples/rstream-dataflow/src/circle.ts +++ b/examples/rstream-dataflow/src/circle.ts @@ -10,8 +10,8 @@ export const circle = (col: string, x: number, y: number, w: number, h = w) => [ top: px(y - h / 2), width: px(w), height: px(h), - "line-height": px(h) - } + "line-height": px(h), + }, }, - `${x};${y}` + `${x};${y}`, ]; diff --git a/examples/rstream-dataflow/src/index.ts b/examples/rstream-dataflow/src/index.ts index 7a1ac35182..638f221264 100644 --- a/examples/rstream-dataflow/src/index.ts +++ b/examples/rstream-dataflow/src/index.ts @@ -5,19 +5,8 @@ import { getIn } from "@thi.ng/paths"; import { fromRAF } from "@thi.ng/rstream"; import { toDot, walk } from "@thi.ng/rstream-dot"; import { gestureStream } from "@thi.ng/rstream-gestures"; -import { - extract, - initGraph, - mul, - node, - node1 -} from "@thi.ng/rstream-graph"; -import { - choices, - comp, - dedupe, - map -} from "@thi.ng/transducers"; +import { extract, initGraph, mul, node, node1 } from "@thi.ng/rstream-graph"; +import { choices, comp, dedupe, map } from "@thi.ng/transducers"; import { circle } from "./circle"; // infinite iterator of randomized colors (Tachyons CSS class names) @@ -30,7 +19,7 @@ const colors = choices([ "bg-pink", "bg-light-purple", "bg-orange", - "bg-gray" + "bg-gray", ]); // atom for storing dataflow results (optional, here only for @@ -69,7 +58,7 @@ const graph = initGraph(db, { mpos: { fn: extract(["pos"]), ins: { src: { stream: () => gestures } }, - outs: { "*": "mpos" } + outs: { "*": "mpos" }, }, // extracts last click position from gesture tuple @@ -78,7 +67,7 @@ const graph = initGraph(db, { clickpos: { fn: extract(["active", 0, "click"]), ins: { src: { stream: () => gestures } }, - outs: { "*": "clickpos" } + outs: { "*": "clickpos" }, }, // extracts & computes length of `delta` vector in gesture tuple @@ -93,7 +82,7 @@ const graph = initGraph(db, { }) ), ins: { src: { stream: () => gestures } }, - outs: { "*": "dist" } + outs: { "*": "dist" }, }, // combines `clickpos`, `dist` and `color` streams to produce a @@ -114,9 +103,9 @@ const graph = initGraph(db, { ins: { click: { stream: "/clickpos/node" }, radius: { stream: "/radius/node" }, - color: { stream: "/color/node" } + color: { stream: "/color/node" }, }, - outs: { "*": "circle" } + outs: { "*": "circle" }, }, // produces a new random color for each new drag gesture (and @@ -133,7 +122,7 @@ const graph = initGraph(db, { ) ), ins: { src: { stream: "/clickpos/node" } }, - outs: { "*": "color" } + outs: { "*": "color" }, }, // transforms a `requestAnimationFrame` event stream (frame counter @ 60fps) @@ -141,7 +130,7 @@ const graph = initGraph(db, { sine: { fn: node1(map((x: number) => 0.8 + 0.2 * Math.sin(x * 0.05))), ins: { src: { stream: () => raf } }, - outs: { "*": "sin" } + outs: { "*": "sin" }, }, // multiplies `dist` and `sine` streams to produce an animated @@ -150,10 +139,10 @@ const graph = initGraph(db, { fn: mul, ins: { a: { stream: "/sine/node" }, - b: { stream: "/dist/node" } + b: { stream: "/dist/node" }, }, - outs: { "*": "radius" } - } + outs: { "*": "radius" }, + }, }); // start @thi.ng/hdom update loop @@ -161,13 +150,13 @@ start(() => [ "div", [ "pre.absolute.top-1.left-1.pa0.ma0.z-2.f7", - JSON.stringify(db.deref(), null, 2) + JSON.stringify(db.deref(), null, 2), ], // note: direct embedding of result stream below. this works // since all @thi.ng/rstream subscriptions implement the // @thi.ng/api/IDeref interface (like several other types, e.g. // @thi.ng/atom's Atom, Cursor, View etc.) - graph.circle.node + graph.circle.node, ]); // create a GraphViz DOT file of the entire dataflow graph diff --git a/examples/rstream-event-loop/src/events.ts b/examples/rstream-event-loop/src/events.ts index a8c738d468..c1d31e537c 100644 --- a/examples/rstream-event-loop/src/events.ts +++ b/examples/rstream-event-loop/src/events.ts @@ -1,19 +1,7 @@ import { setInManyUnsafe } from "@thi.ng/paths"; -import { - ISubscriber, - pubsub, - stream, - trace -} from "@thi.ng/rstream"; +import { ISubscriber, pubsub, stream, trace } from "@thi.ng/rstream"; import { filter, Transducer } from "@thi.ng/transducers"; -import { - Event, - EventType, - EventTypeMap, - NEXT, - PAGE_READY, - PREV -} from "./api"; +import { Event, EventType, EventTypeMap, NEXT, PAGE_READY, PREV } from "./api"; import { state } from "./state"; import type { Fn } from "@thi.ng/api"; diff --git a/examples/rstream-event-loop/src/index.ts b/examples/rstream-event-loop/src/index.ts index 41563cfc6c..ed25934213 100644 --- a/examples/rstream-event-loop/src/index.ts +++ b/examples/rstream-event-loop/src/index.ts @@ -15,7 +15,7 @@ const app = ({ pageID, isLoading }: AppState) => isLoading ? [ "div.w-100.vh-100.flex.items-center.justify-center.bg-black.white", - ["div", "Loading..."] + ["div", "Loading..."], ] : [ "div.ma3", @@ -27,10 +27,10 @@ const app = ({ pageID, isLoading }: AppState) => ["button", { onclick: () => dispatch([PREV, 5]) }, "<<"], ["button", { onclick: () => dispatch([PREV, 1]) }, "<"], ["button", { onclick: () => dispatch([NEXT, 1]) }, ">"], - ["button", { onclick: () => dispatch([NEXT, 5]) }, ">>"] + ["button", { onclick: () => dispatch([NEXT, 5]) }, ">>"], ], // only here to show timestamp of last DOM update - ["div.mt3", new Date().toString()] + ["div.mt3", new Date().toString()], ]; /** diff --git a/examples/rstream-grid/src/app.ts b/examples/rstream-grid/src/app.ts index 9542ff2d31..3694b8ff23 100644 --- a/examples/rstream-grid/src/app.ts +++ b/examples/rstream-grid/src/app.ts @@ -1,9 +1,4 @@ -import { - Atom, - Cursor, - defViewUnsafe, - History -} from "@thi.ng/atom"; +import { Atom, Cursor, defViewUnsafe, History } from "@thi.ng/atom"; import { isArray } from "@thi.ng/checks"; import { start } from "@thi.ng/hdom"; import { EventBus } from "@thi.ng/interceptors"; diff --git a/examples/rstream-grid/src/components/button-group.ts b/examples/rstream-grid/src/components/button-group.ts index 5dadae9096..733f015784 100644 --- a/examples/rstream-grid/src/components/button-group.ts +++ b/examples/rstream-grid/src/components/button-group.ts @@ -4,5 +4,5 @@ import type { AppContext } from "../api"; export const buttonGroup = (ctx: AppContext, ...buttons: any[]) => [ "section", ctx.ui.buttongroup, - buttons.map((bt) => [button, ...bt]) + buttons.map((bt) => [button, ...bt]), ]; diff --git a/examples/rstream-grid/src/components/button.ts b/examples/rstream-grid/src/components/button.ts index c6d3ad92d2..92037d5900 100644 --- a/examples/rstream-grid/src/components/button.ts +++ b/examples/rstream-grid/src/components/button.ts @@ -5,5 +5,5 @@ export const button = (ctx: AppContext, event: Event, label: string) => [ eventLink, ctx.ui.button, event, - label + label, ]; diff --git a/examples/rstream-grid/src/components/event-link.ts b/examples/rstream-grid/src/components/event-link.ts index 1a4555eb2a..f5f64a09dc 100644 --- a/examples/rstream-grid/src/components/event-link.ts +++ b/examples/rstream-grid/src/components/event-link.ts @@ -1,7 +1,6 @@ import type { Event } from "@thi.ng/interceptors"; import type { AppContext } from "../api"; - /** * Customizable hyperlink component emitting given event on event bus * when clicked. @@ -23,7 +22,7 @@ export const eventLink = ( onclick: (e: any) => { e.preventDefault(); ctx.bus.dispatch(event); - } + }, }, - body + body, ]; diff --git a/examples/rstream-grid/src/components/link.ts b/examples/rstream-grid/src/components/link.ts index c2b1593d6a..0afd195db1 100644 --- a/examples/rstream-grid/src/components/link.ts +++ b/examples/rstream-grid/src/components/link.ts @@ -3,5 +3,5 @@ import type { AppContext } from "../api"; export const link = (ctx: AppContext, href: string, ...body: any[]) => [ "a", { ...ctx.ui.link, href }, - ...body + ...body, ]; diff --git a/examples/rstream-grid/src/components/sidebar.ts b/examples/rstream-grid/src/components/sidebar.ts index 4c597b0bb6..5c8c40b008 100644 --- a/examples/rstream-grid/src/components/sidebar.ts +++ b/examples/rstream-grid/src/components/sidebar.ts @@ -20,7 +20,7 @@ export const sidebar = (ctx: AppContext, ...specs: SliderOpts[]) => { ["code", "Ctrl+Z"], " / ", ["code", "Ctrl+Y"], - ". The last 1000 edits are stored." + ". The last 1000 edits are stored.", ], [ "div", @@ -28,11 +28,11 @@ export const sidebar = (ctx: AppContext, ...specs: SliderOpts[]) => { [ link, "https://github.com/thi-ng/umbrella/tree/develop/examples/rstream-grid", - "Source" + "Source", ], ["br"], "Made with ", - [link, "https://github.com/thi-ng/umbrella/", "@thi.ng/umbrella"] - ] + [link, "https://github.com/thi-ng/umbrella/", "@thi.ng/umbrella"], + ], ]; }; diff --git a/examples/rstream-grid/src/components/slider.ts b/examples/rstream-grid/src/components/slider.ts index 10b0cc8982..d07c10905f 100644 --- a/examples/rstream-grid/src/components/slider.ts +++ b/examples/rstream-grid/src/components/slider.ts @@ -29,11 +29,11 @@ export const slider = (ctx: AppContext, opts: SliderOpts) => { oninput: (e: Event) => ctx.bus.dispatch([ opts.event, - parseFloat((e.target).value) + parseFloat((e.target).value), ]), min: 0, max: 100, - step: 1 + step: 1, }, opts ); @@ -47,8 +47,8 @@ export const slider = (ctx: AppContext, opts: SliderOpts) => { ...ui.range, ...opts, type: "range", - value: (ctx.views)[opts.view].deref() - } + value: (ctx.views)[opts.view].deref(), + }, ], [ "div", @@ -60,9 +60,9 @@ export const slider = (ctx: AppContext, opts: SliderOpts) => { ...ui.number, ...opts, type: "number", - value: (ctx.views)[opts.view].deref() - } - ] - ] + value: (ctx.views)[opts.view].deref(), + }, + ], + ], ]; }; diff --git a/examples/rstream-grid/src/config.ts b/examples/rstream-grid/src/config.ts index 1db3d7edd7..56d09a0cae 100644 --- a/examples/rstream-grid/src/config.ts +++ b/examples/rstream-grid/src/config.ts @@ -25,7 +25,7 @@ export const CONFIG: AppConfig = { // and only side effect functions execute any "real" work. // Docs here: - // https://github.com/thi-ng/umbrella/blob/master/packages/interceptors/src/event-bus.ts#L14 + // https://github.com/thi-ng/umbrella/blob/develop/packages/interceptors/src/event-bus.ts#L14 events: { // generate slider event handlers. each uses the `snapshot()` // interceptor to record a snapshot of the current app state diff --git a/examples/rstream-grid/src/dataflow.ts b/examples/rstream-grid/src/dataflow.ts index 5b3bc6934c..17a6ac090d 100644 --- a/examples/rstream-grid/src/dataflow.ts +++ b/examples/rstream-grid/src/dataflow.ts @@ -21,15 +21,15 @@ export function initDataflow(bus: EventBus) { fn: grid, ins: { cols: { path: paths.COLS }, - rows: { path: paths.ROWS } - } + rows: { path: paths.ROWS }, + }, }, rotation: { fn: rotate, ins: { shapes: { stream: "/grid/node" }, - theta: { path: paths.THETA } - } + theta: { path: paths.THETA }, + }, }, svg: { fn: createSVG, @@ -37,16 +37,16 @@ export function initDataflow(bus: EventBus) { shapes: { stream: "/rotation/node" }, cols: { path: paths.COLS }, rows: { path: paths.ROWS }, - stroke: { path: paths.STROKE } + stroke: { path: paths.STROKE }, }, // dispatch SVG result doc as event outs: { "*": (node) => node.subscribe({ - next: (svg) => bus.dispatch([ev.UPDATE_SVG, svg]) - }) - } - } + next: (svg) => bus.dispatch([ev.UPDATE_SVG, svg]), + }), + }, + }, }); return graph; } @@ -59,7 +59,7 @@ const grid = node( ...map( ([x, y]) => ["rect", { x, y, width: 1, height: 1 }], range2d(cols, rows) - ) + ), ]) ); @@ -71,8 +71,9 @@ const rotate = node( map(({ shapes, theta }) => shapes.map( (s: any) => ( - (s[1].transform = `rotate(${theta} ${s[1].x + 0.5} ${s[1].y + - 0.5})`), + (s[1].transform = `rotate(${theta} ${s[1].x + 0.5} ${ + s[1].y + 0.5 + })`), s ) ) @@ -89,14 +90,14 @@ const createSVG = node( { class: "w-100 h-100", preserveAspectRatio: "xMidYMid", - viewBox: `-1 -1 ${cols + 2} ${rows + 2}` + viewBox: `-1 -1 ${cols + 2} ${rows + 2}`, }, rect([-1, -1], cols + 2, rows + 2, { fill: "black" }), group( { stroke: "white", fill: "none", - "stroke-width": stroke + "stroke-width": stroke, }, ...shapes ) diff --git a/examples/rstream-grid/src/effects.ts b/examples/rstream-grid/src/effects.ts index 32593dd7d2..45b256c259 100644 --- a/examples/rstream-grid/src/effects.ts +++ b/examples/rstream-grid/src/effects.ts @@ -1,7 +1,7 @@ // best practice tip: define event & effect names as consts or enums // and avoid hardcoded strings for more safety and easier refactoring // also see pre-defined event handlers & interceptors in @thi.ng/atom: -// https://github.com/thi-ng/umbrella/blob/master/packages/interceptors/src/api.ts#L14 +// https://github.com/thi-ng/umbrella/blob/develop/packages/interceptors/src/api.ts#L14 export const SAVE_SVG = "save-svg"; export const SAVE_ANIM = "save-anim"; diff --git a/examples/rstream-grid/src/events.ts b/examples/rstream-grid/src/events.ts index 2402d9388b..930faf6ff6 100644 --- a/examples/rstream-grid/src/events.ts +++ b/examples/rstream-grid/src/events.ts @@ -3,7 +3,7 @@ import { EV_REDO, EV_UNDO } from "@thi.ng/interceptors"; // best practice tip: define event & effect names as consts or enums // and avoid hardcoded strings for more safety and easier refactoring // also see pre-defined event handlers & interceptors in @thi.ng/atom: -// https://github.com/thi-ng/umbrella/blob/master/packages/interceptors/src/api.ts#L14 +// https://github.com/thi-ng/umbrella/blob/develop/packages/interceptors/src/api.ts#L14 export const UNDO = EV_UNDO; export const REDO = EV_REDO; diff --git a/examples/rstream-grid/src/sliders.ts b/examples/rstream-grid/src/sliders.ts index 3722aa6ee1..0a67321fd7 100644 --- a/examples/rstream-grid/src/sliders.ts +++ b/examples/rstream-grid/src/sliders.ts @@ -12,7 +12,7 @@ export const SLIDERS = [ view: "cols", label: "cols", min: 1, - max: 16 + max: 16, }, { event: ev.SET_ROWS, @@ -20,7 +20,7 @@ export const SLIDERS = [ view: "rows", label: "rows", min: 1, - max: 16 + max: 16, }, { event: ev.SET_THETA, @@ -28,7 +28,7 @@ export const SLIDERS = [ view: "theta", label: "rotate", min: 0, - max: 360 + max: 360, }, { event: ev.SET_STROKE, @@ -37,6 +37,6 @@ export const SLIDERS = [ label: "stroke weight", min: 0.01, max: 0.5, - step: 0.01 - } + step: 0.01, + }, ]; diff --git a/examples/rstream-hdom/src/index.ts b/examples/rstream-hdom/src/index.ts index 38de78d6ed..3a9fb4dc3a 100644 --- a/examples/rstream-hdom/src/index.ts +++ b/examples/rstream-hdom/src/index.ts @@ -5,14 +5,9 @@ import { sidechainPartition, Subscription, subscription, - sync + sync, } from "@thi.ng/rstream"; -import { - map, - reducer, - scan, - vals -} from "@thi.ng/transducers"; +import { map, reducer, scan, vals } from "@thi.ng/transducers"; import { updateDOM } from "@thi.ng/transducers-hdom"; // example user context object @@ -21,12 +16,12 @@ import { updateDOM } from "@thi.ng/transducers-hdom"; const ctx = { ui: { root: { - class: "pa2" + class: "pa2", }, button: { - class: "w4 h2 bg-black white bn br2 mr2 pointer" - } - } + class: "w4 h2 bg-black white bn br2 mr2 pointer", + }, + }, }; /** @@ -66,7 +61,7 @@ const domUpdate = (root: HTMLElement, tree: ISubscribable, ctx?: any) => const button = (ctx: any, onclick: EventListener, body: any) => [ "button", { ...ctx.ui.button, onclick }, - body + body, ]; /** @@ -78,7 +73,7 @@ const button = (ctx: any, onclick: EventListener, body: any) => [ const clickButton = (_: any, stream: Subscription) => [ button, () => stream.next(true), - stream.deref() + stream.deref(), ]; /** @@ -90,7 +85,7 @@ const clickButton = (_: any, stream: Subscription) => [ const resetButton = (_: any, counters: Subscription[]) => [ button, () => counters.forEach((c) => c.next(false)), - "reset" + "reset", ]; /** @@ -105,14 +100,14 @@ const counter = (start: number, step: number) => { const s = subscription( undefined, // the `scan` transducer is used to provide counter functionality - // see: https://github.com/thi-ng/umbrella/blob/master/packages/transducers/src/xform/scan.ts + // see: https://github.com/thi-ng/umbrella/blob/develop/packages/transducers/src/xform/scan.ts { xform: scan( reducer( () => start, (x, y) => (y ? x + step : start) ) - ) + ), } ); s.next(false); @@ -137,7 +132,7 @@ const app = (ctx: any, initial: number[][]) => { "div", ctx.ui.root, ...vals(buttons), - [resetButton, counters] + [resetButton, counters], ] ), // this config ensures that only at the very beginning *all* @@ -146,9 +141,9 @@ const app = (ctx: any, initial: number[][]) => { // however, by stating `reset: false` (actually the default) any // subsequent changes to any of the inputs will not be // synchronized see here for further details: - // https://github.com/thi-ng/umbrella/blob/master/packages/rstream/src/stream-sync.ts#L21 - // https://github.com/thi-ng/umbrella/blob/master/packages/transducers/src/xform/partition-sync.ts#L7 - reset: false + // https://github.com/thi-ng/umbrella/blob/develop/packages/rstream/src/stream-sync.ts#L21 + // https://github.com/thi-ng/umbrella/blob/develop/packages/transducers/src/xform/partition-sync.ts#L7 + reset: false, }); }; @@ -158,7 +153,7 @@ domUpdate( app(ctx, [ [10, 1], [20, 5], - [30, 10] + [30, 10], ]), ctx ); diff --git a/examples/rstream-spreadsheet/src/dsl.ts b/examples/rstream-spreadsheet/src/dsl.ts index e1bcd94319..88ff0b800e 100644 --- a/examples/rstream-spreadsheet/src/dsl.ts +++ b/examples/rstream-spreadsheet/src/dsl.ts @@ -3,12 +3,7 @@ import { illegalArgs } from "@thi.ng/errors"; import { fit } from "@thi.ng/math"; import { memoize1 } from "@thi.ng/memoize"; import { fromView } from "@thi.ng/rstream"; -import { - addNode, - node, - NodeInputSpec, - NodeSpec -} from "@thi.ng/rstream-graph"; +import { addNode, node, NodeInputSpec, NodeSpec } from "@thi.ng/rstream-graph"; import { ASTNode, Implementations, diff --git a/examples/rstream-spreadsheet/src/index.ts b/examples/rstream-spreadsheet/src/index.ts index 0345d785ca..028bce6ae8 100644 --- a/examples/rstream-spreadsheet/src/index.ts +++ b/examples/rstream-spreadsheet/src/index.ts @@ -9,23 +9,17 @@ import { permutations, push, range, - transduce + transduce, } from "@thi.ng/transducers"; import { updateDOM } from "@thi.ng/transducers-hdom"; -import { - CELL_STYLE, - MAX_COL, - NUM_COLS, - NUM_ROWS, - UICell -} from "./api"; +import { CELL_STYLE, MAX_COL, NUM_COLS, NUM_ROWS, UICell } from "./api"; import { blurCell, cancelCell, DB, focusCell, graph, - updateCell + updateCell, } from "./state"; const formatCell = (x: string | number) => (isNumber(x) ? x.toFixed(2) : x); @@ -91,15 +85,15 @@ const cell = ([row, col]: [number, string]) => cancelCell(id); this.element!.blur(); } - } + }, }, String( cell.focus && cell.formula ? cell.formula : cell.error || formatCell(cell.value) - ) + ), ]; - } + }, }; /** @@ -129,12 +123,12 @@ const app = () => { [ `${CELL_STYLE}.w2.b.bg-moon-gray.overflow-y-hidden.overflow-x-scroll`, {}, - rowid + rowid, ], - ...CELLS[i].map((cell) => [cell, state]) + ...CELLS[i].map((cell) => [cell, state]), ], range(1, NUM_ROWS + 1) - ) + ), ]; }; diff --git a/examples/scenegraph-image/src/index.ts b/examples/scenegraph-image/src/index.ts index cc163ed6f8..5815358de9 100644 --- a/examples/scenegraph-image/src/index.ts +++ b/examples/scenegraph-image/src/index.ts @@ -30,7 +30,7 @@ class ImgNode extends Node2D { "img", { alpha, width: size[0], height: size[1] }, img, - [0, 0] + [0, 0], ]); this.img = img; } @@ -97,13 +97,13 @@ imagePromise(LOGO).then((img) => { const q = geom.mapLocalPointToNode(imgNode, [x, y]); const r = (imgMap.getAt(q[0], q[1]) * 5) / 255; return [x, sin(x, 0.05, r, y)]; - }, range(-200, 200)) + }, range(-200, 200)), ]), range(-200, 200, 5) ); geom.body = group({ fill: "none", stroke: "#fff", weight: 0.5 }, [ - ...waves + ...waves, ]); return [ "div.sans-serif.pl3", @@ -115,7 +115,7 @@ imagePromise(LOGO).then((img) => { ", ", ["b", "@thi.ng/pixel"], " and ", - ["b", "@thi.ng/hdom-canvas"] + ["b", "@thi.ng/hdom-canvas"], ], ["p", "Click to toggle image overlay"], [ @@ -126,12 +126,12 @@ imagePromise(LOGO).then((img) => { width: 600, height: 600, onmousemove: updateMouse, - onclick: toggleImage + onclick: toggleImage, }, // only need to pass root node which then expands itself via // .toHiccup() during rendering - root - ] + root, + ], ]; }; diff --git a/examples/scenegraph/src/index.ts b/examples/scenegraph/src/index.ts index 5d6b6f11dd..833977244a 100644 --- a/examples/scenegraph/src/index.ts +++ b/examples/scenegraph/src/index.ts @@ -1,20 +1,10 @@ -import { - asPolygon, - circle, - pointInside, - rect -} from "@thi.ng/geom"; +import { asPolygon, circle, pointInside, rect } from "@thi.ng/geom"; import { start } from "@thi.ng/hdom"; import { canvas } from "@thi.ng/hdom-canvas"; import { HALF_PI, PI } from "@thi.ng/math"; import { Node2D, NodeInfo } from "@thi.ng/scenegraph"; import { cycle, map, range } from "@thi.ng/transducers"; -import { - cartesian2, - mulN2, - ReadonlyVec, - Vec -} from "@thi.ng/vectors"; +import { cartesian2, mulN2, ReadonlyVec, Vec } from "@thi.ng/vectors"; import type { IShape } from "@thi.ng/geom-api"; /** @@ -58,7 +48,7 @@ const colors = cycle([ "#9f0", "#0ff", "#090", - "#f60" + "#f60", ]); // scene graph definition @@ -99,7 +89,7 @@ const satellites = [ rect([-0.5, -0.5], [1, 1], { fill: "#cf0" }) ), range(4) - ) + ), ]; // this node uses a hdom component function as body to create the dynamic @@ -119,11 +109,11 @@ const infoNode = new Node2D("info", root, mouse, 0, 1, () => [ "text", {}, [8, -10], - `${info.p![0].toFixed(2)}, ${info.p![1].toFixed(2)}` + `${info.p![0].toFixed(2)}, ${info.p![1].toFixed(2)}`, ], - ["text", {}, [8, -24], `ID: ${info.node.id}`] + ["text", {}, [8, -24], `ID: ${info.node.id}`], ] - : undefined + : undefined, ]); // mousemove event handler @@ -158,12 +148,12 @@ const app = () => { width: 600, height: 600, onmousemove: updateMouse, - onclick: selectNode + onclick: selectNode, }, // only need to pass root node which then expands itself via // .toHiccup() during rendering - root - ] + root, + ], ]; }; diff --git a/examples/shader-ast-canvas2d/src/index.ts b/examples/shader-ast-canvas2d/src/index.ts index 815317eebd..0f072ca8cb 100644 --- a/examples/shader-ast-canvas2d/src/index.ts +++ b/examples/shader-ast-canvas2d/src/index.ts @@ -14,7 +14,7 @@ import { sym, Vec2Sym, vec3, - vec4 + vec4, } from "@thi.ng/shader-ast"; import { targetGLSL } from "@thi.ng/shader-ast-glsl"; import { canvasRenderer, targetJS } from "@thi.ng/shader-ast-js"; @@ -30,7 +30,11 @@ const main = defn( // func name "main", // args (names are optional) - [["vec2", "fragCoord"], ["vec2", "res"], ["float", "time"]], + [ + ["vec2", "fragCoord"], + ["vec2", "res"], + ["float", "time"], + ], // bound args given to function body (frag, res, time) => { let a: FloatSym; @@ -60,7 +64,7 @@ const main = defn( ), 1 ) - ) + ), ]; } ); diff --git a/examples/shader-ast-evo/src/index.ts b/examples/shader-ast-evo/src/index.ts index 064d23add3..1c93364085 100644 --- a/examples/shader-ast-evo/src/index.ts +++ b/examples/shader-ast-evo/src/index.ts @@ -1,9 +1,4 @@ -import { - AST, - ASTNode, - ASTOpts, - GeneType -} from "@thi.ng/gp"; +import { AST, ASTNode, ASTOpts, GeneType } from "@thi.ng/gp"; import { roundTo } from "@thi.ng/math"; import { IRandom, SYSTEM } from "@thi.ng/random"; import { @@ -37,16 +32,20 @@ import { vec3, Vec3Sym, Vec3Term, - vec4 + vec4, } from "@thi.ng/shader-ast"; import { clamp11, fragUV, snoise3, - snoiseVec3 + snoiseVec3, } from "@thi.ng/shader-ast-stdlib"; import { glCanvas } from "@thi.ng/webgl"; -import { MainImageFn, shaderToy, ShaderToyUniforms } from "@thi.ng/webgl-shadertoy"; +import { + MainImageFn, + shaderToy, + ShaderToyUniforms, +} from "@thi.ng/webgl-shadertoy"; const MAX_DEPTH = 11; const NORM_SCALE = 1; @@ -75,7 +74,7 @@ const OP1 = [ (x: Vec3Term) => $(x, "yxz"), (x: Vec3Term) => $(x, "xxx"), (x: Vec3Term) => $(x, "yyy"), - (x: Vec3Term) => $(x, "zzz") + (x: Vec3Term) => $(x, "zzz"), ]; // binary functions const OP2 = [ @@ -85,7 +84,7 @@ const OP2 = [ div, mod, pow, - (x: Vec3Term, y: Vec3Term) => vec3(distance(x, y)) + (x: Vec3Term, y: Vec3Term) => vec3(distance(x, y)), ]; // ternary functions const OP3 = [mix]; @@ -109,10 +108,10 @@ const AST_OPTS: ASTOpts = { ops: [ { fn: randomFn(OP1), arity: 1, prob: 0.4 }, { fn: randomFn(OP2), arity: 2, prob: 0.4 }, - { fn: randomFn(OP3), arity: 3, prob: 0.1 } + { fn: randomFn(OP3), arity: 3, prob: 0.1 }, ], maxDepth: MAX_DEPTH, - probMutate: 0.01 + probMutate: 0.01, }; const transpile = (node: ASTNode): Term => @@ -132,7 +131,7 @@ const shaderFunction = ( mul(1, fract(unis.time)) ) ), - ret(vec4(abs(transpile(ast)), 1)) + ret(vec4(abs(transpile(ast)), 1)), // ret(vec4(fit1101(normalize(transpile(ast))), 1)) ]; }; @@ -144,13 +143,13 @@ const canvas = glCanvas({ width: 640, height: 640, parent: document.body, - version: 1 + version: 1, }); const toy = shaderToy({ canvas: canvas.canvas, gl: canvas.gl, - main: shaderFunction(currTree) + main: shaderFunction(currTree), }); toy.start(); diff --git a/examples/shader-ast-noise/src/index.ts b/examples/shader-ast-noise/src/index.ts index aa83c7d7a1..6f4d89eaf5 100644 --- a/examples/shader-ast-noise/src/index.ts +++ b/examples/shader-ast-noise/src/index.ts @@ -12,7 +12,7 @@ import { vec2, Vec2Sym, vec3, - vec4 + vec4, } from "@thi.ng/shader-ast"; import { GLSLVersion, targetGLSL } from "@thi.ng/shader-ast-glsl"; import { canvasRenderer, targetJS } from "@thi.ng/shader-ast-js"; @@ -20,14 +20,9 @@ import { additive, aspectCorrectedUV, fit1101, - snoise2 + snoise2, } from "@thi.ng/shader-ast-stdlib"; -import { - compileModel, - draw, - quad, - shader -} from "@thi.ng/webgl"; +import { compileModel, draw, quad, shader } from "@thi.ng/webgl"; // set URL hash to "#2d" to enable JS Canvas2D version const JS_MODE = location.hash.indexOf("2d") >= 0; @@ -52,7 +47,7 @@ const mainImage = defn( (col = sym( additive("vec2", snoise2, 4)(add(uv, time), vec2(2), float(0.5)) )), - ret(vec4(vec3(fit1101(col)), 1)) + ret(vec4(vec3(fit1101(col)), 1)), ]; } ); @@ -100,8 +95,8 @@ if (JS_MODE) { model.shader = shader(ctx, { vs: (gl, _, attribs) => [ defMain(() => [ - assign(gl.gl_Position, vec4(attribs.position, 0, 1)) - ]) + assign(gl.gl_Position, vec4(attribs.position, 0, 1)), + ]), ], fs: (gl, unis, _, outs) => [ mainImage, @@ -109,16 +104,16 @@ if (JS_MODE) { assign( outs.fragColor, mainImage($xy(gl.gl_FragCoord), unis.resolution, unis.time) - ) - ]) + ), + ]), ], attribs: { - position: "vec2" + position: "vec2", }, uniforms: { resolution: ["vec2", [W, H]], - time: "float" - } + time: "float", + }, }); // compile model (attrib buffers) compileModel(ctx, model); diff --git a/examples/shader-ast-raymarch/src/index.ts b/examples/shader-ast-raymarch/src/index.ts index 01f896bdcf..843f084e71 100644 --- a/examples/shader-ast-raymarch/src/index.ts +++ b/examples/shader-ast-raymarch/src/index.ts @@ -18,7 +18,7 @@ import { Vec2Sym, vec3, Vec3Sym, - vec4 + vec4, } from "@thi.ng/shader-ast"; import { GLSLVersion, targetGLSL } from "@thi.ng/shader-ast-glsl"; import { canvasRenderer, targetJS } from "@thi.ng/shader-ast-js"; @@ -37,15 +37,9 @@ import { sdfBox3, sdfRepeat3, sdfSmoothUnion, - sdfSphere + sdfSphere, } from "@thi.ng/shader-ast-stdlib"; -import { - compileModel, - draw, - GLVec3, - quad, - shader -} from "@thi.ng/webgl"; +import { compileModel, draw, GLVec3, quad, shader } from "@thi.ng/webgl"; // set URL hash to "#2d" to enable JS Canvas2D version const JS_MODE = location.hash.indexOf("2d") >= 0; @@ -80,7 +74,7 @@ const scene = defn("vec2", "scene", ["vec3"], (pos) => { ), 1 ) - ) + ), ]; }); @@ -151,7 +145,7 @@ const mainImage = defn( ), 1 ) - ) + ), ]; } ); @@ -191,7 +185,7 @@ if (JS_MODE) { const eyePos = [ Math.cos(time) * 2.5, Math.cos(time / 2) * 0.7, - Math.sin(time) * 2.5 + Math.sin(time) * 2.5, ]; rt((frag) => fn(frag, size, eyePos, lightDir)); }, 16); @@ -206,8 +200,8 @@ if (JS_MODE) { model.shader = shader(ctx, { vs: (_, __, attribs) => [ defMain(() => [ - assign(GL.gl_Position, vec4(attribs.position, 0, 1)) - ]) + assign(GL.gl_Position, vec4(attribs.position, 0, 1)), + ]), ], fs: (gl, unis, _, outputs) => [ mainImage, @@ -220,17 +214,17 @@ if (JS_MODE) { unis.eyePos, unis.lightDir ) - ) - ]) + ), + ]), ], attribs: { - position: "vec2" + position: "vec2", }, uniforms: { eyePos: "vec3", lightDir: ["vec3", lightDir], - resolution: ["vec2", [W, H]] - } + resolution: ["vec2", [W, H]], + }, }); // compile model (attrib buffers) compileModel(ctx, model); @@ -242,7 +236,7 @@ if (JS_MODE) { model.uniforms!.eyePos = [ Math.cos(time) * 2.5, Math.cos(time / 2) * 0.7, - Math.sin(time) * 2.5 + Math.sin(time) * 2.5, ]; draw(model); }); diff --git a/examples/shader-ast-sdf2d/src/index.ts b/examples/shader-ast-sdf2d/src/index.ts index b22191c7ed..c3d5abc16d 100644 --- a/examples/shader-ast-sdf2d/src/index.ts +++ b/examples/shader-ast-sdf2d/src/index.ts @@ -14,7 +14,7 @@ import { vec2, Vec2Sym, vec3, - vec4 + vec4, } from "@thi.ng/shader-ast"; import { GLSLVersion, targetGLSL } from "@thi.ng/shader-ast-glsl"; import { canvasRenderer, targetJS } from "@thi.ng/shader-ast-js"; @@ -23,14 +23,9 @@ import { fit1101, sdfBox2, sdfSmoothUnion, - sdfTriangle2 + sdfTriangle2, } from "@thi.ng/shader-ast-stdlib"; -import { - compileModel, - draw, - quad, - shader -} from "@thi.ng/webgl"; +import { compileModel, draw, quad, shader } from "@thi.ng/webgl"; // set URL hash to "#2d" to enable JS Canvas2D version const JS_MODE = location.hash.indexOf("2d") >= 0; @@ -63,7 +58,7 @@ const scene = defn("float", "scene", ["vec2"], (pos) => { d1, sdfSmoothUnion(sdfSmoothUnion(d3, d2, float(0.5)), d1, float(0.5)) ), - ret(d1) + ret(d1), ]; }); @@ -85,7 +80,7 @@ const mainImage = defn("vec4", "mainImage", ["vec2", "vec2"], (frag, res) => { ), 1 ) - ) + ), ]; }); @@ -130,8 +125,8 @@ if (JS_MODE) { model.shader = shader(ctx, { vs: (gl, _, attribs) => [ defMain(() => [ - assign(gl.gl_Position, vec4(attribs.position, 0, 1)) - ]) + assign(gl.gl_Position, vec4(attribs.position, 0, 1)), + ]), ], fs: (gl, unis, _, outs) => [ mainImage, @@ -139,15 +134,15 @@ if (JS_MODE) { assign( outs.fragColor, mainImage($xy(gl.gl_FragCoord), unis.resolution) - ) - ]) + ), + ]), ], attribs: { - position: "vec2" + position: "vec2", }, uniforms: { - resolution: ["vec2", [W, H]] - } + resolution: ["vec2", [W, H]], + }, }); // compile model (attrib buffers) compileModel(ctx, model); diff --git a/examples/shader-ast-tunnel/src/index.ts b/examples/shader-ast-tunnel/src/index.ts index e05597f4b1..6db478fa0b 100644 --- a/examples/shader-ast-tunnel/src/index.ts +++ b/examples/shader-ast-tunnel/src/index.ts @@ -22,16 +22,20 @@ import { texture, vec2, Vec2Sym, - vec4 + vec4, } from "@thi.ng/shader-ast"; import { GLSLVersion, targetGLSL } from "@thi.ng/shader-ast-glsl"; -import { canvasRenderer, JS_DEFAULT_ENV, targetJS } from "@thi.ng/shader-ast-js"; +import { + canvasRenderer, + JS_DEFAULT_ENV, + targetJS, +} from "@thi.ng/shader-ast-js"; import { compileModel, draw, quad, shader, - texture as glTexture + texture as glTexture, } from "@thi.ng/webgl"; import TEX_URL from "../assets/tex.jpg"; @@ -68,7 +72,7 @@ const mainImage = defn( div(atan(div($y(p), $x(p))), float(Math.PI)) ) )), - ret(vec4(mul($xyz(texture(tex, uv)), r), float(1))) + ret(vec4(mul($xyz(texture(tex, uv)), r), float(1))), ]; } ); @@ -149,8 +153,8 @@ if (JS_MODE) { model.shader = shader(ctx, { vs: (gl, _, attribs) => [ defMain(() => [ - assign(gl.gl_Position, vec4(attribs.position, 0, 1)) - ]) + assign(gl.gl_Position, vec4(attribs.position, 0, 1)), + ]), ], fs: (gl, unis, _, outs) => [ mainImage, @@ -163,17 +167,17 @@ if (JS_MODE) { unis.time, unis.tex ) - ) - ]) + ), + ]), ], attribs: { - position: "vec2" + position: "vec2", }, uniforms: { resolution: ["vec2", [W, H]], time: "float", - tex: ["sampler2D", 0] - } + tex: ["sampler2D", 0], + }, }); model.textures = [glTexture(ctx, { image: tex, filter: ctx.LINEAR })]; diff --git a/examples/shader-ast-workers/src/index.ts b/examples/shader-ast-workers/src/index.ts index c630415ea4..6587c5edf6 100644 --- a/examples/shader-ast-workers/src/index.ts +++ b/examples/shader-ast-workers/src/index.ts @@ -31,7 +31,7 @@ forkJoin({ y1: id * rowsPerSlice, y2: (id + 1) * rowsPerSlice, id, - time + time, }), // re-join partial results (here, update canvas) join: (parts) => { @@ -41,7 +41,7 @@ forkJoin({ time.next(time.deref()! + 0.05); }, worker: "./worker.js", - numWorkers: NUM_WORKERS + numWorkers: NUM_WORKERS, }); const updatePixels = (parts: WorkerResult[]) => { diff --git a/examples/shader-ast-workers/src/worker.ts b/examples/shader-ast-workers/src/worker.ts index 3a43ac9b4a..0218cc12ed 100644 --- a/examples/shader-ast-workers/src/worker.ts +++ b/examples/shader-ast-workers/src/worker.ts @@ -18,7 +18,7 @@ import { Vec2Sym, vec3, Vec3Sym, - vec4 + vec4, } from "@thi.ng/shader-ast"; import { renderPixels, targetJS } from "@thi.ng/shader-ast-js"; import { @@ -36,15 +36,9 @@ import { sdfBox3, sdfRepeat3, sdfSmoothUnion, - sdfSphere + sdfSphere, } from "@thi.ng/shader-ast-stdlib"; -import { - comp, - map, - normRange, - slidingWindow, - step -} from "@thi.ng/transducers"; +import { comp, map, normRange, slidingWindow, step } from "@thi.ng/transducers"; import { sma } from "@thi.ng/transducers-stats"; import { NUM_WORKERS, WorkerJob, WorkerResult } from "./api"; @@ -76,7 +70,7 @@ const scene = defn("vec2", "scene", ["vec3"], (pos) => { ), 1 ) - ) + ), ]; }); @@ -154,7 +148,7 @@ const mainImage = defn( ), 1 ) - ) + ), ]; } ); @@ -182,7 +176,7 @@ self.addEventListener("message", (e) => { [ Math.cos(job.time) * 2.5, Math.cos(job.time / 2) * 0.7, - Math.sin(job.time) * 2.5 + Math.sin(job.time) * 2.5, ], // light dir [0.707, 0.707, 0], diff --git a/examples/svg-barchart/src/index.ts b/examples/svg-barchart/src/index.ts index 53e192ca6a..cd27828409 100644 --- a/examples/svg-barchart/src/index.ts +++ b/examples/svg-barchart/src/index.ts @@ -14,7 +14,7 @@ const mappedRange = ( // syntax sugar to create SVG line const line = (x1: number, y1: number, x2: number, y2: number) => [ "line", - { x1, y1, x2, y2 } + { x1, y1, x2, y2 }, ]; // reusuable axis tick & label combo @@ -41,7 +41,7 @@ const axisX = ({ axis: a, domain: d, range: r }: any) => [ "g", { "text-anchor": "middle" }, line(a[0], a[2], a[1], a[2]), - mapcat(tickX(a[2]), mappedRange(d[0], d[1], d[2], r[0], r[1])) + mapcat(tickX(a[2]), mappedRange(d[0], d[1], d[2], r[0], r[1])), ]; // y-axis with ticks as SVG group @@ -49,7 +49,7 @@ const axisY = ({ axis: a, domain: d, range: r }: any) => [ "g", { "text-anchor": "end" }, line(a[2], a[0], a[2], a[1]), - mapcat(tickY(a[2]), mappedRange(d[0], d[1], d[2], r[0], r[1])) + mapcat(tickY(a[2]), mappedRange(d[0], d[1], d[2], r[0], r[1])), ]; // mapping fn to create a single bar from `[domainPos, value]` @@ -64,8 +64,8 @@ const bar = ( x: fit(xx, xd[0], xd[1], xr[0], xr[1]) - 5, y, width: 10, - height: yr[0] - y - } + height: yr[0] - y, + }, ]; }; @@ -74,7 +74,7 @@ const barChart = (_: any, opts: any, values: any) => [ "svg", opts.attribs, ["g", { stroke: opts.axis, fill: opts.axis }, axisX(opts.x), axisY(opts.y)], - ["g", { fill: opts.fill }, map(bar(opts.x, opts.y), values)] + ["g", { fill: opts.fill }, map(bar(opts.x, opts.y), values)], ]; // one-off DOM creation @@ -88,23 +88,23 @@ renderOnce([ width: 500, height: 200, "font-size": "10px", - "font-family": "Menlo, sans-serif" + "font-family": "Menlo, sans-serif", }, x: { axis: [40, 490, 170], domain: [1980, 2021, 10], - range: [60, 480] + range: [60, 480], }, y: { axis: [170, 10, 40], domain: [0, 101, 25], - range: [160, 20] + range: [160, 20], }, axis: "#666", - fill: "#0cc" + fill: "#0cc", }, - map((year) => [year, Math.random() * 100], range(1980, 2020, 2)) - ] + map((year) => [year, Math.random() * 100], range(1980, 2020, 2)), + ], ]); if (process.env.NODE_ENV !== "production") { diff --git a/examples/svg-particles/src/index.ts b/examples/svg-particles/src/index.ts index 91c4cf3491..e2b06f6c91 100644 --- a/examples/svg-particles/src/index.ts +++ b/examples/svg-particles/src/index.ts @@ -27,8 +27,8 @@ const randomParticle = () => { cx: Math.random() * width, cy: Math.random() * height, r: (Math.random() * 6 + 3) | 0, - fill: "#" + U24((Math.random() * 0x1000000) | 0) - } + fill: "#" + U24((Math.random() * 0x1000000) | 0), + }, ]; }; @@ -42,7 +42,7 @@ const app = () => { return [ "svg", { width, height, __diff: false, __normalize: false }, - particles + particles, ]; }; diff --git a/examples/svg-waveform/src/components/button-group.ts b/examples/svg-waveform/src/components/button-group.ts index a1e3b0fb2e..023882243f 100644 --- a/examples/svg-waveform/src/components/button-group.ts +++ b/examples/svg-waveform/src/components/button-group.ts @@ -5,6 +5,6 @@ export function buttonGroup(ctx: AppContext, ...buttons: any[]) { return [ "section", ctx.ui.buttongroup, - buttons.map((bt) => [button, ...bt]) + buttons.map((bt) => [button, ...bt]), ]; } diff --git a/examples/svg-waveform/src/components/event-link.ts b/examples/svg-waveform/src/components/event-link.ts index a1ae8a523f..d085e6c6f1 100644 --- a/examples/svg-waveform/src/components/event-link.ts +++ b/examples/svg-waveform/src/components/event-link.ts @@ -1,7 +1,6 @@ import type { Event } from "@thi.ng/interceptors"; import type { AppContext } from "../api"; - /** * Customizable hyperlink component emitting given event on event bus * when clicked. @@ -24,8 +23,8 @@ export function eventLink( onclick: (e: any) => { e.preventDefault(); ctx.bus.dispatch(event); - } + }, }, - body + body, ]; } diff --git a/examples/svg-waveform/src/components/main.ts b/examples/svg-waveform/src/components/main.ts index e5da04627a..6c553c82c4 100644 --- a/examples/svg-waveform/src/components/main.ts +++ b/examples/svg-waveform/src/components/main.ts @@ -3,7 +3,6 @@ import { sidebar } from "./sidebar"; import { waveform } from "./waveform"; import type { AppContext } from "../api"; - export function main(ctx: AppContext) { const bar = sidebar(ctx, ...SLIDERS); return () => [ @@ -19,7 +18,7 @@ export function main(ctx: AppContext) { res: 1000, stroke: "#f04", fill1: "#f04", - fill2: "#ff0" - }) + fill2: "#ff0", + }), ]; } diff --git a/examples/svg-waveform/src/components/sidebar.ts b/examples/svg-waveform/src/components/sidebar.ts index 758deffd81..7b4addf784 100644 --- a/examples/svg-waveform/src/components/sidebar.ts +++ b/examples/svg-waveform/src/components/sidebar.ts @@ -4,7 +4,6 @@ import { link } from "./link"; import { slider, SliderOpts } from "./slider"; import type { AppContext } from "../api"; - export function sidebar(ctx: AppContext, ...specs: SliderOpts[]) { const sliders = specs.map((s) => slider(ctx, s)); return [ @@ -19,7 +18,7 @@ export function sidebar(ctx: AppContext, ...specs: SliderOpts[]) { ["code", "Ctrl+Z"], " / ", ["code", "Ctrl+Y"], - ". The last 1000 edits are stored." + ". The last 1000 edits are stored.", ], [ "div", @@ -27,15 +26,15 @@ export function sidebar(ctx: AppContext, ...specs: SliderOpts[]) { [ link, "https://github.com/thi-ng/umbrella/tree/develop/examples/svg-waveform", - "Source" + "Source", ], ["br"], "Made with ", [ link, "https://github.com/thi-ng/umbrella/tree/develop/packages/hdom", - "@thi.ng/hdom" - ] - ] + "@thi.ng/hdom", + ], + ], ]; } diff --git a/examples/svg-waveform/src/components/slider.ts b/examples/svg-waveform/src/components/slider.ts index 4991907485..1f7cfdc340 100644 --- a/examples/svg-waveform/src/components/slider.ts +++ b/examples/svg-waveform/src/components/slider.ts @@ -29,11 +29,11 @@ export function slider(ctx: AppContext, opts: SliderOpts) { oninput: (e: Event) => ctx.bus.dispatch([ opts.event, - parseFloat((e.target).value) + parseFloat((e.target).value), ]), min: 0, max: 100, - step: 1 + step: 1, }, opts ); @@ -46,8 +46,8 @@ export function slider(ctx: AppContext, opts: SliderOpts) { ...ctx.ui.slider.range, ...opts, type: "range", - value: (ctx.views)[opts.view].deref() - } + value: (ctx.views)[opts.view].deref(), + }, ], [ "div", @@ -58,9 +58,9 @@ export function slider(ctx: AppContext, opts: SliderOpts) { ...ctx.ui.slider.number, ...opts, type: "number", - value: (ctx.views)[opts.view].deref() - } - ] - ] + value: (ctx.views)[opts.view].deref(), + }, + ], + ], ]; } diff --git a/examples/svg-waveform/src/components/waveform.ts b/examples/svg-waveform/src/components/waveform.ts index 2bd568a211..76d3291558 100644 --- a/examples/svg-waveform/src/components/waveform.ts +++ b/examples/svg-waveform/src/components/waveform.ts @@ -1,15 +1,5 @@ -import { - defs, - linearGradient, - polyline, - svg -} from "@thi.ng/hiccup-svg"; -import { - map, - range, - reduce, - reducer -} from "@thi.ng/transducers"; +import { defs, linearGradient, polyline, svg } from "@thi.ng/hiccup-svg"; +import { map, range, reduce, reducer } from "@thi.ng/transducers"; import type { AppContext } from "../api"; const TAU = Math.PI * 2; @@ -42,7 +32,11 @@ export function waveform(ctx: AppContext, opts: WaveformOpts) { "grad", [0, 0], [0, 1], - [[0, opts.fill2], [0.5, opts.fill1], [1, opts.fill2]] + [ + [0, opts.fill2], + [0.5, opts.fill1], + [1, opts.fill2], + ] ) ), polyline( @@ -51,16 +45,16 @@ export function waveform(ctx: AppContext, opts: WaveformOpts) { ...map( (x) => [ x, - osc(x, phase, fscale, amp, opts.harmonics, opts.hstep) + osc(x, phase, fscale, amp, opts.harmonics, opts.hstep), ], range(opts.res) ), - [opts.res, 0] + [opts.res, 0], ], { stroke: opts.stroke, fill: "url(#grad)", - "stoke-linejoin": "round" + "stoke-linejoin": "round", } ) ); diff --git a/examples/svg-waveform/src/config.ts b/examples/svg-waveform/src/config.ts index 56bfb19307..31ffb264f1 100644 --- a/examples/svg-waveform/src/config.ts +++ b/examples/svg-waveform/src/config.ts @@ -16,7 +16,7 @@ export const CONFIG: AppConfig = { // and only side effect functions execute any "real" work. // Docs here: - // https://github.com/thi-ng/umbrella/blob/master/packages/interceptors/src/event-bus.ts#L14 + // https://github.com/thi-ng/umbrella/blob/develop/packages/interceptors/src/event-bus.ts#L14 events: { // generate event handlers from imported slider definitions @@ -32,10 +32,10 @@ export const CONFIG: AppConfig = { events[spec.event] = [ ensureParamRange(spec.min, spec.max), snapshot(), - valueSetter(spec.view) + valueSetter(spec.view), ]; return events; - }, {}) + }, {}), }, // custom side effects @@ -53,7 +53,7 @@ export const CONFIG: AppConfig = { freq: 3, harmonics: 20, hstep: 2, - phase: 0 + phase: 0, }, // derived view declarations @@ -67,7 +67,7 @@ export const CONFIG: AppConfig = { freq: "freq", phase: "phase", harmonics: "harmonics", - hstep: "hstep" + hstep: "hstep", }, // component CSS class config using http://tachyons.io/ these @@ -76,7 +76,7 @@ export const CONFIG: AppConfig = { ui: { button: { class: - "pointer bg-black hover-bg-blue bg-animate white pa2 mr1 w-100 ttu b tracked-tight" + "pointer bg-black hover-bg-blue bg-animate white pa2 mr1 w-100 ttu b tracked-tight", }, buttongroup: { class: "flex mb2" }, footer: { class: "absolute bottom-1" }, @@ -86,8 +86,8 @@ export const CONFIG: AppConfig = { slider: { root: { class: "mb3 ttu b tracked-tight" }, range: { class: "w-100" }, - number: { class: "fr w3 tr ttu bn bg-transparent" } + number: { class: "fr w3 tr ttu bn bg-transparent" }, }, - waveform: { class: "w-100 h-100" } - } + waveform: { class: "w-100 h-100" }, + }, }; diff --git a/examples/svg-waveform/src/effects.ts b/examples/svg-waveform/src/effects.ts index 69901d8cb0..65dd20a07c 100644 --- a/examples/svg-waveform/src/effects.ts +++ b/examples/svg-waveform/src/effects.ts @@ -1,7 +1,7 @@ // best practice tip: define event & effect names as consts or enums // and avoid hardcoded strings for more safety and easier refactoring // also see pre-defined event handlers & interceptors in @thi.ng/atom: -// https://github.com/thi-ng/umbrella/blob/master/packages/interceptors/src/api.ts#L14 +// https://github.com/thi-ng/umbrella/blob/develop/packages/interceptors/src/api.ts#L14 /** * Effect description diff --git a/examples/svg-waveform/src/events.ts b/examples/svg-waveform/src/events.ts index e57f04400e..838e474105 100644 --- a/examples/svg-waveform/src/events.ts +++ b/examples/svg-waveform/src/events.ts @@ -3,7 +3,7 @@ import { EV_UNDO, EV_REDO } from "@thi.ng/interceptors"; // best practice tip: define event & effect names as consts or enums // and avoid hardcoded strings for more safety and easier refactoring // also see pre-defined event handlers & interceptors in @thi.ng/atom: -// https://github.com/thi-ng/umbrella/blob/master/packages/interceptors/src/api.ts#L14 +// https://github.com/thi-ng/umbrella/blob/develop/packages/interceptors/src/api.ts#L14 export const SET_AMP = "set-amp"; export const SET_FREQ = "set-freq"; diff --git a/examples/svg-waveform/src/sliders.ts b/examples/svg-waveform/src/sliders.ts index 48874ac319..646f027aa8 100644 --- a/examples/svg-waveform/src/sliders.ts +++ b/examples/svg-waveform/src/sliders.ts @@ -11,7 +11,7 @@ export const SLIDERS = [ label: "frequency", min: 1, max: 10, - step: 0.01 + step: 0.01, }, { event: ev.SET_AMP, @@ -19,14 +19,14 @@ export const SLIDERS = [ label: "amplitude", min: 0, max: 4, - step: 0.01 + step: 0.01, }, { event: ev.SET_HARMONICS, view: "harmonics", label: "harmonics", min: 1, - max: 20 + max: 20, }, { event: ev.SET_HSTEP, @@ -34,6 +34,6 @@ export const SLIDERS = [ label: "h step", min: 1, max: 4, - step: 0.01 - } + step: 0.01, + }, ]; diff --git a/examples/talk-slides/src/components.ts b/examples/talk-slides/src/components.ts index 55b6e87491..f2625e8539 100644 --- a/examples/talk-slides/src/components.ts +++ b/examples/talk-slides/src/components.ts @@ -1,40 +1,40 @@ export const link = (ctx: any, href: string, body?: any) => [ "a", { ...ctx.link, href }, - body || href + body || href, ]; export const twitterLink = (_: any, username: string) => [ link, `https://twitter.com/${username}`, - "@" + username + "@" + username, ]; export const navButton = (ctx: any, step: number) => [ "a", { ...ctx.navButton[step < 0 ? "prev" : "next"], - onclick: () => ctx.slide.next(step) + onclick: () => ctx.slide.next(step), }, - step < 0 ? "<" : ">" + step < 0 ? "<" : ">", ]; export const footer = (ctx: any, ...body: any[]) => [ "footer", ctx.footer, - ...body + ...body, ]; export const codeBlock = (ctx: any, body: string) => [ "pre", ctx.code, - body.trim() + body.trim(), ]; export const list = (ctx: any, ...items: any[]) => [ "ul", ctx.list, - ...items.map((i) => ["li", i]) + ...items.map((i) => ["li", i]), ]; export const titlePage = ( @@ -46,7 +46,7 @@ export const titlePage = ( "div", { ...ctx.titlePage.root, - class: `${ctx.titlePage.root.class} ${clazz}` + class: `${ctx.titlePage.root.class} ${clazz}`, }, [ "div", @@ -54,23 +54,23 @@ export const titlePage = ( [ "div", ["h1", ctx.titlePage.title, title], - ["div", ctx.titlePage.body, ...body] - ] - ] + ["div", ctx.titlePage.body, ...body], + ], + ], ]; export const contentPage = (ctx: any, title: string, ...body: any[]) => [ "div", ctx.contentPage.root, ["h2", ctx.contentPage.title, title], - ["div", ctx.contentPage.body, ...body] + ["div", ctx.contentPage.body, ...body], ]; export const quotePage = (ctx: any, quote: any[], author: string) => [ "div", ctx.quotePage.root, ["div", ctx.quotePage.quote, ...quote.map((x) => ["div", x])], - ["div", ctx.quotePage.author, `— ${author}`] + ["div", ctx.quotePage.author, `— ${author}`], ]; export const bgImagePage = ( @@ -85,16 +85,16 @@ export const bgImagePage = ( style: { "background-image": `url(${src})`, "background-size": "cover", - "background-position": "center" - } + "background-position": "center", + }, }, - ...extra + ...extra, ]; export const imagePage = (ctx: any, clazz: string, src: string) => [ "div", { ...ctx.imagePage.root, class: `${ctx.imagePage.root.class} ${clazz}` }, - ["div.w-100", ["img", { ...ctx.imagePage.img, src }]] + ["div.w-100", ["img", { ...ctx.imagePage.img, src }]], ]; export const ytVideo = (ctx: any, id: string) => [ @@ -105,17 +105,17 @@ export const ytVideo = (ctx: any, id: string) => [ ...ctx.youtube, src: `https://www.youtube.com/embed/${id}?rel=0&showinfo=0`, frameborder: 0, - allowfullscreen: true - } + allowfullscreen: true, + }, ], [navButton, -1], - [navButton, 1] + [navButton, 1], ]; export const app = (slideCount: number, ctx: any) => ({ slideID, content, - time + time, }: any) => [ "div", ctx.app.root, @@ -124,11 +124,11 @@ export const app = (slideCount: number, ctx: any) => ({ footer, ["div.w-33.tl", ctx.app.credits], ["div.w-34.tc", time], - ["div.w-33.tr", `${slideID} / ${slideCount - 1}`] - ] + ["div.w-33.tr", `${slideID} / ${slideCount - 1}`], + ], ]; export const printApp = (ctx: any, slides: any[]) => [ "div", - ...slides.map((content) => ["div.slide", ctx.app.root, content]) + ...slides.map((content) => ["div.slide", ctx.app.root, content]), ]; diff --git a/examples/talk-slides/src/config.ts b/examples/talk-slides/src/config.ts index 85cf93ba8b..b23bbc485f 100644 --- a/examples/talk-slides/src/config.ts +++ b/examples/talk-slides/src/config.ts @@ -5,7 +5,7 @@ export const ctx: any = { // theme attribs for various components app: { root: { class: "w-100 vh-100 sans-serif bg-lightest-blue" }, - credits: "ClojureX 2018" + credits: "ClojureX 2018", }, footer: { class: "fixed bottom-1 f7 gray flex w-100 ph5 noprint" }, @@ -16,13 +16,13 @@ export const ctx: any = { prev: { class: "fixed top-50 left-0 z-999 pa3 bg-black white link f3 noprint", - href: "#" + href: "#", }, next: { class: "fixed top-50 right-0 z-999 pa3 bg-black white link f3 noprint", - href: "#" - } + href: "#", + }, }, code: { class: "pa3 f3 bg-dark-blue white code" }, @@ -31,19 +31,19 @@ export const ctx: any = { root: { class: "flex items-center vh-100" }, wrapper: { class: "tc w-100" }, title: { class: "f-headline lh-title ma0" }, - body: { class: "f2 lh-copy" } + body: { class: "f2 lh-copy" }, }, contentPage: { root: { class: "pa5" }, title: { class: "ma0 f-subheadline" }, - body: { class: "mt3 f2 lh-copy" } + body: { class: "mt3 f2 lh-copy" }, }, quotePage: { root: { class: "vh-100 pa5 bg-yellow" }, quote: { class: "georgia f1 lh-copy measure-narrow i" }, - author: { class: "mt3 f2" } + author: { class: "mt3 f2" }, }, bgImagePage: { class: "vh-100 pa5 f2 lh-copy" }, @@ -52,11 +52,11 @@ export const ctx: any = { root: { class: "vh-100 flex items-center tc" }, img: { class: "mw-100", - style: { "max-height": "90vh" } - } + style: { "max-height": "90vh" }, + }, }, youtube: { - class: "w-100 vh-100 bg-black" - } + class: "w-100 vh-100 bg-black", + }, }; diff --git a/examples/talk-slides/src/index.ts b/examples/talk-slides/src/index.ts index 1c6ef7735c..afdab73135 100644 --- a/examples/talk-slides/src/index.ts +++ b/examples/talk-slides/src/index.ts @@ -5,16 +5,10 @@ import { fromInterval, stream, Stream, - sync + sync, } from "@thi.ng/rstream"; import { padLeft } from "@thi.ng/strings"; -import { - dedupe, - map, - reducer, - scan, - sideEffect -} from "@thi.ng/transducers"; +import { dedupe, map, reducer, scan, sideEffect } from "@thi.ng/transducers"; import { updateDOM } from "@thi.ng/transducers-hdom"; import { app, printApp } from "./components"; import { ctx } from "./config"; @@ -66,8 +60,8 @@ const main = sync({ content: slideID.transform(map((id: number) => SLIDES[id])), time: fromInterval(1000).transform( map((x: number) => `${D2((x / 60) | 0)}:${D2(x % 60)}`) - ) - } + ), + }, }); if (INTERACTIVE) { diff --git a/examples/talk-slides/src/slides.ts b/examples/talk-slides/src/slides.ts index 51d90f5f9d..c1a65a6c88 100644 --- a/examples/talk-slides/src/slides.ts +++ b/examples/talk-slides/src/slides.ts @@ -8,7 +8,7 @@ import { quotePage, titlePage, twitterLink, - ytVideo + ytVideo, } from "./components"; // each item in this array is an hdom tree of a single slide @@ -22,7 +22,7 @@ export const SLIDES: any[] = [ ["br"], [twitterLink, "toxi"], ["br"], - [twitterLink, "thing_umbrella"] + [twitterLink, "thing_umbrella"], ], [ @@ -33,7 +33,7 @@ export const SLIDES: any[] = [ ["br"], [twitterLink, "toxi"], ["br"], - [twitterLink, "thing_umbrella"] + [twitterLink, "thing_umbrella"], ], [ @@ -44,7 +44,7 @@ export const SLIDES: any[] = [ ["br"], [twitterLink, "toxi"], ["br"], - [twitterLink, "thing_umbrella"] + [twitterLink, "thing_umbrella"], ], [ @@ -55,7 +55,7 @@ export const SLIDES: any[] = [ ["br"], [twitterLink, "toxi"], ["br"], - [twitterLink, "thing_umbrella"] + [twitterLink, "thing_umbrella"], ], [ @@ -66,7 +66,7 @@ export const SLIDES: any[] = [ ["br"], [twitterLink, "toxi"], ["br"], - [twitterLink, "thing_umbrella"] + [twitterLink, "thing_umbrella"], ], [ @@ -74,7 +74,7 @@ export const SLIDES: any[] = [ "What brought you to Clojure?", [ "small", - "Filling in this pre-meeting questionnaire is mandatory! Answers will be reviewed during session." + "Filling in this pre-meeting questionnaire is mandatory! Answers will be reviewed during session.", ], [ list, @@ -86,8 +86,8 @@ export const SLIDES: any[] = [ "Hosted / x-platform", "Amount & clarity of thought", "Transducers, core.async, clojure.spec", - "Gateway to various awesome tools / concepts" - ] + "Gateway to various awesome tools / concepts", + ], ], [ @@ -104,8 +104,8 @@ export const SLIDES: any[] = [ "Chris Granger", "Anthony Grimes (R.I.P.)", "Christophe Grand", - ["strong", "...all of you!"] - ] + ["strong", "...all of you!"], + ], ], [ @@ -118,8 +118,8 @@ export const SLIDES: any[] = [ "1995 - 2011 : C89, Java, JavaScript, Lingo, ActionScript, Processing", "1995 - 1997 : Scheme, Common Lisp", "2011 - 2017 : Clojure/script, C11, Forth, ARM", - "2016 - ... : TypeScript, C11, Go, Clojurescript" - ] + "2016 - ... : TypeScript, C11, Go, Clojurescript", + ], ], [ @@ -131,15 +131,15 @@ export const SLIDES: any[] = [ ["li.transition.red", "1988 - 1994 : Z80 / 6502 assembly, Forth"], [ "li", - "1995 - 2011 : C89, Java, JavaScript, Lingo, ActionScript, Processing" + "1995 - 2011 : C89, Java, JavaScript, Lingo, ActionScript, Processing", ], ["li", "1995 - 1997 : Scheme, Common Lisp"], [ "li.transition.red", - "2011 - 2017 : Clojure/script, C11, Forth, ARM" + "2011 - 2017 : Clojure/script, C11, Forth, ARM", ], - ["li", "2016 - ... : TypeScript, C11, Go, Clojurescript"] - ] + ["li", "2016 - ... : TypeScript, C11, Go, Clojurescript"], + ], ], [ @@ -151,12 +151,12 @@ export const SLIDES: any[] = [ ["li.transition", "1988 - 1994 : Z80 / 6502 assembly, Forth"], [ "li.transition.red", - "1995 - 2011 : C89, Java, JavaScript, Lingo, ActionScript, Processing" + "1995 - 2011 : C89, Java, JavaScript, Lingo, ActionScript, Processing", ], ["li", "1995 - 1997 : Scheme, Common Lisp"], ["li.transition", "2011 - 2017 : Clojure/script, C11, Forth, ARM"], - ["li", "2016 - ... : TypeScript, C11, Go, Clojurescript"] - ] + ["li", "2016 - ... : TypeScript, C11, Go, Clojurescript"], + ], ], [contentPage, "And so it begins..."], @@ -178,8 +178,8 @@ export const SLIDES: any[] = [ "Data visualization (SVG / WebGL / rendered)", "Declarative WebGL, OpenGL & GPGPU/OpenCL wrappers", "Linked data / graph tools, query engines, SPARQL-like DSLs", - "Monthly workshops (2015 - 2016)" - ] + "Monthly workshops (2015 - 2016)", + ], ], [titlePage, "bg-black white", "Exponential Growth"], @@ -191,13 +191,16 @@ export const SLIDES: any[] = [ [ contentPage, "Gyroid formula", - [codeBlock, `g(x, y, z) = abs(dot(cos([x y z]), sin([z x y])))`] + [codeBlock, `g(x, y, z) = abs(dot(cos([x y z]), sin([z x y])))`], ], [ contentPage, "Gyroid formula", - [codeBlock, `g(x, y, z) = abs(cosx * sinz + cosy * sinx + cosz * siny)`] + [ + codeBlock, + `g(x, y, z) = abs(cosx * sinz + cosy * sinx + cosz * siny)`, + ], ], [ @@ -217,8 +220,8 @@ export const SLIDES: any[] = [ (defn gyroid [[x y z] t] "Evaluates gyroid function at point p and subtracts iso threshold t." - (- (abs-gyroid-sum x y z) t))` - ] + (- (abs-gyroid-sum x y z) t))`, + ], ], [ @@ -234,34 +237,34 @@ export const SLIDES: any[] = [ (+ (* (Math/cos x) (Math/sin z)) (* (Math/cos y) (Math/sin x)) (* (Math/cos z) (Math/sin y)))) - t))` + t))`, ], - "Now evaluate for each XYZ cell in a volumetric grid..." + "Now evaluate for each XYZ cell in a volumetric grid...", ], [ bgImagePage, "bg-black", "./assets/svo/0000.jpg", - ["div.f1.gray", "2", ["sup", "3", ["sup", 3]], ["br"], "8 x 8 x 8"] + ["div.f1.gray", "2", ["sup", "3", ["sup", 3]], ["br"], "8 x 8 x 8"], ], [ bgImagePage, "bg-black", "./assets/svo/0001.jpg", - ["div.f1.gray", "2", ["sup", "4", ["sup", 3]], ["br"], "16 x 16 x 16"] + ["div.f1.gray", "2", ["sup", "4", ["sup", 3]], ["br"], "16 x 16 x 16"], ], [ bgImagePage, "bg-black", "./assets/svo/0002.jpg", - ["div.f1.gray", "2", ["sup", "5", ["sup", 3]], ["br"], "32 x 32 x 32"] + ["div.f1.gray", "2", ["sup", "5", ["sup", 3]], ["br"], "32 x 32 x 32"], ], [ bgImagePage, "bg-black", "./assets/svo/0003.jpg", - ["div.f1.gray", "2", ["sup", "6", ["sup", 3]], ["br"], "64 x 64 x 64"] + ["div.f1.gray", "2", ["sup", "6", ["sup", 3]], ["br"], "64 x 64 x 64"], ], [ bgImagePage, @@ -272,8 +275,8 @@ export const SLIDES: any[] = [ "2", ["sup", "7", ["sup", 3]], ["br"], - "128 x 128 x 128" - ] + "128 x 128 x 128", + ], ], [ bgImagePage, @@ -284,8 +287,8 @@ export const SLIDES: any[] = [ "2", ["sup", "8", ["sup", 3]], ["br"], - "256 x 256 x 256" - ] + "256 x 256 x 256", + ], ], [ bgImagePage, @@ -296,8 +299,8 @@ export const SLIDES: any[] = [ "2", ["sup", "9", ["sup", 3]], ["br"], - "512 x 512 x 512" - ] + "512 x 512 x 512", + ], ], [ bgImagePage, @@ -308,8 +311,8 @@ export const SLIDES: any[] = [ "2", ["sup", "10", ["sup", 3]], ["br"], - "(1+ billion samples!)" - ] + "(1+ billion samples!)", + ], ], [bgImagePage, "bg-black", "./assets/svo/0008.jpg"], [bgImagePage, "bg-black", "./assets/svo/0009.jpg"], @@ -345,7 +348,7 @@ export const SLIDES: any[] = [ [ link, "http://www.chilton-computing.org.uk/acl/literature/books/gamesplaying/p004.htm", - "chilton-computing.org.uk/acl/literature/books/gamesplaying/" + "chilton-computing.org.uk/acl/literature/books/gamesplaying/", ], [ codeBlock, @@ -365,8 +368,8 @@ begin next i: end; copy next generation into this generation; goto loop; -end;` - ] +end;`, + ], ], [imagePage, "bg-black", "./assets/holo/0001.jpg"], @@ -387,8 +390,8 @@ end;` [ (+ (Math/sin (* a y)) (Math/cos (* (* b x) x))) (+ (Math/sin (* (* c x) x)) (Math/cos (* d y))) - ])` - ] + ])`, + ], ], [imagePage, "bg-black", "./assets/lcom/0000.jpg"], @@ -414,8 +417,8 @@ end;` ["code", "f-f-f-fs"], ["code", "f-f-f-ff-f-f-fs"], ["code", "f-f-f-ff-f-f-ff-f-f-fs"], - " etc." - ] + " etc.", + ], ], [ @@ -436,8 +439,8 @@ end;` { :fwd [:fwd], :left [:left], :right [:right] :push [:push], :pop [:pop] - })` - ] + })`, + ], ], [ @@ -452,8 +455,8 @@ end;` (replace valid-syms src)) (parse "-yf+xfx+fy-") -; (:left :y :fwd :right :x :fwd :x :right :fwd :y :left)` - ] +; (:left :y :fwd :right :x :fwd :x :right :fwd :y :left)`, + ], ], [ @@ -475,8 +478,8 @@ end;` last)) (def rules - {:x (parse "-yf+xfx+fy-") :y (parse "+xf-yfy-fx+") :start [:x]})` - ] + {:x (parse "-yf+xfx+fy-") :y (parse "+xf-yfy-fx+") :start [:x]})`, + ], ], [ @@ -499,8 +502,8 @@ end;` ; :fwd :x :right :left) (count (expand-with rules 10)) -; 218451` - ] +; 218451`, + ], ], [bgImagePage, "bg-black", "./assets/morphogen/20140925-desertrose.jpg"], @@ -540,18 +543,18 @@ end;` [ `“I still believe in abstraction, but now I know that one ends with abstraction, not starts with it. I learned that one has to adapt - abstractions to reality and not the other way around.”` + abstractions to reality and not the other way around.”`, ], - " Alexander Stepanov" + " Alexander Stepanov", ], [ quotePage, [ `"I'm never bored by simplicity. Show me a simpler way to do anything - that I'm doing. I will jump on it."` + that I'm doing. I will jump on it."`, ], - "Charles Moore" + "Charles Moore", ], [ @@ -568,8 +571,8 @@ end;` "Transducers, core.async, clojure.spec", "Amount & quality of innovation", "Maturity / Community", - "Gateway to various awesome tools / concepts" - ] + "Gateway to various awesome tools / concepts", + ], ], [ @@ -586,20 +589,23 @@ end;` ["li.transition.o-0", "Transducers, core.async, clojure.spec"], ["li.transition.o-0", "Amount & quality of innovation"], ["li", "Maturity / Community"], - ["li.transition.o-0", "Gateway to various awesome tools / concepts"] - ] + [ + "li.transition.o-0", + "Gateway to various awesome tools / concepts", + ], + ], ], [ quotePage, [`"Weeks of coding can save you`, `hours of planning."`], - "Unknown" + "Unknown", ], [ quotePage, [`"Weeks of planning can save you`, `hours of coding."`], - "Unknown" + "Unknown", ], [ @@ -614,8 +620,8 @@ end;` "Implementation effort of custom datatypes", "Have to resort to macros to work around quirks / achieve DRY", `Effort vs. gain unpredictable/unacceptable (IMHO)`, - `Protocol discrepancies between CLJ/CLJS` - ] + `Protocol discrepancies between CLJ/CLJS`, + ], ], [ @@ -630,17 +636,17 @@ end;` "Tree editing (GA/GP, spatial accel etc.)", "Media processing", "Web workers (e.g. w/ SharedArrayBuffer)", - "GPU / hardware / low-level interop (e.g. WASM)" + "GPU / hardware / low-level interop (e.g. WASM)", ], - ["div.f4", ["sup", "*"], "realtime"] + ["div.f4", ["sup", "*"], "realtime"], ], [ quotePage, [ - `"I would guess that most computers don't compute, they move bytes around."` + `"I would guess that most computers don't compute, they move bytes around."`, ], - "Charles Moore" + "Charles Moore", ], [titlePage, "bg-black white", "CLJ(S) vs ES6"], @@ -649,7 +655,7 @@ end;` contentPage, "Multi-methods (CLJS)", "Vector addition", - [codeBlock, `(defmulti vadd (fn [a b] (count a)))`] + [codeBlock, `(defmulti vadd (fn [a b] (count a)))`], ], [ @@ -664,8 +670,8 @@ end;` [(+ (a 0) (b 0)) (+ (a 1) (b 1))]) (time (dotimes [i 1e7] (vadd [1 2] [10 20]))) -; "Elapsed time: 3362.786341 msecs"` - ] +; "Elapsed time: 3362.786341 msecs"`, + ], ], [ @@ -680,8 +686,8 @@ end;` [(+ (a 0) (b 0)) (+ (a 1) (b 1)) (+ (a 2) (b 2))]) (time (dotimes [i 1e7] (vadd [1 2 3] [10 20 30]))) -; "Elapsed time: 3942.254367 msecs"` - ] +; "Elapsed time: 3942.254367 msecs"`, + ], ], [ @@ -696,9 +702,9 @@ end;` #js [(+ (aget a 0) (aget b 0)) (+ (aget a 1) (aget b 1))]) (time (dotimes [i 1e7] (vadd #js [1 2] #js [10 20]))) -; "Elapsed time: 1905.684968 msecs"` +; "Elapsed time: 1905.684968 msecs"`, ], - "~1.8x faster, but brittle solution" + "~1.8x faster, but brittle solution", ], [ @@ -713,8 +719,8 @@ end;` (mapv (fn [aa bb] (+ aa bb)) a b)) (time (dotimes [i 1e7] (add [1 2 3 4 5 6 7 8] [1 2 3 4 5 6 7 8]))) -; "Elapsed time: 36108.277508 msecs"` - ] +; "Elapsed time: 36108.277508 msecs"`, + ], ], [ @@ -732,9 +738,9 @@ end;` (persistent! acc)))) (time (dotimes [i 1e7] (add [1 2 3 4 5 6 7 8] [1 2 3 4 5 6 7 8]))) -; "Elapsed time: 15168.490184 msecs"` +; "Elapsed time: 15168.490184 msecs"`, ], - "2.4x faster, but hardly idiomatic" + "2.4x faster, but hardly idiomatic", ], [ @@ -750,8 +756,8 @@ vadd = defmulti((a, b) => a.length); vadd.add(2, (a, b) => [a[0] + b[0], a[1] + b[1]]); b.bench(() => vadd([1, 2], [10, 20]), 1e7); -// 544ms` - ] +// 544ms`, + ], ], [ @@ -764,9 +770,9 @@ b.bench(() => vadd([1, 2], [10, 20]), 1e7); vadd.add(3, (a, b) => [a[0] + b[0], a[1] + b[1], a[2] + b[2]]) bench(() => vadd([1, 2, 3], [10, 20, 30]), 1e7) -// 584ms` +// 584ms`, ], - "6x faster" + "6x faster", ], [ @@ -779,10 +785,10 @@ bench(() => vadd([1, 2, 3], [10, 20, 30]), 1e7) vadd.add(DEFAULT, (a, b) => a.map((a, i) => a + b[i])) bench(() => add([1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 3, 4, 5, 6, 7, 8]), 1e7) -// 698ms` +// 698ms`, ], ["div", "only ~100ms more than Vec3"], - ["div", "50x faster than idiomatic CLJS"] + ["div", "50x faster than idiomatic CLJS"], ], [titlePage, "", [link, "http://thi.ng/umbrella", "thi.ng/umbrella"]], @@ -793,9 +799,9 @@ bench(() => add([1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 3, 4, 5, 6, 7, 8]), 1e7) `"Society created institutions in order to serve society. [...] these institutions have all become counterproductive to their original intent because they now exist to benefit -themselves rather than the betterment of society."` +themselves rather than the betterment of society."`, ], - "Ivan Illich" + "Ivan Illich", ], [ @@ -808,6 +814,6 @@ themselves rather than the betterment of society."` ["br"], [link, "https://medium.com/@thi.ng", "medium.com/@thi.ng"], ["br"], - ["p.blue", "media.thi.ng/2018/talks/clojurex/"] - ] + ["p.blue", "media.thi.ng/2018/talks/clojurex/"], + ], ]; diff --git a/examples/text-canvas/src/index.ts b/examples/text-canvas/src/index.ts index fb133d8614..19229a5397 100644 --- a/examples/text-canvas/src/index.ts +++ b/examples/text-canvas/src/index.ts @@ -1,16 +1,5 @@ -import { - add, - osc, - saw, - sin -} from "@thi.ng/dsp"; -import { - aabb, - center, - rect, - Rect, - vertices -} from "@thi.ng/geom"; +import { add, osc, saw, sin } from "@thi.ng/dsp"; +import { aabb, center, rect, Rect, vertices } from "@thi.ng/geom"; import { concat, lookAt, @@ -18,7 +7,7 @@ import { project3, rotationX44, rotationY44, - viewport + viewport, } from "@thi.ng/matrices"; import { beginClip, @@ -33,7 +22,7 @@ import { FG_YELLOW, FMT_HTML_TACHYONS, line, - toString + toString, } from "@thi.ng/text-canvas"; import { add3 } from "@thi.ng/vectors"; @@ -57,7 +46,7 @@ const edges = [ [0, 4], [1, 5], [2, 6], - [3, 7] + [3, 7], ]; // animated parameters @@ -78,7 +67,7 @@ const instances = [ [0, -1, 0], [0, 1, 0], [0, 0, -1], - [0, 0, 1] + [0, 0, 1], ]; const root = document.getElementById("app"); diff --git a/examples/todo-list/src/index.ts b/examples/todo-list/src/index.ts index e0c7f17e59..52560262fb 100644 --- a/examples/todo-list/src/index.ts +++ b/examples/todo-list/src/index.ts @@ -1,9 +1,4 @@ -import { - defAtom, - defCursor, - defHistory, - defView -} from "@thi.ng/atom"; +import { defAtom, defCursor, defHistory, defView } from "@thi.ng/atom"; import { start } from "@thi.ng/hdom"; import { map, pairs } from "@thi.ng/transducers"; import type { IObjectOf } from "@thi.ng/api"; diff --git a/examples/transducers-hdom/src/index.ts b/examples/transducers-hdom/src/index.ts index 38bf96e4de..d85839e795 100644 --- a/examples/transducers-hdom/src/index.ts +++ b/examples/transducers-hdom/src/index.ts @@ -14,8 +14,8 @@ const app = ({ ticks, clicks }: any) => [ [ "a.link.white.bb.bw1", { href: "#", onclick: () => clickStream.next(0) }, - `${clicks} clicks` - ] + `${clicks} clicks`, + ], ], [ "div", @@ -23,12 +23,12 @@ const app = ({ ticks, clicks }: any) => [ "a.link.white", { href: - "https://github.com/thi-ng/umbrella/tree/develop/examples/transducers-hdom/" + "https://github.com/thi-ng/umbrella/tree/develop/examples/transducers-hdom/", }, - "Source code" - ] - ] - ] + "Source code", + ], + ], + ], ]; // click stream (click counter) @@ -41,10 +41,10 @@ sync({ // streams to synchronize src: { ticks: fromInterval(1000), - clicks: clickStream + clicks: clickStream, }, // only synchronize at first (default) - reset: false + reset: false, }).transform( // transform into hdom component map(app), diff --git a/examples/triple-query/src/components/button-group.ts b/examples/triple-query/src/components/button-group.ts index a1e3b0fb2e..023882243f 100644 --- a/examples/triple-query/src/components/button-group.ts +++ b/examples/triple-query/src/components/button-group.ts @@ -5,6 +5,6 @@ export function buttonGroup(ctx: AppContext, ...buttons: any[]) { return [ "section", ctx.ui.buttongroup, - buttons.map((bt) => [button, ...bt]) + buttons.map((bt) => [button, ...bt]), ]; } diff --git a/examples/triple-query/src/components/event-link.ts b/examples/triple-query/src/components/event-link.ts index a1ae8a523f..d085e6c6f1 100644 --- a/examples/triple-query/src/components/event-link.ts +++ b/examples/triple-query/src/components/event-link.ts @@ -1,7 +1,6 @@ import type { Event } from "@thi.ng/interceptors"; import type { AppContext } from "../api"; - /** * Customizable hyperlink component emitting given event on event bus * when clicked. @@ -24,8 +23,8 @@ export function eventLink( onclick: (e: any) => { e.preventDefault(); ctx.bus.dispatch(event); - } + }, }, - body + body, ]; } diff --git a/examples/triple-query/src/components/main.ts b/examples/triple-query/src/components/main.ts index 763327ac72..12f4bae613 100644 --- a/examples/triple-query/src/components/main.ts +++ b/examples/triple-query/src/components/main.ts @@ -11,9 +11,9 @@ export function main(ctx: AppContext) { triples, ctx.views.pagedTriples.deref(), ctx.store.triples.length, - ctx.views.page.deref() + ctx.views.page.deref(), ], [queryResults, "Cities", ctx.views.cities.deref()], - [queryResults, "Countries", ctx.views.countries.deref()] + [queryResults, "Countries", ctx.views.countries.deref()], ]; } diff --git a/examples/triple-query/src/components/query-results.ts b/examples/triple-query/src/components/query-results.ts index 73f951cdbd..0669bc1ffa 100644 --- a/examples/triple-query/src/components/query-results.ts +++ b/examples/triple-query/src/components/query-results.ts @@ -22,8 +22,8 @@ export const queryResults = ( mapIndexed( (i, x) => [i + 1, ...map((k: string) => x[k], keys)], results - ) - ] + ), + ], ]; } }; diff --git a/examples/triple-query/src/components/table.ts b/examples/triple-query/src/components/table.ts index 49c2bc6f4b..51d949ce3f 100644 --- a/examples/triple-query/src/components/table.ts +++ b/examples/triple-query/src/components/table.ts @@ -4,7 +4,7 @@ import type { AppContext } from "../api"; const row = (ctx: AppContext, body: Iterable) => [ "tr", ctx.ui.table.row, - ...body + ...body, ]; export const table = ( @@ -20,5 +20,5 @@ export const table = ( map( (cols: any) => [row, map((x) => ["td", ctx.ui.table.cell, x], cols)], body - ) + ), ]; diff --git a/examples/triple-query/src/components/triple-table.ts b/examples/triple-query/src/components/triple-table.ts index 0afd9b9c01..5b160eeabf 100644 --- a/examples/triple-query/src/components/triple-table.ts +++ b/examples/triple-query/src/components/triple-table.ts @@ -14,11 +14,11 @@ export const tripleTable = () => { button, [SET_PAGE, i], label, - disabled + disabled, ], groupPrev: (ctx, ...bts) => ["div", ctx.ui.pager.prev, ...bts], groupNext: (ctx, ...bts) => ["div", ctx.ui.pager.next, ...bts], - groupPages: (ctx, bts) => ["div", ctx.ui.pager.pages, bts] + groupPages: (ctx, bts) => ["div", ctx.ui.pager.pages, bts], }); return (ctx: AppContext, triples: any[], num: number, page: number) => { const [sid, sdir] = ctx.views.sort.deref()!; @@ -36,12 +36,12 @@ export const tripleTable = () => { eventLink, ctx.ui.table.headlink, [SET_SORT, i], - `${x} ${sid === i ? icon : ""}` - ]) + `${x} ${sid === i ? icon : ""}`, + ]), ], - triples + triples, ], - [_pager, page, num, PAGE_LEN, 5] + [_pager, page, num, PAGE_LEN, 5], ]; }; }; diff --git a/examples/triple-query/src/config.ts b/examples/triple-query/src/config.ts index dcbd44a369..6f510f8ed8 100644 --- a/examples/triple-query/src/config.ts +++ b/examples/triple-query/src/config.ts @@ -13,7 +13,7 @@ export const CONFIG: AppConfig = { // and only side effect functions execute any "real" work. // Docs here: - // https://github.com/thi-ng/umbrella/blob/master/packages/interceptors/src/event-bus.ts#L14 + // https://github.com/thi-ng/umbrella/blob/develop/packages/interceptors/src/event-bus.ts#L14 events: EVENTS, @@ -30,7 +30,7 @@ export const CONFIG: AppConfig = { initialState: { page: 0, pagedTriples: [], - sort: [0, false] + sort: [0, false], }, // derived view declarations @@ -44,7 +44,7 @@ export const CONFIG: AppConfig = { pagedTriples: "pagedTriples", cities: "queries.cities", countries: "queries.countries", - sort: "sort" + sort: "sort", }, // component CSS class config using http://tachyons.io/ these @@ -53,10 +53,10 @@ export const CONFIG: AppConfig = { ui: { button: { class: - "pointer bg-black hover-bg-blue bg-animate white pa2 mr1 w-100 ttu b tracked-tight noselect" + "pointer bg-black hover-bg-blue bg-animate white pa2 mr1 w-100 ttu b tracked-tight noselect", }, buttonDisabled: { - class: "bg-gray white pa2 mr1 w-100 ttu b tracked-tight noselect" + class: "bg-gray white pa2 mr1 w-100 ttu b tracked-tight noselect", }, buttongroup: { class: "flex mb2" }, link: { class: "pointer link dim black b" }, @@ -66,14 +66,14 @@ export const CONFIG: AppConfig = { head: { class: "tl pv2 ph3 bg-black white" }, headlink: { class: "pointer white" }, row: { class: "striped--light-gray" }, - cell: { class: "pv2 ph3" } + cell: { class: "pv2 ph3" }, }, pager: { root: { class: "w-100 mt3 f7 tc" }, prev: { class: "fl mr3" }, next: { class: "fr ml3" }, - pages: { class: "dib" } - } + pages: { class: "dib" }, + }, }, data: { @@ -89,7 +89,7 @@ export const CONFIG: AppConfig = { ["são paulo", "br"], ["shanghai", "cn"], ["tokyo", "jp"], - ["toronto", "ca"] + ["toronto", "ca"], ], countries: [ ["au", "australia", "oceania"], @@ -103,7 +103,7 @@ export const CONFIG: AppConfig = { ["jp", "japan", "asia"], ["za", "south africa", "africa"], ["nz", "new zealand", "oceania"], - ["us", "united states", "north-america"] + ["us", "united states", "north-america"], ], regions: [ "africa", @@ -114,7 +114,7 @@ export const CONFIG: AppConfig = { "north-america", "oceania", "south-america", - "caribbean" + "caribbean", ], queries: { cities: { @@ -125,11 +125,11 @@ export const CONFIG: AppConfig = { ["?city", "locatedIn", "?cid"], ["?cid", "type", "country"], ["?cid", "name", "?country"], - ["?cid", "partOf", "?region"] - ] - } + ["?cid", "partOf", "?region"], + ], + }, ], - select: ["city", "country", "region"] + select: ["city", "country", "region"], }, countries: { q: [ @@ -137,11 +137,11 @@ export const CONFIG: AppConfig = { where: [ ["?code", "type", "country"], ["?code", "partOf", "?region"], - ["?region", "type", "region"] - ] - } - ] - } - } - } + ["?region", "type", "region"], + ], + }, + ], + }, + }, + }, }; diff --git a/examples/triple-query/src/effects.ts b/examples/triple-query/src/effects.ts index 09f46e4691..862e0320e4 100644 --- a/examples/triple-query/src/effects.ts +++ b/examples/triple-query/src/effects.ts @@ -1,7 +1,7 @@ // best practice tip: define event & effect names as consts or enums // and avoid hardcoded strings for more safety and easier refactoring // also see pre-defined event handlers & interceptors in @thi.ng/atom: -// https://github.com/thi-ng/umbrella/blob/master/packages/interceptors/src/api.ts#L14 +// https://github.com/thi-ng/umbrella/blob/develop/packages/interceptors/src/api.ts#L14 export const ADD_TRIPLE = "add-triples"; export const REMOVE_TRIPLE = "remove-triples"; diff --git a/examples/triple-query/src/events.ts b/examples/triple-query/src/events.ts index 9cfa36deb4..2129df63a5 100644 --- a/examples/triple-query/src/events.ts +++ b/examples/triple-query/src/events.ts @@ -1,7 +1,7 @@ // best practice tip: define event & effect names as consts or enums // and avoid hardcoded strings for more safety and easier refactoring // also see pre-defined event handlers & interceptors in @thi.ng/atom: -// https://github.com/thi-ng/umbrella/blob/master/packages/interceptors/src/api.ts#L14 +// https://github.com/thi-ng/umbrella/blob/develop/packages/interceptors/src/api.ts#L14 export const ADD_CITY = "add-city"; export const ADD_COUNTRY = "add-country"; diff --git a/examples/webgl-shadertoy/src/index.ts b/examples/webgl-shadertoy/src/index.ts index a6f79aead0..561fa7f18c 100644 --- a/examples/webgl-shadertoy/src/index.ts +++ b/examples/webgl-shadertoy/src/index.ts @@ -18,11 +18,15 @@ import { Vec2Term, vec3, Vec3Sym, - vec4 + vec4, } from "@thi.ng/shader-ast"; import { aspectCorrectedUV, fit1101 } from "@thi.ng/shader-ast-stdlib"; import { glCanvas } from "@thi.ng/webgl"; -import { MainImageFn, shaderToy, ShaderToyUniforms } from "@thi.ng/webgl-shadertoy"; +import { + MainImageFn, + shaderToy, + ShaderToyUniforms, +} from "@thi.ng/webgl-shadertoy"; interface DemoUniforms extends ShaderToyUniforms { bright: FloatSym; @@ -32,8 +36,8 @@ interface DemoUniforms extends ShaderToyUniforms { // the 2 args given are objects containing GLSL builtin vars and uniforms // // see: -// https://github.com/thi-ng/umbrella/blob/master/packages/shader-ast-glsl/src/api.ts#L22 -// https://github.com/thi-ng/umbrella/blob/master/packages/webgl-shadertoy/src/api.ts#L13 +// https://github.com/thi-ng/umbrella/blob/develop/packages/shader-ast-glsl/src/api.ts#L22 +// https://github.com/thi-ng/umbrella/blob/develop/packages/webgl-shadertoy/src/api.ts#L13 const mainImage: MainImageFn = (gl, unis) => { // predeclare local vars / symbols let uv: Vec2Sym; @@ -66,7 +70,7 @@ const mainImage: MainImageFn = (gl, unis) => { ) )), // return as vec4 (mandatory) - ret(vec4(col, 1)) + ret(vec4(col, 1)), ]; }; @@ -75,7 +79,7 @@ const canvas = glCanvas({ width: window.innerWidth, height: window.innerHeight, parent: document.body, - version: 1 + version: 1, }); // init shader toy with canvas & shader fn @@ -85,8 +89,8 @@ const toy = shaderToy({ main: mainImage, uniforms: { // brightness factor for colored rings - bright: ["float", 1] - } + bright: ["float", 1], + }, }); toy.start(); diff --git a/examples/webgl-ssao/src/params.ts b/examples/webgl-ssao/src/params.ts index 0fda51136f..4fca36c7aa 100644 --- a/examples/webgl-ssao/src/params.ts +++ b/examples/webgl-ssao/src/params.ts @@ -1,11 +1,5 @@ import { stream, Stream } from "@thi.ng/rstream"; -import { - assocObj, - map, - pairs, - push, - transduce -} from "@thi.ng/transducers"; +import { assocObj, map, pairs, push, transduce } from "@thi.ng/transducers"; import type { IObjectOf } from "@thi.ng/api"; const slider = (label: string, attribs: any, stream: Stream) => () => [ @@ -18,10 +12,10 @@ const slider = (label: string, attribs: any, stream: Stream) => () => [ type: "range", value: stream.deref(), oninput: (e: Event) => - stream.next(parseFloat((e.target).value)) - } + stream.next(parseFloat((e.target).value)), + }, ], - ["span.ml3", stream.deref()] + ["span.ml3", stream.deref()], ]; type ParamDef = [string, any, number]; diff --git a/examples/webgl-ssao/src/shaders.ts b/examples/webgl-ssao/src/shaders.ts index 28011494c0..4de3f07aaa 100644 --- a/examples/webgl-ssao/src/shaders.ts +++ b/examples/webgl-ssao/src/shaders.ts @@ -7,14 +7,14 @@ import { mul, sub, texture, - vec4 + vec4, } from "@thi.ng/shader-ast"; import { clamp01 } from "@thi.ng/shader-ast-stdlib"; import { FX_SHADER_SPEC, FX_SHADER_SPEC_UV, ShaderFn, - ShaderSpec + ShaderSpec, } from "@thi.ng/webgl"; export const LIGHT_SHADER: ShaderSpec = { @@ -43,14 +43,14 @@ export const LIGHT_SHADER: ShaderSpec = { position: "vec3", normal: "vec3", offset: "vec3", - uv: "vec2" + uv: "vec2", }, varying: { v_position: "vec4", v_normal: "vec4", v_uv: "vec2", v_viewPos: "vec4", - v_viewNormal: "vec4" + v_viewNormal: "vec4", }, uniforms: { model: "mat4", @@ -61,17 +61,17 @@ export const LIGHT_SHADER: ShaderSpec = { shininess: ["float", 250], specular: "float", ambient: ["float", 0.15], - tex: "sampler2D" + tex: "sampler2D", }, outputs: { o_color: ["vec4", 0], o_viewPos: ["vec4", 1], - o_viewNormal: ["vec4", 2] + o_viewNormal: ["vec4", 2], }, state: { depth: true, - cull: true - } + cull: true, + }, }; export const SSAO_SHADER: ShaderSpec = { @@ -117,11 +117,11 @@ void main() { bias: ["float", 0.09], attenuate: ["float", 1], attenuateDist: ["float", 1], - depthRange: ["vec2", [0.1, 10]] + depthRange: ["vec2", [0.1, 10]], }, outputs: { - o_occlusion: "float" - } + o_occlusion: "float", + }, }; export const FINAL_SHADER: ShaderSpec = mergeDeepObj(FX_SHADER_SPEC_UV, { @@ -139,12 +139,12 @@ export const FINAL_SHADER: ShaderSpec = mergeDeepObj(FX_SHADER_SPEC_UV, { ), 1 ) - ) - ]) + ), + ]), ]) ), uniforms: { tex2: ["sampler2D", 1], - amp: ["float", 1] - } + amp: ["float", 1], + }, }); diff --git a/examples/wolfram/src/index.ts b/examples/wolfram/src/index.ts index 2c94fe415d..63c3c69c45 100644 --- a/examples/wolfram/src/index.ts +++ b/examples/wolfram/src/index.ts @@ -6,7 +6,7 @@ import { metaStream, sidechainToggle, stream, - sync + sync, } from "@thi.ng/rstream"; import { buildKernel1d, @@ -24,7 +24,7 @@ import { slidingWindow, str, transduce, - zip + zip, } from "@thi.ng/transducers"; import { bits, randomBits } from "@thi.ng/transducers-binary"; import { updateDOM } from "@thi.ng/transducers-hdom"; @@ -44,12 +44,12 @@ const evolveCA = (src: number[], { kernel, rule, reset }: any) => src, kernel, width: src.length, - wrap: true + wrap: true, }), map(lookup1d(rule)) ), range(src.length) - ) + ), ]; const triggerReset = () => @@ -75,8 +75,8 @@ const app = ({ id, ksize, sim }: any) => [ { type: "number", value: id, - oninput: setRule - } + oninput: setRule, + }, ], "Kernel:", [ @@ -84,34 +84,34 @@ const app = ({ id, ksize, sim }: any) => [ { class: "h2 pa2 mh3", onchange: setKernel }, [ [3, "3"], - [5, "5"] + [5, "5"], ], - ksize + ksize, ], [ "button.mr3.pa2", { - onclick: triggerReset + onclick: triggerReset, }, - "Reset" + "Reset", ], [ "button.mr3.pa2", { - onclick: triggerOBJExport + onclick: triggerOBJExport, }, - "Export OBJ" + "Export OBJ", ], [ "a.link.blue", { href: - "https://en.wikipedia.org/wiki/Elementary_cellular_automaton#Random_initial_state" + "https://en.wikipedia.org/wiki/Elementary_cellular_automaton#Random_initial_state", }, - "Wikipedia" - ] + "Wikipedia", + ], ], - ["pre.f7.code", sim] + ["pre.f7.code", sim], ]; const rule = stream(); @@ -126,9 +126,9 @@ const wolfram = sync({ kernel: kernel.transform( map((x) => buildKernel1d([1, 2, 4, 8, 16], x)) ), - _: fromRAF() + _: fromRAF(), }, - xform: scan(reducer(resetCA, evolveCA)) + xform: scan(reducer(resetCA, evolveCA)), }); const main = sync({ @@ -139,8 +139,8 @@ const main = sync({ map((gen) => gen.map((x: number) => " █"[x]).join("")), slidingWindow(HEIGHT), map((win: string[]) => win.join("\n")) - ) - } + ), + }, }).transform(map(app), updateDOM()); // Wavefront OBJ 3D pointcloud export diff --git a/examples/xml-converter/src/convert.ts b/examples/xml-converter/src/convert.ts index 670eaa7198..2df817882a 100644 --- a/examples/xml-converter/src/convert.ts +++ b/examples/xml-converter/src/convert.ts @@ -1,10 +1,5 @@ import { isString } from "@thi.ng/checks"; -import { - parse, - ParseElement, - ParseEvent, - Type -} from "@thi.ng/sax"; +import { parse, ParseElement, ParseEvent, Type } from "@thi.ng/sax"; import { assocObj, comp, @@ -13,7 +8,7 @@ import { map, pairs, push, - transduce + transduce, } from "@thi.ng/transducers"; import { DEFAULT_FORMAT, format, FormatOpts } from "./format"; @@ -26,14 +21,14 @@ export interface ConversionOpts { export const DEFAULT_OPTS: ConversionOpts = { format: DEFAULT_FORMAT, removeAttribs: new Set(), - removeTags: new Set() + removeTags: new Set(), }; // converts given XMLish string into formatted hiccup export const convertXML = (src: string, opts: Partial = {}) => { let tree = transformTree(parseXML(src), { ...DEFAULT_OPTS, - ...opts + ...opts, }); return format({ ...DEFAULT_FORMAT, ...opts.format }, "", tree); }; @@ -80,7 +75,10 @@ const parseAttrib = (attrib: string[]) => { // transforms an entire object of attributes const transformAttribs = (attribs: any, remove: Set = new Set()) => transduce( - comp(filter((a) => !remove.has(a[0])), map(parseAttrib)), + comp( + filter((a) => !remove.has(a[0])), + map(parseAttrib) + ), assocObj(), {}, pairs(attribs) @@ -124,7 +122,10 @@ const transformTree = ( } if (tree.children && tree.children.length) { transduce( - comp(map((t: any) => transformTree(t, opts)), filter((t) => !!t)), + comp( + map((t: any) => transformTree(t, opts)), + filter((t) => !!t) + ), push(), res, tree.children diff --git a/examples/xml-converter/src/format.ts b/examples/xml-converter/src/format.ts index 1c0a53be17..c2ef636f02 100644 --- a/examples/xml-converter/src/format.ts +++ b/examples/xml-converter/src/format.ts @@ -20,7 +20,7 @@ export const DEFAULT_FORMAT: FormatOpts = { lineSep: "\n", prefix: "", quote: `"`, - ws: " " + ws: " ", }; export const COMPACT_FORMAT: FormatOpts = { @@ -30,7 +30,7 @@ export const COMPACT_FORMAT: FormatOpts = { lineSep: "", prefix: "", quote: `"`, - ws: "" + ws: "", }; // memoized indentations @@ -39,7 +39,7 @@ export const spaces = (n: number) => repeat(" ", n); // creates new state with deeper indentation const indentState = (opts: FormatOpts): FormatOpts => ({ ...opts, - indent: opts.indent + opts.tabSize + indent: opts.indent + opts.tabSize, }); // dispatch helper function for the `format` defmulti below @@ -55,8 +55,8 @@ const formatVal = (opts: FormatOpts, x: any, indent = true) => isNumber(x) || isBoolean(x) ? x : isPlainObject(x) - ? format(indent ? indentState(opts) : opts, "", x) - : opts.quote + escape(opts, x) + opts.quote; + ? format(indent ? indentState(opts) : opts, "", x) + : opts.quote + escape(opts, x) + opts.quote; // attrib key-value pair formatter w/ indentation const formatPair = (opts: FormatOpts, x: any, k: string) => @@ -88,7 +88,7 @@ format.add("array", (opts, res, x) => { res = format( { ...indentState(opts), - prefix: `${opts.lineSep}${spaces(opts.indent + opts.tabSize)}` + prefix: `${opts.lineSep}${spaces(opts.indent + opts.tabSize)}`, }, res, x[1] diff --git a/examples/xml-converter/src/index.ts b/examples/xml-converter/src/index.ts index f2f3622615..6bc3034ada 100644 --- a/examples/xml-converter/src/index.ts +++ b/examples/xml-converter/src/index.ts @@ -14,7 +14,7 @@ const inputs = { trailingComma: stream(), removeAttribs: stream(), removeTags: stream(), - copyButton: stream() + copyButton: stream(), }; // stream combinator to assemble formatter options @@ -22,13 +22,13 @@ const formatOpts = sync({ src: { trailingComma: inputs.trailingComma, doubleQuote: inputs.doubleQuote, - prettyPrint: inputs.prettyPrint + prettyPrint: inputs.prettyPrint, }, xform: map((opts: any) => ({ ...(opts.prettyPrint ? DEFAULT_FORMAT : COMPACT_FORMAT), trailingComma: opts.trailingComma, - quote: opts.doubleQuote ? `"` : `'` - })) + quote: opts.doubleQuote ? `"` : `'`, + })), }); // stream combinator to assemble conversion options @@ -36,8 +36,8 @@ const opts = sync({ src: { format: formatOpts, removeAttribs: inputs.removeAttribs.transform(xformAsSet), - removeTags: inputs.removeTags.transform(xformAsSet) - } + removeTags: inputs.removeTags.transform(xformAsSet), + }, }); // main stream combinator to create & update UI @@ -45,13 +45,13 @@ const main = sync({ src: { src: inputs.xml, copy: inputs.copyButton, - opts - } + opts, + }, }).transform( // convert xml -> hiccup map((state: any) => ({ ...state, - hiccup: convertXML(state.src, state.opts) + hiccup: convertXML(state.src, state.opts), })), // transform into hdom tree map(app(UI.main, inputs)), diff --git a/examples/xml-converter/src/ui.ts b/examples/xml-converter/src/ui.ts index 9ce98be253..e738c6bf09 100644 --- a/examples/xml-converter/src/ui.ts +++ b/examples/xml-converter/src/ui.ts @@ -3,26 +3,26 @@ import { mapIndexed } from "@thi.ng/transducers"; import { handleTab } from "./utils"; // converted from: -// https://github.com/IBM/carbon-icons/blob/master/src/svg/copy.svg +// https://github.com/IBM/carbon-icons/blob/develop/src/svg/copy.svg const ICON_COPY = [ "svg.mr2", { viewBox: "0 0 16 16", width: "0.7rem", height: "0.7rem", - stroke: "white" + stroke: "white", }, [ "path", - { d: "M1,10H0V2c0-1.1,0.9-2,2-2l8,0l0,1L2,1C1.4,1,1,1.5,1,2L1,10z" } + { d: "M1,10H0V2c0-1.1,0.9-2,2-2l8,0l0,1L2,1C1.4,1,1,1.5,1,2L1,10z" }, ], [ "path", { d: - "M11,4.2V8h3.8L11,4.2z M15,9h-4c-0.6,0-1-0.4-1-1V4H4.5C4.2,4,4,4.2,4,4.5v10C4,14.8,4.2,15,4.5,15h10 c0.3,0,0.5-0.2,0.5-0.5V9z M11,3c0.1,0,0.3,0.1,0.4,0.1l4.5,4.5C15.9,7.7,16,7.9,16,8v6.5c0,0.8-0.7,1.5-1.5,1.5h-10 C3.7,16,3,15.3,3,14.5v-10C3,3.7,3.7,3,4.5,3H11z" - } - ] + "M11,4.2V8h3.8L11,4.2z M15,9h-4c-0.6,0-1-0.4-1-1V4H4.5C4.2,4,4,4.2,4,4.5v10C4,14.8,4.2,15,4.5,15h10 c0.3,0,0.5-0.2,0.5-0.5V9z M11,3c0.1,0,0.3,0.1,0.4,0.1l4.5,4.5C15.9,7.7,16,7.9,16,8v6.5c0,0.8-0.7,1.5-1.5,1.5h-10 C3.7,16,3,15.3,3,14.5v-10C3,3.7,3.7,3,4.5,3H11z", + }, + ], ]; // component styles: @@ -33,41 +33,41 @@ export const UI = { root: { class: "w-50-ns pa3" }, title: { class: "ma0 mb2" }, textarea: { class: "w-100.pa2.bn.f7.code.lh-copy" }, - stats: { class: "f7" } + stats: { class: "f7" }, }, input: { root: { class: "mb2" }, label: { class: "dib w-100 w-25-l pv2" }, - input: { class: "w-100 w-75-l pa1 bg-silver white bn" } + input: { class: "w-100 w-75-l pa1 bg-silver white bn" }, }, button: { href: "#", - class: "dib.link.white.pv1.ph2.w4.bn.hover-bg-blue.bg-animate" + class: "dib.link.white.pv1.ph2.w4.bn.hover-bg-blue.bg-animate", }, copyButton: { style: { position: "relative", top: "-3rem", - left: "0.5rem" - } + left: "0.5rem", + }, }, main: { small: { class: "fw1 ml2 dn dib-l" }, src: { class: "bg-washed-green", - autofocus: true + autofocus: true, }, result: { success: { disabled: true, - class: "bg-light-gray" + class: "bg-light-gray", }, error: { disabled: true, - class: "bg-washed-red" - } - } - } + class: "bg-washed-red", + }, + }, + }, }; // hdom UI root component. this function will be used as stream @@ -84,9 +84,9 @@ export const app = (ctx: any, inputs: any) => ({ src, hiccup }: any) => [ onkeydown: handleTab(inputs.xml), // emitting a new value to the stream will // re-trigger conversion & UI update - oninput: (e: any) => inputs.xml.next(e.target.value) + oninput: (e: any) => inputs.xml.next(e.target.value), }, - src + src, ], [ editPane, @@ -96,13 +96,13 @@ export const app = (ctx: any, inputs: any) => ({ src, hiccup }: any) => [ [ copyButton, { - class: hiccup.indexOf("error") < 0 ? "bg-green" : "bg-gray" + class: hiccup.indexOf("error") < 0 ? "bg-green" : "bg-gray", }, inputs.copyButton, - hiccup + hiccup, ], - [transformOpts, inputs] - ] + [transformOpts, inputs], + ], ]; // configurable editor panel UI component @@ -119,7 +119,7 @@ const editPane = ( ["h3", editor.title, ...title], [`textarea.${editor.textarea.class}`, { rows: 16, value, ...attribs }], ["div", editor.stats, `${value.length} chars`], - ...extra + ...extra, ]; // configurable input UI component @@ -127,7 +127,7 @@ const input = ({ input }: any, label: string, attribs: any) => [ "div", input.root, ["label", { ...input.label, for: attribs.id }, label], - ["input", { ...input.input, ...attribs }] + ["input", { ...input.input, ...attribs }], ]; const iconButton = ( @@ -161,10 +161,10 @@ const copyButton = ( }, () => alert("Couldn't copy to clipboard") ); - } + }, }, ICON_COPY, - stream.deref() ? "Copied" : "Copy" + stream.deref() ? "Copied" : "Copy", ]; // combined transform options input components @@ -181,8 +181,8 @@ const transformOpts = (_: any, inputs: any) => [ id: "opt" + i, type, [v]: stream.deref(), - oninput: (e: any) => stream.next(e.target[v]) - } + oninput: (e: any) => stream.next(e.target[v]), + }, ]; }, [ @@ -190,7 +190,7 @@ const transformOpts = (_: any, inputs: any) => [ ["Remove attributes", "text", inputs.removeAttribs], ["Pretty print", "checkbox", inputs.prettyPrint], ["Double quotes", "checkbox", inputs.doubleQuote], - ["Trailing commas", "checkbox", inputs.trailingComma] + ["Trailing commas", "checkbox", inputs.trailingComma], ] - ) + ), ]; From 096e487b24e917bc09f2d8ce9ec429446f9fc575 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 8 Jun 2020 15:11:28 +0100 Subject: [PATCH 04/29] style: reformat tsconfig files --- packages/adapt-dpi/test/tsconfig.json | 5 +---- packages/adapt-dpi/tsconfig.json | 4 +--- packages/geom-io-obj/test/tsconfig.json | 5 +---- packages/hiccup-canvas/test/tsconfig.json | 5 +---- packages/parse/test/tsconfig.json | 5 +---- 5 files changed, 5 insertions(+), 19 deletions(-) diff --git a/packages/adapt-dpi/test/tsconfig.json b/packages/adapt-dpi/test/tsconfig.json index f6e63560dd..72b29d55ac 100644 --- a/packages/adapt-dpi/test/tsconfig.json +++ b/packages/adapt-dpi/test/tsconfig.json @@ -4,8 +4,5 @@ "outDir": "../build", "module": "commonjs" }, - "include": [ - "./**/*.ts", - "../src/**/*.ts" - ] + "include": ["./**/*.ts", "../src/**/*.ts"] } diff --git a/packages/adapt-dpi/tsconfig.json b/packages/adapt-dpi/tsconfig.json index 893b9979c5..4fee5e86b8 100644 --- a/packages/adapt-dpi/tsconfig.json +++ b/packages/adapt-dpi/tsconfig.json @@ -5,7 +5,5 @@ "module": "es6", "target": "es6" }, - "include": [ - "./src/**/*.ts" - ] + "include": ["./src/**/*.ts"] } diff --git a/packages/geom-io-obj/test/tsconfig.json b/packages/geom-io-obj/test/tsconfig.json index f6e63560dd..72b29d55ac 100644 --- a/packages/geom-io-obj/test/tsconfig.json +++ b/packages/geom-io-obj/test/tsconfig.json @@ -4,8 +4,5 @@ "outDir": "../build", "module": "commonjs" }, - "include": [ - "./**/*.ts", - "../src/**/*.ts" - ] + "include": ["./**/*.ts", "../src/**/*.ts"] } diff --git a/packages/hiccup-canvas/test/tsconfig.json b/packages/hiccup-canvas/test/tsconfig.json index f6e63560dd..72b29d55ac 100644 --- a/packages/hiccup-canvas/test/tsconfig.json +++ b/packages/hiccup-canvas/test/tsconfig.json @@ -4,8 +4,5 @@ "outDir": "../build", "module": "commonjs" }, - "include": [ - "./**/*.ts", - "../src/**/*.ts" - ] + "include": ["./**/*.ts", "../src/**/*.ts"] } diff --git a/packages/parse/test/tsconfig.json b/packages/parse/test/tsconfig.json index f6e63560dd..72b29d55ac 100644 --- a/packages/parse/test/tsconfig.json +++ b/packages/parse/test/tsconfig.json @@ -4,8 +4,5 @@ "outDir": "../build", "module": "commonjs" }, - "include": [ - "./**/*.ts", - "../src/**/*.ts" - ] + "include": ["./**/*.ts", "../src/**/*.ts"] } From dc37a194a5c13563dc5c7dae4cbb6bbe38d4d679 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 8 Jun 2020 15:11:50 +0100 Subject: [PATCH 05/29] style(tools): reformat --- tools/src/doc-table.ts | 54 +++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/tools/src/doc-table.ts b/tools/src/doc-table.ts index c474c08790..f9fa70777d 100644 --- a/tools/src/doc-table.ts +++ b/tools/src/doc-table.ts @@ -1,17 +1,11 @@ import { serialize } from "@thi.ng/hiccup"; -import { - comp, - filter, - map, - push, - transduce -} from "@thi.ng/transducers"; +import { comp, filter, map, push, transduce } from "@thi.ng/transducers"; import { existsSync, readdirSync, writeFileSync } from "fs"; import { META_FIELD, Package } from "./api"; import { readJSON } from "./io"; import { shortName } from "./partials/package"; -const REPO_URL = "https://github.com/thi-ng/umbrella/blob/master/packages"; +const REPO_URL = "https://github.com/thi-ng/umbrella/blob/develop/packages"; const NPM_URL = "https://www.npmjs.com/package"; const BADGE_URL = "https://img.shields.io/npm/v"; const BASE_DIR = "./packages/"; @@ -28,21 +22,21 @@ const pkgDetails = (p: Package) => [ "img", { src: `${BADGE_URL}/${p.name}.svg`, - alt: "npm version" - } - ] - ] + alt: "npm version", + }, + ], + ], ], [ "td", [ "a", { - href: `${REPO_URL}/${shortName(p.name)}/CHANGELOG.md` + href: `${REPO_URL}/${shortName(p.name)}/CHANGELOG.md`, }, - "changelog" - ] - ] + "changelog", + ], + ], ]; const packages = transduce( @@ -71,17 +65,17 @@ writeFileSync( "meta", { "http-equiv": "Content-Type", - content: "text/html; charset=utf-8" - } + content: "text/html; charset=utf-8", + }, ], [ "link", { href: "https://unpkg.com/tachyons@4/css/tachyons.min.css", - rel: "stylesheet" - } - ] + rel: "stylesheet", + }, + ], ], [ "body.measure.center.sans-serif.lh-copy", @@ -90,12 +84,12 @@ writeFileSync( { alt: "docs.thi.ng", src: - "https://media.thi.ng/umbrella/banners/docsthing.svg" - } + "https://media.thi.ng/umbrella/banners/docsthing.svg", + }, ], [ "p", - "This site hosts auto-generated documentation for the following projects:" + "This site hosts auto-generated documentation for the following projects:", ], ["table.w-100", ["tbody", ...packages]], [ @@ -109,15 +103,15 @@ writeFileSync( [ "a", { href: "https://twitter.com/thing_umbrella/" }, - "twitter" + "twitter", ], [ "p.mt3.f7.gray", "Last updated: ", - new Date().toISOString() - ] - ] - ] - ] + new Date().toISOString(), + ], + ], + ], + ], ]) ); From 609424e6b332e5f2df89d07b6b5af02fc5b4ba99 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 8 Jun 2020 16:27:52 +0100 Subject: [PATCH 06/29] feat(rstream): add error handling for transducer phase - update Subscription.next() - update transduce() --- packages/rstream/src/subs/transduce.ts | 10 +++++-- packages/rstream/src/subscription.ts | 41 +++++++++++++++++++------- 2 files changed, 39 insertions(+), 12 deletions(-) diff --git a/packages/rstream/src/subs/transduce.ts b/packages/rstream/src/subs/transduce.ts index 0e0ec0f5bc..0e482a775d 100644 --- a/packages/rstream/src/subs/transduce.ts +++ b/packages/rstream/src/subs/transduce.ts @@ -1,4 +1,4 @@ -import { isReduced } from "@thi.ng/transducers"; +import { isReduced, Reduced } from "@thi.ng/transducers"; import { Subscription } from "../subscription"; import type { Reducer, Transducer } from "@thi.ng/transducers"; @@ -39,7 +39,13 @@ export const transduce = ( sub = src.subscribe( { next(x) { - const _acc = rfn[2](acc, x); + let _acc: C | Reduced; + try { + _acc = rfn[2](acc, x); + } catch (e) { + reject(e); + return; + } if (isReduced(_acc)) { resolve(_acc.deref()); } else { diff --git a/packages/rstream/src/subscription.ts b/packages/rstream/src/subscription.ts index 7799192ef4..8d62d974bb 100644 --- a/packages/rstream/src/subscription.ts +++ b/packages/rstream/src/subscription.ts @@ -9,6 +9,7 @@ import { Reducer, Transducer, unreduced, + Reduced, } from "@thi.ng/transducers"; import { CloseMode, @@ -30,7 +31,8 @@ import { nextID } from "./utils/idgen"; * Most other types in rstream, including {@link Stream}s, are * `Subscription`s and all can be: * - * - linked into directed graphs (sync or async & not necessarily DAGs) + * - connected into directed graphs (sync or async & not necessarily + * DAGs) * - transformed using transducers (incl. support for early termination) * - can have any number of subscribers (optionally each w/ their own * transducers) @@ -40,9 +42,17 @@ import { nextID } from "./utils/idgen"; * subscribers has an error handler itself * - implement the {@link @thi.ng/api#IDeref} interface * + * If a transducer is provided (via the `xform` option), all received + * values will be first processed by the transducer and only its + * transformed result(s) (if any) will be passed to downstream + * subscribers. Any uncaught errors *inside* the transducer will cause + * this subscription's error handler to be called and will stop this + * subscription from receiving any further values (by default, unless + * overridden). + * * Subscription behavior can be customized via the additional (optional) - * options arg. See `CommonOpts` and `SubscriptionOpts` for further - * details. + * options arg. See {@link CommonOpts} and {@link SubscriptionOpts} for + * further details. * * @example * ```ts @@ -244,7 +254,13 @@ export class Subscription next(x: A) { if (this.state < State.DONE) { if (this.xform) { - const acc = this.xform[2]([], x); + let acc: B[] | Reduced; + try { + acc = this.xform[2]([], x); + } catch (e) { + this.error(e); + return; + } const uacc = unreduced(acc); const n = uacc.length; for (let i = 0; i < n; i++) { @@ -260,13 +276,18 @@ export class Subscription done() { LOGGER.debug(this.id, "entering done()"); if (this.state < State.DONE) { - if (this.xform) { - const acc = this.xform[1]([]); - const uacc = unreduced(acc); - const n = uacc.length; - for (let i = 0; i < n; i++) { - this.dispatch(uacc[i]); + try { + if (this.xform) { + const acc = this.xform[1]([]); + const uacc = unreduced(acc); + const n = uacc.length; + for (let i = 0; i < n; i++) { + this.dispatch(uacc[i]); + } } + } catch (e) { + this.error(e); + return; } this.state = State.DONE; for (let s of this.subs.slice()) { From 6b841ad93eaf2526aa7b871ec8102e8531ccde5c Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Mon, 8 Jun 2020 16:30:04 +0100 Subject: [PATCH 07/29] minor(rstream): minor updates/refactoring --- packages/rstream/src/from/raf.ts | 2 +- packages/rstream/src/subs/sidechain-toggle.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/rstream/src/from/raf.ts b/packages/rstream/src/from/raf.ts index d9ef574cd5..c2a4e757f4 100644 --- a/packages/rstream/src/from/raf.ts +++ b/packages/rstream/src/from/raf.ts @@ -22,7 +22,7 @@ export const fromRAF = (opts?: Partial) => : new Stream((stream) => { let i = 0; let isActive = true; - let loop = () => { + const loop = () => { isActive && stream.next(i++); isActive && (id = requestAnimationFrame(loop)); }; diff --git a/packages/rstream/src/subs/sidechain-toggle.ts b/packages/rstream/src/subs/sidechain-toggle.ts index f39a52235c..cccd7179e7 100644 --- a/packages/rstream/src/subs/sidechain-toggle.ts +++ b/packages/rstream/src/subs/sidechain-toggle.ts @@ -56,7 +56,7 @@ export class SidechainToggle extends ASidechain { const $this = this; this.sideSub = side.subscribe({ next(x) { - if (pred!(x)) { + if (pred(x)) { $this.isActive = !$this.isActive; } }, From 84b6517f8988e5032ac2c7614e62ebf4cf1c9e1b Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 10 Jun 2020 11:51:12 +0100 Subject: [PATCH 08/29] feat(associative): add Trie and tests --- packages/associative/src/index.ts | 1 + packages/associative/src/trie.ts | 137 ++++++++++++++++++++++++++++++ packages/associative/test/trie.ts | 69 +++++++++++++++ 3 files changed, 207 insertions(+) create mode 100644 packages/associative/src/trie.ts create mode 100644 packages/associative/test/trie.ts diff --git a/packages/associative/src/index.ts b/packages/associative/src/index.ts index 8d9b0403e8..aabfe339e4 100644 --- a/packages/associative/src/index.ts +++ b/packages/associative/src/index.ts @@ -20,5 +20,6 @@ export * from "./select-keys"; export * from "./sorted-map"; export * from "./sorted-set"; export * from "./sparse-set"; +export * from "./trie"; export * from "./union"; export * from "./without-keys"; diff --git a/packages/associative/src/trie.ts b/packages/associative/src/trie.ts new file mode 100644 index 0000000000..22cad00ad3 --- /dev/null +++ b/packages/associative/src/trie.ts @@ -0,0 +1,137 @@ +import type { IObjectOf } from "@thi.ng/api"; +import { map, vals } from "@thi.ng/transducers"; + +export class Trie, T> { + protected next: IObjectOf> = {}; + protected vals?: Set; + protected n = 0; + + *[Symbol.iterator]() { + const queue: [string, Trie][] = [["", this]]; + while (queue.length) { + const [prefix, node] = queue.pop()!; + if (node.vals) { + yield* map((v) => [prefix, v], node.vals); + } else { + node.queueChildren(queue, prefix); + } + } + } + + *keys(sep = "", prefix = "") { + const queue: [string, Trie][] = [[prefix, this]]; + while (queue.length) { + const [key, node] = queue.pop()!; + if (node.vals) { + yield key; + } else { + node.queueChildren(queue, key, sep); + } + } + } + + *values() { + const queue: Trie[] = [this]; + while (queue.length) { + const node = queue.pop()!; + if (node.vals) { + yield* node.vals; + } else { + queue.push(...vals(node.next)); + } + } + } + + clear() { + this.next = {}; + this.n = 0; + this.vals = undefined; + } + + has(key: K) { + return !!this.get(key); + } + + hasPrefix(prefix: K) { + return !!this.find(prefix); + } + + *suffixes(prefix: K, withPrefix = false) { + const node = this.find(prefix); + if (node) { + yield* node.keys("", withPrefix ? prefix.toString() : ""); + } + } + + get(key: K): Set | undefined { + const node = this.find(key); + return node ? node.vals : undefined; + } + + find(key: K) { + let node: Trie | undefined = this; + for (let i = 0, n = key.length; i < n; i++) { + node = node!.next[key[i].toString()]; + if (!node) return; + } + return node; + } + + add(key: K, val: T) { + let node: Trie = this; + for (let i = 0, n = key.length; i < n; i++) { + const k = key[i].toString(); + const next = node.next[k]; + node = !next ? (node.n++, (node.next[k] = new Trie())) : next; + } + if (!node.vals) node.vals = new Set(); + node.vals.add(val); + } + + delete(prefix: K, val?: T) { + const n = prefix.length; + if (n < 1) return false; + const path: Trie[] = []; + const key: string[] = []; + let i = 0; + let node: Trie | undefined = this; + for (; i < n; i++) { + const k = prefix[i].toString(); + key.push(k); + path.push(node); + node = node.next[k]; + if (!node) return false; + } + // if val is given, remove from set + // and only collapse path if no other vals for key + if (val !== undefined) { + const vals = node.vals; + if (vals && vals.has(val)) { + vals.delete(val); + if (vals.size > 0) return true; + } else { + return false; + } + } + // collapse path + while ((node = path[--i])) { + delete node.next[key[i]]; + if (--node.n) break; + } + return true; + } + + protected queueChildren( + queue: [string, Trie][], + prefix: string, + sep = "" + ) { + prefix = prefix.length ? prefix + sep : prefix; + queue.push( + ...map( + (k) => <[string, Trie]>[prefix + k, this.next[k]], + Object.keys(this.next) + ) + ); + } +} diff --git a/packages/associative/test/trie.ts b/packages/associative/test/trie.ts new file mode 100644 index 0000000000..2a07bec892 --- /dev/null +++ b/packages/associative/test/trie.ts @@ -0,0 +1,69 @@ +import * as assert from "assert"; + +import { Trie } from "../src/trie"; + +describe("Trie", () => { + let root: Trie; + beforeEach(() => { + root = new Trie(); + root.add("hey", "en"); + root.add("hello", "en"); + root.add("hallo", "de"); + root.add("hallo", "de-at"); + root.add("hola", "es"); + root.add("hold", "en"); + root.add("hej", "se"); + }); + + it("keys", () => { + assert.deepEqual( + new Set(root.keys()), + new Set(["hey", "hello", "hallo", "hallo", "hola", "hold", "hej"]) + ); + assert.deepEqual( + new Set(root.find("he")!.keys()), + new Set(["y", "llo", "j"]) + ); + assert.deepEqual( + new Set(root.find("ho")!.keys("", "ho")), + new Set(["hola", "hold"]) + ); + assert.deepEqual( + new Set(root.find("he")!.keys("-")), + new Set(["l-l-o", "y", "j"]) + ); + }); + + it("keys (words)", () => { + const t = new Trie(); + t.add("foo bar baz".split(" "), "a"); + t.add("foo boo zoo".split(" "), "b"); + assert.deepEqual( + new Set(t.keys("/")), + new Set(["foo/bar/baz", "foo/boo/zoo"]) + ); + }); + + it("values", () => { + assert.deepEqual( + new Set(root.values()), + new Set(["en", "es", "de", "de-at", "se"]) + ); + assert.deepEqual( + new Set(root.find("he")!.values()), + new Set(["en", "se"]) + ); + }); + + it("delete", () => { + assert(root.delete("he")); + assert.deepEqual( + new Set(root.keys()), + new Set(["hola", "hold", "hallo"]) + ); + assert(root.delete("hallo", "de")); + assert.deepEqual(root.get("hallo"), new Set(["de-at"])); + assert(root.delete("h")); + assert.deepEqual([...root], []); + }); +}); From bdbe602766385eea3e8f598e5aef53a693c735a4 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 10 Jun 2020 11:57:16 +0100 Subject: [PATCH 09/29] meta: update FUNDING.yml --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 06da5f6968..7cf593fb11 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1,2 @@ +github: postspectacular patreon: thing_umbrella From 93d2b9e08c627f8db3d2bd953e45948e4bbea10b Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 10 Jun 2020 11:57:37 +0100 Subject: [PATCH 10/29] meta: update .all-contributors details --- .all-contributorsrc | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 657956c038..8979be145b 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -13,7 +13,8 @@ "contributions": [ "code", "doc", - "maintenance" + "maintenance", + "financial" ] }, { @@ -24,7 +25,9 @@ "contributions": [ "code", "example", - "bug" + "bug", + "ideas", + "financial" ] }, { @@ -36,7 +39,8 @@ "code", "ideas", "example", - "blog" + "blog", + "financial" ] }, { @@ -69,7 +73,8 @@ "contributions": [ "doc", "bug", - "ideas" + "ideas", + "financial" ] }, { @@ -98,7 +103,8 @@ "contributions": [ "bug", "code", - "ideas" + "ideas", + "financial" ] }, { From cc25f91becdb0d64c528999409659b688d874110 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2020 11:00:07 +0000 Subject: [PATCH 11/29] docs: update README.md [skip ci] --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ead452cc61..f4b718bea8 100644 --- a/README.md +++ b/README.md @@ -349,17 +349,17 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d - - - + + + - + - + @@ -370,6 +370,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d +

Karsten Schmidt

💻 📖 🚧

Alberto

💻 💡 🐛

Arthur Carabott

💻 🤔 💡 📝

Karsten Schmidt

💻 📖 🚧 💵

Alberto

💻 💡 🐛 🤔 💵

Arthur Carabott

💻 🤔 💡 📝 💵

André Wachter

💻 🤔 🐛

Gavin Cannizzaro

💻 🐛 🤔

Logan Powell

📖 🐛 🤔

Logan Powell

📖 🐛 🤔 💵

Marcin Ignac

🐛

arcticnoah

💻

allforabit

🐛 💻 🤔

allforabit

🐛 💻 🤔 💵

Yifan Wu

🐛 📖

stwind

💻 🐛

evilive

💻

Nik Shevchenko

🐛 💻

Matei Adriel

💻 🐛 🤔

Pierre Grimaud

📖

Matt Huebert

💵
From 998fa22c3696a76341ab9ce3661d02e842a10fea Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2020 11:00:08 +0000 Subject: [PATCH 12/29] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 8979be145b..845777cbb1 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -185,6 +185,15 @@ "contributions": [ "doc" ] + }, + { + "login": "mhuebert", + "name": "Matt Huebert", + "avatar_url": "https://avatars1.githubusercontent.com/u/165223?v=4", + "profile": "http://matt.is", + "contributions": [ + "financial" + ] } ], "contributorsPerLine": 7, From a95fb27700a42a26a1b9e2f7fa05e0fb75b04851 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2020 11:01:34 +0000 Subject: [PATCH 13/29] docs: update README.md [skip ci] --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f4b718bea8..26ef2c11fc 100644 --- a/README.md +++ b/README.md @@ -371,6 +371,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d

Matei Adriel

💻 🐛 🤔
Pierre Grimaud

📖
Matt Huebert

💵 +
Raphael Saunier

💵 From e7641da9c304a9ffcbaba6e3d3db6b8811eefa0c Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2020 11:01:35 +0000 Subject: [PATCH 14/29] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 845777cbb1..bfbb73995e 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -194,6 +194,15 @@ "contributions": [ "financial" ] + }, + { + "login": "raphaelsaunier", + "name": "Raphael Saunier", + "avatar_url": "https://avatars2.githubusercontent.com/u/170256?v=4", + "profile": "http://raphaelsaunier.com", + "contributions": [ + "financial" + ] } ], "contributorsPerLine": 7, From 2344ace16c863779b4e1abefab8521d76900fe25 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2020 11:02:22 +0000 Subject: [PATCH 15/29] docs: update README.md [skip ci] --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 26ef2c11fc..91228fe4ce 100644 --- a/README.md +++ b/README.md @@ -372,6 +372,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
Pierre Grimaud

📖
Matt Huebert

💵
Raphael Saunier

💵 +
Eric Ihli

💵 From 6aab82f03c779e6edecf283061c5bd2dd601a7e5 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2020 11:02:23 +0000 Subject: [PATCH 16/29] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index bfbb73995e..07f2bf94a9 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -203,6 +203,15 @@ "contributions": [ "financial" ] + }, + { + "login": "eihli", + "name": "Eric Ihli", + "avatar_url": "https://avatars0.githubusercontent.com/u/1719584?v=4", + "profile": "http://owoga.com", + "contributions": [ + "financial" + ] } ], "contributorsPerLine": 7, From 827690ee72ea7b1590a856335dbcca334d3ddbea Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2020 11:03:24 +0000 Subject: [PATCH 17/29] docs: update README.md [skip ci] --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 91228fe4ce..0b071ba763 100644 --- a/README.md +++ b/README.md @@ -373,6 +373,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
Matt Huebert

💵
Raphael Saunier

💵
Eric Ihli

💵 +
David Pham

💵 From abcff41e743cd99dbee849486f0d117caa781705 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2020 11:03:25 +0000 Subject: [PATCH 18/29] docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index 07f2bf94a9..8e539240ff 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -212,6 +212,15 @@ "contributions": [ "financial" ] + }, + { + "login": "davidpham87", + "name": "David Pham", + "avatar_url": "https://avatars3.githubusercontent.com/u/7083286?v=4", + "profile": "https://davidpham87.github.io", + "contributions": [ + "financial" + ] } ], "contributorsPerLine": 7, From 916214c325b03641fcfd1ea87ed1c527ea1e7393 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Wed, 10 Jun 2020 12:43:29 +0100 Subject: [PATCH 19/29] build: update make-* scripts --- scripts/make-example | 8 +++----- scripts/make-module | 18 +++++++++--------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/scripts/make-example b/scripts/make-example index cb4096e34d..402f6bf30c 100755 --- a/scripts/make-example +++ b/scripts/make-example @@ -42,13 +42,11 @@ cat << EOF > "$MODULE"/package.json }, "devDependencies": { "parcel-bundler": "^1.12.4", - "terser": "^4.6.3", - "typescript": "^3.7.5" + "terser": "^4.6.13", + "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "latest", - "@thi.ng/rstream": "latest", - "@thi.ng/transducers-hdom": "latest" + "@thi.ng/api": "latest" }, "browserslist": [ "last 3 Chrome versions" diff --git a/scripts/make-module b/scripts/make-module index 6d730da73c..1b57acf9a8 100755 --- a/scripts/make-module +++ b/scripts/make-module @@ -77,17 +77,17 @@ cat << EOF > "$MODULE"/package.json }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@microsoft/api-extractor": "^7.7.8", - "@types/mocha": "^7.0.1", - "@types/node": "^13.7.4", - "mocha": "^7.1.1", - "nyc": "^15.0.0", - "ts-node": "^8.6.2", - "typedoc": "^0.16.10", - "typescript": "^3.8.3" + "@microsoft/api-extractor": "^7.8.0", + "@types/mocha": "^7.0.2", + "@types/node": "^14.0.1", + "mocha": "^7.1.2", + "nyc": "^15.0.1", + "ts-node": "^8.10.1", + "typedoc": "^0.17.6", + "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.10.2" + "@thi.ng/api": "^6.11.0" }, "files": [ "*.js", From b7ef10e09d16847d0fd294e47026e77cae0a9fef Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 12 Jun 2020 14:52:37 +0100 Subject: [PATCH 20/29] minor(transducers): fix typo --- packages/transducers/src/xform/sliding-window.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/transducers/src/xform/sliding-window.ts b/packages/transducers/src/xform/sliding-window.ts index 9bac4c785d..284c2cd4fd 100644 --- a/packages/transducers/src/xform/sliding-window.ts +++ b/packages/transducers/src/xform/sliding-window.ts @@ -10,7 +10,7 @@ import { $iter } from "../iterator"; * accumulation buffer. * * @remarks - * If `size` is implements {@link IDeref}, the window size will be + * If `size` implements {@link IDeref}, the window size will be * re-evaluated for each new input and therefore can be used as * mechanism to dynamically adjust the window size. * From 40e10755ca520d5d850da98d07b40f9339310318 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 12 Jun 2020 16:08:33 +0100 Subject: [PATCH 21/29] feat(hdiff): import as new pkg --- assets/hdiff/hdiff.png | Bin 0 -> 253102 bytes packages/hdiff/LICENSE | 201 ++++++++++++++++++++++++++++++ packages/hdiff/README.md | 119 ++++++++++++++++++ packages/hdiff/api-extractor.json | 3 + packages/hdiff/bin/cli.js | 27 ++++ packages/hdiff/package.json | 79 ++++++++++++ packages/hdiff/src/api.ts | 60 +++++++++ packages/hdiff/src/diff.ts | 78 ++++++++++++ packages/hdiff/src/html.ts | 33 +++++ packages/hdiff/src/index.ts | 4 + packages/hdiff/src/theme.ts | 135 ++++++++++++++++++++ packages/hdiff/test/index.ts | 6 + packages/hdiff/test/tsconfig.json | 11 ++ packages/hdiff/tpl.readme.md | 100 +++++++++++++++ packages/hdiff/tsconfig.json | 11 ++ 15 files changed, 867 insertions(+) create mode 100644 assets/hdiff/hdiff.png create mode 100644 packages/hdiff/LICENSE create mode 100644 packages/hdiff/README.md create mode 100644 packages/hdiff/api-extractor.json create mode 100755 packages/hdiff/bin/cli.js create mode 100644 packages/hdiff/package.json create mode 100644 packages/hdiff/src/api.ts create mode 100644 packages/hdiff/src/diff.ts create mode 100644 packages/hdiff/src/html.ts create mode 100644 packages/hdiff/src/index.ts create mode 100644 packages/hdiff/src/theme.ts create mode 100644 packages/hdiff/test/index.ts create mode 100644 packages/hdiff/test/tsconfig.json create mode 100644 packages/hdiff/tpl.readme.md create mode 100644 packages/hdiff/tsconfig.json diff --git a/assets/hdiff/hdiff.png b/assets/hdiff/hdiff.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca473cb576e7eb20735e3166ab4403298591f2a GIT binary patch literal 253102 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

xJn5kxNUH@jEey4NqszO!V1FgkTY-gtl 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

ftN%?+5nF6}-YWJoj#CMz?4lD$@*1_Y+PoD+Tmw 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 z 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 S57j&Yesa>vQdN>hf&U9p31FuH literal 0 HcmV?d00001 diff --git a/packages/hdiff/LICENSE b/packages/hdiff/LICENSE new file mode 100644 index 0000000000..8dada3edaf --- /dev/null +++ b/packages/hdiff/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/hdiff/README.md b/packages/hdiff/README.md new file mode 100644 index 0000000000..3499d36018 --- /dev/null +++ b/packages/hdiff/README.md @@ -0,0 +1,119 @@ + + +# ![hdiff](https://media.thi.ng/umbrella/banners/thing-hdiff.svg?421a59f3) + +[![npm version](https://img.shields.io/npm/v/@thi.ng/hdiff.svg)](https://www.npmjs.com/package/@thi.ng/hdiff) +![npm downloads](https://img.shields.io/npm/dm/@thi.ng/hdiff.svg) +[![Twitter Follow](https://img.shields.io/twitter/follow/thing_umbrella.svg?style=flat-square&label=twitter)](https://twitter.com/thing_umbrella) + +This project is part of the +[@thi.ng/umbrella](https://github.com/thi-ng/umbrella/) monorepo. + +- [About](#about) + - [Status](#status) +- [Installation](#installation) + - [CLI installation & usage](#cli-installation--usage) +- [Dependencies](#dependencies) +- [API](#api) + - [computeDiff()](#computediff) + - [generateHtml()](#generatehtml) + - [compileTheme()](#compiletheme) +- [Authors](#authors) +- [License](#license) + +## About + +String diffing w/ hiccup output for further processing, e.g. with [@thi.ng/hdom](https://github.com/thi-ng/umbrella/tree/develop/packages/hdom), [@thi.ng/hiccup](https://github.com/thi-ng/umbrella/tree/develop/packages/hiccup). Includes CLI util to generate HTML, with theme support and code folding. + +![screenshot of example output](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/hdiff/hdiff.png) + +### Status + +**ALPHA** - bleeding edge / work-in-progress + +## Installation + +```bash +yarn add @thi.ng/hdiff +``` + +```html +// ES module + + +// UMD + +``` + +Package sizes (gzipped, pre-treeshake): ESM: 1.56 KB / CJS: 1.63 KB / UMD: 1.68 KB + +### CLI installation & usage + +Current limitations: + +- output always written to stdout only +- only single theme available for now (easy to add new ones, PRs welcome!) + +```bash +npx @thi.ng/hdiff + +# any text files +npx hdiff file-a.txt file-b.txt > diff.html + +# git revisions for given file (in local repo) +# rev can be any commit-ish ID understood by git (sha1, tag, etc.) +npx hdiff rel-file-path rev1 rev2 > diff.html + +# example +npx hdiff packages/webgl/src/shader.ts develop~500 HEAD > diff.html +``` + +## Dependencies + +- [@thi.ng/diff](https://github.com/thi-ng/umbrella/tree/develop/packages/diff) +- [@thi.ng/hiccup](https://github.com/thi-ng/umbrella/tree/develop/packages/hiccup) +- [@thi.ng/hiccup-css](https://github.com/thi-ng/umbrella/tree/develop/packages/hiccup-css) +- [@thi.ng/strings](https://github.com/thi-ng/umbrella/tree/develop/packages/strings) + +## API + +[Generated API docs](https://docs.thi.ng/umbrella/hdiff/) + +### computeDiff() + +Signature: `computeDiff(a: string, b: string) => any[]` + +Takes two strings and performs line-based diff, then formats result as +tree of HTML elements in +[@thi.ng/hiccup](https://github.com/thi-ng/umbrella/tree/develop/packages/hiccup) +format. + +The generated format only uses the following data attributes: + +- `data-diff`: diff status for each `code` line (`"+"`, `"-"` or `" "`) +- `data-lnum`: formatted line number for each `code` line +- `data-fold`: indicates folded `pre`-block +- `data-fold-range`: line number range string + +### generateHtml() + +Signature: `generateHtml(header: any[], body: any[], theme: Theme) => string` + +Takes two hiccup trees for header and body and an optional theme. +Compiles theme into CSS, serializes hiccup trees and returns complete +HTML document as string. + +### compileTheme() + +Signature: `compileTheme(theme: Theme) => string` + +Compiles a theme config into a complete CSS stylesheet string (using +[@thi.ng/hiccup-css](https://github.com/thi-ng/umbrella/tree/develop/packages/hiccup-css)). + +## Authors + +Karsten Schmidt + +## License + +© 2018 - 2020 Karsten Schmidt // Apache Software License 2.0 diff --git a/packages/hdiff/api-extractor.json b/packages/hdiff/api-extractor.json new file mode 100644 index 0000000000..94972e6bed --- /dev/null +++ b/packages/hdiff/api-extractor.json @@ -0,0 +1,3 @@ +{ + "extends": "../../api-extractor.json" +} diff --git a/packages/hdiff/bin/cli.js b/packages/hdiff/bin/cli.js new file mode 100755 index 0000000000..ce6be409a8 --- /dev/null +++ b/packages/hdiff/bin/cli.js @@ -0,0 +1,27 @@ +#!/usr/bin/env node + +const fs = require("fs"); +const cproc = require("child_process"); +const hdiff = require("@thi.ng/hdiff"); + +let src1; +let src2; +let headerBody; + +const args = process.argv.slice(2); +if (args.length === 3) { + const [path, rev1, rev2] = args; + src1 = cproc.execSync(`git show ${rev1}:${path}`).toString(); + src2 = cproc.execSync(`git show ${rev2}:${path}`).toString(); + headerBody = ["header", ["h1", path], ["code", `${rev1} ⇌ ${rev2}`]]; +} else if (args.length === 2) { + const [rev1, rev2] = args; + src1 = fs.readFileSync(rev1).toString(); + src2 = fs.readFileSync(rev2).toString(); + headerBody = ["header", ["h1", "File diff"], ["code", `${rev1} ⇌ ${rev2}`]]; +} else { + console.log("Usage:\n\thdiff file1 file2\n\thdiff relpath gitrev1 gitrev2"); + process.exit(1); +} + +console.log(hdiff.generateHtml(hdiff.computeDiff(src1, src2), headerBody)); diff --git a/packages/hdiff/package.json b/packages/hdiff/package.json new file mode 100644 index 0000000000..09d2b88256 --- /dev/null +++ b/packages/hdiff/package.json @@ -0,0 +1,79 @@ +{ + "name": "@thi.ng/hdiff", + "version": "0.0.1", + "description": "String diffing w/ hiccup output for further processing, e.g. with @thi.ng/hdom, @thi.ng/hiccup. Includes CLI util to generate HTML, with theme support and code folding", + "module": "./index.js", + "main": "./lib/index.js", + "umd:main": "./lib/index.umd.js", + "typings": "./index.d.ts", + "bin": { + "hdiff": "bin/cli.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/thi-ng/umbrella.git" + }, + "homepage": "https://github.com/thi-ng/umbrella/tree/master/packages/hdiff#readme", + "funding": { + "type": "patreon", + "url": "https://patreon.com/thing_umbrella" + }, + "author": "Karsten Schmidt ", + "license": "Apache-2.0", + "scripts": { + "build": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module", + "build:release": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module all", + "build:es6": "tsc --declaration", + "build:test": "rimraf build && tsc -p test/tsconfig.json", + "test": "mocha test", + "cover": "nyc mocha test && nyc report --reporter=lcov", + "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib", + "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts", + "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose", + "doc": "node_modules/.bin/typedoc --mode modules --out doc src", + "pub": "yarn build:release && yarn publish --access public" + }, + "devDependencies": { + "@istanbuljs/nyc-config-typescript": "^1.0.1", + "@microsoft/api-extractor": "^7.8.0", + "@types/mocha": "^7.0.2", + "@types/node": "^14.0.1", + "mocha": "^7.1.2", + "nyc": "^15.0.1", + "ts-node": "^8.10.1", + "typedoc": "^0.17.6", + "typescript": "^3.9.2" + }, + "dependencies": { + "@thi.ng/diff": "^3.2.22", + "@thi.ng/hiccup": "^3.2.24", + "@thi.ng/hiccup-css": "^1.1.26", + "@thi.ng/strings": "^1.8.9" + }, + "files": [ + "*.js", + "*.d.ts", + "lib", + "bin" + ], + "keywords": [ + "cli", + "css", + "diff", + "es6", + "file", + "git", + "hiccup", + "html", + "theme", + "typescript" + ], + "publishConfig": { + "access": "public" + }, + "sideEffects": false, + "thi.ng": { + "status": "alpha", + "year": 2018 + } +} diff --git a/packages/hdiff/src/api.ts b/packages/hdiff/src/api.ts new file mode 100644 index 0000000000..55d77dbfc8 --- /dev/null +++ b/packages/hdiff/src/api.ts @@ -0,0 +1,60 @@ +import type { IObjectOf } from "@thi.ng/api"; + +export type BgFg = [string, string]; +export type BgFgBorder = [string, string, string]; + +export interface Theme { + selection: BgFg; + header: BgFg; + diff: { + add: { + main: BgFg; + word: BgFg; + side: BgFgBorder; + }; + del: { + main: BgFg; + word: BgFg; + side: BgFgBorder; + }; + nochange: { + main: BgFg; + side: BgFgBorder; + }; + fold: BgFg; + hover: { + main: BgFg; + side: BgFgBorder; + }; + }; +} + +export const THEMES: IObjectOf = { + default: { + selection: ["black", "white"], + header: ["ghostwhite", "black"], + diff: { + add: { + main: ["#dfe", "#000"], + side: ["lightgreen", "#393", "#9c9"], + word: ["lightgreen", "#000"], + }, + del: { + main: ["#fde", "#000"], + side: ["lightcoral", "#933", "#c99"], + word: ["orangered", "#000"], + }, + nochange: { + main: ["#fff", "#000"], + side: ["#eee", "#999", "#ccc"], + }, + fold: ["whitesmoke", "#666"], + hover: { + main: ["papayawhip", "#000"], + side: ["papayawhip", "#993", "#cc9"], + }, + }, + }, +}; + +export const DEFAULT_THEME = THEMES.default; diff --git a/packages/hdiff/src/diff.ts b/packages/hdiff/src/diff.ts new file mode 100644 index 0000000000..824e176ba7 --- /dev/null +++ b/packages/hdiff/src/diff.ts @@ -0,0 +1,78 @@ +import { diffArray, DiffMode } from "@thi.ng/diff"; +import { escape } from "@thi.ng/hiccup"; +import { padLeft } from "@thi.ng/strings"; + +const FMT_LN = padLeft(4, " "); + +export const computeDiff = (a: string, b: string) => { + const edits = diffArray( + a.split("\n"), + b.split("\n"), + DiffMode.ONLY_DISTANCE_LINEAR + ).linear!; + for (let i = 0; i < edits.length; i += 3) { + const lineID = edits[i]; + if (lineID) updateOffset(edits, i, lineID); + } + const result: any[] = ["div", {}]; + let block: any[] | undefined; + let numSame = 0; + for (let i = 0; i < edits.length; i += 3) { + if (!block) block = ["pre", {}]; + const lineID = edits[i]; + if (lineID == 0) { + numSame++; + if (numSame > 2) { + numSame = 0; + // scan forward to check if foldable + let j = i; + do { + j += 3; + } while (j < edits.length && edits[j] === 0); + if (j - i > 12) { + result.push(block, foldedBlock(edits, i, j - 6)); + block = undefined; + i = j - 9; + continue; + } + } + } else { + numSame = 0; + } + block!.push(codeLine(edits, i, true)); + } + if (block) result.push(block); + return result; +}; + +const updateOffset = (edits: any[], i: number, delta: number) => { + for (; i < edits.length; i += 3) { + if (edits[i] === 0) edits[i + 1] += delta; + } +}; + +const codeLine = (edits: any[], i: number, body = false): any[] => [ + "code", + { + "data-diff": ["-", " ", "+"][edits[i] + 1], + "data-lnum": FMT_LN(edits[i + 1] + 1), + }, + body ? escape(edits[i + 2]) : null, +]; + +const foldedBlock = (edits: any[], i: number, j: number): any[] => { + const block = [ + "pre", + { "data-fold": true }, + [ + "code", + { + "data-fold-range": `${edits[i + 4]} - ${edits[j + 1]}`, + }, + ], + ]; + for (; i < j; i += 3) { + block.push(codeLine(edits, i, true)); + } + return block; +}; diff --git a/packages/hdiff/src/html.ts b/packages/hdiff/src/html.ts new file mode 100644 index 0000000000..05b24731ef --- /dev/null +++ b/packages/hdiff/src/html.ts @@ -0,0 +1,33 @@ +import { serialize } from "@thi.ng/hiccup"; +import { DEFAULT_THEME, Theme } from "./api"; +import { compileTheme } from "./theme"; + +export const generateHtml = ( + diff: any[], + headerBody: any[], + theme: Theme = DEFAULT_THEME +) => + serialize([ + ["!DOCTYPE", "html"], + [ + "html", + [ + "head", + ["meta", { charset: "UTF-8" }], + [ + "meta", + { + name: "viewport", + content: "width=device-width, initial-scale=1.0", + }, + ], + [ + "meta", + { name: "generator", content: "https://thi.ng/hdiff" }, + ], + ["title", "hdiff"], + ["style", compileTheme(theme)], + ], + ["body", headerBody, ["main", diff]], + ], + ]); diff --git a/packages/hdiff/src/index.ts b/packages/hdiff/src/index.ts new file mode 100644 index 0000000000..f44296b761 --- /dev/null +++ b/packages/hdiff/src/index.ts @@ -0,0 +1,4 @@ +export * from "./api"; +export * from "./diff"; +export * from "./html"; +export * from "./theme"; diff --git a/packages/hdiff/src/theme.ts b/packages/hdiff/src/theme.ts new file mode 100644 index 0000000000..59bd6df32f --- /dev/null +++ b/packages/hdiff/src/theme.ts @@ -0,0 +1,135 @@ +import { css } from "@thi.ng/hiccup-css"; +import { BgFg, BgFgBorder, Theme } from "./api"; + +const block = { display: "block" }; +const none = { display: "none" }; +const lnum = "attr(data-lnum)"; + +export const compileTheme = (theme: Theme): string => + css( + [ + [ + "body", + "div", + "pre", + "code", + { + "box-sizing": "border-box", + margin: 0, + }, + ], + ["body", { "font-family": "sans-serif" }], + [ + "header", + bgfg(theme.header), + { + position: "fixed", + top: 0, + width: "100%", + padding: "0.5rem", + "box-shadow": "-8px 0 8px #666", + }, + [ + "h1", + { + margin: "0 0 0.25rem 0", + padding: "0 0 0.25rem 0", + "border-bottom": "1px dotted currentColor", + "font-weight": 100, + }, + ], + ["code", { "font-size": "66%" }], + ], + ["main", { "margin-top": "5rem" }], + [ + "pre", + { + "font-size": "0.8rem", + "line-height": "1.2rem", + }, + [ + "> code", + block, + [ + ":before", + bgfgBorder(theme.diff.nochange.side), + { + padding: "0.23rem 0.5rem 0.23rem 1rem", + "margin-right": "1rem", + "font-size": "0.64rem", + }, + ], + [ + ":hover", + bgfg(theme.diff.hover.main), + [":before", bgfgBorder(theme.diff.hover.side)], + ], + ], + [ + "[data-fold]", + [ + "> code[data-fold-range]:before", + block, + bgfg(theme.diff.fold), + { + content: `"⥣ ⋯⋯ Folded lines: " attr(data-fold-range) " ⋯⋯ ⥥"`, + width: "100%", + border: "1px dotted", + }, + ], + [`> code${diffAttr(" ")}`, none], + [ + ":hover", + [ + `> code${diffAttr(" ")}`, + block, + bgfg(theme.diff.hover.main), + ], + [`> code[data-fold-range]:before`, none], + ], + ], + ], + diffMode(theme.diff.add, "+", `" " ${lnum} " +"`), + diffMode(theme.diff.del, "-", `${lnum} " -"`), + diffMode(theme.diff.nochange, " ", `" " ${lnum} " "`), + [ + "code", + { + "font-size": "1em", + "font-family": "Consolas, monaco, monospace", + }, + ], + ["*::selection", bgfg(theme.selection)], + ] + // { format: PRETTY } + ); + +const bgfg = ([background, color]: BgFg) => ({ + background, + color, +}); + +const bgfgBorder = ([background, color, br]: BgFgBorder) => ({ + background, + color, + "border-right": `1px solid ${br}`, +}); + +const diffAttr = (id: string) => `[data-diff="${id}"]`; + +const diffMode = ( + { main, side, word }: { main: BgFg; word?: BgFg; side: BgFgBorder }, + mode: string, + content: string +) => [ + `code${diffAttr(mode)}`, + bgfg(main), + word ? [`> span${diffAttr(mode)}`, bgfg(word)] : null, + [ + ":before", + { + ...bgfgBorder(side), + content, + }, + ], +]; diff --git a/packages/hdiff/test/index.ts b/packages/hdiff/test/index.ts new file mode 100644 index 0000000000..ba28599982 --- /dev/null +++ b/packages/hdiff/test/index.ts @@ -0,0 +1,6 @@ +// import * as assert from "assert"; +// import { } from "../src"; + +describe("hdiff", () => { + it("tests pending"); +}); diff --git a/packages/hdiff/test/tsconfig.json b/packages/hdiff/test/tsconfig.json new file mode 100644 index 0000000000..f6e63560dd --- /dev/null +++ b/packages/hdiff/test/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.json", + "compilerOptions": { + "outDir": "../build", + "module": "commonjs" + }, + "include": [ + "./**/*.ts", + "../src/**/*.ts" + ] +} diff --git a/packages/hdiff/tpl.readme.md b/packages/hdiff/tpl.readme.md new file mode 100644 index 0000000000..0511e68cc6 --- /dev/null +++ b/packages/hdiff/tpl.readme.md @@ -0,0 +1,100 @@ +# ${pkg.banner} + +[![npm version](https://img.shields.io/npm/v/${pkg.name}.svg)](https://www.npmjs.com/package/${pkg.name}) +![npm downloads](https://img.shields.io/npm/dm/${pkg.name}.svg) +[![Twitter Follow](https://img.shields.io/twitter/follow/thing_umbrella.svg?style=flat-square&label=twitter)](https://twitter.com/thing_umbrella) + +This project is part of the +[@thi.ng/umbrella](https://github.com/thi-ng/umbrella/) monorepo. + + + +## About + +${pkg.description} + +![screenshot of example output](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/hdiff/hdiff.png) + +${status} + +${supportPackages} + +${relatedPackages} + +${blogPosts} + +## Installation + +${pkg.install} + +${pkg.size} + +### CLI installation & usage + +Current limitations: + +- output always written to stdout only +- only single theme available for now (easy to add new ones, PRs welcome!) + +```bash +npx @thi.ng/hdiff + +# any text files +npx hdiff file-a.txt file-b.txt > diff.html + +# git revisions for given file (in local repo) +# rev can be any commit-ish ID understood by git (sha1, tag, etc.) +npx hdiff rel-file-path rev1 rev2 > diff.html + +# example +npx hdiff packages/webgl/src/shader.ts develop~500 HEAD > diff.html +``` + +## Dependencies + +${pkg.deps} + +${examples} + +## API + +${docLink} + +### computeDiff() + +Signature: `computeDiff(a: string, b: string) => any[]` + +Takes two strings and performs line-based diff, then formats result as +tree of HTML elements in +[@thi.ng/hiccup](https://github.com/thi-ng/umbrella/tree/develop/packages/hiccup) +format. + +The generated format only uses the following data attributes: + +- `data-diff`: diff status for each `code` line (`"+"`, `"-"` or `" "`) +- `data-lnum`: formatted line number for each `code` line +- `data-fold`: indicates folded `pre`-block +- `data-fold-range`: line number range string + +### generateHtml() + +Signature: `generateHtml(header: any[], body: any[], theme: Theme) => string` + +Takes two hiccup trees for header and body and an optional theme. +Compiles theme into CSS, serializes hiccup trees and returns complete +HTML document as string. + +### compileTheme() + +Signature: `compileTheme(theme: Theme) => string` + +Compiles a theme config into a complete CSS stylesheet string (using +[@thi.ng/hiccup-css](https://github.com/thi-ng/umbrella/tree/develop/packages/hiccup-css)). + +## Authors + +${authors} + +## License + +© ${copyright} // ${license} diff --git a/packages/hdiff/tsconfig.json b/packages/hdiff/tsconfig.json new file mode 100644 index 0000000000..893b9979c5 --- /dev/null +++ b/packages/hdiff/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": ".", + "module": "es6", + "target": "es6" + }, + "include": [ + "./src/**/*.ts" + ] +} From bbadf88fd5dcdb4de9fd615fa7f8c48a86e6771e Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 12 Jun 2020 16:16:09 +0100 Subject: [PATCH 22/29] docs(hdiff): update readme (demo link) --- packages/hdiff/README.md | 4 +++- packages/hdiff/tpl.readme.md | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/hdiff/README.md b/packages/hdiff/README.md index 3499d36018..964492d434 100644 --- a/packages/hdiff/README.md +++ b/packages/hdiff/README.md @@ -27,6 +27,8 @@ String diffing w/ hiccup output for further processing, e.g. with [@thi.ng/hdom] ![screenshot of example output](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/hdiff/hdiff.png) +[Live example](https://demo.thi.ng/umbrella/hdiff/) + ### Status **ALPHA** - bleeding edge / work-in-progress @@ -45,7 +47,7 @@ yarn add @thi.ng/hdiff ``` -Package sizes (gzipped, pre-treeshake): ESM: 1.56 KB / CJS: 1.63 KB / UMD: 1.68 KB +Package sizes (gzipped, pre-treeshake): ESM: 1.58 KB / CJS: 1.65 KB / UMD: 1.68 KB ### CLI installation & usage diff --git a/packages/hdiff/tpl.readme.md b/packages/hdiff/tpl.readme.md index 0511e68cc6..a63fc62de1 100644 --- a/packages/hdiff/tpl.readme.md +++ b/packages/hdiff/tpl.readme.md @@ -15,6 +15,8 @@ ${pkg.description} ![screenshot of example output](https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/hdiff/hdiff.png) +[Live example](https://demo.thi.ng/umbrella/hdiff/) + ${status} ${supportPackages} From 62f33b5f0982b76e11e762fa7d5ed8aa17a4e977 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 12 Jun 2020 16:21:20 +0100 Subject: [PATCH 23/29] docs: update main readme --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0b071ba763..9cabe9d01b 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ > the composer of. Geared towards versatility, not any specific type of music." > — [@loganpowell](https://twitter.com/logantpowell/status/1186334119812304901) via Twitter -Mono-repository for 126 thi.ng TypeScript/ES6 projects, a wide +Mono-repository for 125+ thi.ng TypeScript/ES6 projects, a wide collection of largely data transformation oriented packages and building blocks for: @@ -195,7 +195,9 @@ fairly detailed overview for contributors here: | Project | Version | Changelog | Description | |-----------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------| +| [`@thi.ng/adapt-dpi`](./packages/adapt-dpi) | [![version](https://img.shields.io/npm/v/@thi.ng/adapt-dpi.svg)](https://www.npmjs.com/package/@thi.ng/adapt-dpi) | [changelog](./packages/adapt-dpi/CHANGELOG.md) | HDPI canvas adaptation / styling util | | [`@thi.ng/dl-asset`](./packages/dl-asset) | [![version](https://img.shields.io/npm/v/@thi.ng/dl-asset.svg)](https://www.npmjs.com/package/@thi.ng/dl-asset) | [changelog](./packages/download/CHANGELOG.md) | Asset download trigger helper | +| [`@thi.ng/hdiff`](./packages/hdiff) | [![version](https://img.shields.io/npm/v/@thi.ng/hdiff.svg)](https://www.npmjs.com/package/@thi.ng/hdiff) | [changelog](./packages/hdiff/CHANGELOG.md) | String diffing w/ hiccup output (includes CLI) | | [`@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-canvas`](./packages/hdom-canvas) | [![version](https://img.shields.io/npm/v/@thi.ng/hdom-canvas.svg)](https://www.npmjs.com/package/@thi.ng/hdom-canvas) | [changelog](./packages/hdom-canvas/CHANGELOG.md) | hdom adapter for hiccup-canvas | | [`@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 | @@ -215,7 +217,6 @@ fairly detailed overview for contributors here: | Project | Version | Changelog | Description | |---------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|------------------------------------------| -| [`@thi.ng/adapt-dpi`](./packages/adapt-dpi) | [![version](https://img.shields.io/npm/v/@thi.ng/adapt-dpi.svg)](https://www.npmjs.com/package/@thi.ng/adapt-dpi) | [changelog](./packages/adapt-dpi/CHANGELOG.md) | HDPI canvas adaptation / styling util | | [`@thi.ng/color`](./packages/color) | [![version](https://img.shields.io/npm/v/@thi.ng/color.svg)](https://www.npmjs.com/package/@thi.ng/color) | [changelog](./packages/color/CHANGELOG.md) | Color conversions, gradients | | [`@thi.ng/dgraph-dot`](./packages/dgraph-dot) | [![version](https://img.shields.io/npm/v/@thi.ng/dgraph-dot.svg)](https://www.npmjs.com/package/@thi.ng/dgraph-dot) | [changelog](./packages/dgraph-dot/CHANGELOG.md) | Dependency graph -> Graphviz | | [`@thi.ng/dot`](./packages/dot) | [![version](https://img.shields.io/npm/v/@thi.ng/dot.svg)](https://www.npmjs.com/package/@thi.ng/dot) | [changelog](./packages/dot/CHANGELOG.md) | Graphviz DOM & export | From 5110d50ba0c499c48c288820b9fb73ee42f9142f Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Fri, 12 Jun 2020 16:52:36 +0100 Subject: [PATCH 24/29] feat(transducers): add keyPermutations, tests, update readme --- packages/transducers/README.md | 3 +- packages/transducers/src/index.ts | 1 + .../transducers/src/iter/key-permutations.ts | 46 +++++++++++++++++++ packages/transducers/test/keyperms.ts | 27 +++++++++++ packages/transducers/tpl.readme.md | 1 + 5 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 packages/transducers/src/iter/key-permutations.ts create mode 100644 packages/transducers/test/keyperms.ts diff --git a/packages/transducers/README.md b/packages/transducers/README.md index 82494c2240..d26285e914 100644 --- a/packages/transducers/README.md +++ b/packages/transducers/README.md @@ -165,7 +165,7 @@ yarn add @thi.ng/transducers ``` -Package sizes (gzipped, pre-treeshake): ESM: 8.00 KB / CJS: 8.54 KB / UMD: 7.72 KB +Package sizes (gzipped, pre-treeshake): ESM: 8.05 KB / CJS: 8.58 KB / UMD: 7.77 KB ## Dependencies @@ -893,6 +893,7 @@ tx.transduce(tx.map((x) => x*10), tx.push(), tx.range(4)) - [dup](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers/src/iter/dup.ts) - [extendSides](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers/src/iter/extend-sides.ts) - [iterate](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers/src/iter/iterate.ts) +- [keyPermutations](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers/src/iter/key-permutations.ts) - [keys](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers/src/iter/keys.ts) - [line](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers/src/iter/line.ts) - [normRange](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers/src/iter/norm-range.ts) diff --git a/packages/transducers/src/index.ts b/packages/transducers/src/index.ts index 6a9267e02f..007972d85e 100644 --- a/packages/transducers/src/index.ts +++ b/packages/transducers/src/index.ts @@ -116,6 +116,7 @@ export * from "./iter/cycle"; export * from "./iter/dup"; export * from "./iter/extend-sides"; export * from "./iter/iterate"; +export * from "./iter/key-permutations"; export * from "./iter/keys"; export * from "./iter/line"; export * from "./iter/norm-range"; diff --git a/packages/transducers/src/iter/key-permutations.ts b/packages/transducers/src/iter/key-permutations.ts new file mode 100644 index 0000000000..229c567fa7 --- /dev/null +++ b/packages/transducers/src/iter/key-permutations.ts @@ -0,0 +1,46 @@ +import type { IObjectOf, Pair } from "@thi.ng/api"; +import { assocObj } from "../rfn/assoc-obj"; +import { map } from "../xform/map"; +import { mapcat } from "../xform/mapcat"; +import { partition } from "../xform/partition"; +import { pairs } from "./pairs"; +import { permutations } from "./permutations"; + +/** + * Similar to {@link permutations}, however takes an object with each + * key specifying an array of its possible values. Yields an iterable of + * objects of all value permutations. + * + * @remarks + * The resulting object type will be derived from the value types in the + * given `spec` object. + * + * The order of resulting permutations is not guaranteed and depending + * on the VM's iteration behavior of `Object.keys()`. + * + * @example + * ```ts + * [...keyPermutations({ a: [1, 2], b: [true, false], c: ["X", "Y"] })] + * // [ + * // { a: 1, b: true, c: 'X' }, + * // { a: 1, b: true, c: 'Y' }, + * // { a: 1, b: false, c: 'X' }, + * // { a: 1, b: false, c: 'Y' }, + * // { a: 2, b: true, c: 'X' }, + * // { a: 2, b: true, c: 'Y' }, + * // { a: 2, b: false, c: 'X' }, + * // { a: 2, b: false, c: 'Y' } + * // ] + * ``` + * + * @param spec - permutation spec object + */ +export const keyPermutations = >( + spec: T +): IterableIterator<{ [k in keyof T]: T[k][0] }> => + ( + map( + (x) => assocObj(>>partition(2, x)), + permutations(...mapcat(([k, v]) => [[k], v], pairs(spec))) + ) + ); diff --git a/packages/transducers/test/keyperms.ts b/packages/transducers/test/keyperms.ts new file mode 100644 index 0000000000..d67d9dca0d --- /dev/null +++ b/packages/transducers/test/keyperms.ts @@ -0,0 +1,27 @@ +import { keyPermutations } from "../src"; + +import * as assert from "assert"; + +describe("keyPermutations", () => { + it("basic", () => { + assert.deepEqual( + new Set([ + ...keyPermutations({ + a: [1, 2], + b: [true, false], + c: ["X", "Y"], + }), + ]), + new Set([ + { a: 1, b: true, c: "X" }, + { a: 1, b: true, c: "Y" }, + { a: 1, b: false, c: "X" }, + { a: 1, b: false, c: "Y" }, + { a: 2, b: true, c: "X" }, + { a: 2, b: true, c: "Y" }, + { a: 2, b: false, c: "X" }, + { a: 2, b: false, c: "Y" }, + ]) + ); + }); +}); diff --git a/packages/transducers/tpl.readme.md b/packages/transducers/tpl.readme.md index 9450ce57b4..7a89b93a52 100644 --- a/packages/transducers/tpl.readme.md +++ b/packages/transducers/tpl.readme.md @@ -769,6 +769,7 @@ tx.transduce(tx.map((x) => x*10), tx.push(), tx.range(4)) - [dup](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers/src/iter/dup.ts) - [extendSides](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers/src/iter/extend-sides.ts) - [iterate](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers/src/iter/iterate.ts) +- [keyPermutations](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers/src/iter/key-permutations.ts) - [keys](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers/src/iter/keys.ts) - [line](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers/src/iter/line.ts) - [normRange](https://github.com/thi-ng/umbrella/tree/develop/packages/transducers/src/iter/norm-range.ts) From 107373574cd6f15531e6210c016cde1a9939e040 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 14 Jun 2020 16:23:09 +0100 Subject: [PATCH 25/29] feat(rstream): add emitLast metastream option --- packages/rstream/src/metastream.ts | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/packages/rstream/src/metastream.ts b/packages/rstream/src/metastream.ts index e4e1bf0e18..f46d2ec244 100644 --- a/packages/rstream/src/metastream.ts +++ b/packages/rstream/src/metastream.ts @@ -3,6 +3,17 @@ import { CloseMode, CommonOpts, State } from "./api"; import { Subscription } from "./subscription"; import { optsWithID } from "./utils/idgen"; +export interface MetaStreamOpts extends CommonOpts { + /** + * If true, emits the last received value from the metastream's + * current child stream (if any) when the metastream's parent is + * calling `.done()`. + * + * @defaultValue false + */ + emitLast: boolean; +} + /** * Returns a {@link Subscription} which transforms each incoming value * into a new {@link Stream}, subscribes to it (via an hidden / internal @@ -87,20 +98,24 @@ import { optsWithID } from "./utils/idgen"; */ export const metaStream = ( factory: Fn>, - opts?: Partial + opts?: Partial ) => new MetaStream(factory, opts); export class MetaStream extends Subscription { factory: Fn>; stream?: Subscription; sub?: Subscription; + emitLast: boolean; + doneRequested: boolean; constructor( factory: Fn>, - opts?: Partial + opts: Partial = {} ) { super(undefined, optsWithID("metastram", opts)); this.factory = factory; + this.emitLast = opts.emitLast === true; + this.doneRequested = false; } next(x: A) { @@ -114,6 +129,7 @@ export class MetaStream extends Subscription { this.sub = this.stream.subscribe({ next: (x) => { stream === this.stream && super.dispatch(x); + this.doneRequested && this.done(); }, done: () => { this.stream!.unsubscribe(this.sub); @@ -130,10 +146,14 @@ export class MetaStream extends Subscription { } done() { - if (this.stream) { - this.detach(true); + if (this.emitLast && !this.doneRequested) { + this.doneRequested = true; + } else { + if (this.stream) { + this.detach(true); + } + this.closeIn !== CloseMode.NEVER && super.done(); } - this.closeIn !== CloseMode.NEVER && super.done(); } unsubscribe(sub?: Subscription) { From 9c53bb4faffee0a06046de64325f0b4ddeedd3a0 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 14 Jun 2020 16:29:26 +0100 Subject: [PATCH 26/29] feat(rstream): add debounce() sub & tests --- packages/rstream/src/index.ts | 1 + packages/rstream/src/subs/debounce.ts | 19 +++++++++++++++ packages/rstream/test/debounce.ts | 35 +++++++++++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 packages/rstream/src/subs/debounce.ts create mode 100644 packages/rstream/test/debounce.ts diff --git a/packages/rstream/src/index.ts b/packages/rstream/src/index.ts index 50d9b11fd4..49f299cb1a 100644 --- a/packages/rstream/src/index.ts +++ b/packages/rstream/src/index.ts @@ -22,6 +22,7 @@ export * from "./from/worker"; export * from "./subs/asidechain"; export * from "./subs/bisect"; +export * from "./subs/debounce"; export * from "./subs/post-worker"; export * from "./subs/resolve"; export * from "./subs/sidechain-partition"; diff --git a/packages/rstream/src/subs/debounce.ts b/packages/rstream/src/subs/debounce.ts new file mode 100644 index 0000000000..3d3ccc0230 --- /dev/null +++ b/packages/rstream/src/subs/debounce.ts @@ -0,0 +1,19 @@ +import { fromIterable } from "../from/iterable"; +import { metaStream, MetaStreamOpts } from "../metastream"; + +/** + * Returns a subscription which ignores any intermediate inputs arriving + * faster than given `delay` time period. + * + * @example + * ```ts + * + * ``` + * + * @param delay + */ +export const debounce = (delay: number, opts?: Partial) => + metaStream((x: T) => fromIterable([x], { delay }), { + emitLast: true, + ...opts, + }); diff --git a/packages/rstream/test/debounce.ts b/packages/rstream/test/debounce.ts new file mode 100644 index 0000000000..55ca6065d7 --- /dev/null +++ b/packages/rstream/test/debounce.ts @@ -0,0 +1,35 @@ +import * as assert from "assert"; +import { debounce, fromIterable } from "../src/index"; +import { TIMEOUT } from "./config"; + +describe("debounce", () => { + it("basic", (done) => { + const acc: number[] = []; + fromIterable([1, 2, 3], { delay: TIMEOUT }) + .subscribe(debounce(TIMEOUT * 1.5)) + .subscribe({ + next(x) { + acc.push(x); + }, + }); + setTimeout(() => { + assert.deepEqual(acc, [3]); + done(); + }, TIMEOUT * 5); + }); + + it("no last", (done) => { + const acc: number[] = []; + fromIterable([1, 2, 3], { delay: TIMEOUT }) + .subscribe(debounce(TIMEOUT * 1.5, { emitLast: false })) + .subscribe({ + next(x) { + acc.push(x); + }, + }); + setTimeout(() => { + assert.deepEqual(acc, []); + done(); + }, TIMEOUT * 5); + }); +}); From 62ad4ea62fb9fa143e57064af11bf3cfc717b264 Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 14 Jun 2020 16:48:59 +0100 Subject: [PATCH 27/29] docs(rstream): update readme --- packages/rstream/README.md | 3 ++- packages/rstream/tpl.readme.md | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/rstream/README.md b/packages/rstream/README.md index eacedfba6d..eaf5fc08f2 100644 --- a/packages/rstream/README.md +++ b/packages/rstream/README.md @@ -136,7 +136,7 @@ yarn add @thi.ng/rstream ``` -Package sizes (gzipped, pre-treeshake): ESM: 5.26 KB / CJS: 5.45 KB / UMD: 5.38 KB +Package sizes (gzipped, pre-treeshake): ESM: 5.37 KB / CJS: 5.56 KB / UMD: 5.48 KB ## Dependencies @@ -736,6 +736,7 @@ Create value stream from worker messages. ### Other subscription ops +- [debounce](https://github.com/thi-ng/umbrella/tree/develop/packages/rstream/src/subs/debounce.ts) - ignore high frequency interim values - [resolve](https://github.com/thi-ng/umbrella/tree/develop/packages/rstream/src/subs/resolve.ts) - resolve on-stream promises - [trace](https://github.com/thi-ng/umbrella/tree/develop/packages/rstream/src/subs/trace.ts) - debug helper - [transduce](https://github.com/thi-ng/umbrella/tree/develop/packages/rstream/src/subs/transduce.ts) - transduce or just reduce an entire stream into a promise diff --git a/packages/rstream/tpl.readme.md b/packages/rstream/tpl.readme.md index 2ec018ec45..e0395020b9 100644 --- a/packages/rstream/tpl.readme.md +++ b/packages/rstream/tpl.readme.md @@ -651,6 +651,7 @@ Create value stream from worker messages. ### Other subscription ops +- [debounce](https://github.com/thi-ng/umbrella/tree/develop/packages/rstream/src/subs/debounce.ts) - ignore high frequency interim values - [resolve](https://github.com/thi-ng/umbrella/tree/develop/packages/rstream/src/subs/resolve.ts) - resolve on-stream promises - [trace](https://github.com/thi-ng/umbrella/tree/develop/packages/rstream/src/subs/trace.ts) - debug helper - [transduce](https://github.com/thi-ng/umbrella/tree/develop/packages/rstream/src/subs/transduce.ts) - transduce or just reduce an entire stream into a promise From 0a99b41e36691abe33196c51f822943660b20bbe Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 14 Jun 2020 16:50:25 +0100 Subject: [PATCH 28/29] docs(associative): update readme --- packages/associative/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/associative/README.md b/packages/associative/README.md index c2cbfd5ca0..60b38e3b20 100644 --- a/packages/associative/README.md +++ b/packages/associative/README.md @@ -172,7 +172,7 @@ yarn add @thi.ng/associative ``` -Package sizes (gzipped, pre-treeshake): ESM: 5.16 KB / CJS: 5.35 KB / UMD: 5.18 KB +Package sizes (gzipped, pre-treeshake): ESM: 5.62 KB / CJS: 5.82 KB / UMD: 5.64 KB ## Dependencies From ddf9b8b67d3d60bcca88143528ee33b843cc089e Mon Sep 17 00:00:00 2001 From: Karsten Schmidt Date: Sun, 14 Jun 2020 16:51:54 +0100 Subject: [PATCH 29/29] Publish - @thi.ng/adapt-dpi@1.0.1 - @thi.ng/adjacency@0.1.48 - @thi.ng/api@6.11.1 - @thi.ng/arrays@0.6.9 - @thi.ng/associative@4.1.0 - @thi.ng/atom@4.1.10 - @thi.ng/bench@2.0.13 - @thi.ng/bencode@0.3.27 - @thi.ng/binary@2.0.8 - @thi.ng/bitfield@0.3.11 - @thi.ng/bitstream@1.1.18 - @thi.ng/cache@1.0.47 - @thi.ng/checks@2.7.1 - @thi.ng/color@1.2.3 - @thi.ng/compare@1.3.8 - @thi.ng/compose@1.4.9 - @thi.ng/csp@1.1.27 - @thi.ng/dcons@2.2.20 - @thi.ng/defmulti@1.2.17 - @thi.ng/dgraph-dot@0.1.12 - @thi.ng/dgraph@1.2.12 - @thi.ng/diff@3.2.23 - @thi.ng/dl-asset@0.3.11 - @thi.ng/dlogic@1.0.24 - @thi.ng/dot@1.2.9 - @thi.ng/dsp-io-wav@0.1.17 - @thi.ng/dsp@2.0.19 - @thi.ng/dynvar@0.1.15 - @thi.ng/ecs@0.3.19 - @thi.ng/fsm@2.4.13 - @thi.ng/geom-accel@2.1.9 - @thi.ng/geom-api@1.0.21 - @thi.ng/geom-arc@0.2.32 - @thi.ng/geom-clip-line@1.0.19 - @thi.ng/geom-clip-poly@1.0.19 - @thi.ng/geom-closest-point@0.3.32 - @thi.ng/geom-hull@0.0.52 - @thi.ng/geom-io-obj@0.1.10 - @thi.ng/geom-isec@0.4.21 - @thi.ng/geom-isoline@0.1.50 - @thi.ng/geom-poly-utils@0.1.50 - @thi.ng/geom-resample@0.2.32 - @thi.ng/geom-splines@0.5.19 - @thi.ng/geom-subdiv-curve@0.1.49 - @thi.ng/geom-tessellate@0.2.32 - @thi.ng/geom-voronoi@0.1.50 - @thi.ng/geom@1.9.8 - @thi.ng/gp@0.1.20 - @thi.ng/grid-iterators@0.3.17 - @thi.ng/hdiff@0.1.0 - @thi.ng/hdom-canvas@3.0.1 - @thi.ng/hdom-components@4.0.1 - @thi.ng/hdom-mock@1.1.28 - @thi.ng/hdom@8.0.28 - @thi.ng/heaps@1.2.16 - @thi.ng/hiccup-canvas@1.0.1 - @thi.ng/hiccup-carbon-icons@1.0.40 - @thi.ng/hiccup-css@1.1.27 - @thi.ng/hiccup-markdown@1.2.16 - @thi.ng/hiccup-svg@3.4.23 - @thi.ng/hiccup@3.2.25 - @thi.ng/idgen@0.2.15 - @thi.ng/iges@1.1.34 - @thi.ng/imgui@0.2.21 - @thi.ng/interceptors@2.2.21 - @thi.ng/intervals@2.0.16 - @thi.ng/iterators@5.1.27 - @thi.ng/layout@0.1.13 - @thi.ng/leb128@1.0.21 - @thi.ng/lsys@0.2.47 - @thi.ng/malloc@4.1.17 - @thi.ng/math@1.7.11 - @thi.ng/matrices@0.6.19 - @thi.ng/memoize@2.0.13 - @thi.ng/mime@0.1.13 - @thi.ng/morton@2.0.15 - @thi.ng/parse@0.5.7 - @thi.ng/paths@4.0.8 - @thi.ng/pixel@0.3.2 - @thi.ng/pointfree-lang@1.4.5 - @thi.ng/pointfree@2.0.6 - @thi.ng/poisson@1.1.3 - @thi.ng/porter-duff@0.1.21 - @thi.ng/ramp@0.1.21 - @thi.ng/random@1.4.11 - @thi.ng/range-coder@1.0.47 - @thi.ng/resolve-map@4.1.26 - @thi.ng/rle-pack@2.1.18 - @thi.ng/router@2.0.23 - @thi.ng/rstream-csp@2.0.25 - @thi.ng/rstream-dot@1.1.32 - @thi.ng/rstream-gestures@2.0.24 - @thi.ng/rstream-graph@3.2.25 - @thi.ng/rstream-log-file@0.1.47 - @thi.ng/rstream-log@3.1.32 - @thi.ng/rstream-query@1.1.32 - @thi.ng/rstream@4.4.0 - @thi.ng/sax@1.1.27 - @thi.ng/scenegraph@0.1.22 - @thi.ng/seq@0.2.15 - @thi.ng/sexpr@0.2.18 - @thi.ng/shader-ast-glsl@0.1.30 - @thi.ng/shader-ast-js@0.4.26 - @thi.ng/shader-ast-stdlib@0.3.23 - @thi.ng/shader-ast@0.3.24 - @thi.ng/simd@0.2.4 - @thi.ng/soa@0.1.23 - @thi.ng/sparse@0.1.43 - @thi.ng/strings@1.8.10 - @thi.ng/system@0.2.12 - @thi.ng/text-canvas@0.2.16 - @thi.ng/transducers-binary@0.5.17 - @thi.ng/transducers-fsm@1.1.27 - @thi.ng/transducers-hdom@2.0.56 - @thi.ng/transducers-patch@0.1.18 - @thi.ng/transducers-stats@1.1.27 - @thi.ng/transducers@7.1.0 - @thi.ng/unionstruct@1.1.17 - @thi.ng/vector-pools@1.0.32 - @thi.ng/vectors@4.4.4 - @thi.ng/webgl-msdf@0.1.37 - @thi.ng/webgl-shadertoy@0.2.24 - @thi.ng/webgl@2.0.1 - @thi.ng/zipper@0.1.17 --- packages/adapt-dpi/CHANGELOG.md | 8 ++++ packages/adapt-dpi/package.json | 2 +- packages/adjacency/CHANGELOG.md | 8 ++++ packages/adjacency/package.json | 16 ++++---- packages/api/CHANGELOG.md | 8 ++++ packages/api/package.json | 2 +- packages/arrays/CHANGELOG.md | 8 ++++ packages/arrays/package.json | 10 ++--- packages/associative/CHANGELOG.md | 11 +++++ packages/associative/package.json | 14 +++---- packages/atom/CHANGELOG.md | 8 ++++ packages/atom/package.json | 8 ++-- packages/bench/CHANGELOG.md | 8 ++++ packages/bench/package.json | 2 +- packages/bencode/CHANGELOG.md | 8 ++++ packages/bencode/package.json | 14 +++---- packages/binary/CHANGELOG.md | 8 ++++ packages/binary/package.json | 2 +- packages/bitfield/CHANGELOG.md | 8 ++++ packages/bitfield/package.json | 8 ++-- packages/bitstream/CHANGELOG.md | 8 ++++ packages/bitstream/package.json | 2 +- packages/cache/CHANGELOG.md | 8 ++++ packages/cache/package.json | 8 ++-- packages/checks/CHANGELOG.md | 8 ++++ packages/checks/package.json | 2 +- packages/color/CHANGELOG.md | 8 ++++ packages/color/package.json | 18 ++++---- packages/compare/CHANGELOG.md | 8 ++++ packages/compare/package.json | 4 +- packages/compose/CHANGELOG.md | 8 ++++ packages/compose/package.json | 4 +- packages/csp/CHANGELOG.md | 8 ++++ packages/csp/package.json | 12 +++--- packages/dcons/CHANGELOG.md | 8 ++++ packages/dcons/package.json | 12 +++--- packages/defmulti/CHANGELOG.md | 8 ++++ packages/defmulti/package.json | 4 +- packages/dgraph-dot/CHANGELOG.md | 8 ++++ packages/dgraph-dot/package.json | 8 ++-- packages/dgraph/CHANGELOG.md | 8 ++++ packages/dgraph/package.json | 8 ++-- packages/diff/CHANGELOG.md | 8 ++++ packages/diff/package.json | 4 +- packages/dl-asset/CHANGELOG.md | 8 ++++ packages/dl-asset/package.json | 8 ++-- packages/dlogic/CHANGELOG.md | 8 ++++ packages/dlogic/package.json | 2 +- packages/dot/CHANGELOG.md | 8 ++++ packages/dot/package.json | 6 +-- packages/dsp-io-wav/CHANGELOG.md | 8 ++++ packages/dsp-io-wav/package.json | 10 ++--- packages/dsp/CHANGELOG.md | 8 ++++ packages/dsp/package.json | 10 ++--- packages/dynvar/CHANGELOG.md | 8 ++++ packages/dynvar/package.json | 4 +- packages/ecs/CHANGELOG.md | 8 ++++ packages/ecs/package.json | 16 ++++---- packages/fsm/CHANGELOG.md | 8 ++++ packages/fsm/package.json | 10 ++--- packages/geom-accel/CHANGELOG.md | 8 ++++ packages/geom-accel/package.json | 20 ++++----- packages/geom-api/CHANGELOG.md | 8 ++++ packages/geom-api/package.json | 6 +-- packages/geom-arc/CHANGELOG.md | 8 ++++ packages/geom-arc/package.json | 12 +++--- packages/geom-clip-line/CHANGELOG.md | 8 ++++ packages/geom-clip-line/package.json | 4 +- packages/geom-clip-poly/CHANGELOG.md | 8 ++++ packages/geom-clip-poly/package.json | 10 ++--- packages/geom-closest-point/CHANGELOG.md | 8 ++++ packages/geom-closest-point/package.json | 6 +-- packages/geom-hull/CHANGELOG.md | 8 ++++ packages/geom-hull/package.json | 6 +-- packages/geom-io-obj/CHANGELOG.md | 8 ++++ packages/geom-io-obj/package.json | 6 +-- packages/geom-isec/CHANGELOG.md | 8 ++++ packages/geom-isec/package.json | 12 +++--- packages/geom-isoline/CHANGELOG.md | 8 ++++ packages/geom-isoline/package.json | 6 +-- packages/geom-poly-utils/CHANGELOG.md | 8 ++++ packages/geom-poly-utils/package.json | 8 ++-- packages/geom-resample/CHANGELOG.md | 8 ++++ packages/geom-resample/package.json | 12 +++--- packages/geom-splines/CHANGELOG.md | 8 ++++ packages/geom-splines/package.json | 14 +++---- packages/geom-subdiv-curve/CHANGELOG.md | 8 ++++ packages/geom-subdiv-curve/package.json | 8 ++-- packages/geom-tessellate/CHANGELOG.md | 8 ++++ packages/geom-tessellate/package.json | 14 +++---- packages/geom-voronoi/CHANGELOG.md | 8 ++++ packages/geom-voronoi/package.json | 18 ++++---- packages/geom/CHANGELOG.md | 8 ++++ packages/geom/package.json | 50 +++++++++++------------ packages/gp/CHANGELOG.md | 8 ++++ packages/gp/package.json | 12 +++--- packages/grid-iterators/CHANGELOG.md | 8 ++++ packages/grid-iterators/package.json | 12 +++--- packages/hdiff/CHANGELOG.md | 11 +++++ packages/hdiff/package.json | 10 ++--- packages/hdom-canvas/CHANGELOG.md | 8 ++++ packages/hdom-canvas/package.json | 12 +++--- packages/hdom-components/CHANGELOG.md | 8 ++++ packages/hdom-components/package.json | 14 +++---- packages/hdom-mock/CHANGELOG.md | 8 ++++ packages/hdom-mock/package.json | 8 ++-- packages/hdom/CHANGELOG.md | 8 ++++ packages/hdom/package.json | 12 +++--- packages/heaps/CHANGELOG.md | 8 ++++ packages/heaps/package.json | 6 +-- packages/hiccup-canvas/CHANGELOG.md | 8 ++++ packages/hiccup-canvas/package.json | 12 +++--- packages/hiccup-carbon-icons/CHANGELOG.md | 8 ++++ packages/hiccup-carbon-icons/package.json | 4 +- packages/hiccup-css/CHANGELOG.md | 8 ++++ packages/hiccup-css/package.json | 8 ++-- packages/hiccup-markdown/CHANGELOG.md | 8 ++++ packages/hiccup-markdown/package.json | 18 ++++---- packages/hiccup-svg/CHANGELOG.md | 8 ++++ packages/hiccup-svg/package.json | 8 ++-- packages/hiccup/CHANGELOG.md | 8 ++++ packages/hiccup/package.json | 6 +-- packages/idgen/CHANGELOG.md | 8 ++++ packages/idgen/package.json | 4 +- packages/iges/CHANGELOG.md | 8 ++++ packages/iges/package.json | 14 +++---- packages/imgui/CHANGELOG.md | 8 ++++ packages/imgui/package.json | 22 +++++----- packages/interceptors/CHANGELOG.md | 8 ++++ packages/interceptors/package.json | 10 ++--- packages/intervals/CHANGELOG.md | 8 ++++ packages/intervals/package.json | 8 ++-- packages/iterators/CHANGELOG.md | 8 ++++ packages/iterators/package.json | 6 +-- packages/layout/CHANGELOG.md | 8 ++++ packages/layout/package.json | 6 +-- packages/leb128/CHANGELOG.md | 8 ++++ packages/leb128/package.json | 6 +-- packages/lsys/CHANGELOG.md | 8 ++++ packages/lsys/package.json | 14 +++---- packages/malloc/CHANGELOG.md | 8 ++++ packages/malloc/package.json | 8 ++-- packages/math/CHANGELOG.md | 8 ++++ packages/math/package.json | 2 +- packages/matrices/CHANGELOG.md | 8 ++++ packages/matrices/package.json | 10 ++--- packages/memoize/CHANGELOG.md | 8 ++++ packages/memoize/package.json | 4 +- packages/mime/CHANGELOG.md | 8 ++++ packages/mime/package.json | 4 +- packages/morton/CHANGELOG.md | 8 ++++ packages/morton/package.json | 8 ++-- packages/parse/CHANGELOG.md | 8 ++++ packages/parse/package.json | 10 ++--- packages/paths/CHANGELOG.md | 8 ++++ packages/paths/package.json | 4 +- packages/pixel/CHANGELOG.md | 8 ++++ packages/pixel/package.json | 10 ++--- packages/pointfree-lang/CHANGELOG.md | 8 ++++ packages/pointfree-lang/package.json | 8 ++-- packages/pointfree/CHANGELOG.md | 8 ++++ packages/pointfree/package.json | 8 ++-- packages/poisson/CHANGELOG.md | 8 ++++ packages/poisson/package.json | 12 +++--- packages/porter-duff/CHANGELOG.md | 8 ++++ packages/porter-duff/package.json | 6 +-- packages/ramp/CHANGELOG.md | 8 ++++ packages/ramp/package.json | 14 +++---- packages/random/CHANGELOG.md | 8 ++++ packages/random/package.json | 6 +-- packages/range-coder/CHANGELOG.md | 8 ++++ packages/range-coder/package.json | 6 +-- packages/resolve-map/CHANGELOG.md | 8 ++++ packages/resolve-map/package.json | 8 ++-- packages/rle-pack/CHANGELOG.md | 8 ++++ packages/rle-pack/package.json | 4 +- packages/router/CHANGELOG.md | 8 ++++ packages/router/package.json | 6 +-- packages/rstream-csp/CHANGELOG.md | 8 ++++ packages/rstream-csp/package.json | 6 +-- packages/rstream-dot/CHANGELOG.md | 8 ++++ packages/rstream-dot/package.json | 4 +- packages/rstream-gestures/CHANGELOG.md | 8 ++++ packages/rstream-gestures/package.json | 12 +++--- packages/rstream-graph/CHANGELOG.md | 8 ++++ packages/rstream-graph/package.json | 14 +++---- packages/rstream-log-file/CHANGELOG.md | 8 ++++ packages/rstream-log-file/package.json | 4 +- packages/rstream-log/CHANGELOG.md | 8 ++++ packages/rstream-log/package.json | 10 ++--- packages/rstream-query/CHANGELOG.md | 8 ++++ packages/rstream-query/package.json | 16 ++++---- packages/rstream/CHANGELOG.md | 13 ++++++ packages/rstream/package.json | 14 +++---- packages/sax/CHANGELOG.md | 8 ++++ packages/sax/package.json | 8 ++-- packages/scenegraph/CHANGELOG.md | 8 ++++ packages/scenegraph/package.json | 10 ++--- packages/seq/CHANGELOG.md | 8 ++++ packages/seq/package.json | 6 +-- packages/sexpr/CHANGELOG.md | 8 ++++ packages/sexpr/package.json | 8 ++-- packages/shader-ast-glsl/CHANGELOG.md | 8 ++++ packages/shader-ast-glsl/package.json | 8 ++-- packages/shader-ast-js/CHANGELOG.md | 8 ++++ packages/shader-ast-js/package.json | 16 ++++---- packages/shader-ast-stdlib/CHANGELOG.md | 8 ++++ packages/shader-ast-stdlib/package.json | 4 +- packages/shader-ast/CHANGELOG.md | 8 ++++ packages/shader-ast/package.json | 10 ++--- packages/simd/CHANGELOG.md | 8 ++++ packages/simd/package.json | 8 ++-- packages/soa/CHANGELOG.md | 8 ++++ packages/soa/package.json | 10 ++--- packages/sparse/CHANGELOG.md | 8 ++++ packages/sparse/package.json | 6 +-- packages/strings/CHANGELOG.md | 8 ++++ packages/strings/package.json | 6 +-- packages/system/CHANGELOG.md | 8 ++++ packages/system/package.json | 6 +-- packages/text-canvas/CHANGELOG.md | 8 ++++ packages/text-canvas/package.json | 14 +++---- packages/transducers-binary/CHANGELOG.md | 8 ++++ packages/transducers-binary/package.json | 10 ++--- packages/transducers-fsm/CHANGELOG.md | 8 ++++ packages/transducers-fsm/package.json | 6 +-- packages/transducers-hdom/CHANGELOG.md | 8 ++++ packages/transducers-hdom/package.json | 8 ++-- packages/transducers-patch/CHANGELOG.md | 8 ++++ packages/transducers-patch/package.json | 10 ++--- packages/transducers-stats/CHANGELOG.md | 8 ++++ packages/transducers-stats/package.json | 8 ++-- packages/transducers/CHANGELOG.md | 11 +++++ packages/transducers/package.json | 18 ++++---- packages/unionstruct/CHANGELOG.md | 8 ++++ packages/unionstruct/package.json | 2 +- packages/vector-pools/CHANGELOG.md | 8 ++++ packages/vector-pools/package.json | 14 +++---- packages/vectors/CHANGELOG.md | 8 ++++ packages/vectors/package.json | 16 ++++---- packages/webgl-msdf/CHANGELOG.md | 8 ++++ packages/webgl-msdf/package.json | 14 +++---- packages/webgl-shadertoy/CHANGELOG.md | 8 ++++ packages/webgl-shadertoy/package.json | 12 +++--- packages/webgl/CHANGELOG.md | 8 ++++ packages/webgl/package.json | 28 ++++++------- packages/zipper/CHANGELOG.md | 8 ++++ packages/zipper/package.json | 8 ++-- 248 files changed, 1589 insertions(+), 583 deletions(-) create mode 100644 packages/hdiff/CHANGELOG.md diff --git a/packages/adapt-dpi/CHANGELOG.md b/packages/adapt-dpi/CHANGELOG.md index dba9fe0852..65e564250c 100644 --- a/packages/adapt-dpi/CHANGELOG.md +++ b/packages/adapt-dpi/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/adapt-dpi@1.0.0...@thi.ng/adapt-dpi@1.0.1) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/adapt-dpi + + + + + # 1.0.0 (2020-06-07) diff --git a/packages/adapt-dpi/package.json b/packages/adapt-dpi/package.json index ebee1f5341..b7d623fa08 100644 --- a/packages/adapt-dpi/package.json +++ b/packages/adapt-dpi/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/adapt-dpi", - "version": "1.0.0", + "version": "1.0.1", "description": "HDPI canvas adapter / styling utility", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/adjacency/CHANGELOG.md b/packages/adjacency/CHANGELOG.md index bbe4ffc402..7bd37f5d7b 100644 --- a/packages/adjacency/CHANGELOG.md +++ b/packages/adjacency/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.48](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.47...@thi.ng/adjacency@0.1.48) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/adjacency + + + + + ## [0.1.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/adjacency@0.1.46...@thi.ng/adjacency@0.1.47) (2020-06-01) **Note:** Version bump only for package @thi.ng/adjacency diff --git a/packages/adjacency/package.json b/packages/adjacency/package.json index 11623fb018..f5cd7587a6 100644 --- a/packages/adjacency/package.json +++ b/packages/adjacency/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/adjacency", - "version": "0.1.47", + "version": "0.1.48", "description": "Sparse & bitwise adjacency matrices and related functions for directed & undirected graphs", "module": "./index.js", "main": "./lib/index.js", @@ -34,7 +34,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.8.0", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/vectors": "^4.4.4", "@types/mocha": "^7.0.2", "@types/node": "^14.0.1", "mocha": "^7.1.2", @@ -44,12 +44,12 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/binary": "^2.0.7", - "@thi.ng/bitfield": "^0.3.10", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/dcons": "^2.2.19", - "@thi.ng/sparse": "^0.1.42", + "@thi.ng/api": "^6.11.1", + "@thi.ng/binary": "^2.0.8", + "@thi.ng/bitfield": "^0.3.11", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/dcons": "^2.2.20", + "@thi.ng/sparse": "^0.1.43", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index 268c565db5..66626c1c3d 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.11.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.11.0...@thi.ng/api@6.11.1) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/api + + + + + # [6.11.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@6.10.5...@thi.ng/api@6.11.0) (2020-06-01) diff --git a/packages/api/package.json b/packages/api/package.json index c2ee4bcc6e..2f8f987da6 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/api", - "version": "6.11.0", + "version": "6.11.1", "description": "Common, generic types, interfaces & mixins", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/arrays/CHANGELOG.md b/packages/arrays/CHANGELOG.md index d59c65a9cc..051bdf19f6 100644 --- a/packages/arrays/CHANGELOG.md +++ b/packages/arrays/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.6.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/arrays@0.6.8...@thi.ng/arrays@0.6.9) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/arrays + + + + + ## [0.6.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/arrays@0.6.7...@thi.ng/arrays@0.6.8) (2020-06-01) **Note:** Version bump only for package @thi.ng/arrays diff --git a/packages/arrays/package.json b/packages/arrays/package.json index acb06cca54..1ed0f968b7 100644 --- a/packages/arrays/package.json +++ b/packages/arrays/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/arrays", - "version": "0.6.8", + "version": "0.6.9", "description": "Array / Arraylike utilities", "module": "./index.js", "main": "./lib/index.js", @@ -43,12 +43,12 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/compare": "^1.3.7", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/compare": "^1.3.8", "@thi.ng/equiv": "^1.0.23", "@thi.ng/errors": "^1.2.14", - "@thi.ng/random": "^1.4.10", + "@thi.ng/random": "^1.4.11", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/associative/CHANGELOG.md b/packages/associative/CHANGELOG.md index 5f71f58f50..3b39f0a483 100644 --- a/packages/associative/CHANGELOG.md +++ b/packages/associative/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@4.0.11...@thi.ng/associative@4.1.0) (2020-06-14) + + +### Features + +* **associative:** add Trie and tests ([84b6517](https://github.com/thi-ng/umbrella/commit/84b6517f8988e5032ac2c7614e62ebf4cf1c9e1b)) + + + + + ## [4.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@4.0.10...@thi.ng/associative@4.0.11) (2020-06-01) **Note:** Version bump only for package @thi.ng/associative diff --git a/packages/associative/package.json b/packages/associative/package.json index 2bc25e08dc..159151b6d9 100644 --- a/packages/associative/package.json +++ b/packages/associative/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/associative", - "version": "4.0.11", + "version": "4.1.0", "description": "Alternative Map and Set implementations with customizable equality semantics & supporting operations", "module": "./index.js", "main": "./lib/index.js", @@ -43,14 +43,14 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/binary": "^2.0.7", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/compare": "^1.3.7", - "@thi.ng/dcons": "^2.2.19", + "@thi.ng/api": "^6.11.1", + "@thi.ng/binary": "^2.0.8", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/compare": "^1.3.8", + "@thi.ng/dcons": "^2.2.20", "@thi.ng/equiv": "^1.0.23", "@thi.ng/errors": "^1.2.14", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/atom/CHANGELOG.md b/packages/atom/CHANGELOG.md index 5b0467f97f..536507b1a0 100644 --- a/packages/atom/CHANGELOG.md +++ b/packages/atom/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.1.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.1.9...@thi.ng/atom@4.1.10) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/atom + + + + + ## [4.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@4.1.8...@thi.ng/atom@4.1.9) (2020-06-01) **Note:** Version bump only for package @thi.ng/atom diff --git a/packages/atom/package.json b/packages/atom/package.json index fdc01fd913..72ff2c30f7 100644 --- a/packages/atom/package.json +++ b/packages/atom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/atom", - "version": "4.1.9", + "version": "4.1.10", "description": "Mutable wrappers for nested immutable values with optional undo/redo history and transaction support", "module": "./index.js", "main": "./lib/index.js", @@ -43,11 +43,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", "@thi.ng/equiv": "^1.0.23", "@thi.ng/errors": "^1.2.14", - "@thi.ng/paths": "^4.0.7", + "@thi.ng/paths": "^4.0.8", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/bench/CHANGELOG.md b/packages/bench/CHANGELOG.md index d5b05d5885..d5fec3a287 100644 --- a/packages/bench/CHANGELOG.md +++ b/packages/bench/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.12...@thi.ng/bench@2.0.13) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/bench + + + + + ## [2.0.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/bench@2.0.5...@thi.ng/bench@2.0.6) (2020-04-03) diff --git a/packages/bench/package.json b/packages/bench/package.json index fd1b43141c..bc3d6d599c 100644 --- a/packages/bench/package.json +++ b/packages/bench/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bench", - "version": "2.0.12", + "version": "2.0.13", "description": "Benchmarking utilities w/ optional statistics", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/bencode/CHANGELOG.md b/packages/bencode/CHANGELOG.md index a17e7965e5..883d2f1f6e 100644 --- a/packages/bencode/CHANGELOG.md +++ b/packages/bencode/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.26...@thi.ng/bencode@0.3.27) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/bencode + + + + + ## [0.3.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/bencode@0.3.25...@thi.ng/bencode@0.3.26) (2020-06-01) **Note:** Version bump only for package @thi.ng/bencode diff --git a/packages/bencode/package.json b/packages/bencode/package.json index eb8668b70e..9d347861d3 100644 --- a/packages/bencode/package.json +++ b/packages/bencode/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bencode", - "version": "0.3.26", + "version": "0.3.27", "description": "Bencode binary encoder / decoder with optional UTF8 encoding & floating point support", "module": "./index.js", "main": "./lib/index.js", @@ -43,13 +43,13 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/arrays": "^0.6.8", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/defmulti": "^1.2.16", + "@thi.ng/api": "^6.11.1", + "@thi.ng/arrays": "^0.6.9", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/defmulti": "^1.2.17", "@thi.ng/errors": "^1.2.14", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/transducers-binary": "^0.5.16", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/transducers-binary": "^0.5.17", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/binary/CHANGELOG.md b/packages/binary/CHANGELOG.md index 9dcbec5486..a93bc98226 100644 --- a/packages/binary/CHANGELOG.md +++ b/packages/binary/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@2.0.7...@thi.ng/binary@2.0.8) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/binary + + + + + # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/binary@1.3.2...@thi.ng/binary@2.0.0) (2020-03-06) diff --git a/packages/binary/package.json b/packages/binary/package.json index 0c485bda27..47a42206d4 100644 --- a/packages/binary/package.json +++ b/packages/binary/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/binary", - "version": "2.0.7", + "version": "2.0.8", "description": "95+ assorted binary / bitwise operations, conversions, utilities", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/bitfield/CHANGELOG.md b/packages/bitfield/CHANGELOG.md index 71c7d7d0c6..2e37462652 100644 --- a/packages/bitfield/CHANGELOG.md +++ b/packages/bitfield/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.10...@thi.ng/bitfield@0.3.11) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/bitfield + + + + + ## [0.3.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitfield@0.3.9...@thi.ng/bitfield@0.3.10) (2020-06-01) **Note:** Version bump only for package @thi.ng/bitfield diff --git a/packages/bitfield/package.json b/packages/bitfield/package.json index 83fd946f0d..a03517ddac 100644 --- a/packages/bitfield/package.json +++ b/packages/bitfield/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bitfield", - "version": "0.3.10", + "version": "0.3.11", "description": "1D / 2D bit field implementations", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/binary": "^2.0.7", - "@thi.ng/strings": "^1.8.9", + "@thi.ng/api": "^6.11.1", + "@thi.ng/binary": "^2.0.8", + "@thi.ng/strings": "^1.8.10", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/bitstream/CHANGELOG.md b/packages/bitstream/CHANGELOG.md index 6e2fb1f545..b403a03a9d 100644 --- a/packages/bitstream/CHANGELOG.md +++ b/packages/bitstream/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@1.1.17...@thi.ng/bitstream@1.1.18) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/bitstream + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@1.0.6...@thi.ng/bitstream@1.1.0) (2019-07-07) ### Features diff --git a/packages/bitstream/package.json b/packages/bitstream/package.json index 95206eab78..19cdd594e9 100644 --- a/packages/bitstream/package.json +++ b/packages/bitstream/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bitstream", - "version": "1.1.17", + "version": "1.1.18", "description": "ES6 iterator based read/write bit streams with support for variable word widths", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/cache/CHANGELOG.md b/packages/cache/CHANGELOG.md index eedfed38ac..6d260bb344 100644 --- a/packages/cache/CHANGELOG.md +++ b/packages/cache/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.46...@thi.ng/cache@1.0.47) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/cache + + + + + ## [1.0.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@1.0.45...@thi.ng/cache@1.0.46) (2020-06-01) **Note:** Version bump only for package @thi.ng/cache diff --git a/packages/cache/package.json b/packages/cache/package.json index ecc9b7a7d5..c82602e043 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/cache", - "version": "1.0.46", + "version": "1.0.47", "description": "In-memory cache implementations with ES6 Map-like API and different eviction strategies", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/dcons": "^2.2.19", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/dcons": "^2.2.20", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/checks/CHANGELOG.md b/packages/checks/CHANGELOG.md index af3f99480b..cf2a47f3e5 100644 --- a/packages/checks/CHANGELOG.md +++ b/packages/checks/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.7.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@2.7.0...@thi.ng/checks@2.7.1) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/checks + + + + + # [2.7.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@2.6.5...@thi.ng/checks@2.7.0) (2020-05-14) diff --git a/packages/checks/package.json b/packages/checks/package.json index 3e2b028f55..a5fe04e9a4 100644 --- a/packages/checks/package.json +++ b/packages/checks/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/checks", - "version": "2.7.0", + "version": "2.7.1", "description": "Collection of 50+ type, feature & value checks", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/color/CHANGELOG.md b/packages/color/CHANGELOG.md index 6d3d452192..f4847ca175 100644 --- a/packages/color/CHANGELOG.md +++ b/packages/color/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.2.2...@thi.ng/color@1.2.3) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/color + + + + + ## [1.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/color@1.2.1...@thi.ng/color@1.2.2) (2020-06-01) **Note:** Version bump only for package @thi.ng/color diff --git a/packages/color/package.json b/packages/color/package.json index 26f60133e2..b369580a72 100644 --- a/packages/color/package.json +++ b/packages/color/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/color", - "version": "1.2.2", + "version": "1.2.3", "description": "Array-based color ops, conversions, multi-color gradients, presets", "module": "./index.js", "main": "./lib/index.js", @@ -43,15 +43,15 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/compose": "^1.4.8", - "@thi.ng/defmulti": "^1.2.16", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/compose": "^1.4.9", + "@thi.ng/defmulti": "^1.2.17", "@thi.ng/errors": "^1.2.14", - "@thi.ng/math": "^1.7.10", - "@thi.ng/strings": "^1.8.9", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/math": "^1.7.11", + "@thi.ng/strings": "^1.8.10", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/compare/CHANGELOG.md b/packages/compare/CHANGELOG.md index c22142d4ca..78b4b24f4f 100644 --- a/packages/compare/CHANGELOG.md +++ b/packages/compare/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.3.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.3.7...@thi.ng/compare@1.3.8) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/compare + + + + + ## [1.3.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/compare@1.3.6...@thi.ng/compare@1.3.7) (2020-06-01) **Note:** Version bump only for package @thi.ng/compare diff --git a/packages/compare/package.json b/packages/compare/package.json index 4a9c6e415e..735e39f2f8 100644 --- a/packages/compare/package.json +++ b/packages/compare/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/compare", - "version": "1.3.7", + "version": "1.3.8", "description": "Comparators with support for types implementing the @thi.ng/api/ICompare interface", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", + "@thi.ng/api": "^6.11.1", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/compose/CHANGELOG.md b/packages/compose/CHANGELOG.md index c9236a3b88..f81e9f573b 100644 --- a/packages/compose/CHANGELOG.md +++ b/packages/compose/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.4.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.4.8...@thi.ng/compose@1.4.9) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/compose + + + + + ## [1.4.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/compose@1.4.7...@thi.ng/compose@1.4.8) (2020-06-01) **Note:** Version bump only for package @thi.ng/compose diff --git a/packages/compose/package.json b/packages/compose/package.json index fb1efe22ae..221f6be4c3 100644 --- a/packages/compose/package.json +++ b/packages/compose/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/compose", - "version": "1.4.8", + "version": "1.4.9", "description": "Optimized functional composition helpers", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", + "@thi.ng/api": "^6.11.1", "@thi.ng/errors": "^1.2.14", "tslib": "^1.12.0" }, diff --git a/packages/csp/CHANGELOG.md b/packages/csp/CHANGELOG.md index 2c72f559ad..28cd1b38a8 100644 --- a/packages/csp/CHANGELOG.md +++ b/packages/csp/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.26...@thi.ng/csp@1.1.27) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/csp + + + + + ## [1.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@1.1.25...@thi.ng/csp@1.1.26) (2020-06-01) **Note:** Version bump only for package @thi.ng/csp diff --git a/packages/csp/package.json b/packages/csp/package.json index 3b4c1d53cd..d0eeb3f503 100644 --- a/packages/csp/package.json +++ b/packages/csp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/csp", - "version": "1.1.26", + "version": "1.1.27", "description": "ES6 promise based CSP primitives & operations", "module": "./index.js", "main": "./lib/index.js", @@ -47,12 +47,12 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/arrays": "^0.6.8", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/dcons": "^2.2.19", + "@thi.ng/api": "^6.11.1", + "@thi.ng/arrays": "^0.6.9", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/dcons": "^2.2.20", "@thi.ng/errors": "^1.2.14", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/dcons/CHANGELOG.md b/packages/dcons/CHANGELOG.md index 3d67b29fbc..b199616d5a 100644 --- a/packages/dcons/CHANGELOG.md +++ b/packages/dcons/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.2.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.2.19...@thi.ng/dcons@2.2.20) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/dcons + + + + + ## [2.2.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@2.2.18...@thi.ng/dcons@2.2.19) (2020-06-01) **Note:** Version bump only for package @thi.ng/dcons diff --git a/packages/dcons/package.json b/packages/dcons/package.json index 36bca74a6c..24d8956eca 100644 --- a/packages/dcons/package.json +++ b/packages/dcons/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dcons", - "version": "2.2.19", + "version": "2.2.20", "description": "Double-linked list with comprehensive set of operations", "module": "./index.js", "main": "./lib/index.js", @@ -43,13 +43,13 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/compare": "^1.3.7", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/compare": "^1.3.8", "@thi.ng/equiv": "^1.0.23", "@thi.ng/errors": "^1.2.14", - "@thi.ng/random": "^1.4.10", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/random": "^1.4.11", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/defmulti/CHANGELOG.md b/packages/defmulti/CHANGELOG.md index d76eb52d3f..85d02718cb 100644 --- a/packages/defmulti/CHANGELOG.md +++ b/packages/defmulti/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.2.16...@thi.ng/defmulti@1.2.17) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/defmulti + + + + + ## [1.2.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/defmulti@1.2.15...@thi.ng/defmulti@1.2.16) (2020-06-01) **Note:** Version bump only for package @thi.ng/defmulti diff --git a/packages/defmulti/package.json b/packages/defmulti/package.json index 28cd46d3c2..3a624bf73f 100644 --- a/packages/defmulti/package.json +++ b/packages/defmulti/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/defmulti", - "version": "1.2.16", + "version": "1.2.17", "description": "Dynamic, extensible multiple dispatch via user supplied dispatch function.", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", + "@thi.ng/api": "^6.11.1", "@thi.ng/errors": "^1.2.14", "tslib": "^1.12.0" }, diff --git a/packages/dgraph-dot/CHANGELOG.md b/packages/dgraph-dot/CHANGELOG.md index 0b27c8fa4e..f68a41e951 100644 --- a/packages/dgraph-dot/CHANGELOG.md +++ b/packages/dgraph-dot/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.11...@thi.ng/dgraph-dot@0.1.12) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/dgraph-dot + + + + + ## [0.1.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph-dot@0.1.10...@thi.ng/dgraph-dot@0.1.11) (2020-06-01) **Note:** Version bump only for package @thi.ng/dgraph-dot diff --git a/packages/dgraph-dot/package.json b/packages/dgraph-dot/package.json index b2fb4527b1..451cfeaef5 100644 --- a/packages/dgraph-dot/package.json +++ b/packages/dgraph-dot/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dgraph-dot", - "version": "0.1.11", + "version": "0.1.12", "description": "Customizable Graphviz DOT serialization for @thi.ng/dgraph", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/dgraph": "^1.2.11", - "@thi.ng/dot": "^1.2.8" + "@thi.ng/api": "^6.11.1", + "@thi.ng/dgraph": "^1.2.12", + "@thi.ng/dot": "^1.2.9" }, "files": [ "*.js", diff --git a/packages/dgraph/CHANGELOG.md b/packages/dgraph/CHANGELOG.md index 50fac3bb29..1d040a1063 100644 --- a/packages/dgraph/CHANGELOG.md +++ b/packages/dgraph/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.2.11...@thi.ng/dgraph@1.2.12) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/dgraph + + + + + ## [1.2.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@1.2.10...@thi.ng/dgraph@1.2.11) (2020-06-01) **Note:** Version bump only for package @thi.ng/dgraph diff --git a/packages/dgraph/package.json b/packages/dgraph/package.json index 10e3ee8826..763fc4c5f3 100644 --- a/packages/dgraph/package.json +++ b/packages/dgraph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dgraph", - "version": "1.2.11", + "version": "1.2.12", "description": "Type-agnostic directed acyclic graph (DAG) & graph operations", "module": "./index.js", "main": "./lib/index.js", @@ -43,11 +43,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/associative": "^4.0.11", + "@thi.ng/api": "^6.11.1", + "@thi.ng/associative": "^4.1.0", "@thi.ng/equiv": "^1.0.23", "@thi.ng/errors": "^1.2.14", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/diff/CHANGELOG.md b/packages/diff/CHANGELOG.md index ce75f68685..a563547c13 100644 --- a/packages/diff/CHANGELOG.md +++ b/packages/diff/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.22...@thi.ng/diff@3.2.23) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/diff + + + + + ## [3.2.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@3.2.21...@thi.ng/diff@3.2.22) (2020-06-01) **Note:** Version bump only for package @thi.ng/diff diff --git a/packages/diff/package.json b/packages/diff/package.json index 8163fc2516..ed2fbce936 100644 --- a/packages/diff/package.json +++ b/packages/diff/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/diff", - "version": "3.2.22", + "version": "3.2.23", "description": "Customizable diff implementations for arrays (sequential) & objects (associative), with or without linear edit logs", "module": "./index.js", "main": "./lib/index.js", @@ -42,7 +42,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", + "@thi.ng/api": "^6.11.1", "@thi.ng/equiv": "^1.0.23", "tslib": "^1.12.0" }, diff --git a/packages/dl-asset/CHANGELOG.md b/packages/dl-asset/CHANGELOG.md index c4b8bf82e4..4165ced101 100644 --- a/packages/dl-asset/CHANGELOG.md +++ b/packages/dl-asset/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.3.10...@thi.ng/dl-asset@0.3.11) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/dl-asset + + + + + ## [0.3.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/dl-asset@0.3.9...@thi.ng/dl-asset@0.3.10) (2020-06-01) **Note:** Version bump only for package @thi.ng/dl-asset diff --git a/packages/dl-asset/package.json b/packages/dl-asset/package.json index f9abed42d3..c402bd03f8 100644 --- a/packages/dl-asset/package.json +++ b/packages/dl-asset/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dl-asset", - "version": "0.3.10", + "version": "0.3.11", "description": "Local asset download for web apps, with automatic MIME type detection", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/mime": "^0.1.12", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/mime": "^0.1.13", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/dlogic/CHANGELOG.md b/packages/dlogic/CHANGELOG.md index aab39f5142..62dc518199 100644 --- a/packages/dlogic/CHANGELOG.md +++ b/packages/dlogic/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@1.0.23...@thi.ng/dlogic@1.0.24) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/dlogic + + + + + # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/dlogic@0.1.2...@thi.ng/dlogic@1.0.0) (2019-01-21) ### Build System diff --git a/packages/dlogic/package.json b/packages/dlogic/package.json index 3f58723bc1..c653219753 100644 --- a/packages/dlogic/package.json +++ b/packages/dlogic/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dlogic", - "version": "1.0.23", + "version": "1.0.24", "description": "Assorted digital logic ops / constructs", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/dot/CHANGELOG.md b/packages/dot/CHANGELOG.md index 48c0a61503..577daa55b7 100644 --- a/packages/dot/CHANGELOG.md +++ b/packages/dot/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.2.8...@thi.ng/dot@1.2.9) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/dot + + + + + ## [1.2.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/dot@1.2.7...@thi.ng/dot@1.2.8) (2020-06-01) **Note:** Version bump only for package @thi.ng/dot diff --git a/packages/dot/package.json b/packages/dot/package.json index d5ad525d05..f658f21988 100644 --- a/packages/dot/package.json +++ b/packages/dot/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dot", - "version": "1.2.8", + "version": "1.2.9", "description": "Graphviz document abstraction & serialization to DOT format", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/dsp-io-wav/CHANGELOG.md b/packages/dsp-io-wav/CHANGELOG.md index 82b8274951..fec35a0b7b 100644 --- a/packages/dsp-io-wav/CHANGELOG.md +++ b/packages/dsp-io-wav/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.16...@thi.ng/dsp-io-wav@0.1.17) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/dsp-io-wav + + + + + ## [0.1.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp-io-wav@0.1.15...@thi.ng/dsp-io-wav@0.1.16) (2020-06-01) **Note:** Version bump only for package @thi.ng/dsp-io-wav diff --git a/packages/dsp-io-wav/package.json b/packages/dsp-io-wav/package.json index d04317cceb..562d0a1095 100644 --- a/packages/dsp-io-wav/package.json +++ b/packages/dsp-io-wav/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dsp-io-wav", - "version": "0.1.16", + "version": "0.1.17", "description": "WAV file format generation", "module": "./index.js", "main": "./lib/index.js", @@ -43,10 +43,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/binary": "^2.0.7", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/transducers-binary": "^0.5.16", + "@thi.ng/api": "^6.11.1", + "@thi.ng/binary": "^2.0.8", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/transducers-binary": "^0.5.17", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/dsp/CHANGELOG.md b/packages/dsp/CHANGELOG.md index 046a51e62a..b65dfab7e4 100644 --- a/packages/dsp/CHANGELOG.md +++ b/packages/dsp/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.0.18...@thi.ng/dsp@2.0.19) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/dsp + + + + + ## [2.0.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/dsp@2.0.17...@thi.ng/dsp@2.0.18) (2020-06-01) **Note:** Version bump only for package @thi.ng/dsp diff --git a/packages/dsp/package.json b/packages/dsp/package.json index 6a136b1a60..51b3ff0402 100644 --- a/packages/dsp/package.json +++ b/packages/dsp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dsp", - "version": "2.0.18", + "version": "2.0.19", "description": "Composable signal generators, oscillators, filters, FFT, spectrum, windowing & related DSP utils", "module": "./index.js", "main": "./lib/index.js", @@ -43,10 +43,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/math": "^1.7.10", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/math": "^1.7.11", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/dynvar/CHANGELOG.md b/packages/dynvar/CHANGELOG.md index ea80b6390a..6bc58b19df 100644 --- a/packages/dynvar/CHANGELOG.md +++ b/packages/dynvar/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/dynvar@0.1.14...@thi.ng/dynvar@0.1.15) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/dynvar + + + + + ## [0.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/dynvar@0.1.13...@thi.ng/dynvar@0.1.14) (2020-06-01) **Note:** Version bump only for package @thi.ng/dynvar diff --git a/packages/dynvar/package.json b/packages/dynvar/package.json index 11dfd5f637..80bc17f6b1 100644 --- a/packages/dynvar/package.json +++ b/packages/dynvar/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dynvar", - "version": "0.1.14", + "version": "0.1.15", "description": "Dynamically scoped variable bindings", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", + "@thi.ng/api": "^6.11.1", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/ecs/CHANGELOG.md b/packages/ecs/CHANGELOG.md index 766dbc14ad..15ee8ae477 100644 --- a/packages/ecs/CHANGELOG.md +++ b/packages/ecs/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.3.18...@thi.ng/ecs@0.3.19) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/ecs + + + + + ## [0.3.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/ecs@0.3.17...@thi.ng/ecs@0.3.18) (2020-06-01) **Note:** Version bump only for package @thi.ng/ecs diff --git a/packages/ecs/package.json b/packages/ecs/package.json index b560e71284..f0b787b646 100644 --- a/packages/ecs/package.json +++ b/packages/ecs/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/ecs", - "version": "0.3.18", + "version": "0.3.19", "description": "Entity Component System based around typed arrays & sparse sets", "module": "./index.js", "main": "./lib/index.js", @@ -44,13 +44,13 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/associative": "^4.0.11", - "@thi.ng/binary": "^2.0.7", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/dcons": "^2.2.19", - "@thi.ng/idgen": "^0.2.14", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/associative": "^4.1.0", + "@thi.ng/binary": "^2.0.8", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/dcons": "^2.2.20", + "@thi.ng/idgen": "^0.2.15", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/fsm/CHANGELOG.md b/packages/fsm/CHANGELOG.md index b1ae311f0b..a6fb3c8235 100644 --- a/packages/fsm/CHANGELOG.md +++ b/packages/fsm/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.4.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.12...@thi.ng/fsm@2.4.13) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/fsm + + + + + ## [2.4.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/fsm@2.4.11...@thi.ng/fsm@2.4.12) (2020-06-01) **Note:** Version bump only for package @thi.ng/fsm diff --git a/packages/fsm/package.json b/packages/fsm/package.json index fbd9a9e15b..77eb8de8db 100644 --- a/packages/fsm/package.json +++ b/packages/fsm/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/fsm", - "version": "2.4.12", + "version": "2.4.13", "description": "Composable primitives for building declarative, transducer based Finite-State Machines & matchers for arbitrary data streams", "module": "./index.js", "main": "./lib/index.js", @@ -43,12 +43,12 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/arrays": "^0.6.8", + "@thi.ng/api": "^6.11.1", + "@thi.ng/arrays": "^0.6.9", "@thi.ng/equiv": "^1.0.23", "@thi.ng/errors": "^1.2.14", - "@thi.ng/strings": "^1.8.9", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/strings": "^1.8.10", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-accel/CHANGELOG.md b/packages/geom-accel/CHANGELOG.md index b91a596cc7..0d977b78ca 100644 --- a/packages/geom-accel/CHANGELOG.md +++ b/packages/geom-accel/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.8...@thi.ng/geom-accel@2.1.9) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-accel + + + + + ## [2.1.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-accel@2.1.7...@thi.ng/geom-accel@2.1.8) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-accel diff --git a/packages/geom-accel/package.json b/packages/geom-accel/package.json index 5d03c627c4..a937acc0c2 100644 --- a/packages/geom-accel/package.json +++ b/packages/geom-accel/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-accel", - "version": "2.1.8", + "version": "2.1.9", "description": "n-D spatial indexing data structures with a shared ES6 Map/Set-like API", "module": "./index.js", "main": "./lib/index.js", @@ -44,16 +44,16 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/arrays": "^0.6.8", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/arrays": "^0.6.9", + "@thi.ng/checks": "^2.7.1", "@thi.ng/equiv": "^1.0.23", - "@thi.ng/geom-api": "^1.0.20", - "@thi.ng/geom-isec": "^0.4.20", - "@thi.ng/heaps": "^1.2.15", - "@thi.ng/math": "^1.7.10", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/geom-api": "^1.0.21", + "@thi.ng/geom-isec": "^0.4.21", + "@thi.ng/heaps": "^1.2.16", + "@thi.ng/math": "^1.7.11", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-api/CHANGELOG.md b/packages/geom-api/CHANGELOG.md index eb0e3f9fcd..2d61d4af2e 100644 --- a/packages/geom-api/CHANGELOG.md +++ b/packages/geom-api/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.20...@thi.ng/geom-api@1.0.21) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-api + + + + + ## [1.0.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-api@1.0.19...@thi.ng/geom-api@1.0.20) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-api diff --git a/packages/geom-api/package.json b/packages/geom-api/package.json index a2a61dc13b..830e0946b4 100644 --- a/packages/geom-api/package.json +++ b/packages/geom-api/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-api", - "version": "1.0.20", + "version": "1.0.21", "description": "Shared type & interface declarations for @thi.ng/geom packages", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/api": "^6.11.1", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-arc/CHANGELOG.md b/packages/geom-arc/CHANGELOG.md index fd992804ea..10977a62be 100644 --- a/packages/geom-arc/CHANGELOG.md +++ b/packages/geom-arc/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.2.31...@thi.ng/geom-arc@0.2.32) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-arc + + + + + ## [0.2.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-arc@0.2.30...@thi.ng/geom-arc@0.2.31) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-arc diff --git a/packages/geom-arc/package.json b/packages/geom-arc/package.json index f41215648c..f1870874ec 100644 --- a/packages/geom-arc/package.json +++ b/packages/geom-arc/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-arc", - "version": "0.2.31", + "version": "0.2.32", "description": "2D circular / elliptic arc operations", "module": "./index.js", "main": "./lib/index.js", @@ -43,11 +43,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/checks": "^2.7.0", - "@thi.ng/geom-api": "^1.0.20", - "@thi.ng/geom-resample": "^0.2.31", - "@thi.ng/math": "^1.7.10", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/geom-api": "^1.0.21", + "@thi.ng/geom-resample": "^0.2.32", + "@thi.ng/math": "^1.7.11", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-clip-line/CHANGELOG.md b/packages/geom-clip-line/CHANGELOG.md index 921709cd70..568c5682ef 100644 --- a/packages/geom-clip-line/CHANGELOG.md +++ b/packages/geom-clip-line/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.0.18...@thi.ng/geom-clip-line@1.0.19) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-clip-line + + + + + ## [1.0.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-line@1.0.17...@thi.ng/geom-clip-line@1.0.18) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-clip-line diff --git a/packages/geom-clip-line/package.json b/packages/geom-clip-line/package.json index d7fd1ab45d..8a28c1056a 100644 --- a/packages/geom-clip-line/package.json +++ b/packages/geom-clip-line/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-clip-line", - "version": "1.0.18", + "version": "1.0.19", "description": "2D line clipping (Liang-Barsky)", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-clip-poly/CHANGELOG.md b/packages/geom-clip-poly/CHANGELOG.md index 74b1052a19..0cae2fb790 100644 --- a/packages/geom-clip-poly/CHANGELOG.md +++ b/packages/geom-clip-poly/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.18...@thi.ng/geom-clip-poly@1.0.19) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-clip-poly + + + + + ## [1.0.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-clip-poly@1.0.17...@thi.ng/geom-clip-poly@1.0.18) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-clip-poly diff --git a/packages/geom-clip-poly/package.json b/packages/geom-clip-poly/package.json index 278bb1d55b..e1d4c252b9 100644 --- a/packages/geom-clip-poly/package.json +++ b/packages/geom-clip-poly/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-clip-poly", - "version": "1.0.18", + "version": "1.0.19", "description": "2D convex polygon clipping (Sutherland-Hodgeman)", "module": "./index.js", "main": "./lib/index.js", @@ -43,10 +43,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/geom-isec": "^0.4.20", - "@thi.ng/geom-poly-utils": "^0.1.49", - "@thi.ng/math": "^1.7.10", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/geom-isec": "^0.4.21", + "@thi.ng/geom-poly-utils": "^0.1.50", + "@thi.ng/math": "^1.7.11", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-closest-point/CHANGELOG.md b/packages/geom-closest-point/CHANGELOG.md index 883df0bc40..8325cd0d94 100644 --- a/packages/geom-closest-point/CHANGELOG.md +++ b/packages/geom-closest-point/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.3.31...@thi.ng/geom-closest-point@0.3.32) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-closest-point + + + + + ## [0.3.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-closest-point@0.3.30...@thi.ng/geom-closest-point@0.3.31) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-closest-point diff --git a/packages/geom-closest-point/package.json b/packages/geom-closest-point/package.json index 9d1231c533..360e1302dc 100644 --- a/packages/geom-closest-point/package.json +++ b/packages/geom-closest-point/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-closest-point", - "version": "0.3.31", + "version": "0.3.32", "description": "2D / 3D closest point / proximity helpers", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/math": "^1.7.10", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/math": "^1.7.11", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-hull/CHANGELOG.md b/packages/geom-hull/CHANGELOG.md index 9e3024585b..81c542fc77 100644 --- a/packages/geom-hull/CHANGELOG.md +++ b/packages/geom-hull/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.0.52](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.51...@thi.ng/geom-hull@0.0.52) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-hull + + + + + ## [0.0.51](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-hull@0.0.50...@thi.ng/geom-hull@0.0.51) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-hull diff --git a/packages/geom-hull/package.json b/packages/geom-hull/package.json index d437793af0..94b766b563 100644 --- a/packages/geom-hull/package.json +++ b/packages/geom-hull/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-hull", - "version": "0.0.51", + "version": "0.0.52", "description": "Fast 2D convex hull (Graham Scan)", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/math": "^1.7.10", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/math": "^1.7.11", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-io-obj/CHANGELOG.md b/packages/geom-io-obj/CHANGELOG.md index e6adbfcb25..67c49cedd4 100644 --- a/packages/geom-io-obj/CHANGELOG.md +++ b/packages/geom-io-obj/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.9...@thi.ng/geom-io-obj@0.1.10) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-io-obj + + + + + ## [0.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-io-obj@0.1.8...@thi.ng/geom-io-obj@0.1.9) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-io-obj diff --git a/packages/geom-io-obj/package.json b/packages/geom-io-obj/package.json index c30153e922..b5b2c8f7b3 100644 --- a/packages/geom-io-obj/package.json +++ b/packages/geom-io-obj/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-io-obj", - "version": "0.1.9", + "version": "0.1.10", "description": "Wavefront OBJ parser (& exporter soon)", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/vectors": "^4.4.3" + "@thi.ng/api": "^6.11.1", + "@thi.ng/vectors": "^4.4.4" }, "files": [ "*.js", diff --git a/packages/geom-isec/CHANGELOG.md b/packages/geom-isec/CHANGELOG.md index 47a0d43754..df83b97739 100644 --- a/packages/geom-isec/CHANGELOG.md +++ b/packages/geom-isec/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.4.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.4.20...@thi.ng/geom-isec@0.4.21) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-isec + + + + + ## [0.4.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isec@0.4.19...@thi.ng/geom-isec@0.4.20) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-isec diff --git a/packages/geom-isec/package.json b/packages/geom-isec/package.json index 6701f73bdb..6548d05820 100644 --- a/packages/geom-isec/package.json +++ b/packages/geom-isec/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-isec", - "version": "0.4.20", + "version": "0.4.21", "description": "2D/3D shape intersection checks", "module": "./index.js", "main": "./lib/index.js", @@ -43,11 +43,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/geom-api": "^1.0.20", - "@thi.ng/geom-closest-point": "^0.3.31", - "@thi.ng/math": "^1.7.10", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/api": "^6.11.1", + "@thi.ng/geom-api": "^1.0.21", + "@thi.ng/geom-closest-point": "^0.3.32", + "@thi.ng/math": "^1.7.11", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-isoline/CHANGELOG.md b/packages/geom-isoline/CHANGELOG.md index 079532cc82..2c2b864f2d 100644 --- a/packages/geom-isoline/CHANGELOG.md +++ b/packages/geom-isoline/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.50](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.49...@thi.ng/geom-isoline@0.1.50) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-isoline + + + + + ## [0.1.49](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-isoline@0.1.48...@thi.ng/geom-isoline@0.1.49) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-isoline diff --git a/packages/geom-isoline/package.json b/packages/geom-isoline/package.json index 664bd95b0c..addccf8dd4 100644 --- a/packages/geom-isoline/package.json +++ b/packages/geom-isoline/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-isoline", - "version": "0.1.49", + "version": "0.1.50", "description": "Fast 2D contour line extraction / generation", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-poly-utils/CHANGELOG.md b/packages/geom-poly-utils/CHANGELOG.md index be3dd2a511..aad329ef90 100644 --- a/packages/geom-poly-utils/CHANGELOG.md +++ b/packages/geom-poly-utils/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.50](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.49...@thi.ng/geom-poly-utils@0.1.50) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-poly-utils + + + + + ## [0.1.49](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-poly-utils@0.1.48...@thi.ng/geom-poly-utils@0.1.49) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-poly-utils diff --git a/packages/geom-poly-utils/package.json b/packages/geom-poly-utils/package.json index 63e0f1ccb2..86116c672a 100644 --- a/packages/geom-poly-utils/package.json +++ b/packages/geom-poly-utils/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-poly-utils", - "version": "0.1.49", + "version": "0.1.50", "description": "2D polygon / triangle analysis & processing utilities", "module": "./index.js", "main": "./lib/index.js", @@ -44,9 +44,9 @@ }, "dependencies": { "@thi.ng/errors": "^1.2.14", - "@thi.ng/geom-api": "^1.0.20", - "@thi.ng/math": "^1.7.10", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/geom-api": "^1.0.21", + "@thi.ng/math": "^1.7.11", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-resample/CHANGELOG.md b/packages/geom-resample/CHANGELOG.md index 836bf13f70..13070c64d0 100644 --- a/packages/geom-resample/CHANGELOG.md +++ b/packages/geom-resample/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.31...@thi.ng/geom-resample@0.2.32) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-resample + + + + + ## [0.2.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-resample@0.2.30...@thi.ng/geom-resample@0.2.31) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-resample diff --git a/packages/geom-resample/package.json b/packages/geom-resample/package.json index dadd95ba6b..46dcf50fb9 100644 --- a/packages/geom-resample/package.json +++ b/packages/geom-resample/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-resample", - "version": "0.2.31", + "version": "0.2.32", "description": "Customizable nD polyline interpolation, re-sampling, splitting & nearest point computation", "module": "./index.js", "main": "./lib/index.js", @@ -43,11 +43,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/checks": "^2.7.0", - "@thi.ng/geom-api": "^1.0.20", - "@thi.ng/geom-closest-point": "^0.3.31", - "@thi.ng/math": "^1.7.10", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/geom-api": "^1.0.21", + "@thi.ng/geom-closest-point": "^0.3.32", + "@thi.ng/math": "^1.7.11", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-splines/CHANGELOG.md b/packages/geom-splines/CHANGELOG.md index b12674e82b..5096f1c564 100644 --- a/packages/geom-splines/CHANGELOG.md +++ b/packages/geom-splines/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.5.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.18...@thi.ng/geom-splines@0.5.19) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-splines + + + + + ## [0.5.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-splines@0.5.17...@thi.ng/geom-splines@0.5.18) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-splines diff --git a/packages/geom-splines/package.json b/packages/geom-splines/package.json index cd75c5d500..3be15fad53 100644 --- a/packages/geom-splines/package.json +++ b/packages/geom-splines/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-splines", - "version": "0.5.18", + "version": "0.5.19", "description": "nD cubic & quadratic curve analysis, conversion, interpolation, splitting", "module": "./index.js", "main": "./lib/index.js", @@ -43,12 +43,12 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/checks": "^2.7.0", - "@thi.ng/geom-api": "^1.0.20", - "@thi.ng/geom-arc": "^0.2.31", - "@thi.ng/geom-resample": "^0.2.31", - "@thi.ng/math": "^1.7.10", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/geom-api": "^1.0.21", + "@thi.ng/geom-arc": "^0.2.32", + "@thi.ng/geom-resample": "^0.2.32", + "@thi.ng/math": "^1.7.11", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-subdiv-curve/CHANGELOG.md b/packages/geom-subdiv-curve/CHANGELOG.md index ab6cc0c395..f5d4e77f60 100644 --- a/packages/geom-subdiv-curve/CHANGELOG.md +++ b/packages/geom-subdiv-curve/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.49](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.48...@thi.ng/geom-subdiv-curve@0.1.49) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-subdiv-curve + + + + + ## [0.1.48](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-subdiv-curve@0.1.47...@thi.ng/geom-subdiv-curve@0.1.48) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-subdiv-curve diff --git a/packages/geom-subdiv-curve/package.json b/packages/geom-subdiv-curve/package.json index 2aa4e88cba..68acc95b67 100644 --- a/packages/geom-subdiv-curve/package.json +++ b/packages/geom-subdiv-curve/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-subdiv-curve", - "version": "0.1.48", + "version": "0.1.49", "description": "Freely customizable, iterative nD subdivision curves for open / closed geometries", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/geom-api": "^1.0.20", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/geom-api": "^1.0.21", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-tessellate/CHANGELOG.md b/packages/geom-tessellate/CHANGELOG.md index 82b7411dcf..8ade110f74 100644 --- a/packages/geom-tessellate/CHANGELOG.md +++ b/packages/geom-tessellate/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.31...@thi.ng/geom-tessellate@0.2.32) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-tessellate + + + + + ## [0.2.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-tessellate@0.2.30...@thi.ng/geom-tessellate@0.2.31) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-tessellate diff --git a/packages/geom-tessellate/package.json b/packages/geom-tessellate/package.json index 90822a0d93..dda8346f76 100644 --- a/packages/geom-tessellate/package.json +++ b/packages/geom-tessellate/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-tessellate", - "version": "0.2.31", + "version": "0.2.32", "description": "2D/3D convex polygon tessellators", "module": "./index.js", "main": "./lib/index.js", @@ -43,12 +43,12 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/checks": "^2.7.0", - "@thi.ng/geom-api": "^1.0.20", - "@thi.ng/geom-isec": "^0.4.20", - "@thi.ng/geom-poly-utils": "^0.1.49", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/geom-api": "^1.0.21", + "@thi.ng/geom-isec": "^0.4.21", + "@thi.ng/geom-poly-utils": "^0.1.50", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom-voronoi/CHANGELOG.md b/packages/geom-voronoi/CHANGELOG.md index 5e01b59a71..d75a9632c2 100644 --- a/packages/geom-voronoi/CHANGELOG.md +++ b/packages/geom-voronoi/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.50](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.1.49...@thi.ng/geom-voronoi@0.1.50) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom-voronoi + + + + + ## [0.1.49](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom-voronoi@0.1.48...@thi.ng/geom-voronoi@0.1.49) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom-voronoi diff --git a/packages/geom-voronoi/package.json b/packages/geom-voronoi/package.json index 28f3c30ffd..3541e460ce 100644 --- a/packages/geom-voronoi/package.json +++ b/packages/geom-voronoi/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom-voronoi", - "version": "0.1.49", + "version": "0.1.50", "description": "Fast, incremental 2D Delaunay & Voronoi mesh implementation", "module": "./index.js", "main": "./lib/index.js", @@ -43,15 +43,15 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/geom-clip-line": "^1.0.18", - "@thi.ng/geom-clip-poly": "^1.0.18", - "@thi.ng/geom-isec": "^0.4.20", - "@thi.ng/geom-poly-utils": "^0.1.49", - "@thi.ng/math": "^1.7.10", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/geom-clip-line": "^1.0.19", + "@thi.ng/geom-clip-poly": "^1.0.19", + "@thi.ng/geom-isec": "^0.4.21", + "@thi.ng/geom-poly-utils": "^0.1.50", + "@thi.ng/math": "^1.7.11", "@thi.ng/quad-edge": "^0.2.16", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/geom/CHANGELOG.md b/packages/geom/CHANGELOG.md index 8cced523ef..098fe41aae 100644 --- a/packages/geom/CHANGELOG.md +++ b/packages/geom/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.9.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.9.7...@thi.ng/geom@1.9.8) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/geom + + + + + ## [1.9.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/geom@1.9.6...@thi.ng/geom@1.9.7) (2020-06-01) **Note:** Version bump only for package @thi.ng/geom diff --git a/packages/geom/package.json b/packages/geom/package.json index 3d789d9f03..62a4874729 100644 --- a/packages/geom/package.json +++ b/packages/geom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/geom", - "version": "1.9.7", + "version": "1.9.8", "description": "Functional, polymorphic API for 2D geometry types & SVG generation", "module": "./index.js", "main": "./lib/index.js", @@ -43,32 +43,32 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/arrays": "^0.6.8", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/compose": "^1.4.8", - "@thi.ng/defmulti": "^1.2.16", + "@thi.ng/api": "^6.11.1", + "@thi.ng/arrays": "^0.6.9", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/compose": "^1.4.9", + "@thi.ng/defmulti": "^1.2.17", "@thi.ng/equiv": "^1.0.23", "@thi.ng/errors": "^1.2.14", - "@thi.ng/geom-api": "^1.0.20", - "@thi.ng/geom-arc": "^0.2.31", - "@thi.ng/geom-clip-line": "^1.0.18", - "@thi.ng/geom-clip-poly": "^1.0.18", - "@thi.ng/geom-closest-point": "^0.3.31", - "@thi.ng/geom-hull": "^0.0.51", - "@thi.ng/geom-isec": "^0.4.20", - "@thi.ng/geom-poly-utils": "^0.1.49", - "@thi.ng/geom-resample": "^0.2.31", - "@thi.ng/geom-splines": "^0.5.18", - "@thi.ng/geom-subdiv-curve": "^0.1.48", - "@thi.ng/geom-tessellate": "^0.2.31", - "@thi.ng/hiccup": "^3.2.24", - "@thi.ng/hiccup-svg": "^3.4.22", - "@thi.ng/math": "^1.7.10", - "@thi.ng/matrices": "^0.6.18", - "@thi.ng/random": "^1.4.10", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/geom-api": "^1.0.21", + "@thi.ng/geom-arc": "^0.2.32", + "@thi.ng/geom-clip-line": "^1.0.19", + "@thi.ng/geom-clip-poly": "^1.0.19", + "@thi.ng/geom-closest-point": "^0.3.32", + "@thi.ng/geom-hull": "^0.0.52", + "@thi.ng/geom-isec": "^0.4.21", + "@thi.ng/geom-poly-utils": "^0.1.50", + "@thi.ng/geom-resample": "^0.2.32", + "@thi.ng/geom-splines": "^0.5.19", + "@thi.ng/geom-subdiv-curve": "^0.1.49", + "@thi.ng/geom-tessellate": "^0.2.32", + "@thi.ng/hiccup": "^3.2.25", + "@thi.ng/hiccup-svg": "^3.4.23", + "@thi.ng/math": "^1.7.11", + "@thi.ng/matrices": "^0.6.19", + "@thi.ng/random": "^1.4.11", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/gp/CHANGELOG.md b/packages/gp/CHANGELOG.md index da5d646682..129f7fda3b 100644 --- a/packages/gp/CHANGELOG.md +++ b/packages/gp/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.19...@thi.ng/gp@0.1.20) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/gp + + + + + ## [0.1.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/gp@0.1.18...@thi.ng/gp@0.1.19) (2020-06-01) **Note:** Version bump only for package @thi.ng/gp diff --git a/packages/gp/package.json b/packages/gp/package.json index ce52fe674e..e4118d1094 100644 --- a/packages/gp/package.json +++ b/packages/gp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/gp", - "version": "0.1.19", + "version": "0.1.20", "description": "Genetic programming helpers & strategies (tree based & multi-expression programming)", "module": "./index.js", "main": "./lib/index.js", @@ -43,11 +43,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/math": "^1.7.10", - "@thi.ng/random": "^1.4.10", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/zipper": "^0.1.16", + "@thi.ng/api": "^6.11.1", + "@thi.ng/math": "^1.7.11", + "@thi.ng/random": "^1.4.11", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/zipper": "^0.1.17", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/grid-iterators/CHANGELOG.md b/packages/grid-iterators/CHANGELOG.md index 9e0d5f7322..cd079a1663 100644 --- a/packages/grid-iterators/CHANGELOG.md +++ b/packages/grid-iterators/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.3.16...@thi.ng/grid-iterators@0.3.17) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/grid-iterators + + + + + ## [0.3.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/grid-iterators@0.3.15...@thi.ng/grid-iterators@0.3.16) (2020-06-01) **Note:** Version bump only for package @thi.ng/grid-iterators diff --git a/packages/grid-iterators/package.json b/packages/grid-iterators/package.json index 46193f42db..8deaded6dd 100644 --- a/packages/grid-iterators/package.json +++ b/packages/grid-iterators/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/grid-iterators", - "version": "0.3.16", + "version": "0.3.17", "description": "2D grid iterators w/ multiple orderings", "module": "./index.js", "main": "./lib/index.js", @@ -44,11 +44,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/arrays": "^0.6.8", - "@thi.ng/binary": "^2.0.7", - "@thi.ng/morton": "^2.0.14", - "@thi.ng/random": "^1.4.10", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/arrays": "^0.6.9", + "@thi.ng/binary": "^2.0.8", + "@thi.ng/morton": "^2.0.15", + "@thi.ng/random": "^1.4.11", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/hdiff/CHANGELOG.md b/packages/hdiff/CHANGELOG.md new file mode 100644 index 0000000000..ebe6c94e55 --- /dev/null +++ b/packages/hdiff/CHANGELOG.md @@ -0,0 +1,11 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# 0.1.0 (2020-06-14) + + +### Features + +* **hdiff:** import as new pkg ([40e1075](https://github.com/thi-ng/umbrella/commit/40e10755ca520d5d850da98d07b40f9339310318)) diff --git a/packages/hdiff/package.json b/packages/hdiff/package.json index 09d2b88256..175a2efc2b 100644 --- a/packages/hdiff/package.json +++ b/packages/hdiff/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdiff", - "version": "0.0.1", + "version": "0.1.0", "description": "String diffing w/ hiccup output for further processing, e.g. with @thi.ng/hdom, @thi.ng/hiccup. Includes CLI util to generate HTML, with theme support and code folding", "module": "./index.js", "main": "./lib/index.js", @@ -45,10 +45,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/diff": "^3.2.22", - "@thi.ng/hiccup": "^3.2.24", - "@thi.ng/hiccup-css": "^1.1.26", - "@thi.ng/strings": "^1.8.9" + "@thi.ng/diff": "^3.2.23", + "@thi.ng/hiccup": "^3.2.25", + "@thi.ng/hiccup-css": "^1.1.27", + "@thi.ng/strings": "^1.8.10" }, "files": [ "*.js", diff --git a/packages/hdom-canvas/CHANGELOG.md b/packages/hdom-canvas/CHANGELOG.md index a235dfb7d0..7cfdabeaa7 100644 --- a/packages/hdom-canvas/CHANGELOG.md +++ b/packages/hdom-canvas/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@3.0.0...@thi.ng/hdom-canvas@3.0.1) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/hdom-canvas + + + + + # [3.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-canvas@2.4.26...@thi.ng/hdom-canvas@3.0.0) (2020-06-05) diff --git a/packages/hdom-canvas/package.json b/packages/hdom-canvas/package.json index 95adaacecd..bc7a781d62 100644 --- a/packages/hdom-canvas/package.json +++ b/packages/hdom-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom-canvas", - "version": "3.0.0", + "version": "3.0.1", "description": "@thi.ng/hdom component wrapper for declarative canvas scenegraphs", "module": "./index.js", "main": "./lib/index.js", @@ -43,11 +43,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/diff": "^3.2.22", - "@thi.ng/hdom": "^8.0.27", - "@thi.ng/hiccup-canvas": "^1.0.0" + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/diff": "^3.2.23", + "@thi.ng/hdom": "^8.0.28", + "@thi.ng/hiccup-canvas": "^1.0.1" }, "files": [ "*.js", diff --git a/packages/hdom-components/CHANGELOG.md b/packages/hdom-components/CHANGELOG.md index c15ca0e111..00be6aacf1 100644 --- a/packages/hdom-components/CHANGELOG.md +++ b/packages/hdom-components/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@4.0.0...@thi.ng/hdom-components@4.0.1) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/hdom-components + + + + + # [4.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@3.2.12...@thi.ng/hdom-components@4.0.0) (2020-06-07) diff --git a/packages/hdom-components/package.json b/packages/hdom-components/package.json index 683ef1c053..27a718f3a4 100644 --- a/packages/hdom-components/package.json +++ b/packages/hdom-components/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom-components", - "version": "4.0.0", + "version": "4.0.1", "description": "Raw, skinnable UI & SVG components for @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -43,12 +43,12 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/adapt-dpi": "^1.0.0", - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/math": "^1.7.10", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/transducers-stats": "^1.1.26", + "@thi.ng/adapt-dpi": "^1.0.1", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/math": "^1.7.11", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/transducers-stats": "^1.1.27", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/hdom-mock/CHANGELOG.md b/packages/hdom-mock/CHANGELOG.md index 8cc87f4c34..6ed201f48b 100644 --- a/packages/hdom-mock/CHANGELOG.md +++ b/packages/hdom-mock/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.1.27...@thi.ng/hdom-mock@1.1.28) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/hdom-mock + + + + + ## [1.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-mock@1.1.26...@thi.ng/hdom-mock@1.1.27) (2020-06-01) **Note:** Version bump only for package @thi.ng/hdom-mock diff --git a/packages/hdom-mock/package.json b/packages/hdom-mock/package.json index a803c3425c..bf38ce0ae2 100644 --- a/packages/hdom-mock/package.json +++ b/packages/hdom-mock/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom-mock", - "version": "1.1.27", + "version": "1.1.28", "description": "Mock base implementation for @thi.ng/hdom API", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/hdom": "^8.0.27", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/hdom": "^8.0.28", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/hdom/CHANGELOG.md b/packages/hdom/CHANGELOG.md index bcca8cb3c9..39619d1536 100644 --- a/packages/hdom/CHANGELOG.md +++ b/packages/hdom/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.0.28](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.0.27...@thi.ng/hdom@8.0.28) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/hdom + + + + + ## [8.0.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@8.0.26...@thi.ng/hdom@8.0.27) (2020-06-01) **Note:** Version bump only for package @thi.ng/hdom diff --git a/packages/hdom/package.json b/packages/hdom/package.json index 72e0083e81..0991aa3e0e 100644 --- a/packages/hdom/package.json +++ b/packages/hdom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom", - "version": "8.0.27", + "version": "8.0.28", "description": "Lightweight vanilla ES6 UI component trees with customizable branch-local behaviors", "module": "./index.js", "main": "./lib/index.js", @@ -34,7 +34,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.8.0", - "@thi.ng/atom": "^4.1.9", + "@thi.ng/atom": "^4.1.10", "@types/mocha": "^7.0.2", "@types/node": "^14.0.1", "mocha": "^7.1.2", @@ -44,12 +44,12 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/diff": "^3.2.22", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/diff": "^3.2.23", "@thi.ng/equiv": "^1.0.23", "@thi.ng/errors": "^1.2.14", - "@thi.ng/hiccup": "^3.2.24", + "@thi.ng/hiccup": "^3.2.25", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/heaps/CHANGELOG.md b/packages/heaps/CHANGELOG.md index d87e761964..438617fb4b 100644 --- a/packages/heaps/CHANGELOG.md +++ b/packages/heaps/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.2.15...@thi.ng/heaps@1.2.16) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/heaps + + + + + ## [1.2.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@1.2.14...@thi.ng/heaps@1.2.15) (2020-06-01) **Note:** Version bump only for package @thi.ng/heaps diff --git a/packages/heaps/package.json b/packages/heaps/package.json index 3b8a6f23f9..af6ab3da9f 100644 --- a/packages/heaps/package.json +++ b/packages/heaps/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/heaps", - "version": "1.2.15", + "version": "1.2.16", "description": "Various heap implementations for arbitrary values and with customizable ordering", "module": "./index.js", "main": "./lib/index.js", @@ -44,8 +44,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/compare": "^1.3.7", + "@thi.ng/api": "^6.11.1", + "@thi.ng/compare": "^1.3.8", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/hiccup-canvas/CHANGELOG.md b/packages/hiccup-canvas/CHANGELOG.md index ad5d42b5aa..59a2a7b0d8 100644 --- a/packages/hiccup-canvas/CHANGELOG.md +++ b/packages/hiccup-canvas/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-canvas@1.0.0...@thi.ng/hiccup-canvas@1.0.1) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/hiccup-canvas + + + + + # 1.0.0 (2020-06-05) diff --git a/packages/hiccup-canvas/package.json b/packages/hiccup-canvas/package.json index bd3f29c7a6..f5e8ef82c0 100644 --- a/packages/hiccup-canvas/package.json +++ b/packages/hiccup-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-canvas", - "version": "1.0.0", + "version": "1.0.1", "description": "Hiccup shape tree renderer for vanilla Canvas 2D contexts", "module": "./index.js", "main": "./lib/index.js", @@ -42,11 +42,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/color": "^1.2.2", - "@thi.ng/math": "^1.7.10", - "@thi.ng/vectors": "^4.4.3" + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/color": "^1.2.3", + "@thi.ng/math": "^1.7.11", + "@thi.ng/vectors": "^4.4.4" }, "files": [ "*.js", diff --git a/packages/hiccup-carbon-icons/CHANGELOG.md b/packages/hiccup-carbon-icons/CHANGELOG.md index 0ce98298cd..7704833f5e 100644 --- a/packages/hiccup-carbon-icons/CHANGELOG.md +++ b/packages/hiccup-carbon-icons/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.40](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@1.0.39...@thi.ng/hiccup-carbon-icons@1.0.40) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/hiccup-carbon-icons + + + + + ## [1.0.39](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-carbon-icons@1.0.38...@thi.ng/hiccup-carbon-icons@1.0.39) (2020-06-01) **Note:** Version bump only for package @thi.ng/hiccup-carbon-icons diff --git a/packages/hiccup-carbon-icons/package.json b/packages/hiccup-carbon-icons/package.json index 3063d9fff8..af00fd2a8f 100644 --- a/packages/hiccup-carbon-icons/package.json +++ b/packages/hiccup-carbon-icons/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-carbon-icons", - "version": "1.0.39", + "version": "1.0.40", "description": "Full set of IBM's Carbon icons in hiccup format", "module": "./index.js", "main": "./lib/index.js", @@ -34,7 +34,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.8.0", - "@thi.ng/hiccup": "^3.2.24", + "@thi.ng/hiccup": "^3.2.25", "@types/mocha": "^7.0.2", "@types/node": "^14.0.1", "mocha": "^7.1.2", diff --git a/packages/hiccup-css/CHANGELOG.md b/packages/hiccup-css/CHANGELOG.md index 4659253cf1..2c47804dc6 100644 --- a/packages/hiccup-css/CHANGELOG.md +++ b/packages/hiccup-css/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.26...@thi.ng/hiccup-css@1.1.27) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/hiccup-css + + + + + ## [1.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@1.1.25...@thi.ng/hiccup-css@1.1.26) (2020-06-01) **Note:** Version bump only for package @thi.ng/hiccup-css diff --git a/packages/hiccup-css/package.json b/packages/hiccup-css/package.json index ca63f85787..14fae75484 100644 --- a/packages/hiccup-css/package.json +++ b/packages/hiccup-css/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-css", - "version": "1.1.26", + "version": "1.1.27", "description": "CSS from nested JS data structures", "module": "./index.js", "main": "./lib/index.js", @@ -43,10 +43,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", "@thi.ng/errors": "^1.2.14", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/hiccup-markdown/CHANGELOG.md b/packages/hiccup-markdown/CHANGELOG.md index d4085a5021..0b5d64fc7a 100644 --- a/packages/hiccup-markdown/CHANGELOG.md +++ b/packages/hiccup-markdown/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.2.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.15...@thi.ng/hiccup-markdown@1.2.16) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/hiccup-markdown + + + + + ## [1.2.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-markdown@1.2.14...@thi.ng/hiccup-markdown@1.2.15) (2020-06-01) **Note:** Version bump only for package @thi.ng/hiccup-markdown diff --git a/packages/hiccup-markdown/package.json b/packages/hiccup-markdown/package.json index cc3c252698..63035021fe 100644 --- a/packages/hiccup-markdown/package.json +++ b/packages/hiccup-markdown/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-markdown", - "version": "1.2.15", + "version": "1.2.16", "description": "Markdown parser & serializer from/to Hiccup format", "module": "./index.js", "main": "./lib/index.js", @@ -43,15 +43,15 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/arrays": "^0.6.8", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/defmulti": "^1.2.16", + "@thi.ng/arrays": "^0.6.9", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/defmulti": "^1.2.17", "@thi.ng/errors": "^1.2.14", - "@thi.ng/fsm": "^2.4.12", - "@thi.ng/hiccup": "^3.2.24", - "@thi.ng/strings": "^1.8.9", - "@thi.ng/text-canvas": "^0.2.15", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/fsm": "^2.4.13", + "@thi.ng/hiccup": "^3.2.25", + "@thi.ng/strings": "^1.8.10", + "@thi.ng/text-canvas": "^0.2.16", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/hiccup-svg/CHANGELOG.md b/packages/hiccup-svg/CHANGELOG.md index 03ee1d1612..01ceb1b6ca 100644 --- a/packages/hiccup-svg/CHANGELOG.md +++ b/packages/hiccup-svg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.4.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.4.22...@thi.ng/hiccup-svg@3.4.23) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/hiccup-svg + + + + + ## [3.4.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@3.4.21...@thi.ng/hiccup-svg@3.4.22) (2020-06-01) **Note:** Version bump only for package @thi.ng/hiccup-svg diff --git a/packages/hiccup-svg/package.json b/packages/hiccup-svg/package.json index 7ae941a7cf..6a3d988fa9 100644 --- a/packages/hiccup-svg/package.json +++ b/packages/hiccup-svg/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-svg", - "version": "3.4.22", + "version": "3.4.23", "description": "SVG element functions for @thi.ng/hiccup & @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/checks": "^2.7.0", - "@thi.ng/color": "^1.2.2", - "@thi.ng/hiccup": "^3.2.24", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/color": "^1.2.3", + "@thi.ng/hiccup": "^3.2.25", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/hiccup/CHANGELOG.md b/packages/hiccup/CHANGELOG.md index 8065af579e..e603650c21 100644 --- a/packages/hiccup/CHANGELOG.md +++ b/packages/hiccup/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.2.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.2.24...@thi.ng/hiccup@3.2.25) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/hiccup + + + + + ## [3.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@3.2.23...@thi.ng/hiccup@3.2.24) (2020-06-01) **Note:** Version bump only for package @thi.ng/hiccup diff --git a/packages/hiccup/package.json b/packages/hiccup/package.json index 67ce7c3fd9..96830d66fd 100644 --- a/packages/hiccup/package.json +++ b/packages/hiccup/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup", - "version": "3.2.24", + "version": "3.2.25", "description": "HTML/SVG/XML serialization of nested data structures, iterables & closures", "module": "./index.js", "main": "./lib/index.js", @@ -34,7 +34,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.8.0", - "@thi.ng/atom": "^4.1.9", + "@thi.ng/atom": "^4.1.10", "@types/mocha": "^7.0.2", "@types/node": "^14.0.1", "mocha": "^7.1.2", @@ -44,7 +44,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/checks": "^2.7.0", + "@thi.ng/checks": "^2.7.1", "@thi.ng/errors": "^1.2.14", "tslib": "^1.12.0" }, diff --git a/packages/idgen/CHANGELOG.md b/packages/idgen/CHANGELOG.md index 131d8b95f2..83ee678cd7 100644 --- a/packages/idgen/CHANGELOG.md +++ b/packages/idgen/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.2.14...@thi.ng/idgen@0.2.15) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/idgen + + + + + ## [0.2.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/idgen@0.2.13...@thi.ng/idgen@0.2.14) (2020-06-01) **Note:** Version bump only for package @thi.ng/idgen diff --git a/packages/idgen/package.json b/packages/idgen/package.json index c2d1be1d38..effc9a5bff 100644 --- a/packages/idgen/package.json +++ b/packages/idgen/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/idgen", - "version": "0.2.14", + "version": "0.2.15", "description": "Generator of opaque numeric identifiers with optional support for ID versioning and efficient re-use", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", + "@thi.ng/api": "^6.11.1", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/iges/CHANGELOG.md b/packages/iges/CHANGELOG.md index 8320486af3..26a75a2b9f 100644 --- a/packages/iges/CHANGELOG.md +++ b/packages/iges/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.34](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.33...@thi.ng/iges@1.1.34) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/iges + + + + + ## [1.1.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/iges@1.1.32...@thi.ng/iges@1.1.33) (2020-06-01) **Note:** Version bump only for package @thi.ng/iges diff --git a/packages/iges/package.json b/packages/iges/package.json index ca49d4cd58..68a8387cd8 100644 --- a/packages/iges/package.json +++ b/packages/iges/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/iges", - "version": "1.1.33", + "version": "1.1.34", "description": "IGES 5.3 serializer for (currently only) polygonal geometry, both open & closed", "module": "./index.js", "main": "./lib/index.js", @@ -43,12 +43,12 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/defmulti": "^1.2.16", - "@thi.ng/strings": "^1.8.9", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/defmulti": "^1.2.17", + "@thi.ng/strings": "^1.8.10", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/imgui/CHANGELOG.md b/packages/imgui/CHANGELOG.md index 1c88144c4b..e104ee50ed 100644 --- a/packages/imgui/CHANGELOG.md +++ b/packages/imgui/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.20...@thi.ng/imgui@0.2.21) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/imgui + + + + + ## [0.2.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/imgui@0.2.19...@thi.ng/imgui@0.2.20) (2020-06-01) **Note:** Version bump only for package @thi.ng/imgui diff --git a/packages/imgui/package.json b/packages/imgui/package.json index e45dc1e6f6..71d7182d68 100644 --- a/packages/imgui/package.json +++ b/packages/imgui/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/imgui", - "version": "0.2.20", + "version": "0.2.21", "description": "Immediate mode GUI with flexible state handling & data only shape output", "module": "./index.js", "main": "./lib/index.js", @@ -43,16 +43,16 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/geom": "^1.9.7", - "@thi.ng/geom-api": "^1.0.20", - "@thi.ng/geom-isec": "^0.4.20", - "@thi.ng/geom-tessellate": "^0.2.31", - "@thi.ng/layout": "^0.1.12", - "@thi.ng/math": "^1.7.10", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/geom": "^1.9.8", + "@thi.ng/geom-api": "^1.0.21", + "@thi.ng/geom-isec": "^0.4.21", + "@thi.ng/geom-tessellate": "^0.2.32", + "@thi.ng/layout": "^0.1.13", + "@thi.ng/math": "^1.7.11", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/interceptors/CHANGELOG.md b/packages/interceptors/CHANGELOG.md index 149cbafd2d..da0d6cadb1 100644 --- a/packages/interceptors/CHANGELOG.md +++ b/packages/interceptors/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.2.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.2.20...@thi.ng/interceptors@2.2.21) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/interceptors + + + + + ## [2.2.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@2.2.19...@thi.ng/interceptors@2.2.20) (2020-06-01) **Note:** Version bump only for package @thi.ng/interceptors diff --git a/packages/interceptors/package.json b/packages/interceptors/package.json index 09e9e64359..9c60a51255 100644 --- a/packages/interceptors/package.json +++ b/packages/interceptors/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/interceptors", - "version": "2.2.20", + "version": "2.2.21", "description": "Interceptor based event bus, side effect & immutable state handling", "module": "./index.js", "main": "./lib/index.js", @@ -43,11 +43,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/atom": "^4.1.9", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/atom": "^4.1.10", + "@thi.ng/checks": "^2.7.1", "@thi.ng/errors": "^1.2.14", - "@thi.ng/paths": "^4.0.7", + "@thi.ng/paths": "^4.0.8", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/intervals/CHANGELOG.md b/packages/intervals/CHANGELOG.md index d57cb45f9a..d3d0e0f168 100644 --- a/packages/intervals/CHANGELOG.md +++ b/packages/intervals/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@2.0.15...@thi.ng/intervals@2.0.16) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/intervals + + + + + ## [2.0.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/intervals@2.0.14...@thi.ng/intervals@2.0.15) (2020-06-01) **Note:** Version bump only for package @thi.ng/intervals diff --git a/packages/intervals/package.json b/packages/intervals/package.json index 33dda4b7ba..acb1d4fb64 100644 --- a/packages/intervals/package.json +++ b/packages/intervals/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/intervals", - "version": "2.0.15", + "version": "2.0.16", "description": "Closed/open/semi-open interval data type, queries & operations", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/dlogic": "^1.0.23", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/dlogic": "^1.0.24", "@thi.ng/errors": "^1.2.14", "tslib": "^1.12.0" }, diff --git a/packages/iterators/CHANGELOG.md b/packages/iterators/CHANGELOG.md index 0eb6fcdc00..e4a0263e37 100644 --- a/packages/iterators/CHANGELOG.md +++ b/packages/iterators/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.26...@thi.ng/iterators@5.1.27) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/iterators + + + + + ## [5.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@5.1.25...@thi.ng/iterators@5.1.26) (2020-06-01) **Note:** Version bump only for package @thi.ng/iterators diff --git a/packages/iterators/package.json b/packages/iterators/package.json index 56cbd58d00..7458cb3c0f 100644 --- a/packages/iterators/package.json +++ b/packages/iterators/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/iterators", - "version": "5.1.26", + "version": "5.1.27", "description": "Clojure inspired, composable ES6 iterators & generators", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/dcons": "^2.2.19", + "@thi.ng/api": "^6.11.1", + "@thi.ng/dcons": "^2.2.20", "@thi.ng/errors": "^1.2.14", "tslib": "^1.12.0" }, diff --git a/packages/layout/CHANGELOG.md b/packages/layout/CHANGELOG.md index 6d5f32a949..88cfb2bbe8 100644 --- a/packages/layout/CHANGELOG.md +++ b/packages/layout/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/layout@0.1.12...@thi.ng/layout@0.1.13) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/layout + + + + + ## [0.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/layout@0.1.11...@thi.ng/layout@0.1.12) (2020-06-01) **Note:** Version bump only for package @thi.ng/layout diff --git a/packages/layout/package.json b/packages/layout/package.json index 794984199b..367013542e 100644 --- a/packages/layout/package.json +++ b/packages/layout/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/layout", - "version": "0.1.12", + "version": "0.1.13", "description": "TODO", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/leb128/CHANGELOG.md b/packages/leb128/CHANGELOG.md index bb02de5bc5..6381d33610 100644 --- a/packages/leb128/CHANGELOG.md +++ b/packages/leb128/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.20...@thi.ng/leb128@1.0.21) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/leb128 + + + + + ## [1.0.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/leb128@1.0.19...@thi.ng/leb128@1.0.20) (2020-06-01) **Note:** Version bump only for package @thi.ng/leb128 diff --git a/packages/leb128/package.json b/packages/leb128/package.json index e55bf83f53..7394228393 100644 --- a/packages/leb128/package.json +++ b/packages/leb128/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/leb128", - "version": "1.0.20", + "version": "1.0.21", "description": "WASM based LEB128 encoder / decoder (signed & unsigned)", "module": "./index.js", "main": "./lib/index.js", @@ -44,9 +44,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/checks": "^2.7.0", + "@thi.ng/checks": "^2.7.1", "@thi.ng/errors": "^1.2.14", - "@thi.ng/transducers-binary": "^0.5.16", + "@thi.ng/transducers-binary": "^0.5.17", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/lsys/CHANGELOG.md b/packages/lsys/CHANGELOG.md index 4a913dae39..82dc0329e0 100644 --- a/packages/lsys/CHANGELOG.md +++ b/packages/lsys/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.46...@thi.ng/lsys@0.2.47) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/lsys + + + + + ## [0.2.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/lsys@0.2.45...@thi.ng/lsys@0.2.46) (2020-06-01) **Note:** Version bump only for package @thi.ng/lsys diff --git a/packages/lsys/package.json b/packages/lsys/package.json index 5b32f4d334..227a93a322 100644 --- a/packages/lsys/package.json +++ b/packages/lsys/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/lsys", - "version": "0.2.46", + "version": "0.2.47", "description": "Functional, extensible L-System architecture w/ support for probabilistic rules", "module": "./index.js", "main": "./lib/index.js", @@ -43,13 +43,13 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/compose": "^1.4.8", + "@thi.ng/api": "^6.11.1", + "@thi.ng/compose": "^1.4.9", "@thi.ng/errors": "^1.2.14", - "@thi.ng/math": "^1.7.10", - "@thi.ng/random": "^1.4.10", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/math": "^1.7.11", + "@thi.ng/random": "^1.4.11", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/malloc/CHANGELOG.md b/packages/malloc/CHANGELOG.md index 2961507ec1..4fbfa352ef 100644 --- a/packages/malloc/CHANGELOG.md +++ b/packages/malloc/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.1.16...@thi.ng/malloc@4.1.17) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/malloc + + + + + ## [4.1.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/malloc@4.1.15...@thi.ng/malloc@4.1.16) (2020-06-01) **Note:** Version bump only for package @thi.ng/malloc diff --git a/packages/malloc/package.json b/packages/malloc/package.json index e97e6d23ad..4fd7bffd5e 100644 --- a/packages/malloc/package.json +++ b/packages/malloc/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/malloc", - "version": "4.1.16", + "version": "4.1.17", "description": "ArrayBuffer based malloc() impl for hybrid JS/WASM use cases, based on thi.ng/tinyalloc", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/binary": "^2.0.7", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/binary": "^2.0.8", + "@thi.ng/checks": "^2.7.1", "@thi.ng/errors": "^1.2.14", "tslib": "^1.12.0" }, diff --git a/packages/math/CHANGELOG.md b/packages/math/CHANGELOG.md index 116b2876f8..1fb4fad012 100644 --- a/packages/math/CHANGELOG.md +++ b/packages/math/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.7.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@1.7.10...@thi.ng/math@1.7.11) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/math + + + + + # [1.7.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/math@1.6.0...@thi.ng/math@1.7.0) (2020-02-25) diff --git a/packages/math/package.json b/packages/math/package.json index 1783d2429f..151699f08e 100644 --- a/packages/math/package.json +++ b/packages/math/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/math", - "version": "1.7.10", + "version": "1.7.11", "description": "Assorted common math functions & utilities", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/matrices/CHANGELOG.md b/packages/matrices/CHANGELOG.md index 962006d450..eb3dc15152 100644 --- a/packages/matrices/CHANGELOG.md +++ b/packages/matrices/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.6.19](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.18...@thi.ng/matrices@0.6.19) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/matrices + + + + + ## [0.6.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/matrices@0.6.17...@thi.ng/matrices@0.6.18) (2020-06-01) **Note:** Version bump only for package @thi.ng/matrices diff --git a/packages/matrices/package.json b/packages/matrices/package.json index 354d00b610..07059fe8b6 100644 --- a/packages/matrices/package.json +++ b/packages/matrices/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/matrices", - "version": "0.6.18", + "version": "0.6.19", "description": "Matrix & quaternion operations for 2D/3D geometry processing", "module": "./index.js", "main": "./lib/index.js", @@ -43,10 +43,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/math": "^1.7.10", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/math": "^1.7.11", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/memoize/CHANGELOG.md b/packages/memoize/CHANGELOG.md index fa0e655ef8..8bc6c34fba 100644 --- a/packages/memoize/CHANGELOG.md +++ b/packages/memoize/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.0.12...@thi.ng/memoize@2.0.13) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/memoize + + + + + ## [2.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/memoize@2.0.11...@thi.ng/memoize@2.0.12) (2020-06-01) **Note:** Version bump only for package @thi.ng/memoize diff --git a/packages/memoize/package.json b/packages/memoize/package.json index 571960209d..b23b67f1b1 100644 --- a/packages/memoize/package.json +++ b/packages/memoize/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/memoize", - "version": "2.0.12", + "version": "2.0.13", "description": "Function memoization with configurable caching", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", + "@thi.ng/api": "^6.11.1", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/mime/CHANGELOG.md b/packages/mime/CHANGELOG.md index 2179a306b6..3d6fdf55f6 100644 --- a/packages/mime/CHANGELOG.md +++ b/packages/mime/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/mime@0.1.12...@thi.ng/mime@0.1.13) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/mime + + + + + ## [0.1.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/mime@0.1.11...@thi.ng/mime@0.1.12) (2020-06-01) **Note:** Version bump only for package @thi.ng/mime diff --git a/packages/mime/package.json b/packages/mime/package.json index 47ecee5f0c..073ff8901d 100644 --- a/packages/mime/package.json +++ b/packages/mime/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/mime", - "version": "0.1.12", + "version": "0.1.13", "description": "350+ file extension to MIME type mappings, based on mime-db", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", + "@thi.ng/api": "^6.11.1", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/morton/CHANGELOG.md b/packages/morton/CHANGELOG.md index 7f31b60eff..b1b8f41844 100644 --- a/packages/morton/CHANGELOG.md +++ b/packages/morton/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@2.0.14...@thi.ng/morton@2.0.15) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/morton + + + + + ## [2.0.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/morton@2.0.13...@thi.ng/morton@2.0.14) (2020-06-01) **Note:** Version bump only for package @thi.ng/morton diff --git a/packages/morton/package.json b/packages/morton/package.json index 56b9314ecf..4394fc9593 100644 --- a/packages/morton/package.json +++ b/packages/morton/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/morton", - "version": "2.0.14", + "version": "2.0.15", "description": "Z-order curve / Morton encoding, decoding & range extraction for arbitrary dimensions", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/binary": "^2.0.7", - "@thi.ng/math": "^1.7.10", + "@thi.ng/api": "^6.11.1", + "@thi.ng/binary": "^2.0.8", + "@thi.ng/math": "^1.7.11", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/parse/CHANGELOG.md b/packages/parse/CHANGELOG.md index aea60a6eec..330a3efee9 100644 --- a/packages/parse/CHANGELOG.md +++ b/packages/parse/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.5.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.5.6...@thi.ng/parse@0.5.7) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/parse + + + + + ## [0.5.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/parse@0.5.5...@thi.ng/parse@0.5.6) (2020-06-01) **Note:** Version bump only for package @thi.ng/parse diff --git a/packages/parse/package.json b/packages/parse/package.json index 63df892136..28dfc43ca5 100644 --- a/packages/parse/package.json +++ b/packages/parse/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/parse", - "version": "0.5.6", + "version": "0.5.7", "description": "Purely functional parser combinators & AST generation for generic inputs", "module": "./index.js", "main": "./lib/index.js", @@ -43,11 +43,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/defmulti": "^1.2.16", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/defmulti": "^1.2.17", "@thi.ng/errors": "^1.2.14", - "@thi.ng/strings": "^1.8.9" + "@thi.ng/strings": "^1.8.10" }, "files": [ "*.js", diff --git a/packages/paths/CHANGELOG.md b/packages/paths/CHANGELOG.md index 0155f15aaa..4edc0996e5 100644 --- a/packages/paths/CHANGELOG.md +++ b/packages/paths/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.0.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.0.7...@thi.ng/paths@4.0.8) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/paths + + + + + ## [4.0.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@4.0.6...@thi.ng/paths@4.0.7) (2020-05-16) diff --git a/packages/paths/package.json b/packages/paths/package.json index d3509f4773..93fc246423 100644 --- a/packages/paths/package.json +++ b/packages/paths/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/paths", - "version": "4.0.7", + "version": "4.0.8", "description": "Immutable, optimized and optionally typed path-based object property / array accessors with structural sharing", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/checks": "^2.7.0", + "@thi.ng/checks": "^2.7.1", "@thi.ng/errors": "^1.2.14", "tslib": "^1.12.0" }, diff --git a/packages/pixel/CHANGELOG.md b/packages/pixel/CHANGELOG.md index ec47503044..14796cf500 100644 --- a/packages/pixel/CHANGELOG.md +++ b/packages/pixel/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.3.1...@thi.ng/pixel@0.3.2) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/pixel + + + + + ## [0.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/pixel@0.3.0...@thi.ng/pixel@0.3.1) (2020-06-01) **Note:** Version bump only for package @thi.ng/pixel diff --git a/packages/pixel/package.json b/packages/pixel/package.json index 89473354b1..e6d724e43f 100644 --- a/packages/pixel/package.json +++ b/packages/pixel/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pixel", - "version": "0.3.1", + "version": "0.3.2", "description": "Typed array backed, packed integer and unpacked floating point pixel buffers w/ customizable formats, blitting, dithering, conversions", "module": "./index.js", "main": "./lib/index.js", @@ -43,10 +43,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/math": "^1.7.10", - "@thi.ng/porter-duff": "^0.1.20", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/math": "^1.7.11", + "@thi.ng/porter-duff": "^0.1.21", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/pointfree-lang/CHANGELOG.md b/packages/pointfree-lang/CHANGELOG.md index 2c5eed8bfa..07009ea568 100644 --- a/packages/pointfree-lang/CHANGELOG.md +++ b/packages/pointfree-lang/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.4.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.4.4...@thi.ng/pointfree-lang@1.4.5) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/pointfree-lang + + + + + ## [1.4.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@1.4.3...@thi.ng/pointfree-lang@1.4.4) (2020-06-01) **Note:** Version bump only for package @thi.ng/pointfree-lang diff --git a/packages/pointfree-lang/package.json b/packages/pointfree-lang/package.json index 0c518c264e..25388f5688 100644 --- a/packages/pointfree-lang/package.json +++ b/packages/pointfree-lang/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pointfree-lang", - "version": "1.4.4", + "version": "1.4.5", "description": "Forth style syntax layer/compiler & CLI for the @thi.ng/pointfree DSL", "module": "./index.js", "main": "./lib/index.js", @@ -47,10 +47,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/bench": "^2.0.12", + "@thi.ng/api": "^6.11.1", + "@thi.ng/bench": "^2.0.13", "@thi.ng/errors": "^1.2.14", - "@thi.ng/pointfree": "^2.0.5", + "@thi.ng/pointfree": "^2.0.6", "commander": "^5.1.0", "tslib": "^1.12.0" }, diff --git a/packages/pointfree/CHANGELOG.md b/packages/pointfree/CHANGELOG.md index 1f49f71f2a..45704c6667 100644 --- a/packages/pointfree/CHANGELOG.md +++ b/packages/pointfree/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@2.0.5...@thi.ng/pointfree@2.0.6) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/pointfree + + + + + ## [2.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@2.0.4...@thi.ng/pointfree@2.0.5) (2020-06-01) **Note:** Version bump only for package @thi.ng/pointfree diff --git a/packages/pointfree/package.json b/packages/pointfree/package.json index 718af06344..887da3b55e 100644 --- a/packages/pointfree/package.json +++ b/packages/pointfree/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pointfree", - "version": "2.0.5", + "version": "2.0.6", "description": "Pointfree functional composition / Forth style stack execution engine", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/compose": "^1.4.8", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/compose": "^1.4.9", "@thi.ng/equiv": "^1.0.23", "@thi.ng/errors": "^1.2.14", "tslib": "^1.12.0" diff --git a/packages/poisson/CHANGELOG.md b/packages/poisson/CHANGELOG.md index 6a221fe4e5..d028bce4a7 100644 --- a/packages/poisson/CHANGELOG.md +++ b/packages/poisson/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.1.2...@thi.ng/poisson@1.1.3) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/poisson + + + + + ## [1.1.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/poisson@1.1.1...@thi.ng/poisson@1.1.2) (2020-06-01) **Note:** Version bump only for package @thi.ng/poisson diff --git a/packages/poisson/package.json b/packages/poisson/package.json index 182c31ba5a..8469bb5b22 100644 --- a/packages/poisson/package.json +++ b/packages/poisson/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/poisson", - "version": "1.1.2", + "version": "1.1.3", "description": "nD Stratified grid and Poisson-disc sampling w/ support for spatial density functions and custom PRNGs", "module": "./index.js", "main": "./lib/index.js", @@ -43,11 +43,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/checks": "^2.7.0", - "@thi.ng/geom-api": "^1.0.20", - "@thi.ng/random": "^1.4.10", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/geom-api": "^1.0.21", + "@thi.ng/random": "^1.4.11", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/porter-duff/CHANGELOG.md b/packages/porter-duff/CHANGELOG.md index f34d6fb2bb..54c3dafdd3 100644 --- a/packages/porter-duff/CHANGELOG.md +++ b/packages/porter-duff/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/porter-duff@0.1.20...@thi.ng/porter-duff@0.1.21) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/porter-duff + + + + + ## [0.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/porter-duff@0.1.19...@thi.ng/porter-duff@0.1.20) (2020-06-01) **Note:** Version bump only for package @thi.ng/porter-duff diff --git a/packages/porter-duff/package.json b/packages/porter-duff/package.json index c02b49d394..ad0760aee4 100644 --- a/packages/porter-duff/package.json +++ b/packages/porter-duff/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/porter-duff", - "version": "0.1.20", + "version": "0.1.21", "description": "Porter-Duff operators for packed ints & float-array alpha compositing", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/math": "^1.7.10", + "@thi.ng/api": "^6.11.1", + "@thi.ng/math": "^1.7.11", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/ramp/CHANGELOG.md b/packages/ramp/CHANGELOG.md index ca87d5017a..01d9e76647 100644 --- a/packages/ramp/CHANGELOG.md +++ b/packages/ramp/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.20...@thi.ng/ramp@0.1.21) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/ramp + + + + + ## [0.1.20](https://github.com/thi-ng/umbrella/compare/@thi.ng/ramp@0.1.19...@thi.ng/ramp@0.1.20) (2020-06-01) **Note:** Version bump only for package @thi.ng/ramp diff --git a/packages/ramp/package.json b/packages/ramp/package.json index cd4853dc7e..871b8f10a1 100644 --- a/packages/ramp/package.json +++ b/packages/ramp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/ramp", - "version": "0.1.20", + "version": "0.1.21", "description": "Parametric interpolated 1D lookup tables for remapping values", "module": "./index.js", "main": "./lib/index.js", @@ -43,12 +43,12 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/arrays": "^0.6.8", - "@thi.ng/compare": "^1.3.7", - "@thi.ng/math": "^1.7.10", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/api": "^6.11.1", + "@thi.ng/arrays": "^0.6.9", + "@thi.ng/compare": "^1.3.8", + "@thi.ng/math": "^1.7.11", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/random/CHANGELOG.md b/packages/random/CHANGELOG.md index 7d45a641ff..75c4fa7de2 100644 --- a/packages/random/CHANGELOG.md +++ b/packages/random/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.4.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@1.4.10...@thi.ng/random@1.4.11) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/random + + + + + ## [1.4.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/random@1.4.9...@thi.ng/random@1.4.10) (2020-06-01) **Note:** Version bump only for package @thi.ng/random diff --git a/packages/random/package.json b/packages/random/package.json index 8ec1704d49..ffad8901df 100644 --- a/packages/random/package.json +++ b/packages/random/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/random", - "version": "1.4.10", + "version": "1.4.11", "description": "Pseudo-random number generators w/ unified API", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/range-coder/CHANGELOG.md b/packages/range-coder/CHANGELOG.md index ec16f58114..0533277e87 100644 --- a/packages/range-coder/CHANGELOG.md +++ b/packages/range-coder/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.46...@thi.ng/range-coder@1.0.47) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/range-coder + + + + + ## [1.0.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/range-coder@1.0.45...@thi.ng/range-coder@1.0.46) (2020-06-01) **Note:** Version bump only for package @thi.ng/range-coder diff --git a/packages/range-coder/package.json b/packages/range-coder/package.json index 6cd5becea1..c86deb2e67 100644 --- a/packages/range-coder/package.json +++ b/packages/range-coder/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/range-coder", - "version": "1.0.46", + "version": "1.0.47", "description": "Binary data range encoder / decoder", "module": "./index.js", "main": "./lib/index.js", @@ -34,7 +34,7 @@ "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", "@microsoft/api-extractor": "^7.8.0", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/transducers": "^7.1.0", "@types/mocha": "^7.0.2", "@types/node": "^14.0.1", "mocha": "^7.1.2", @@ -44,7 +44,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/bitstream": "^1.1.17", + "@thi.ng/bitstream": "^1.1.18", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/resolve-map/CHANGELOG.md b/packages/resolve-map/CHANGELOG.md index 289276af8f..faf4433ecc 100644 --- a/packages/resolve-map/CHANGELOG.md +++ b/packages/resolve-map/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.1.25...@thi.ng/resolve-map@4.1.26) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/resolve-map + + + + + ## [4.1.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@4.1.24...@thi.ng/resolve-map@4.1.25) (2020-06-01) **Note:** Version bump only for package @thi.ng/resolve-map diff --git a/packages/resolve-map/package.json b/packages/resolve-map/package.json index 23a73f2cf0..d2f9f7d280 100644 --- a/packages/resolve-map/package.json +++ b/packages/resolve-map/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/resolve-map", - "version": "4.1.25", + "version": "4.1.26", "description": "DAG resolution of vanilla objects & arrays with internally linked values", "module": "./index.js", "main": "./lib/index.js", @@ -42,10 +42,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", "@thi.ng/errors": "^1.2.14", - "@thi.ng/paths": "^4.0.7", + "@thi.ng/paths": "^4.0.8", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/rle-pack/CHANGELOG.md b/packages/rle-pack/CHANGELOG.md index a677ac684e..f42cc7d71d 100644 --- a/packages/rle-pack/CHANGELOG.md +++ b/packages/rle-pack/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@2.1.17...@thi.ng/rle-pack@2.1.18) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/rle-pack + + + + + # [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@2.0.6...@thi.ng/rle-pack@2.1.0) (2019-07-07) ### Features diff --git a/packages/rle-pack/package.json b/packages/rle-pack/package.json index 9cd91d856d..7b36f496c8 100644 --- a/packages/rle-pack/package.json +++ b/packages/rle-pack/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rle-pack", - "version": "2.1.17", + "version": "2.1.18", "description": "Binary run-length encoding packer w/ flexible repeat bit widths", "module": "./index.js", "main": "./lib/index.js", @@ -44,7 +44,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/bitstream": "^1.1.17", + "@thi.ng/bitstream": "^1.1.18", "@thi.ng/errors": "^1.2.14", "tslib": "^1.12.0" }, diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md index 2b37b4e06e..c889306280 100644 --- a/packages/router/CHANGELOG.md +++ b/packages/router/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@2.0.22...@thi.ng/router@2.0.23) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/router + + + + + ## [2.0.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@2.0.21...@thi.ng/router@2.0.22) (2020-06-01) **Note:** Version bump only for package @thi.ng/router diff --git a/packages/router/package.json b/packages/router/package.json index 59f613339c..67e75eec47 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/router", - "version": "2.0.22", + "version": "2.0.23", "description": "Generic router for browser & non-browser based applications", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", "@thi.ng/equiv": "^1.0.23", "@thi.ng/errors": "^1.2.14", "tslib": "^1.12.0" diff --git a/packages/rstream-csp/CHANGELOG.md b/packages/rstream-csp/CHANGELOG.md index 62353e1ca4..f6d1c0f173 100644 --- a/packages/rstream-csp/CHANGELOG.md +++ b/packages/rstream-csp/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.24...@thi.ng/rstream-csp@2.0.25) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/rstream-csp + + + + + ## [2.0.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@2.0.23...@thi.ng/rstream-csp@2.0.24) (2020-06-01) **Note:** Version bump only for package @thi.ng/rstream-csp diff --git a/packages/rstream-csp/package.json b/packages/rstream-csp/package.json index e9b36eabef..d37d6908e6 100644 --- a/packages/rstream-csp/package.json +++ b/packages/rstream-csp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-csp", - "version": "2.0.24", + "version": "2.0.25", "description": "@thi.ng/csp bridge module for @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/csp": "^1.1.26", - "@thi.ng/rstream": "^4.3.5", + "@thi.ng/csp": "^1.1.27", + "@thi.ng/rstream": "^4.4.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/rstream-dot/CHANGELOG.md b/packages/rstream-dot/CHANGELOG.md index 1136f9e6fa..2efa5c5472 100644 --- a/packages/rstream-dot/CHANGELOG.md +++ b/packages/rstream-dot/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.31...@thi.ng/rstream-dot@1.1.32) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/rstream-dot + + + + + ## [1.1.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@1.1.30...@thi.ng/rstream-dot@1.1.31) (2020-06-01) **Note:** Version bump only for package @thi.ng/rstream-dot diff --git a/packages/rstream-dot/package.json b/packages/rstream-dot/package.json index 17999db19b..7ac5c3c036 100644 --- a/packages/rstream-dot/package.json +++ b/packages/rstream-dot/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-dot", - "version": "1.1.31", + "version": "1.1.32", "description": "Graphviz DOT conversion of @thi.ng/rstream dataflow graph topologies", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/rstream": "^4.3.5", + "@thi.ng/rstream": "^4.4.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/rstream-gestures/CHANGELOG.md b/packages/rstream-gestures/CHANGELOG.md index a7d545ad1c..cfa9cddf15 100644 --- a/packages/rstream-gestures/CHANGELOG.md +++ b/packages/rstream-gestures/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.23...@thi.ng/rstream-gestures@2.0.24) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/rstream-gestures + + + + + ## [2.0.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@2.0.22...@thi.ng/rstream-gestures@2.0.23) (2020-06-01) **Note:** Version bump only for package @thi.ng/rstream-gestures diff --git a/packages/rstream-gestures/package.json b/packages/rstream-gestures/package.json index a1d729567a..3c159b0ab7 100644 --- a/packages/rstream-gestures/package.json +++ b/packages/rstream-gestures/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-gestures", - "version": "2.0.23", + "version": "2.0.24", "description": "Unified mouse, mouse wheel & multi-touch event stream abstraction", "module": "./index.js", "main": "./lib/index.js", @@ -43,11 +43,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/math": "^1.7.10", - "@thi.ng/rstream": "^4.3.5", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/math": "^1.7.11", + "@thi.ng/rstream": "^4.4.0", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/rstream-graph/CHANGELOG.md b/packages/rstream-graph/CHANGELOG.md index 752bca248c..fc1ea0c0d8 100644 --- a/packages/rstream-graph/CHANGELOG.md +++ b/packages/rstream-graph/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.2.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.24...@thi.ng/rstream-graph@3.2.25) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/rstream-graph + + + + + ## [3.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@3.2.23...@thi.ng/rstream-graph@3.2.24) (2020-06-01) **Note:** Version bump only for package @thi.ng/rstream-graph diff --git a/packages/rstream-graph/package.json b/packages/rstream-graph/package.json index 09978fb6f3..0e133dd747 100644 --- a/packages/rstream-graph/package.json +++ b/packages/rstream-graph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-graph", - "version": "3.2.24", + "version": "3.2.25", "description": "Declarative dataflow graph construction for @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -43,13 +43,13 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", "@thi.ng/errors": "^1.2.14", - "@thi.ng/paths": "^4.0.7", - "@thi.ng/resolve-map": "^4.1.25", - "@thi.ng/rstream": "^4.3.5", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/paths": "^4.0.8", + "@thi.ng/resolve-map": "^4.1.26", + "@thi.ng/rstream": "^4.4.0", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/rstream-log-file/CHANGELOG.md b/packages/rstream-log-file/CHANGELOG.md index fc1f533bdc..eb3c05abf3 100644 --- a/packages/rstream-log-file/CHANGELOG.md +++ b/packages/rstream-log-file/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.47](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.46...@thi.ng/rstream-log-file@0.1.47) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/rstream-log-file + + + + + ## [0.1.46](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log-file@0.1.45...@thi.ng/rstream-log-file@0.1.46) (2020-06-01) **Note:** Version bump only for package @thi.ng/rstream-log-file diff --git a/packages/rstream-log-file/package.json b/packages/rstream-log-file/package.json index 1ad75924aa..74262f71c2 100644 --- a/packages/rstream-log-file/package.json +++ b/packages/rstream-log-file/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-log-file", - "version": "0.1.46", + "version": "0.1.47", "description": "File output handler for structured, multilevel & hierarchical loggers based on @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/rstream": "^4.3.5", + "@thi.ng/rstream": "^4.4.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/rstream-log/CHANGELOG.md b/packages/rstream-log/CHANGELOG.md index b7a8af9b50..18994c3e0b 100644 --- a/packages/rstream-log/CHANGELOG.md +++ b/packages/rstream-log/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.1.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.31...@thi.ng/rstream-log@3.1.32) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/rstream-log + + + + + ## [3.1.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@3.1.30...@thi.ng/rstream-log@3.1.31) (2020-06-01) **Note:** Version bump only for package @thi.ng/rstream-log diff --git a/packages/rstream-log/package.json b/packages/rstream-log/package.json index 592986ed44..4838ff573f 100644 --- a/packages/rstream-log/package.json +++ b/packages/rstream-log/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-log", - "version": "3.1.31", + "version": "3.1.32", "description": "Structured, multilevel & hierarchical loggers based on @thi.ng/rstream", "module": "./index.js", "main": "./lib/index.js", @@ -43,11 +43,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", "@thi.ng/errors": "^1.2.14", - "@thi.ng/rstream": "^4.3.5", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/rstream": "^4.4.0", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/rstream-query/CHANGELOG.md b/packages/rstream-query/CHANGELOG.md index a8c1807c97..09521d9c7f 100644 --- a/packages/rstream-query/CHANGELOG.md +++ b/packages/rstream-query/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.31...@thi.ng/rstream-query@1.1.32) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/rstream-query + + + + + ## [1.1.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@1.1.30...@thi.ng/rstream-query@1.1.31) (2020-06-01) **Note:** Version bump only for package @thi.ng/rstream-query diff --git a/packages/rstream-query/package.json b/packages/rstream-query/package.json index 9f54cb8465..06f53c7cfc 100644 --- a/packages/rstream-query/package.json +++ b/packages/rstream-query/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-query", - "version": "1.1.31", + "version": "1.1.32", "description": "@thi.ng/rstream based triple store & reactive query engine", "module": "./index.js", "main": "./lib/index.js", @@ -43,15 +43,15 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/associative": "^4.0.11", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/associative": "^4.1.0", + "@thi.ng/checks": "^2.7.1", "@thi.ng/equiv": "^1.0.23", "@thi.ng/errors": "^1.2.14", - "@thi.ng/math": "^1.7.10", - "@thi.ng/rstream": "^4.3.5", - "@thi.ng/rstream-dot": "^1.1.31", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/math": "^1.7.11", + "@thi.ng/rstream": "^4.4.0", + "@thi.ng/rstream-dot": "^1.1.32", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/rstream/CHANGELOG.md b/packages/rstream/CHANGELOG.md index 0a2f2ff8c5..fd4d417294 100644 --- a/packages/rstream/CHANGELOG.md +++ b/packages/rstream/CHANGELOG.md @@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.4.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@4.3.5...@thi.ng/rstream@4.4.0) (2020-06-14) + + +### Features + +* **rstream:** add debounce() sub & tests ([9c53bb4](https://github.com/thi-ng/umbrella/commit/9c53bb4faffee0a06046de64325f0b4ddeedd3a0)) +* **rstream:** add emitLast metastream option ([1073735](https://github.com/thi-ng/umbrella/commit/107373574cd6f15531e6210c016cde1a9939e040)) +* **rstream:** add error handling for transducer phase ([609424e](https://github.com/thi-ng/umbrella/commit/609424e6b332e5f2df89d07b6b5af02fc5b4ba99)) + + + + + ## [4.3.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@4.3.4...@thi.ng/rstream@4.3.5) (2020-06-01) **Note:** Version bump only for package @thi.ng/rstream diff --git a/packages/rstream/package.json b/packages/rstream/package.json index 8f31213e9b..3df52e8d98 100644 --- a/packages/rstream/package.json +++ b/packages/rstream/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream", - "version": "4.3.5", + "version": "4.4.0", "description": "Reactive streams & subscription primitives for constructing dataflow graphs / pipelines", "module": "./index.js", "main": "./lib/index.js", @@ -43,13 +43,13 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/associative": "^4.0.11", - "@thi.ng/atom": "^4.1.9", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/associative": "^4.1.0", + "@thi.ng/atom": "^4.1.10", + "@thi.ng/checks": "^2.7.1", "@thi.ng/errors": "^1.2.14", - "@thi.ng/paths": "^4.0.7", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/paths": "^4.0.8", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/sax/CHANGELOG.md b/packages/sax/CHANGELOG.md index 70aae82aa8..4ece3a95bd 100644 --- a/packages/sax/CHANGELOG.md +++ b/packages/sax/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.26...@thi.ng/sax@1.1.27) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/sax + + + + + ## [1.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/sax@1.1.25...@thi.ng/sax@1.1.26) (2020-06-01) **Note:** Version bump only for package @thi.ng/sax diff --git a/packages/sax/package.json b/packages/sax/package.json index 96a4580eeb..7eb90a3d41 100644 --- a/packages/sax/package.json +++ b/packages/sax/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sax", - "version": "1.1.26", + "version": "1.1.27", "description": "Transducer-based, SAX-like, non-validating, speedy & tiny XML parser", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/transducers-fsm": "^1.1.26", + "@thi.ng/api": "^6.11.1", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/transducers-fsm": "^1.1.27", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/scenegraph/CHANGELOG.md b/packages/scenegraph/CHANGELOG.md index b87ec03f34..657c6c5255 100644 --- a/packages/scenegraph/CHANGELOG.md +++ b/packages/scenegraph/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.1.21...@thi.ng/scenegraph@0.1.22) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/scenegraph + + + + + ## [0.1.21](https://github.com/thi-ng/umbrella/compare/@thi.ng/scenegraph@0.1.20...@thi.ng/scenegraph@0.1.21) (2020-06-01) **Note:** Version bump only for package @thi.ng/scenegraph diff --git a/packages/scenegraph/package.json b/packages/scenegraph/package.json index 2cd5dfe529..5fc5807201 100644 --- a/packages/scenegraph/package.json +++ b/packages/scenegraph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/scenegraph", - "version": "0.1.21", + "version": "0.1.22", "description": "Extensible 2D/3D scene graph with @thi.ng/hdom-canvas support", "module": "./index.js", "main": "./lib/index.js", @@ -43,10 +43,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/matrices": "^0.6.18", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/matrices": "^0.6.19", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/seq/CHANGELOG.md b/packages/seq/CHANGELOG.md index 4f6a0ac4ed..12fc2c7073 100644 --- a/packages/seq/CHANGELOG.md +++ b/packages/seq/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.2.14...@thi.ng/seq@0.2.15) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/seq + + + + + ## [0.2.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/seq@0.2.13...@thi.ng/seq@0.2.14) (2020-06-01) **Note:** Version bump only for package @thi.ng/seq diff --git a/packages/seq/package.json b/packages/seq/package.json index 24ed5735bc..ff46a4b355 100644 --- a/packages/seq/package.json +++ b/packages/seq/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/seq", - "version": "0.2.14", + "version": "0.2.15", "description": "Various implementations of the @thi.ng/api `ISeq` interface / sequence abstraction", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/sexpr/CHANGELOG.md b/packages/sexpr/CHANGELOG.md index b911fa5945..d805a61e8b 100644 --- a/packages/sexpr/CHANGELOG.md +++ b/packages/sexpr/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.2.17...@thi.ng/sexpr@0.2.18) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/sexpr + + + + + ## [0.2.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/sexpr@0.2.16...@thi.ng/sexpr@0.2.17) (2020-06-01) **Note:** Version bump only for package @thi.ng/sexpr diff --git a/packages/sexpr/package.json b/packages/sexpr/package.json index e1ba48dd96..c05109b725 100644 --- a/packages/sexpr/package.json +++ b/packages/sexpr/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sexpr", - "version": "0.2.17", + "version": "0.2.18", "description": "Extensible S-Expression parser & runtime infrastructure", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/defmulti": "^1.2.16", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/defmulti": "^1.2.17", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/shader-ast-glsl/CHANGELOG.md b/packages/shader-ast-glsl/CHANGELOG.md index 1d14e406df..cbac3df6cc 100644 --- a/packages/shader-ast-glsl/CHANGELOG.md +++ b/packages/shader-ast-glsl/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.30](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.1.29...@thi.ng/shader-ast-glsl@0.1.30) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/shader-ast-glsl + + + + + ## [0.1.29](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-glsl@0.1.28...@thi.ng/shader-ast-glsl@0.1.29) (2020-06-01) **Note:** Version bump only for package @thi.ng/shader-ast-glsl diff --git a/packages/shader-ast-glsl/package.json b/packages/shader-ast-glsl/package.json index 4a33fc5c60..d74aa13831 100644 --- a/packages/shader-ast-glsl/package.json +++ b/packages/shader-ast-glsl/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/shader-ast-glsl", - "version": "0.1.29", + "version": "0.1.30", "description": "Customizable GLSL code generator for @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -43,10 +43,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", "@thi.ng/errors": "^1.2.14", - "@thi.ng/shader-ast": "^0.3.23", + "@thi.ng/shader-ast": "^0.3.24", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/shader-ast-js/CHANGELOG.md b/packages/shader-ast-js/CHANGELOG.md index f7844e8bd1..492972c4d3 100644 --- a/packages/shader-ast-js/CHANGELOG.md +++ b/packages/shader-ast-js/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.4.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.4.25...@thi.ng/shader-ast-js@0.4.26) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/shader-ast-js + + + + + ## [0.4.25](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-js@0.4.24...@thi.ng/shader-ast-js@0.4.25) (2020-06-01) **Note:** Version bump only for package @thi.ng/shader-ast-js diff --git a/packages/shader-ast-js/package.json b/packages/shader-ast-js/package.json index 9a7aa52a73..c699a50543 100644 --- a/packages/shader-ast-js/package.json +++ b/packages/shader-ast-js/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/shader-ast-js", - "version": "0.4.25", + "version": "0.4.26", "description": "Customizable JS code generator, compiler & runtime for @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -43,14 +43,14 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", "@thi.ng/errors": "^1.2.14", - "@thi.ng/math": "^1.7.10", - "@thi.ng/matrices": "^0.6.18", - "@thi.ng/pixel": "^0.3.1", - "@thi.ng/shader-ast": "^0.3.23", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/math": "^1.7.11", + "@thi.ng/matrices": "^0.6.19", + "@thi.ng/pixel": "^0.3.2", + "@thi.ng/shader-ast": "^0.3.24", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/shader-ast-stdlib/CHANGELOG.md b/packages/shader-ast-stdlib/CHANGELOG.md index 68c56bbb09..87ae2c6c19 100644 --- a/packages/shader-ast-stdlib/CHANGELOG.md +++ b/packages/shader-ast-stdlib/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.3.22...@thi.ng/shader-ast-stdlib@0.3.23) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/shader-ast-stdlib + + + + + ## [0.3.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast-stdlib@0.3.21...@thi.ng/shader-ast-stdlib@0.3.22) (2020-06-01) **Note:** Version bump only for package @thi.ng/shader-ast-stdlib diff --git a/packages/shader-ast-stdlib/package.json b/packages/shader-ast-stdlib/package.json index 90274938eb..f04385d546 100644 --- a/packages/shader-ast-stdlib/package.json +++ b/packages/shader-ast-stdlib/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/shader-ast-stdlib", - "version": "0.3.22", + "version": "0.3.23", "description": "Function collection for modular GPGPU / shader programming with @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -43,7 +43,7 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/shader-ast": "^0.3.23", + "@thi.ng/shader-ast": "^0.3.24", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/shader-ast/CHANGELOG.md b/packages/shader-ast/CHANGELOG.md index ac7d3923c1..001f59d65e 100644 --- a/packages/shader-ast/CHANGELOG.md +++ b/packages/shader-ast/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.3.23...@thi.ng/shader-ast@0.3.24) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/shader-ast + + + + + ## [0.3.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/shader-ast@0.3.22...@thi.ng/shader-ast@0.3.23) (2020-06-01) **Note:** Version bump only for package @thi.ng/shader-ast diff --git a/packages/shader-ast/package.json b/packages/shader-ast/package.json index 85b294a681..0c233441b8 100644 --- a/packages/shader-ast/package.json +++ b/packages/shader-ast/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/shader-ast", - "version": "0.3.23", + "version": "0.3.24", "description": "DSL to define shader code in TypeScript and cross-compile to GLSL, JS and other targets", "module": "./index.js", "main": "./lib/index.js", @@ -43,10 +43,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/defmulti": "^1.2.16", - "@thi.ng/dgraph": "^1.2.11", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/defmulti": "^1.2.17", + "@thi.ng/dgraph": "^1.2.12", "@thi.ng/errors": "^1.2.14", "tslib": "^1.12.0" }, diff --git a/packages/simd/CHANGELOG.md b/packages/simd/CHANGELOG.md index 664c3941c7..4327bb2c5b 100644 --- a/packages/simd/CHANGELOG.md +++ b/packages/simd/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.2.3...@thi.ng/simd@0.2.4) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/simd + + + + + ## [0.2.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/simd@0.2.2...@thi.ng/simd@0.2.3) (2020-06-01) **Note:** Version bump only for package @thi.ng/simd diff --git a/packages/simd/package.json b/packages/simd/package.json index 065cbcfe21..724e9fa165 100644 --- a/packages/simd/package.json +++ b/packages/simd/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/simd", - "version": "0.2.3", + "version": "0.2.4", "description": "WASM based SIMD vector operations for batch processing", "module": "./index.js", "main": "./lib/index.js", @@ -46,9 +46,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/checks": "^2.7.0", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/transducers-binary": "^0.5.16", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/transducers-binary": "^0.5.17", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/soa/CHANGELOG.md b/packages/soa/CHANGELOG.md index 27c5e6c3ea..03c8e750d0 100644 --- a/packages/soa/CHANGELOG.md +++ b/packages/soa/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.22...@thi.ng/soa@0.1.23) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/soa + + + + + ## [0.1.22](https://github.com/thi-ng/umbrella/compare/@thi.ng/soa@0.1.21...@thi.ng/soa@0.1.22) (2020-06-01) **Note:** Version bump only for package @thi.ng/soa diff --git a/packages/soa/package.json b/packages/soa/package.json index 5aef24ee5a..dfa3c61cd1 100644 --- a/packages/soa/package.json +++ b/packages/soa/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/soa", - "version": "0.1.22", + "version": "0.1.23", "description": "SOA & AOS memory mapped structured views with optional & extensible serialization", "module": "./index.js", "main": "./lib/index.js", @@ -44,10 +44,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/binary": "^2.0.7", - "@thi.ng/transducers-binary": "^0.5.16", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/api": "^6.11.1", + "@thi.ng/binary": "^2.0.8", + "@thi.ng/transducers-binary": "^0.5.17", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/sparse/CHANGELOG.md b/packages/sparse/CHANGELOG.md index e727236b5c..861ef719b3 100644 --- a/packages/sparse/CHANGELOG.md +++ b/packages/sparse/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.42...@thi.ng/sparse@0.1.43) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/sparse + + + + + ## [0.1.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/sparse@0.1.41...@thi.ng/sparse@0.1.42) (2020-06-01) **Note:** Version bump only for package @thi.ng/sparse diff --git a/packages/sparse/package.json b/packages/sparse/package.json index df086d1628..c02c4374dd 100644 --- a/packages/sparse/package.json +++ b/packages/sparse/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/sparse", - "version": "0.1.42", + "version": "0.1.43", "description": "Sparse vector & matrix implementations", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/strings/CHANGELOG.md b/packages/strings/CHANGELOG.md index 489c33539f..e2d73c7fbc 100644 --- a/packages/strings/CHANGELOG.md +++ b/packages/strings/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.8.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.8.9...@thi.ng/strings@1.8.10) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/strings + + + + + ## [1.8.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/strings@1.8.8...@thi.ng/strings@1.8.9) (2020-06-01) **Note:** Version bump only for package @thi.ng/strings diff --git a/packages/strings/package.json b/packages/strings/package.json index 51fc0ffa03..a544304490 100644 --- a/packages/strings/package.json +++ b/packages/strings/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/strings", - "version": "1.8.9", + "version": "1.8.10", "description": "Various string formatting & utility functions", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", + "@thi.ng/api": "^6.11.1", "@thi.ng/errors": "^1.2.14", - "@thi.ng/memoize": "^2.0.12", + "@thi.ng/memoize": "^2.0.13", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/system/CHANGELOG.md b/packages/system/CHANGELOG.md index e23911fd2e..74a2e50814 100644 --- a/packages/system/CHANGELOG.md +++ b/packages/system/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.11...@thi.ng/system@0.2.12) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/system + + + + + ## [0.2.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/system@0.2.10...@thi.ng/system@0.2.11) (2020-06-01) **Note:** Version bump only for package @thi.ng/system diff --git a/packages/system/package.json b/packages/system/package.json index 7a2c220499..a4cc4a854c 100644 --- a/packages/system/package.json +++ b/packages/system/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/system", - "version": "0.2.11", + "version": "0.2.12", "description": "Minimal DI / life cycle container for stateful app components", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/dgraph": "^1.2.11", + "@thi.ng/api": "^6.11.1", + "@thi.ng/dgraph": "^1.2.12", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/text-canvas/CHANGELOG.md b/packages/text-canvas/CHANGELOG.md index 706de94b04..80db9ded9f 100644 --- a/packages/text-canvas/CHANGELOG.md +++ b/packages/text-canvas/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.15...@thi.ng/text-canvas@0.2.16) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/text-canvas + + + + + ## [0.2.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/text-canvas@0.2.14...@thi.ng/text-canvas@0.2.15) (2020-06-01) **Note:** Version bump only for package @thi.ng/text-canvas diff --git a/packages/text-canvas/package.json b/packages/text-canvas/package.json index 51b9c1b0e7..6030a2781e 100644 --- a/packages/text-canvas/package.json +++ b/packages/text-canvas/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/text-canvas", - "version": "0.2.15", + "version": "0.2.16", "description": "Text based canvas, drawing, tables with arbitrary formatting (incl. ANSI/HTML)", "module": "./index.js", "main": "./lib/index.js", @@ -44,12 +44,12 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/arrays": "^0.6.8", - "@thi.ng/geom-clip-line": "^1.0.18", - "@thi.ng/math": "^1.7.10", - "@thi.ng/memoize": "^2.0.12", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/arrays": "^0.6.9", + "@thi.ng/geom-clip-line": "^1.0.19", + "@thi.ng/math": "^1.7.11", + "@thi.ng/memoize": "^2.0.13", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/transducers-binary/CHANGELOG.md b/packages/transducers-binary/CHANGELOG.md index 9650e62af9..c99dd5765f 100644 --- a/packages/transducers-binary/CHANGELOG.md +++ b/packages/transducers-binary/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.5.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.16...@thi.ng/transducers-binary@0.5.17) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/transducers-binary + + + + + ## [0.5.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-binary@0.5.15...@thi.ng/transducers-binary@0.5.16) (2020-06-01) **Note:** Version bump only for package @thi.ng/transducers-binary diff --git a/packages/transducers-binary/package.json b/packages/transducers-binary/package.json index 1374d651d5..17f6ba69ac 100644 --- a/packages/transducers-binary/package.json +++ b/packages/transducers-binary/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers-binary", - "version": "0.5.16", + "version": "0.5.17", "description": "Binary data related transducers & reducers", "module": "./index.js", "main": "./lib/index.js", @@ -43,10 +43,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/compose": "^1.4.8", - "@thi.ng/random": "^1.4.10", - "@thi.ng/strings": "^1.8.9", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/compose": "^1.4.9", + "@thi.ng/random": "^1.4.11", + "@thi.ng/strings": "^1.8.10", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/transducers-fsm/CHANGELOG.md b/packages/transducers-fsm/CHANGELOG.md index ac176e4bad..1868db1a7e 100644 --- a/packages/transducers-fsm/CHANGELOG.md +++ b/packages/transducers-fsm/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.26...@thi.ng/transducers-fsm@1.1.27) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/transducers-fsm + + + + + ## [1.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-fsm@1.1.25...@thi.ng/transducers-fsm@1.1.26) (2020-06-01) **Note:** Version bump only for package @thi.ng/transducers-fsm diff --git a/packages/transducers-fsm/package.json b/packages/transducers-fsm/package.json index 11eb2dcdba..ed098c7e2e 100644 --- a/packages/transducers-fsm/package.json +++ b/packages/transducers-fsm/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers-fsm", - "version": "1.1.26", + "version": "1.1.27", "description": "Transducer-based Finite State Machine transformer", "module": "./index.js", "main": "./lib/index.js", @@ -43,8 +43,8 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/transducers-hdom/CHANGELOG.md b/packages/transducers-hdom/CHANGELOG.md index a698d1d30f..652cb30ccc 100644 --- a/packages/transducers-hdom/CHANGELOG.md +++ b/packages/transducers-hdom/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.56](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.55...@thi.ng/transducers-hdom@2.0.56) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/transducers-hdom + + + + + ## [2.0.55](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-hdom@2.0.54...@thi.ng/transducers-hdom@2.0.55) (2020-06-01) **Note:** Version bump only for package @thi.ng/transducers-hdom diff --git a/packages/transducers-hdom/package.json b/packages/transducers-hdom/package.json index 8c42c88770..36f9c227f3 100644 --- a/packages/transducers-hdom/package.json +++ b/packages/transducers-hdom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers-hdom", - "version": "2.0.55", + "version": "2.0.56", "description": "Transducer based UI updater for @thi.ng/hdom", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/hdom": "^8.0.27", - "@thi.ng/hiccup": "^3.2.24", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/hdom": "^8.0.28", + "@thi.ng/hiccup": "^3.2.25", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/transducers-patch/CHANGELOG.md b/packages/transducers-patch/CHANGELOG.md index 3883f2c6f0..32c53ab5e3 100644 --- a/packages/transducers-patch/CHANGELOG.md +++ b/packages/transducers-patch/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.18](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.17...@thi.ng/transducers-patch@0.1.18) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/transducers-patch + + + + + ## [0.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-patch@0.1.16...@thi.ng/transducers-patch@0.1.17) (2020-06-01) **Note:** Version bump only for package @thi.ng/transducers-patch diff --git a/packages/transducers-patch/package.json b/packages/transducers-patch/package.json index 802b364595..e164b27340 100644 --- a/packages/transducers-patch/package.json +++ b/packages/transducers-patch/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers-patch", - "version": "0.1.17", + "version": "0.1.18", "description": "Reducers for patch-based, immutable-by-default array & object editing", "module": "./index.js", "main": "./lib/index.js", @@ -43,11 +43,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/checks": "^2.7.1", "@thi.ng/errors": "^1.2.14", - "@thi.ng/paths": "^4.0.7", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/paths": "^4.0.8", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/transducers-stats/CHANGELOG.md b/packages/transducers-stats/CHANGELOG.md index 7e0f3c3764..700d9b71af 100644 --- a/packages/transducers-stats/CHANGELOG.md +++ b/packages/transducers-stats/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.27](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.26...@thi.ng/transducers-stats@1.1.27) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/transducers-stats + + + + + ## [1.1.26](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers-stats@1.1.25...@thi.ng/transducers-stats@1.1.26) (2020-06-01) **Note:** Version bump only for package @thi.ng/transducers-stats diff --git a/packages/transducers-stats/package.json b/packages/transducers-stats/package.json index 120950991f..3ce1031ee5 100644 --- a/packages/transducers-stats/package.json +++ b/packages/transducers-stats/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers-stats", - "version": "1.1.26", + "version": "1.1.27", "description": "Transducers for statistical / technical analysis", "module": "./index.js", "main": "./lib/index.js", @@ -43,10 +43,10 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/checks": "^2.7.0", - "@thi.ng/dcons": "^2.2.19", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/dcons": "^2.2.20", "@thi.ng/errors": "^1.2.14", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/transducers/CHANGELOG.md b/packages/transducers/CHANGELOG.md index a1542dc6fc..89ff18ec8e 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. +# [7.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@7.0.0...@thi.ng/transducers@7.1.0) (2020-06-14) + + +### Features + +* **transducers:** add keyPermutations, tests, update readme ([5110d50](https://github.com/thi-ng/umbrella/commit/5110d50ba0c499c48c288820b9fb73ee42f9142f)) + + + + + # [7.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@6.7.0...@thi.ng/transducers@7.0.0) (2020-06-01) diff --git a/packages/transducers/package.json b/packages/transducers/package.json index bd24da948d..0ae2e69d08 100644 --- a/packages/transducers/package.json +++ b/packages/transducers/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers", - "version": "7.0.0", + "version": "7.1.0", "description": "Lightweight transducer implementations for ES6 / TypeScript", "module": "./index.js", "main": "./lib/index.js", @@ -43,16 +43,16 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/arrays": "^0.6.8", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/compare": "^1.3.7", - "@thi.ng/compose": "^1.4.8", + "@thi.ng/api": "^6.11.1", + "@thi.ng/arrays": "^0.6.9", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/compare": "^1.3.8", + "@thi.ng/compose": "^1.4.9", "@thi.ng/equiv": "^1.0.23", "@thi.ng/errors": "^1.2.14", - "@thi.ng/math": "^1.7.10", - "@thi.ng/random": "^1.4.10", - "@thi.ng/strings": "^1.8.9", + "@thi.ng/math": "^1.7.11", + "@thi.ng/random": "^1.4.11", + "@thi.ng/strings": "^1.8.10", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/unionstruct/CHANGELOG.md b/packages/unionstruct/CHANGELOG.md index bb593e62f4..69cd9074c8 100644 --- a/packages/unionstruct/CHANGELOG.md +++ b/packages/unionstruct/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@1.1.16...@thi.ng/unionstruct@1.1.17) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/unionstruct + + + + + # [1.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@1.0.6...@thi.ng/unionstruct@1.1.0) (2019-07-07) ### Bug Fixes diff --git a/packages/unionstruct/package.json b/packages/unionstruct/package.json index 70ae22304d..f4e0d19421 100644 --- a/packages/unionstruct/package.json +++ b/packages/unionstruct/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/unionstruct", - "version": "1.1.16", + "version": "1.1.17", "description": "C-style struct, union and bitfield read/write views of ArrayBuffers", "module": "./index.js", "main": "./lib/index.js", diff --git a/packages/vector-pools/CHANGELOG.md b/packages/vector-pools/CHANGELOG.md index 3e4f145eaa..1b1c826ce2 100644 --- a/packages/vector-pools/CHANGELOG.md +++ b/packages/vector-pools/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.31...@thi.ng/vector-pools@1.0.32) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/vector-pools + + + + + ## [1.0.31](https://github.com/thi-ng/umbrella/compare/@thi.ng/vector-pools@1.0.30...@thi.ng/vector-pools@1.0.31) (2020-06-01) **Note:** Version bump only for package @thi.ng/vector-pools diff --git a/packages/vector-pools/package.json b/packages/vector-pools/package.json index 3299676071..616ef2515e 100644 --- a/packages/vector-pools/package.json +++ b/packages/vector-pools/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/vector-pools", - "version": "1.0.31", + "version": "1.0.32", "description": "Data structures for managing & working with strided, memory mapped vectors", "module": "./index.js", "main": "./lib/index.js", @@ -43,12 +43,12 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/binary": "^2.0.7", - "@thi.ng/checks": "^2.7.0", - "@thi.ng/malloc": "^4.1.16", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/api": "^6.11.1", + "@thi.ng/binary": "^2.0.8", + "@thi.ng/checks": "^2.7.1", + "@thi.ng/malloc": "^4.1.17", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/vectors/CHANGELOG.md b/packages/vectors/CHANGELOG.md index 7566da6169..af8dafcd9e 100644 --- a/packages/vectors/CHANGELOG.md +++ b/packages/vectors/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.4.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.4.3...@thi.ng/vectors@4.4.4) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/vectors + + + + + ## [4.4.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/vectors@4.4.2...@thi.ng/vectors@4.4.3) (2020-06-01) **Note:** Version bump only for package @thi.ng/vectors diff --git a/packages/vectors/package.json b/packages/vectors/package.json index 189fb7849a..dbfdd4c49b 100644 --- a/packages/vectors/package.json +++ b/packages/vectors/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/vectors", - "version": "4.4.3", + "version": "4.4.4", "description": "Optimized 2d/3d/4d and arbitrary length vector operations", "module": "./index.js", "main": "./lib/index.js", @@ -43,15 +43,15 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/binary": "^2.0.7", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/binary": "^2.0.8", + "@thi.ng/checks": "^2.7.1", "@thi.ng/equiv": "^1.0.23", "@thi.ng/errors": "^1.2.14", - "@thi.ng/math": "^1.7.10", - "@thi.ng/memoize": "^2.0.12", - "@thi.ng/random": "^1.4.10", - "@thi.ng/transducers": "^7.0.0", + "@thi.ng/math": "^1.7.11", + "@thi.ng/memoize": "^2.0.13", + "@thi.ng/random": "^1.4.11", + "@thi.ng/transducers": "^7.1.0", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/webgl-msdf/CHANGELOG.md b/packages/webgl-msdf/CHANGELOG.md index 07618e7724..b4d55e0327 100644 --- a/packages/webgl-msdf/CHANGELOG.md +++ b/packages/webgl-msdf/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.37](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.36...@thi.ng/webgl-msdf@0.1.37) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/webgl-msdf + + + + + ## [0.1.36](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-msdf@0.1.35...@thi.ng/webgl-msdf@0.1.36) (2020-06-07) **Note:** Version bump only for package @thi.ng/webgl-msdf diff --git a/packages/webgl-msdf/package.json b/packages/webgl-msdf/package.json index 2be92b04eb..29cc520c6e 100644 --- a/packages/webgl-msdf/package.json +++ b/packages/webgl-msdf/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/webgl-msdf", - "version": "0.1.36", + "version": "0.1.37", "description": "Multi-channel SDF font rendering & basic text layout for WebGL", "module": "./index.js", "main": "./lib/index.js", @@ -43,12 +43,12 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/shader-ast": "^0.3.23", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/vector-pools": "^1.0.31", - "@thi.ng/vectors": "^4.4.3", - "@thi.ng/webgl": "^2.0.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/shader-ast": "^0.3.24", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/vector-pools": "^1.0.32", + "@thi.ng/vectors": "^4.4.4", + "@thi.ng/webgl": "^2.0.1", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/webgl-shadertoy/CHANGELOG.md b/packages/webgl-shadertoy/CHANGELOG.md index 5c3720be06..0197f145bd 100644 --- a/packages/webgl-shadertoy/CHANGELOG.md +++ b/packages/webgl-shadertoy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.24](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.23...@thi.ng/webgl-shadertoy@0.2.24) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/webgl-shadertoy + + + + + ## [0.2.23](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl-shadertoy@0.2.22...@thi.ng/webgl-shadertoy@0.2.23) (2020-06-07) **Note:** Version bump only for package @thi.ng/webgl-shadertoy diff --git a/packages/webgl-shadertoy/package.json b/packages/webgl-shadertoy/package.json index 2b1373e1fb..90271147c4 100644 --- a/packages/webgl-shadertoy/package.json +++ b/packages/webgl-shadertoy/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/webgl-shadertoy", - "version": "0.2.23", + "version": "0.2.24", "description": "Basic WebGL scaffolding for running interactive fragment shaders via @thi.ng/shader-ast", "module": "./index.js", "main": "./lib/index.js", @@ -43,11 +43,11 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/shader-ast": "^0.3.23", - "@thi.ng/shader-ast-glsl": "^0.1.29", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/webgl": "^2.0.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/shader-ast": "^0.3.24", + "@thi.ng/shader-ast-glsl": "^0.1.30", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/webgl": "^2.0.1", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/webgl/CHANGELOG.md b/packages/webgl/CHANGELOG.md index 5320e17525..c4896a029c 100644 --- a/packages/webgl/CHANGELOG.md +++ b/packages/webgl/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@2.0.0...@thi.ng/webgl@2.0.1) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/webgl + + + + + # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/webgl@1.0.17...@thi.ng/webgl@2.0.0) (2020-06-07) diff --git a/packages/webgl/package.json b/packages/webgl/package.json index 5bc92252f1..3f5510114d 100644 --- a/packages/webgl/package.json +++ b/packages/webgl/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/webgl", - "version": "2.0.0", + "version": "2.0.1", "description": "WebGL & GLSL abstraction layer", "module": "./index.js", "main": "./lib/index.js", @@ -43,21 +43,21 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/adapt-dpi": "^1.0.0", - "@thi.ng/api": "^6.11.0", - "@thi.ng/associative": "^4.0.11", - "@thi.ng/binary": "^2.0.7", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/adapt-dpi": "^1.0.1", + "@thi.ng/api": "^6.11.1", + "@thi.ng/associative": "^4.1.0", + "@thi.ng/binary": "^2.0.8", + "@thi.ng/checks": "^2.7.1", "@thi.ng/equiv": "^1.0.23", "@thi.ng/errors": "^1.2.14", - "@thi.ng/matrices": "^0.6.18", - "@thi.ng/pixel": "^0.3.1", - "@thi.ng/shader-ast": "^0.3.23", - "@thi.ng/shader-ast-glsl": "^0.1.29", - "@thi.ng/shader-ast-stdlib": "^0.3.22", - "@thi.ng/transducers": "^7.0.0", - "@thi.ng/vector-pools": "^1.0.31", - "@thi.ng/vectors": "^4.4.3", + "@thi.ng/matrices": "^0.6.19", + "@thi.ng/pixel": "^0.3.2", + "@thi.ng/shader-ast": "^0.3.24", + "@thi.ng/shader-ast-glsl": "^0.1.30", + "@thi.ng/shader-ast-stdlib": "^0.3.23", + "@thi.ng/transducers": "^7.1.0", + "@thi.ng/vector-pools": "^1.0.32", + "@thi.ng/vectors": "^4.4.4", "tslib": "^1.12.0" }, "files": [ diff --git a/packages/zipper/CHANGELOG.md b/packages/zipper/CHANGELOG.md index 451aa12060..b944e0415b 100644 --- a/packages/zipper/CHANGELOG.md +++ b/packages/zipper/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/zipper@0.1.16...@thi.ng/zipper@0.1.17) (2020-06-14) + +**Note:** Version bump only for package @thi.ng/zipper + + + + + ## [0.1.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/zipper@0.1.15...@thi.ng/zipper@0.1.16) (2020-06-01) **Note:** Version bump only for package @thi.ng/zipper diff --git a/packages/zipper/package.json b/packages/zipper/package.json index bb3f926328..b40b1d61c8 100644 --- a/packages/zipper/package.json +++ b/packages/zipper/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/zipper", - "version": "0.1.16", + "version": "0.1.17", "description": "Functional tree editing, manipulation & navigation", "module": "./index.js", "main": "./lib/index.js", @@ -43,9 +43,9 @@ "typescript": "^3.9.2" }, "dependencies": { - "@thi.ng/api": "^6.11.0", - "@thi.ng/arrays": "^0.6.8", - "@thi.ng/checks": "^2.7.0", + "@thi.ng/api": "^6.11.1", + "@thi.ng/arrays": "^0.6.9", + "@thi.ng/checks": "^2.7.1", "tslib": "^1.12.0" }, "files": [