From e0136580a72a6c64f085ab671d658e12a00bd1c8 Mon Sep 17 00:00:00 2001 From: Maxwell Brown Date: Mon, 6 Feb 2023 18:09:11 -0500 Subject: [PATCH] migrate @fp-ts/data to @effect/data --- .babel.cjs.json | 6 +- .babel.mjs.json | 2 +- .changeset/config.json | 4 +- .changeset/great-windows-sing.md | 5 + .changeset/purple-kiwis-own.md | 5 - .changeset/spicy-kiwis-do.md | 5 - .devcontainer.json | 11 + .eslintrc.cjs | 6 +- .github/FUNDING.yml | 4 +- .github/ISSUE_TEMPLATE/Bug_report.md | 35 - .github/ISSUE_TEMPLATE/Documentation.md | 6 - .github/ISSUE_TEMPLATE/Feature_request.md | 41 - .github/PULL_REQUEST_TEMPLATE.md | 15 - .github/workflows/main.yml | 7 +- .github/workflows/pr.yml | 9 +- .gitignore | 1 + .gitpod.yml | 1 + .vscode/settings.json | 2 +- .vscode/tasks.json | 8 +- CHANGELOG.md | 534 ------------ LICENSE | 2 +- README.md | 38 +- docs/_config.yml | 10 +- docs/_sass/custom/custom.scss | 5 - docs/cheatsheets/Either.md | 166 ---- docs/cheatsheets/Option.md | 166 ---- docs/cheatsheets/ReadonlyArray.md | 261 ------ docs/cheatsheets/These.md | 195 ----- docs/cheatsheets/index.md | 6 - docs/fp-ts-logo.png | Bin 14032 -> 0 bytes docs/index.md | 33 +- dtslint/index.d.ts | 1 - dtslint/ts4.7/Brand.ts | 45 - dtslint/ts4.7/ReadonlyArray.ts | 231 ----- dtslint/ts4.7/index.d.ts | 0 dtslint/ts4.7/tsconfig.json | 23 - dtslint/ts4.7/tslint.json | 25 - package.json | 58 +- pnpm-lock.yaml | 797 +++++++++++------- src/Brand.ts | 17 +- src/Chunk.ts | 25 +- src/Context.ts | 4 +- src/Data.ts | 10 +- src/Differ.ts | 22 +- src/Differ/ChunkPatch.ts | 8 +- src/Differ/ContextPatch.ts | 6 +- src/Differ/HashMapPatch.ts | 8 +- src/Differ/HashSetPatch.ts | 6 +- src/Differ/OrPatch.ts | 6 +- src/Duration.ts | 8 +- src/Equal.ts | 9 +- src/Gen.ts | 2 +- src/Hash.ts | 6 +- src/HashMap.ts | 13 +- src/HashSet.ts | 4 +- src/List.ts | 19 +- src/MutableHashMap.ts | 15 +- src/MutableHashSet.ts | 9 +- src/MutableList.ts | 10 +- src/MutableQueue.ts | 13 +- src/MutableRef.ts | 6 +- src/RedBlackTree.ts | 14 +- src/SortedMap.ts | 28 +- src/SortedSet.ts | 21 +- src/index.ts | 56 +- src/internal/Context.ts | 12 +- src/internal/Differ.ts | 26 +- src/internal/Differ/ChunkPatch.ts | 14 +- src/internal/Differ/ContextPatch.ts | 19 +- src/internal/Differ/HashMapPatch.ts | 16 +- src/internal/Differ/HashSetPatch.ts | 14 +- src/internal/Differ/OrPatch.ts | 38 +- src/internal/HashMap.ts | 16 +- src/internal/HashMap/bitwise.ts | 2 +- src/internal/HashMap/keySet.ts | 6 +- src/internal/HashMap/node.ts | 10 +- src/internal/HashSet.ts | 17 +- src/internal/RedBlackTree.ts | 34 +- src/internal/RedBlackTree/iterator.ts | 6 +- test/Brand.ts | 2 +- test/Chunk.ts | 4 +- test/Context.ts | 8 +- test/Data.ts | 4 +- test/Differ.ts | 10 +- test/Duration.ts | 2 +- test/Gen.ts | 2 +- test/HashMap.ts | 8 +- test/HashSet.ts | 8 +- test/List.ts | 2 +- test/MutableHashMap.ts | 6 +- test/MutableList.ts | 4 +- test/MutableQueue.ts | 4 +- test/NonEmpty.ts | 4 +- test/RedBlackTree.ts | 8 +- test/SortedMap.ts | 6 +- test/SortedSet.ts | 6 +- test/index.ts | 2 +- tsconfig.base.json | 17 +- tsconfig.eslint.json | 15 - tsconfig.examples.json | 11 + tsconfig.json | 2 +- tsconfig.madge.json | 4 +- ...nfig.build-test.json => tsconfig.test.json | 0 vitest.config.ts | 11 +- 104 files changed, 937 insertions(+), 2557 deletions(-) create mode 100644 .changeset/great-windows-sing.md delete mode 100644 .changeset/purple-kiwis-own.md delete mode 100644 .changeset/spicy-kiwis-do.md create mode 100644 .devcontainer.json delete mode 100644 .github/ISSUE_TEMPLATE/Bug_report.md delete mode 100644 .github/ISSUE_TEMPLATE/Documentation.md delete mode 100644 .github/ISSUE_TEMPLATE/Feature_request.md delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 CHANGELOG.md delete mode 100644 docs/_sass/custom/custom.scss delete mode 100644 docs/cheatsheets/Either.md delete mode 100644 docs/cheatsheets/Option.md delete mode 100644 docs/cheatsheets/ReadonlyArray.md delete mode 100644 docs/cheatsheets/These.md delete mode 100644 docs/cheatsheets/index.md delete mode 100644 docs/fp-ts-logo.png delete mode 100644 dtslint/index.d.ts delete mode 100644 dtslint/ts4.7/Brand.ts delete mode 100644 dtslint/ts4.7/ReadonlyArray.ts delete mode 100644 dtslint/ts4.7/index.d.ts delete mode 100644 dtslint/ts4.7/tsconfig.json delete mode 100644 dtslint/ts4.7/tslint.json delete mode 100644 tsconfig.eslint.json create mode 100644 tsconfig.examples.json rename tsconfig.build-test.json => tsconfig.test.json (100%) diff --git a/.babel.cjs.json b/.babel.cjs.json index 55519f77..69687438 100644 --- a/.babel.cjs.json +++ b/.babel.cjs.json @@ -1,3 +1,7 @@ { - "plugins": [["@babel/transform-modules-commonjs"], ["annotate-pure-calls"]] + "plugins": [ + ["@effect/babel-plugin"], + ["@babel/transform-modules-commonjs"], + ["annotate-pure-calls"] + ] } diff --git a/.babel.mjs.json b/.babel.mjs.json index f4bece6b..b50cc325 100644 --- a/.babel.mjs.json +++ b/.babel.mjs.json @@ -1,3 +1,3 @@ { - "plugins": [["annotate-pure-calls"]] + "plugins": [["@effect/babel-plugin"], ["annotate-pure-calls"]] } diff --git a/.changeset/config.json b/.changeset/config.json index c3da1cbc..8817003e 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -1,6 +1,6 @@ { - "$schema": "https://unpkg.com/@changesets/config@1.6.4/schema.json", - "changelog": ["@changesets/changelog-github", { "repo": "fp-ts/data" }], + "$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json", + "changelog": ["@changesets/changelog-github", { "repo": "Effect-TS/data" }], "commit": false, "linked": [], "access": "restricted", diff --git a/.changeset/great-windows-sing.md b/.changeset/great-windows-sing.md new file mode 100644 index 00000000..37ed8e87 --- /dev/null +++ b/.changeset/great-windows-sing.md @@ -0,0 +1,5 @@ +--- +"@effect/io": patch +--- + +migrate @fp-ts/data to @effect/data diff --git a/.changeset/purple-kiwis-own.md b/.changeset/purple-kiwis-own.md deleted file mode 100644 index 0452f8b5..00000000 --- a/.changeset/purple-kiwis-own.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@fp-ts/data": patch ---- - -update dual api signatures for Chunk / List diff --git a/.changeset/spicy-kiwis-do.md b/.changeset/spicy-kiwis-do.md deleted file mode 100644 index 66771795..00000000 --- a/.changeset/spicy-kiwis-do.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@fp-ts/data": patch ---- - -remove nested Tag in Context/add dual API diff --git a/.devcontainer.json b/.devcontainer.json new file mode 100644 index 00000000..4e153b3e --- /dev/null +++ b/.devcontainer.json @@ -0,0 +1,11 @@ +{ + "image": "mcr.microsoft.com/vscode/devcontainers/typescript-node:16", + "customizations": { + "vscode": { + "extensions": [ + "dbaeumer.vscode-eslint" + ] + } + }, + "initializeCommand": "npm install -g pnpm && pnpm install && pnpm run build" +} diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 8aa9179f..e0566017 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -4,8 +4,7 @@ module.exports = { parser: "@typescript-eslint/parser", parserOptions: { ecmaVersion: 2018, - sourceType: "module", - project: "./tsconfig.eslint.json" + sourceType: "module" }, settings: { "import/parsers": { @@ -44,7 +43,6 @@ module.exports = { "sort-destructure-keys/sort-destructure-keys": "error", "deprecation/deprecation": "off", "@typescript-eslint/array-type": ["warn", { "default": "generic", "readonly": "generic" }], - "@typescript-eslint/prefer-readonly": "warn", "@typescript-eslint/member-delimiter-style": 0, "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/ban-types": "off", @@ -68,7 +66,7 @@ module.exports = { { config: { "indentWidth": 2, - "lineWidth": 100, + "lineWidth": 120, "semiColons": "asi", "quoteStyle": "alwaysDouble", "trailingCommas": "never", diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 7c2e87df..af6cff09 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1,3 @@ -github: [gcanti] +# These are supported funding model platforms + +github: [mikearnaldi] diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md deleted file mode 100644 index b250ba5f..00000000 --- a/.github/ISSUE_TEMPLATE/Bug_report.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -name: "\U0001F41B Bug report" -about: Create a report to help make `@fp-ts/data` better ---- - -## 🐛 Bug report - -### Current Behavior - - - -### Expected behavior - - - -### Reproducible example - -### Suggested solution(s) - - - -### Additional context - - - -### Your environment - -Which versions of `@fp-ts/data` are affected by this issue? Did this work in previous versions of `@fp-ts/data`? - - - -| Software | Version(s) | -| ----------- | ---------- | -| @fp-ts/data | | -| TypeScript | | diff --git a/.github/ISSUE_TEMPLATE/Documentation.md b/.github/ISSUE_TEMPLATE/Documentation.md deleted file mode 100644 index 9a67dafb..00000000 --- a/.github/ISSUE_TEMPLATE/Documentation.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -name: "\U0001F41B Documentation" -about: Improvements or suggestions of `@fp-ts/data` documentation ---- - -## 📖 Documentation diff --git a/.github/ISSUE_TEMPLATE/Feature_request.md b/.github/ISSUE_TEMPLATE/Feature_request.md deleted file mode 100644 index 3894e231..00000000 --- a/.github/ISSUE_TEMPLATE/Feature_request.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -name: "\U0001F680Feature request" -about: Suggest an idea for `@fp-ts/data` ---- - -## 🚀 Feature request - -### Current Behavior - - - -### Desired Behavior - - - -### Suggested Solution - - - - - -### Who does this impact? Who is this for? - - - -### Describe alternatives you've considered - - - -### Additional context - - - -### Your environment - - - -| Software | Version(s) | -| ----------- | ---------- | -| @fp-ts/data | | -| TypeScript | | diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 132f82dc..00000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,15 +0,0 @@ -**Before submitting a pull request,** please make sure the following is done: - -- Fork [the repository](https://github.com/gcanti/fp-ts) and create your branch from `master` (\*). -- Run `npm install` in the repository root. -- If you've fixed a bug or added code that should be tested, add tests! -- Ensure the test suite passes (`npm test`). - -**Note**. If you've fixed a bug please link the related issue or, if missing, open an issue before sending a PR. - -**Note**. If you find a typo in the **documentation**, make sure to modify the corresponding source (docs are generated). - -(\*) - -- if you want to send a PR related to `fp-ts@1.x` please create your branch from `1.x` -- if you want to send a PR related to `fp-ts@2.x` please create your branch from `2.x` diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c43c90b7..d52f1556 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -41,9 +41,10 @@ jobs: restore-keys: | ${{ runner.os }}-pnpm-store- - run: pnpm install - - run: pnpm build - - run: pnpm test - - run: pnpm lint + - run: pnpm run build + - run: pnpm run circular + - run: pnpm run test + - run: pnpm run lint - run: pnpm run docs - name: Create Release Pull Request or Publish id: changesets diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index e4807217..5687851e 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -10,7 +10,7 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: self-hosted strategy: matrix: @@ -42,7 +42,8 @@ jobs: restore-keys: | ${{ runner.os }}-pnpm-store- - run: pnpm install - - run: pnpm build - - run: pnpm test - - run: pnpm lint + - run: pnpm run build + - run: pnpm run circular + - run: pnpm run test --coverage + - run: pnpm run lint - run: pnpm run docs diff --git a/.gitignore b/.gitignore index f691932a..2a1b0eb4 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ yarn-error.log tmp/ build/ dist/ +.cache/ diff --git a/.gitpod.yml b/.gitpod.yml index 81c41226..17c742ee 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -6,3 +6,4 @@ github: vscode: extensions: - dbaeumer.vscode-eslint + - effect.effect-debugger diff --git a/.vscode/settings.json b/.vscode/settings.json index 68e92ae9..b0e0f610 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,7 +11,7 @@ "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[javascript]": { - "editor.defaultFormatter": "dbaeumer.vscode-eslint" + "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[javascriptreact]": { "editor.defaultFormatter": "dbaeumer.vscode-eslint" diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 89a447d3..fd9b96df 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -4,14 +4,14 @@ { "label": "clean", "type": "shell", - "command": "yarn clean", + "command": "pnpm run clean", "isBackground": false, "problemMatcher": [] }, { "label": "build-watch", "type": "shell", - "command": "yarn build-watch", + "command": "pnpm run build-watch", "problemMatcher": ["$tsc-watch"], "isBackground": true, "presentation": { @@ -25,7 +25,7 @@ { "label": "build", "type": "shell", - "command": "yarn build", + "command": "pnpm run build", "problemMatcher": [], "isBackground": false }, @@ -33,7 +33,7 @@ "label": "test-watch", "dependsOn": ["build-watch"], "type": "shell", - "command": "yarn test", + "command": "pnpm run test", "problemMatcher": [] } ] diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 4b7d6608..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,534 +0,0 @@ -# @fp-ts/data - -## 0.1.1 - -### Patch Changes - -- [#202](https://github.com/fp-ts/data/pull/202) [`e4053cc`](https://github.com/fp-ts/data/commit/e4053cc132c94f84450fc09719ddc6bbfacb4f87) Thanks [@IMax153](https://github.com/IMax153)! - convert patch types to dual - -- [#202](https://github.com/fp-ts/data/pull/202) [`65bc349`](https://github.com/fp-ts/data/commit/65bc349812abca01d044c0a2cda31e4918e75c24) Thanks [@IMax153](https://github.com/IMax153)! - convert mutable types to dual - -- [#202](https://github.com/fp-ts/data/pull/202) [`bfd4382`](https://github.com/fp-ts/data/commit/bfd43823ecce2d7e6676634d795be50ee0d449c7) Thanks [@IMax153](https://github.com/IMax153)! - convert Context to dual - -- [#202](https://github.com/fp-ts/data/pull/202) [`fa2b9be`](https://github.com/fp-ts/data/commit/fa2b9be76b761efe79bf4231709c1c17d1128f06) Thanks [@IMax153](https://github.com/IMax153)! - convert Differ to dual - -- [#202](https://github.com/fp-ts/data/pull/202) [`188305e`](https://github.com/fp-ts/data/commit/188305e4c5be22e00ed64837539608d5d8fb2b74) Thanks [@IMax153](https://github.com/IMax153)! - convert HashSet to dual - -- [#202](https://github.com/fp-ts/data/pull/202) [`f30df0e`](https://github.com/fp-ts/data/commit/f30df0e1c1f47085e8168c854775a6ffac68bb5d) Thanks [@IMax153](https://github.com/IMax153)! - convert Duration to dual - -- [#202](https://github.com/fp-ts/data/pull/202) [`bcfb40c`](https://github.com/fp-ts/data/commit/bcfb40c388ff039c4009f7299225da7c3b1087b0) Thanks [@IMax153](https://github.com/IMax153)! - convert HashMap to dual - -- [#202](https://github.com/fp-ts/data/pull/202) [`74a3a27`](https://github.com/fp-ts/data/commit/74a3a2710bd89a4efb3b65847b870a9f6770d87b) Thanks [@IMax153](https://github.com/IMax153)! - convert Context to dual - -- [#200](https://github.com/fp-ts/data/pull/200) [`274525e`](https://github.com/fp-ts/data/commit/274525eb6a5844507f38773f11183b714a8bd793) Thanks [@IMax153](https://github.com/IMax153)! - re-implement List - -- [#200](https://github.com/fp-ts/data/pull/200) [`627fe65`](https://github.com/fp-ts/data/commit/627fe657cd8066f5379e79afa54c4c933ee371a0) Thanks [@IMax153](https://github.com/IMax153)! - make Chunk dual - -- [#202](https://github.com/fp-ts/data/pull/202) [`1b6bb97`](https://github.com/fp-ts/data/commit/1b6bb97a2c89f149f0f77e00fa87e8e39e24972b) Thanks [@IMax153](https://github.com/IMax153)! - convert sorted data types to dual - -## 0.1.0 - -### Minor Changes - -- [#198](https://github.com/fp-ts/data/pull/198) [`e3c7d55`](https://github.com/fp-ts/data/commit/e3c7d55c65e5a2702f2f70d945536dcc898c2089) Thanks [@gcanti](https://github.com/gcanti)! - upgrade to /core 0.1.1 - -### Patch Changes - -- [#198](https://github.com/fp-ts/data/pull/198) [`1bcc20a`](https://github.com/fp-ts/data/commit/1bcc20a115c27cbe25698cab0f483958aa9b04c3) Thanks [@gcanti](https://github.com/gcanti)! - Switch to symbol presence for structural check and move Gen to root - -## 0.0.41 - -### Patch Changes - -- [#193](https://github.com/fp-ts/data/pull/193) [`4241470`](https://github.com/fp-ts/data/commit/4241470a76fd5a454f42651c284971ce6c7c8a75) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - introduce Data and Case - -## 0.0.40 - -### Patch Changes - -- [#181](https://github.com/fp-ts/data/pull/181) [`7d9a3b6`](https://github.com/fp-ts/data/commit/7d9a3b6fdc1f5d154b78b16f9fa2ad92476206cf) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Introduce Equivalence, change Equal to be strict - -## 0.0.39 - -### Patch Changes - -- [#190](https://github.com/fp-ts/data/pull/190) [`f7e1ada`](https://github.com/fp-ts/data/commit/f7e1adad90ad4f52d64e199a30fa933627b62fec) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Improve stringify of custom types - -## 0.0.38 - -### Patch Changes - -- [#187](https://github.com/fp-ts/data/pull/187) [`4ec9b27`](https://github.com/fp-ts/data/commit/4ec9b27bba2fb4ae02d64cacccc7937ebb37a4b8) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Update build scripts - -## 0.0.37 - -### Patch Changes - -- [#184](https://github.com/fp-ts/data/pull/184) [`9106537`](https://github.com/fp-ts/data/commit/9106537ae7c9973f3869e47471b2df87624225d2) Thanks [@IMax153](https://github.com/IMax153)! - add proof-of-concept branding module' - -## 0.0.36 - -### Patch Changes - -- [#179](https://github.com/fp-ts/data/pull/179) [`b571890`](https://github.com/fp-ts/data/commit/b571890d3f7760d29ba37d55cbafcd1d7b1446a1) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Simplify Chunk, in https://github.com/fp-ts/data/pull/178 - -## 0.0.35 - -### Patch Changes - -- [#176](https://github.com/fp-ts/data/pull/176) [`d83127a`](https://github.com/fp-ts/data/commit/d83127a8e9e6aa80b08834bb9e04f1441017c934) Thanks [@IMax153](https://github.com/IMax153)! - fix Chunk.unsafeFromArray - -## 0.0.34 - -### Patch Changes - -- [#174](https://github.com/fp-ts/data/pull/174) [`54d1e5a`](https://github.com/fp-ts/data/commit/54d1e5a749777e6d78ec5e2c6c2b7c5765077010) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Track tree depth in Chunk and materialize after MaxDepth - -## 0.0.33 - -### Patch Changes - -- [#172](https://github.com/fp-ts/data/pull/172) [`9447525`](https://github.com/fp-ts/data/commit/9447525532cc64642e1d148c37717292a3a5cdde) Thanks [@IMax153](https://github.com/IMax153)! - fix Chunk.zipAllWith - -## 0.0.32 - -### Patch Changes - -- [#170](https://github.com/fp-ts/data/pull/170) [`c34f0b7`](https://github.com/fp-ts/data/commit/c34f0b739a426b91b3b1e2b55203a122576f63fa) Thanks [@IMax153](https://github.com/IMax153)! - handle concat cases in Chunk.drop/Chunk.take - -## 0.0.31 - -### Patch Changes - -- [#163](https://github.com/fp-ts/data/pull/163) [`a03e765`](https://github.com/fp-ts/data/commit/a03e7658f70e6c208192c953fe72660164e5d885) Thanks [@TylorS](https://github.com/TylorS)! - Add Context.make - -## 0.0.30 - -### Patch Changes - -- [#160](https://github.com/fp-ts/data/pull/160) [`8688df8`](https://github.com/fp-ts/data/commit/8688df8cba7fca9ac74309ee431de1e5342dc655) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Allow for Tag to be attached to global - -## 0.0.29 - -### Patch Changes - -- [#158](https://github.com/fp-ts/data/pull/158) [`7e89925`](https://github.com/fp-ts/data/commit/7e89925e31a5e40675a4f3bbaa9b39d47c7c5118) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Fix MutableHashMap Iterator - -## 0.0.28 - -### Patch Changes - -- [#156](https://github.com/fp-ts/data/pull/156) [`1a65152`](https://github.com/fp-ts/data/commit/1a651525fed1b1ea1682b2712c24c596745d32c7) Thanks [@ptrfrncsmrph](https://github.com/ptrfrncsmrph)! - Fix RedBlackTree.lessThanEqual - -## 0.0.27 - -### Patch Changes - -- [#153](https://github.com/fp-ts/data/pull/153) [`151315f`](https://github.com/fp-ts/data/commit/151315ff0bad1a3a7e1f7af6a4732679486d21e7) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: spread sortBy, sortByNonEmpty input - -- [#153](https://github.com/fp-ts/data/pull/153) [`151315f`](https://github.com/fp-ts/data/commit/151315ff0bad1a3a7e1f7af6a4732679486d21e7) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: relax input (ReadonlyArray -> Iterable) and narrow output (ReadonlyArray -> Array) when possible - -- [#153](https://github.com/fp-ts/data/pull/153) [`151315f`](https://github.com/fp-ts/data/commit/151315ff0bad1a3a7e1f7af6a4732679486d21e7) Thanks [@gcanti](https://github.com/gcanti)! - upgrade to latest @fp-ts/core - -## 0.0.26 - -### Patch Changes - -- [#148](https://github.com/fp-ts/data/pull/148) [`c3939ef`](https://github.com/fp-ts/data/commit/c3939ef384c0c06ffb83ec9d4584c1ba2443f214) Thanks [@gcanti](https://github.com/gcanti)! - These/Validated: switch to standard free semigroup - -- [#150](https://github.com/fp-ts/data/pull/150) [`90b245d`](https://github.com/fp-ts/data/commit/90b245d5f451e6e935fbe4860c78c4878ba4114e) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: align empty signature - -- [#149](https://github.com/fp-ts/data/pull/149) [`c034904`](https://github.com/fp-ts/data/commit/c034904cb590cd828a7f2216279ded7c7fea372e) Thanks [@gcanti](https://github.com/gcanti)! - Chunk: fix prependAllNonEmpty implementation - -- [#147](https://github.com/fp-ts/data/pull/147) [`e6dc944`](https://github.com/fp-ts/data/commit/e6dc944454bcce70dc39163be20f80a86a0885b3) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Improve Chunk's Usability - -## 0.0.25 - -### Patch Changes - -- [#144](https://github.com/fp-ts/data/pull/144) [`23d2b5c`](https://github.com/fp-ts/data/commit/23d2b5c7693ba1ab08db3e553d3b9fdd76a23863) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Avoid sharing mutable buffers in Chunk.prepend/append - -## 0.0.24 - -### Patch Changes - -- [#142](https://github.com/fp-ts/data/pull/142) [`dded325`](https://github.com/fp-ts/data/commit/dded325aac6387358947eea98bbbe06bada6fd8d) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Fix Chunk.prepend - -## 0.0.23 - -### Patch Changes - -- [#140](https://github.com/fp-ts/data/pull/140) [`48e5e1a`](https://github.com/fp-ts/data/commit/48e5e1aceb23c0c37255e6b8522933cdace90c5b) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Remove Queue in favour of MutableList - -- [#140](https://github.com/fp-ts/data/pull/140) [`48e5e1a`](https://github.com/fp-ts/data/commit/48e5e1aceb23c0c37255e6b8522933cdace90c5b) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Remove IterableWeakMap - -- [#140](https://github.com/fp-ts/data/pull/140) [`48e5e1a`](https://github.com/fp-ts/data/commit/48e5e1aceb23c0c37255e6b8522933cdace90c5b) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Remove List in favour of Chunk - -- [#140](https://github.com/fp-ts/data/pull/140) [`48e5e1a`](https://github.com/fp-ts/data/commit/48e5e1aceb23c0c37255e6b8522933cdace90c5b) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Remove SafeEval in favour of Effect - -## 0.0.22 - -### Patch Changes - -- [#138](https://github.com/fp-ts/data/pull/138) [`4b3c483`](https://github.com/fp-ts/data/commit/4b3c483b2ad43d2885fb53ab47a8bd834871a43f) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Improve dependency ranges - -## 0.0.21 - -### Patch Changes - -- [#136](https://github.com/fp-ts/data/pull/136) [`3a5f1c8`](https://github.com/fp-ts/data/commit/3a5f1c8c21fddac4c3896cf6c52c8446d3639756) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Try catch over possible globals with throwable getters - -## 0.0.20 - -### Patch Changes - -- [#133](https://github.com/fp-ts/data/pull/133) [`df46648`](https://github.com/fp-ts/data/commit/df46648e34dc472c003b83d45854bf53b6daabe6) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Improved structural equality - -## 0.0.19 - -### Patch Changes - -- [#129](https://github.com/fp-ts/data/pull/129) [`943e195`](https://github.com/fp-ts/data/commit/943e195ebd4a1dfbe0711c299926cabb227ec23d) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Improve MutableRef API - -## 0.0.18 - -### Patch Changes - -- [#126](https://github.com/fp-ts/data/pull/126) [`da6f154`](https://github.com/fp-ts/data/commit/da6f1542d0cf10d6844d1845555f5242fcc7c6c7) Thanks [@gcanti](https://github.com/gcanti)! - HashMap: rename update to replace to align with /optic - -- [#126](https://github.com/fp-ts/data/pull/126) [`1a8688d`](https://github.com/fp-ts/data/commit/1a8688de07f3c6bbd4adc97a55d8c0b271b1ede3) Thanks [@gcanti](https://github.com/gcanti)! - add TraversableFilterable typeclass - -- [#126](https://github.com/fp-ts/data/pull/126) [`00a501f`](https://github.com/fp-ts/data/commit/00a501fe7629233d62fd8d1032ca87849534b408) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: rename modifyAt to modify, updateAt to update (API uniformity) - -- [#126](https://github.com/fp-ts/data/pull/126) [`7502977`](https://github.com/fp-ts/data/commit/7502977d485d140a14306c5d3d19ff3583bb156b) Thanks [@gcanti](https://github.com/gcanti)! - HashMap / MutableHashMap: rename modify to modifyAt to align with /optic - -- [#126](https://github.com/fp-ts/data/pull/126) [`018d628`](https://github.com/fp-ts/data/commit/018d628dab23fb00ba7eae7a15a2fdf7793e88cf) Thanks [@gcanti](https://github.com/gcanti)! - MutableHashMap: rename update to replace to align with /optic - -- [#126](https://github.com/fp-ts/data/pull/126) [`2578beb`](https://github.com/fp-ts/data/commit/2578beb4e3cb04b05ed4ea71d057e41ad8a0b747) Thanks [@gcanti](https://github.com/gcanti)! - add Compactable typeclass - -- [#126](https://github.com/fp-ts/data/pull/126) [`d691717`](https://github.com/fp-ts/data/commit/d691717c1224175e31cdb8530e1b825e0b478430) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray, List, Chunk: get, remove, update, updateOption, modify, modifyOption - -- [#126](https://github.com/fp-ts/data/pull/126) [`9ab8d14`](https://github.com/fp-ts/data/commit/9ab8d1446219738993f44d5bc542818f9b277b5f) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: rename deleteAt to remove (API uniformity) - -- [#126](https://github.com/fp-ts/data/pull/126) [`dcb7d52`](https://github.com/fp-ts/data/commit/dcb7d52c5ec869b3f9273b18e265d69e82f18d96) Thanks [@gcanti](https://github.com/gcanti)! - upgrade to latest @fp-ts/core - -- [#126](https://github.com/fp-ts/data/pull/126) [`2391647`](https://github.com/fp-ts/data/commit/2391647956626b68f1148f0efc6af560c61421af) Thanks [@gcanti](https://github.com/gcanti)! - add Filterable typeclass - -- [#126](https://github.com/fp-ts/data/pull/126) [`a974276`](https://github.com/fp-ts/data/commit/a9742767eb7c259bdf2f481cd98d918705d5e047) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: rename updateNonEmptyLast to setNonEmptyLast, updateNonEmptyHead to setNonEmptyHead to align with /optic - -- [#128](https://github.com/fp-ts/data/pull/128) [`ee26d5b`](https://github.com/fp-ts/data/commit/ee26d5b647cf4215b236f91bb64af0036f37ec7b) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Improve equality - -- [#126](https://github.com/fp-ts/data/pull/126) [`d0fd474`](https://github.com/fp-ts/data/commit/d0fd4744552d8b8b663e9cfada665783c6598514) Thanks [@gcanti](https://github.com/gcanti)! - rename update to replace, updateOption to replaceOption to align with /optic - -## 0.0.17 - -### Patch Changes - -- [#124](https://github.com/fp-ts/data/pull/124) [`5c987a3`](https://github.com/fp-ts/data/commit/5c987a3a3e4b22c1418382c39d4b4657de7a1a04) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Use referential equality to compare services - -## 0.0.16 - -### Patch Changes - -- [#121](https://github.com/fp-ts/data/pull/121) [`d2e2475`](https://github.com/fp-ts/data/commit/d2e247581afc9d8e1bbacae5c143e789b9cc58fe) Thanks [@IMax153](https://github.com/IMax153)! - fix Chunk.unfold - -## 0.0.15 - -### Patch Changes - -- [#119](https://github.com/fp-ts/data/pull/119) [`169deb1`](https://github.com/fp-ts/data/commit/169deb1c61b9778ab2b05eb9d6eb7e513efe2923) Thanks [@IMax153](https://github.com/IMax153)! - fix Chunk.zipWith - -- [#118](https://github.com/fp-ts/data/pull/118) [`a2d1e7e`](https://github.com/fp-ts/data/commit/a2d1e7e5c2ff0bcb3c4cb95620d9066711c5c557) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Generalize Generators to work with Single Shot Monads - -## 0.0.14 - -### Patch Changes - -- [#116](https://github.com/fp-ts/data/pull/116) [`10bee45`](https://github.com/fp-ts/data/commit/10bee45ecb4bd98aa4f7af127ca10cd78e741463) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Fix Random Overusage of Internal - -- [#116](https://github.com/fp-ts/data/pull/116) [`6e96219`](https://github.com/fp-ts/data/commit/6e9621934910c3f6d9cf070935a366f7a33dc424) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Hide HashMap Node, avoid exposing setTree - -## 0.0.13 - -### Patch Changes - -- [#114](https://github.com/fp-ts/data/pull/114) [`b02ef29`](https://github.com/fp-ts/data/commit/b02ef2951bdab7fad5cbdca8f0fffcd1bdf8b885) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Fix SafeEval.gen - -## 0.0.12 - -### Patch Changes - -- [#109](https://github.com/fp-ts/data/pull/109) [`3044b92`](https://github.com/fp-ts/data/commit/3044b929d15ee4f3daff6d607c924f05bde835b0) Thanks [@gcanti](https://github.com/gcanti)! - add Json module - -## 0.0.11 - -### Patch Changes - -- [#110](https://github.com/fp-ts/data/pull/110) [`9350db7`](https://github.com/fp-ts/data/commit/9350db73fd4fb99ffb2a3dce5d2b47118d9b2b48) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Fix Context Equals - -- [#108](https://github.com/fp-ts/data/pull/108) [`860b4c5`](https://github.com/fp-ts/data/commit/860b4c5017de827e7ad69667b1213302c159b637) Thanks [@gcanti](https://github.com/gcanti)! - Option / Either / These: fix eager APIs - -## 0.0.10 - -### Patch Changes - -- [#102](https://github.com/fp-ts/data/pull/102) [`b12a109`](https://github.com/fp-ts/data/commit/b12a109546feb928086795ed965a5f2cfe60ea58) Thanks [@gcanti](https://github.com/gcanti)! - Chunk: fix filter signature - -- [#97](https://github.com/fp-ts/data/pull/97) [`886509e`](https://github.com/fp-ts/data/commit/886509ecaba787b3275e96a7ba247dbde7bf6237) Thanks [@gcanti](https://github.com/gcanti)! - Either: refactoring - -- [#98](https://github.com/fp-ts/data/pull/98) [`d030746`](https://github.com/fp-ts/data/commit/d030746a40ecb616d841bd206fced06558db4145) Thanks [@gcanti](https://github.com/gcanti)! - add These / NonEmptyChunk data types - -- [#102](https://github.com/fp-ts/data/pull/102) [`11efaae`](https://github.com/fp-ts/data/commit/11efaae2dbbedd899af5ae6c73c212709e5dc85d) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: add unsafeGet - -- [#102](https://github.com/fp-ts/data/pull/102) [`96e9a97`](https://github.com/fp-ts/data/commit/96e9a97fb1f1f942f62028a2eff007ac17ec001f) Thanks [@gcanti](https://github.com/gcanti)! - add Seq typeclass - -- [#104](https://github.com/fp-ts/data/pull/104) [`ff4d164`](https://github.com/fp-ts/data/commit/ff4d1649cbeb64cac248c739925f53b7b36d4ab2) Thanks [@gcanti](https://github.com/gcanti)! - Remove Refinement module - -- [#102](https://github.com/fp-ts/data/pull/102) [`bf17093`](https://github.com/fp-ts/data/commit/bf1709385ed1d36526dd591c28542d5dd09f450a) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: add join - -- [#102](https://github.com/fp-ts/data/pull/102) [`f3b8b70`](https://github.com/fp-ts/data/commit/f3b8b705404f5b4b1494df5e549759c1f5952502) Thanks [@gcanti](https://github.com/gcanti)! - Chunk: relax elem signature - -- [#102](https://github.com/fp-ts/data/pull/102) [`dbd4684`](https://github.com/fp-ts/data/commit/dbd46841e3fef37659af3a9c79458a4ec0f82222) Thanks [@gcanti](https://github.com/gcanti)! - Chunk: rename grouped to chunksOf and add tests - -- [#102](https://github.com/fp-ts/data/pull/102) [`6e17760`](https://github.com/fp-ts/data/commit/6e17760364e055fbf9c94ce2868ff1179c94f868) Thanks [@gcanti](https://github.com/gcanti)! - List: relax filterMap / compact signature to accept an Iterable - -- [#103](https://github.com/fp-ts/data/pull/103) [`a23f4b9`](https://github.com/fp-ts/data/commit/a23f4b97da26011d2d945a6921a1fac7eeebf4a0) Thanks [@gcanti](https://github.com/gcanti)! - move Const, Endomorphism modules to limbo - -- [#102](https://github.com/fp-ts/data/pull/102) [`b4088a6`](https://github.com/fp-ts/data/commit/b4088a6ef223b92908292384355f003cc1b7b33c) Thanks [@gcanti](https://github.com/gcanti)! - Chunk: add singleton - -- [#106](https://github.com/fp-ts/data/pull/106) [`8400bc5`](https://github.com/fp-ts/data/commit/8400bc5a9d4860fa885383362aeb19f8002f5489) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Make Context.Tag Yieldable - -- [#100](https://github.com/fp-ts/data/pull/100) [`f3860bc`](https://github.com/fp-ts/data/commit/f3860bccacffac6b7811f1dcac41080f2d003fd0) Thanks [@gcanti](https://github.com/gcanti)! - upgrade to @fp-ts/core@0.0.8 - -- [#97](https://github.com/fp-ts/data/pull/97) [`03029f9`](https://github.com/fp-ts/data/commit/03029f9de8e59af3056246f6a266946e3110f7bf) Thanks [@gcanti](https://github.com/gcanti)! - Option: align APIs to Either - -- [#102](https://github.com/fp-ts/data/pull/102) [`4fe8390`](https://github.com/fp-ts/data/commit/4fe8390a52f458de5d056f0771577811a53f4c83) Thanks [@gcanti](https://github.com/gcanti)! - add CovariantWithIndex typeclass - -- [#102](https://github.com/fp-ts/data/pull/102) [`72ab2d3`](https://github.com/fp-ts/data/commit/72ab2d33379f3352f248c34ecbbe58d673d84b5a) Thanks [@gcanti](https://github.com/gcanti)! - Chunk: align range / makeBy to ReadonlyArray behaviour - -- [#102](https://github.com/fp-ts/data/pull/102) [`be60507`](https://github.com/fp-ts/data/commit/be60507f247fc3e387bce23bc5b504c2b61f2ca3) Thanks [@gcanti](https://github.com/gcanti)! - Chunk: remove single in favour of make - -- [#105](https://github.com/fp-ts/data/pull/105) [`8aaea40`](https://github.com/fp-ts/data/commit/8aaea40c8adf313c7bb2b6ddb8224d28451460b0) Thanks [@gcanti](https://github.com/gcanti)! - Remove FromOption typeclass - -- [#102](https://github.com/fp-ts/data/pull/102) [`7dc00c3`](https://github.com/fp-ts/data/commit/7dc00c38933326e5ded094aef3be51b7cd0b9751) Thanks [@gcanti](https://github.com/gcanti)! - rename typeclass folder and add FilterableWithIndex typeclass - -- [#101](https://github.com/fp-ts/data/pull/101) [`c7adc7c`](https://github.com/fp-ts/data/commit/c7adc7cdc1d99c4bb2b17f961ddd2307118dc6df) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - NonEmpty: generalize to NonEmptyIterable - -- [#102](https://github.com/fp-ts/data/pull/102) [`af45250`](https://github.com/fp-ts/data/commit/af45250ad4f8287b8f6c4845997a8fefe48aca31) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: rename findIndex to findFirstIndex - -## 0.0.9 - -### Patch Changes - -- [#86](https://github.com/fp-ts/data/pull/86) [`4f773b8`](https://github.com/fp-ts/data/commit/4f773b8cedf8d47d737a43950ebcda9a5c0f28c2) Thanks [@gcanti](https://github.com/gcanti)! - move sign function from Ordering to Number - -- [#95](https://github.com/fp-ts/data/pull/95) [`cd68bb0`](https://github.com/fp-ts/data/commit/cd68bb059ebb1c214e85c4cc43b0505dfc4c77cf) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: rename spanLeft to span - -- [#94](https://github.com/fp-ts/data/pull/94) [`8839524`](https://github.com/fp-ts/data/commit/883952442cd246215bdcad20eeda7cdf6596bc02) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Fix some bugs in Chunk - -- [#91](https://github.com/fp-ts/data/pull/91) [`7f964da`](https://github.com/fp-ts/data/commit/7f964da1ca44f3310f5ed6e0f20cf7510d7a7e3f) Thanks [@gcanti](https://github.com/gcanti)! - Chunk: rename toArray to toReadonlyArray - -- [#90](https://github.com/fp-ts/data/pull/90) [`26872aa`](https://github.com/fp-ts/data/commit/26872aa22b043d434536e5859d8291bea6d254a2) Thanks [@gcanti](https://github.com/gcanti)! - List: fix take and add core@0.0.6 instances / functions - -- [#95](https://github.com/fp-ts/data/pull/95) [`0020df2`](https://github.com/fp-ts/data/commit/0020df26a80d27a309a9b5f8b84f1fd26dd62960) Thanks [@gcanti](https://github.com/gcanti)! - merge NonEmptyReadonlyArray module into ReadonlyArray - -- [#87](https://github.com/fp-ts/data/pull/87) [`438d8d1`](https://github.com/fp-ts/data/commit/438d8d19e09729cf13e0eb2b6a4b4c4acbb2216e) Thanks [@gcanti](https://github.com/gcanti)! - List: rename sortWith to sort - -- [#91](https://github.com/fp-ts/data/pull/91) [`251592e`](https://github.com/fp-ts/data/commit/251592e0f9edd9cd299dbb43b047ef9d9a84af6b) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: rename dropLeft to drop - -- [#91](https://github.com/fp-ts/data/pull/91) [`6f18168`](https://github.com/fp-ts/data/commit/6f181685b9d626c5031f9169e67e5493bbd9674c) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: modify concat behaviour - -- [#91](https://github.com/fp-ts/data/pull/91) [`5db1086`](https://github.com/fp-ts/data/commit/5db10867326642ba0c6f334ed269d3a2845ee9bd) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: remove cross function - -- [#91](https://github.com/fp-ts/data/pull/91) [`917aeeb`](https://github.com/fp-ts/data/commit/917aeeb6d5573cdd2171541c7f5d8cb6305ffa25) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: modify prependAll behavior - -- [#95](https://github.com/fp-ts/data/pull/95) [`ea76c9b`](https://github.com/fp-ts/data/commit/ea76c9ba2e18a990e6042d6423981e41417f2bf7) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: rename scanLeft to scan - -- [#85](https://github.com/fp-ts/data/pull/85) [`bc81508`](https://github.com/fp-ts/data/commit/bc81508be10e9b723abbd64fde6353668e755ffd) Thanks [@gcanti](https://github.com/gcanti)! - \*WithIndex functions: uniform argument order - -- [#88](https://github.com/fp-ts/data/pull/88) [`8b20082`](https://github.com/fp-ts/data/commit/8b20082d153fb3bda4c17567102f0c14d225fda4) Thanks [@gcanti](https://github.com/gcanti)! - get rid of artificial covariance fields - -- [#95](https://github.com/fp-ts/data/pull/95) [`301b225`](https://github.com/fp-ts/data/commit/301b2250f02e5fe418eeda03422ecb7d8dff2340) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: rename dropLeftWhile to dropWhile - -- [#91](https://github.com/fp-ts/data/pull/91) [`74267a5`](https://github.com/fp-ts/data/commit/74267a521439054089ddf8c68f4d643bb9baf667) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: rename takeLeft to take - -- [#96](https://github.com/fp-ts/data/pull/96) [`be7b138`](https://github.com/fp-ts/data/commit/be7b138f5a61b5b8b92c2444fa855729817630b8) Thanks [@gcanti](https://github.com/gcanti)! - upgrade to @fp-ts/core@0.0.7 - -- [#95](https://github.com/fp-ts/data/pull/95) [`2c9c681`](https://github.com/fp-ts/data/commit/2c9c681e9450b6625c85f7a826a6d24ced8361fa) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: remove existing match and rename matchLeft to match - -- [#95](https://github.com/fp-ts/data/pull/95) [`f1c7aff`](https://github.com/fp-ts/data/commit/f1c7affb5ede8598e24d2b4ef382953f76331492) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: change makeBy, replicate behaviour - -- [#95](https://github.com/fp-ts/data/pull/95) [`5dac2e1`](https://github.com/fp-ts/data/commit/5dac2e19b67222f9919a28e78d74ef0dc7fae457) Thanks [@gcanti](https://github.com/gcanti)! - ReadonlyArray: rename takeLeftWhile to takeWhile - -## 0.0.8 - -### Patch Changes - -- [#83](https://github.com/fp-ts/data/pull/83) [`00eecff`](https://github.com/fp-ts/data/commit/00eecff04d431c95737e91b2859dee875ad079ba) Thanks [@gcanti](https://github.com/gcanti)! - upgrade to @fp-ts/core@0.0.6 - -## 0.0.7 - -### Patch Changes - -- [#81](https://github.com/fp-ts/data/pull/81) [`d5ec16c`](https://github.com/fp-ts/data/commit/d5ec16cab4b067f8f45d3a1855133affc24dca3c) Thanks [@IMax153](https://github.com/IMax153)! - add SortedMap.getSortable - -- [#81](https://github.com/fp-ts/data/pull/81) [`64dcefd`](https://github.com/fp-ts/data/commit/64dcefd23a9363939ec7c05d93469a492e259b20) Thanks [@IMax153](https://github.com/IMax153)! - add guards for Option, Either, and Tag - -## 0.0.6 - -### Patch Changes - -- [#79](https://github.com/fp-ts/data/pull/79) [`7752dd7`](https://github.com/fp-ts/data/commit/7752dd78535e65f36373b919025820e3c2ae5825) Thanks [@IMax153](https://github.com/IMax153)! - fix documentation in CI - -## 0.0.5 - -### Patch Changes - -- [#76](https://github.com/fp-ts/data/pull/76) [`ecac740`](https://github.com/fp-ts/data/commit/ecac740cc62c33dbbe0d623634410c33b4d7106e) Thanks [@IMax153](https://github.com/IMax153)! - make Random a non-internal module - -- [#76](https://github.com/fp-ts/data/pull/76) [`745f3f0`](https://github.com/fp-ts/data/commit/745f3f0d45ea29f5fcdfffc75398b63ada50257b) Thanks [@IMax153](https://github.com/IMax153)! - add Chunk.zipWithIndex - -## 0.0.4 - -### Patch Changes - -- [#62](https://github.com/fp-ts/data/pull/62) [`e6c20ca`](https://github.com/fp-ts/data/commit/e6c20ca47e0e59f1c6261921633facb155837617) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Remve redundant constructors - -- [#59](https://github.com/fp-ts/data/pull/59) [`38fb4d3`](https://github.com/fp-ts/data/commit/38fb4d386d632141f12a3c08e265c75717a53b6a) Thanks [@gcanti](https://github.com/gcanti)! - NonEmptyReadonlyArray / ReadonlyArray: add TraversableWithIndex, FunctorWithIndex instances - -- [#73](https://github.com/fp-ts/data/pull/73) [`74497d1`](https://github.com/fp-ts/data/commit/74497d1f565ee86f8cfb816edb3d7fca286c100f) Thanks [@gcanti](https://github.com/gcanti)! - replace Result with Either and remove FromResult typeclass - -## 0.0.3 - -### Patch Changes - -- [#47](https://github.com/fp-ts/data/pull/47) [`5f4bb9b`](https://github.com/fp-ts/data/commit/5f4bb9b994da3d7a49de792470fcd556ee7af53d) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Unify Equals and Hash - -- [#46](https://github.com/fp-ts/data/pull/46) [`7510558`](https://github.com/fp-ts/data/commit/7510558c0f84d805298aed9c0a664db084a1eedf) Thanks [@IMax153](https://github.com/IMax153)! - fix MonoidMultiply.combineAll - -- [#58](https://github.com/fp-ts/data/pull/58) [`a524cc2`](https://github.com/fp-ts/data/commit/a524cc295050c43e1a723ea1406f4ec5ac6edf9c) Thanks [@IMax153](https://github.com/IMax153)! - add additional NonEmptyReadonlyArray constructors - -- [#50](https://github.com/fp-ts/data/pull/50) [`e64bcac`](https://github.com/fp-ts/data/commit/e64bcac7c027fc528c6c5fd7d1d3c5d950cdecb9) Thanks [@IMax153](https://github.com/IMax153)! - add ReadonlyArray.range - -- [#54](https://github.com/fp-ts/data/pull/54) [`8d37ea6`](https://github.com/fp-ts/data/commit/8d37ea64c780126c45993562a46eeb2cf631981c) Thanks [@IMax153](https://github.com/IMax153)! - Rename DoublyLinkedList to MutableList - -- [#55](https://github.com/fp-ts/data/pull/55) [`416b517`](https://github.com/fp-ts/data/commit/416b517ec6fd31eb602d33d9827550d63d4314f9) Thanks [@gcanti](https://github.com/gcanti)! - add Const module - -- [#57](https://github.com/fp-ts/data/pull/57) [`26644eb`](https://github.com/fp-ts/data/commit/26644ebedbffb9110de8ec0495272f002f0f98a9) Thanks [@gcanti](https://github.com/gcanti)! - move increment / decrement from Function to Number - -- [#54](https://github.com/fp-ts/data/pull/54) [`3bf3c85`](https://github.com/fp-ts/data/commit/3bf3c85625dbf2adbac7041067a2ace6f866d34c) Thanks [@IMax153](https://github.com/IMax153)! - add MutableQueue - -- [#53](https://github.com/fp-ts/data/pull/53) [`318ddba`](https://github.com/fp-ts/data/commit/318ddba66fd61ebaba352928fed1cd74bfad8a2f) Thanks [@gcanti](https://github.com/gcanti)! - add Identity module - -- [#54](https://github.com/fp-ts/data/pull/54) [`24846c9`](https://github.com/fp-ts/data/commit/24846c93f2eb9c2fd6634b10ca1015c01ad0847c) Thanks [@IMax153](https://github.com/IMax153)! - add DoublyLinkedList - -## 0.0.2 - -### Patch Changes - -- [#44](https://github.com/fp-ts/data/pull/44) [`e371ca7`](https://github.com/fp-ts/data/commit/e371ca7fece6378a879f46d339b49dd9ef633d00) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Update to 0.0.4 - -- [#30](https://github.com/fp-ts/data/pull/30) [`cb7ea06`](https://github.com/fp-ts/data/commit/cb7ea06b4befcee29dcd9d27cad11014743fc691) Thanks [@IMax153](https://github.com/IMax153)! - add missing patch instances - -- [#25](https://github.com/fp-ts/data/pull/25) [`b8d21a2`](https://github.com/fp-ts/data/commit/b8d21a2854a40a85fbeefc804eb21e9b8d801e75) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Rename ImmutableQueue to Queue - -- [#32](https://github.com/fp-ts/data/pull/32) [`a0463b9`](https://github.com/fp-ts/data/commit/a0463b9621d6e2ef163820b8722770d596067e1d) Thanks [@IMax153](https://github.com/IMax153)! - add RedBlackTree - -- [#27](https://github.com/fp-ts/data/pull/27) [`0fab801`](https://github.com/fp-ts/data/commit/0fab801628f14db6dbff8265ec8b72c1bfd1756d) Thanks [@IMax153](https://github.com/IMax153)! - add Differ and Patch datatypes - -- [#21](https://github.com/fp-ts/data/pull/21) [`e854d7f`](https://github.com/fp-ts/data/commit/e854d7f3cf455b37c891e66764e1f53cf5d53cef) Thanks [@0x706b](https://github.com/0x706b)! - Add ImmutableQueue - -- [#20](https://github.com/fp-ts/data/pull/20) [`cda30fb`](https://github.com/fp-ts/data/commit/cda30fbda3a43baadbb1dabd316839c3e5c85923) Thanks [@0x706b](https://github.com/0x706b)! - feat: add Duration - -- [#15](https://github.com/fp-ts/data/pull/15) [`d9be751`](https://github.com/fp-ts/data/commit/d9be751dfc98a4ea812615f4704350a94922c76c) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Add MutableHashMap - -- [#43](https://github.com/fp-ts/data/pull/43) [`94c92ca`](https://github.com/fp-ts/data/commit/94c92ca1633a71eaed9ab35be99b2b67479689b8) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Updates to core/0.0.3 and port of needed modules - -- [#28](https://github.com/fp-ts/data/pull/28) [`288b099`](https://github.com/fp-ts/data/commit/288b099db6579ccbc6602e329f905dffa2b40d90) Thanks [@IMax153](https://github.com/IMax153)! - add HashMap - -- [#35](https://github.com/fp-ts/data/pull/35) [`74b9367`](https://github.com/fp-ts/data/commit/74b93673dbd05df1f2882f0e8dc5e006850d2743) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Hide \_ord in RedBlackTree - -- [#18](https://github.com/fp-ts/data/pull/18) [`1f728b6`](https://github.com/fp-ts/data/commit/1f728b652cb82cab68e9b3f9a8435470dd176816) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Add Chunk Module - -- [#37](https://github.com/fp-ts/data/pull/37) [`46fd071`](https://github.com/fp-ts/data/commit/46fd07105c5c448b6827ddf6423c470b29dcaef8) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Add IterableWeakMap - -- [#36](https://github.com/fp-ts/data/pull/36) [`5fad4c1`](https://github.com/fp-ts/data/commit/5fad4c1595194f317be02b4cdbe0254b814baecd) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Add Function and Endomorphism from core - -- [#42](https://github.com/fp-ts/data/pull/42) [`f776228`](https://github.com/fp-ts/data/commit/f7762284167a94ff2dce031d7685af6c11ad8703) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Add ReadonlyArray and NonEmptyReadonlyArray - -- [#23](https://github.com/fp-ts/data/pull/23) [`1499c99`](https://github.com/fp-ts/data/commit/1499c9924d42153313d874c1da9904ecca8845e7) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Add AtomicReference - -- [#39](https://github.com/fp-ts/data/pull/39) [`adf3ad1`](https://github.com/fp-ts/data/commit/adf3ad1f53d734cd9acc2a1d1d21a0656f55e67f) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Add FromOption and FromResult - -- [#33](https://github.com/fp-ts/data/pull/33) [`3a951f8`](https://github.com/fp-ts/data/commit/3a951f85a91640eae793afe87e793cc5341f7a24) Thanks [@IMax153](https://github.com/IMax153)! - add SafeEval - -- [#13](https://github.com/fp-ts/data/pull/13) [`17c5dda`](https://github.com/fp-ts/data/commit/17c5dda86a6c3c1d74fd705ef0a8e5cb402e7fb9) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Extract MutableListBuilder to it's own module - -- [#22](https://github.com/fp-ts/data/pull/22) [`34a9b40`](https://github.com/fp-ts/data/commit/34a9b403e9816c1126f82e5910628b12c7d9b2f8) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Rename DeepEqual and DeepHash to Equal and Hash - -- [#29](https://github.com/fp-ts/data/pull/29) [`7b402d1`](https://github.com/fp-ts/data/commit/7b402d1b231199dcdc9550aeb90c5726354f3eb5) Thanks [@IMax153](https://github.com/IMax153)! - add HashSet - -- [#41](https://github.com/fp-ts/data/pull/41) [`7022eff`](https://github.com/fp-ts/data/commit/7022eff6f349db821fd75c8e4b78a85fc0f6c8be) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Add Result module - -- [#26](https://github.com/fp-ts/data/pull/26) [`19e339b`](https://github.com/fp-ts/data/commit/19e339ba7c2dea837941a57af11aa3aa59639fd3) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Add MutableHashSet - -- [#24](https://github.com/fp-ts/data/pull/24) [`06e2a01`](https://github.com/fp-ts/data/commit/06e2a01a2c94ec96fccf63ab871c495c4b398cce) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Rename AtomicReference to MutableRef - -- [#34](https://github.com/fp-ts/data/pull/34) [`66160a0`](https://github.com/fp-ts/data/commit/66160a0838b055cd93c87f3fca8d63d44c0515a9) Thanks [@0x706b](https://github.com/0x706b)! - feat: add SortedMap and SortedSet - -- [#39](https://github.com/fp-ts/data/pull/39) [`25c26ab`](https://github.com/fp-ts/data/commit/25c26ab69814911dfbbbbe83a20228f4dd9d59e9) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Add Boolean and String - -- [#38](https://github.com/fp-ts/data/pull/38) [`d52f718`](https://github.com/fp-ts/data/commit/d52f718e836214a76cd35947744f42e5b8e48045) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Add Predicate module - -- [#17](https://github.com/fp-ts/data/pull/17) [`1829db8`](https://github.com/fp-ts/data/commit/1829db8223e8e2a40898cb60ac216b255a85b9be) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Add Context Module - -- [#39](https://github.com/fp-ts/data/pull/39) [`e59b6b7`](https://github.com/fp-ts/data/commit/e59b6b74653c837417f1cc92c015bf5e19980125) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Add Refinement and Number - -## 0.0.1 - -### Patch Changes - -- [#12](https://github.com/fp-ts/data/pull/12) [`f8e21bc`](https://github.com/fp-ts/data/commit/f8e21bc2a1ecc4ecbb2c696cf60c0c7fb0bcf0db) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Add DeepEqual - -- [`42683ad`](https://github.com/fp-ts/data/commit/42683ad07ea98c9fa3e4feb46e28429c9d53151d) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Port List's: - - - ListBuilder - - List - - Cons - - Nil - - builder - - make - - cons - - nil - - drop - - take - - filter - - isCons - - isNil - - isList - - prepend - - prependAll - - concat - - partition - - partitionMap - - splitAt - - head - - tail - - empty - - any - - all - - find - - forEach - - flatMap - - fromIterable - - reverse - - reduce - - headUnsafe - - tailUnsafe - - lastUnsafe - - map - - Functor - - FromIdentity - - Apply - -- [#12](https://github.com/fp-ts/data/pull/12) [`6d8b7b0`](https://github.com/fp-ts/data/commit/6d8b7b01dfd9633a0bc44816ad7df13a4e00569b) Thanks [@mikearnaldi](https://github.com/mikearnaldi)! - Port DeepHash diff --git a/LICENSE b/LICENSE index e58b2fd6..f8f4392a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2017-present Giulio Canti +Copyright (c) 2020-present The Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index e973c3ad..96fc6964 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,3 @@ -

- - - -

+WIP -

-Functional programming in TypeScript -

- -

- - npm downloads - -

- -# Typed functional programming in TypeScript - -This is a fork of [`fp-ts`](https://github.com/gcanti/fp-ts). - -The goal of this fork is a potential reconciliation with [`effect-ts`](https://github.com/effect-ts/core) in order to unify the ecosystems. - -# Installation - -To install the **alpha** version: - -``` -npm install @fp-ts/data -``` - -# Documentation - -- [API Reference](https://fp-ts.github.io/data/) - -# License - -The MIT License (MIT) +Docs: https://effect-ts.github.io/data diff --git a/docs/_config.yml b/docs/_config.yml index 7082f9b3..82639105 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,13 +1,9 @@ remote_theme: mikearnaldi/just-the-docs - -# Enable or disable the site search search_enabled: true - -# Aux links for the upper right navigation aux_links: "Docs": - - "//fp-ts.github.io/data" + - "//effect-ts.github.io/io" "API Reference": - - "//fp-ts.github.io/data/docs/modules" + - "//effect-ts.github.io/io/docs/modules" "GitHub": - - "//github.com/fp-ts/data" + - "//github.com/effect-ts/io" diff --git a/docs/_sass/custom/custom.scss b/docs/_sass/custom/custom.scss deleted file mode 100644 index f1a41aaf..00000000 --- a/docs/_sass/custom/custom.scss +++ /dev/null @@ -1,5 +0,0 @@ -$fp-ts-blue-000: #0088e6; -$fp-ts-blue-100: #0075c5; - -$link-color: $fp-ts-blue-000; -$btn-primary-color: $fp-ts-blue-100; diff --git a/docs/cheatsheets/Either.md b/docs/cheatsheets/Either.md deleted file mode 100644 index 8d1bd00e..00000000 --- a/docs/cheatsheets/Either.md +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: Either Cheatsheet -nav_order: 1 -parent: Cheatsheets ---- - -# Either - -## Constructors - -| Name | Given | To | -| ------------------- | ----- | ------------------ | -| left | `E` | `Either` | -| right | `A` | `Either` | -| of (alias of right) | `A` | `Either` | - -## Guards - -| Name | Given | To | -| -------- | -------------- | ----------------------------- | -| isEither | `unknown` | `is Either` | -| isLeft | `Either` | `is Left` | -| isRight | `Either` | `is Right` | - -## Conversions - -| Name | Given | To | -| ------------ | ------------------ | --------------------------- | -| fromIterable | `Iterable`, `E` | `Either` | -| fromOption | `Option`, `E` | `Either` | -| fromNullable | `A`, `E` | `Either>` | - -## Interop - -| Name | Given | To | -| ------------- | ------------------------------ | ------------------------ | -| fromThrowable | `() => A`, `unknown => E` | `Either` | -| liftThrowable | `(...A) => B`, `unknown => E` | `(...A) => Either` | -| getOrThrow | `Either`, `E => unknown` | `A` | - -## Lifting - -| Name | Given | To | -| ------------- | --------------------------------------- | ---------------------------------------------------------------------------- | -| lift2 | `(A, B) => C` | `(Either, Either) => Either` | -| lift3 | `(A, B, C) => D` | `(Either, Either, Either) => Either` | -| liftPredicate | `A => boolean`, `E` | `A => Either` | -| liftNullable | `(...A) => B \| null \| undefined`, `E` | `(...A) => Either>` | -| liftOption | `(...A) => Option`, `E` | `(...A) => Either` | - -## Error handling - -| Name | Given | To | -| -------------- | ---------------------------------------- | -------------------------- | -| firstSuccessOf | `Either`, `Iterable>` | `Either` | -| catchAll | `Either`, `E1 => Either` | `Either` | -| orElse | `Either`, `Either` | `Either` | -| orElseEither | `Either`, `Either` | `Either>` | -| orElseFail | `Either`, `E2` | `Either` | -| orElseSucceed | `Either`, `B` | `Either` | - -## Debugging - -| Name | Given | To | -| ------------ | --------------------------- | -------------- | -| inspectRight | `Either`, `A => void` | `Either` | -| inspectLeft | `Either`, `E => void` | `Either` | - -## Getters - -| Name | Given | To | -| -------------- | ------------------- | ---------------- | -| getOrElse | `Either`, `B` | `A \| B` | -| getOrNull | `Either` | `A \| null` | -| getOrUndefined | `Either` | `A \| undefined` | -| getLeft | `Either` | `Option` | -| getRight | `Either` | `Option` | -| merge | `Either` | `E \| A` | - -## Pattern matching - -| Name | Given | To | -| ----- | ---------------------------------- | -------- | -| match | `Either`, `E => B`, `A => C` | `B \| C` | - -## Mapping - -| Name | Given | To | -| ------- | ---------------------------------- | ----------------- | -| imap | `Either`, `A => B`, `B => A` | `Either` | -| tupled | `Either` | `Either` | -| map | `Either`, `A => B` | `Either` | -| flap | `Either B>`, `A` | `Either` | -| as | `Either`, `B` | `Either` | -| asUnit | `Either` | `Either` | -| bimap | `Either`, `E => G`, `A => B` | `Either` | -| mapLeft | `Either`, `E => G` | `Either` | - -## Sequencing - -| Name | Given | To | -| ------------------- | ---------------------------------------------------- | ---------------------------------- | -| flatMap | `Either`, `A => Either` | `Either` | -| flatten | `Either>` | `Either` | -| andThen | `Either`, `Either` | `Either` | -| andThenDiscard | `Either`, `Either` | `Either` | -| tap | `Either`, `A => Either` | `Either` | -| tapError | `Either`, `E1 => Either` | `Either` | -| composeKleisliArrow | `A => Either`, `B => Either` | `A => Either` | -| flatMapNullable | `Either`, `A => B \| null \| undefined`, `E2` | `Either>` | -| flatMapOption | `Either`, `A => Option`, `E2` | `Either` | - -## Combining - -| Name | Given | To | -| ---------------------- | -------------- | ------------------------- | -| getFirstLeftSemigroup | `Semigroup` | `Semigroup>` | -| getFirstLeftMonoid | `Monoid` | `Monoid>` | -| getFirstRightSemigroup | | `Semigroup>` | - -## Filtering - -| Name | Given | To | -| --------- | --------------------------------------- | --------------------- | -| compact | `Either>`, `E2` | `Either` | -| filter | `Either`, `A => boolean`, `E2` | `Either` | -| filterMap | `Either`, `A => Option`, `E2` | `Either` | - -## Traversing - -| Name | Given | To | -| ----------- | --------------------------- | ----------------- | -| traverse | `Either`, `A => F` | `F>` | -| sequence | `Either>` | `F>` | -| traverseTap | `Either`, `A => F` | `F>` | - -## Do notation - -| Name | Given | To | -| ----------- | ----------------------------------------------------- | ------------------------------------- | -| Do | | `Either` | -| bindTo | `Either`, `name: string` | `Either` | -| let | `Either`, `name: string`, `A => B` | `Either` | -| bind | `Either`, `name: string`, `A => Either` | `Either` | -| andThenBind | `Either`, `name: string`, `Either` | `Either` | - -## Predicates - -| Name | Given | To | -| ------ | ------------------------------ | --------- | -| elem | `Either`, `B` | `boolean` | -| exists | `Either`, `A => boolean` | `boolean` | - -## Utils - -| Name | Given | To | -| -------------- | -------------------------------------------- | --------------------------------------------- | -| unit | | `Either` | -| product | `Either`, `Either` | `Either` | -| productMany | `Either`, `Iterable>` | `Either]>` | -| productAll | `Iterable>` | `Either>` | -| productFlatten | `Either`, `Either` | `Either` | -| tuple | `[Either, Either, ...]` | `Either` | -| struct | `{ a: Either, b: Either, ...}` | `Either` | -| ap | `Either B>`, `Either` | `Either` | -| reverse | `Either` | `Either` | diff --git a/docs/cheatsheets/Option.md b/docs/cheatsheets/Option.md deleted file mode 100644 index e5589486..00000000 --- a/docs/cheatsheets/Option.md +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: Option Cheatsheet -nav_order: 2 -parent: Cheatsheets ---- - -# Option - -## Constructors - -| Name | Given | To | -| ------------------ | ----- | --------------- | -| none | | `Option` | -| some | `A` | `Option` | -| of (alias of some) | `A` | `Option` | - -## Guards - -| Name | Given | To | -| -------- | ----------- | -------------------- | -| isOption | `unknown` | `is Option` | -| isNone | `Option` | `is None` | -| isSome | `Option` | `is Some` | - -## Conversions - -| Name | Given | To | -| ------------ | ---------------- | ------------------------ | -| fromIterable | `Iterable` | `Option` | -| fromNullable | `A` | `Option>` | -| fromEither | `Either` | `Option` | -| toEither | `Option`, `E` | `Either` | - -## Interop - -| Name | Given | To | -| ------------- | ---------------------- | --------------------- | -| fromThrowable | `() => A` | `Option` | -| liftThrowable | `(...A) => B` | `(...A) => Option` | -| getOrThrow | `Option`, `unknown` | `A` | - -## Lifting - -| Name | Given | To | -| ------------- | ---------------------------------- | ------------------------------------------------ | -| lift2 | `(A, B) => C` | `(Option, Option) => Option` | -| lift3 | `(A, B, C) => D` | `(Option, Option, Option) => Option` | -| liftPredicate | `A => boolean` | `A => Option` | -| liftNullable | `(...A) => B \| null \| undefined` | `(...A) => Option>` | -| liftEither | `(...A) => Either` | `(...A) => Option` | - -## Error handling - -| Name | Given | To | -| ------------- | ---------------------------------- | ---------------------- | -| firstSomeOf | `Option`, `Iterable>` | `Option` | -| catchAll | `Option`, `=> Option` | `Option` | -| orElse | `Option`, `Option` | `Option` | -| orElseEither | `Option`, `Option` | `Option>` | -| orElseSucceed | `Option`, `B` | `Option` | - -## Debugging - -| Name | Given | To | -| ----------- | ------------------------ | ----------- | -| inspectSome | `Option`, `A => void` | `Option` | -| inspectNone | `Option`, `=> void` | `Option` | - -## Getters - -| Name | Given | To | -| -------------- | ---------------- | ---------------- | -| getOrElse | `Option`, `B` | `A \| B` | -| getOrNull | `Option` | `A \| null` | -| getOrUndefined | `Option` | `A \| undefined` | - -## Pattern matching - -| Name | Given | To | -| ----- | -------------------------- | -------- | -| match | `Option`, `B`, `A => C` | `B \| C` | - -## Mapping - -| Name | Given | To | -| ------ | ------------------------------- | -------------- | -| imap | `Option`, `A => B`, `B => A` | `Option` | -| tupled | `Option` | `Option<[A]>` | -| map | `Option`, `A => B` | `Option` | -| flap | `Option B>`, `A` | `Option` | -| as | `Option<_>`, `B` | `Option` | -| asUnit | `Option<_>` | `Option` | - -## Sequencing - -| Name | Given | To | -| ------------------- | ------------------------------------------ | ------------------------ | -| flatMap | `Option`, `A => Option` | `Option` | -| flatten | `Option>` | `Option` | -| andThen | `Option<_>`, `Option` | `Option` | -| andThenDiscard | `Option`, `Option<_>` | `Option` | -| tap | `Option`, `A => Option<_>` | `Option` | -| composeKleisliArrow | `A => Option`, `B => Option` | `A => Option` | -| flatMapNullable | `Option`, `A => B \| null \| undefined` | `Option>` | -| flatMapEither | `Option`, `A => Either` | `Option` | - -## Combining - -| Name | Given | To | -| --------------------- | -------------- | ---------------------- | -| getFirstNoneSemigroup | `Semigroup` | `Semigroup>` | -| getFirstNoneMonoid | `Monoid` | `Monoid>` | -| getFirstSomeSemigroup | | `Semigroup>` | - -## Filtering - -| Name | Given | To | -| -------------------------- | ----------------------------- | ------------------------ | -| compact (alias of flatten) | `Option>` | `Option` | -| separate | `Option>` | `[Option, Option]` | -| filter | `Option`, `A => boolean` | `Option` | -| filterMap | `Option`, `A => Option` | `Option` | - -## Traversing - -| Name | Given | To | -| ----------- | ------------------------ | -------------- | -| traverse | `Option`, `A => F` | `F>` | -| sequence | `Option>` | `F>` | -| traverseTap | `Option`, `A => F` | `F>` | - -## Do notation - -| Name | Given | To | -| ----------- | --------------------------------------------- | --------------------------- | -| Do | | `Option<{}>` | -| bindTo | `Option`, `name: string` | `Option<{ [name]: A }>` | -| let | `Option`, `name: string`, `A => B` | `Option` | -| bind | `Option`, `name: string`, `A => Option` | `Option` | -| andThenBind | `Option`, `name: string`, `Option` | `Option` | - -## Predicates - -| Name | Given | To | -| ------ | --------------------------- | --------- | -| elem | `Option`, `B` | `boolean` | -| exists | `Option`, `A => boolean` | `boolean` | - -## Sorting - -| Name | Given | To | -| --------- | ---------- | ------------------ | -| liftOrder | `Order` | `Order>` | - -## Utils - -| Name | Given | To | -| -------------- | ------------------------------------ | ---------------------------- | -| unit | | `Option` | -| product | `Option`, `Option` | `Option<[A, B]>` | -| productMany | `Option`, `Iterable>` | `Option<[A, ...Array]>` | -| productAll | `Iterable>` | `Option>` | -| productFlatten | `Option`, `Option` | `Option<[...A, B]>` | -| tuple | `[Option, Option, ...]` | `Option<[A, B, ...]>` | -| struct | `{ a: Option, b: Option, ...}` | `Option<{ a: A, b: B, ...}>` | -| ap | `Option B>`, `Option` | `Option` | diff --git a/docs/cheatsheets/ReadonlyArray.md b/docs/cheatsheets/ReadonlyArray.md deleted file mode 100644 index 7c3700b5..00000000 --- a/docs/cheatsheets/ReadonlyArray.md +++ /dev/null @@ -1,261 +0,0 @@ ---- -title: ReadonlyArray Cheatsheet -nav_order: 3 -parent: Cheatsheets ---- - -# ReadonlyArray - -- `RA = ReadonlyArray` -- `NERA = NonEmptyReadonlyArray` - -## Constructors - -| Name | Given | To | -| --------- | -------------------------- | ----------- | -| empty | | `RA` | -| of | `A` | `NERA` | -| make | `...A` | `NERA` | -| makeBy | `number => A`, `number` | `NERA` | -| range | `number`, `number` | `NERA` | -| replicate | `A`, `number` | `NERA` | -| unfold | `B`, `B => Option<[A, B]>` | `RA` | - -## Conversions - -| Name | Given | To | -| ------------ | -------------------- | -------------------- | -| fromIterable | `Iterable` | `RA` | -| fromOption | `Option` | `RA` | -| fromEither | `Either` | `RA` | -| fromNullable | `A` | `RA>` | - -## Lifting - -| Name | Given | To | -| ------------- | ---------------------------------- | -------------------------------- | -| lift2 | `(A, B) => C` | `(RA, RA) => RA` | -| lift3 | `(A, B, C) => D` | `(RA, RA, RA) => RA` | -| liftSemigroup | `Semigroup` | `Semigroup>` | -| liftMonoid | `Monoid` | `Monoid>` | -| liftPredicate | `A => boolean` | `A => RA` | -| liftNullable | `(...A) => B \| null \| undefined` | `(...A) => RA>` | -| liftOption | `(...A) => Option` | `(...A) => RA` | -| liftEither | `(...A) => Either` | `(...A) => RA` | -| every | `A => boolean` | `RA => boolean` | -| liftOrder | `Order` | `Order>` | - -## Predicates - -| Name | Given | To | -| ------------------- | ----------------------- | ---------------- | -| isEmpty | `RA` | `is readonly []` | -| isNonEmpty | `RA` | `is NERA` | -| elem | `RA`, `B` | `boolean` | -| some | `RA`, `A => boolean` | `is NERA` | -| has (alias of some) | `RA`, `A => boolean` | `is NERA` | - -## Getters - -| Name | Given | To | -| ---------------- | ------------------------ | ------------------ | -| size | `RA` | `number` | -| get | `RA`, `number` | `Option` | -| unprepend | `NERA` | `[A, RA]` | -| unappend | `NERA` | `[RA, A]` | -| head | `RA` | `Option` | -| headNonEmpty | `NERA` | `A` | -| last | `RA` | `Option` | -| lastNonEmpty | `NERA` | `A` | -| tail | `RA` | `Option>` | -| tailNonEmpty | `NERA` | `RA` | -| init | `RA` | `Option>` | -| initNonEmpty | `NERA` | `RA` | -| take | `RA`, `number` | `RA` | -| takeRight | `RA`, `number` | `RA` | -| takeWhile | `RA`, `A => boolean` | `RA` | -| drop | `RA`, `number` | `RA` | -| dropRight | `RA`, `number` | `RA` | -| dropWhile | `RA`, `A => boolean` | `RA` | -| findIndex | `RA`, `A => boolean` | `Option` | -| findLastIndex | `RA`, `A => boolean` | `Option` | -| findFirst | `RA`, `A => boolean` | `Option` | -| findLast | `RA`, `A => boolean` | `Option` | -| rights | `RA>` | `RA` | -| lefts | `RA>` | `RA` | -| splitAt | `RA`, `number` | `[RA, RA]` | -| splitAtNonEmpty | `NERA`, `number` | `[NERA, RA]` | -| chunksOf | `RA`, `number` | `RA>` | -| chunksOfNonEmpty | `NERA`, `number` | `NERA>` | - -## Grouping - -| Name | Given | To | -| ------- | ---------------------- | ----------------------------------- | -| group | `NERA` | `NERA>` | -| groupBy | `RA`, `A => string` | `Readonly>>` | - -## Sorting - -| Name | Given | To | -| -------------- | ------------------------- | --------- | -| sort | `RA`, `Order` | `RA` | -| sortNonEmpty | `NERA`, `Order` | `NERA` | -| sortBy | `RA`, `RA>` | `RA` | -| sortByNonEmpty | `NERA`, `RA>` | `NERA` | - -## Pattern matching - -| Name | Given | To | -| ---------- | ------------------------------- | -------- | -| match | `RA`, `B`, `(A, RA) => C` | `B \| C` | -| matchRight | `RA`, `B`, `(RA, A) => C` | `B \| C` | - -## Mutations - -| Name | Given | To | -| ---------------------- | ------------------------------------ | ---------------------- | -| append | `RA`, `B` | `NERA` | -| appendAll | `RA`, `RA` | `RA` | -| appendAllNonEmpty | `NERA`, `RA` | `NERA` | -| prepend | `RA`, `B` | `NERA` | -| prependAll | `RA`, `RA` | `RA` | -| prependAllNonEmpty | `NERA`, `RA` | `NERA` | -| insertAt | `RA`, `number`, `B` | `Option>` | -| updateAt | `RA`, `number`, `B` | `Option>` | -| modifyAt | `RA`, `number`, `A => B` | `Option>` | -| deleteAt | `RA`, `number` | `Option>` | -| reverse | `RA` | `RA` | -| reverseNonEmpty | `NERA` | `NERA` | -| zip | `RA`, `RA` | `RA<[A, B]>` | -| zipWith | `RA`, `RA`, `(A, B) => C` | `RA` | -| zipNonEmpty | `NERA`, `NERA` | `NERA<[A, B]>` | -| zipNonEmptyWith | `NERA`, `NERA`, `(A, B) => C` | `NERA` | -| unzip | `RA<[A, B]>` | `[RA, RA]` | -| unzipNonEmpty | `NERA<[A, B]>` | `[NERA, NERA]` | -| intersperse | `RA`, `B` | `RA` | -| intersperseNonEmpty | `NERA`, `B` | `NERA` | -| modifyNonEmptyHead | `NERA`, `A => B` | `NERA` | -| updateNonEmptyHead | `NERA`, `B` | `NERA` | -| modifyNonEmptyLast | `NERA`, `A => B` | `NERA` | -| updateNonEmptyLast | `NERA`, `B` | `NERA` | -| rotate | `RA`, `number` | `NERA` | -| rotateNonEmpty | `NERA`, `number` | `RA` | -| uniq | `RA` | `RA` | -| uniqNonEmpty | `NERA` | `NERA` | -| chop | `RA`, `(NERA) => [B, RA]` | `RA` | -| chopNonEmpty | `NERA`, `(NERA) => [B, RA]` | `NERA` | -| union | `RA`, `RA` | `RA` | -| unionNonEmpty | `NERA`, `RA` | `NERA` | -| intersection | `RA`, `RA` | `RA` | -| intersectiodifferencen | `RA`, `RA` | `RA` | - -## Folding - -| Name | Given | To | -| --------- | --------------------------- | --------- | -| scan | `RA`, `B`, `(B, A) => B` | `NERA` | -| scanRight | `RA`, `B`, `(B, A) => B` | `NERA` | - -## Mapping - -| Name | Given | To | -| -------------------- | ----------------------------- | --------- | -| map | `RA`, `A => B` | `RA` | -| mapNonEmpty | `NERA`, `A => B` | `NERA` | -| mapWithIndex | `RA`, `(A, number) => B` | `RA` | -| mapNonEmptyWithIndex | `NERA`, `(A, number) => B` | `NERA` | -| imap | `RA`, `A => B`, `B => A` | `RA` | -| flap | `RA B>`, `A` | `RA` | -| as | `RA` | `RA` | - -## Sequencing - -| Name | Given | To | -| ------------------------ | -------------------------------------- | -------------------- | -| flatMap | `RA`, `A => RA` | `RA` | -| flatMapWithIndex | `RA`, `(A, number) => RA` | `RA` | -| flatMapNonEmpty | `NERA`, `A => RA` | `NERA` | -| flatMapNonEmptyWithIndex | `NERA`, `(A, number) => NERA` | `NERA` | -| flatten | `RA>` | `RA` | -| flattenNonEmpty | `NERA>` | `NERA` | -| flatMapNullable | `RA`, `A => B \| null \| undefined` | `RA>` | -| composeKleisliArrow | `A => RA`, `B => RA` | `a => RA` | - -## Filtering - -| Name | Given | To | -| --------------------- | ------------------------------------------------- | ------------------- | -| span | `RA`, `A => boolean` | `[RA, RA]` | -| compact | `RA>` | `RA` | -| separate | `RA>` | `[RA, RA]` | -| filterMap | `Iterable`, `A => Option` | `RA` | -| filterMapWithIndex | `Iterable`, `(A, number) => Option` | `RA` | -| filter | `RA`, `A => boolean` | `RA` | -| filterWithIndex | `RA`, `(A. number) => boolean` | `RA` | -| partition | `RA`, `A => boolean` | `[RA, RA]` | -| partitionWithIndex | `RA`, `(A, number) => boolean` | `[RA, RA]` | -| partitionMap | `RA`, `A => Either` | `[RA, RA]` | -| partitionMapWithIndex | `RA`, `(A, number) => Either` | `[RA, RA]` | -| traverseFilterMap | `Applicative`, `RA`, `A => F>` | `F>` | -| traversePartitionMap | `Applicative`, `RA`, `A => F>` | `F<[RA, RA]>` | -| traverseFilter | `Applicative`, `RA`, `A => F` | `F>` | -| traversePartition | `Applicative`, `RA`, `A => F` | `F<[RA, RA]>` | - -## Folding - -| Name | Given | To | -| ------------------------ | -------------------------------------------- | ------ | -| reduce | `RA`, `B` `(B, A) => B` | `B` | -| reduceWithIndex | `RA`, `B` `(B, A, number) => B` | `B` | -| reduceRight | `RA`, `B` `(B, A) => B` | `B` | -| reduceRightWithIndex | `RA`, `B` `(B, A, number) => B` | `B` | -| foldMap | `RA`, `Monoid` `A => M` | `M` | -| foldMapWithIndex | `RA`, `Monoid` `(A, number) => M` | `M` | -| foldMapNonEmpty | `NERA`, `Semigroup` `A => S` | `S` | -| foldMapNonEmptyWithIndex | `NERA`, `Semigroup` `(A, number) => S` | `S` | -| reduceKind | `Monad`, `RA`, `B` `(B, A) => F` | `F` | -| reduceRightKind | `Monad`, `RA`, `B` `(B, A) => F` | `F` | -| foldMapKind | `Coproduct`, `RA`, `A => F` | `F` | - -## Traversing - -| Name | Given | To | -| ------------------------- | -------------------------------- | ------------ | -| traverse | `RA`, `A => F` | `F>` | -| sequence | `RA>` | `F>` | -| traverseTap | `RA`, `A => F` | `F>` | -| traverseWithIndex | `RA`, `(A, number) => F` | `F>` | -| traverseNonEmpty | `NERA`, `A => F` | `F>` | -| sequenceNonEmpty | `NERA>` | `F>` | -| traverseNonEmptyWithIndex | `NERA`, `(A, number) => F` | `F>` | - -## Do notation - -| Name | Given | To | -| ----------- | ------------------------------------- | ----------------------- | -| Do | | `RA<{}>` | -| bindTo | `RA`, `name: string` | `RA<{ [name]: A }>` | -| let | `RA`, `name: string`, `A => B` | `RA` | -| bind | `RA`, `name: string`, `A => RA` | `RA` | -| andThenBind | `RA`, `name: string`, `RA` | `RA` | - -## Utils - -| Name | Given | To | -| ------------------------ | ------------------------------ | ------------------ | -| extend | `RA`, `RA => B` | `RA` | -| product | `RA`, `RA` | `RA<[A, B]>` | -| productMany | `RA`, `Iterable>` | `RA>` | -| productAll | `Iterable>` | `RA>` | -| ap | `RA B>`, `RA` | `RA` | -| intercalate | `Monoid`, `RA`, `A` | `A` | -| intercalateNonEmpty | `Semigroup`, `NERA`, `A` | `A` | -| productFlatten | `RA`, `RA` | `RA<[...A, B]>` | -| min | `Order`, `NERA` | `A` | -| max | `Order`, `NERA` | `A` | -| getSemigroup | | `Semigroup>` | -| getMonoid | | `Monoid>` | -| getUnionSemigroup | | `Semigroup>` | -| getUnionMonoid | | `Monoid>` | -| getIntersectionSemigroup | | `Semigroup>` | diff --git a/docs/cheatsheets/These.md b/docs/cheatsheets/These.md deleted file mode 100644 index 7268ffcf..00000000 --- a/docs/cheatsheets/These.md +++ /dev/null @@ -1,195 +0,0 @@ ---- -title: These Cheatsheet -nav_order: 4 -parent: Cheatsheets ---- - -# These - -## Constructors - -| Name | Given | To | -| ------------------------ | ---------------- | --------------------- | -| left | `E` | `These` | -| right | `A` | `These` | -| both | `E`, `A` | `These` | -| of (alias of right) | `A` | `Either` | -| leftOrBoth | `Option`, `E` | `These` | -| rightOrBoth | `Option`, `A` | `These` | -| fail | `E` | `Validated` | -| succeed (alias of right) | `A` | `Validated` | -| warn | `E`, `A` | `Validated` | - -## Guards - -| Name | Given | To | -| ------------- | ------------- | ---------------------------- | -| isThese | `unknown` | `is These` | -| isLeft | `These` | `is Left` | -| isLeftOrBoth | `These` | `is Left \| Both` | -| isRight | `These` | `is Right` | -| isRightOrBoth | `These` | `is Right \| Both` | -| isBoth | `These` | `is Both` | - -## Conversions - -| Name | Given | To | -| ------------ | --------------------------------------- | -------------------------- | -| fromIterable | `Iterable`, `E` | `These` | -| fromNullable | `A`, `E` | `These>` | -| fromOption | `Option`, `E` | `These` | -| fromTuple | `[E, A]` | `These` | -| fromEither | `Either` | `Validated` | -| fromThese | `These` | `Validated` | -| toEither | `These`, `(E, A) => Either` | `Either` | -| absolve | `These` | `Either` | -| condemn | `These` | `Either` | - -## Interop - -| Name | Given | To | -| ------------- | ------------------------------ | ----------------------- | -| fromThrowable | `() => A`, `unknown => E` | `These` | -| liftThrowable | `(...A) => B`, `unknown => E` | `(...A) => These` | -| getOrThrow | `Either`, `E => unknown` | `A` | - -## Lifting - -| Name | Given | To | -| ------------- | --------------------------------------- | ---------------------------------------------------------------------------------------- | -| lift2 | `(A, B) => C` | `(Validated, Validated) => Validated` | -| lift3 | `(A, B, C) => D` | `(Validated, Validated, Validated) => Validated` | -| liftPredicate | `A => boolean`, `E` | `A => These` | -| liftNullable | `(...A) => B \| null \| undefined`, `E` | `(...A) => These>` | -| liftOption | `(...A) => Option`, `E` | `(...A) => These` | -| liftEither | `(...A) => Either` | `(...A) => Validated` | -| liftThese | `(...A) => These` | `(...A) => Validated` | - -## Error handling - -| Name | Given | To | -| -------------- | -------------------------------------- | ------------------------------- | -| firstSuccessOf | `These`, `Iterable>` | `These` | -| catchAll | `These`, `E1 => These` | `These` | -| orElse | `These`, `These` | `These` | -| orElseEither | `These`, `These` | `These>` | -| orElseFail | `These`, `E2` | `These` | -| orElseSucceed | `These`, `B` | `These` | - -## Debugging - -| Name | Given | To | -| ------------ | ------------------------------- | ------------- | -| inspectRight | `These`, `A => void` | `These` | -| inspectLeft | `These`, `E => void` | `These` | -| inspectBoth | `These`, `(E, A) => void` | `These` | - -## Getters - -| Name | Given | To | -| ------------------- | ----------------------------- | ---------------- | -| getOrElse | `These`, `B` | `A \| B` | -| getOrNull | `These` | `A \| null` | -| getOrUndefined | `These` | `A \| undefined` | -| getLeft | `These` | `Option` | -| getLeftOnly | `These` | `Option` | -| getRight | `These` | `Option` | -| getRightOnly | `These` | `Option` | -| getBoth | `These` | `Option<[E, A]>` | -| getBothOrElse | `These`, `E`, `A` | `[E, A]` | -| getOrThrow | `These`, `E => unknown` | `A` | -| getRightOnlyOrThrow | `These`, `E => unknown` | `A` | - -## Pattern matching - -| Name | Given | To | -| ----- | ------------------------------------------------ | ------------- | -| match | `These`, `E => B`, `A => C`, `(E, A) => D` | `B \| C \| D` | - -## Mapping - -| Name | Given | To | -| ---------- | --------------------------------- | ---------------- | -| imap | `These`, `A => B`, `B => A` | `These` | -| tupled | `These` | `These` | -| tupledLeft | `These` | `These<[E], A>` | -| map | `These`, `A => B` | `These` | -| flap | `These B>`, `A` | `These` | -| as | `These`, `B` | `These` | -| asUnit | `These` | `These` | -| bimap | `These`, `E => G`, `A => B` | `These` | -| mapLeft | `These`, `E => G` | `These` | - -## Sequencing - -| Name | Given | To | -| ------------------- | ------------------------------------------------------- | ------------------------------------- | -| flatMap | `Validated`, `A => Validated` | `Validated` | -| flatten | `Validated>` | `Validated` | -| andThen | `Validated`, `Validated` | `Validated` | -| andThenDiscard | `Validated`, `Validated` | `Validated` | -| tap | `Validated`, `A => Validated` | `Validated` | -| composeKleisliArrow | `A => Validated`, `B => Validated` | `A => Validated` | -| flatMapNullable | `Validated`, `A => B \| null \| undefined`, `E2` | `Validated>` | -| flatMapOption | `Validated`, `A => Option`, `E2` | `Validated` | -| flatMapEither | `Validated`, `A => Either` | `Validated` | -| flatMapThese | `Validated`, `A => These` | `Validated` | - -## Combining - -| Name | Given | To | -| ---------------------------- | -------------- | ---------------------------- | -| getFirstLeftSemigroup | `Semigroup` | `Semigroup>` | -| getFirstLeftMonoid | `Monoid` | `Monoid>` | -| getFirstRightOrBothSemigroup | | `Semigroup>` | - -## Filtering - -| Name | Given | To | -| --------- | -------------------------------------- | -------------------- | -| compact | `These>`, `E` | `These` | -| filter | `These`, `A => boolean`, `E2` | `These` | -| filterMap | `These`, `A => Option`, `E2` | `These` | - -## Traversing - -| Name | Given | To | -| ----------- | -------------------------- | ---------------- | -| traverse | `These`, `A => F` | `F>` | -| sequence | `These>` | `F>` | -| traverseTap | `These`, `A => F` | `F>` | - -## Do notation - -| Name | Given | To | -| ----------------- | ----------------------------------------------------------- | ---------------------------------------- | -| Do | | `These` | -| bindTo | `These`, `name: string` | `These` | -| let | `These`, `name: string`, `A => B` | `These` | -| bind | `Validated`, `name: string`, `A => Validated` | `Validated` | -| bindEither | `Validated`, `name: string`, `A => Either` | `Validated` | -| bindThese | `Validated`, `name: string`, `A => These` | `Validated` | -| andThenBind | `Validated`, `name: string`, `Validated` | `Validated` | -| andThenBindEither | `Validated`, `name: string`, `Either` | `Validated` | -| andThenBindThese | `Validated`, `name: string`, `These` | `Validated` | - -## Predicates - -| Name | Given | To | -| ------ | ----------------------------- | --------- | -| elem | `These`, `B` | `boolean` | -| exists | `These`, `A => boolean` | `boolean` | - -## Utils - -| Name | Given | To | -| -------------- | -------------------------------------------------- | ------------------------------------------------ | -| unit | | `These` | -| product | `Validated`, `Validated` | `Validated` | -| productMany | `Validated`, `Iterable>` | `Validated]>` | -| productAll | `Iterable>` | `Validated>` | -| productFlatten | `Validated`, `Validated` | `Validated` | -| tuple | `[Validated, Validated, ...]` | `Validated` | -| struct | `{ a: Validated, b: Validated, ...}` | `Validated` | -| ap | `Validated B>`, `Validated` | `Validated` | -| reverse | `These` | `These` | diff --git a/docs/cheatsheets/index.md b/docs/cheatsheets/index.md deleted file mode 100644 index 3ea050d9..00000000 --- a/docs/cheatsheets/index.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Cheatsheets -has_children: true -permalink: /docs/cheatsheets -nav_order: 3 ---- diff --git a/docs/fp-ts-logo.png b/docs/fp-ts-logo.png deleted file mode 100644 index 11b76e9f4b39a243334e9cee84d6943a4a21cd31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14032 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 XF@GzDe$M8 - -# Typed functional programming in TypeScript - -`fp-ts` provides developers with popular patterns and reliable abstractions from typed functional languages in TypeScript. -{: .fs-6 .fw-300 } - -**Disclaimer**. Teaching functional programming is out of scope of this project, so the documentation assumes you already know what FP is. - -## Core Concepts - -The goal of `fp-ts` is to empower developers to write pure FP apps and libraries built atop higher order abstractions. It includes the most popular data types, type classes, and abstractions from languages like [Haskell](https://www.haskell.org), [PureScript](https://www.purescript.org), and [Scala](https://www.scala-lang.org). - -## Functions - -Functional programming is all about pure functions and how to compose them into bigger structures. `fp-ts` provides a few general [functions](./modules/function.ts.html) to support you with composition, constant functions, and more. - -## Data Types - -Data types are the practical part of `fp-ts`: you can instantiate them with your data to gain properties and functionality that are useful for solving a specific need. Because data types all share common interfaces (through [type classes](#type-classes)), once you learn how to use one data type, you can apply the same concepts to the others. - -Many functions in `fp-ts` use [ad hoc polymorphism](https://en.wikipedia.org/wiki/Ad_hoc_polymorphism), meaning that they have a single implementation that can deal with arguments of different types. To make this work, it is often necessary to provide a data type _instance_ that provides functionality that is specific to the data type. - -**Note**. Data types are not stack safe and there is no trampolining implementation. But for traversing and sequencing lists there is a stack safe and optimized version in each data types. - -## Type Classes - -Type classes provide the theoretical underpinnings of `fp-ts`: they describe what you can do with your data. To guarantee that they can be safely composed, they are built on laws rooted in abstract algebra and [category theory](https://en.wikipedia.org/wiki/Category_theory). - -## Higher Kinded Types - -A distinctive feature of `fp-ts` with respect to other functional libraries is its implementation of [Higher Kinded Types](), which TypeScript doesn't support natively. The idea for emulating higher kinded types in TypeScript is based on [Lightweight higher-kinded polymorphism](https://www.cl.cam.ac.uk/~jdy22/papers/lightweight-higher-kinded-polymorphism.pdf). +## Work In Progress diff --git a/dtslint/index.d.ts b/dtslint/index.d.ts deleted file mode 100644 index 611f70e4..00000000 --- a/dtslint/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -// TypeScript Version: 4.7 diff --git a/dtslint/ts4.7/Brand.ts b/dtslint/ts4.7/Brand.ts deleted file mode 100644 index 1e84e57c..00000000 --- a/dtslint/ts4.7/Brand.ts +++ /dev/null @@ -1,45 +0,0 @@ -import * as Brand from "@fp-ts/data/Brand" -import * as Either from "@fp-ts/data/Either" - -type Nominal = string & Brand.Brand<"Nominal"> -type Int = number & Brand.Brand<"Int"> -type Positive = number & Brand.Brand<"Positive"> - -declare const Int: Brand.Brand.RefinedConstructors -declare const Positive: Brand.Brand.RefinedConstructors - -// $ExpectType NominalConstructor -Brand.nominal() - -// $ExpectType Nominal -Brand.nominal()("") - -// $ExpectType RefinedConstructors -Brand.refined( - (n) => Number.isInteger(n), - (n) => Brand.error(`Expected ${n} to be an integer`) -) - -// $ExpectType Int -Int.of(0) - -// $ExpectType Option -Int.option(0) - -// $ExpectType Either -Int.either(0) - -// $ExpectType boolean -Int.refine(0) - -type S = { foo: "string" } & Brand.Brand<"S"> -declare const S: Brand.Brand.Constructor -type Q = { bar: "string" } & Brand.Brand<"Q"> -declare const Q: Brand.Brand.Constructor - -// TODO -// // $ExpectError Type 'NominalConstructor' is not assignable to type '"ERROR: All brands should have the same base type"' -// Brand.all(S, Q) - -// $ExpectType RefinedConstructors & Brand<"Positive">> -Brand.all(Int, Positive) diff --git a/dtslint/ts4.7/ReadonlyArray.ts b/dtslint/ts4.7/ReadonlyArray.ts deleted file mode 100644 index 8a2a5d19..00000000 --- a/dtslint/ts4.7/ReadonlyArray.ts +++ /dev/null @@ -1,231 +0,0 @@ -import { identity, pipe } from "@fp-ts/data/Function"; -import * as RA from "@fp-ts/data/ReadonlyArray"; -import * as E from "@fp-ts/data/Either"; -import * as Number from "@fp-ts/data/Number"; - -declare const ns: ReadonlyArray -declare const ss: ReadonlyArray -declare const eithers: ReadonlyArray> -declare const setns: Set -declare const setss: Set -declare const seteithers: Set> -declare const snpairs: ReadonlyArray<[string, number]> -declare const setsnpairs: Set<[string, number]> - -// $ExpectType [number, ...number[]] -RA.make(1) - -// $ExpectType [number, ...number[]] -RA.makeBy(n => n)(1) - -// $ExpectType [number, ...number[]] -RA.range(0, 10) - -// $ExpectType [string, ...string[]] -RA.replicate('a')(10) - -// $ExpectType [string | number, ...(string | number)[]] -pipe(setns, RA.prepend('a')) - -// $ExpectType (string | number)[] -pipe(setns, RA.prependAll(['a', 'b'])) -// $ExpectType (string | number)[] -pipe(ns, RA.prependAll(new Set(['a', 'b']))) -// $ExpectType (string | number)[] -pipe(setns, RA.prependAll(new Set(['a', 'b']))) - -// $ExpectType [string | number, ...(string | number)[]] -pipe(ns, RA.prependAllNonEmpty(['a', 'b'])) -// $ExpectType [string | number, ...(string | number)[]] -pipe(setns, RA.prependAllNonEmpty(['a', 'b'])) -// $ExpectType [string | number, ...(string | number)[]] -pipe(RA.make(3, 4), RA.prependAllNonEmpty(new Set(['a', 'b']))) - -// $ExpectType [string | number, ...(string | number)[]] -pipe(ns, RA.append('a')) -// $ExpectType [string | number, ...(string | number)[]] -pipe(setns, RA.append('a')) - -// $ExpectType (string | number)[] -pipe(ns, RA.appendAll(['a', 'b'])) -// $ExpectType (string | number)[] -pipe(setns, RA.appendAll(['a', 'b'])) -// $ExpectType (string | number)[] -pipe(ns, RA.appendAll(new Set(['a', 'b']))) - -// $ExpectType [string | number, ...(string | number)[]] -pipe(ns, RA.appendAllNonEmpty(['a', 'b'])) -// $ExpectType [string | number, ...(string | number)[]] -pipe(setns, RA.appendAllNonEmpty(['a', 'b'])) -// $ExpectType [string | number, ...(string | number)[]] -pipe(RA.make(3, 4), RA.appendAllNonEmpty(new Set(['a', 'b']))) - -// $ExpectType [number, ...number[]] -pipe(ns, RA.scan(10, (b: number, a: number) => b - a)) -// $ExpectType [number, ...number[]] -pipe(setns, RA.scan(10, (b: number, a: number) => b - a)) - -// $ExpectType [number, ...number[]] -pipe(ns, RA.scanRight(10, (b: number, a: number) => b - a)) -// $ExpectType [number, ...number[]] -pipe(setns, RA.scanRight(10, (b: number, a: number) => b - a)) - -// $ExpectType Option -pipe(ns, RA.tail) -// $ExpectType Option -pipe(setns, RA.tail) - -// $ExpectType Option -pipe(ns, RA.init) -// $ExpectType Option -pipe(setns, RA.init) - -// $ExpectType number[] -pipe(ns, RA.take(2)) -// $ExpectType number[] -pipe(setns, RA.take(2)) - -// $ExpectType number[] -pipe(ns, RA.takeRight(2)) -// $ExpectType number[] -pipe(setns, RA.takeRight(2)) - -// $ExpectType number[] -pipe(ns, RA.takeWhile((n) => n % 2 === 0)) -// $ExpectType number[] -pipe(setns, RA.takeWhile((n) => n % 2 === 0)) - -// $ExpectType [init: number[], rest: number[]] -pipe(ns, RA.span((n) => n % 2 === 0)) -// $ExpectType [init: number[], rest: number[]] -pipe(setns, RA.span((n) => n % 2 === 0)) - -// $ExpectType number[] -pipe(ns, RA.drop(2)) -// $ExpectType number[] -pipe(setns, RA.drop(2)) - -// $ExpectType number[] -pipe(ns, RA.dropRight(2)) -// $ExpectType number[] -pipe(setns, RA.dropRight(2)) - -// $ExpectType number[] -pipe(ns, RA.dropWhile((n) => n % 2 === 0)) -// $ExpectType number[] -pipe(setns, RA.dropWhile((n) => n % 2 === 0)) - -// $ExpectType Option -pipe(ss, RA.findFirstIndex((s) => s.length > 0)) -// $ExpectType Option -pipe(setss, RA.findFirstIndex((s) => s.length > 0)) - -// $ExpectType Option -pipe(ss, RA.findLastIndex((s) => s.length > 0)) -// $ExpectType Option -pipe(setss, RA.findLastIndex((s) => s.length > 0)) - -// $ExpectType Option -pipe(ss, RA.findFirst((s) => s.length > 0)) -// $ExpectType Option -pipe(setss, RA.findFirst((s) => s.length > 0)) - -// $ExpectType Option -pipe(ss, RA.findLast((s) => s.length > 0)) -// $ExpectType Option -pipe(setss, RA.findLast((s) => s.length > 0)) - -// $ExpectType Option<[number, ...number[]]> -pipe(ns, RA.insertAt(1, 1)) -// $ExpectType Option<[number, ...number[]]> -pipe(setns, RA.insertAt(1, 1)) - -// $ExpectType number[] -pipe(ns, RA.replace(1, 1)) -// $ExpectType number[] -pipe(setns, RA.replace(1, 1)) - -// $ExpectType Option -pipe(ns, RA.replaceOption(1, 1)) -// $ExpectType Option -pipe(setns, RA.replaceOption(1, 1)) - -// $ExpectType number[] -pipe(ns, RA.modify(1, identity)) -// $ExpectType number[] -pipe(setns, RA.modify(1, identity)) - -// $ExpectType Option -pipe(ns, RA.modifyOption(1, identity)) -// $ExpectType Option -pipe(setns, RA.modifyOption(1, identity)) - -// $ExpectType number[] -pipe(ns, RA.remove(1)) -// $ExpectType number[] -pipe(setns, RA.remove(1)) - -// $ExpectType number[] -pipe(ns, RA.reverse) -// $ExpectType number[] -pipe(setns, RA.reverse) - -// $ExpectType number[] -pipe(eithers, RA.rights) -// $ExpectType number[] -pipe(seteithers, RA.rights) - -// $ExpectType string[] -pipe(eithers, RA.lefts) -// $ExpectType string[] -pipe(seteithers, RA.lefts) - -// $ExpectType number[] -pipe(ns, RA.sort(Number.Order)) -// $ExpectType number[] -pipe(setns, RA.sort(Number.Order)) - -// $ExpectType number[] -pipe(ns, RA.sortBy(Number.Order)) -// $ExpectType number[] -pipe(setns, RA.sortBy(Number.Order)) - -// $ExpectType [number, string][] -pipe(ns, RA.zip(ss)) -// $ExpectType [number, string][] -pipe(setns, RA.zip(setss)) - -// $ExpectType (readonly [number, string])[] -pipe(ns, RA.zipWith(ss, (a, b) => [a, b] as const)) -// $ExpectType (readonly [number, string])[] -pipe(setns, RA.zipWith(setss, (a, b) => [a, b] as const)) - -// $ExpectType [string[], number[]] -pipe(snpairs, RA.unzip) -// $ExpectType [string[], number[]] -pipe(setsnpairs, RA.unzip) - -// $ExpectType number[] -pipe(ns, RA.intersperse(0)) -// $ExpectType number[] -pipe(setns, RA.intersperse(0)) - -// $ExpectType number[] -pipe(ns, RA.rotate(2)) -// $ExpectType number[] -pipe(setns, RA.rotate(2)) - -// $ExpectType boolean -pipe(ns, RA.elem(2)) -// $ExpectType boolean -pipe(setns, RA.elem(2)) - -// $ExpectType number[] -pipe(ns, RA.uniq) -// $ExpectType number[] -pipe(setns, RA.uniq) - -// $ExpectType [number[], number[]] -pipe(ns, RA.splitAt(2)) -// $ExpectType [number[], number[]] -pipe(setns, RA.splitAt(2)) diff --git a/dtslint/ts4.7/index.d.ts b/dtslint/ts4.7/index.d.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/dtslint/ts4.7/tsconfig.json b/dtslint/ts4.7/tsconfig.json deleted file mode 100644 index 061eaa47..00000000 --- a/dtslint/ts4.7/tsconfig.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "compilerOptions": { - "noEmit": true, - "strict": true, - "noImplicitAny": false, - "noImplicitThis": true, - "strictNullChecks": true, - "strictFunctionTypes": true, - "noImplicitReturns": false, - "noUnusedLocals": false, - "noUnusedParameters": false, - "noFallthroughCasesInSwitch": true, - "moduleResolution": "node", - "target": "es2015", - "lib": ["es2015"], - "paths": { - "@fp-ts/data": ["../../src/index.ts"], - "@fp-ts/data/test/*": ["../../test/*"], - "@fp-ts/data/examples/*": ["../../examples/*"], - "@fp-ts/data/*": ["../../src/*"] - } - } -} diff --git a/dtslint/ts4.7/tslint.json b/dtslint/ts4.7/tslint.json deleted file mode 100644 index 1457aa8d..00000000 --- a/dtslint/ts4.7/tslint.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "extends": "dtslint/dtslint.json", - "rules": { - "no-duplicate-imports": false, - "semicolon": false, - "array-type": false, - "no-unnecessary-generics": false, - "member-access": false, - "no-empty-interface": false, - "no-arg": false, - "no-object-literal-type-assertion": false, - "no-unnecessary-class": false, - "radix": false, - "no-angle-bracket-type-assertion": false, - "object-literal-shorthand": false, - "prefer-object-spread": false, - "whitespace": false, - "use-default-type-parameter": false, - "no-relative-import-in-test": false, - "no-null-undefined-union": false, - "invalid-void": false, - "max-line-length": false, - "no-useless-files": false - } -} diff --git a/package.json b/package.json index 176ed965..c579dba9 100644 --- a/package.json +++ b/package.json @@ -1,20 +1,20 @@ { - "name": "@fp-ts/data", - "version": "0.1.1", + "name": "@effect/io", + "version": "0.0.0", "publishConfig": { "access": "public", "directory": "dist" }, "repository": { "type": "git", - "url": "https://github.com/fp-ts/data.git" + "url": "https://github.com/Effect-TS/io.git" }, - "author": "Giulio Canti ", + "author": "Michael Arnaldi ", "license": "MIT", "bugs": { - "url": "https://github.com/fp-ts/data/issues" + "url": "https://github.com/Effect-TS/io/issues" }, - "homepage": "https://github.com/fp-ts/data", + "homepage": "https://github.com/Effect-TS/io", "description": "Functional programming in TypeScript", "tags": [ "typescript", @@ -27,9 +27,10 @@ "functional-programming" ], "scripts": { + "example": "ts-node --project tsconfig.examples.json", "version": "changeset version && pnpm install --no-frozen-lockfile && pnpm run docs-update", "release": "pnpm run build && changeset publish", - "clean": "rimraf build tsbuildinfo dist .ultra.cache.json", + "clean": "rimraf build tsbuildinfo dist .ultra.cache.json .cache", "build": "pnpm build-all && pnpm build-pack", "build-cjs": "babel build/esm --config-file ./.babel.cjs.json --out-dir build/cjs --out-file-extension .js --source-maps", "build-mjs": "babel build/esm --config-file ./.babel.mjs.json --out-dir build/mjs --out-file-extension .mjs --source-maps", @@ -37,8 +38,7 @@ "build-pack": "concurrently \"pnpm build-cjs\" \"pnpm build-mjs\" && pnpm build-post", "build-all": "tsc -b tsconfig.json", "build-watch": "tsc -b tsconfig.json --watch", - "dtslint": "dtslint dtslint", - "lint": "eslint . --ext .ts,.tsx", + "lint": "eslint --ext .ts,.tsx src/**/* test/**/*", "autofix": "pnpm lint --fix", "tc": "tsc --noEmit", "docs": "docs-ts", @@ -55,10 +55,8 @@ "require": "./build/cjs/*.js" } }, - "config": { - "side": [], - "modules": [], - "global": [] + "dependencies": { + "@fp-ts/core": "~0.1.1" }, "devDependencies": { "@babel/cli": "^7.20.7", @@ -68,23 +66,27 @@ "@changesets/cli": "^2.26.0", "@effect-ts/build-utils": "0.40.7", "@effect-ts/core": "^0.60.5", - "@effect/language-service": "^0.0.17", + "@effect/babel-plugin": "^0.1.0", + "@effect/core": "^0.0.16", + "@effect/language-service": "^0.0.19", + "@effect/vite-plugin": "^0.0.1", "@repo-tooling/eslint-plugin-dprint": "^0.0.4", + "@rollup/pluginutils": "^5.0.2", "@types/benchmark": "^2.1.2", "@types/chai": "^4.3.4", "@types/glob": "^8.0.1", "@types/jest": "^29.4.0", - "@types/node": "^18.11.18", + "@types/node": "^18.11.19", "@types/prettier": "2.7.2", - "@types/rimraf": "^3.0.2", - "@typescript-eslint/eslint-plugin": "^5.49.0", - "@typescript-eslint/parser": "^5.49.0", - "@vitest/coverage-c8": "^0.28.3", + "@typescript-eslint/eslint-plugin": "^5.51.0", + "@typescript-eslint/parser": "^5.51.0", + "@vitejs/plugin-react": "^3.0.1", + "@vitest/coverage-c8": "^0.28.4", "babel-plugin-annotate-pure-calls": "^0.4.0", "concurrently": "^7.6.0", "cpx": "^1.5.0", - "docs-ts": "^0.6.10", - "dtslint": "github:gcanti/dtslint", + "docs-ts": "0.6.10", + "error-stack-parser": "^2.1.4", "eslint": "^8.33.0", "eslint-import-resolver-typescript": "^3.5.3", "eslint-plugin-codegen": "0.17.0", @@ -98,19 +100,23 @@ "picocolors": "^1.0.0", "prettier": "^2.8.3", "rimraf": "^4.1.2", + "stackframe": "^1.3.4", + "ts-codemod": "^4.0.4", "ts-node": "^10.9.1", "tslint": "^6.1.3", - "typescript": "^4.9.4", + "typescript": "^4.9.5", "ultra-runner": "^3.10.5", - "vite": "^4.0.4", - "vitest": "0.28.3" + "vite": "^4.1.1", + "vitest": "0.28.4" }, "pnpm": { "patchedDependencies": { "docs-ts@0.6.10": "patches/docs-ts@0.6.10.patch" } }, - "dependencies": { - "@fp-ts/core": "~0.1.1" + "config": { + "side": [], + "modules": [], + "global": [] } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8d13315b..1e3432c0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,24 +16,28 @@ importers: '@changesets/cli': ^2.26.0 '@effect-ts/build-utils': 0.40.7 '@effect-ts/core': ^0.60.5 - '@effect/language-service': ^0.0.17 + '@effect/babel-plugin': ^0.1.0 + '@effect/core': ^0.0.16 + '@effect/language-service': ^0.0.19 + '@effect/vite-plugin': ^0.0.1 '@fp-ts/core': ~0.1.1 '@repo-tooling/eslint-plugin-dprint': ^0.0.4 + '@rollup/pluginutils': ^5.0.2 '@types/benchmark': ^2.1.2 '@types/chai': ^4.3.4 '@types/glob': ^8.0.1 '@types/jest': ^29.4.0 - '@types/node': ^18.11.18 + '@types/node': ^18.11.19 '@types/prettier': 2.7.2 - '@types/rimraf': ^3.0.2 - '@typescript-eslint/eslint-plugin': ^5.49.0 - '@typescript-eslint/parser': ^5.49.0 - '@vitest/coverage-c8': ^0.28.3 + '@typescript-eslint/eslint-plugin': ^5.51.0 + '@typescript-eslint/parser': ^5.51.0 + '@vitejs/plugin-react': ^3.0.1 + '@vitest/coverage-c8': ^0.28.4 babel-plugin-annotate-pure-calls: ^0.4.0 concurrently: ^7.6.0 cpx: ^1.5.0 - docs-ts: ^0.6.10 - dtslint: github:gcanti/dtslint + docs-ts: 0.6.10 + error-stack-parser: ^2.1.4 eslint: ^8.33.0 eslint-import-resolver-typescript: ^3.5.3 eslint-plugin-codegen: 0.17.0 @@ -47,12 +51,14 @@ importers: picocolors: ^1.0.0 prettier: ^2.8.3 rimraf: ^4.1.2 + stackframe: ^1.3.4 + ts-codemod: ^4.0.4 ts-node: ^10.9.1 tslint: ^6.1.3 - typescript: ^4.9.4 + typescript: ^4.9.5 ultra-runner: ^3.10.5 - vite: ^4.0.4 - vitest: 0.28.3 + vite: ^4.1.1 + vitest: 0.28.4 dependencies: '@fp-ts/core': 0.1.1 devDependencies: @@ -63,28 +69,32 @@ importers: '@changesets/cli': 2.26.0 '@effect-ts/build-utils': 0.40.7_4tiomhbv3rbbenpw35oypunhgu '@effect-ts/core': 0.60.5 - '@effect/language-service': 0.0.17 - '@repo-tooling/eslint-plugin-dprint': 0.0.4_typescript@4.9.4 + '@effect/babel-plugin': 0.1.0_@babel+core@7.20.12 + '@effect/core': 0.0.16 + '@effect/language-service': 0.0.19 + '@effect/vite-plugin': 0.0.1_vite@4.1.1 + '@repo-tooling/eslint-plugin-dprint': 0.0.4_typescript@4.9.5 + '@rollup/pluginutils': 5.0.2 '@types/benchmark': 2.1.2 '@types/chai': 4.3.4 '@types/glob': 8.0.1 '@types/jest': 29.4.0 - '@types/node': 18.11.18 + '@types/node': 18.11.19 '@types/prettier': 2.7.2 - '@types/rimraf': 3.0.2 - '@typescript-eslint/eslint-plugin': 5.49.0_rsaczafy73x3xqauzesvzbsgzy - '@typescript-eslint/parser': 5.49.0_zkdaqh7it7uc4cvz2haft7rc6u - '@vitest/coverage-c8': 0.28.3 + '@typescript-eslint/eslint-plugin': 5.51.0_b635kmla6dsb4frxfihkw4m47e + '@typescript-eslint/parser': 5.51.0_4vsywjlpuriuw3tl5oq6zy5a64 + '@vitejs/plugin-react': 3.1.0_vite@4.1.1 + '@vitest/coverage-c8': 0.28.4 babel-plugin-annotate-pure-calls: 0.4.0_@babel+core@7.20.12 concurrently: 7.6.0 cpx: 1.5.0 - docs-ts: 0.6.10_hxi4q35dpslvaqd64zvxr4fn6m_uhxzhaxu465qzax2tftpee5s7i - dtslint: github.com/gcanti/dtslint/4552d162099399c4e14f8486ced673411e5b3659 + docs-ts: 0.6.10_hxi4q35dpslvaqd64zvxr4fn6m_ioxdq35luteszuxmt2jhnqjeca + error-stack-parser: 2.1.4 eslint: 8.33.0 eslint-import-resolver-typescript: 3.5.3_ohdts44xlqyeyrlje4qnefqeay eslint-plugin-codegen: 0.17.0 - eslint-plugin-deprecation: 1.3.3_zkdaqh7it7uc4cvz2haft7rc6u - eslint-plugin-import: 2.27.5_c6pjvta7aysubsdnhvgec47vxe + eslint-plugin-deprecation: 1.3.3_4vsywjlpuriuw3tl5oq6zy5a64 + eslint-plugin-import: 2.27.5_kuqv7qxblf6fgldep4hddd7xwa eslint-plugin-simple-import-sort: 10.0.0_eslint@8.33.0 eslint-plugin-sort-destructure-keys: 1.4.0_eslint@8.33.0 fast-check: 3.6.2 @@ -93,12 +103,14 @@ importers: picocolors: 1.0.0 prettier: 2.8.3 rimraf: 4.1.2 - ts-node: 10.9.1_awa2wsr5thmg3i7jqycphctjfq - tslint: 6.1.3_typescript@4.9.4 - typescript: 4.9.4 + stackframe: 1.3.4 + ts-codemod: 4.0.4 + ts-node: 10.9.1_qqdszkrtcshgbphghj7vnvrrby + tslint: 6.1.3_typescript@4.9.5 + typescript: 4.9.5 ultra-runner: 3.10.5 - vite: 4.0.4_@types+node@18.11.18 - vitest: 0.28.3 + vite: 4.1.1_@types+node@18.11.19 + vitest: 0.28.4 publishDirectory: dist packages/babel-plugin: @@ -352,6 +364,26 @@ packages: - supports-color dev: true + /@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.20.12: + resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.20.12: + resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.20.12 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/runtime/7.20.7: resolution: {integrity: sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==} engines: {node: '>=6.9.0'} @@ -648,15 +680,48 @@ packages: resolution: {integrity: sha512-/crHGujo0xnuHIYNc1VgP0HGJGFSoSqq88JFXe6FmFyXPpWt8Xu39LyLg7rchsxfXFeEdA9CrIZvLV5eswXV5g==} dev: true - /@effect/language-service/0.0.17: - resolution: {integrity: sha512-98c6VtueGDvCGDfkQijsQ5uP/g4J2VhSbI83f/Rv84Gg0uJ+BbA9jno1dQubvaPRGBMIVE+1egZUduSWY6tfEg==} + /@effect/babel-plugin/0.1.0_@babel+core@7.20.12: + resolution: {integrity: sha512-76y+JZz2+eTAHUSb35o5XWQCKHxHI7VAv/ky3JyguaCoqul82Ih3lI4QXynBdKFX/GPp+X+Q37V4AsKr7JGVkQ==} + peerDependencies: + '@babel/core': ^6.0.0-0 || 7.x + dependencies: + '@babel/core': 7.20.12 + dev: true + + /@effect/core/0.0.16: + resolution: {integrity: sha512-JugbKcqo9CPdm4n7t/buO4nYxKwThafh0tXVvPgRC3RcwuOS1dzo3tIk6RVq1wYh8Kg4df5SwmdED2VvN4c/RA==} + dependencies: + '@effect/printer': 0.0.4 + '@tsplus/stdlib': 0.2.8 + dev: true + + /@effect/language-service/0.0.19: + resolution: {integrity: sha512-sKNVo031dkwLfe1jHZzdTiF1UXgLq1lAYd2JG7q416dlmMoxRcMXrZWyw6a/SxIDM0hyIJAEmrz5iUkQPcPdBQ==} dependencies: '@fp-ts/core': 0.0.11 '@fp-ts/data': 0.0.41 dev: true - /@esbuild/android-arm/0.16.16: - resolution: {integrity: sha512-BUuWMlt4WSXod1HSl7aGK8fJOsi+Tab/M0IDK1V1/GstzoOpqc/v3DqmN8MkuapPKQ9Br1WtLAN4uEgWR8x64A==} + /@effect/printer/0.0.4: + resolution: {integrity: sha512-oTn6U9GCg01E+kYwUBs4LM6k6hVq0pA7ZAYKdj972n2LjYeqg4+We6ZqoYWH2Pw5TDHOavtIEdYqt61uUxiZgg==} + dependencies: + '@tsplus/stdlib': 0.2.8 + dev: true + + /@effect/vite-plugin/0.0.1_vite@4.1.1: + resolution: {integrity: sha512-SD4dwsZMSZ5jjeKfTIIy6n1Ft+5/oOuerSZynsLxLTzXUVfpdje/f33Iu5cUhEJq/ats1upYp5mZvQEmL9Y3vQ==} + dependencies: + '@babel/core': 7.20.12 + '@rollup/pluginutils': 5.0.2 + '@vitejs/plugin-react': 3.1.0_vite@4.1.1 + transitivePeerDependencies: + - rollup + - supports-color + - vite + dev: true + + /@esbuild/android-arm/0.16.17: + resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -664,8 +729,8 @@ packages: dev: true optional: true - /@esbuild/android-arm64/0.16.16: - resolution: {integrity: sha512-hFHVAzUKp9Tf8psGq+bDVv+6hTy1bAOoV/jJMUWwhUnIHsh6WbFMhw0ZTkqDuh7TdpffFoHOiIOIxmHc7oYRBQ==} + /@esbuild/android-arm64/0.16.17: + resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -673,8 +738,8 @@ packages: dev: true optional: true - /@esbuild/android-x64/0.16.16: - resolution: {integrity: sha512-9WhxJpeb6XumlfivldxqmkJepEcELekmSw3NkGrs+Edq6sS5KRxtUBQuKYDD7KqP59dDkxVbaoPIQFKWQG0KLg==} + /@esbuild/android-x64/0.16.17: + resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -682,8 +747,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64/0.16.16: - resolution: {integrity: sha512-8Z+wld+vr/prHPi2O0X7o1zQOfMbXWGAw9hT0jEyU/l/Yrg+0Z3FO9pjPho72dVkZs4ewZk0bDOFLdZHm8jEfw==} + /@esbuild/darwin-arm64/0.16.17: + resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -691,8 +756,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64/0.16.16: - resolution: {integrity: sha512-CYkxVvkZzGCqFrt7EgjFxQKhlUPyDkuR9P0Y5wEcmJqVI8ncerOIY5Kej52MhZyzOBXkYrJgZeVZC9xXXoEg9A==} + /@esbuild/darwin-x64/0.16.17: + resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -700,8 +765,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64/0.16.16: - resolution: {integrity: sha512-fxrw4BYqQ39z/3Ja9xj/a1gMsVq0xEjhSyI4a9MjfvDDD8fUV8IYliac96i7tzZc3+VytyXX+XNsnpEk5sw5Wg==} + /@esbuild/freebsd-arm64/0.16.17: + resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -709,8 +774,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64/0.16.16: - resolution: {integrity: sha512-8p3v1D+du2jiDvSoNVimHhj7leSfST9YlKsAEO7etBfuqjaBMndo0fmjNLp0JCMld+XIx9L80tooOkyUv1a1PQ==} + /@esbuild/freebsd-x64/0.16.17: + resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -718,8 +783,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm/0.16.16: - resolution: {integrity: sha512-bYaocE1/PTMRmkgSckZ0D0Xn2nox8v2qlk+MVVqm+VECNKDdZvghVZtH41dNtBbwADSvA6qkCHGYeWm9LrNCBw==} + /@esbuild/linux-arm/0.16.17: + resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -727,8 +792,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64/0.16.16: - resolution: {integrity: sha512-N3u6BBbCVY3xeP2D8Db7QY8I+nZ+2AgOopUIqk+5yCoLnsWkcVxD2ay5E9iIdvApFi1Vg1lZiiwaVp8bOpAc4A==} + /@esbuild/linux-arm64/0.16.17: + resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -736,8 +801,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32/0.16.16: - resolution: {integrity: sha512-dxjqLKUW8GqGemoRT9v8IgHk+T4tRm1rn1gUcArsp26W9EkK/27VSjBVUXhEG5NInHZ92JaQ3SSMdTwv/r9a2A==} + /@esbuild/linux-ia32/0.16.17: + resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -754,8 +819,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.16.16: - resolution: {integrity: sha512-MdUFggHjRiCCwNE9+1AibewoNq6wf94GLB9Q9aXwl+a75UlRmbRK3h6WJyrSGA6ZstDJgaD2wiTSP7tQNUYxwA==} + /@esbuild/linux-loong64/0.16.17: + resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -763,8 +828,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el/0.16.16: - resolution: {integrity: sha512-CO3YmO7jYMlGqGoeFeKzdwx/bx8Vtq/SZaMAi+ZLDUnDUdfC7GmGwXzIwDJ70Sg+P9pAemjJyJ1icKJ9R3q/Fg==} + /@esbuild/linux-mips64el/0.16.17: + resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -772,8 +837,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64/0.16.16: - resolution: {integrity: sha512-DSl5Czh5hCy/7azX0Wl9IdzPHX2H8clC6G87tBnZnzUpNgRxPFhfmArbaHoAysu4JfqCqbB/33u/GL9dUgCBAw==} + /@esbuild/linux-ppc64/0.16.17: + resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -781,8 +846,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64/0.16.16: - resolution: {integrity: sha512-sSVVMEXsqf1fQu0j7kkhXMViroixU5XoaJXl1u/u+jbXvvhhCt9YvA/B6VM3aM/77HuRQ94neS5bcisijGnKFQ==} + /@esbuild/linux-riscv64/0.16.17: + resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -790,8 +855,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x/0.16.16: - resolution: {integrity: sha512-jRqBCre9gZGoCdCN/UWCCMwCMsOg65IpY9Pyj56mKCF5zXy9d60kkNRdDN6YXGjr3rzcC4DXnS/kQVCGcC4yPQ==} + /@esbuild/linux-s390x/0.16.17: + resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -799,8 +864,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64/0.16.16: - resolution: {integrity: sha512-G1+09TopOzo59/55lk5Q0UokghYLyHTKKzD5lXsAOOlGDbieGEFJpJBr3BLDbf7cz89KX04sBeExAR/pL/26sA==} + /@esbuild/linux-x64/0.16.17: + resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -808,8 +873,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64/0.16.16: - resolution: {integrity: sha512-xwjGJB5wwDEujLaJIrSMRqWkbigALpBNcsF9SqszoNKc+wY4kPTdKrSxiY5ik3IatojePP+WV108MvF6q6np4w==} + /@esbuild/netbsd-x64/0.16.17: + resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -817,8 +882,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64/0.16.16: - resolution: {integrity: sha512-yeERkoxG2nR2oxO5n+Ms7MsCeNk23zrby2GXCqnfCpPp7KNc0vxaaacIxb21wPMfXXRhGBrNP4YLIupUBrWdlg==} + /@esbuild/openbsd-x64/0.16.17: + resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -826,8 +891,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64/0.16.16: - resolution: {integrity: sha512-nHfbEym0IObXPhtX6Va3H5GaKBty2kdhlAhKmyCj9u255ktAj0b1YACUs9j5H88NRn9cJCthD1Ik/k9wn8YKVg==} + /@esbuild/sunos-x64/0.16.17: + resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -835,8 +900,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64/0.16.16: - resolution: {integrity: sha512-pdD+M1ZOFy4hE15ZyPX09fd5g4DqbbL1wXGY90YmleVS6Y5YlraW4BvHjim/X/4yuCpTsAFvsT4Nca2lbyDH/A==} + /@esbuild/win32-arm64/0.16.17: + resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -844,8 +909,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32/0.16.16: - resolution: {integrity: sha512-IPEMfU9p0c3Vb8PqxaPX6BM9rYwlTZGYOf9u+kMdhoILZkVKEjq6PKZO0lB+isojWwAnAqh4ZxshD96njTXajg==} + /@esbuild/win32-ia32/0.16.17: + resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -853,8 +918,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64/0.16.16: - resolution: {integrity: sha512-1YYpoJ39WV/2bnShPwgdzJklc+XS0bysN6Tpnt1cWPdeoKOG4RMEY1g7i534QxXX/rPvNx/NLJQTTCeORYzipg==} + /@esbuild/win32-x64/0.16.17: + resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -938,7 +1003,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.11.18 + '@types/node': 18.11.19 '@types/yargs': 15.0.15 chalk: 4.1.2 dev: true @@ -950,7 +1015,7 @@ packages: '@jest/schemas': 29.4.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.11.18 + '@types/node': 18.11.19 '@types/yargs': 17.0.20 chalk: 4.1.2 dev: true @@ -1056,15 +1121,15 @@ packages: open: 8.4.0 picocolors: 1.0.0 tiny-glob: 0.2.9 - tslib: 2.4.1 + tslib: 2.5.0 dev: true - /@repo-tooling/eslint-plugin-dprint/0.0.4_typescript@4.9.4: + /@repo-tooling/eslint-plugin-dprint/0.0.4_typescript@4.9.5: resolution: {integrity: sha512-1gQXioqAlyYoRLAQ/4GQ3id8VI9nNO8KKGbbSl5xZf+lo/7Q2zDFhFiuG6owHFYh+2nslQLHy4wJJjOPm2yWEw==} dependencies: '@dprint/formatter': 0.2.0 '@dprint/typescript': 0.68.5 - '@typescript-eslint/utils': 5.40.1_zkdaqh7it7uc4cvz2haft7rc6u + '@typescript-eslint/utils': 5.40.1_4vsywjlpuriuw3tl5oq6zy5a64 diff: 5.1.0 eslint: 8.33.0 transitivePeerDependencies: @@ -1072,6 +1137,20 @@ packages: - typescript dev: true + /@rollup/pluginutils/5.0.2: + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.0 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + /@sinclair/typebox/0.25.21: resolution: {integrity: sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==} dev: true @@ -1103,6 +1182,10 @@ packages: resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} dev: true + /@tsplus/stdlib/0.2.8: + resolution: {integrity: sha512-UKAN06h9V/wUflSbOU1WwACisXEi4+PHwGqR+bwxqcClrEAA8KKTTLZ0ATMbqbVAVTudE0vW4pd5iY6vGvSFBw==} + dev: true + /@types/benchmark/2.1.2: resolution: {integrity: sha512-EDKtLYNMKrig22jEvhXq8TBFyFgVNSPmDF2b9UzJ7+eylPqdZVo17PCUMkn1jP6/1A/0u78VqYC6VrX6b8pDWA==} dev: true @@ -1121,6 +1204,10 @@ packages: resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} dev: true + /@types/estree/1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + dev: true + /@types/glob/8.0.0: resolution: {integrity: sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA==} dependencies: @@ -1132,7 +1219,7 @@ packages: resolution: {integrity: sha512-8bVUjXZvJacUFkJXHdyZ9iH1Eaj5V7I8c4NdH5sQJsdXkqT4CA5Dhb4yb4VE/3asyx4L9ayZr1NIhTsWHczmMw==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.11.18 + '@types/node': 18.11.19 dev: true /@types/is-ci/3.0.0: @@ -1192,6 +1279,10 @@ packages: resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} dev: true + /@types/node/18.11.19: + resolution: {integrity: sha512-YUgMWAQBWLObABqrvx8qKO1enAvBUdjZOAWQ5grBAkp5LQv45jBvYKZ3oFS9iKRCQyFjqw6iuEa1vmFqtxYLZw==} + dev: true + /@types/node/18.8.0: resolution: {integrity: sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==} dev: true @@ -1204,13 +1295,6 @@ packages: resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==} dev: true - /@types/rimraf/3.0.2: - resolution: {integrity: sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==} - dependencies: - '@types/glob': 8.0.1 - '@types/node': 18.11.18 - dev: true - /@types/semver/6.2.3: resolution: {integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==} dev: true @@ -1239,8 +1323,8 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin/5.49.0_rsaczafy73x3xqauzesvzbsgzy: - resolution: {integrity: sha512-IhxabIpcf++TBaBa1h7jtOWyon80SXPRLDq0dVz5SLFC/eW6tofkw/O7Ar3lkx5z5U6wzbKDrl2larprp5kk5Q==} + /@typescript-eslint/eslint-plugin/5.51.0_b635kmla6dsb4frxfihkw4m47e: + resolution: {integrity: sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -1250,37 +1334,38 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.49.0_zkdaqh7it7uc4cvz2haft7rc6u - '@typescript-eslint/scope-manager': 5.49.0 - '@typescript-eslint/type-utils': 5.49.0_zkdaqh7it7uc4cvz2haft7rc6u - '@typescript-eslint/utils': 5.49.0_zkdaqh7it7uc4cvz2haft7rc6u + '@typescript-eslint/parser': 5.51.0_4vsywjlpuriuw3tl5oq6zy5a64 + '@typescript-eslint/scope-manager': 5.51.0 + '@typescript-eslint/type-utils': 5.51.0_4vsywjlpuriuw3tl5oq6zy5a64 + '@typescript-eslint/utils': 5.51.0_4vsywjlpuriuw3tl5oq6zy5a64 debug: 4.3.4 eslint: 8.33.0 + grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 regexpp: 3.2.0 semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.4 - typescript: 4.9.4 + tsutils: 3.21.0_typescript@4.9.5 + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/experimental-utils/5.45.1_zkdaqh7it7uc4cvz2haft7rc6u: + /@typescript-eslint/experimental-utils/5.45.1_4vsywjlpuriuw3tl5oq6zy5a64: resolution: {integrity: sha512-WlXwY9dbmc0Lzu6xQOZ3yN8u/ws/1R8zPC16O217LMZJCbV2hJezqkWMUB+jMwguOJW+cukCDe92vcwwf8zwjQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.45.1_zkdaqh7it7uc4cvz2haft7rc6u + '@typescript-eslint/utils': 5.45.1_4vsywjlpuriuw3tl5oq6zy5a64 eslint: 8.33.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser/5.49.0_zkdaqh7it7uc4cvz2haft7rc6u: - resolution: {integrity: sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg==} + /@typescript-eslint/parser/5.51.0_4vsywjlpuriuw3tl5oq6zy5a64: + resolution: {integrity: sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1289,12 +1374,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.49.0 - '@typescript-eslint/types': 5.49.0 - '@typescript-eslint/typescript-estree': 5.49.0_typescript@4.9.4 + '@typescript-eslint/scope-manager': 5.51.0 + '@typescript-eslint/types': 5.51.0 + '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.9.5 debug: 4.3.4 eslint: 8.33.0 - typescript: 4.9.4 + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true @@ -1315,16 +1400,16 @@ packages: '@typescript-eslint/visitor-keys': 5.45.1 dev: true - /@typescript-eslint/scope-manager/5.49.0: - resolution: {integrity: sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ==} + /@typescript-eslint/scope-manager/5.51.0: + resolution: {integrity: sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.49.0 - '@typescript-eslint/visitor-keys': 5.49.0 + '@typescript-eslint/types': 5.51.0 + '@typescript-eslint/visitor-keys': 5.51.0 dev: true - /@typescript-eslint/type-utils/5.49.0_zkdaqh7it7uc4cvz2haft7rc6u: - resolution: {integrity: sha512-eUgLTYq0tR0FGU5g1YHm4rt5H/+V2IPVkP0cBmbhRyEmyGe4XvJ2YJ6sYTmONfjmdMqyMLad7SB8GvblbeESZA==} + /@typescript-eslint/type-utils/5.51.0_4vsywjlpuriuw3tl5oq6zy5a64: + resolution: {integrity: sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -1333,12 +1418,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.49.0_typescript@4.9.4 - '@typescript-eslint/utils': 5.49.0_zkdaqh7it7uc4cvz2haft7rc6u + '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.9.5 + '@typescript-eslint/utils': 5.51.0_4vsywjlpuriuw3tl5oq6zy5a64 debug: 4.3.4 eslint: 8.33.0 - tsutils: 3.21.0_typescript@4.9.4 - typescript: 4.9.4 + tsutils: 3.21.0_typescript@4.9.5 + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true @@ -1358,8 +1443,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types/5.49.0: - resolution: {integrity: sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg==} + /@typescript-eslint/types/5.51.0: + resolution: {integrity: sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1384,7 +1469,7 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/5.40.1_typescript@4.9.4: + /@typescript-eslint/typescript-estree/5.40.1_typescript@4.9.5: resolution: {integrity: sha512-5QTP/nW5+60jBcEPfXy/EZL01qrl9GZtbgDZtDPlfW5zj/zjNrdI2B5zMUHmOsfvOr2cWqwVdWjobCiHcedmQA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1399,13 +1484,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.4 - typescript: 4.9.4 + tsutils: 3.21.0_typescript@4.9.5 + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree/5.45.1_typescript@4.9.4: + /@typescript-eslint/typescript-estree/5.45.1_typescript@4.9.5: resolution: {integrity: sha512-76NZpmpCzWVrrb0XmYEpbwOz/FENBi+5W7ipVXAsG3OoFrQKJMiaqsBMbvGRyLtPotGqUfcY7Ur8j0dksDJDng==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1420,14 +1505,14 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.4 - typescript: 4.9.4 + tsutils: 3.21.0_typescript@4.9.5 + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree/5.49.0_typescript@4.9.4: - resolution: {integrity: sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA==} + /@typescript-eslint/typescript-estree/5.51.0_typescript@4.9.5: + resolution: {integrity: sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -1435,19 +1520,19 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.49.0 - '@typescript-eslint/visitor-keys': 5.49.0 + '@typescript-eslint/types': 5.51.0 + '@typescript-eslint/visitor-keys': 5.51.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.8 - tsutils: 3.21.0_typescript@4.9.4 - typescript: 4.9.4 + tsutils: 3.21.0_typescript@4.9.5 + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.40.1_zkdaqh7it7uc4cvz2haft7rc6u: + /@typescript-eslint/utils/5.40.1_4vsywjlpuriuw3tl5oq6zy5a64: resolution: {integrity: sha512-a2TAVScoX9fjryNrW6BZRnreDUszxqm9eQ9Esv8n5nXApMW0zeANUYlwh/DED04SC/ifuBvXgZpIK5xeJHQ3aw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1457,7 +1542,7 @@ packages: '@types/semver': 7.3.13 '@typescript-eslint/scope-manager': 5.40.1 '@typescript-eslint/types': 5.40.1 - '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.9.4 + '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.9.5 eslint: 8.33.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.33.0 @@ -1467,7 +1552,7 @@ packages: - typescript dev: true - /@typescript-eslint/utils/5.45.1_zkdaqh7it7uc4cvz2haft7rc6u: + /@typescript-eslint/utils/5.45.1_4vsywjlpuriuw3tl5oq6zy5a64: resolution: {integrity: sha512-rlbC5VZz68+yjAzQBc4I7KDYVzWG2X/OrqoZrMahYq3u8FFtmQYc+9rovo/7wlJH5kugJ+jQXV5pJMnofGmPRw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1477,7 +1562,7 @@ packages: '@types/semver': 7.3.13 '@typescript-eslint/scope-manager': 5.45.1 '@typescript-eslint/types': 5.45.1 - '@typescript-eslint/typescript-estree': 5.45.1_typescript@4.9.4 + '@typescript-eslint/typescript-estree': 5.45.1_typescript@4.9.5 eslint: 8.33.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.33.0 @@ -1487,17 +1572,17 @@ packages: - typescript dev: true - /@typescript-eslint/utils/5.49.0_zkdaqh7it7uc4cvz2haft7rc6u: - resolution: {integrity: sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ==} + /@typescript-eslint/utils/5.51.0_4vsywjlpuriuw3tl5oq6zy5a64: + resolution: {integrity: sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.49.0 - '@typescript-eslint/types': 5.49.0 - '@typescript-eslint/typescript-estree': 5.49.0_typescript@4.9.4 + '@typescript-eslint/scope-manager': 5.51.0 + '@typescript-eslint/types': 5.51.0 + '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.9.5 eslint: 8.33.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.33.0 @@ -1531,21 +1616,37 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /@typescript-eslint/visitor-keys/5.49.0: - resolution: {integrity: sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg==} + /@typescript-eslint/visitor-keys/5.51.0: + resolution: {integrity: sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.49.0 + '@typescript-eslint/types': 5.51.0 eslint-visitor-keys: 3.3.0 dev: true - /@vitest/coverage-c8/0.28.3: - resolution: {integrity: sha512-3Toi4flNyxwSSYohhV3/euFSyrHjaD9vJVwFVcy84lcRHMEkv0W7pxlqZZeCvPdktN+WETbNazx3WWBs0jqhVQ==} + /@vitejs/plugin-react/3.1.0_vite@4.1.1: + resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.1.0-beta.0 + dependencies: + '@babel/core': 7.20.12 + '@babel/plugin-transform-react-jsx-self': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.20.12 + magic-string: 0.27.0 + react-refresh: 0.14.0 + vite: 4.1.1_@types+node@18.11.19 + transitivePeerDependencies: + - supports-color + dev: true + + /@vitest/coverage-c8/0.28.4: + resolution: {integrity: sha512-btelLBxaWhHnywXRQxDlrvPhGdnuIaD3XulsxcZRIcnpLPbFu39dNTT0IYu2QWP2ZZrV0AmNtdLIfD4c77zMAg==} dependencies: c8: 7.12.0 picocolors: 1.0.0 - std-env: 3.3.1 - vitest: 0.28.3 + std-env: 3.3.2 + vitest: 0.28.4 transitivePeerDependencies: - '@edge-runtime/vm' - '@vitest/browser' @@ -1560,30 +1661,30 @@ packages: - terser dev: true - /@vitest/expect/0.28.3: - resolution: {integrity: sha512-dnxllhfln88DOvpAK1fuI7/xHwRgTgR4wdxHldPaoTaBu6Rh9zK5b//v/cjTkhOfNP/AJ8evbNO8H7c3biwd1g==} + /@vitest/expect/0.28.4: + resolution: {integrity: sha512-JqK0NZ4brjvOSL8hXAnIsfi+jxDF7rH/ZWCGCt0FAqRnVFc1hXsfwXksQvEnKqD84avRt3gmeXoK4tNbmkoVsQ==} dependencies: - '@vitest/spy': 0.28.3 - '@vitest/utils': 0.28.3 + '@vitest/spy': 0.28.4 + '@vitest/utils': 0.28.4 chai: 4.3.7 dev: true - /@vitest/runner/0.28.3: - resolution: {integrity: sha512-P0qYbATaemy1midOLkw7qf8jraJszCoEvjQOSlseiXZyEDaZTZ50J+lolz2hWiWv6RwDu1iNseL9XLsG0Jm2KQ==} + /@vitest/runner/0.28.4: + resolution: {integrity: sha512-Q8UV6GjDvBSTfUoq0QXVCNpNOUrWu4P2qvRq7ssJWzn0+S0ojbVOxEjMt+8a32X6SdkhF8ak+2nkppsqV0JyNQ==} dependencies: - '@vitest/utils': 0.28.3 + '@vitest/utils': 0.28.4 p-limit: 4.0.0 pathe: 1.1.0 dev: true - /@vitest/spy/0.28.3: - resolution: {integrity: sha512-jULA6suS6CCr9VZfr7/9x97pZ0hC55prnUNHNrg5/q16ARBY38RsjsfhuUXt6QOwvIN3BhSS0QqPzyh5Di8g6w==} + /@vitest/spy/0.28.4: + resolution: {integrity: sha512-8WuhfXLlvCXpNXEGJW6Gc+IKWI32435fQJLh43u70HnZ1otJOa2Cmg2Wy2Aym47ZnNCP4NolF+8cUPwd0MigKQ==} dependencies: tinyspy: 1.0.2 dev: true - /@vitest/utils/0.28.3: - resolution: {integrity: sha512-YHiQEHQqXyIbhDqETOJUKx9/psybF7SFFVCNfOvap0FvyUqbzTSDCa3S5lL4C0CLXkwVZttz9xknDoyHMguFRQ==} + /@vitest/utils/0.28.4: + resolution: {integrity: sha512-l2QztOLdc2LkR+w/lP52RGh8hW+Ul4KESmCAgVE8q737I7e7bQoAfkARKpkPJ4JQtGpwW4deqlj1732VZD7TFw==} dependencies: cli-truncate: 3.1.0 diff: 5.1.0 @@ -1643,6 +1744,11 @@ packages: engines: {node: '>=4'} dev: true + /ansi-regex/4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + dev: true + /ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -2188,6 +2294,14 @@ packages: string-width: 5.1.2 dev: true + /cliui/5.0.0: + resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} + dependencies: + string-width: 3.1.0 + strip-ansi: 5.2.0 + wrap-ansi: 5.1.0 + dev: true + /cliui/6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} dependencies: @@ -2536,7 +2650,7 @@ packages: debug: 4.3.4 filing-cabinet: 3.3.0 precinct: 9.0.1 - typescript: 4.9.4 + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true @@ -2687,10 +2801,10 @@ packages: resolution: {integrity: sha512-lR78AugfUSBojwlSRZBeEqQ1l8LI7rbxOl1qTUnGLcjZQDjZmrZCb7R46rK8U8B5WzFvJrxa7fEBA8FoD/n5fA==} engines: {node: ^12.20.0 || ^14.14.0 || >=16.0.0} dependencies: - '@typescript-eslint/typescript-estree': 5.49.0_typescript@4.9.4 + '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.9.5 ast-module-types: 3.0.0 node-source-walk: 5.0.0 - typescript: 4.9.4 + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true @@ -2750,7 +2864,7 @@ packages: dev: true patched: true - /docs-ts/0.6.10_hxi4q35dpslvaqd64zvxr4fn6m_uhxzhaxu465qzax2tftpee5s7i: + /docs-ts/0.6.10_hxi4q35dpslvaqd64zvxr4fn6m_ioxdq35luteszuxmt2jhnqjeca: resolution: {integrity: sha512-DTX9c5AJ92ojMOKqqvwF8t77C8Gdgs9FPB8seymHs+F+Wl6aapc3ZkHUM+p8o+jwcBmPoihxssdK903dfwQ1JQ==} hasBin: true peerDependencies: @@ -2759,17 +2873,17 @@ packages: dependencies: chalk: 2.4.2 doctrine: 3.0.0 - fp-ts: 2.12.3 + fp-ts: 2.13.1 fs-extra: 7.0.1 glob: 7.2.3 - io-ts: 2.2.19_fp-ts@2.12.3 - logging-ts: 0.3.4_fp-ts@2.12.3 + io-ts: 2.2.20_fp-ts@2.13.1 + logging-ts: 0.3.4_fp-ts@2.13.1 markdown-toc: 1.2.0 prettier: 2.8.3 rimraf: 2.7.1 ts-morph: 9.1.0 - ts-node: 8.10.2_typescript@4.9.4 - typescript: 4.9.4 + ts-node: 8.10.2_typescript@4.9.5 + typescript: 4.9.5 dev: true patched: true @@ -2804,6 +2918,10 @@ packages: resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} dev: true + /emoji-regex/7.0.3: + resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} + dev: true + /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -2833,6 +2951,12 @@ packages: is-arrayish: 0.2.1 dev: true + /error-stack-parser/2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + dependencies: + stackframe: 1.3.4 + dev: true + /es-abstract/1.21.1: resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} engines: {node: '>= 0.4'} @@ -3105,34 +3229,34 @@ packages: esbuild-windows-arm64: 0.14.54 dev: true - /esbuild/0.16.16: - resolution: {integrity: sha512-24JyKq10KXM5EBIgPotYIJ2fInNWVVqflv3gicIyQqfmUqi4HvDW1VR790cBgLJHCl96Syy7lhoz7tLFcmuRmg==} + /esbuild/0.16.17: + resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.16.16 - '@esbuild/android-arm64': 0.16.16 - '@esbuild/android-x64': 0.16.16 - '@esbuild/darwin-arm64': 0.16.16 - '@esbuild/darwin-x64': 0.16.16 - '@esbuild/freebsd-arm64': 0.16.16 - '@esbuild/freebsd-x64': 0.16.16 - '@esbuild/linux-arm': 0.16.16 - '@esbuild/linux-arm64': 0.16.16 - '@esbuild/linux-ia32': 0.16.16 - '@esbuild/linux-loong64': 0.16.16 - '@esbuild/linux-mips64el': 0.16.16 - '@esbuild/linux-ppc64': 0.16.16 - '@esbuild/linux-riscv64': 0.16.16 - '@esbuild/linux-s390x': 0.16.16 - '@esbuild/linux-x64': 0.16.16 - '@esbuild/netbsd-x64': 0.16.16 - '@esbuild/openbsd-x64': 0.16.16 - '@esbuild/sunos-x64': 0.16.16 - '@esbuild/win32-arm64': 0.16.16 - '@esbuild/win32-ia32': 0.16.16 - '@esbuild/win32-x64': 0.16.16 + '@esbuild/android-arm': 0.16.17 + '@esbuild/android-arm64': 0.16.17 + '@esbuild/android-x64': 0.16.17 + '@esbuild/darwin-arm64': 0.16.17 + '@esbuild/darwin-x64': 0.16.17 + '@esbuild/freebsd-arm64': 0.16.17 + '@esbuild/freebsd-x64': 0.16.17 + '@esbuild/linux-arm': 0.16.17 + '@esbuild/linux-arm64': 0.16.17 + '@esbuild/linux-ia32': 0.16.17 + '@esbuild/linux-loong64': 0.16.17 + '@esbuild/linux-mips64el': 0.16.17 + '@esbuild/linux-ppc64': 0.16.17 + '@esbuild/linux-riscv64': 0.16.17 + '@esbuild/linux-s390x': 0.16.17 + '@esbuild/linux-x64': 0.16.17 + '@esbuild/netbsd-x64': 0.16.17 + '@esbuild/openbsd-x64': 0.16.17 + '@esbuild/sunos-x64': 0.16.17 + '@esbuild/win32-arm64': 0.16.17 + '@esbuild/win32-ia32': 0.16.17 + '@esbuild/win32-x64': 0.16.17 dev: true /escalade/3.1.1: @@ -3188,7 +3312,7 @@ packages: debug: 4.3.4 enhanced-resolve: 5.12.0 eslint: 8.33.0 - eslint-plugin-import: 2.27.5_c6pjvta7aysubsdnhvgec47vxe + eslint-plugin-import: 2.27.5_kuqv7qxblf6fgldep4hddd7xwa get-tsconfig: 4.3.0 globby: 13.1.3 is-core-module: 2.11.0 @@ -3198,7 +3322,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_5hqjyc62h4cn6t4zslmr6l4rke: + /eslint-module-utils/2.7.4_wj7ubv6viehxm3sdjw6f37lxha: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -3219,7 +3343,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.49.0_zkdaqh7it7uc4cvz2haft7rc6u + '@typescript-eslint/parser': 5.51.0_4vsywjlpuriuw3tl5oq6zy5a64 debug: 3.2.7 eslint: 8.33.0 eslint-import-resolver-node: 0.3.7 @@ -3248,22 +3372,22 @@ packages: - supports-color dev: true - /eslint-plugin-deprecation/1.3.3_zkdaqh7it7uc4cvz2haft7rc6u: + /eslint-plugin-deprecation/1.3.3_4vsywjlpuriuw3tl5oq6zy5a64: resolution: {integrity: sha512-Bbkv6ZN2cCthVXz/oZKPwsSY5S/CbgTLRG4Q2s2gpPpgNsT0uJ0dB5oLNiWzFYY8AgKX4ULxXFG1l/rDav9QFA==} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 typescript: ^3.7.5 || ^4.0.0 dependencies: - '@typescript-eslint/experimental-utils': 5.45.1_zkdaqh7it7uc4cvz2haft7rc6u + '@typescript-eslint/experimental-utils': 5.45.1_4vsywjlpuriuw3tl5oq6zy5a64 eslint: 8.33.0 tslib: 2.4.1 - tsutils: 3.21.0_typescript@4.9.4 - typescript: 4.9.4 + tsutils: 3.21.0_typescript@4.9.5 + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import/2.27.5_c6pjvta7aysubsdnhvgec47vxe: + /eslint-plugin-import/2.27.5_kuqv7qxblf6fgldep4hddd7xwa: resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -3273,7 +3397,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.49.0_zkdaqh7it7uc4cvz2haft7rc6u + '@typescript-eslint/parser': 5.51.0_4vsywjlpuriuw3tl5oq6zy5a64 array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 @@ -3281,7 +3405,7 @@ packages: doctrine: 2.1.0 eslint: 8.33.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4_5hqjyc62h4cn6t4zslmr6l4rke + eslint-module-utils: 2.7.4_wj7ubv6viehxm3sdjw6f37lxha has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -3437,6 +3561,10 @@ packages: engines: {node: '>=4.0'} dev: true + /estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + /esutils/2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -3660,6 +3788,13 @@ packages: resolution: {integrity: sha512-uJ5vWrfBKMcE6y2Z8834dwEZj9mNGxYa3t3I53OwFeuZ8D9oc2E5zcsrkuhX6h4iYrjhiv0T3szQmxlAV9uxDg==} dev: true + /find-up/3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + dependencies: + locate-path: 3.0.0 + dev: true + /find-up/4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -3741,14 +3876,6 @@ packages: map-cache: 0.2.2 dev: true - /fs-extra/6.0.1: - resolution: {integrity: sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==} - dependencies: - graceful-fs: 4.2.10 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: true - /fs-extra/7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -4386,6 +4513,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-fullwidth-code-point/2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + dev: true + /is-fullwidth-code-point/3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -4721,7 +4853,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.4.1 - '@types/node': 18.11.18 + '@types/node': 18.11.19 chalk: 4.1.2 ci-info: 3.7.1 graceful-fs: 4.2.10 @@ -4884,6 +5016,14 @@ packages: engines: {node: '>=14'} dev: true + /locate-path/3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: true + /locate-path/5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -4943,6 +5083,14 @@ packages: fp-ts: 2.12.3 dev: true + /logging-ts/0.3.4_fp-ts@2.13.1: + resolution: {integrity: sha512-TJYaSB88h8N9/ojruoGZgJeQEwpLmDNWpGf03hDgjPNo5QnwO28vkSH/H8/9aMoX8zeShVJUOnKRM6zs5ifR0A==} + peerDependencies: + fp-ts: ^2.0.5 + dependencies: + fp-ts: 2.13.1 + dev: true + /loupe/2.3.4: resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} dependencies: @@ -5007,6 +5155,13 @@ packages: - supports-color dev: true + /magic-string/0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + /make-dir/2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -5538,6 +5693,13 @@ packages: yocto-queue: 1.0.0 dev: true + /p-locate/3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + dependencies: + p-limit: 2.3.0 + dev: true + /p-locate/4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -5594,15 +5756,16 @@ packages: engines: {node: '>=6'} dev: true - /parsimmon/1.18.1: - resolution: {integrity: sha512-u7p959wLfGAhJpSDJVYXoyMCXWYwHia78HhRBWqk7AIbxdmlrfdp5wX0l3xv/iTSH5HvhN9K7o26hwwpgS5Nmw==} - dev: true - /pascalcase/0.1.1: resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} engines: {node: '>=0.10.0'} dev: true + /path-exists/3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: true + /path-exists/4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -5871,6 +6034,10 @@ packages: resolution: {integrity: sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==} dev: true + /ramda/0.26.1: + resolution: {integrity: sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==} + dev: true + /randomatic/3.1.1: resolution: {integrity: sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==} engines: {node: '>= 0.10.0'} @@ -5898,6 +6065,11 @@ packages: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true + /react-refresh/0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: true + /read-pkg-up/7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -6133,8 +6305,8 @@ packages: fsevents: 2.3.2 dev: true - /rollup/3.9.1: - resolution: {integrity: sha512-GswCYHXftN8ZKGVgQhTFUJB/NBXxrRGgO2NCy6E8s1rwEJ4Q9/VttNqcYfEvx4dTo4j58YqdC3OVztPzlKSX8w==} + /rollup/3.14.0: + resolution: {integrity: sha512-o23sdgCLcLSe3zIplT9nQ1+r97okuaiR+vmAPZPTDYB7/f3tgWIYNyiQveMsZwshBT0is4eGax/HH83Q7CG+/Q==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -6150,7 +6322,7 @@ packages: /rxjs/7.6.0: resolution: {integrity: sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ==} dependencies: - tslib: 2.4.1 + tslib: 2.5.0 dev: true /safe-buffer/5.1.2: @@ -6440,6 +6612,10 @@ packages: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true + /stackframe/1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + dev: true + /static-extend/0.1.2: resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} engines: {node: '>=0.10.0'} @@ -6448,8 +6624,8 @@ packages: object-copy: 0.1.0 dev: true - /std-env/3.3.1: - resolution: {integrity: sha512-3H20QlwQsSm2OvAxWIYhs+j01MzzqwMwGiiO1NQaJYZgJZFPuAbf95/DiKRBSTYIJ2FeGUc+B/6mPGcWP9dO3Q==} + /std-env/3.3.2: + resolution: {integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==} dev: true /stream-to-array/2.3.0: @@ -6464,6 +6640,15 @@ packages: mixme: 0.5.4 dev: true + /string-width/3.1.0: + resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} + engines: {node: '>=6'} + dependencies: + emoji-regex: 7.0.3 + is-fullwidth-code-point: 2.0.0 + strip-ansi: 5.2.0 + dev: true + /string-width/4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -6532,6 +6717,13 @@ packages: is-regexp: 1.0.0 dev: true + /strip-ansi/5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + dependencies: + ansi-regex: 4.1.1 + dev: true + /strip-ansi/6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -6573,8 +6765,8 @@ packages: engines: {node: '>=8'} dev: true - /strip-literal/1.0.0: - resolution: {integrity: sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ==} + /strip-literal/1.0.1: + resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} dependencies: acorn: 8.8.2 dev: true @@ -6627,7 +6819,7 @@ packages: engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/utils': 2.3.1 - tslib: 2.4.1 + tslib: 2.5.0 dev: true /tapable/2.2.1: @@ -6753,6 +6945,27 @@ packages: engines: {node: '>=8'} dev: true + /ts-codemod/4.0.4: + resolution: {integrity: sha512-Jw6aaKsUozk8zalfiFRP5CtP3F4JSVE70ocLLEEYvDwoebOWfGU+V3Usf2Lcs59h9Az/D2IHKx6D0AW2gU6vuA==} + hasBin: true + dependencies: + chalk: 2.4.2 + debug: 4.3.4 + fs-extra: 8.1.0 + json5: 2.2.3 + ramda: 0.26.1 + ts-curry: 1.0.4 + ts-node: 8.10.2_typescript@3.9.10 + typescript: 3.9.10 + yargs: 14.2.3 + transitivePeerDependencies: + - supports-color + dev: true + + /ts-curry/1.0.4: + resolution: {integrity: sha512-mJGJ6jcY6gm+tYUcw5gBqHaSkb1Mw3w28PbRJAZP+kraalEv6MpMHy+y3fsTBhQpcR7BpcqDmRcvdC4sn/6U5A==} + dev: true + /ts-graphviz/1.5.2: resolution: {integrity: sha512-/V4N6wIvE+mcQicUfqSNxzFUX4xNccpwi3fGafEUSqGBSZYp9HVP8RZdjTfxCQvTjavxqUrEDB5ucEqKPLgp+w==} engines: {node: '>=14.16'} @@ -6797,7 +7010,7 @@ packages: yn: 3.1.1 dev: true - /ts-node/10.9.1_awa2wsr5thmg3i7jqycphctjfq: + /ts-node/10.9.1_qqdszkrtcshgbphghj7vnvrrby: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -6816,18 +7029,33 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.11.18 + '@types/node': 18.11.19 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.9.4 + typescript: 4.9.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true + /ts-node/8.10.2_typescript@3.9.10: + resolution: {integrity: sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==} + engines: {node: '>=6.0.0'} + hasBin: true + peerDependencies: + typescript: '>=2.7' + dependencies: + arg: 4.1.3 + diff: 4.0.2 + make-error: 1.3.6 + source-map-support: 0.5.21 + typescript: 3.9.10 + yn: 3.1.1 + dev: true + /ts-node/8.10.2_typescript@4.8.4: resolution: {integrity: sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==} engines: {node: '>=6.0.0'} @@ -6843,7 +7071,7 @@ packages: yn: 3.1.1 dev: true - /ts-node/8.10.2_typescript@4.9.4: + /ts-node/8.10.2_typescript@4.9.5: resolution: {integrity: sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==} engines: {node: '>=6.0.0'} hasBin: true @@ -6854,7 +7082,7 @@ packages: diff: 4.0.2 make-error: 1.3.6 source-map-support: 0.5.21 - typescript: 4.9.4 + typescript: 4.9.5 yn: 3.1.1 dev: true @@ -6879,30 +7107,11 @@ packages: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} dev: true - /tslint/5.20.1_typescript@4.9.4: - resolution: {integrity: sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==} - engines: {node: '>=4.8.0'} - hasBin: true - peerDependencies: - typescript: '>=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev' - dependencies: - '@babel/code-frame': 7.18.6 - builtin-modules: 1.1.1 - chalk: 2.4.2 - commander: 2.20.3 - diff: 4.0.2 - glob: 7.2.3 - js-yaml: 3.14.1 - minimatch: 3.1.2 - mkdirp: 0.5.6 - resolve: 1.22.1 - semver: 5.7.1 - tslib: 1.14.1 - tsutils: 2.29.0_typescript@4.9.4 - typescript: 4.9.4 + /tslib/2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} dev: true - /tslint/6.1.3_typescript@4.9.4: + /tslint/6.1.3_typescript@4.9.5: resolution: {integrity: sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==} engines: {node: '>=4.8.0'} deprecated: TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information. @@ -6922,17 +7131,17 @@ packages: resolve: 1.22.1 semver: 5.7.1 tslib: 1.14.1 - tsutils: 2.29.0_typescript@4.9.4 - typescript: 4.9.4 + tsutils: 2.29.0_typescript@4.9.5 + typescript: 4.9.5 dev: true - /tsutils/2.29.0_typescript@4.9.4: + /tsutils/2.29.0_typescript@4.9.5: resolution: {integrity: sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==} peerDependencies: typescript: '>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev' dependencies: tslib: 1.14.1 - typescript: 4.9.4 + typescript: 4.9.5 dev: true /tsutils/3.21.0_typescript@3.9.10: @@ -6945,14 +7154,14 @@ packages: typescript: 3.9.10 dev: true - /tsutils/3.21.0_typescript@4.9.4: + /tsutils/3.21.0_typescript@4.9.5: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.9.4 + typescript: 4.9.5 dev: true /tty-table/4.1.6: @@ -7043,8 +7252,8 @@ packages: hasBin: true dev: true - /typescript/4.9.4: - resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} + /typescript/4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true dev: true @@ -7170,8 +7379,8 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /vite-node/0.28.3_@types+node@18.11.18: - resolution: {integrity: sha512-uJJAOkgVwdfCX8PUQhqLyDOpkBS5+j+FdbsXoPVPDlvVjRkb/W/mLYQPSL6J+t8R0UV8tJSe8c9VyxVQNsDSyg==} + /vite-node/0.28.4_@types+node@18.11.19: + resolution: {integrity: sha512-KM0Q0uSG/xHHKOJvVHc5xDBabgt0l70y7/lWTR7Q0pR5/MrYxadT+y32cJOE65FfjGmJgxpVEEY+69btJgcXOQ==} engines: {node: '>=v14.16.0'} hasBin: true dependencies: @@ -7182,7 +7391,7 @@ packages: picocolors: 1.0.0 source-map: 0.6.1 source-map-support: 0.5.21 - vite: 4.0.4_@types+node@18.11.18 + vite: 4.1.1_@types+node@18.11.19 transitivePeerDependencies: - '@types/node' - less @@ -7217,8 +7426,8 @@ packages: fsevents: 2.3.2 dev: true - /vite/4.0.4_@types+node@18.11.18: - resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} + /vite/4.1.1_@types+node@18.11.19: + resolution: {integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -7242,11 +7451,11 @@ packages: terser: optional: true dependencies: - '@types/node': 18.11.18 - esbuild: 0.16.16 + '@types/node': 18.11.19 + esbuild: 0.16.17 postcss: 8.4.21 resolve: 1.22.1 - rollup: 3.9.1 + rollup: 3.14.0 optionalDependencies: fsevents: 2.3.2 dev: true @@ -7286,8 +7495,8 @@ packages: - supports-color dev: true - /vitest/0.28.3: - resolution: {integrity: sha512-N41VPNf3VGJlWQizGvl1P5MGyv3ZZA2Zvh+2V8L6tYBAAuqqDK4zExunT1Cdb6dGfZ4gr+IMrnG8d4Z6j9ctPw==} + /vitest/0.28.4: + resolution: {integrity: sha512-sfWIy0AdlbyGRhunm+TLQEJrFH9XuRPdApfubsyLcDbCRrUX717BRQKInTgzEfyl2Ipi1HWoHB84Nqtcwxogcg==} engines: {node: '>=v14.16.0'} hasBin: true peerDependencies: @@ -7310,11 +7519,11 @@ packages: dependencies: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 - '@types/node': 18.11.18 - '@vitest/expect': 0.28.3 - '@vitest/runner': 0.28.3 - '@vitest/spy': 0.28.3 - '@vitest/utils': 0.28.3 + '@types/node': 18.11.19 + '@vitest/expect': 0.28.4 + '@vitest/runner': 0.28.4 + '@vitest/spy': 0.28.4 + '@vitest/utils': 0.28.4 acorn: 8.8.2 acorn-walk: 8.2.0 cac: 6.7.14 @@ -7324,13 +7533,13 @@ packages: pathe: 1.1.0 picocolors: 1.0.0 source-map: 0.6.1 - std-env: 3.3.1 - strip-literal: 1.0.0 + std-env: 3.3.2 + strip-literal: 1.0.1 tinybench: 2.3.1 tinypool: 0.3.1 tinyspy: 1.0.2 - vite: 4.0.4_@types+node@18.11.18 - vite-node: 0.28.3_@types+node@18.11.18 + vite: 4.1.1_@types+node@18.11.19 + vite-node: 0.28.4_@types+node@18.11.19 why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -7426,6 +7635,15 @@ packages: engines: {node: '>=0.10.0'} dev: true + /wrap-ansi/5.1.0: + resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} + engines: {node: '>=6'} + dependencies: + ansi-styles: 3.2.1 + string-width: 3.1.0 + strip-ansi: 5.2.0 + dev: true + /wrap-ansi/6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -7482,6 +7700,13 @@ packages: glob: 7.2.3 dev: true + /yargs-parser/15.0.3: + resolution: {integrity: sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + /yargs-parser/18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} @@ -7500,6 +7725,22 @@ packages: engines: {node: '>=12'} dev: true + /yargs/14.2.3: + resolution: {integrity: sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==} + dependencies: + cliui: 5.0.0 + decamelize: 1.2.0 + find-up: 3.0.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 3.1.0 + which-module: 2.0.0 + y18n: 4.0.3 + yargs-parser: 15.0.3 + dev: true + /yargs/15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} engines: {node: '>=8'} @@ -7557,17 +7798,3 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} dev: true - - github.com/gcanti/dtslint/4552d162099399c4e14f8486ced673411e5b3659: - resolution: {tarball: https://codeload.github.com/gcanti/dtslint/tar.gz/4552d162099399c4e14f8486ced673411e5b3659} - name: dtslint - version: 0.4.4 - engines: {node: '>=6.10.0'} - hasBin: true - dependencies: - fs-extra: 6.0.1 - parsimmon: 1.18.1 - strip-json-comments: 2.0.1 - tslint: 5.20.1_typescript@4.9.4 - typescript: 4.9.4 - dev: true diff --git a/src/Brand.ts b/src/Brand.ts index 273de739..cc7ac92a 100644 --- a/src/Brand.ts +++ b/src/Brand.ts @@ -11,7 +11,7 @@ import * as ReadonlyArray from "@fp-ts/core/ReadonlyArray" * @since 1.0.0 * @category symbols */ -export const BrandTypeId: unique symbol = Symbol.for("@fp-ts/data/Brand") +export const BrandTypeId: unique symbol = Symbol.for("@effect/data/Brand") /** * @since 1.0.0 @@ -23,7 +23,7 @@ export type BrandTypeId = typeof BrandTypeId * @since 1.0.0 * @category symbols */ -export const NominalConstructorTypeId: unique symbol = Symbol.for("@fp-ts/data/Brand/Nominal") +export const NominalConstructorTypeId: unique symbol = Symbol.for("@effect/data/Brand/Nominal") /** * @since 1.0.0 @@ -35,7 +35,7 @@ export type NominalConstructorTypeId = typeof NominalConstructorTypeId * @since 1.0.0 * @category symbols */ -export const RefinedConstructorsTypeId: unique symbol = Symbol.for("@fp-ts/data/Brand/Refined") +export const RefinedConstructorsTypeId: unique symbol = Symbol.for("@effect/data/Brand/Refined") /** * @since 1.0.0 @@ -159,8 +159,9 @@ export declare namespace Brand { > = { [B in keyof Brands]: Brand.Unbranded> extends Brand.Unbranded> - ? Brand.Unbranded> extends - Brand.Unbranded> ? Brands[B] : Brands[B] + ? Brand.Unbranded> extends Brand.Unbranded> + ? Brands[B] + : Brands[B] : "ERROR: All brands should have the same base type" } @@ -168,8 +169,7 @@ export declare namespace Brand { * @since 1.0.0 * @category models */ - export type UnionToIntersection = (T extends any ? (x: T) => any : never) extends - (x: infer R) => any ? R + export type UnionToIntersection = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R : never } @@ -186,8 +186,7 @@ export const error = (message: string, meta?: unknown): Brand.BrandErrors => [{ * @since 1.0.0 * @category constructors */ -export const errors = (...errors: Array): Brand.BrandErrors => - ReadonlyArray.flatten(errors) +export const errors = (...errors: Array): Brand.BrandErrors => ReadonlyArray.flatten(errors) /** * Returns `true` if the provided `Brand` is nominal, `false` otherwise. diff --git a/src/Chunk.ts b/src/Chunk.ts index 5fcee14e..f7673a7d 100644 --- a/src/Chunk.ts +++ b/src/Chunk.ts @@ -1,6 +1,10 @@ /** * @since 1.0.0 */ +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import type { NonEmptyIterable } from "@effect/data/NonEmpty" import type { Either } from "@fp-ts/core/Either" import { identity, pipe } from "@fp-ts/core/Function" import type { TypeLambda } from "@fp-ts/core/HKT" @@ -9,12 +13,8 @@ import * as O from "@fp-ts/core/Option" import type { Predicate, Refinement } from "@fp-ts/core/Predicate" import * as RA from "@fp-ts/core/ReadonlyArray" import type { Order } from "@fp-ts/core/typeclass/Order" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import type { NonEmptyIterable } from "@fp-ts/data/NonEmpty" -const TypeId: unique symbol = Symbol.for("@fp-ts/data/Chunk") as TypeId +const TypeId: unique symbol = Symbol.for("@effect/data/Chunk") as TypeId /** * @since 1.0.0 @@ -408,8 +408,7 @@ const copyToArray = (self: Chunk, array: Array, n: number) => { export const isChunk: { (u: Iterable): u is Chunk (u: unknown): u is Chunk -} = (u: unknown): u is Chunk => - typeof u === "object" && u != null && "_id" in u && u["_id"] === TypeId +} = (u: unknown): u is Chunk => typeof u === "object" && u != null && "_id" in u && u["_id"] === TypeId const _empty = new ChunkImpl({ _tag: "IEmpty" }) @@ -461,8 +460,7 @@ export const get: { * @since 1.0.0 * @category unsafe */ -export const unsafeFromArray = (self: ReadonlyArray): Chunk => - new ChunkImpl({ _tag: "IArray", array: self }) +export const unsafeFromArray = (self: ReadonlyArray): Chunk => new ChunkImpl({ _tag: "IArray", array: self }) /** * Gets an element unsafely, will throw on out of bounds @@ -1247,8 +1245,7 @@ export const range = (start: number, end: number): NonEmptyChunk => * @since 1.0.0 * @category elements */ -export const reverse = (self: Chunk): Chunk => - unsafeFromArray(RA.reverse(toReadonlyArray(self))) +export const reverse = (self: Chunk): Chunk => unsafeFromArray(RA.reverse(toReadonlyArray(self))) /** * Retireves the size of the chunk @@ -1353,8 +1350,7 @@ export const splitWhere: { * @since 1.0.0 * @category elements */ -export const tail = (self: Chunk): Option> => - self.length > 0 ? O.some(drop(1)(self)) : O.none() +export const tail = (self: Chunk): Option> => self.length > 0 ? O.some(drop(1)(self)) : O.none() /** * Takes the last `n` elements. @@ -1643,8 +1639,7 @@ export const cross: { * @category elements * @since 1.0.0 */ -export const zipWithIndex = (self: Chunk): Chunk => - zipWithIndexOffset(0)(self) +export const zipWithIndex = (self: Chunk): Chunk => zipWithIndexOffset(0)(self) /** * Zips this chunk with the index of every element, starting from the initial diff --git a/src/Context.ts b/src/Context.ts index d46c8ff8..1123f120 100644 --- a/src/Context.ts +++ b/src/Context.ts @@ -1,9 +1,9 @@ /** * @since 1.0.0 */ +import type { Equal } from "@effect/data/Equal" +import * as C from "@effect/data/internal/Context" import type { Option } from "@fp-ts/core/Option" -import type { Equal } from "@fp-ts/data/Equal" -import * as C from "@fp-ts/data/internal/Context" const TagTypeId: unique symbol = C.TagTypeId diff --git a/src/Data.ts b/src/Data.ts index 2aca653b..a1676715 100644 --- a/src/Data.ts +++ b/src/Data.ts @@ -1,8 +1,8 @@ /** * @since 1.0.0 */ -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" /** * @category models @@ -94,15 +94,13 @@ export const tuple = >(...as: As): Data => uns * @category constructors * @since 1.0.0 */ -export const array = >(as: As): Data => - unsafeArray(as.slice(0) as unknown as As) +export const array = >(as: As): Data => unsafeArray(as.slice(0) as unknown as As) /** * @category constructors * @since 1.0.0 */ -export const unsafeArray = >(as: As): Data => - Object.setPrototypeOf(as, protoArr) +export const unsafeArray = >(as: As): Data => Object.setPrototypeOf(as, protoArr) const _case = (): Case.Constructor => struct as any diff --git a/src/Differ.ts b/src/Differ.ts index dbd5d111..0054d218 100644 --- a/src/Differ.ts +++ b/src/Differ.ts @@ -1,18 +1,18 @@ /** * @since 1.0.0 */ +import type { Chunk } from "@effect/data/Chunk" +import type { Context } from "@effect/data/Context" +import type { ChunkPatch } from "@effect/data/Differ/ChunkPatch" +import type { ContextPatch } from "@effect/data/Differ/ContextPatch" +import type { HashMapPatch } from "@effect/data/Differ/HashMapPatch" +import type { HashSetPatch } from "@effect/data/Differ/HashSetPatch" +import type { OrPatch } from "@effect/data/Differ/OrPatch" +import * as Dual from "@effect/data/Dual" +import type { HashMap } from "@effect/data/HashMap" +import type { HashSet } from "@effect/data/HashSet" +import * as D from "@effect/data/internal/Differ" import type { Either } from "@fp-ts/core/Either" -import type { Chunk } from "@fp-ts/data/Chunk" -import type { Context } from "@fp-ts/data/Context" -import type { ChunkPatch } from "@fp-ts/data/Differ/ChunkPatch" -import type { ContextPatch } from "@fp-ts/data/Differ/ContextPatch" -import type { HashMapPatch } from "@fp-ts/data/Differ/HashMapPatch" -import type { HashSetPatch } from "@fp-ts/data/Differ/HashSetPatch" -import type { OrPatch } from "@fp-ts/data/Differ/OrPatch" -import * as Dual from "@fp-ts/data/Dual" -import type { HashMap } from "@fp-ts/data/HashMap" -import type { HashSet } from "@fp-ts/data/HashSet" -import * as D from "@fp-ts/data/internal/Differ" const TypeId: unique symbol = D.DifferTypeId as TypeId diff --git a/src/Differ/ChunkPatch.ts b/src/Differ/ChunkPatch.ts index 3cd55f5a..2a9c307c 100644 --- a/src/Differ/ChunkPatch.ts +++ b/src/Differ/ChunkPatch.ts @@ -2,10 +2,10 @@ * @since 1.0.0 */ -import type { Chunk } from "@fp-ts/data/Chunk" -import type { Differ } from "@fp-ts/data/Differ" -import type { Equal } from "@fp-ts/data/Equal" -import * as CP from "@fp-ts/data/internal/Differ/ChunkPatch" +import type { Chunk } from "@effect/data/Chunk" +import type { Differ } from "@effect/data/Differ" +import type { Equal } from "@effect/data/Equal" +import * as CP from "@effect/data/internal/Differ/ChunkPatch" const TypeId: unique symbol = CP.ChunkPatchTypeId as TypeId diff --git a/src/Differ/ContextPatch.ts b/src/Differ/ContextPatch.ts index 9552a1c5..134b918c 100644 --- a/src/Differ/ContextPatch.ts +++ b/src/Differ/ContextPatch.ts @@ -2,9 +2,9 @@ * @since 1.0.0 */ -import type { Context } from "@fp-ts/data/Context" -import type { Equal } from "@fp-ts/data/Equal" -import * as CP from "@fp-ts/data/internal/Differ/ContextPatch" +import type { Context } from "@effect/data/Context" +import type { Equal } from "@effect/data/Equal" +import * as CP from "@effect/data/internal/Differ/ContextPatch" const TypeId: unique symbol = CP.ContextPatchTypeId as TypeId diff --git a/src/Differ/HashMapPatch.ts b/src/Differ/HashMapPatch.ts index aaf6369d..7478150b 100644 --- a/src/Differ/HashMapPatch.ts +++ b/src/Differ/HashMapPatch.ts @@ -2,10 +2,10 @@ * @since 1.0.0 */ -import type { Differ } from "@fp-ts/data/Differ" -import type { Equal } from "@fp-ts/data/Equal" -import type { HashMap } from "@fp-ts/data/HashMap" -import * as HMP from "@fp-ts/data/internal/Differ/HashMapPatch" +import type { Differ } from "@effect/data/Differ" +import type { Equal } from "@effect/data/Equal" +import type { HashMap } from "@effect/data/HashMap" +import * as HMP from "@effect/data/internal/Differ/HashMapPatch" const TypeId: unique symbol = HMP.HashMapPatchTypeId as TypeId diff --git a/src/Differ/HashSetPatch.ts b/src/Differ/HashSetPatch.ts index 6cb85ef8..fa949c96 100644 --- a/src/Differ/HashSetPatch.ts +++ b/src/Differ/HashSetPatch.ts @@ -2,9 +2,9 @@ * @since 1.0.0 */ -import type { Equal } from "@fp-ts/data/Equal" -import type { HashSet } from "@fp-ts/data/HashSet" -import * as HSP from "@fp-ts/data/internal/Differ/HashSetPatch" +import type { Equal } from "@effect/data/Equal" +import type { HashSet } from "@effect/data/HashSet" +import * as HSP from "@effect/data/internal/Differ/HashSetPatch" const TypeId: unique symbol = HSP.HashSetPatchTypeId as TypeId diff --git a/src/Differ/OrPatch.ts b/src/Differ/OrPatch.ts index a1133f01..4c0114e2 100644 --- a/src/Differ/OrPatch.ts +++ b/src/Differ/OrPatch.ts @@ -2,10 +2,10 @@ * @since 1.0.0 */ +import type { Differ } from "@effect/data/Differ" +import type { Equal } from "@effect/data/Equal" +import * as OP from "@effect/data/internal/Differ/OrPatch" import type { Either } from "@fp-ts/core/Either" -import type { Differ } from "@fp-ts/data/Differ" -import type { Equal } from "@fp-ts/data/Equal" -import * as OP from "@fp-ts/data/internal/Differ/OrPatch" const TypeId: unique symbol = OP.OrPatchTypeId as TypeId diff --git a/src/Duration.ts b/src/Duration.ts index 50e8bae0..e6eaecce 100644 --- a/src/Duration.ts +++ b/src/Duration.ts @@ -1,11 +1,11 @@ /** * @since 1.0.0 */ -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" -const TypeId: unique symbol = Symbol.for("@fp-ts/data/Duration") +const TypeId: unique symbol = Symbol.for("@effect/data/Duration") /** * @since 1.0.0 diff --git a/src/Equal.ts b/src/Equal.ts index 01e83129..d0e7b31e 100644 --- a/src/Equal.ts +++ b/src/Equal.ts @@ -1,15 +1,15 @@ /** * @since 1.0.0 */ +import * as Hash from "@effect/data/Hash" +import { structural } from "@effect/data/internal/Equal" import type { Equivalence } from "@fp-ts/core/typeclass/Equivalence" -import * as Hash from "@fp-ts/data/Hash" -import { structural } from "@fp-ts/data/internal/Equal" /** * @since 1.0.0 * @category symbols */ -export const symbol: unique symbol = Symbol.for("@fp-ts/data/Equal") +export const symbol: unique symbol = Symbol.for("@effect/data/Equal") /** * @since 1.0.0 @@ -79,8 +79,7 @@ function compareBoth(self: unknown, that: unknown) { * @since 1.0.0 * @category guards */ -export const isEqual = (u: unknown): u is Equal => - typeof u === "object" && u !== null && symbol in u +export const isEqual = (u: unknown): u is Equal => typeof u === "object" && u !== null && symbol in u /** * @since 1.0.0 diff --git a/src/Gen.ts b/src/Gen.ts index be93b48e..5609aa40 100644 --- a/src/Gen.ts +++ b/src/Gen.ts @@ -12,7 +12,7 @@ import type { Monad } from "@fp-ts/core/typeclass/Monad" * @category symbols * @since 1.0.0 */ -export const GenKindTypeId = Symbol.for("@fp-ts/data/Gen/GenKind") +export const GenKindTypeId = Symbol.for("@effect/data/Gen/GenKind") /** * @category symbols diff --git a/src/Hash.ts b/src/Hash.ts index 5425fa74..d8d71170 100644 --- a/src/Hash.ts +++ b/src/Hash.ts @@ -1,9 +1,9 @@ /** * @since 1.0.0 */ +import { structural } from "@effect/data/internal/Equal" +import { PCGRandom } from "@effect/data/Random" import { pipe } from "@fp-ts/core/Function" -import { structural } from "@fp-ts/data/internal/Equal" -import { PCGRandom } from "@fp-ts/data/Random" /** @internal */ const randomHashCache = new WeakMap() @@ -14,7 +14,7 @@ const pcgr = new PCGRandom() * @since 1.0.0 * @category symbols */ -export const symbol: unique symbol = Symbol.for("@fp-ts/data/Hash") +export const symbol: unique symbol = Symbol.for("@effect/data/Hash") /** * @since 1.0.0 diff --git a/src/HashMap.ts b/src/HashMap.ts index 815f7306..f2085d61 100644 --- a/src/HashMap.ts +++ b/src/HashMap.ts @@ -2,13 +2,13 @@ * @since 1.0.0 */ +import type { Equal } from "@effect/data/Equal" +import type { HashSet } from "@effect/data/HashSet" +import * as HM from "@effect/data/internal/HashMap" +import * as _keySet from "@effect/data/internal/HashMap/keySet" +import type { UpdateFn } from "@effect/data/internal/HashMap/node" import type { Option } from "@fp-ts/core/Option" import type { Predicate, Refinement } from "@fp-ts/core/Predicate" -import type { Equal } from "@fp-ts/data/Equal" -import type { HashSet } from "@fp-ts/data/HashSet" -import * as HM from "@fp-ts/data/internal/HashMap" -import * as _keySet from "@fp-ts/data/internal/HashMap/keySet" -import type { UpdateFn } from "@fp-ts/data/internal/HashMap/node" const TypeId: unique symbol = HM.HashMapTypeId as TypeId @@ -62,8 +62,7 @@ export const make: >( * @since 1.0.0 * @category constructors */ -export const fromIterable: (entries: Iterable) => HashMap = - HM.fromIterable +export const fromIterable: (entries: Iterable) => HashMap = HM.fromIterable /** * Checks if the `HashMap` contains any entries. diff --git a/src/HashSet.ts b/src/HashSet.ts index 60b94f4f..c67c6392 100644 --- a/src/HashSet.ts +++ b/src/HashSet.ts @@ -2,9 +2,9 @@ * @since 1.0.0 */ +import type { Equal } from "@effect/data/Equal" +import * as HS from "@effect/data/internal/HashSet" import type { Predicate, Refinement } from "@fp-ts/core/Predicate" -import type { Equal } from "@fp-ts/data/Equal" -import * as HS from "@fp-ts/data/internal/HashSet" const TypeId: unique symbol = HS.HashSetTypeId as TypeId diff --git a/src/List.ts b/src/List.ts index cdf2cb58..39b51ca8 100644 --- a/src/List.ts +++ b/src/List.ts @@ -12,16 +12,16 @@ * Licensed under Apache License 2.0 * (http://www.apache.org/licenses/LICENSE-2.0). */ +import * as Chunk from "@effect/data/Chunk" +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" import * as Either from "@fp-ts/core/Either" import { identity, unsafeCoerce } from "@fp-ts/core/Function" import * as Option from "@fp-ts/core/Option" import type { Predicate, Refinement } from "@fp-ts/core/Predicate" -import * as Chunk from "@fp-ts/data/Chunk" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -const ListSymbolKey = "@fp-ts/data/List" +const ListSymbolKey = "@effect/data/List" /** * @since 1.0.0 @@ -535,8 +535,7 @@ export const forEach: { * @since 1.0.0 * @category getters */ -export const head = (self: List): Option.Option => - isNil(self) ? Option.none() : Option.some(self.head) +export const head = (self: List): Option.Option => isNil(self) ? Option.none() : Option.some(self.head) /** * Returns the last element of the specified list, or `None` if the list is @@ -545,8 +544,7 @@ export const head = (self: List): Option.Option => * @since 1.0.0 * @category getters */ -export const last = (self: List): Option.Option => - isNil(self) ? Option.none() : Option.some(unsafeLast(self)!) +export const last = (self: List): Option.Option => isNil(self) ? Option.none() : Option.some(unsafeLast(self)!) /** * Applies the specified mapping function to each element of the list. @@ -806,8 +804,7 @@ export const splitAt: { * @since 1.0.0 * @category getters */ -export const tail = (self: List): Option.Option> => - isNil(self) ? Option.none() : Option.some(self.tail) +export const tail = (self: List): Option.Option> => isNil(self) ? Option.none() : Option.some(self.tail) /** * Takes the specified number of elements from the beginning of the specified diff --git a/src/MutableHashMap.ts b/src/MutableHashMap.ts index 73bc8369..5216afae 100644 --- a/src/MutableHashMap.ts +++ b/src/MutableHashMap.ts @@ -1,12 +1,12 @@ /** * @since 1.0.0 */ +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" import * as Option from "@fp-ts/core/Option" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -const TypeId: unique symbol = Symbol.for("@fp-ts/data/MutableHashMap") as TypeId +const TypeId: unique symbol = Symbol.for("@effect/data/MutableHashMap") as TypeId /** * @since 1.0.0 @@ -78,9 +78,7 @@ class MutableHashMapImpl implements MutableHashMap { } toString() { - return `MutableHashMap(${ - Array.from(this).map(([k, v]) => `[${String(k)}, ${String(v)}]`).join(", ") - })` + return `MutableHashMap(${Array.from(this).map(([k, v]) => `[${String(k)}, ${String(v)}]`).join(", ")})` } toJSON() { @@ -99,8 +97,7 @@ class MutableHashMapImpl implements MutableHashMap { * @since 1.0.0 * @category constructors */ -export const empty = (): MutableHashMap => - new MutableHashMapImpl() +export const empty = (): MutableHashMap => new MutableHashMapImpl() /** * @since 1.0.0 diff --git a/src/MutableHashSet.ts b/src/MutableHashSet.ts index ac226f0a..269e113a 100644 --- a/src/MutableHashSet.ts +++ b/src/MutableHashSet.ts @@ -1,10 +1,10 @@ /** * @since 1.0.0 */ -import * as Dual from "@fp-ts/data/Dual" -import * as MutableHashMap from "@fp-ts/data/MutableHashMap" +import * as Dual from "@effect/data/Dual" +import * as MutableHashMap from "@effect/data/MutableHashMap" -const TypeId: unique symbol = Symbol.for("@fp-ts/data/MutableHashSet") as TypeId +const TypeId: unique symbol = Symbol.for("@effect/data/MutableHashSet") as TypeId /** * @since 1.0.0 @@ -59,8 +59,7 @@ class MutableHashSetImpl implements MutableHashSet { * @since 1.0.0 * @category constructors */ -export const empty = (): MutableHashSet => - new MutableHashSetImpl(MutableHashMap.empty()) +export const empty = (): MutableHashSet => new MutableHashSetImpl(MutableHashMap.empty()) /** * @since 1.0.0 diff --git a/src/MutableList.ts b/src/MutableList.ts index 3d14a358..3dbea80b 100644 --- a/src/MutableList.ts +++ b/src/MutableList.ts @@ -1,9 +1,9 @@ /** * @since 1.0.0 */ -import * as Dual from "@fp-ts/data/Dual" +import * as Dual from "@effect/data/Dual" -const TypeId: unique symbol = Symbol.for("@fp-ts/data/MutableList") as TypeId +const TypeId: unique symbol = Symbol.for("@effect/data/MutableList") as TypeId /** * @since 1.0.0 @@ -133,8 +133,7 @@ export const length = (self: MutableList): number => (self as MutableListI * @since 1.0.0 * @category getters */ -export const tail = (self: MutableList): A | undefined => - self.tail === undefined ? undefined : self.tail.value +export const tail = (self: MutableList): A | undefined => self.tail === undefined ? undefined : self.tail.value /** * Returns the first element of the list, if it exists. @@ -142,8 +141,7 @@ export const tail = (self: MutableList): A | undefined => * @since 1.0.0 * @category getters */ -export const head = (self: MutableList): A | undefined => - self.head === undefined ? undefined : self.head.value +export const head = (self: MutableList): A | undefined => self.head === undefined ? undefined : self.head.value /** * Executes the specified function `f` for each element in the list. diff --git a/src/MutableQueue.ts b/src/MutableQueue.ts index 780b3de9..3e1a8038 100644 --- a/src/MutableQueue.ts +++ b/src/MutableQueue.ts @@ -1,11 +1,11 @@ /** * @since 1.0.0 */ -import * as Chunk from "@fp-ts/data/Chunk" -import * as Dual from "@fp-ts/data/Dual" -import * as MutableList from "@fp-ts/data/MutableList" +import * as Chunk from "@effect/data/Chunk" +import * as Dual from "@effect/data/Dual" +import * as MutableList from "@effect/data/MutableList" -const TypeId: unique symbol = Symbol.for("@fp-ts/data/MutableQueue") as TypeId +const TypeId: unique symbol = Symbol.for("@effect/data/MutableQueue") as TypeId /** * @since 1.0.0 @@ -17,7 +17,7 @@ export type TypeId = typeof TypeId * @since 1.0.0 * @category symbol */ -export const EmptyMutableQueue = Symbol.for("@fp-ts/data/mutable/MutableQueue/Empty") +export const EmptyMutableQueue = Symbol.for("@effect/data/mutable/MutableQueue/Empty") /** * @since 1.0.0 @@ -118,8 +118,7 @@ export const isFull = (self: MutableQueue): boolean => * @since 1.0.0 * @category getters */ -export const capacity = (self: MutableQueue): number => - self.capacity === undefined ? Infinity : self.capacity +export const capacity = (self: MutableQueue): number => self.capacity === undefined ? Infinity : self.capacity /** * Offers an element to the queue. diff --git a/src/MutableRef.ts b/src/MutableRef.ts index 41f0ec38..0609c4a1 100644 --- a/src/MutableRef.ts +++ b/src/MutableRef.ts @@ -1,10 +1,10 @@ /** * @since 1.0.0 */ -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" -const TypeId: unique symbol = Symbol.for("@fp-ts/data/MutableRef") as TypeId +const TypeId: unique symbol = Symbol.for("@effect/data/MutableRef") as TypeId /** * @since 1.0.0 diff --git a/src/RedBlackTree.ts b/src/RedBlackTree.ts index 334c5012..6aac0eb9 100644 --- a/src/RedBlackTree.ts +++ b/src/RedBlackTree.ts @@ -1,12 +1,12 @@ /** * @since 1.0.0 */ +import type { Chunk } from "@effect/data/Chunk" +import type { Equal } from "@effect/data/Equal" +import * as RBT from "@effect/data/internal/RedBlackTree" +import * as RBTI from "@effect/data/internal/RedBlackTree/iterator" import type { Option } from "@fp-ts/core/Option" import type { Order } from "@fp-ts/core/typeclass/Order" -import type { Chunk } from "@fp-ts/data/Chunk" -import type { Equal } from "@fp-ts/data/Equal" -import * as RBT from "@fp-ts/data/internal/RedBlackTree" -import * as RBTI from "@fp-ts/data/internal/RedBlackTree/iterator" const TypeId: unique symbol = RBT.RedBlackTreeTypeId as TypeId @@ -242,8 +242,7 @@ export const keys: (self: RedBlackTree) => IterableIterator = RBT * @since 1.0.0 * @category getters */ -export const keysReversed: (self: RedBlackTree) => IterableIterator = - RBT.keysBackward +export const keysReversed: (self: RedBlackTree) => IterableIterator = RBT.keysBackward /** * Returns the last entry in the tree, if it exists. @@ -409,5 +408,4 @@ export const values: (self: RedBlackTree) => IterableIterator = R * @since 1.0.0 * @category getters */ -export const valuesReversed: (self: RedBlackTree) => IterableIterator = - RBT.valuesBackward +export const valuesReversed: (self: RedBlackTree) => IterableIterator = RBT.valuesBackward diff --git a/src/SortedMap.ts b/src/SortedMap.ts index f3bb73d3..53eea73d 100644 --- a/src/SortedMap.ts +++ b/src/SortedMap.ts @@ -1,15 +1,15 @@ /** * @since 1.0.0 */ +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import * as RBT from "@effect/data/RedBlackTree" import { pipe } from "@fp-ts/core/Function" import * as Option from "@fp-ts/core/Option" import type { Order } from "@fp-ts/core/typeclass/Order" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import * as RBT from "@fp-ts/data/RedBlackTree" -const TypeId: unique symbol = Symbol.for("@fp-ts/data/SortedMap") +const TypeId: unique symbol = Symbol.for("@effect/data/SortedMap") /** * @since 1.0.0 @@ -34,7 +34,7 @@ class SortedMapImpl implements Iterable, Equal.Equal { constructor(readonly tree: RBT.RedBlackTree) {} [Hash.symbol](): number { - return pipe(Hash.hash(this.tree), Hash.combine(Hash.hash("@fp-ts/data/SortedMap"))) + return pipe(Hash.hash(this.tree), Hash.combine(Hash.hash("@effect/data/SortedMap"))) } [Equal.symbol](that: unknown): boolean { @@ -46,9 +46,7 @@ class SortedMapImpl implements Iterable, Equal.Equal { } toString() { - return `SortedMap(${ - Array.from(this).map(([k, v]) => `[${String(k)}, ${String(v)}]`).join(", ") - })` + return `SortedMap(${Array.from(this).map(([k, v]) => `[${String(k)}, ${String(v)}]`).join(", ")})` } toJSON() { @@ -77,16 +75,14 @@ export const isSortedMap: { * @since 1.0.0 * @category constructors */ -export const empty = (ord: Order): SortedMap => - new SortedMapImpl(RBT.empty(ord)) +export const empty = (ord: Order): SortedMap => new SortedMapImpl(RBT.empty(ord)) /** * @since 1.0.0 * @category constructors */ export const fromIterable = (ord: Order) => - (iterable: Iterable): SortedMap => - new SortedMapImpl(RBT.fromIterable(ord)(iterable)) + (iterable: Iterable): SortedMap => new SortedMapImpl(RBT.fromIterable(ord)(iterable)) /** * @since 1.0.0 @@ -114,8 +110,7 @@ export const isNonEmpty = (self: SortedMap): boolean => size(self) > * @since 1.0.0 * @category getters */ -export const entries = (self: SortedMap): Iterator => - self[Symbol.iterator]() +export const entries = (self: SortedMap): Iterator => self[Symbol.iterator]() /** * @since 1.0.0 @@ -153,8 +148,7 @@ export const has: { * @since 1.0.0 * @category elements */ -export const headOption = (self: SortedMap): Option.Option => - RBT.first(self.tree) +export const headOption = (self: SortedMap): Option.Option => RBT.first(self.tree) /** * @since 1.0.0 diff --git a/src/SortedSet.ts b/src/SortedSet.ts index 4d055a03..911b8dcc 100644 --- a/src/SortedSet.ts +++ b/src/SortedSet.ts @@ -1,15 +1,15 @@ /** * @since 1.0.0 */ +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import * as RBT from "@effect/data/RedBlackTree" import { pipe } from "@fp-ts/core/Function" import type { Predicate, Refinement } from "@fp-ts/core/Predicate" import type { Order } from "@fp-ts/core/typeclass/Order" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import * as RBT from "@fp-ts/data/RedBlackTree" -const TypeId: unique symbol = Symbol.for("@fp-ts/data/SortedSet") +const TypeId: unique symbol = Symbol.for("@effect/data/SortedSet") /** * @since 1.0.0 @@ -34,7 +34,7 @@ class SortedSetImpl implements Iterable, Equal.Equal { constructor(readonly keyTree: RBT.RedBlackTree) {} [Hash.symbol](): number { - return pipe(Hash.hash(this.keyTree), Hash.combine(Hash.hash("@fp-ts/data/SortedSet"))) + return pipe(Hash.hash(this.keyTree), Hash.combine(Hash.hash("@effect/data/SortedSet"))) } [Equal.symbol](that: unknown): boolean { @@ -68,8 +68,7 @@ class SortedSetImpl implements Iterable, Equal.Equal { export const isSortedSet: { (u: Iterable): u is SortedSet (u: unknown): u is SortedSet -} = (u: unknown): u is SortedSet => - typeof u === "object" && u != null && "_id" in u && u["_id"] === TypeId +} = (u: unknown): u is SortedSet => typeof u === "object" && u != null && "_id" in u && u["_id"] === TypeId /** * @since 1.0.0 @@ -84,16 +83,14 @@ export const empty = (O: Order): SortedSet => new SortedSetImpl(RBT.emp export const fromIterable = (ord: Order) => ( iterable: Iterable - ): SortedSet => - new SortedSetImpl(RBT.fromIterable(ord)(Array.from(iterable).map((k) => [k, true]))) + ): SortedSet => new SortedSetImpl(RBT.fromIterable(ord)(Array.from(iterable).map((k) => [k, true]))) /** * @since 1.0.0 * @category constructors */ export const make = (ord: Order) => - >(...entries: Entries): SortedSet => - fromIterable(ord)(entries) + >(...entries: Entries): SortedSet => fromIterable(ord)(entries) /** * @since 1.0.0 diff --git a/src/index.ts b/src/index.ts index 367f1862..2ef979b8 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,34 +2,34 @@ * @since 1.0.0 */ -import * as brand from "@fp-ts/data/Brand" -import * as chunk from "@fp-ts/data/Chunk" -import * as context from "@fp-ts/data/Context" -import * as data from "@fp-ts/data/Data" -import * as differ from "@fp-ts/data/Differ" -import * as chunkPatch from "@fp-ts/data/Differ/ChunkPatch" -import * as contextPatch from "@fp-ts/data/Differ/ContextPatch" -import * as hashMapPatch from "@fp-ts/data/Differ/HashMapPatch" -import * as hashSetPatch from "@fp-ts/data/Differ/HashSetPatch" -import * as orPatch from "@fp-ts/data/Differ/OrPatch" -import * as dual from "@fp-ts/data/Dual" -import * as duration from "@fp-ts/data/Duration" -import * as equal from "@fp-ts/data/Equal" -import * as gen from "@fp-ts/data/Gen" -import * as hash from "@fp-ts/data/Hash" -import * as hashMap from "@fp-ts/data/HashMap" -import * as hashSet from "@fp-ts/data/HashSet" -import * as list from "@fp-ts/data/List" -import * as mutableHashMap from "@fp-ts/data/MutableHashMap" -import * as mutableHashSet from "@fp-ts/data/MutableHashSet" -import * as mutableList from "@fp-ts/data/MutableList" -import * as mutableQueue from "@fp-ts/data/MutableQueue" -import * as mutableRef from "@fp-ts/data/MutableRef" -import * as nonEmpty from "@fp-ts/data/NonEmpty" -import * as random from "@fp-ts/data/Random" -import * as redBlackTree from "@fp-ts/data/RedBlackTree" -import * as sortedMap from "@fp-ts/data/SortedMap" -import * as sortedSet from "@fp-ts/data/SortedSet" +import * as brand from "@effect/data/Brand" +import * as chunk from "@effect/data/Chunk" +import * as context from "@effect/data/Context" +import * as data from "@effect/data/Data" +import * as differ from "@effect/data/Differ" +import * as chunkPatch from "@effect/data/Differ/ChunkPatch" +import * as contextPatch from "@effect/data/Differ/ContextPatch" +import * as hashMapPatch from "@effect/data/Differ/HashMapPatch" +import * as hashSetPatch from "@effect/data/Differ/HashSetPatch" +import * as orPatch from "@effect/data/Differ/OrPatch" +import * as dual from "@effect/data/Dual" +import * as duration from "@effect/data/Duration" +import * as equal from "@effect/data/Equal" +import * as gen from "@effect/data/Gen" +import * as hash from "@effect/data/Hash" +import * as hashMap from "@effect/data/HashMap" +import * as hashSet from "@effect/data/HashSet" +import * as list from "@effect/data/List" +import * as mutableHashMap from "@effect/data/MutableHashMap" +import * as mutableHashSet from "@effect/data/MutableHashSet" +import * as mutableList from "@effect/data/MutableList" +import * as mutableQueue from "@effect/data/MutableQueue" +import * as mutableRef from "@effect/data/MutableRef" +import * as nonEmpty from "@effect/data/NonEmpty" +import * as random from "@effect/data/Random" +import * as redBlackTree from "@effect/data/RedBlackTree" +import * as sortedMap from "@effect/data/SortedMap" +import * as sortedSet from "@effect/data/SortedSet" export { /** diff --git a/src/internal/Context.ts b/src/internal/Context.ts index 5b48363e..6ffc6589 100644 --- a/src/internal/Context.ts +++ b/src/internal/Context.ts @@ -1,12 +1,12 @@ +import type * as C from "@effect/data/Context" +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" import type * as O from "@fp-ts/core/Option" import * as option from "@fp-ts/core/Option" -import type * as C from "@fp-ts/data/Context" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" /** @internal */ -export const TagTypeId: C.TagTypeId = Symbol.for("@fp-ts/data/Context/Tag") as C.TagTypeId +export const TagTypeId: C.TagTypeId = Symbol.for("@effect/data/Context/Tag") as C.TagTypeId /** @internal */ export class TagImpl implements C.Tag { @@ -27,7 +27,7 @@ export class TagImpl implements C.Tag { } /** @internal */ -export const ContextTypeId: C.TypeId = Symbol.for("@fp-ts/data/Context") as C.TypeId +export const ContextTypeId: C.TypeId = Symbol.for("@effect/data/Context") as C.TypeId /** @internal */ export class ContextImpl implements C.Context { diff --git a/src/internal/Differ.ts b/src/internal/Differ.ts index f540bd36..66c730db 100644 --- a/src/internal/Differ.ts +++ b/src/internal/Differ.ts @@ -1,20 +1,20 @@ +import type { Chunk } from "@effect/data/Chunk" +import type { Context } from "@effect/data/Context" +import type * as D from "@effect/data/Differ" +import * as ChunkPatch from "@effect/data/Differ/ChunkPatch" +import * as ContextPatch from "@effect/data/Differ/ContextPatch" +import * as HashMapPatch from "@effect/data/Differ/HashMapPatch" +import * as HashSetPatch from "@effect/data/Differ/HashSetPatch" +import * as OrPatch from "@effect/data/Differ/OrPatch" +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import type { HashMap } from "@effect/data/HashMap" +import type { HashSet } from "@effect/data/HashSet" import type { Either } from "@fp-ts/core/Either" import { constant, identity } from "@fp-ts/core/Function" -import type { Chunk } from "@fp-ts/data/Chunk" -import type { Context } from "@fp-ts/data/Context" -import type * as D from "@fp-ts/data/Differ" -import * as ChunkPatch from "@fp-ts/data/Differ/ChunkPatch" -import * as ContextPatch from "@fp-ts/data/Differ/ContextPatch" -import * as HashMapPatch from "@fp-ts/data/Differ/HashMapPatch" -import * as HashSetPatch from "@fp-ts/data/Differ/HashSetPatch" -import * as OrPatch from "@fp-ts/data/Differ/OrPatch" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import type { HashMap } from "@fp-ts/data/HashMap" -import type { HashSet } from "@fp-ts/data/HashSet" /** @internal */ -export const DifferTypeId: D.TypeId = Symbol.for("@fp-ts/data/Differ") as D.TypeId +export const DifferTypeId: D.TypeId = Symbol.for("@effect/data/Differ") as D.TypeId /** @internal */ class DifferImpl implements D.Differ { diff --git a/src/internal/Differ/ChunkPatch.ts b/src/internal/Differ/ChunkPatch.ts index 8bca38fb..a3c90691 100644 --- a/src/internal/Differ/ChunkPatch.ts +++ b/src/internal/Differ/ChunkPatch.ts @@ -1,13 +1,13 @@ +import * as Chunk from "@effect/data/Chunk" +import type { Differ } from "@effect/data/Differ" +import type * as CP from "@effect/data/Differ/ChunkPatch" +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" import { pipe } from "@fp-ts/core/Function" -import * as Chunk from "@fp-ts/data/Chunk" -import type { Differ } from "@fp-ts/data/Differ" -import type * as CP from "@fp-ts/data/Differ/ChunkPatch" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" /** @internal */ -export const ChunkPatchTypeId: CP.TypeId = Symbol.for("@fp-ts/data/Differ/ChunkPatch") as CP.TypeId +export const ChunkPatchTypeId: CP.TypeId = Symbol.for("@effect/data/Differ/ChunkPatch") as CP.TypeId function variance(a: A): B { return a as unknown as B diff --git a/src/internal/Differ/ContextPatch.ts b/src/internal/Differ/ContextPatch.ts index b8972889..048fe676 100644 --- a/src/internal/Differ/ContextPatch.ts +++ b/src/internal/Differ/ContextPatch.ts @@ -1,14 +1,14 @@ -import * as Chunk from "@fp-ts/data/Chunk" -import type { Context, Tag } from "@fp-ts/data/Context" -import type * as CP from "@fp-ts/data/Differ/ContextPatch" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import { ContextImpl } from "@fp-ts/data/internal/Context" +import * as Chunk from "@effect/data/Chunk" +import type { Context, Tag } from "@effect/data/Context" +import type * as CP from "@effect/data/Differ/ContextPatch" +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import { ContextImpl } from "@effect/data/internal/Context" /** @internal */ export const ContextPatchTypeId: CP.TypeId = Symbol.for( - "@fp-ts/data/Differ/ContextPatch" + "@effect/data/Differ/ContextPatch" ) as CP.TypeId function variance(a: A): B { @@ -126,8 +126,7 @@ type Instruction = | UpdateService /** @internal */ -export const empty = (): CP.ContextPatch => - new Empty() +export const empty = (): CP.ContextPatch => new Empty() /** @internal */ export const diff = ( diff --git a/src/internal/Differ/HashMapPatch.ts b/src/internal/Differ/HashMapPatch.ts index 18b080dd..15626ce6 100644 --- a/src/internal/Differ/HashMapPatch.ts +++ b/src/internal/Differ/HashMapPatch.ts @@ -1,14 +1,14 @@ -import * as Chunk from "@fp-ts/data/Chunk" -import type * as Differ from "@fp-ts/data/Differ" -import type * as HMP from "@fp-ts/data/Differ/HashMapPatch" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import * as HashMap from "@fp-ts/data/HashMap" +import * as Chunk from "@effect/data/Chunk" +import type * as Differ from "@effect/data/Differ" +import type * as HMP from "@effect/data/Differ/HashMapPatch" +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import * as HashMap from "@effect/data/HashMap" /** @internal */ export const HashMapPatchTypeId: HMP.TypeId = Symbol.for( - "@fp-ts/data/Differ/HashMapPatch" + "@effect/data/Differ/HashMapPatch" ) as HMP.TypeId function variance(a: A): B { diff --git a/src/internal/Differ/HashSetPatch.ts b/src/internal/Differ/HashSetPatch.ts index b2f0b708..f4ab104b 100644 --- a/src/internal/Differ/HashSetPatch.ts +++ b/src/internal/Differ/HashSetPatch.ts @@ -1,13 +1,13 @@ -import * as Chunk from "@fp-ts/data/Chunk" -import type * as HSP from "@fp-ts/data/Differ/HashSetPatch" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import * as HashSet from "@fp-ts/data/HashSet" +import * as Chunk from "@effect/data/Chunk" +import type * as HSP from "@effect/data/Differ/HashSetPatch" +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import * as HashSet from "@effect/data/HashSet" /** @internal */ export const HashSetPatchTypeId: HSP.TypeId = Symbol.for( - "@fp-ts/data/Differ/HashSetPatch" + "@effect/data/Differ/HashSetPatch" ) as HSP.TypeId function variance(a: A): B { diff --git a/src/internal/Differ/OrPatch.ts b/src/internal/Differ/OrPatch.ts index f1dde92d..42cd0890 100644 --- a/src/internal/Differ/OrPatch.ts +++ b/src/internal/Differ/OrPatch.ts @@ -1,23 +1,21 @@ +import * as Chunk from "@effect/data/Chunk" +import type { Differ } from "@effect/data/Differ" +import type * as OP from "@effect/data/Differ/OrPatch" +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" import type { Either } from "@fp-ts/core/Either" import * as E from "@fp-ts/core/Either" -import * as Chunk from "@fp-ts/data/Chunk" -import type { Differ } from "@fp-ts/data/Differ" -import type * as OP from "@fp-ts/data/Differ/OrPatch" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" /** @internal */ -export const OrPatchTypeId: OP.TypeId = Symbol.for("@fp-ts/data/Differ/OrPatch") as OP.TypeId +export const OrPatchTypeId: OP.TypeId = Symbol.for("@effect/data/Differ/OrPatch") as OP.TypeId function variance(a: A): B { return a as unknown as B } /** @internal */ -export class Empty - implements OP.OrPatch -{ +export class Empty implements OP.OrPatch { readonly _tag = "Empty" readonly _Value: (_: Value) => Value = variance readonly _Value2: (_: Value2) => Value2 = variance @@ -36,9 +34,7 @@ export class Empty } /** @internal */ -export class AndThen - implements OP.OrPatch -{ +export class AndThen implements OP.OrPatch { readonly _tag = "AndThen" readonly _Value: (_: Value) => Value = variance readonly _Value2: (_: Value2) => Value2 = variance @@ -63,9 +59,7 @@ export class AndThen } /** @internal */ -export class SetLeft - implements OP.OrPatch -{ +export class SetLeft implements OP.OrPatch { readonly _tag = "SetLeft" readonly _Value: (_: Value) => Value = variance readonly _Value2: (_: Value2) => Value2 = variance @@ -86,9 +80,7 @@ export class SetLeft } /** @internal */ -export class SetRight - implements OP.OrPatch -{ +export class SetRight implements OP.OrPatch { readonly _tag = "SetRight" readonly _Value: (_: Value) => Value = variance readonly _Value2: (_: Value2) => Value2 = variance @@ -109,9 +101,7 @@ export class SetRight } /** @internal */ -export class UpdateLeft - implements OP.OrPatch -{ +export class UpdateLeft implements OP.OrPatch { readonly _tag = "UpdateLeft" readonly _Value: (_: Value) => Value = variance readonly _Value2: (_: Value2) => Value2 = variance @@ -132,9 +122,7 @@ export class UpdateLeft } /** @internal */ -export class UpdateRight - implements OP.OrPatch -{ +export class UpdateRight implements OP.OrPatch { readonly _tag = "UpdateRight" readonly _Value: (_: Value) => Value = variance readonly _Value2: (_: Value2) => Value2 = variance diff --git a/src/internal/HashMap.ts b/src/internal/HashMap.ts index e0de97ab..3f3bd861 100644 --- a/src/internal/HashMap.ts +++ b/src/internal/HashMap.ts @@ -1,16 +1,16 @@ +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import type * as HM from "@effect/data/HashMap" +import { fromBitmap, hashFragment, toBitmap } from "@effect/data/internal/HashMap/bitwise" +import { SIZE } from "@effect/data/internal/HashMap/config" +import * as Node from "@effect/data/internal/HashMap/node" import { identity, pipe } from "@fp-ts/core/Function" import * as Option from "@fp-ts/core/Option" import type { Predicate, Refinement } from "@fp-ts/core/Predicate" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import type * as HM from "@fp-ts/data/HashMap" -import { fromBitmap, hashFragment, toBitmap } from "@fp-ts/data/internal/HashMap/bitwise" -import { SIZE } from "@fp-ts/data/internal/HashMap/config" -import * as Node from "@fp-ts/data/internal/HashMap/node" /** @internal */ -export const HashMapTypeId: HM.TypeId = Symbol.for("@fp-ts/data/HashMap") as HM.TypeId +export const HashMapTypeId: HM.TypeId = Symbol.for("@effect/data/HashMap") as HM.TypeId type TraversalFn = (k: K, v: V) => A diff --git a/src/internal/HashMap/bitwise.ts b/src/internal/HashMap/bitwise.ts index 4e2a9a86..86855eb0 100644 --- a/src/internal/HashMap/bitwise.ts +++ b/src/internal/HashMap/bitwise.ts @@ -1,4 +1,4 @@ -import { MASK } from "@fp-ts/data/internal/HashMap/config" +import { MASK } from "@effect/data/internal/HashMap/config" /** * Hamming weight. diff --git a/src/internal/HashMap/keySet.ts b/src/internal/HashMap/keySet.ts index 8f0d4af5..7e606a73 100644 --- a/src/internal/HashMap/keySet.ts +++ b/src/internal/HashMap/keySet.ts @@ -1,6 +1,6 @@ -import type { HashMap } from "@fp-ts/data/HashMap" -import type { HashSet } from "@fp-ts/data/HashSet" -import { HashSetImpl } from "@fp-ts/data/internal/HashSet" +import type { HashMap } from "@effect/data/HashMap" +import type { HashSet } from "@effect/data/HashSet" +import { HashSetImpl } from "@effect/data/internal/HashSet" /** @internal */ export function keySet(self: HashMap): HashSet { diff --git a/src/internal/HashMap/node.ts b/src/internal/HashMap/node.ts index 7bf5176a..46489acf 100644 --- a/src/internal/HashMap/node.ts +++ b/src/internal/HashMap/node.ts @@ -1,9 +1,9 @@ +import { equals } from "@effect/data/Equal" +import { arraySpliceIn, arraySpliceOut, arrayUpdate } from "@effect/data/internal/HashMap/array" +import { fromBitmap, hashFragment, toBitmap } from "@effect/data/internal/HashMap/bitwise" +import { MAX_INDEX_NODE, MIN_ARRAY_NODE, SIZE } from "@effect/data/internal/HashMap/config" +import { Stack } from "@effect/data/internal/Stack" import * as O from "@fp-ts/core/Option" -import { equals } from "@fp-ts/data/Equal" -import { arraySpliceIn, arraySpliceOut, arrayUpdate } from "@fp-ts/data/internal/HashMap/array" -import { fromBitmap, hashFragment, toBitmap } from "@fp-ts/data/internal/HashMap/bitwise" -import { MAX_INDEX_NODE, MIN_ARRAY_NODE, SIZE } from "@fp-ts/data/internal/HashMap/config" -import { Stack } from "@fp-ts/data/internal/Stack" /** @internal */ export type Node = diff --git a/src/internal/HashSet.ts b/src/internal/HashSet.ts index be58ea5d..1847ee80 100644 --- a/src/internal/HashSet.ts +++ b/src/internal/HashSet.ts @@ -1,13 +1,13 @@ +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import type { HashMap } from "@effect/data/HashMap" +import type * as HS from "@effect/data/HashSet" +import * as HM from "@effect/data/internal/HashMap" import type { Predicate, Refinement } from "@fp-ts/core/Predicate" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import type { HashMap } from "@fp-ts/data/HashMap" -import type * as HS from "@fp-ts/data/HashSet" -import * as HM from "@fp-ts/data/internal/HashMap" /** @internal */ -export const HashSetTypeId: HS.TypeId = Symbol.for("@fp-ts/data/HashSet") as HS.TypeId +export const HashSetTypeId: HS.TypeId = Symbol.for("@effect/data/HashSet") as HS.TypeId /** @internal */ export class HashSetImpl implements HS.HashSet { @@ -111,8 +111,7 @@ export const isSubset = Dual.dual< >(2, (self, that) => every(self, (value) => has(that, value))) /** @internal */ -export const values = (self: HS.HashSet): IterableIterator => - HM.keys((self as HashSetImpl)._keyMap) +export const values = (self: HS.HashSet): IterableIterator => HM.keys((self as HashSetImpl)._keyMap) /** @internal */ export const size = (self: HS.HashSet): number => HM.size((self as HashSetImpl)._keyMap) diff --git a/src/internal/RedBlackTree.ts b/src/internal/RedBlackTree.ts index 23543721..9c5c5ef8 100644 --- a/src/internal/RedBlackTree.ts +++ b/src/internal/RedBlackTree.ts @@ -1,16 +1,16 @@ +import * as Chunk from "@effect/data/Chunk" +import * as Dual from "@effect/data/Dual" +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import { Direction, RedBlackTreeIterator } from "@effect/data/internal/RedBlackTree/iterator" +import * as Node from "@effect/data/internal/RedBlackTree/node" +import { Stack } from "@effect/data/internal/Stack" +import type * as RBT from "@effect/data/RedBlackTree" import * as Option from "@fp-ts/core/Option" import type * as Ordering from "@fp-ts/core/Ordering" import type * as Order from "@fp-ts/core/typeclass/Order" -import * as Chunk from "@fp-ts/data/Chunk" -import * as Dual from "@fp-ts/data/Dual" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import { Direction, RedBlackTreeIterator } from "@fp-ts/data/internal/RedBlackTree/iterator" -import * as Node from "@fp-ts/data/internal/RedBlackTree/node" -import { Stack } from "@fp-ts/data/internal/Stack" -import type * as RBT from "@fp-ts/data/RedBlackTree" -const RedBlackTreeSymbolKey = "@fp-ts/data/RedBlackTree" +const RedBlackTreeSymbolKey = "@effect/data/RedBlackTree" /** @internal */ export const RedBlackTreeTypeId: RBT.TypeId = Symbol.for(RedBlackTreeSymbolKey) as RBT.TypeId @@ -47,9 +47,7 @@ export class RedBlackTreeImpl implements RBT.RedBlackTree { } toString() { - return `RedBlackTree(${ - Array.from(this).map(([k, v]) => `[${String(k)}, ${String(v)}]`).join(", ") - })` + return `RedBlackTree(${Array.from(this).map(([k, v]) => `[${String(k)}, ${String(v)}]`).join(", ")})` } toJSON() { @@ -237,8 +235,7 @@ export const getAt = Dual.dual< }) /** @internal */ -export const getOrder = (tree: RBT.RedBlackTree): Order.Order => - (tree as RedBlackTreeImpl)._ord +export const getOrder = (tree: RBT.RedBlackTree): Order.Order => (tree as RedBlackTreeImpl)._ord /** @internal */ export const has = Dual.dual< @@ -420,12 +417,10 @@ export const insert = Dual.dual< }) /** @internal */ -export const keysForward = (self: RBT.RedBlackTree): IterableIterator => - keys(self, Direction.Forward) +export const keysForward = (self: RBT.RedBlackTree): IterableIterator => keys(self, Direction.Forward) /** @internal */ -export const keysBackward = (self: RBT.RedBlackTree): IterableIterator => - keys(self, Direction.Backward) +export const keysBackward = (self: RBT.RedBlackTree): IterableIterator => keys(self, Direction.Backward) const keys = ( self: RBT.RedBlackTree, @@ -849,8 +844,7 @@ export const removeFirst = Dual.dual< }) /** @internal */ -export const size = (self: RBT.RedBlackTree): number => - (self as RedBlackTreeImpl)._root?.count ?? 0 +export const size = (self: RBT.RedBlackTree): number => (self as RedBlackTreeImpl)._root?.count ?? 0 /** @internal */ export const valuesForward = (self: RBT.RedBlackTree): IterableIterator => diff --git a/src/internal/RedBlackTree/iterator.ts b/src/internal/RedBlackTree/iterator.ts index 0493dd41..dd7a6792 100644 --- a/src/internal/RedBlackTree/iterator.ts +++ b/src/internal/RedBlackTree/iterator.ts @@ -1,7 +1,7 @@ +import type { RedBlackTreeImpl } from "@effect/data/internal/RedBlackTree" +import type * as Node from "@effect/data/internal/RedBlackTree/node" +import type * as RBT from "@effect/data/RedBlackTree" import * as Option from "@fp-ts/core/Option" -import type { RedBlackTreeImpl } from "@fp-ts/data/internal/RedBlackTree" -import type * as Node from "@fp-ts/data/internal/RedBlackTree/node" -import type * as RBT from "@fp-ts/data/RedBlackTree" /** @internal */ export const Direction = { diff --git a/test/Brand.ts b/test/Brand.ts index 5267c89d..fdbbe357 100644 --- a/test/Brand.ts +++ b/test/Brand.ts @@ -1,6 +1,6 @@ +import * as Brand from "@effect/data/Brand" import * as Either from "@fp-ts/core/Either" import * as Option from "@fp-ts/core/Option" -import * as Brand from "@fp-ts/data/Brand" type Int = number & Brand.Brand<"Int"> const Int = Brand.refined( diff --git a/test/Chunk.ts b/test/Chunk.ts index b68a1557..54ba3246 100644 --- a/test/Chunk.ts +++ b/test/Chunk.ts @@ -1,7 +1,7 @@ +import * as C from "@effect/data/Chunk" +import { equals } from "@effect/data/Equal" import { pipe } from "@fp-ts/core/Function" import * as O from "@fp-ts/core/Option" -import * as C from "@fp-ts/data/Chunk" -import { equals } from "@fp-ts/data/Equal" import * as fc from "fast-check" import { inspect } from "node:util" diff --git a/test/Context.ts b/test/Context.ts index 1a7d9c51..a64c201a 100644 --- a/test/Context.ts +++ b/test/Context.ts @@ -1,7 +1,7 @@ +import * as Context from "@effect/data/Context" +import * as Differ from "@effect/data/Differ" import { pipe } from "@fp-ts/core/Function" import * as O from "@fp-ts/core/Option" -import * as Context from "@fp-ts/data/Context" -import * as Differ from "@fp-ts/data/Differ" interface A { a: number @@ -20,8 +20,8 @@ const C = Context.Tag() describe.concurrent("Context", () => { it("global tag", () => { - const a = Context.Tag("@fp-ts/data/test/Context/Tag") - const b = Context.Tag("@fp-ts/data/test/Context/Tag") + const a = Context.Tag("@effect/data/test/Context/Tag") + const b = Context.Tag("@effect/data/test/Context/Tag") expect(a).toBe(b) }) diff --git a/test/Data.ts b/test/Data.ts index 0d13427a..7b3848cb 100644 --- a/test/Data.ts +++ b/test/Data.ts @@ -1,5 +1,5 @@ -import * as Data from "@fp-ts/data/Data" -import * as Equal from "@fp-ts/data/Equal" +import * as Data from "@effect/data/Data" +import * as Equal from "@effect/data/Equal" describe("Data", () => { it("struct", () => { diff --git a/test/Differ.ts b/test/Differ.ts index b0090897..c4b8ae9c 100644 --- a/test/Differ.ts +++ b/test/Differ.ts @@ -1,9 +1,9 @@ +import * as Chunk from "@effect/data/Chunk" +import * as Differ from "@effect/data/Differ" +import * as Equal from "@effect/data/Equal" +import * as HashMap from "@effect/data/HashMap" +import * as HashSet from "@effect/data/HashSet" import { pipe } from "@fp-ts/core/Function" -import * as Chunk from "@fp-ts/data/Chunk" -import * as Differ from "@fp-ts/data/Differ" -import * as Equal from "@fp-ts/data/Equal" -import * as HashMap from "@fp-ts/data/HashMap" -import * as HashSet from "@fp-ts/data/HashSet" import { it as it_ } from "vitest" function diffLaws( diff --git a/test/Duration.ts b/test/Duration.ts index aaed3966..ae45aba1 100644 --- a/test/Duration.ts +++ b/test/Duration.ts @@ -1,5 +1,5 @@ +import * as D from "@effect/data/Duration" import { pipe } from "@fp-ts/core/Function" -import * as D from "@fp-ts/data/Duration" describe.concurrent("Duration", () => { it("equals", () => { diff --git a/test/Gen.ts b/test/Gen.ts index f413ec34..762e6db2 100644 --- a/test/Gen.ts +++ b/test/Gen.ts @@ -1,7 +1,7 @@ +import * as Gen from "@effect/data/Gen" import * as E from "@fp-ts/core/Either" import * as O from "@fp-ts/core/Option" import * as T from "@fp-ts/core/These" -import * as Gen from "@fp-ts/data/Gen" describe("Gen", () => { it("Option", () => { diff --git a/test/HashMap.ts b/test/HashMap.ts index c51e0308..11d38941 100644 --- a/test/HashMap.ts +++ b/test/HashMap.ts @@ -1,9 +1,9 @@ +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import * as HM from "@effect/data/HashMap" +import { deepStrictEqual } from "@effect/data/test/util" import { pipe } from "@fp-ts/core/Function" import * as Option from "@fp-ts/core/Option" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import * as HM from "@fp-ts/data/HashMap" -import { deepStrictEqual } from "@fp-ts/data/test/util" import { inspect } from "node:util" class Key implements Equal.Equal { diff --git a/test/HashSet.ts b/test/HashSet.ts index 440d0184..1e427809 100644 --- a/test/HashSet.ts +++ b/test/HashSet.ts @@ -1,8 +1,8 @@ +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import * as HashSet from "@effect/data/HashSet" +import { deepStrictEqual } from "@effect/data/test/util" import { pipe } from "@fp-ts/core/Function" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import * as HashSet from "@fp-ts/data/HashSet" -import { deepStrictEqual } from "@fp-ts/data/test/util" import { inspect } from "node:util" class Value implements Equal.Equal { diff --git a/test/List.ts b/test/List.ts index c0f111d4..f7d0d401 100644 --- a/test/List.ts +++ b/test/List.ts @@ -1,6 +1,6 @@ +import * as List from "@effect/data/List" import * as Either from "@fp-ts/core/Either" import * as Option from "@fp-ts/core/Option" -import * as List from "@fp-ts/data/List" import { describe, expect, it } from "vitest" describe.concurrent("List", () => { diff --git a/test/MutableHashMap.ts b/test/MutableHashMap.ts index 2a6bea98..6988fe13 100644 --- a/test/MutableHashMap.ts +++ b/test/MutableHashMap.ts @@ -1,8 +1,8 @@ +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import * as HM from "@effect/data/MutableHashMap" import { pipe } from "@fp-ts/core/Function" import * as O from "@fp-ts/core/Option" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import * as HM from "@fp-ts/data/MutableHashMap" import { inspect } from "node:util" class Key implements Equal.Equal { diff --git a/test/MutableList.ts b/test/MutableList.ts index 0b937c9e..96c9fc87 100644 --- a/test/MutableList.ts +++ b/test/MutableList.ts @@ -1,6 +1,6 @@ +import * as MutableList from "@effect/data/MutableList" +import { deepStrictEqual, strictEqual } from "@effect/data/test/util" import { pipe } from "@fp-ts/core/Function" -import * as MutableList from "@fp-ts/data/MutableList" -import { deepStrictEqual, strictEqual } from "@fp-ts/data/test/util" import { inspect } from "node:util" describe.concurrent("MutableList", () => { diff --git a/test/MutableQueue.ts b/test/MutableQueue.ts index 4b0b8212..388cb1b8 100644 --- a/test/MutableQueue.ts +++ b/test/MutableQueue.ts @@ -1,5 +1,5 @@ -import * as MutableQueue from "@fp-ts/data/MutableQueue" -import { assertFalse, assertTrue, deepStrictEqual, strictEqual } from "@fp-ts/data/test/util" +import * as MutableQueue from "@effect/data/MutableQueue" +import { assertFalse, assertTrue, deepStrictEqual, strictEqual } from "@effect/data/test/util" import { inspect } from "node:util" describe.concurrent("MutableQueue", () => { diff --git a/test/NonEmpty.ts b/test/NonEmpty.ts index 2d6b7d65..ea424deb 100644 --- a/test/NonEmpty.ts +++ b/test/NonEmpty.ts @@ -1,5 +1,5 @@ -import * as Chunk from "@fp-ts/data/Chunk" -import * as NonEmpty from "@fp-ts/data/NonEmpty" +import * as Chunk from "@effect/data/Chunk" +import * as NonEmpty from "@effect/data/NonEmpty" describe("NonEmpty", () => { it("should get head and rest", () => { diff --git a/test/RedBlackTree.ts b/test/RedBlackTree.ts index 188689ea..b0363128 100644 --- a/test/RedBlackTree.ts +++ b/test/RedBlackTree.ts @@ -1,11 +1,11 @@ +import * as Equal from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import * as RedBlackTree from "@effect/data/RedBlackTree" +import { deepStrictEqual } from "@effect/data/test/util" import { pipe } from "@fp-ts/core/Function" import * as number from "@fp-ts/core/Number" import * as Option from "@fp-ts/core/Option" import * as Order from "@fp-ts/core/typeclass/Order" -import * as Equal from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import * as RedBlackTree from "@fp-ts/data/RedBlackTree" -import { deepStrictEqual } from "@fp-ts/data/test/util" import { inspect } from "node:util" describe.concurrent("RedBlackTree", () => { diff --git a/test/SortedMap.ts b/test/SortedMap.ts index b128a2a8..ec89d153 100644 --- a/test/SortedMap.ts +++ b/test/SortedMap.ts @@ -1,9 +1,9 @@ +import * as Eq from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import * as SM from "@effect/data/SortedMap" import { pipe } from "@fp-ts/core/Function" import * as N from "@fp-ts/core/Number" import * as O from "@fp-ts/core/Option" -import * as Eq from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import * as SM from "@fp-ts/data/SortedMap" import { inspect } from "node:util" class Key implements Eq.Equal { diff --git a/test/SortedSet.ts b/test/SortedSet.ts index dcef76ff..e4ae4c20 100644 --- a/test/SortedSet.ts +++ b/test/SortedSet.ts @@ -1,9 +1,9 @@ +import * as Eq from "@effect/data/Equal" +import * as Hash from "@effect/data/Hash" +import * as SortedSet from "@effect/data/SortedSet" import { pipe } from "@fp-ts/core/Function" import * as Str from "@fp-ts/core/String" import * as Order from "@fp-ts/core/typeclass/Order" -import * as Eq from "@fp-ts/data/Equal" -import * as Hash from "@fp-ts/data/Hash" -import * as SortedSet from "@fp-ts/data/SortedSet" import { inspect } from "node:util" class Member implements Eq.Equal { diff --git a/test/index.ts b/test/index.ts index ee983890..f7e5105e 100644 --- a/test/index.ts +++ b/test/index.ts @@ -1,4 +1,4 @@ -import * as _ from "@fp-ts/data" +import * as _ from "@effect/data" import * as assert from "assert" import glob from "glob" import * as path from "path" diff --git a/tsconfig.base.json b/tsconfig.base.json index 0abd6b88..42cba24f 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -37,12 +37,19 @@ "incremental": true, "removeComments": false, "paths": { - "@fp-ts/data": ["./src/index.ts"], - "@fp-ts/data/test/*": ["./test/*"], - "@fp-ts/data/examples/*": ["./examples/*"], - "@fp-ts/data/*": ["./src/*"] + "@effect/data": ["./src/index.ts"], + "@effect/data/test/*": ["./test/*"], + "@effect/data/examples/*": ["./examples/*"], + "@effect/data/*": ["./src/*"] }, - "plugins": [{ "name": "@effect/language-service" }] + "plugins": [ + { + "name": "@effect/language-service", + "diagnostics": { + "1002": "none" + } + } + ] }, "include": [], "exclude": ["node_modules", "build", "lib"] diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json deleted file mode 100644 index 9e49dbe9..00000000 --- a/tsconfig.eslint.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "compilerOptions": { - "noEmit": true, - "allowJs": true, - "baseUrl": "." - }, - "include": [ - "./src/**/*.ts", - "./test/**/*.ts", - "./dtslint/**/*.ts", - "./examples/**/*.ts", - "./vitest.config.ts", - "./.eslintrc.cjs" - ] -} diff --git a/tsconfig.examples.json b/tsconfig.examples.json new file mode 100644 index 00000000..ddaf46b6 --- /dev/null +++ b/tsconfig.examples.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "tsBuildInfoFile": "build/tsbuildinfo/examples.tsbuildinfo", + "rootDir": "examples", + "module": "CommonJS", + "outDir": "build/examples" + }, + "include": ["examples/**/*.ts"], + "references": [{ "path": "./tsconfig.build.json" }] +} diff --git a/tsconfig.json b/tsconfig.json index 29efc1ca..7e1f498a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,7 @@ "path": "./tsconfig.build.json" }, { - "path": "./tsconfig.build-test.json" + "path": "./tsconfig.test.json" } ] } diff --git a/tsconfig.madge.json b/tsconfig.madge.json index 8476e355..2e9abac7 100644 --- a/tsconfig.madge.json +++ b/tsconfig.madge.json @@ -4,8 +4,8 @@ "allowJs": true, "baseUrl": ".", "paths": { - "@fp-ts/data": ["./build/esm/index.js"], - "@fp-ts/data/*": ["./build/esm/*"] + "@effect/data": ["./build/esm/index.js"], + "@effect/data/*": ["./build/esm/*"] } }, "include": ["./build/esm/**/*.js"] diff --git a/tsconfig.build-test.json b/tsconfig.test.json similarity index 100% rename from tsconfig.build-test.json rename to tsconfig.test.json diff --git a/vitest.config.ts b/vitest.config.ts index a79f12fa..105364d1 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,17 +1,22 @@ /// +import babel from "@vitejs/plugin-react" import path from "path" import { defineConfig } from "vite" +// eslint-disable-next-line @typescript-eslint/no-var-requires +const babelConfig = require("./.babel.mjs.json") + export default defineConfig({ + plugins: [babel({ babel: babelConfig })], test: { include: ["./test/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"], - exclude: ["./test/util.ts"], + exclude: ["./test/util.ts", "./test/utils/**/*.ts", "./test/**/*.init.ts"], globals: true }, resolve: { alias: { - "@fp-ts/data/test": path.resolve(__dirname, "/test"), - "@fp-ts/data": path.resolve(__dirname, "/src") + "@effect/data/test": path.join(__dirname, "test"), + "@effect/data": path.join(__dirname, "src") } } })